Enabled WoE SE to be run independently of WoE. Let's see how long it is before something blows up, or Ultramage pulls out his hair while cursing my existence.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13202 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
L0ne_W0lf 2008-09-09 17:33:10 +00:00
parent c742818264
commit 331e0a0a15
27 changed files with 306 additions and 136 deletions

View File

@ -3,6 +3,9 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2008/09/09
* Rev. 13202 Added commands related to WoE SE, allowing it to run independantly of WoE. [L0ne_W0lf]
- Added: @agitstart2, @agitend2, agitstart2, agitend2, and agitcheck2.
2008/09/05
* Rev. 13192 Updated mmo.h, increased merc max count to 36. [L0ne_W0lf]
* Fixed save crash related to non-guilded mercenaries.

View File

@ -406,6 +406,11 @@
400: Usage: @jailfor <time> <character name>
401: You have been jailed for %d years, %d months, %d days, %d hours and %d minutes
402: %s in jail for %d years, %d months, %d days, %d hours and %d minutes
// WoE SE (@agitstart2)
403: War of Emperium SE has been initiated.
404: War of Emperium SE is currently in progress.
405: War of Emperium SE has been ended.
406: War of Emperium SE is currently not in progress.
// Homunculus messages
450: You already have a homunculus

View File

@ -4,7 +4,7 @@
//= A reference manual for the eAthena scripting language.
//= Commands are sorted depending on their functionality.
//===== Version ===========================================
//= 3.22.20080622
//= 3.23.20080909
//=========================================================
//= 1.0 - First release, filled will as much info as I could
//= remember or figure out, most likely there are errors,
@ -122,6 +122,8 @@
//= Extended 'set' to return the variable reference. [FlavioJS]
//= 3.22.20080901
//= Adjusted the 'getequipname' description to match src [ultramage]
//= 3.23.20080909
//= Added WoE SE related commands. [L0ne_W0lf]
//=========================================================
This document is a reference manual for all the scripting commands and functions
@ -880,6 +882,9 @@ once and will not execute if the map server reconnects to the char server later.
OnAgitStart:
OnAgitEnd:
OnAgitInit:
OnAgitStart2:
OnAgitEnd2:
OnAgitInit2:
OnAgitStart will run whenever the server shifts into WoE mode, whether it is
done with @agitstart GM command or with 'AgitStart' script command. OnAgitEnd
@ -890,6 +895,9 @@ No RID will be attached while any of the abovementioned labels are triggered, so
no character or account-based variables will be accessible, until you attach a
RID with 'attachrid' (see below).
The above also applies to, the last three laels, the only difference is that
these labels are used exclusively for WoE SE, and are called independantly.
OnTouch:
This label will be executed if a trigger area is defined for the NPC object it's
@ -3158,9 +3166,11 @@ if (checkChatting()) mes "You are currently chatting!";
---------------------------------------
*agitcheck()
*agitcheck2()
This function will let you check whether the server is currently in WoE mode.
It will return 1 if the War of Emperium is on and 0 if it isn't.
These function will let you check whether the server is currently in WoE mode
(or WoE SE mode if the second function is called) and will return 1 if War of
Emperium is on and 0 if it isn't.
---------------------------------------
@ -5432,13 +5442,16 @@ For examples, check the WoE scripts in the distribution.
*agitstart;
*agitend;
*agitstart2;
*agitend2;
These two commands will start and end War of Emperium.
These four commands will start and end War of Emperium or War of Emperium SE.
This is a bit more complex than it sounds, since the commands themselves won't
actually do anything interesting, except causing all 'OnAgitStart:' and
'OnAgitEnd:' events to run everywhere, respectively. They are used as
simple triggers to run a lot of complex scripts all across the server, and they,
'OnAgitEnd:', or 'OnAgitStart2:' and 'OnAgitEnd2:' in the case of latter two
commands, events to run everywhere, respectively. They are used as simple
triggers to run a lot of complex scripts all across the server, and they,
in turn, are triggered by clock with an 'OnClock<time>:' time-triggering label.
---------------------------------------

View File

@ -1,6 +1,7 @@
Date Added
======
2008/09/09
* Rev. 13202 Enabled WoE SE to be run independently of normal WoE. [L0ne_W0lf]
* Rev. 13201 Small bugfixes to arug_cas02 [Yommy]
- Typo fixes in advanced refiner [Yommy]
- Nameless entrance layout fix [Yommy]

View File

