summaryrefslogtreecommitdiff
path: root/npc/re/events/nguild
diff options
context:
space:
mode:
Diffstat (limited to 'npc/re/events/nguild')
-rw-r--r--npc/re/events/nguild/nguild_dunsw.txt67
-rw-r--r--npc/re/events/nguild/nguild_ev_agit.txt216
-rw-r--r--npc/re/events/nguild/nguild_flags.txt192
-rw-r--r--npc/re/events/nguild/nguild_guardians.txt89
-rw-r--r--npc/re/events/nguild/nguild_kafras.txt71
-rw-r--r--npc/re/events/nguild/nguild_managers.txt174
-rw-r--r--npc/re/events/nguild/nguild_treas.txt167
-rw-r--r--npc/re/events/nguild/nguild_warper.txt111
8 files changed, 1087 insertions, 0 deletions
diff --git a/npc/re/events/nguild/nguild_dunsw.txt b/npc/re/events/nguild/nguild_dunsw.txt
new file mode 100644
index 000000000..8a34362f3
--- /dev/null
+++ b/npc/re/events/nguild/nguild_dunsw.txt
@@ -0,0 +1,67 @@
+//===== rAthena Script =======================================
+//= War of Emperium Dungeon Switch for NGuild Castles
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.1
+//===== Compatible With: =====================================
+//= rAthena 0.1+; RO Episode 4+
+//===== Description: =========================================
+//= Switch that warps guild members to the guild dungeon
+//===== Additional Comments: =================================
+//= Based off existing guild scripts. Do not know if it is accurate.[kobra_k88]
+//= 1.1 Guild Dungeon Switch Fucntion added. [L0ne_W0lf]
+//============================================================
+
+
+//==================================================
+function script F_GldDunSw {
+ set .@GID, GetCastleData(getarg(0),1);
+ if (.@GID == 0) {
+ mes "[ Echoing Voice ]";
+ mes " ' The one who can overcome an ordeal and show true bravery... will find the way... ' ";
+ close;
+ }
+ else {
+ mes "[ Echoing Voice ]";
+ mes " ' Only the one who can show true bravery can take this test. '";
+ next;
+ mes " ";
+ mes "There's a small lever. Will you pull it?";
+ next;
+
+ if (select("Pull.:Do not.") == 1) {
+ if (getcharid(2) == .@GID) {
+ warp "gld_dun"+getarg(1),getarg(2),getarg(3);
+ end;
+ }
+ mes " ";
+ mes " Nothing happened.";
+ }
+ return;
+ }
+}
+
+// Castle 1 ===============================================
+nguild_alde,212,181,0 script Switch#DunN01 111,{
+ callfunc "F_GldDunSw","nguild_alde","02",32,122;
+ close;
+}
+
+// Castle 2 ===============================================
+nguild_gef,78,84,0 script Switch#DunN02 111,{
+ callfunc "F_GldDunSw","nguild_gef","04",39,258;
+ close;
+}
+
+// Castle 3 ===============================================
+nguild_pay,101,25,0 script Switch#DunN03 111,{
+ callfunc "F_GldDunSw","nguild_pay","01",186,165;
+ close;
+}
+
+// Castle 4 ===============================================
+nguild_prt,94,200,0 script Switch#DunN04 111,{
+ callfunc "F_GldDunSw","nguild_prt","03",28,251;
+ close;
+}
diff --git a/npc/re/events/nguild/nguild_ev_agit.txt b/npc/re/events/nguild/nguild_ev_agit.txt
new file mode 100644
index 000000000..1dad83b83
--- /dev/null
+++ b/npc/re/events/nguild/nguild_ev_agit.txt
@@ -0,0 +1,216 @@
+//===== rAthena Script =======================================
+//= War of Emperium - NGuild Wars Events
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.5
+//===== Compatible With: =====================================
+//= rAthena 0.1+; RO Episode 4+
+//===== Description: =========================================
+//= Event Triggers for NGuild Wars
+//===== Additional Comments: =================================
+// Based off existing guild scripts. Do not know if it is accurate.[kobra_k88]
+//= 1.3 Added code for abandoning captured castles on /breakguild [Lupus]
+//= 1.4 AGIT Functions added, treasure spawning added. [L0ne_W0lf]
+//= 1.5 Emperium should now properly respawn. [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;
+ end;
+}
+
+// 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);
+
+ 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;
+ donpcevent "::OnRecvCastle"+.@castle$;
+
+ disablenpc "Kafra Staff#"+.@castle$;
+
+ // remove investment data and kafra
+ for( set .@i, 4; .@i <= 9; set .@i, .@i+1 )
+ SetCastleData .@map$, .@i, 0;
+
+ // if the new guild doesn't have Guardian Research, erase guardians
+ if( getgdskilllv(.@GID,10002) == 0 )
+ for( set .@i, 10; .@i <= 17; set .@i, .@i+1 )
+ SetCastleData .@map$, .@i, 0;
+
+ return;
+}
+
+
+// Function for OnAgitEnd ======================================
+function script F_AgitEnd {
+ set .@map$, getarg(0);
+ set .@castle$, getarg(1);
+
+ GvgOff .@map$;
+ // Disable the following if statment to keep empty
+ // castles from being aquired after after WoE ends.
+ if (GetCastleData(.@map$,1) == 0) return;
+ MapRespawnGuildID .@map$,GetCastleData(.@map$,1),4;
+ KillMonster .@map$,"Agit_"+.@castle$+"::OnAgitBreak";
+ end;
+}
+
+// Castle 1 ================================================================
+nguild_alde,0,0,0 script Agit_N01 -1,{
+OnInterIfInitOnce:
+ donpcevent "::OnRecvCastleN01";
+ end;
+OnRecvCastleN01:
+ RequestGuildInfo GetCastleData("nguild_alde",1);
+ end;
+OnAgitStart:
+ callfunc "F_AgitStart","nguild_alde","N01",216,24;
+ end;
+OnAgitBreak:
+ callfunc "F_AgitBreak","nguild_alde","N01";
+ goto OnAgitEliminate;
+ end;
+OnGuildBreak:
+ callfunc "F_GuildBreak","nguild_alde","N01";
+ end;
+OnAgitEliminate:
+ MapRespawnGuildID "nguild_alde",GetCastleData("nguild_alde",1),6;
+ Monster "nguild_alde",216,24,"EMPERIUM",1288,1,"Agit_N01::OnAgitBreak";
+ end;
+OnAgitEnd:
+ callfunc "F_AgitEnd","nguild_alde","N01";
+ end;
+}
+
+// Castle 2 ================================================================
+nguild_gef,0,0,0 script Agit_N02 -1,{
+OnInterIfInitOnce:
+ donpcevent "::OnRecvCastleN02";
+ end;
+OnRecvCastleN02:
+ RequestGuildInfo GetCastleData("nguild_gef",1);
+ end;
+OnAgitStart:
+ callfunc "F_AgitStart","nguild_gef","N02",198,182;
+ end;
+OnAgitBreak:
+ callfunc "F_AgitBreak","nguild_gef","N02";
+ goto OnAgitEliminate;
+ end;
+OnGuildBreak:
+ callfunc "F_GuildBreak","nguild_gef","N02";
+ end;
+OnAgitEliminate:
+ MapRespawnGuildID "nguild_gef",GetCastleData("nguild_gef",1),6;
+ Monster "nguild_gef",198,182,"EMPERIUM",1288,1,"Agit_N02::OnAgitBreak";
+ end;
+OnAgitEnd:
+ callfunc "F_AgitEnd","nguild_gef","N02";
+ end;
+}
+
+// Castle 3 ================================================================
+nguild_pay,0,0,0 script Agit_N03 -1,{
+OnInterIfInitOnce:
+ donpcevent "::OnRecvCastleN03";
+ end;
+OnRecvCastleN03:
+ RequestGuildInfo GetCastleData("nguild_pay",1);
+ end;
+OnAgitStart:
+ callfunc "F_AgitStart","nguild_pay","N03",139,139;
+ end;
+OnAgitBreak:
+ callfunc "F_AgitBreak","nguild_pay","N03";
+ goto OnAgitEliminate;
+ end;
+OnGuildBreak:
+ callfunc "F_GuildBreak","nguild_pay","N03";
+ end;
+OnAgitEliminate:
+ MapRespawnGuildID "nguild_pay",GetCastleData("nguild_pay",1),6;
+ Monster "nguild_pay",139,139,"EMPERIUM",1288,1,"Agit_N03::OnAgitBreak";
+ end;
+OnAgitEnd:
+ callfunc "F_AgitEnd","nguild_pay","N03";
+ end;
+}
+
+// Castle 4 ================================================================
+nguild_prt,0,0,0 script Agit_N04 -1,{
+OnInterIfInitOnce:
+ donpcevent "::OnRecvCastleN04";
+ end;
+OnRecvCastleN04:
+ RequestGuildInfo GetCastleData("nguild_prt",1);
+ end;
+OnAgitStart:
+ callfunc "F_AgitStart","nguild_prt","N04",197,197;
+ end;
+OnAgitBreak:
+ callfunc "F_AgitBreak","nguild_prt","N04";
+ goto OnAgitEliminate;
+ end;
+OnGuildBreak:
+ callfunc "F_GuildBreak","nguild_prt","N04";
+ end;
+OnAgitEliminate:
+ MapRespawnGuildID "nguild_prt",GetCastleData("nguild_prt",1),6;
+ Monster "nguild_prt",197,197,"EMPERIUM",1288,1,"Agit_N04::OnAgitBreak";
+ end;
+OnAgitEnd:
+ callfunc "F_AgitEnd","nguild_prt","N04";
+ end;
+}
+
+// Treasure Spawn Time
+//========================================
+- script TreasSpawn -1,{
+ end;
+
+OnClock0005:
+ callfunc "F_GldTreas","nguild_alde","N01",$boxNumN01,$@bxN01,$@boxIdN01,1324,114,218,123,227,0;
+ callfunc "F_GldTreas","nguild_gef","N02",$boxNumN02,$@bxN02,$@boxIdN02,1334,150,108,158,114,0;
+ callfunc "F_GldTreas","nguild_pay","N03",$boxNumN03,$@bxN03,$@boxIdN03,1344,286,4,295,13,0;
+ callfunc "F_GldTreas","nguild_prt","N04",$boxNumN04,$@bxN04,$@boxIdN04,1354,6,204,15,213,0;
+ end;
+}
diff --git a/npc/re/events/nguild/nguild_flags.txt b/npc/re/events/nguild/nguild_flags.txt
new file mode 100644
index 000000000..1642c4419
--- /dev/null
+++ b/npc/re/events/nguild/nguild_flags.txt
@@ -0,0 +1,192 @@
+//===== rAthena Script =======================================
+//= War of Emperium N Guild Flags
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.3
+//===== Compatible With: =====================================
+//= rAthena 0.1+; RO Episode 4+
+//===== Description: =========================================
+//= WoE flag scripts. Display guild emblems on flags.
+//===== Additional Comments: =================================
+// Based off existing guild scripts. Do not know if it is accurate.[kobra_k88]
+// 1.1 Inner Flags don't teleport you to your HQ anymore [Lupus]
+// 1.2 updated flags to use the new arguments. [L0ne__W0lf]
+// 1.3 Guild flag function added. [L0ne_W0lf]
+//============================================================
+
+/// Flag Function
+//============================================================
+function script F_Flags {
+ set .@GID, GetCastleData(getarg(1),1);
+ if (getarg(5) == 0) return;
+ if (.@GID == 0) {
+ mes " [ Edict of the Divine Rune Midgard Kingdom ]";
+ mes " ";
+ mes "1. Follow the ordinance of The Divine Rune Midgard Kingdom, ";
+ mes "We declare that";
+ mes "there is no formal master of this castle.";
+ mes " ";
+ mes "2. To the one who can ";
+ mes "overcome all trials";
+ mes "and destroy the Emperium,";
+ mes "the king will endow the one with";
+ mes "ownership of this castle.";
+ return;
+ }
+ else {
+ if (getcharid(2) == .@GID && getarg(4) == 1) {
+ mes "Brave ones...";
+ mes "Do you wish to return to your honorable place?";
+ next;
+ if (select("Return to the guild castle.:Quit.") == 1) {
+ if (getcharid(2) == GetCastleData(getarg(1),1))
+ warp getarg(1),getarg(2),getarg(3);
+ }
+ return;
+ }
+ mes "[ Edict of the Divine Rune Midgard Kingdom ]";
+ mes " ";
+ mes "1. Following the ordinance of the";
+ mes "Divine Rune Midgard Kingdom,";
+ mes "we approve that this place is in";
+ mes "the private possession of ^ff0000" + GetGuildName(.@GID) + "^000000 Guild.";
+ mes " ";
+ mes "2. The guild Master of ^ff0000"+ GetGuildName(.@GID) + "^000000 Guild is";
+ mes "^FF0000" + GetGuildMaster(.@GID) + "^000000";
+ mes "If there is anyone who objects to this,";
+ mes " prove your strength and honor with a steel blade in your hand.";
+ return;
+ }
+}
+
+//============================================================================//
+// Castle 1
+//============================================================================//
+n_castle,110,96,1 script NGuild Aldebaran#a1-1 722,{
+ callfunc "F_Flags","Al De Baran","nguild_alde",218,170,1,1;
+ close;
+
+OnRecvCastleN01:
+ FlagEmblem GetCastleData("nguild_alde",1);
+ end;
+}
+
+nguild_alde,30,248,4 script NGuild Aldebaran#a1-6::NGuildAlde 722,{
+ callfunc "F_Flags","Al De Baran","nguild_alde",218,170,0,1;
+ close;
+
+OnRecvCastleN01:
+ FlagEmblem GetCastleData("nguild_alde",1);
+ end;
+}
+// In Castle ============================================
+nguild_alde,30,246,4 duplicate(NGuildAlde) NGuild Aldebaran#a1-7 722
+nguild_alde,37,248,4 duplicate(NGuildAlde) NGuild Aldebaran#a1-8 722
+nguild_alde,37,246,4 duplicate(NGuildAlde) NGuild Aldebaran#a1-9 722
+nguild_alde,95,80,2 duplicate(NGuildAlde) NGuild Aldebaran#a1-10 722
+nguild_alde,95,59,2 duplicate(NGuildAlde) NGuild Aldebaran#a1-11 722
+nguild_alde,62,75,2 duplicate(NGuildAlde) NGuild Aldebaran#a1-12 722
+nguild_alde,70,75,2 duplicate(NGuildAlde) NGuild Aldebaran#a1-13 722
+nguild_alde,74,75,2 duplicate(NGuildAlde) NGuild Aldebaran#a1-14 722
+nguild_alde,62,64,2 duplicate(NGuildAlde) NGuild Aldebaran#a1-15 722
+nguild_alde,66,64,2 duplicate(NGuildAlde) NGuild Aldebaran#a1-16 722
+nguild_alde,70,64,2 duplicate(NGuildAlde) NGuild Aldebaran#a1-17 722
+nguild_alde,74,64,2 duplicate(NGuildAlde) NGuild Aldebaran#a1-18 722
+nguild_alde,203,150,4 duplicate(NGuildAlde) NGuild Aldebaran#a1-19 722
+nguild_alde,210,150,4 duplicate(NGuildAlde) NGuild Aldebaran#a1-20 722
+
+
+
+
+//============================================================================//
+// Castle 2
+//============================================================================//
+n_castle,110,109,3 script NGuild Geffen#g1-1 722,{
+ callfunc "F_Flags","Geffen","nguild_gef",83,47,1,1;
+ close;
+
+OnRecvCastleN02:
+ FlagEmblem GetCastleData("nguild_gef",1);
+ end;
+}
+
+nguild_gef,28,157,4 script NGuild Geffen#g1-6::NGuildGef 722,{
+ callfunc "F_Flags","Geffen","nguild_gef",83,47,0,1;
+ close;
+
+OnRecvCastleN02:
+ FlagEmblem GetCastleData("nguild_gef",1);
+ end;
+}
+// In Castle =============================================
+nguild_gef,32,157,4 duplicate(NGuildGef) NGuild Geffen#g1-7 722
+nguild_gef,22,156,5 duplicate(NGuildGef) NGuild Geffen#g1-8 722
+nguild_gef,68,185,3 duplicate(NGuildGef) NGuild Geffen#g1-9 722
+nguild_gef,17,171,5 duplicate(NGuildGef) NGuild Geffen#g1-10 722
+nguild_gef,59,16,4 duplicate(NGuildGef) NGuild Geffen#g1-11 722
+nguild_gef,64,16,4 duplicate(NGuildGef) NGuild Geffen#g1-12 722
+
+
+
+//============================================================================//
+// Castle 3
+//============================================================================//
+n_castle,94,109,5 script NGuild Payon#f1-1 722,{
+ callfunc "F_Flags","Payon","nguild_pay",87,29,1,1;
+ close;
+
+OnRecvCastleN03:
+ FlagEmblem GetCastleData("nguild_pay",1);
+ end;
+}
+
+nguild_pay,238,67,4 script NGuild Payon#f1-6::NGuildPay 722,{
+ callfunc "F_Flags","Payon","nguild_pay",87,29,0,1;
+ close;
+
+OnRecvCastleN03:
+ FlagEmblem GetCastleData("nguild_pay",1);
+ end;
+}
+// In Castle ===============================================
+nguild_pay,238,67,4 duplicate(NGuildPay) NGuild Payon#f1-6 722
+nguild_pay,233,67,4 duplicate(NGuildPay) NGuild Payon#f1-7 722
+nguild_pay,221,123,4 duplicate(NGuildPay) NGuild Payon#f1-8 722
+nguild_pay,221,116,4 duplicate(NGuildPay) NGuild Payon#f1-9 722
+nguild_pay,206,108,4 duplicate(NGuildPay) NGuild Payon#f1-10 722
+nguild_pay,212,108,4 duplicate(NGuildPay) NGuild Payon#f1-11 722
+
+
+
+
+//=============================================================================//
+// Castle 4
+//=============================================================================//
+n_castle,94,96,7 script NGuild Prontera#p1-1 722,{
+ callfunc "F_Flags","Prontera","nguild_prt",97,174,1,1;
+ close;
+
+OnRecvCastleN04:
+ FlagEmblem GetCastleData("nguild_prt",1);
+ end;
+}
+
+nguild_prt,58,56,4 script NGuild Prontera#p1-7::NGuildPrt 722,{
+ callfunc "F_Flags","Prontera","nguild_prt",97,174,0,1;
+ close;
+
+OnRecvCastleN04:
+ FlagEmblem GetCastleData("nguild_prt",1);
+ end;
+}
+// In Castle =============================================
+nguild_prt,64,56,4 duplicate(NGuildPrt) NGuild Prontera#p1-8 722
+nguild_prt,76,32,4 duplicate(NGuildPrt) NGuild Prontera#p1-9 722
+nguild_prt,84,32,4 duplicate(NGuildPrt) NGuild Prontera#p1-10 722
+nguild_prt,94,39,4 duplicate(NGuildPrt) NGuild Prontera#p1-11 722
+nguild_prt,94,24,4 duplicate(NGuildPrt) NGuild Prontera#p1-12 722
+nguild_prt,73,14,4 duplicate(NGuildPrt) NGuild Prontera#p1-13 722
+nguild_prt,73,6,4 duplicate(NGuildPrt) NGuild Prontera#p1-14 722
+nguild_prt,55,46,4 duplicate(NGuildPrt) NGuild Prontera#p1-15 722
+nguild_prt,45,46,4 duplicate(NGuildPrt) NGuild Prontera#p1-16 722
diff --git a/npc/re/events/nguild/nguild_guardians.txt b/npc/re/events/nguild/nguild_guardians.txt
new file mode 100644
index 000000000..299c3a380
--- /dev/null
+++ b/npc/re/events/nguild/nguild_guardians.txt
@@ -0,0 +1,89 @@
+//===== rAthena Script =======================================
+//= War of Emperium - nguild guardians script
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.0
+//===== Compatible With: =====================================
+//= rAthena 0.1+; RO Episode 4+
+//===== Description: =========================================
+//= Re-spawns guardians on server start if they have been
+//= purchased. Also announces when a guardian dies.
+//===== Additional Comments: =================================
+//= Based off existing guild scripts. Do not know if it is accurate.[kobra_k88]
+//============================================================
+
+
+//------------------------------------------------------------------------------
+nguild_alde,216,24,0 script Guardian_N01 -1,{
+OnAgitInit:
+ if (GetCastleData("nguild_alde",10) == 1) guardian "nguild_alde",18,219,"Soldier Guardian",1287,"Guardian_N01::OnGuardianDied",0;
+ if (GetCastleData("nguild_alde",11) == 1) guardian "nguild_alde",117,42,"Soldier Guardian",1287,"Guardian_N01::OnGuardianDied",1;
+ if (GetCastleData("nguild_alde",12) == 1) guardian "nguild_alde",207,153,"Soldier Guardian",1287,"Guardian_N01::OnGuardianDied",2;
+ if (GetCastleData("nguild_alde",13) == 1) guardian "nguild_alde",68,70,"Archer Guardian",1285,"Guardian_N01::OnGuardianDied",3;
+ if (GetCastleData("nguild_alde",14) == 1) guardian "nguild_alde",187,140,"Archer Guardian",1285,"Guardian_N01::OnGuardianDied",4;
+ if (GetCastleData("nguild_alde",15) == 1) guardian "nguild_alde",62,204,"Knight Guardian",1286,"Guardian_N01::OnGuardianDied",5;
+ if (GetCastleData("nguild_alde",16) == 1) guardian "nguild_alde",113,100,"Knight Guardian",1286,"Guardian_N01::OnGuardianDied",6;
+ if (GetCastleData("nguild_alde",17) == 1) guardian "nguild_alde",211,174,"Knight Guardian",1286,"Guardian_N01::OnGuardianDied",7;
+ end;
+
+OnGuardianDied:
+ // Event when Guardian dies
+ MapAnnounce "nguild_alde","A Guardian Has Fallen",17;
+ end;
+}
+
+//------------------------------------------------------------------------------
+nguild_gef,198,182,0 script Guardian_N02 -1,{
+OnAgitInit:
+ if (GetCastleData("nguild_gef",10) == 1) guardian "nguild_gef",30,178,"Soldier Guardian",1287,"Guardian_N02::OnGuardianDied",0;
+ if (GetCastleData("nguild_gef",11) == 1) guardian "nguild_gef",64,180,"Soldier Guardian",1287,"Guardian_N02::OnGuardianDied",1;
+ if (GetCastleData("nguild_gef",12) == 1) guardian "nguild_gef",61,25,"Soldier Guardian",1287,"Guardian_N02::OnGuardianDied",2;
+ if (GetCastleData("nguild_gef",13) == 1) guardian "nguild_gef",61,44,"Archer Guardian",1285,"Guardian_N02::OnGuardianDied",3;
+ if (GetCastleData("nguild_gef",14) == 1) guardian "nguild_gef",189,43,"Archer Guardian",1285,"Guardian_N02::OnGuardianDied",4;
+ if (GetCastleData("nguild_gef",15) == 1) guardian "nguild_gef",51,192,"Knight Guardian",1286,"Guardian_N02::OnGuardianDied",5;
+ if (GetCastleData("nguild_gef",16) == 1) guardian "nguild_gef",49,67,"Knight Guardian",1286,"Guardian_N02::OnGuardianDied",6;
+ if (GetCastleData("nguild_gef",17) == 1) guardian "nguild_gef",181,14,"Knight Guardian",1286,"Guardian_N02::OnGuardianDied",7;
+ end;
+
+OnGuardianDied:
+ // Event when Guardian dies
+ MapAnnounce "nguild_gef","A Guardian Has Fallen",17;
+ end;
+}
+//------------------------------------------------------------------------------
+nguild_pay,139,139,0 script Guardian_N03 -1,{
+OnAgitInit:
+ if (GetCastleData("nguild_pay",10) == 1) guardian "nguild_pay",210,120,"Soldier Guardian",1287,"Guardian_N03::OnGuardianDied",0;
+ if (GetCastleData("nguild_pay",11) == 1) guardian "nguild_pay",69,26,"Soldier Guardian",1287,"Guardian_N03::OnGuardianDied",1;
+ if (GetCastleData("nguild_pay",12) == 1) guardian "nguild_pay",23,141,"Soldier Guardian",1287,"Guardian_N03::OnGuardianDied",2;
+ if (GetCastleData("nguild_pay",13) == 1) guardian "nguild_pay",224,87,"Archer Guardian",1285,"Guardian_N03::OnGuardianDied",3;
+ if (GetCastleData("nguild_pay",14) == 1) guardian "nguild_pay",81,45,"Archer Guardian",1285,"Guardian_N03::OnGuardianDied",4;
+ if (GetCastleData("nguild_pay",15) == 1) guardian "nguild_pay",214,53,"Knight Guardian",1286,"Guardian_N03::OnGuardianDied",5;
+ if (GetCastleData("nguild_pay",16) == 1) guardian "nguild_pay",69,26,"Knight Guardian",1286,"Guardian_N03::OnGuardianDied",6;
+ if (GetCastleData("nguild_pay",17) == 1) guardian "nguild_pay",23,141,"Knight Guardian",1286,"Guardian_N03::OnGuardianDied",7;
+ end;
+
+OnGuardianDied:
+ // Event when Guardian dies
+ MapAnnounce "nguild_pay","A Guardian Has Fallen",17;
+ end;
+}
+//------------------------------------------------------------------------------
+nguild_prt,197,197,0 script Guardian_N04 -1,{
+OnAgitInit:
+ if (GetCastleData("nguild_prt",10) == 1) guardian "nguild_prt",196,92,"Soldier Guardian",1287,"Guardian_N04::OnGuardianDied",0;
+ if (GetCastleData("nguild_prt",11) == 1) guardian "nguild_prt",113,200,"Soldier Guardian",1287,"Guardian_N04::OnGuardianDied",1;
+ if (GetCastleData("nguild_prt",12) == 1) guardian "nguild_prt",111,186,"Soldier Guardian",1287,"Guardian_N04::OnGuardianDied",2;
+ if (GetCastleData("nguild_prt",13) == 1) guardian "nguild_prt",76,202,"Archer Guardian",1285,"Guardian_N04::OnGuardianDied",3;
+ if (GetCastleData("nguild_prt",14) == 1) guardian "nguild_prt",90,26,"Archer Guardian",1285,"Guardian_N04::OnGuardianDied",4;
+ if (GetCastleData("nguild_prt",15) == 1) guardian "nguild_prt",58,59,"Knight Guardian",1286,"Guardian_N04::OnGuardianDied",5;
+ if (GetCastleData("nguild_prt",16) == 1) guardian "nguild_prt",112,200,"Knight Guardian",1286,"Guardian_N04::OnGuardianDied",6;
+ if (GetCastleData("nguild_prt",17) == 1) guardian "nguild_prt",101,194,"Knight Guardian",1286,"Guardian_N04::OnGuardianDied",7;
+ end;
+
+OnGuardianDied:
+ // Event when Guardian dies
+ MapAnnounce "nguild_prt","A Guardian Has Fallen",17;
+ end;
+}
diff --git a/npc/re/events/nguild/nguild_kafras.txt b/npc/re/events/nguild/nguild_kafras.txt
new file mode 100644
index 000000000..a4bd7ff01
--- /dev/null
+++ b/npc/re/events/nguild/nguild_kafras.txt
@@ -0,0 +1,71 @@
+//===== rAthena Script =======================================
+//= War of Emperium Kafras for N Guild Castles
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= rAthena 0.1+; RO Episode 5+
+//===== Description: =========================================
+//= Provides Kafra services for guild members of NGuild Castles.
+//= Used in conjuction with function F_Kafra.
+//===== Additional Comments: =================================
+//= Based off existing guild scripts. Do not know if it is accurate.[kobra_k88]
+//= 1.1 All N Guild Kafras teleport to Prontera only! [Lupus]
+//= 1.2 Added Kafra function. [L0ne_W0lf]
+//============================================================
+
+
+function script F_GKafra {
+ cutin "kafra_01",2;
+ set @GID, GetCastleData(getarg(0),1);
+ if (getcharid(2) == @GID && getgdskilllv(@GID,10001)) goto L_StartG;
+
+ mes "[Kafra Service]";
+ mes "I am contracted to provide service only for the ^ff0000" + GetGuildName(@GID) + "^000000 Guild. Please use another Kafra Corporation staff member around here. I am Sorry for your inconvenience.";
+ cutin "",255;
+ close;
+L_StartG:
+ set @wrpP[0], 200;
+ set @wrpD$[0], getarg(1);
+ setarray @wrpC$[0], @wrpD$[0]+" ^880000"+@wrpP[0]+"^000000 z", "Cancel", "", "", "","";
+ callfunc "F_Kafra",2,0,0,0,800;
+ end;
+}
+
+// Castle 1 ===============================================
+nguild_alde,218,170,0 script Kafra Service#N01 117,{
+ callfunc "F_GKafra", "nguild_alde", "Prontera";
+ end;
+OnRecvCastleN01:
+ if (GetCastleData("nguild_alde",9) < 1) disablenpc "Kafra Service#N01";
+ end;
+}
+
+// Castle 2 ===============================================
+//nguild_gef,96,173,0 script Kafra Service#N02 117,{
+nguild_gef,35,37,0 script Kafra Service#N02 117,{
+ callfunc "F_GKafra", "nguild_gef", "Prontera";
+ end;
+OnRecvCastleN02:
+ if (GetCastleData("nguild_gef",9) < 1) disablenpc "Kafra Service#N02";
+ end;
+}
+
+// Castle 3 ===============================================
+nguild_pay,128,58,3 script Kafra Service#N03 117,{
+ callfunc "F_GKafra", "nguild_pay", "Prontera";
+ end;
+OnRecvCastleN03:
+ if (GetCastleData("nguild_pay",9) < 1) disablenpc "Kafra Service#N03";
+ end;
+}
+
+// Castle 4 ===============================================
+nguild_prt,96,173,0 script Kafra Service#N04 117,{
+ callfunc "F_GKafra", "nguild_prt", "Prontera";
+ end;
+OnRecvCastleN04:
+ if (GetCastleData("nguild_prt",9) < 1) disablenpc "Kafra Service#N04";
+ end;
+}
diff --git a/npc/re/events/nguild/nguild_managers.txt b/npc/re/events/nguild/nguild_managers.txt
new file mode 100644
index 000000000..7d5bf52ff
--- /dev/null
+++ b/npc/re/events/nguild/nguild_managers.txt
@@ -0,0 +1,174 @@
+//===== rAthena Script =======================================
+//= War of Emperium Managers for N Guild Castles
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.2
+//===== Compatible With: =====================================
+//= rAthena 0.1+; RO Episode 4+
+//===== Description: =========================================
+//=
+//==============================================
+//= Break down of arguments used in the function:
+//= arg(0): name of Castle Manager
+//= arg(1): name of guild castle.
+//= arg(2): x1 coordinate for warp to treasure room
+//= arg(3): y1 coordinate for warp to treasure room
+//= arg(4): guild script suffix for kafra, etc.
+//===== Additional Comments: =================================
+//= 1.0 Based off existing guild scripts. Do not know if it is accurate.[kobra_k88]
+//= 1.1 Added modified guild manager function. [L0ne_W0lf]
+//= Removed guardian summoning.
+//= 1.2 Corrected function name. (bugreport:1728) [L0ne_W0lf]
+//============================================================
+
+//==============================================
+function script F_GldManager {
+
+ set @GID, GetCastleData(getarg(1),1);
+ mes "[ "+getarg(0)+" ]";
+ if (@GID == 0){
+ mes "I am waiting for my master. Brave adventurer, follow your destiny!";
+ return;
+ }
+ if (getcharid(2) != @GID){
+ mes "I am here to follow ^5533FF" + getguildmaster(@GID) + "^000000's command! Hey! Your not even a part of the guild!!";
+ mes "Where are the guardians? Destroy these intruders!";
+ return;
+ }
+ if (strcharinfo(0) != getguildmaster(@GID)){
+ mes "You're not ^5533FF" + getguildmaster(@GID) + "^000000! I am here to follow ^5533FF" + getguildmaster(@GID) + "^000000's command only";
+ return 0;
+ }
+
+ mes "Welcome Master ^5533FF" + getguildmaster(@GID) + "^000000 ! I will assist you in any way I can!";
+ next;
+
+ menu "Kafra Staff Employment / Dismissal",M_Kaf, "Enter Treasure Room",M_Treas, "Cancel",M_End;
+
+ //===========================
+ M_Kaf:
+ //======
+ mes "[ "+getarg(0)+" ]";
+ if (GetCastleData(getarg(1),9) == 1) goto L_Dismiss;
+ if (getgdskilllv(@GID,10001) == 0){
+ mes "Master, you don't have a contract with the Kafra Staff Company.";
+ mes "In order to hire a Kafra, you must first learn the Guild skill ^5533FFContract With Kafra^000000.";
+ return;
+ }
+
+ L_Hire:
+ mes "Would you like to employ the services of a Kafra? You will need ^5533FF10,000 Zeny^000000 to do so... ";
+ next;
+ menu "Employ Kafra.",-,"Cancel",sM_KafEnd;
+
+ mes "[ "+getarg(0)+" ]";
+ if (Zeny < 10000){
+ mes "Master, you do not have enough money to employ a Kafra. Employment has been cancelled.";
+ return;
+ }
+ set Zeny,Zeny-10000;
+ enablenpc "Kafra Staff#"+getarg(4);
+ SetCastleData getarg(1),9,1;
+ mes "You have created a contract with the Kafra Staff Company.";
+ next;
+ cutin "kafra_01",2;
+ mes "[ Kafra Staff ]";
+ mes "How do you do? I'm here to provide you with helpful service! I'll do the best I can to serve you.";
+ next;
+ cutin "kafra_01",255;
+ mes "[ "+getarg(0)+" ]";
+ //mes "Your employment contract lasts ^5533FF1 month^000000. After this term is over you will have to create a new contract.";
+ mes "I think the Kafra Staff will benefit our guild members.";
+ return;
+
+ sM_KafEnd:
+ mes "[ "+getarg(0)+" ]";
+ mes "As you wish Master. But I suggest we get a Kafra as soon as possible!";
+ return;
+
+ L_Dismiss:
+ mes "Would you like to dismiss the current Kafra?";
+ next;
+ menu "Dismissal",-,"Cancel",sM_KafEnd2;
+
+ cutin "kafra_01",2;
+ mes "[ Kafra Staff ]";
+ mes "Have I done anything wrong? If I did, will you please forgive me?";
+ next;
+ menu "Dismiss",-,"Cancel",ssM_KafEnd2;
+
+ mes "[ Kafra Staff ]";
+ mes "It's unfortunate that I won't be able to serve your guild anymore....";
+ next;
+ disablenpc "Kafra Staff#"+getarg(4);
+ SetCastleData getarg(1),9,0;
+ cutin "kafra_01",255;
+ mes "[ "+getarg(0)+" ]";
+ mes "The Kafra has been dismissed. But... we should really get a Kafra as soon as possible!";
+ return;
+ ssM_KafEnd2:
+ mes "[ Kafra Staff ]";
+ mes "Thank you master, I'll do my best! ^^.";
+ cutin "kafra_01",255;
+ return;
+ sM_KafEnd2:
+ mes "[ "+getarg(0)+" ]";
+ mes "Master, I think you should keep the current Kafra Staff because she is already trying her best to serve us";
+ return;
+
+ //=========================
+ M_Treas:
+ //========
+ mes "[ "+getarg(0)+" ]";
+ mes "Would you to go to our Treasure Room? Only you, the Guild Master, are allowed to enter this room.";
+ next;
+ menu "Enter Treasure room.",-,"Cancel",sM_TresEnd;
+
+ mes "[ "+getarg(0)+" ]";
+ mes "Please follow me through the secret passage way.";
+ mes "You must pull down on the secret switch in order to get out.";
+ next;
+ warp getarg(1),getarg(2),getarg(3);
+ return;
+ sM_TresEnd:
+ mes "[ "+getarg(0)+" ]";
+ mes "The goods are produced everyday.";
+ mes "You should get them whenever you can because they might dissapear if you take them at the wrong time.";
+ return;
+
+
+ //==========================
+ M_End:
+ //=======
+ mes "[ "+getarg(0)+" ]";
+ mes "As you wish, master.";
+ return;
+}
+
+// Castle 1 ==================================================================================
+nguild_alde,218,175,0 script Frolo 55,{
+ callfunc "F_GldManager","Frolo","nguild_alde",119,223,"N01";
+ close;
+}
+
+
+// Castle 2 ==================================================================================
+nguild_gef,40,48,5 script Leiber 55,{
+ callfunc "F_GldManager","Leiber","nguild_gef",155,112,"N02";
+ close;
+}
+
+
+// Castle 3 ==================================================================================
+nguild_pay,120,58,4 script Dundar 55,{
+ callfunc "F_GldManager","Dundar","nguild_pay",290,7,"N03";
+ close;
+}
+
+
+// Castle 4 ==================================================================================
+nguild_prt,112,181,0 script Thefton 55,{
+ callfunc "F_GldManager","Thefton","nguild_prt",15,209,"N04";
+ close;
+}
diff --git a/npc/re/events/nguild/nguild_treas.txt b/npc/re/events/nguild/nguild_treas.txt
new file mode 100644
index 000000000..1fc8cbaf9
--- /dev/null
+++ b/npc/re/events/nguild/nguild_treas.txt
@@ -0,0 +1,167 @@
+//===== rAthena Script =======================================
+//= War of Emperium Treasure Rooms for NGuild Guild Castles
+//===== By: ==================================================
+//= kobra_k88
+//===== Current Version: =====================================
+//= 1.3b
+//===== Compatible With: =====================================
+//= rAthena 0.1+; RO Episode 4+
+//===== Description: =========================================
+//=
+//===== Additional Comments: =================================
+//= Based off existing guild scripts. Do not know if it is accurate.[kobra_k88]
+//= 1.2 Official treasure spawn [Lupus]
+//= 1.3 Added F_GldTreas function. (bugreport:1788) [L0ne_W0lf]
+//= 1.3b Added F_GldTreasSw function. (bugreport:3292) [brianluau]
+//============================================================
+
+
+//================================================
+// Treasure Spawning Function
+//================================================
+function script F_GldTreas {
+ if(getarg(10) != 1) {
+ setcastledata getarg(0),4,0;
+ setcastledata getarg(0),5,0;
+
+ // Why on earth are we killing old treasure chest spawns?
+ //killmonster getarg(0),"Treasure_"+getarg(1)+"::OnDied";
+
+ // Don't spawn treasures if Castle is empty, or Eco is greater than 100
+ if(GetCastleData(getarg(0),2) > 100 || GetCastleData(getarg(0),1) == 0) return;
+
+ // Only spawn one treasure chest for novice castles.
+ if (compare(getarg(0),"nguild"))
+ set getarg(2),1;
+ else
+ set getarg(2),GetCastleData(getarg(0),2)/5+4;
+
+ if (getarg(2) <= 0) return;
+
+ //sets the counter variable = to the box number amount
+ set getarg(3), getarg(2);
+ }
+ for (set .@i,1; .@i <= getarg(3) ; set .@i,.@i+1) {
+ // set treasure box ID
+ set getarg(4), getarg(5) + (.@i+1) % 2;
+ areamonster getarg(0),getarg(6),getarg(7),getarg(8),getarg(9),"Treasure Chest",getarg(4),1,"Treasure_"+getarg(1)+"::OnDied";
+ }
+ return;
+}
+
+//==============================================================
+// Treasure Room Switch
+//===============================================================
+function script F_GldTreasSw {
+ mes " ";
+ mes "There's a small lever. Will you pull it?";
+ next;
+
+ if (select("Pull.:Do not.") == 1) {
+ warp getarg(0),getarg(1),getarg(2);
+ return;
+ }
+ close;
+}
+
+//<=============================== Castle 1 =================================>\\
+
+// Treasure Spawn -----------------------
+nguild_alde,1,1,1 script Treasure_N01 -1,{
+
+OnRecvCastleN01:
+ end;
+OnInit:
+ if($boxNumN01 == 0) end;
+ set $@bxN01, $boxNumN01;
+ callfunc "F_GldTreas","nguild_alde","N01",$boxNumN01,$@bxN01,$@boxIdN01,1324+rand(10),114,218,123,227,1;
+ end;
+
+OnDied:
+ mapannounce "nguild_alde","Treasure Chest Broken Open",17;
+ set $boxNumN01, $boxNumN01 -1;
+ if($boxNumN01 == 0) mapannounce "nguild_alde", "All of the treasure boxes have been opened. You must wait untill the next day for them to appear again.",0;
+ end;
+}
+
+// Treasure Room Switch --------------------
+nguild_alde,123,223,0 script Switch#TresN01 111,{
+ callfunc "F_GldTreasSw", "nguild_alde",218,176;
+ end;
+}
+
+//<================================ Castle 2 ================================>\\
+
+// Treasure Spawn ----------------------------
+nguild_gef,1,1,1 script Treasure_N02 -1,{
+
+OnRecvCastleN02:
+ end;
+OnInit:
+ if($boxNumN02 == 0) end;
+ set $@bxN02, $boxNumN02;
+ callfunc "F_GldTreas","nguild_gef","N02",$boxNumN02,$@bxN02,$@boxIdN02,1334+rand(10),150,108,158,114,1;
+ end;
+
+OnDied:
+ mapannounce "nguild_gef","Treasure Chest Broken Open",17;
+ set $boxNumN02, $boxNumN02 -1;
+ if($boxNumN02 == 0) mapannounce "nguild_gef", "All of the treasure boxes have been opened. You must wait untill the next day for them to appear again.",0;
+ end;
+}
+
+// Room Switch ---------------------------------------------------------
+nguild_gef,152,117,0 script Switch#TresN02 111,{
+ callfunc "F_GldTreasSw","nguild_gef",40,49;
+ end;
+}
+
+//<================================ Castle 3 ================================>\\
+
+// Treasure Spawn ---------------------------
+nguild_pay,1,1,0 script Treasure_N03 -1,{
+OnRecvCastleN03:
+ end;
+OnInit:
+ if($boxNumN03 == 0) end;
+ set $@bxN03, $boxNumN03;
+ callfunc "F_GldTreas","nguild_pay","N03",$boxNumN03,$@bxN03,$@boxIdN03,1344+rand(10),286,4,295,13,1;
+ end;
+
+OnDied:
+ mapannounce "nguild_pay","Treasure Chest Broken Open",17;
+ set $boxNumN03, $boxNumN03 -1;
+ if($boxNumN03 == 0) mapannounce "nguild_pay", "All of the treasure boxes have been opened. You must wait untill the next day for them to appear again.",0;
+ end;
+}
+
+// Treasure Room Switch ---------------------------------------------------
+nguild_pay,295,8,0 script Switch#TresN03 111,{
+ callfunc "F_GldTreasSw", "nguild_pay",120,59;
+ end;
+}
+
+//<================================ Castle 4 ================================>\\
+
+// Treasure Spawn -------------------------------
+nguild_prt,1,1,0 script Treasure_N04 -1,{
+OnRecvCastleN04:
+ end;
+OnInit:
+ if($boxNumN04 == 0) end;
+ set $@bxN04, $boxNumN04;
+ callfunc "F_GldTreas","nguild_prt","N04",$boxNumN04,$@bxN04,$@boxIdN04,1354+rand(10),6,204,15,213,1;
+ end;
+
+OnDied:
+ mapannounce "nguild_prt","Treasure Chest Broken Open",17;
+ set $boxNumN04, $boxNumN04 -1;
+ if($boxNumN04 == 0) mapannounce "nguild_prt", "All of the treasure boxes have been opened. You must wait untill the next day for them to appear again.",0;
+ end;
+}
+
+// Treasure Room Switch ----------------------------------------------------
+nguild_prt,15,209,0 script Switch#TresN04 111,{
+ callfunc "F_GldTreasSw", "nguild_prt",109,179;
+ end;
+}
diff --git a/npc/re/events/nguild/nguild_warper.txt b/npc/re/events/nguild/nguild_warper.txt
new file mode 100644
index 000000000..41d51ca59
--- /dev/null
+++ b/npc/re/events/nguild/nguild_warper.txt
@@ -0,0 +1,111 @@
+//===== rAthena Script =======================================
+//= Novice's Guild Castles War of Emperium Usher NPC
+//===== By: ==================================================
+//= Lupus
+//===== Current Version: =====================================
+//= 1.7
+//===== Compatible With: =====================================
+//= rAthena 1+ with eaclass(); RO Episode 4+
+//===== Description: =========================================
+//=
+//===== Additional Comments: =================================
+//= Now you have access to 4 N Guild castles. They don't have
+//= dungeons. And 2nd Classes can't seize these Castles.
+//= These new castles need a new strategy. It would bring some
+//= fun and live to your game.
+//= NOTE: If your Guild Master is 2nd class, then he could
+//= rule the Castles and gather Treasure Boxes after WoE
+//= 1.1 Now 2nd classes can't enter NC place at all
+//= 1.2 Restricted access of SG/SL. On warp clear some
+//= unallowed buffs [Lupus]
+//= 1.3 Restricted TK,High classes >=90 BaseLevel,
+//= updated list of unallowed buffs [Lupus]
+//= 1.4 Restricted it to 80 Base Level [Lupus]
+//= 1.5 According to official info: 1 Treasure Chest per Castle
+//= 1.6 Only 1st Class < 60 BaseLevel Players can participate
+//= 1.7 Guilds with Emergency Call or with 9+ skill points
+//= can't take part in NWoE. [Lupus]
+//= TODO: The official entrance is in Izlude.
+//============================================================
+
+
+prontera,146,163,6 script Novice Castles 729,{
+ mes "[Cita]";
+ if(getcharid(2)!=0){
+ if(getgdskilllv(getcharid(2),10013)){
+ mes "I see... your guild has Emergency Call mastered.";
+ mes "You cannot enter the Novice Castle area.";
+ emotion e_hmm;
+ emotion e_wah,1;
+ close;
+ }
+ if(
+ getgdskilllv(getcharid(2),10000) +
+ getgdskilllv(getcharid(2),10001) +
+ getgdskilllv(getcharid(2),10002) +
+ getgdskilllv(getcharid(2),10003) +
+ getgdskilllv(getcharid(2),10004) +
+ getgdskilllv(getcharid(2),10005) +
+ getgdskilllv(getcharid(2),10006) +
+ getgdskilllv(getcharid(2),10007) +
+ getgdskilllv(getcharid(2),10008) +
+ getgdskilllv(getcharid(2),10009) +
+ getgdskilllv(getcharid(2),10010) +
+ getgdskilllv(getcharid(2),10011) +
+ getgdskilllv(getcharid(2),10012) +
+ getgdskilllv(getcharid(2),10013) +
+ getgdskilllv(getcharid(2),10014) > 9
+ ){
+ mes "I see... your guild has Emergency Call mastered.";
+ mes "You cannot enter the Novice Castle area.";
+ emotion e_hmm;
+ emotion e_wah,1;
+ close;
+ }
+ } else {
+ mes "^FF0000You have to enter a guild to be able to hit Emperium!^000000";
+ }
+ mes "I'm a new usher of Novice Castles.";
+ next;
+ if( !(eaclass()&(EAJL_2|EAJL_UPPER)) && BaseLevel<60 )
+ menu "Warp me to Novice Castles",M_WARP,"Cancel",-;
+
+ mes "[Cita]";
+ mes "I'm sorry, you can't enter the sacred Novice Castles place.";
+ emotion e_sry;
+ close;
+
+M_WARP:
+ //remove several unallowed buffs
+ sc_end SC_ASSUMPTIO;
+ sc_end SC_IMPOSITIO;
+ sc_end SC_SUFFRAGIUM;
+ sc_end SC_MAGNIFICAT;
+ sc_end SC_WEAPONPERFECTION;
+ sc_end SC_GOSPEL;
+ sc_end SC_BASILICA;
+ sc_end SC_MAGICPOWER;
+ sc_end SC_MARIONETTE;
+ sc_end SC_MARIONETTE2;
+ sc_end SC_DEVOTION;
+ sc_end SC_SACRIFICE;
+ sc_end SC_MAXOVERTHRUST;
+ sc_end SC_SPIRIT;
+ warp "n_castle",102,93+rand(14);
+ close;
+}
+
+
+n_castle,102,107,5 script Cita 729,{
+ mes "[Cita]";
+ mes "Hello, "+ strcharinfo(0) +". Can I help you?";
+ next;
+ menu "Warp me to Prontera!",-,"Cancel",LEnd;
+
+ warp "prontera",155,177+rand(5);
+ close;
+ LEnd:
+ mes "[Cita]";
+ mes "Ok.";
+ close;
+}