瀏覽代碼

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
L0ne_W0lf 16 年之前
父節點
當前提交
331e0a0a15

+ 3 - 0
Changelog-Trunk.txt

@@ -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.

+ 5 - 0
conf/msg_athena.conf

@@ -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

+ 19 - 6
doc/script_commands.txt

@@ -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.
 
 ---------------------------------------

+ 1 - 0
npc/Changelog.txt

@@ -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]

+ 51 - 0
npc/guild2/agit_start_se.txt

@@ -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;
+}

+ 11 - 11
npc/guild2/arug_cas01.txt

@@ -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;
 		}

+ 11 - 11
npc/guild2/arug_cas02.txt

@@ -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;
 		}

+ 11 - 11
npc/guild2/arug_cas03.txt

@@ -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;
 		}

+ 11 - 11
npc/guild2/arug_cas04.txt

@@ -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;
 		}

+ 11 - 11
npc/guild2/arug_cas05.txt

@@ -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;
 		}

+ 11 - 11
npc/guild2/schg_cas01.txt

@@ -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;
 		}

+ 11 - 11
npc/guild2/schg_cas02.txt

@@ -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;
 		}

+ 11 - 11
npc/guild2/schg_cas03.txt

@@ -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;
 		}

+ 11 - 11
npc/guild2/schg_cas04.txt

@@ -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;
 		}

+ 11 - 11
npc/guild2/schg_cas05.txt

@@ -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;
 		}

+ 2 - 0
npc/scripts_guild.conf

@@ -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

+ 39 - 1
src/map/atcommand.c

@@ -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 },
 };
 
 

+ 2 - 2
src/map/battle.c

@@ -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 )

+ 3 - 3
src/map/clif.c

@@ -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;

+ 31 - 8
src/map/guild.c

@@ -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

+ 3 - 0
src/map/guild.h

@@ -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_ */

+ 1 - 0
src/map/map.c

@@ -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 {

+ 3 - 2
src/map/map.h

@@ -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];

+ 1 - 1
src/map/party.c

@@ -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;

+ 29 - 0
src/map/script.c

@@ -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},
 };

+ 2 - 2
src/map/skill.c

@@ -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)
 			)	{

+ 1 - 1
src/map/unit.c

@@ -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.