@ -0,0 +1,51 @@
//===== eAthena Script =======================================
//= War of Emperium SE - Auto-Start
//===== By: ==================================================
//= L0ne_W0lf
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= eAthena SVN; RO Episode 11.3
//===== Description: =========================================
//= Auto Start for War of Emperium
//= To know how to set up WoE times, go to doc\woe_time_explanation.txt
//=============================================
//= gettime(3): Gets hour (24 hour time)
//= gettime(4): Gets day of week 1=Monday, 2=Tuesday,
//= 3=Wednesday, 4=Thursday, etc.
//===== Additional Comments: =================================
//= 1.0 Copy/Paste of the original setter.
//============================================================
// WoE Start/Stop times
//============================================================
- script Agit2_Event -1,{
end;
OnClock1800: //start time for Tues(2), Thurs(4)
OnClock2000: //end time for Tues(2), Thurs(4)
OnClock2100: //start time for Sat(6)
OnClock2300: //end time for Sat(6)
OnAgitInit2:
// starting time checks
if((gettime(4)==2) && (gettime(3)>=18 && gettime(3)<21) ||
(gettime(4)==4) && (gettime(3)>=18 && gettime(3)<21) ||
(gettime(4)==6) && (gettime(3)>=22 && gettime(3)<23)) {
if (!agitcheck2()) {
AgitStart2;
}
end;
}
// end time checks
if ((gettime(4)==2) && (gettime(3)==21) ||
(gettime(4)==4) && (gettime(3)==21) ||
(gettime(4)==6) && (gettime(3)==23)) {
if (agitcheck2()) {
AgitEnd2;
}
end;
}
end;
}

View File

@ -34,8 +34,8 @@ OnRecvCastleAr01:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "arug_cas01",GetCastleData("arug_cas01",1),2;
GvgOn "arug_cas01";
donpcevent "Manager#aru01_02::Onstart";
@ -48,7 +48,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "arug_cas01";
if (GetCastleData("arug_cas01",1)) {
KillMonster "arug_cas01","Steward#aru01::OnStartArena";
@ -89,7 +89,7 @@ Onreset:
donpcevent "Control Device01#aru01::OnDisable";
donpcevent "Control Device02#aru01::OnDisable";
donpcevent "Control Device03#aru01::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_ar01[0],0,0,1,1,1,0;
}
end;
@ -182,7 +182,7 @@ arug_cas01,112,193,1 script Brace#aru01_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Brace]";
mes "I am Brace, guardian of";
mes "this stronghold. For now,";
@ -787,7 +787,7 @@ arug_cas01,211,234,0 script 1st Guardian Stone#aru01 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1096,7 +1096,7 @@ arug_cas01,308,189,0 script 2nd Guardian Stone#aru01 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1444,7 +1444,7 @@ arug_cas01,247,52,0 script Control Device01#aru01 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1681,7 +1681,7 @@ arug_cas01,118,131,0 script Control Device02#aru01 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1920,7 +1920,7 @@ arug_cas01,82,172,0 script Control Device03#aru01 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2645,7 +2645,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Valfreyja 1] stronghold of " + GetCastleName("arug_cas01"),bc_all;
mapannounce "arug_cas01","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#aru01_02::Onreset";
initnpctimer;
}

View File

@ -36,8 +36,8 @@ OnRecvCastleAr02:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "arug_cas02",GetCastleData("arug_cas02",1),2;
GvgOn "arug_cas02";
donpcevent "Manager#aru02_02::Onstart";
@ -50,7 +50,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "arug_cas02";
if (GetCastleData("arug_cas02",1)) {
KillMonster "arug_cas02","Steward#aru02::OnStartArena";
@ -91,7 +91,7 @@ Onreset:
donpcevent "Control Device01#aru02::OnDisable";
donpcevent "Control Device02#aru02::OnDisable";
donpcevent "Control Device03#aru02::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_ar02[0],0,0,1,1,1,0;
}
end;
@ -184,7 +184,7 @@ arug_cas02,38,259,5 script Yumenes#aru02_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Yumenes]";
mes "I am Yumenes, guardian of";
mes "this stronghold. For now,";
@ -789,7 +789,7 @@ arug_cas02,33,168,0 script 1st Guardian Stone#aru02 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1098,7 +1098,7 @@ arug_cas02,245,168,0 script 2nd Guardian Stone#aru02 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1449,7 +1449,7 @@ arug_cas02,143,228,0 script Control Device01#aru02 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1686,7 +1686,7 @@ arug_cas02,118,356,0 script Control Device02#aru02 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1925,7 +1925,7 @@ arug_cas02,56,308,0 script Control Device03#aru02 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2606,7 +2606,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Valfreyja 2] stronghold of "+GetCastleName("arug_cas02"),bc_all;
mapannounce "arug_cas02","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#aru02_02::Onreset";
initnpctimer;
}

View File

