summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--conf/msg_athena.conf5
-rw-r--r--doc/script_commands.txt25
-rw-r--r--npc/Changelog.txt1
-rw-r--r--npc/guild2/agit_start_se.txt51
-rw-r--r--npc/guild2/arug_cas01.txt22
-rw-r--r--npc/guild2/arug_cas02.txt22
-rw-r--r--npc/guild2/arug_cas03.txt22
-rw-r--r--npc/guild2/arug_cas04.txt22
-rw-r--r--npc/guild2/arug_cas05.txt22
-rw-r--r--npc/guild2/schg_cas01.txt22
-rw-r--r--npc/guild2/schg_cas02.txt22
-rw-r--r--npc/guild2/schg_cas03.txt22
-rw-r--r--npc/guild2/schg_cas04.txt22
-rw-r--r--npc/guild2/schg_cas05.txt22
-rw-r--r--npc/scripts_guild.conf2
-rw-r--r--src/map/atcommand.c40
-rw-r--r--src/map/battle.c4
-rw-r--r--src/map/clif.c6
-rw-r--r--src/map/guild.c39
-rw-r--r--src/map/guild.h3
-rw-r--r--src/map/map.c1
-rw-r--r--src/map/map.h5
-rw-r--r--src/map/party.c2
-rw-r--r--src/map/script.c29
-rw-r--r--src/map/skill.c4
-rw-r--r--src/map/unit.c2
27 files changed, 306 insertions, 136 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index 2f5a2ffe1..786cfb281 100644
--- a/Changelog-Trunk.txt
+++ b/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.
diff --git a/conf/msg_athena.conf b/conf/msg_athena.conf
index 2fcf01013..734264578 100644
--- a/conf/msg_athena.conf
+++ b/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
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 8b860eb33..c8737ac51 100644
--- a/doc/script_commands.txt
+++ b/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.
---------------------------------------
diff --git a/npc/Changelog.txt b/npc/Changelog.txt
index ebe029a45..e38ff860d 100644
--- a/npc/Changelog.txt
+++ b/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]
diff --git a/npc/guild2/agit_start_se.txt b/npc/guild2/agit_start_se.txt
new file mode 100644
index 000000000..744f3dea0
--- /dev/null
+++ b/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;
+}
diff --git a/npc/guild2/arug_cas01.txt b/npc/guild2/arug_cas01.txt
index 5fa19ff70..e9cf38751 100644
--- a/npc/guild2/arug_cas01.txt
+++ b/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;
}
diff --git a/npc/guild2/arug_cas02.txt b/npc/guild2/arug_cas02.txt
index d09b4ce38..4505dc66b 100644
--- a/npc/guild2/arug_cas02.txt
+++ b/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;
}
diff --git a/npc/guild2/arug_cas03.txt b/npc/guild2/arug_cas03.txt
index 12fff2581..0578f2aa2 100644
--- a/npc/guild2/arug_cas03.txt
+++ b/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;
}
diff --git a/npc/guild2/arug_cas04.txt b/npc/guild2/arug_cas04.txt
index 7348d4559..c863a4aae 100644
--- a/npc/guild2/arug_cas04.txt
+++ b/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;
}
diff --git a/npc/guild2/arug_cas05.txt b/npc/guild2/arug_cas05.txt
index 5fe840ea6..ab23d11b0 100644
--- a/npc/guild2/arug_cas05.txt
+++ b/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;
}
diff --git a/npc/guild2/schg_cas01.txt b/npc/guild2/schg_cas01.txt
index 8492b78e9..daff2fd2a 100644
--- a/npc/guild2/schg_cas01.txt
+++ b/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;
}
diff --git a/npc/guild2/schg_cas02.txt b/npc/guild2/schg_cas02.txt
index e9ba924d9..8e835a743 100644
--- a/npc/guild2/schg_cas02.txt
+++ b/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;
}
diff --git a/npc/guild2/schg_cas03.txt b/npc/guild2/schg_cas03.txt
index 71be08f1c..6717aeab4 100644
--- a/npc/guild2/schg_cas03.txt
+++ b/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;
}
diff --git a/npc/guild2/schg_cas04.txt b/npc/guild2/schg_cas04.txt
index d98277985..a7ec5c6ee 100644
--- a/npc/guild2/schg_cas04.txt
+++ b/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;
}
diff --git a/npc/guild2/schg_cas05.txt b/npc/guild2/schg_cas05.txt
index 8bc0b6aea..8833733b4 100644
--- a/npc/guild2/schg_cas05.txt
+++ b/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;
}
diff --git a/npc/scripts_guild.conf b/npc/scripts_guild.conf
index 313fa7dc8..0ac20252b 100644
--- a/npc/scripts_guild.conf
+++ b/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
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index f734b76da..26d53acbe 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -3805,6 +3805,24 @@ int atcommand_agitstart(const int fd, struct map_session_data* sd, const char* c
/*==========================================
*
*------------------------------------------*/
+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;
+}
+
+/*==========================================
+ *
+ *------------------------------------------*/
int atcommand_agitend(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
nullpo_retr(-1, sd);
@@ -3821,6 +3839,24 @@ int atcommand_agitend(const int fd, struct map_session_data* sd, const char* com
}
/*==========================================
+ *
+ *------------------------------------------*/
+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
*------------------------------------------*/
int atcommand_mapexit(const int fd, struct map_session_data* sd, const char* command, const char* message)
@@ -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 },
};
diff --git a/src/map/battle.c b/src/map/battle.c
index 1140c6640..8dc6eb394 100644
--- a/src/map/battle.c
+++ b/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 )
diff --git a/src/map/clif.c b/src/map/clif.c
index f6014fe3a..489a765cf 100644
--- a/src/map/clif.c
+++ b/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;
diff --git a/src/map/guild.c b/src/map/guild.c
index fced17189..8af73acba 100644
--- a/src/map/guild.c
+++ b/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
diff --git a/src/map/guild.h b/src/map/guild.h
index 61c02124b..67cfd3544 100644
--- a/src/map/guild.h
+++ b/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_ */
diff --git a/src/map/map.c b/src/map/map.c
index 61c827ff0..d1da19e7f 100644
--- a/src/map/map.c
+++ b/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 {
diff --git a/src/map/map.h b/src/map/map.h
index 4a8be92ed..01ac74cba 100644
--- a/src/map/map.h
+++ b/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];
diff --git a/src/map/party.c b/src/map/party.c
index 07ce7634d..a6f2c454f 100644
--- a/src/map/party.c
+++ b/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;
diff --git a/src/map/script.c b/src/map/script.c
index dc1a0fa6d..ceb0dab50 100644
--- a/src/map/script.c
+++ b/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},
};
diff --git a/src/map/skill.c b/src/map/skill.c
index 2b242821d..1a8cdf0a1 100644
--- a/src/map/skill.c
+++ b/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)
) {
diff --git a/src/map/unit.c b/src/map/unit.c
index 59924a108..4003e89c6 100644
--- a/src/map/unit.c
+++ b/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.