//===== eAthena Script ======================================= //= War of Emperium Guild Event AgitStart/AgitBreak Functions //===== By: ================================================== //= jAthena - kalen (1.0) //= 1.1 by Akaru, ho|yAnge|X, and Valaris //===== Current Version: ===================================== //= 1.6 //===== Compatible With: ===================================== //= eAthena 0.1+; RO Episode 4+ //===== Description: ========================================= //= F_AgitStart is in charge of spawning Emperium and mobs in castles //= when WoE is started. //= F_AgitBreak resets guild castle data when a castle has been taken over. //= It then sets the data for the new guild master if there is one. //======================================= //= Break down of arguments used in F_AgitStart: //= arg(0): name of specific guild castle. //= arg(1): name of specific agit castle script. //= arg(2): x1 for Emperium coordinates. //= arg(3): y1 for Emperium coordinates. //= Break down of arguments used in F_AgitBreak: //= arg(0): name of specific guild castle. //= arg(1): name of specific OnRevCastle label. //===== Additional Comments: ================================= //= v1.2: All OnAgitStart and OnAgitBreak calls will use these functions.[kobra_k88] //= v1.2a: Added OnAgitEnd function.[kobra_k88] //= 1.3 Added code for abandoning captured castles on /breakguild [Lupus] //= 1.3a fixed Defence / Economy underflow [Lupus] thanks2 kyoki //= 1.4 updated a couple mapannounces in OnAgitBreak. [L0ne_W0lf] //= 1.5 Changed the names of the Kafra from "Service" to "Staff" [L0ne_W0lf] //= 1.6 Fixed the OnAgitBreak message being map-only and not global. (Lil DomX) [L0ne_W0lf] //============================================================ // Function for OnAgitStart ========================================= function script F_AgitStart { set .@map$, getarg(0); set .@castle$, getarg(1); set .@empx, getarg(2); set .@empy, getarg(3); MapRespawnGuildID .@map$,GetCastleData(.@map$,1),2; monster .@map$,.@empx,.@empy,"EMPERIUM",1288,1,"Agit_"+.@castle$+"::OnAgitBreak"; GvgOn .@map$; if (GetCastleData(.@map$,1) != 0) return; if(.@map$ == "aldeg_cas01" || .@map$ == "aldeg_cas02" || .@map$ == "aldeg_cas03" || .@map$ == "aldeg_cas04" || .@map$ == "aldeg_cas05" || .@map$ == "nguild_alde") goto L_AldegCas; if(.@map$ == "gefg_cas01" || .@map$ == "gefg_cas02" || .@map$ == "gefg_cas03" || .@map$ == "gefg_cas04" || .@map$ == "gefg_cas05" || .@map$ == "nguild_gef" ) goto L_GefgCas; if(.@map$ == "payg_cas01" || .@map$ == "payg_cas02" || .@map$ == "payg_cas03" || .@map$ == "payg_cas04" || .@map$ == "payg_cas05" || .@map$ == "nguild_pay" ) goto L_PaygCas; if(.@map$ == "prtg_cas01" || .@map$ == "prtg_cas02" || .@map$ == "prtg_cas03" || .@map$ == "prtg_cas04" || .@map$ == "prtg_cas05" || .@map$ == "nguild_prt" ) goto L_PrtgCas; L_AldegCas: areamonster .@map$,0,0,300,300,"--ja--",1117,10; areamonster .@map$,0,0,300,300,"--ja--",1132,4; areamonster .@map$,0,0,300,300,"--ja--",1219,2; areamonster .@map$,0,0,300,300,"--ja--",1205,1; areamonster .@map$,0,0,300,300,"--ja--",1216,10; areamonster .@map$,0,0,300,300,"--ja--",1193,17; areamonster .@map$,0,0,300,300,"--ja--",1269,9; areamonster .@map$,0,0,300,300,"--ja--",1276,7; areamonster .@map$,0,0,300,300,"--ja--",1208,3; areamonster .@map$,0,0,300,300,"--ja--",1275,1; areamonster .@map$,0,0,300,300,"--ja--",1268,1; areamonster .@map$,0,0,300,300,"--ja--",1272,1; monster .@map$,.@empx+1,.@empy,"--ja--",1272,1; monster .@map$,.@empx-1,.@empy,"--ja--",1270,4; monster .@map$,.@empx,.@empy+1,"--ja--",1268,1; monster .@map$,.@empx,.@empy-1,"--ja--",1219,1; monster .@map$,.@empx,.@empy,"--ja--",1276,5; return; L_GefgCas: areamonster .@map$,0,0,300,300,"--ja--",1117,10; areamonster .@map$,0,0,300,300,"--ja--",1263,11; areamonster .@map$,0,0,300,300,"--ja--",1102,10; areamonster .@map$,0,0,300,300,"--ja--",1130,10; areamonster .@map$,0,0,300,300,"--ja--",1140,20; areamonster .@map$,0,0,300,300,"--ja--",1163,9; areamonster .@map$,0,0,300,300,"--ja--",1275,1; areamonster .@map$,0,0,300,300,"--ja--",1219,1; areamonster .@map$,0,0,300,300,"--ja--",1150,1; areamonster .@map$,0,0,300,300,"--ja--",1159,1; monster .@map$,.@empx+1,.@empy,"--ja--",1203,1; monster .@map$,.@empx-1,.@empy,"--ja--",1087,1; monster .@map$,.@empx,.@empy+1,"--ja--",1213,7; monster .@map$,.@empx,.@empy-1,"--ja--",1189,7; return; L_PaygCas: areamonster .@map$,0,0,300,300,"--ja--",1277,10; areamonster .@map$,0,0,300,300,"--ja--",1208,10; areamonster .@map$,0,0,300,300,"--ja--",1262,5; areamonster .@map$,0,0,300,300,"--ja--",1102,5; areamonster .@map$,0,0,300,300,"--ja--",1150,1; areamonster .@map$,0,0,300,300,"--ja--",1115,1; areamonster .@map$,0,0,300,300,"--ja--",1129,11; areamonster .@map$,0,0,300,300,"--ja--",1276,5; areamonster .@map$,0,0,300,300,"--ja--",1282,4; areamonster .@map$,0,0,300,300,"--ja--",1253,5; monster .@map$,.@empx,.@empy,"--ja--",1150,1; monster .@map$,.@empx,.@empy,"--ja--",1115,1; monster .@map$,.@empx,.@empy+1,"--ja--",1208,6; monster .@map$,.@empx,.@empy-1,"--ja--",1276,5; return; L_PrtgCas: areamonster .@map$,0,0,300,300,"--ja--",1163,15; areamonster .@map$,0,0,300,300,"--ja--",1132,10; areamonster .@map$,0,0,300,300,"--ja--",1219,5; areamonster .@map$,0,0,300,300,"--ja--",1268,5; areamonster .@map$,0,0,300,300,"--ja--",1251,1; areamonster .@map$,0,0,300,300,"--ja--",1252,1; areamonster .@map$,0,0,300,300,"--ja--",1276,5; areamonster .@map$,0,0,300,300,"--ja--",1259,1; areamonster .@map$,0,0,300,300,"--ja--",1283,1; areamonster .@map$,0,0,300,300,"--ja--",1275,1; areamonster .@map$,0,0,300,300,"--ja--",1200,1; monster .@map$,.@empx+1,.@empy,"--ja--",1268,1; monster .@map$,.@empx-1,.@empy,"--ja--",1251,1; monster .@map$,.@empx,.@empy+1,"--ja--",1252,1; monster .@map$,.@empx,.@empy-1,"--ja--",1219,2; monster .@map$,.@empx,.@empy,"--ja--",1276,5; return; } // Function for OnGuildBreak ====================================== function script F_GuildBreak { set .@map$, getarg(0); set .@castle$, getarg(1); killmonsterall .@map$; Announce "Guild Base [" + GetCastleName(.@map$) + "] has been abandoned.",0; disablenpc "Kafra Staff#"+.@castle$; SetCastleData .@map$,0,0; return; } // Function for OnAgitBreak ====================================== function script F_AgitBreak { set .@map$, getarg(0); set .@castle$, getarg(1); //killmonsterall .@map$; set @GID,getcharid(2); if (@GID <= 0) return; set @Economy,GetCastleData(.@map$,2) - 5; if (@Economy < 0) set @Economy, 0; SetCastleData .@map$,2, @Economy; set @Defence,GetCastleData(.@map$,3) - 5; if (@Defence < 0) set @Defence, 0; SetCastleData .@map$,3, @Defence; SetCastleData .@map$,1, @GID; MapAnnounce .@map$,"The emperium has been destroyed.",bc_map,0x00CCFF; Announce "The [" + GetCastleName(.@map$) + "] castle has been conquered by the [" + GetGuildName(@GID) + "] guild.",bc_all; GetCastleData .@map$,0,"::OnRecvCastle"+@castle$; disablenpc "Kafra Staff#"+.@castle$; set @i, 3; L_Loop: set @i, @i + 1; SetCastleData .@map$,@i,0; if(@i < 25) goto L_Loop; return; } // Function for OnAgitEnd ====================================== function script F_AgitEnd { set .@map$, getarg(0); set .@castle$, getarg(1); GvgOff .@map$; // if (GetCastleData(.@map$,1) == 0) return; //enable this line to allow take over of non captured castles after woe ends MapRespawnGuildID .@map$,GetCastleData(.@map$,1),4; KillMonster .@map$,"Agit_"+.@castle$+"::OnAgitBreak"; end; }