@ -35,8 +35,8 @@ OnRecvCastleAr03:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "arug_cas03",GetCastleData("arug_cas03",1),2;
GvgOn "arug_cas03";
donpcevent "Manager#aru03_02::Onstart";
@ -49,7 +49,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "arug_cas03";
if (GetCastleData("arug_cas03",1)) {
KillMonster "arug_cas03","Steward#aru03::OnStartArena";
@ -90,7 +90,7 @@ Onreset:
donpcevent "Control Device01#aru03::OnDisable";
donpcevent "Control Device02#aru03::OnDisable";
donpcevent "Control Device03#aru03::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_ar03[0],0,0,1,1,1,0;
}
end;
@ -183,7 +183,7 @@ arug_cas03,146,315,3 script Yehsus#aru03_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Yehsus]";
mes "I am Yehsus, guardian of";
mes "this stronghold. For now,";
@ -788,7 +788,7 @@ arug_cas03,65,171,0 script 1st Guardian Stone#aru03 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1097,7 +1097,7 @@ arug_cas03,212,149,0 script 2nd Guardian Stone#aru03 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1448,7 +1448,7 @@ arug_cas03,136,158,0 script Control Device01#aru03 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1685,7 +1685,7 @@ arug_cas03,135,212,0 script Control Device02#aru03 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1924,7 +1924,7 @@ arug_cas03,134,266,0 script Control Device03#aru03 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2651,7 +2651,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Valfreyja 3] stronghold of "+GetCastleName("arug_cas03"),bc_all;
mapannounce "arug_cas03","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#aru03_02::Onreset";
initnpctimer;
}

View File

@ -34,8 +34,8 @@ OnRecvCastlear04:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "arug_cas04",GetCastleData("arug_cas04",1),2;
GvgOn "arug_cas04";
donpcevent "Manager#aru04_02::Onstart";
@ -48,7 +48,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "arug_cas04";
if (GetCastleData("arug_cas04",1)) {
KillMonster "arug_cas04","Steward#aru04::OnStartArena";
@ -89,7 +89,7 @@ Onreset:
donpcevent "Control Device01#aru04::OnDisable";
donpcevent "Control Device02#aru04::OnDisable";
donpcevent "Control Device03#aru04::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_ar04[0],0,0,1,1,1,0;
}
end;
@ -182,7 +182,7 @@ arug_cas04,146,315,3 script Nios#aru04_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Nios]";
mes "I am Nios, guardian of";
mes "this stronghold. For now,";
@ -787,7 +787,7 @@ arug_cas04,65,171,0 script 1st Guardian Stone#aru04 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1096,7 +1096,7 @@ arug_cas04,212,149,0 script 2nd Guardian Stone#aru04 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1447,7 +1447,7 @@ arug_cas04,143,158,0 script Control Device01#aru04 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1684,7 +1684,7 @@ arug_cas04,135,212,0 script Control Device02#aru04 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1923,7 +1923,7 @@ arug_cas04,134,266,0 script Control Device03#aru04 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2650,7 +2650,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Valfreyja 4] stronghold of "+GetCastleName("arug_cas04"),bc_all;
mapannounce "arug_cas04","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#aru04_02::Onreset";
initnpctimer;
}

View File

@ -34,8 +34,8 @@ OnRecvCastlear05:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "arug_cas05",GetCastleData("arug_cas05",1),2;
GvgOn "arug_cas05";
donpcevent "Manager#aru05_02::Onstart";
@ -48,7 +48,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "arug_cas05";
if (GetCastleData("arug_cas05",1)) {
KillMonster "arug_cas05","Steward#aru05::OnStartArena";
@ -89,7 +89,7 @@ Onreset:
donpcevent "Control Device01#aru05::OnDisable";
donpcevent "Control Device02#aru05::OnDisable";
donpcevent "Control Device03#aru05::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_ar05[0],0,0,1,1,1,0;
}
end;
@ -182,7 +182,7 @@ arug_cas05,146,315,3 script Eeos#aru05_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Eeos]";
mes "I am Eeos, guardian of";
mes "this stronghold. For now,";
@ -787,7 +787,7 @@ arug_cas05,65,171,0 script 1st Guardian Stone#aru05 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1096,7 +1096,7 @@ arug_cas05,212,149,0 script 2nd Guardian Stone#aru05 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1447,7 +1447,7 @@ arug_cas05,136,158,0 script Control Device01#aru05 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1684,7 +1684,7 @@ arug_cas05,135,212,0 script Control Device02#aru05 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1923,7 +1923,7 @@ arug_cas05,134,266,0 script Control Device03#aru05 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2650,7 +2650,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Valfreyja 5] stronghold of "+GetCastleName("arug_cas05"),bc_all;
mapannounce "arug_cas05","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#aru05_02::Onreset";
initnpctimer;
}

View File

@ -35,8 +35,8 @@ OnRecvCastleSc01:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "schg_cas01",GetCastleData("schg_cas01",1),2;
GvgOn "schg_cas01";
donpcevent "Manager#sch01_02::Onstart";
@ -49,7 +49,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "schg_cas01";
if (GetCastleData("schg_cas01",1)) {
KillMonster "schg_cas01","Steward#sch01::OnStartArena";
@ -90,7 +90,7 @@ Onreset:
donpcevent "Control Device01#sch01::OnDisable";
donpcevent "Control Device02#sch01::OnDisable";
donpcevent "Control Device03#sch01::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_sc01[0],0,0,1,1,1,0;
}
end;
@ -183,7 +183,7 @@ schg_cas01,123,306,3 script Ef#sch01_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Ef]";
mes "I am Ef, guardian of";
mes "this stronghold. For now,";
@ -788,7 +788,7 @@ schg_cas01,27,36,0 script 1st Guardian Stone#sch01 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1097,7 +1097,7 @@ schg_cas01,208,75,0 script 2nd Guardian Stone#sch01 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1448,7 +1448,7 @@ schg_cas01,124,52,0 script Control Device01#sch01 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1685,7 +1685,7 @@ schg_cas01,128,157,0 script Control Device02#sch01 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1924,7 +1924,7 @@ schg_cas01,109,247,0 script Control Device03#sch01 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2651,7 +2651,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Nithafjoll 1] stronghold of "+GetCastleName("schg_cas01"),bc_all;
mapannounce "schg_cas01","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#sch01_02::Onreset";
initnpctimer;
}

View File

@ -37,8 +37,8 @@ OnRecvCastlesc02:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "schg_cas02",GetCastleData("schg_cas02",1),2;
GvgOn "schg_cas02";
donpcevent "Manager#sch02_02::Onstart";
@ -51,7 +51,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "schg_cas02";
if (GetCastleData("schg_cas02",1)) {
KillMonster "schg_cas02","Steward#sch02::OnStartArena";
@ -92,7 +92,7 @@ Onreset:
donpcevent "Control Device01#sch02::OnDisable";
donpcevent "Control Device02#sch02::OnDisable";
donpcevent "Control Device03#sch02::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_sc02[0],0,0,1,1,1,0;
}
end;
@ -185,7 +185,7 @@ schg_cas02,140,184,3 script Endeef#sch02_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Endeef]";
mes "I am Endeef, guardian of";
mes "this stronghold. For now,";
@ -790,7 +790,7 @@ schg_cas02,231,57,0 script 1st Guardian Stone#sch02 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1099,7 +1099,7 @@ schg_cas02,335,231,0 script 2nd Guardian Stone#sch02 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1447,7 +1447,7 @@ schg_cas02,288,97,0 script Control Device01#sch02 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1684,7 +1684,7 @@ schg_cas02,230,209,0 script Control Device02#sch02 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1923,7 +1923,7 @@ schg_cas02,159,143,0 script Control Device03#sch02 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2587,7 +2587,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Nithafjoll 2] stronghold of "+GetCastleName("schg_cas02"),bc_all;
mapannounce "schg_cas02","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#sch02_02::Onreset";
initnpctimer;
}

View File

@ -39,8 +39,8 @@ OnRecvCastlesc03:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "schg_cas03",GetCastleData("schg_cas03",1),2;
GvgOn "schg_cas03";
donpcevent "manager#sch03_02::Onstart";
@ -53,7 +53,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "schg_cas03";
if (GetCastleData("schg_cas03",1)) {
KillMonster "schg_cas03","Steward#sch03::OnStartArena";
@ -94,7 +94,7 @@ Onreset:
donpcevent "Control Device01#sch03::OnDisable";
donpcevent "Control Device02#sch03::OnDisable";
donpcevent "Control Device03#sch03::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_sc03[0],0,0,1,1,1,0;
}
end;
@ -187,7 +187,7 @@ schg_cas03,287,226,5 script Elzee#sch03_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Elzee]";
mes "I am Elzee, guardian of";
mes "this stronghold. For now,";
@ -792,7 +792,7 @@ schg_cas03,242,309,0 script 1st Guardian Stone#sch03 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1101,7 +1101,7 @@ schg_cas03,376,250,0 script 2nd Guardian Stone#sch03 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1448,7 +1448,7 @@ schg_cas03,335,298,0 script Control Device01#sch03 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1685,7 +1685,7 @@ schg_cas03,200,227,0 script Control Device02#sch03 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1924,7 +1924,7 @@ schg_cas03,273,205,0 script Control Device03#sch03 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2645,7 +2645,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Nithafjoll 3] stronghold of "+GetCastleName("schg_cas03"),bc_all;
mapannounce "schg_cas03","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#sch03_02::Onreset";
initnpctimer;
}

View File

@ -33,8 +33,8 @@ OnRecvCastlesc04:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "schg_cas04",GetCastleData("schg_cas04",1),2;
GvgOn "schg_cas04";
donpcevent "Manager#sch04_02::Onstart";
@ -47,7 +47,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "schg_cas04";
if (GetCastleData("schg_cas04",1)) {
KillMonster "schg_cas04","Steward#sch04::OnStartArena";
@ -88,7 +88,7 @@ Onreset:
donpcevent "Control Device01#sch04::OnDisable";
donpcevent "Control Device02#sch04::OnDisable";
donpcevent "Control Device03#sch04::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_sc04[0],0,0,1,1,1,0;
}
end;
@ -181,7 +181,7 @@ schg_cas04,123,306,3 script Ef#sch04_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Ef]";
mes "I am Ef, guardian of";
mes "this stronghold. For now,";
@ -786,7 +786,7 @@ schg_cas04,27,36,0 script 1st Guardian Stone#sch04 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1095,7 +1095,7 @@ schg_cas04,208,75,0 script 2nd Guardian Stone#sch04 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1446,7 +1446,7 @@ schg_cas04,124,52,0 script Control Device01#sch04 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1683,7 +1683,7 @@ schg_cas04,128,157,0 script Control Device02#sch04 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1922,7 +1922,7 @@ schg_cas04,109,247,0 script Control Device03#sch04 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2649,7 +2649,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Nithafjoll 4] stronghold of "+GetCastleName("schg_cas04"),bc_all;
mapannounce "schg_cas04","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#sch04_02::Onreset";
initnpctimer;
}

View File

@ -33,8 +33,8 @@ OnRecvCastlesc05:
}
end;
OnAgitStart:
if (agitcheck()) {
OnAgitStart2:
if (agitcheck2()) {
MapRespawnGuildID "schg_cas05",GetCastleData("schg_cas05",1),2;
GvgOn "schg_cas05";
donpcevent "Manager#sch05_02::Onstart";
@ -47,7 +47,7 @@ OnAgitStart:
}
end;
OnAgitEnd:
OnAgitEnd2:
GvgOff "schg_cas05";
if (GetCastleData("schg_cas05",1)) {
KillMonster "schg_cas05","Steward#sch05::OnStartArena";
@ -88,7 +88,7 @@ Onreset:
donpcevent "Control Device01#sch05::OnDisable";
donpcevent "Control Device02#sch05::OnDisable";
donpcevent "Control Device03#sch05::OnDisable";
if (agitcheck()) {
if (agitcheck2()) {
setarray $agit_sc05[0],0,0,1,1,1,0;
}
end;
@ -181,7 +181,7 @@ schg_cas05,123,306,3 script Ef#sch05_01 868,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "[Ef]";
mes "I am Ef, guardian of";
mes "this stronghold. For now,";
@ -786,7 +786,7 @@ schg_cas05,27,36,0 script 1st Guardian Stone#sch05 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1095,7 +1095,7 @@ schg_cas05,208,75,0 script 2nd Guardian Stone#sch05 844,{
close;
}
else {
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFIt is impossible to";
mes "rebuild the Guardian";
mes "Stone because the";
@ -1446,7 +1446,7 @@ schg_cas05,124,52,0 script Control Device01#sch05 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1683,7 +1683,7 @@ schg_cas05,128,157,0 script Control Device02#sch05 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -1922,7 +1922,7 @@ schg_cas05,109,247,0 script Control Device03#sch05 111,{
mes "you're just about done";
mes "with repairing the gate.^000000";
next;
if (agitcheck() == 0) {
if (agitcheck2() == 0) {
mes "^3355FFUnfortunately, the Fortress";
mes "Gate can't be reconstructed:";
mes "the Emperium is no longer here.^000000";
@ -2649,7 +2649,7 @@ OnStartArena:
else if (.msg == 2) {
announce "The [" + getguildname(.@gid) + "] conquered the [Nithafjoll 5] stronghold of "+GetCastleName("schg_cas05"),bc_all;
mapannounce "schg_cas05","The emperium has been shattered!",bc_map,"0x00FF00";
if (agitcheck()) {
if (agitcheck2()) {
donpcevent "Manager#sch05_02::Onreset";
initnpctimer;
}

View File

@ -36,6 +36,8 @@ npc: npc/guild/prtg_cas05.txt
// WoE SE scripts in their purest form, unoptomized.
// To disable any single castle, comment it out.
// --------------------------------------------------------------
// WoE SE time settings.
npc: npc/guild2/agit_start_se.txt
// Town Flags
npc: npc/guild2/guild_flags.txt
// Arunafeltz

View File

@ -3802,6 +3802,24 @@ int atcommand_agitstart(const int fd, struct map_session_data* sd, const char* c
return 0;
}
/*==========================================
*
*------------------------------------------*/
int atcommand_agitstart2(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
nullpo_retr(-1, sd);
if (agit2_flag == 1) {
clif_displaymessage(fd, msg_txt(404)); // "War of Emperium SE is currently in progress."
return -1;
}
agit2_flag = 1;
guild_agit2_start();
clif_displaymessage(fd, msg_txt(403)); // "War of Emperium SE has been initiated."
return 0;
}
/*==========================================
*
*------------------------------------------*/
@ -3820,6 +3838,24 @@ int atcommand_agitend(const int fd, struct map_session_data* sd, const char* com
return 0;
}
/*==========================================
*
*------------------------------------------*/
int atcommand_agitend2(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
nullpo_retr(-1, sd);
if (agit2_flag == 0) {
clif_displaymessage(fd, msg_txt(406)); // "War of Emperium SE is currently not in progress."
return -1;
}
agit2_flag = 0;
guild_agit2_end();
clif_displaymessage(fd, msg_txt(405)); // "War of Emperium SE has been ended."
return 0;
}
/*==========================================
* @mapexit - shuts down the map server
*------------------------------------------*/
@ -8086,7 +8122,7 @@ int atcommand_main(const int fd, struct map_session_data* sd, const char* comman
intif_announce(atcmd_output, strlen(atcmd_output) + 1, 0xFE000000, 0);
// Chat logging type 'M' / Main Chat
if( log_config.chat&1 || (log_config.chat&32 && !(agit_flag && log_config.chat&64)) )
if( log_config.chat&1 || (log_config.chat&32 && !((agit_flag || agit2_flag) && log_config.chat&64)) )
log_chat("M", 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, message);
}
@ -8506,6 +8542,8 @@ AtCommandInfo atcommand_info[] = {
{ "allowks", 6, atcommand_allowks },
{ "cash", 60, atcommand_cash },
{ "points", 60, atcommand_cash },
{ "agitstart2", 60, atcommand_agitstart2 },
{ "agitend2", 60, atcommand_agitend2 },
};

View File

@ -3150,7 +3150,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
{
struct mob_data *md = BL_CAST(BL_MOB, t_bl);
if( !(agit_flag && map[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id )
if( !((agit_flag || agit2_flag) && map[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id )
return 0; // Disable guardians/emperiums owned by Guilds on non-woe times.
break;
}
@ -3213,7 +3213,7 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
case BL_MOB:
{
struct mob_data *md = BL_CAST(BL_MOB, s_bl);
if( !(agit_flag && map[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id )
if( !((agit_flag || agit2_flag) && map[m].flag.gvg_castle) && md->guardian_data && md->guardian_data->guild_id )
return 0; // Disable guardians/emperium owned by Guilds on non-woe times.
if( !md->special_state.ai )

View File

@ -8250,7 +8250,7 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data* sd)
}
// Chat logging type 'O' / Global Chat
if( log_config.chat&1 || (log_config.chat&2 && !(agit_flag && log_config.chat&64)) )
if( log_config.chat&1 || (log_config.chat&2 && !((agit_flag || agit2_flag) && log_config.chat&64)) )
log_chat("O", 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, message);
return;
@ -8509,7 +8509,7 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd)
}
// Chat logging type 'W' / Whisper
if( log_config.chat&1 || (log_config.chat&4 && !(agit_flag && log_config.chat&64)) )
if( log_config.chat&1 || (log_config.chat&4 && !((agit_flag || agit2_flag) && log_config.chat&64)) )
log_chat("W", 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, target, message);
//-------------------------------------------------------//
@ -8566,7 +8566,7 @@ void clif_parse_WisMessage(int fd, struct map_session_data* sd)
}
// Chat logging type 'M' / Main Chat
if( log_config.chat&1 || (log_config.chat&32 && !(agit_flag && log_config.chat&64)) )
if( log_config.chat&1 || (log_config.chat&32 && !((agit_flag || agit2_flag) && log_config.chat&64)) )
log_chat("M", 0, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, message);
return;

View File

@ -64,6 +64,7 @@ struct{
// timer for auto saving guild data during WoE
#define GUILD_SAVE_INTERVAL 300000
int guild_save_timer = INVALID_TIMER;
int guild_save_timer2 = INVALID_TIMER;
int guild_payexp_timer(int tid, unsigned int tick, int id, intptr data);
int guild_save_sub(int tid, unsigned int tick, int id, intptr data);
@ -640,7 +641,7 @@ int guild_invite(struct map_session_data *sd,struct map_session_data *tsd)
if(tsd->status.guild_id>0 ||
tsd->guild_invite>0 ||
(agit_flag && map[tsd->bl.m].flag.gvg_castle))
((agit_flag || agit2_flag) && map[tsd->bl.m].flag.gvg_castle))
{ //Can't invite people inside castles. [Skotlex]
clif_guild_inviteack(sd,0);
return 0;
@ -798,7 +799,7 @@ int guild_leave(struct map_session_data* sd, int guild_id, int account_id, int c
if(sd->status.account_id!=account_id ||
sd->status.char_id!=char_id || sd->status.guild_id!=guild_id ||
(agit_flag && map[sd->bl.m].flag.gvg_castle))
((agit_flag || agit2_flag) && map[sd->bl.m].flag.gvg_castle))
return 0;
intif_guild_leave(sd->status.guild_id, sd->status.account_id, sd->status.char_id,0,mes);
@ -828,7 +829,7 @@ int guild_expulsion(struct map_session_data* sd, int guild_id, int account_id, i
//Can't leave inside guild castles.
if ((tsd = map_id2sd(account_id)) &&
tsd->status.char_id == char_id &&
(agit_flag && map[tsd->bl.m].flag.gvg_castle))
((agit_flag || agit2_flag) && map[tsd->bl.m].flag.gvg_castle))
return 0;
// find the member and perform expulsion
@ -989,7 +990,7 @@ int guild_send_message(struct map_session_data *sd,const char *mes,int len)
guild_recv_message(sd->status.guild_id,sd->status.account_id,mes,len);
// Chat logging type 'G' / Guild Chat
if( log_config.chat&1 || (log_config.chat&16 && !(agit_flag && log_config.chat&64)) )
if( log_config.chat&1 || (log_config.chat&16 && !((agit_flag || agit2_flag) && log_config.chat&64)) )
log_chat("G", sd->status.guild_id, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, mes);
return 0;
@ -1301,7 +1302,7 @@ int guild_reqalliance(struct map_session_data *sd,struct map_session_data *tsd)
struct guild *g[2];
int i;
if(agit_flag) { // Disable alliance creation during woe [Valaris]
if(agit_flag || agit2_flag) { // Disable alliance creation during woe [Valaris]
clif_displaymessage(sd->fd,"Alliances cannot be made during Guild Wars!");
return 0;
} // end addition [Valaris]
@ -1414,7 +1415,7 @@ int guild_delalliance(struct map_session_data *sd,int guild_id,int flag)
{
nullpo_retr(0, sd);
if(agit_flag) { // Disable alliance breaking during woe [Valaris]
if(agit_flag || agit2_flag) { // Disable alliance breaking during woe [Valaris]
clif_displaymessage(sd->fd,"Alliances cannot be broken during Guild Wars!");
return 0;
} // end addition [Valaris]
@ -1854,8 +1855,10 @@ int guild_castlealldataload(int len,struct guild_castle *gc)
for( i = n-1; i >= 0 && !(gc[i].guild_id); --i );
ev = i; // offset of castle or -1
if( ev < 0 ) //No castles owned, invoke OnAgitInit as it is.
if( ev < 0 ) { //No castles owned, invoke OnAgitInit as it is.
npc_event_doall("OnAgitInit");
npc_event_doall("OnAgitInit2");
}
else // load received castles into memory, one by one
for( i = 0; i < n; i++, gc++ )
{
@ -1872,8 +1875,10 @@ int guild_castlealldataload(int len,struct guild_castle *gc)
{
if( i != ev )
guild_request_info(c->guild_id);
else // last owned one
else { // last owned one
guild_npc_request_info(c->guild_id, "::OnAgitInit");
guild_npc_request_info(c->guild_id, "::OnAgitInit2");
}
}
}
@ -1898,6 +1903,24 @@ int guild_agit_end(void)
return 0;
}
int guild_agit2_start(void)
{ // Run All NPC_Event[OnAgitStart2]
int c = npc_event_doall("OnAgitStart2");
ShowStatus("NPC_Event:[OnAgitStart2] Run (%d) Events by @AgitStart2.\n",c);
// Start auto saving
guild_save_timer2 = add_timer_interval (gettick() + GUILD_SAVE_INTERVAL, guild_save_sub, 0, 0, GUILD_SAVE_INTERVAL);
return 0;
}
int guild_agit2_end(void)
{ // Run All NPC_Event[OnAgitEnd2]
int c = npc_event_doall("OnAgitEnd2");
ShowStatus("NPC_Event:[OnAgitEnd2] Run (%d) Events by @AgitEnd2.\n",c);
// Stop auto saving
delete_timer (guild_save_timer2, guild_save_sub);
return 0;
}
int guild_save_sub(int tid, unsigned int tick, int id, intptr data)
{
static int Gid[MAX_GUILDCASTLE]; // previous owning guild

View File

@ -100,6 +100,9 @@ int guild_castlealldataload(int len,struct guild_castle *gc);
int guild_agit_start(void);
int guild_agit_end(void);
int guild_agit2_start(void);
int guild_agit2_end(void);
void do_final_guild(void);
#endif /* _GUILD_H_ */

View File

@ -122,6 +122,7 @@ int autosave_interval = DEFAULT_AUTOSAVE_INTERVAL;
int minsave_interval = 100;
int save_settings = 0xFFFF;
int agit_flag = 0;
int agit2_flag = 0;
int night_flag = 0; // 0=day, 1=night [Yor]
struct charid_request {

View File

@ -156,9 +156,9 @@ enum {
#define DEFAULT_AUTOSAVE_INTERVAL 5*60*1000
//Specifies maps where players may hit each other
#define map_flag_vs(m) (map[m].flag.pvp || map[m].flag.gvg_dungeon || map[m].flag.gvg || (agit_flag && map[m].flag.gvg_castle))
#define map_flag_vs(m) (map[m].flag.pvp || map[m].flag.gvg_dungeon || map[m].flag.gvg || ((agit_flag || agit2_flag) && map[m].flag.gvg_castle))
//Specifies maps that have special GvG/WoE restrictions
#define map_flag_gvg(m) (map[m].flag.gvg || (agit_flag && map[m].flag.gvg_castle))
#define map_flag_gvg(m) (map[m].flag.gvg || ((agit_flag || agit2_flag) && map[m].flag.gvg_castle))
//Specifies if the map is tagged as GvG/WoE (regardless of agit_flag status)
#define map_flag_gvg2(m) (map[m].flag.gvg || map[m].flag.gvg_castle)
// No Kill Steal Protection
@ -496,6 +496,7 @@ extern int autosave_interval;
extern int minsave_interval;
extern int save_settings;
extern int agit_flag;
extern int agit2_flag;
extern int night_flag; // 0=day, 1=night [Yor]
extern int enable_spy; //Determines if @spy commands are active.
extern char db_path[256];

View File

@ -675,7 +675,7 @@ int party_send_message(struct map_session_data *sd,const char *mes,int len)
party_recv_message(sd->status.party_id,sd->status.account_id,mes,len);
// Chat logging type 'P' / Party Chat
if( log_config.chat&1 || (log_config.chat&8 && !(agit_flag && log_config.chat&64)) )
if( log_config.chat&1 || (log_config.chat&8 && !((agit_flag || agit2_flag) && log_config.chat&64)) )
log_chat("P", sd->status.party_id, sd->status.char_id, sd->status.account_id, mapindex_id2name(sd->mapindex), sd->bl.x, sd->bl.y, NULL, mes);
return 0;

View File

@ -9079,6 +9079,22 @@ BUILDIN_FUNC(agitend)
return 0;
}
BUILDIN_FUNC(agitstart2)
{
if(agit2_flag==1) return 0; // Agit2 already Start.
agit2_flag=1;
guild_agit2_start();
return 0;
}
BUILDIN_FUNC(agitend2)
{
if(agit2_flag==0) return 0; // Agit2 already End.
agit2_flag=0;
guild_agit2_end();
return 0;
}
/*==========================================
* Returns whether woe is on or off. // choice script
*------------------------------------------*/
@ -9088,6 +9104,15 @@ BUILDIN_FUNC(agitcheck)
return 0;
}
/*==========================================
* Returns whether woese is on or off. // choice script
*------------------------------------------*/
BUILDIN_FUNC(agitcheck2)
{
script_pushint(st,agit2_flag);
return 0;
}
/// Sets the guild_id of this npc.
///
/// flagemblem <guild_id>;
@ -13419,5 +13444,9 @@ struct script_function buildin_func[] = {
BUILDIN_DEF(mercenary_get_faith,"i"),
BUILDIN_DEF(mercenary_set_calls,"ii"),
BUILDIN_DEF(mercenary_set_faith,"ii"),
// WoE SE
BUILDIN_DEF(agitstart2,""),
BUILDIN_DEF(agitend2,""),
BUILDIN_DEF(agitcheck2,""),
{NULL,NULL,NULL},
};

View File

@ -340,7 +340,7 @@ int skillnotok (int skillid, struct map_session_data *sd)
return 1;
if(map_flag_gvg(m) && skill_get_nocast (skillid) & 4)
return 1;
if(agit_flag && skill_get_nocast (skillid) & 8)
if((agit_flag || agit2_flag) && skill_get_nocast (skillid) & 8)
return 1;
if(map[m].flag.restricted && map[m].zone && skill_get_nocast (skillid) & (8*map[m].zone))
return 1;
@ -379,7 +379,7 @@ int skillnotok (int skillid, struct map_session_data *sd)
break;
case GD_EMERGENCYCALL:
if (
!(battle_config.emergency_call&(agit_flag?2:1)) ||
!(battle_config.emergency_call&((agit_flag || agit2_flag)?2:1)) ||
!(battle_config.emergency_call&(map[m].flag.gvg || map[m].flag.gvg_castle?8:4)) ||
(battle_config.emergency_call&16 && map[m].flag.nowarpto && !map[m].flag.gvg_castle)
) {

View File

@ -170,7 +170,7 @@ static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr data)
} else
sd->areanpc_id=0;
if (sd->state.gmaster_flag &&
(battle_config.guild_aura&(agit_flag?2:1)) &&
(battle_config.guild_aura&((agit_flag || agit2_flag)?2:1)) &&
(battle_config.guild_aura&(map_flag_gvg2(bl->m)?8:4))
)
{ //Guild Aura: Likely needs to be recoded, this method seems inefficient.