//===== eAthena Script ======================================= //= War of Emperium Second Edition //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== //= 1.6 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= WoE SE Schwaltzvalt Castle 1 //===== Additional Comments: ================================= //= 1.0 First Version [L0ne_W0lf] //= 1.1 Swaped an end for a close in eco investing. [L0ne_W0lf] //= 1.2 Fixed take-over lowering schg_cas04's eco. [L0ne_W0lf] //= 1.3 Fixed double message in defense investing. [L0ne_W0lf] //= Corrected a minor typo in the guild steward. //= 1.4 Fixed a guardian spawning NPCs. [L0ne_W0lf] //= 1.5 Fixed investment period not resetting. [L0ne_W0lf] //= Made it so treasure won't spawn if castle is empty. //= Treasure will now be killed before spawning. //= 1.6 Corrected a typo with treasure spawning. [L0ne_W0lf] //============================================================ schg_cas01,1,1,0 script Manager#sch01_02 111,{ end; OnInterIfInitOnce: GetCastleData "schg_cas01",0,"::OnRecvCastleSc01"; end; OnRecvCastleSc01: RequestGuildInfo GetCastleData("schg_cas01",1); if (GetCastleData("schg_cas01",1) == 0) { donpcevent "Manager#sch01_02::Onstart"; } end; OnAgitStart: if (agitcheck()) { MapRespawnGuildID "schg_cas01",GetCastleData("schg_cas01",1),2; GvgOn "schg_cas01"; donpcevent "Manager#sch01_02::Onstart"; } else { donpcevent "#sch01_RL00::OnDisable"; donpcevent "#sch01_RL01::OnDisable"; donpcevent "#sch01_RL02::OnDisable"; donpcevent "#sch01_RL03::OnDisable"; } end; OnAgitEnd: GvgOff "schg_cas01"; if (GetCastleData("schg_cas01",1)) { KillMonster "schg_cas01","Steward#sch01::OnStartArena"; donpcevent "Manager#sch01_02::Onreset"; } end; Onstart: // 1st Guardian stone, 2nd Guardian stone, Barrier 1, Barrier 2, Barrier 3, Summon Guardians // Settings for all but Summon Guardians // 0 = Okay; 1 = Destroyed; 2 = Repairing // Summon Guardians // 0 = Do not Summon; 1 = Summon if (GetCastleData("schg_cas01",1)) { setarray $agit_sc01[0],0,0,0,0,0,0; donpcevent "#sch01_df01::OnEnable"; donpcevent "#sch01_df02::OnEnable"; donpcevent "#sch01_RL00::OnEnable"; donpcevent "#sch01_RL01::OnEnable"; donpcevent "#sch01_RL02::OnEnable"; donpcevent "#sch01_RL03::OnEnable"; } monster "schg_cas01",120,272,"Emperium",1288,1,"Steward#sch01::OnStartArena"; end; Onreset: donpcevent "#sch01_df01::OnDisable"; donpcevent "#sch01_df02::OnDisable"; donpcevent "#sch01_gard01::Onreset"; donpcevent "#sch01_gard02::Onreset"; donpcevent "#sch01_RL00::OnDisable"; donpcevent "#sch01_RL01::OnDisable"; donpcevent "#sch01_RL02::OnDisable"; donpcevent "#sch01_RL03::OnDisable"; donpcevent "1st Guardian Stone#sch01::OnDisable"; donpcevent "2nd Guardian Stone#sch01::OnDisable"; donpcevent "Control Device01#sch01::OnDisable"; donpcevent "Control Device02#sch01::OnDisable"; donpcevent "Control Device03#sch01::OnDisable"; if (agitcheck()) { setarray $agit_sc01[0],0,0,1,1,1,0; } end; Onchange: setarray $agit_sc01[0],2,2,1,1,2,0; monster "schg_cas01",120,272,"Emperium",1288,1,"Steward#sch01::OnStartArena"; donpcevent "Control Device03#sch01::OnEnable"; donpcevent "1st Guardian Stone#sch01::OnEnable"; donpcevent "2nd Guardian Stone#sch01::OnEnable"; end; OnClock0001: if (!GetCastleData("schg_cas01",1)) end; killmonster "schg_cas01","Manager#sch01_02::OnMyTreasureDied"; set .@Treasure,GetCastleData("schg_cas01",2)/5+4; if (.@Treasure) { monster "schg_cas01",388,388,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; monster "schg_cas01",388,389,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; monster "schg_cas01",388,390,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; monster "schg_cas01",387,390,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 5) end; monster "schg_cas01",386,390,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 6) end; monster "schg_cas01",385,390,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 7) end; monster "schg_cas01",384,389,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 8) end; monster "schg_cas01",384,388,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 9) end; monster "schg_cas01",384,387,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 10) end; monster "schg_cas01",384,386,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 11) end; monster "schg_cas01",384,385,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 12) end; monster "schg_cas01",384,384,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 13) end; monster "schg_cas01",385,384,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 14) end; monster "schg_cas01",386,384,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 15) end; monster "schg_cas01",387,384,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 16) end; monster "schg_cas01",388,384,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 17) end; monster "schg_cas01",389,384,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 18) end; monster "schg_cas01",390,384,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 19) end; monster "schg_cas01",390,385,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 20) end; monster "schg_cas01",390,386,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 21) end; monster "schg_cas01",389,386,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 22) end; monster "schg_cas01",388,386,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 23) end; monster "schg_cas01",387,286,"Treasure Chest",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 24) end; monster "schg_cas01",386,386,"Treasure Chest",1324,1,"Manager#sch01_02::OnTreasureDied"; } setcastledata "schg_cas01",4,0; setcastledata "schg_cas01",5,0; end; OnTreasureDied: end; } schg_cas01,123,306,3 script Ef#sch01_01 868,{ set .@GID, GetCastleData("schg_cas01",1); if (.@GID == 0) { mes "[Ef]"; mes "Great job. Now, all you"; mes "need to do is destroy this"; mes "Emperium to gain ownership"; mes "over this stronghold."; close; } if (getcharid(2) == .@GID) { if (strcharinfo(0) != getguildmaster(.@GID)) { mes "[Ef]"; mes "As guardian of this"; mes "stronghold, I answer only"; mes "to the master of the guild"; mes "that controls this place."; close; } else { if (agitcheck() == 0) { mes "[Ef]"; mes "I am Ef, guardian of"; mes "this stronghold. For now,"; mes "all is quiet in this place."; next; switch(select("Converse:Cancel")) { case 1: mes "[Ef]"; mes "Do you have any questions"; mes "about this stronghold?"; next; switch(select("Guardian Stones:Fortress Gates:Link Flags:Battle Strategy:Cancel")) { case 1: mes "[Ef]"; mes "There is one Emperium"; mes "and two Guardian Stones in"; mes "each fortress. These stones"; mes "are the first line of defense,"; mes "and must be destroyed before"; mes "enemies can even enter."; next; mes "[Ef]"; mes "The stones are located in"; mes "^4D4DFFGate Houses^000000 which must be"; mes "protected to prevent enemies"; mes "from reaching the Emperium."; mes "Guardian Stones can ^4D4DFFrecall"; mes "your Guardians^000000 for protection."; next; mes "[Ef]"; mes "Fortresses with higher levels"; mes "of defense can summon more"; mes "Guardians: this is why it is"; mes "so important for guilds to"; mes "invest in Defense Growth."; next; mes "[Ef]"; mes "Guardian Stones that have"; mes "been destroyed can be revived"; mes "after a certain time, but one of^FFFFFF ^000000 the guild members must give"; mes "me the order. I can also report^FFFFFF ^000000 the status of the Guardian Stones."; close; case 2: mes "[Ef]"; mes "^4D4DFFFortress Gates^000000 are the second ^FFFFFF ^000000 line of guild stronghold defense,"; mes "and are protected by extra barricades activated by the Guardian Stones."; mes "These gates are located in three different parts of the fortress."; next; mes "[Ef]"; mes "Barricades are protected by"; mes "Guardian Stones, and are"; mes "restored when the Guardian"; mes "Stones are retrieved. However,"; mes "it is not as easy to restore"; mes "destroyed Fortress Gates."; next; mes "[Ef]"; mes "Fortress Gates can only be"; mes "restored when the ^4D4DFFguild"; mes "master of a stronghold"; mes "changes^000000, or if ^4D4DFFrestoration"; mes "is requested by the guild"; mes "master of the stronghold^000000."; close; case 3: mes "[Ef]"; mes "Strongholds have many"; mes "Link Flags that allow you"; mes "to access vital areas within"; mes "restrictions placed by the"; mes "Barricades. Usually, ^4D4DFFFlag 1"; mes "links to the Gate House^000000."; next; mes "[Ef]"; mes "Many flags link directly to"; mes "the flag near the Emperium."; mes "The final numbered flag is"; mes "linked to the Convenience"; mes "Facility of the stronghold's"; mes "owner. Keep this in mind."; close; case 4: mes "[Ef]"; mes "Strategy? It would be better"; mes "to develop your battle plan to"; mes "exploit your guild's advantages"; mes "and your enemies' weaknesses."; mes "Use the Gate Houses and Barricades, and rebuild as quickly as you can!"; close; case 5: mes "[Ef]"; mes "You have no questions"; mes "to ask of me? Well, I'm"; mes "here to serve your needs."; close; } case 2: mes "[Ef]"; mes "I'm always here, so"; mes "feel free to request my"; mes "assistance whenever"; mes "the need arises."; close; } } else { mes "[Ef]"; mes "Greetings, "+strcharinfo(0)+"."; mes "What are your orders?"; next; switch(select("Increase Stronghold Defense:Situational Briefing:Cancel")) { case 1: if ($agit_sc01[5] == 0) { if (getgdskilllv(.@GID,10002) == 0) { mes "[Ef]"; mes "I'm sorry, but the Guardian"; mes "Stones aren't powerful enough"; mes "to summon Guardians yet. We"; mes "need to accumulate more"; mes "knowledge before they can"; mes "summon any Guardians."; close; } else { mes "[Ef]"; mes "I shall endeavor to summon"; mes "a Guardian through a Guardian"; mes "Stone. However, keep in mind"; mes "that this will not work if the"; mes "Guardian Stone is destroyed."; setarray $agit_sc01[5],1; if ($agit_sc01[0] == 0) { donpcevent "#sch01_gard01::OnEnable"; } if ($agit_sc01[1] == 0) { donpcevent "#sch01_gard02::OnEnable"; } close; } } else { mes "[Ef]"; mes "You've already commanded"; mes "me to summon a Guardian"; mes "to defend the stronghold."; close; } case 2: mes "[Ef]"; mes "Our defense status is..."; if ($agit_sc01[0] == 1) { mes "1st Guardian Stone: ^FF0000Destroyed^000000"; } else if ($agit_sc01[0] == 2) { mes "1st Guardian Stone: ^008000Repairing^000000"; } else { mes "1st Guardian Stone: ^4D4DFFOperational^000000"; } if ($agit_sc01[1] == 1) { mes "2nd Guardian Stone: ^FF0000Destroyed^000000"; } else if ($agit_sc01[1] == 2) { mes "2nd Guardian Stone: ^008000Repairing^000000"; } else { mes "2nd Guardian Stone: ^4D4DFFOperational^000000"; } if ($agit_sc01[2] == 1) { mes "1st Fortress Gate: ^FF0000Destroyed^000000"; } else if ($agit_sc01[2] == 2) { mes "1st Fortress Gate: ^008000Repairing^000000"; } else { mes "1st Fortress Gate: ^4D4DFFOperational^000000"; } if ($agit_sc01[3] == 1) { mes "2nd Fortress Gate: ^FF0000Destroyed^000000"; } else if ($agit_sc01[3] == 2) { mes "2nd Fortress Gate: ^008000Repairing^000000"; } else { mes "2nd Fortress Gate: ^4D4DFFOperational^000000"; } if ($agit_sc01[4] == 1) { mes "3rd Fortress Gate: ^FF0000Destroyed^000000"; } else if ($agit_sc01[4] == 2) { mes "3rd Fortress Gate: ^008000Repairing^000000"; } else { mes "3rd Fortress Gate: ^4D4DFFOperational^000000"; } close; case 3: mes "[Ef]"; mes "I'll be standing by,"; mes "awaiting your orders."; close; } } } } else { mes "[Ef]"; mes "Who are you? Scoundrel!"; mes "Leave this stronghold now!"; close; } OnInit: setarray $agit_sc01[0],0,0,0,0,0,0; end; } schg_cas01,1,1,0 script #sch01_gard01 -1,{ OnEnable: set .@defence,GetCastleData("schg_cas01",3); guardian "schg_cas01",111,18,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //0; if ((.@defence > 10) && (.@defence < 31)) { set .MyMobCount,2; guardian "schg_cas01",109,44,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //1; } else if ((.@defence > 30) && (.@defence < 51)) { set .MyMobCount,3; guardian "schg_cas01",109,44,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //1; guardian "schg_cas01",65,22,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //2; } else if ((.@defence > 50) && (.@defence < 71)) { set .MyMobCount,4; guardian "schg_cas01",109,44,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //1; guardian "schg_cas01",65,22,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //2; guardian "schg_cas01",110,40,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //3; } else if (.@defence > 70) { set .MyMobCount,5; guardian "schg_cas01",109,44,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //1; guardian "schg_cas01",65,22,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //2; guardian "schg_cas01",110,40,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //3; guardian "schg_cas01",88,20,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //4; } else { set .MyMobCount,2; guardian "schg_cas01",108,32,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //1; } initnpctimer; end; OnTimer300000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",64,40,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //5; mapannounce "schg_cas01","The 1st Guardian has been summoned from the Gate House.",bc_map,"0xff4500"; end; OnTimer900000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",47,43,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //6; mapannounce "schg_cas01","The 2nd Guardian has been summoned from the Gate House.",bc_map,"0xff4500"; end; OnTimer1800000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",109,48,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //7; mapannounce "schg_cas01","The 3rd Guardian has been summoned from the Gate House.",bc_map,"0xff4500"; end; OnTimer2700000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",111,18,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //8; mapannounce "schg_cas01","The 4th Guardian has been summoned from the Gate House.",bc_map,"0xff4500"; end; OnTimer3600000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",112,32,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //9; mapannounce "schg_cas01","The 5th Guardian has been summoned from the Gate House.",bc_map,"0xff4500"; stopnpctimer; end; OnGuardianDied: set .MyMobCount,.MyMobCount-1; if (.MyMobCount < 2) { set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",120,37,"Guardian Soldier",1899,"#sch01_gard01::OnGuardianDied"; //10; } end; Onreset: stopnpctimer; killmonster "schg_cas01","#sch01_gard01::OnGuardianDied"; end; } schg_cas01,1,2,0 script #sch01_gard02 -1,{ OnEnable: set .@defence,GetCastleData("schg_cas01",3); guardian "schg_cas01",130,22,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //11; if ((.@defence > 10) && (.@defence < 31)) { set .MyMobCount,2; guardian "schg_cas01",187,15,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //12; } else if ((.@defence > 30) && (.@defence < 51)) { set .MyMobCount,3; guardian "schg_cas01",129,47,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //12; guardian "schg_cas01",151,18,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //13; } else if ((.@defence > 50) && (.@defence < 71)) { set .MyMobCount,4; guardian "schg_cas01",129,47,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //12; guardian "schg_cas01",151,18,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //13; guardian "schg_cas01",187,15,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //14; } else if (.@defence > 70) { set .MyMobCount,5; guardian "schg_cas01",129,47,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //12; guardian "schg_cas01",151,18,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //13; guardian "schg_cas01",187,15,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //14; guardian "schg_cas01",128,42,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //15; } else { set .MyMobCount,2; guardian "schg_cas01",128,42,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //12; } initnpctimer; end; OnTimer600000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",152,43,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //16; end; OnTimer1200000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",187,15,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //17; end; OnTimer2100000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",128,42,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //18; end; OnTimer3000000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",130,22,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //19; end; OnTimer3900000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",130,28,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //20; stopnpctimer; end; OnGuardianDied: set .MyMobCount,.MyMobCount-1; if (.MyMobCount < 2) { set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",151,18,"Guardian Soldier",1899,"#sch01_gard02::OnGuardianDied"; //21; } end; Onreset: stopnpctimer; killmonster "schg_cas01","#sch01_gard02::OnGuardianDied"; end; } schg_cas01,1,3,0 script #sch01_df01 -1,{ OnEnable: guardian "schg_cas01",27,35,"1st Guardian Stone",1907,"#sch01_df01::OnGuardianStoneDied"; //22; end; OnDisable: killmonster "schg_cas01","#sch01_df01::OnGuardianStoneDied"; setarray $agit_sc01[0],1; //Global Variable stopnpctimer; end; OnGuardianStoneDied: // 1st Guardian Stone is Destroyed setarray $agit_sc01[0],1; if (($agit_sc01[0] == 1) || ($agit_sc01[0] == 2)) { set .@destroyed,.@destroyed + 1; } if (($agit_sc01[1] == 1) || ($agit_sc01[1] == 2)) { set .@destroyed,.@destroyed + 1; } if (.@destroyed == 2) { mapannounce "schg_cas01","All of the Guardian Stones have been destroyed!",bc_map,"0x00ff00"; donpcevent "#sch01_RL00::OnDisable"; donpcevent "#sch01_gard01::Onreset"; } else { mapannounce "schg_cas01","The 1st Guardian Stone has been destroyed!",bc_map,"0x00ff00"; donpcevent "#sch01_gard01::Onreset"; } initnpctimer; end; OnTimer300000: donpcevent "1st Guardian Stone#sch01::OnEnable"; setarray $agit_sc01[0],2; //Global Variable stopnpctimer; end; } schg_cas01,27,36,0 script 1st Guardian Stone#sch01 844,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFYou will need the"; mes "following materials to"; mes "rebuild a destroyed"; mes "Guardian Stone.^000000"; next; mes "1 Oridecon"; mes "1 Elunium"; mes "30 Stones"; mes "5 Blue Gemstones"; mes "5 Yellow Gemstones"; mes "5 Red Gemstones"; next; mes "^3355FFDo you want to continue?^000000"; switch(select("No:Continue")) { case 1: mes "^3355FFWork canceled.^000000"; close; case 2: if ((countitem(984) > 0) && (countitem(985) > 0) && (countitem(7049) > 29) && (countitem(717) > 4) && (countitem(715) > 4) && (countitem(716) > 4)) { mes "^3355FFArrange Stones, Elunium, and"; mes "Oridecon, in that order, in the"; mes "center. Then you must arrange"; mes "the enchanted Gemstones to"; mes "rebuild the Guardian Stone.^000000"; next; switch(select("Elunium:Oridecon:Stone")) { case 1: mes "^3355FFElunium has been"; mes "placed in the center.^000000"; next; break; case 2: mes "^3355FFOridecon has been"; mes "placed in the center.^000000"; next; break; case 3: mes "^3355FFStones have been"; mes "placed in the center.^000000"; set .@nice,.@nice+10; next; break; } switch(select("Elunium:Oridecon:Stone")) { case 1: mes "^3355FFYou have lined the"; mes "outside of the center"; mes "with some Elunium.^000000"; set .@nice,.@nice+10; next; break; case 2: mes "^3355FFYou have lined the"; mes "outside of the center"; mes "with some Oridecon.^000000"; next; break; case 3: mes "^3355FFYou have lined the"; mes "outside of the center"; mes "with some Stones.^000000"; next; break; } switch(select("Elunium:Oridecon:Stone")) { case 1: mes "^3355FFYou covered the"; mes "rest of the materials"; mes "with some Elunium.^000000"; next; break; case 2: mes "^3355FFYou covered the"; mes "rest of the materials"; mes "with some Oridecon.^000000"; set .@nice,.@nice+10; next; break; case 3: mes "^3355FFYou covered the"; mes "rest of the materials"; mes "with some Stones.^000000"; next; break; } mes "^3355FFNow you need to arrange"; mes "the enchanted Gemstones"; mes "accordingly. You can identify"; mes "their Magic properties by"; mes "their casting effect.^000000"; next; while(1) { if (.@roof0 > 7) { break; } else { switch(rand(1,3)) { case 1: specialeffect 54; //"1st Guardian Stone#sch01" EF_BEGINSPELL2 mes "^3355FFThe Gemstones must"; mes "be arranged in the correct"; mes "order according to their"; mes "magic properties and power.^000000"; next; switch(select("Red Gemstone:Yellow Gemstone:Blue Gemstone")) { case 1: mes "^3355FFYou placed the Red Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; case 2: mes "^3355FFYou placed the Yellow Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; case 3: mes "^3355FFYou placed the Blue Gemstone.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect 18; //"1st Guardian Stone#sch01" EF_STEAL next; break; } break; case 2: specialeffect 225; //"1st Guardian Stone#sch01" EF_VOLCANO mes "^3355FFThe Gemstones must"; mes "be arranged in the correct"; mes "order according to their"; mes "magic properties and power.^000000"; next; switch(select("Red Gemstone:Yellow Gemstone:Blue Gemstone")) { case 1: mes "^3355FFYou placed the Red Gemstone.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect 18; //"1st Guardian Stone#sch01" EF_STEAL next; break; case 2: mes "^3355FFYou placed the Yellow Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; case 3: mes "^3355FFYou placed the Blue Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; } break; case 3: specialeffect 56; //"1st Guardian Stone#sch01" EF_BEGINSPELL4 mes "^3355FFThe Gemstones must"; mes "be arranged in the correct"; mes "order according to their"; mes "magic properties and power.^000000"; next; switch(select("Red Gemstone:Yellow Gemstone:Blue Gemstone")) { case 1: mes "^3355FFYou placed the Red Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; case 2: mes "^3355FFYou placed the Yellow Gemstone.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect 18; //"1st Guardian Stone#sch01" EF_STEAL next; break; case 3: mes "^3355FFYou placed the Blue Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; } } } } if (.@nice > 90) { if ($agit_sc01[0] == 0) { mes "^3355FFThe Guardian Stone"; mes "Repair System has"; mes "already completed.^000000"; close; } else { if (agitcheck() == 0) { mes "^3355FFIt is impossible to"; mes "rebuild the Guardian"; mes "Stone because the"; mes "Emperium is not present.^000000"; close; } else { mes "^3355FFThe Gemstones have been"; mes "arranged, and the Guardian"; mes "Stone is successfully repaired.^000000"; delitem 984,1; //Oridecon delitem 985,1; //Elunium delitem 7049,30; //Stone delitem 717,5; //Blue_Gemstone delitem 715,5; //Yellow_Gemstone delitem 716,5; //Red_Gemstone close2; donpcevent "#sch01_df01::OnEnable"; specialeffect 135; //"1st Guardian Stone#sch01" EF_ICECRASH disablenpc "1st Guardian Stone#sch01"; setarray $agit_sc01[0],0; set .@df_all,$agit_sc01[0]+$agit_sc01[1]; if (.@df_all == 0) { mapannounce "schg_cas01","Both Guardian Stones have been erected, bolstering this stronghold's defenses!",bc_map,"0x00ff00"; donpcevent "#sch01_RL00::OnEnable"; } else { mapannounce "schg_cas01","The 1st Guardian Stone has been repaired successfully.",bc_map,"0x00ff00"; } if ($agit_sc01[5] == 1) { donpcevent "#sch01_gard01::OnEnable"; } end; } } } else { mes "^3355FFAfter all of that work..."; mes "It looks like you failed"; mes "to fix the Guardian Stone,"; mes "and lost some materials.^000000"; delitem 7049,10; //Stone delitem 717,2; //Blue_Gemstone delitem 715,2; //Yellow_Gemstone delitem 716,2; //Red_Gemstone close; } } else { mes "^3355FFYou don't have enough"; mes "materials to repair"; mes "the Guardian Stone.^000000"; close; } } } end; OnInit: disablenpc "1st Guardian Stone#sch01"; end; OnEnable: enablenpc "1st Guardian Stone#sch01"; specialeffect 247; //"1st Guardian Stone#sch01" EF_MAPPILLAR2 end; OnDisable: disablenpc "1st Guardian Stone#sch01"; end; } schg_cas01,1,4,0 script #sch01_df02 -1,{ OnEnable: guardian "schg_cas01",207,75,"2nd Guardian Stone",1908,"#sch01_df02::OnGuardianStoneDied"; //23; end; OnDisable: killmonster "schg_cas01","#sch01_df02::OnGuardianStoneDied"; setarray $agit_sc01[1],1; //Global Variable stopnpctimer; end; OnGuardianStoneDied: // 2nd Guardian Stone is Destroyed setarray $agit_sc01[1],1; if (($agit_sc01[0] == 1) || ($agit_sc01[0] == 2)) { set .@destroyed,.@destroyed + 1; } if (($agit_sc01[1] == 1) || ($agit_sc01[1] == 2)) { set .@destroyed,.@destroyed + 1; } if (.@destroyed == 2) { mapannounce "schg_cas01","All of the Guardian Stones have been destroyed!",bc_map,"0x00ff00"; donpcevent "#sch01_RL00::OnDisable"; donpcevent "#sch01_gard02::Onreset"; } else { mapannounce "schg_cas01","The 2nd Guardian Stone has been destroyed!",bc_map,"0x00ff00"; donpcevent "#sch01_gard02::Onreset"; } initnpctimer; end; OnTimer300000: donpcevent "2nd Guardian Stone#sch01::OnEnable"; setarray $agit_sc01[1],2; //Global Variable stopnpctimer; end; } schg_cas01,208,75,0 script 2nd Guardian Stone#sch01 844,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFYou will need the"; mes "following materials to"; mes "rebuild a destroyed"; mes "Guardian Stone.^000000"; next; mes "1 Oridecon"; mes "1 Elunium"; mes "30 Stones"; mes "5 Blue Gemstones"; mes "5 Yellow Gemstones"; mes "5 Red Gemstones"; next; mes "^3355FFDo you want to continue?^000000"; switch(select("No:Continue")) { case 1: mes "^3355FFWork canceled.^000000"; close; case 2: if ((countitem(984) > 0) && (countitem(985) > 0) && (countitem(7049) > 29) && (countitem(717) > 4) && (countitem(715) > 4) && (countitem(716) > 4)) { mes "^3355FFArrange Stones, Elunium, and"; mes "Oridecon, in that order, in the"; mes "center. Then you must arrange"; mes "the enchanted Gemstones to"; mes "rebuild the Guardian Stone.^000000"; next; switch(select("Elunium:Oridecon:Stone")) { case 1: mes "^3355FFElunium has been"; mes "placed in the center.^000000"; next; break; case 2: mes "^3355FFOridecon has been"; mes "placed in the center.^000000"; next; break; case 3: mes "^3355FFStones have been"; mes "placed in the center.^000000"; set .@nice,.@nice+10; next; break; } switch(select("Elunium:Oridecon:Stone")) { case 1: mes "^3355FFYou have lined the"; mes "outside of the center"; mes "with some Elunium.^000000"; set .@nice,.@nice+10; next; break; case 2: mes "^3355FFYou have lined the"; mes "outside of the center"; mes "with some Oridecon.^000000"; next; break; case 3: mes "^3355FFYou have lined the"; mes "outside of the center"; mes "with some Stones.^000000"; next; break; } switch(select("Elunium:Oridecon:Stone")) { case 1: mes "^3355FFYou covered the"; mes "rest of the materials"; mes "with some Elunium.^000000"; next; break; case 2: mes "^3355FFYou covered the"; mes "rest of the materials"; mes "with some Oridecon.^000000"; set .@nice,.@nice+10; next; break; case 3: mes "^3355FFYou covered the"; mes "rest of the materials"; mes "with some Stones.^000000"; next; break; } mes "^3355FFNow you need to arrange"; mes "the enchanted Gemstones"; mes "accordingly. You can identify"; mes "their Magic properties by"; mes "their casting effect.^000000"; next; while(1) { if (.@roof0 > 7) { break; } else { switch(rand(1,3)) { case 1: specialeffect 54; //"2nd Guardian Stone#sch01" EF_BEGINSPELL2 mes "^3355FFThe Gemstones must"; mes "be arranged in the correct"; mes "order according to their"; mes "magic properties and power.^000000"; next; switch(select("Red Gemstone:Yellow Gemstone:Blue Gemstone")) { case 1: mes "^3355FFYou placed the Red Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; case 2: mes "^3355FFYou placed the Yellow Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; case 3: mes "^3355FFYou placed the Blue Gemstone.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect 18; //"2nd Guardian Stone#sch01" EF_STEAL next; break; } break; case 2: specialeffect 225; //"2nd Guardian Stone#sch01" EF_VOLCANO mes "^3355FFThe Gemstones must"; mes "be arranged in the correct"; mes "order according to their"; mes "magic properties and power.^000000"; next; switch(select("Red Gemstone:Yellow Gemstone:Blue Gemstone")) { case 1: mes "^3355FFYou placed the Red Gemstone.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect 18; //"2nd Guardian Stone#sch01" EF_STEAL next; break; case 2: mes "^3355FFYou placed the Yellow Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; case 3: mes "^3355FFYou placed the Blue Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; } break; case 3: specialeffect 56; //"2nd Guardian Stone#sch01" EF_BEGINSPELL4 mes "^3355FFThe Gemstones must"; mes "be arranged in the correct"; mes "order according to their"; mes "magic properties and power.^000000"; next; switch(select("Red Gemstone:Yellow Gemstone:Blue Gemstone")) { case 1: mes "^3355FFYou placed the Red Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; case 2: mes "^3355FFYou placed the Yellow Gemstone.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect 18; //"2nd Guardian Stone#sch01" EF_STEAL next; break; case 3: mes "^3355FFYou placed the Blue Gemstone."; mes "However, the Guardian Stone"; mes "Repair System failed because"; mes "of a magic power conflict.^000000"; close; } } } } if (.@nice > 90) { if ($agit_sc01[1] == 0) { mes "^3355FFThe Guardian Stone"; mes "Repair System has"; mes "successfully completed.^000000"; close; } else { if (agitcheck() == 0) { mes "^3355FFIt is impossible to"; mes "rebuild the Guardian"; mes "Stone because the"; mes "Emperium is not present.^000000"; close; } else { mes "^3355FFThe Gemstones have been"; mes "arranged, and the Guardian"; mes "Stone is successfully repaired.^000000"; delitem 984,1; //Oridecon delitem 985,1; //Elunium delitem 7049,30; //Stone delitem 717,5; //Blue_Gemstone delitem 715,5; //Yellow_Gemstone delitem 716,5; //Red_Gemstone close2; donpcevent "#sch01_df02::OnEnable"; specialeffect 135; //"2nd Guardian Stone#sch01" EF_ICECRASH disablenpc "2nd Guardian Stone#sch01"; setarray $agit_sc01[1],0; set .@df_all,$agit_sc01[0]+$agit_sc01[1]; if (.@df_all == 0) { mapannounce "schg_cas01","Both Guardian Stones have been erected, bolstering this stronghold's defenses!",bc_map,"0x00ff00"; donpcevent "#sch01_RL00::OnEnable"; } else { mapannounce "schg_cas01","The 2nd Guardian Stone has been repaired successfully.",bc_map,"0x00ff00"; } if ($agit_sc01[5] == 1) { donpcevent "#sch01_gard02::OnEnable"; } end; } } } else { mes "^3355FFAfter all of that work..."; mes "It looks like you failed"; mes "to fix the Guardian Stone,"; mes "and lost some materials.^000000"; delitem 7049,10; //Stone delitem 717,2; //Blue_Gemstone delitem 715,2; //Yellow_Gemstone delitem 716,2; //Red_Gemstone close; } } else { mes "^3355FFYou don't have enough"; mes "materials to repair"; mes "the Guardian Stone.^000000"; close; } } } end; OnInit: disablenpc "2nd Guardian Stone#sch01"; end; OnEnable: enablenpc "2nd Guardian Stone#sch01"; specialeffect 247; //"2nd Guardian Stone#sch01" EF_MAPPILLAR2 end; OnDisable: disablenpc "2nd Guardian Stone#sch01"; end; } // Barrier Summoners schg_cas01,2,1,0 script #sch01_RL00 -1,{ OnEnable: setcell "schg_cas01",114,48,126,48,cell_walkable,0; setcell "schg_cas01",114,48,126,48,cell_shootable,0; guardian "schg_cas01",115,49," ",1905,"#sch01_RL00::OnBarrierDestroyed"; //24; guardian "schg_cas01",117,49," ",1905,"#sch01_RL00::OnBarrierDestroyed"; //25; guardian "schg_cas01",119,49," ",1905,"#sch01_RL00::OnBarrierDestroyed"; //26; guardian "schg_cas01",121,49," ",1905,"#sch01_RL00::OnBarrierDestroyed"; //27; guardian "schg_cas01",123,49," ",1905,"#sch01_RL00::OnBarrierDestroyed"; //28; guardian "schg_cas01",125,49," ",1905,"#sch01_RL00::OnBarrierDestroyed"; //29; end; OnDisable: setcell "schg_cas01",114,48,126,48,cell_walkable,1; setcell "schg_cas01",114,48,126,48,cell_shootable,1; killmonster "schg_cas01","#sch01_RL00::OnBarrierDestroyed"; end; OnBarrierDestroyed: end; } schg_cas01,2,2,0 script #sch01_RL01 -1,{ OnEnable: set .MyMobCount,6; setcell "schg_cas01",114,51,126,51,cell_walkable,0; guardian "schg_cas01",115,50," ",1905,"#sch01_RL01::OnBarrierDestroyed"; //30; guardian "schg_cas01",117,50," ",1905,"#sch01_RL01::OnBarrierDestroyed"; //31; guardian "schg_cas01",119,50," ",1905,"#sch01_RL01::OnBarrierDestroyed"; //32; guardian "schg_cas01",121,50," ",1905,"#sch01_RL01::OnBarrierDestroyed"; //33; guardian "schg_cas01",123,50," ",1905,"#sch01_RL01::OnBarrierDestroyed"; //34; guardian "schg_cas01",125,50," ",1905,"#sch01_RL01::OnBarrierDestroyed"; //35; end; OnBarrierDestroyed: set .MyMobCount,.MyMobCount-1; if (.MyMobCount == 0) { setarray $agit_sc01[2],1; mapannounce "schg_cas01","The 1st Fortress Gate is destroyed.",bc_map,"0x00ff00"; setcell "schg_cas01",114,51,126,51,cell_walkable,1; } end; OnDisable: setcell "schg_cas01",114,51,126,51,cell_walkable,1; killmonster "schg_cas01","#sch01_RL01::OnBarrierDestroyed"; end; } schg_cas01,2,3,0 script #sch01_RL02 -1,{ OnEnable: set .MyMobCount,6; setcell "schg_cas01",114,154,126,154,cell_walkable,0; guardian "schg_cas01",115,153," ",1905,"#sch01_RL02::OnBarrierDestroyed"; //36; guardian "schg_cas01",117,153," ",1905,"#sch01_RL02::OnBarrierDestroyed"; //37; guardian "schg_cas01",119,153," ",1905,"#sch01_RL02::OnBarrierDestroyed"; //38; guardian "schg_cas01",121,153," ",1905,"#sch01_RL02::OnBarrierDestroyed"; //39; guardian "schg_cas01",123,153," ",1905,"#sch01_RL02::OnBarrierDestroyed"; //40; guardian "schg_cas01",125,153," ",1905,"#sch01_RL02::OnBarrierDestroyed"; //41; end; OnBarrierDestroyed: set .MyMobCount,.MyMobCount-1; if (.MyMobCount == 0) { setarray $agit_sc01[3],1; mapannounce "schg_cas01","The 2nd Fortress Gate is destroyed.",bc_map,"0x00ff00"; setcell "schg_cas01",114,154,126,154,cell_walkable,1; } end; OnDisable: setcell "schg_cas01",114,154,126,154,cell_walkable,1; killmonster "schg_cas01","#sch01_RL02::OnBarrierDestroyed"; end; } schg_cas01,2,4,0 script #sch01_RL03 -1,{ OnEnable: set .MyMobCount,4; setcell "schg_cas01",116,241,126,241,cell_walkable,0; guardian "schg_cas01",116,240," ",1905,"#sch01_RL03::OnBarrierDestroyed"; //42; guardian "schg_cas01",118,240," ",1905,"#sch01_RL03::OnBarrierDestroyed"; //43; guardian "schg_cas01",120,240," ",1905,"#sch01_RL03::OnBarrierDestroyed"; //44; guardian "schg_cas01",122,240," ",1905,"#sch01_RL03::OnBarrierDestroyed"; //45; end; OnBarrierDestroyed: set .MyMobCount,.MyMobCount-1; if (.MyMobCount == 0) { setarray $agit_sc01[4],1; mapannounce "schg_cas01","The 3rd Fortress Gate is destroyed!",bc_map,"0x00ff00"; setcell "schg_cas01",116,241,126,241,cell_walkable,1; } end; OnDisable: setcell "schg_cas01",116,241,126,241,cell_walkable,1; killmonster "schg_cas01","#sch01_RL03::OnBarrierDestroyed"; end; } schg_cas01,124,52,0 script Control Device01#sch01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { if (strcharinfo(0) == getguildmaster(.@GID)) { if ($agit_sc01[2] == 2) { mes "^3355FFDemolished Fortress"; mes "Gates can be repaired,"; mes "but you will need to gather"; mes "the following materials.^000000"; next; mes "^4D4DFF10 Steel^000000,"; mes "^4D4DFF30 Trunks^000000,"; mes "^4D4DFF5 Oridecon^000000, and"; mes "^4D4DFF10 Emveretarcon^000000."; next; select("Continue"); if ((countitem(1019) > 29) && (countitem(999) > 9) && (countitem(1011) > 9) && (countitem(984) > 4)) { mes "^3355FFYou will need Trunks to"; mes "repair the support frame,"; mes "Oridecon to enhance the"; mes "gate's endurance, and"; mes "Emveretarcon to basically"; mes "hold everything together.^000000"; next; set .@ro_of01,rand(10,15); while(1) { if (.@ro_of02 == .@ro_of01) { break; } else { switch(rand(1,4)) { case 1: mes "^3355FFThe support frame"; mes "is badly damaged:"; mes "fixing this part"; mes "is a top priority.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFThe frame has been"; mes "reinforced with wood.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; case 2: mes "^3355FFYou tried using steel,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; case 3: mes "^3355FFYou tried using emveretarcon,"; mes "but it's not working very well.^FFFFFF ^3355FF You'll have to try something else."; close; case 4: mes "^3355FFYou tried using oridecon,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; } break; case 2: mes "^3355FFIt looks like the gate's"; mes "overall endurance needs to"; mes "be reinforced with something.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFYou tried using wood"; mes "to reinforce the gate.^000000"; set .@ro_of02,.@ro_of02 + 1; next; break; case 2: mes "^3355FFYou tried using steel"; mes "to reinforce the gate, but"; mes "it's not working well at all."; mes "You'll have to start over.^000000"; close; case 3: mes "^3355FFYou tried using emveretarcon"; mes "to reinforce the gate, but it's"; mes "not working well at all."; mes "You'll have to start over.^000000"; close; case 4: mes "^3355FFYou hammered the"; mes "oridecon: it looks"; mes "like this will work.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; } break; case 3: mes "^3355FFThe damage to the gate"; mes "has caused all these"; mes "cracks. You'll have to"; mes "weld them solid somehow.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFYou tried using wood to fix"; mes "this problem, but it seems"; mes "to have made it worse."; mes "You'll have to start all over.^000000"; close; case 2: mes "^3355FFYou used steel to weld"; mes "all the cracks: the gate is"; mes "is starting to look more solid.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; case 3: mes "^3355FFYou tried using emveretarcon"; mes "to reinforce the gate, but it's"; mes "not working well at all."; mes "You'll have to start over.^000000"; close; case 4: mes "^3355FFYou tried using oridecon,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; } break; case 4: mes "^3355FFNow you need to make"; mes "sure that the gate is held"; mes "together pretty solidly.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFYou tried using wood to fix"; mes "this problem, but it seems"; mes "to have made it worse."; mes "You'll have to start all over.^000000"; close; case 2: mes "^3355FFYou tried using steel,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; case 3: mes "^3355FFYou successfully used"; mes "the emveretarcon to repair"; mes "much of the gate's damage.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; case 4: mes "^3355FFYou tried using oridecon,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; } } } } mes "^3355FFWell, it looks like"; mes "you're just about done"; mes "with repairing the gate.^000000"; next; if (agitcheck() == 0) { mes "^3355FFUnfortunately, the Fortress"; mes "Gate can't be reconstructed:"; mes "the Emperium is no longer here.^000000"; close; } else { if (.@rp_temp == .@ro_of01) { mes "^3355FFThe Fortress Gate has"; mes "been successfully repaired!^000000"; delitem 1019,30; //Wooden_Block delitem 999,10; //Steel delitem 1011,10; //Emveretarcon delitem 984,5; //Oridecon close2; donpcevent "#sch01_RL01::OnEnable"; disablenpc "Control Device01#sch01"; mapannounce "schg_cas01","The 1st Fortress Gate has been reconstructed!",bc_map,"0x00ff00"; setarray $agit_sc01[2],0; end; } else { mes "^3355FFThe wall has been breached,"; mes "and the attempt to repair the"; mes "Fortress Gate has failed."; mes "You lost some of your"; mes "repair resources...^000000"; delitem 984,2; //Oridecon delitem 999,4; //Steel delitem 1019,14; //Wooden_Block delitem 1011,3; //Emveretarcon close; } } } else { mes "^3355FFYou can't attempt to repair"; mes "the Fortress Gate if you don't"; mes "have all the needed materials.^000000"; close; } } } } end; OnInit: disablenpc "Control Device01#sch01"; end; OnEnable: enablenpc "Control Device01#sch01"; end; OnDisable: disablenpc "Control Device01#sch01"; end; } schg_cas01,128,157,0 script Control Device02#sch01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { if (strcharinfo(0) == getguildmaster(.@GID)) { if ($agit_sc01[3] == 2) { mes "^3355FFDemolished Fortress"; mes "Gates can be repaired,"; mes "but you will need to gather"; mes "the following materials.^000000"; next; mes "^4D4DFF10 Steel^000000,"; mes "^4D4DFF30 Trunks^000000,"; mes "^4D4DFF5 Oridecon^000000, and"; mes "^4D4DFF10 Emveretarcon^000000."; next; select("Continue"); if ((countitem(1019) > 29) && (countitem(999) > 9) && (countitem(1011) > 9) && (countitem(984) > 4)) { mes "^3355FFYou will need Trunks to"; mes "repair the support frame,"; mes "Oridecon to enhance the"; mes "gate's endurance, and"; mes "Emveretarcon to basically"; mes "hold everything together.^000000"; next; set .@ro_of01,rand(10,15); while(1) { if (.@ro_of02 == .@ro_of01) { break; } else { switch(rand(1,4)) { case 1: mes "^3355FFThe support frame"; mes "is badly damaged:"; mes "fixing this part"; mes "is a top priority.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFThe frame has been"; mes "reinforced with wood.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; case 2: mes "^3355FFYou tried using steel,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; case 3: mes "^3355FFYou tried using emveretarcon"; mes "to reinforce the gate, but it's"; mes "not working well at all."; mes "You'll have to start over.^000000"; close; case 4: mes "^3355FFYou tried using oridecon,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; } break; case 2: mes "^3355FFIt looks like the gate's"; mes "overall endurance needs to"; mes "be reinforced with something.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFYou tried using wood"; mes "to reinforce the gate.^000000"; set .@ro_of02,.@ro_of02 + 1; next; break; case 2: mes "^3355FFYou tried using steel"; mes "to reinforce the gate, but"; mes "it's not working well at all."; mes "You'll have to start over.^000000"; close; case 3: mes "^3355FFYou tried using emveretarcon"; mes "to reinforce the gate, but it's"; mes "not working well at all."; mes "You'll have to start over.^000000"; close; case 4: mes "^3355FFYou hammered the"; mes "oridecon: it looks"; mes "like this will work.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; } break; case 3: mes "^3355FFThe damage to the gate"; mes "has caused all these"; mes "cracks. You'll have to"; mes "weld them solid somehow.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFYou tried using wood to fix"; mes "this problem, but it seems"; mes "to have made it worse."; mes "You'll have to start all over.^000000"; close; case 2: mes "^3355FFYou used steel to weld"; mes "all the cracks: the gate is"; mes "is starting to look more solid.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; case 3: mes "^3355FFYou tried using emveretarcon"; mes "to reinforce the gate, but it's"; mes "not working well at all."; mes "You'll have to start over.^000000"; close; case 4: mes "^3355FFYou tried using oridecon,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; } break; case 4: mes "^3355FFNow you need to make"; mes "sure that the gate is held"; mes "together pretty solidly.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFYou tried using wood to fix"; mes "this problem, but it seems"; mes "to have made it worse."; mes "You'll have to start all over.^000000"; close; case 2: mes "^3355FFYou tried using steel,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; case 3: mes "^3355FFYou successfully used"; mes "the emveretarcon to repair"; mes "much of the gate's damage.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; case 4: mes "^3355FFYou tried using oridecon,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; } } } } mes "^3355FFWell, it looks like"; mes "you're just about done"; mes "with repairing the gate.^000000"; next; if (agitcheck() == 0) { mes "^3355FFUnfortunately, the Fortress"; mes "Gate can't be reconstructed:"; mes "the Emperium is no longer here.^000000"; close; } else { if (.@rp_temp == .@ro_of01) { mes "^3355FFThe Fortress Gate has"; mes "been successfully repaired!^000000"; delitem 1019,30; //Wooden_Block delitem 999,10; //Steel delitem 1011,10; //Emveretarcon delitem 984,5; //Oridecon close2; donpcevent "#sch01_RL02::OnEnable"; disablenpc "Control Device02#sch01"; mapannounce "schg_cas01","The 2nd Fortress Gate has been reconstructed!",bc_map,"0x00ff00"; setarray $agit_sc01[3],0; //Global Variable setarray $agit_sc01[2],2; //Global Variable donpcevent "Control Device01#sch01::OnEnable"; end; } else { mes "^3355FFThe wall has been breached,"; mes "and the attempt to repair the"; mes "Fortress Gate has failed."; mes "You lost some of your"; mes "repair resources...^000000"; delitem 984,2; //Oridecon delitem 999,4; //Steel delitem 1019,14; //Wooden_Block delitem 1011,3; //Emveretarcon close; } } } else { mes "^3355FFYou can't attempt to repair"; mes "the Fortress Gate if you don't"; mes "have all the needed materials.^000000"; close; } } } } end; OnInit: disablenpc "Control Device02#sch01"; end; OnEnable: enablenpc "Control Device02#sch01"; end; OnDisable: disablenpc "Control Device02#sch01"; end; } schg_cas01,109,247,0 script Control Device03#sch01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { if (strcharinfo(0) == getguildmaster(.@GID)) { if ($agit_sc01[4] == 2) { mes "^3355FFDemolished Fortress"; mes "Gates can be repaired,"; mes "but you will need to gather"; mes "the following materials.^000000"; next; mes "^4D4DFF10 Steel^000000,"; mes "^4D4DFF30 Trunks^000000,"; mes "^4D4DFF5 Oridecon^000000, and"; mes "^4D4DFF10 Emveretarcon^000000."; next; select("Continue"); if ((countitem(1019) > 29) && (countitem(999) > 9) && (countitem(1011) > 9) && (countitem(984) > 4)) { mes "^3355FFYou will need Trunks to"; mes "repair the support frame,"; mes "Oridecon to enhance the"; mes "gate's endurance, and"; mes "Emveretarcon to basically"; mes "hold everything together.^000000"; next; set .@ro_of01,rand(10,15); while(1) { if (.@ro_of02 == .@ro_of01) { break; } else { switch(rand(1,4)) { case 1: mes "^3355FFThe support frame"; mes "is badly damaged:"; mes "fixing this part"; mes "is a top priority.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFThe frame has been"; mes "reinforced with wood.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; case 2: mes "^3355FFYou tried using steel,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; case 3: mes "^3355FFYou tried using emveretarcon"; mes "to reinforce the gate, but it's"; mes "not working well at all."; mes "You'll have to start over.^000000"; close; case 4: mes "^3355FFYou tried using oridecon,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; } break; case 2: mes "^3355FFIt looks like the gate's"; mes "overall endurance needs to"; mes "be reinforced with something.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFYou tried using wood"; mes "to reinforce the gate.^000000"; set .@ro_of02,.@ro_of02 + 1; next; break; case 2: mes "^3355FFYou tried using steel"; mes "to reinforce the gate, but"; mes "it's not working well at all."; mes "You'll have to start over.^000000"; close; case 3: mes "^3355FFYou tried using emveretarcon"; mes "to reinforce the gate, but it's"; mes "not working well at all."; mes "You'll have to start over.^000000"; close; case 4: mes "^3355FFYou hammered the"; mes "oridecon: it looks"; mes "like this will work.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; } break; case 3: mes "^3355FFThe damage to the gate"; mes "has caused all these"; mes "cracks. You'll have to"; mes "weld them solid somehow.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFYou tried using wood to fix"; mes "this problem, but it seems"; mes "to have made it worse."; mes "You'll have to start all over.^000000"; close; case 2: mes "^3355FFYou used steel to weld"; mes "all the cracks: the gate is"; mes "is starting to look more solid.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; case 3: mes "^3355FFYou tried using emveretarcon"; mes "to reinforce the gate, but it's"; mes "not working well at all."; mes "You'll have to start over.^000000"; close; case 4: mes "^3355FFYou tried using oridecon,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; } break; case 4: mes "^3355FFNow you need to make"; mes "sure that the gate is held"; mes "together pretty solidly.^000000"; next; switch(select("Trunk:Steel:Emveretarcon:Oridecon")) { case 1: mes "^3355FFYou tried using wood to fix"; mes "this problem, but it seems"; mes "to have made it worse."; mes "You'll have to start all over.^000000"; close; case 2: mes "^3355FFYou tried using steel,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; case 3: mes "^3355FFYou successfully used"; mes "the emveretarcon to repair"; mes "much of the gate's damage.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 101; // EF_REPAIRWEAPON next; break; case 4: mes "^3355FFYou tried using oridecon,"; mes "but it's not working very"; mes "well. You'll have to try"; mes "something else.^000000"; close; } } } } mes "^3355FFWell, it looks like"; mes "you're just about done"; mes "with repairing the gate.^000000"; next; if (agitcheck() == 0) { mes "^3355FFUnfortunately, the Fortress"; mes "Gate can't be reconstructed:"; mes "the Emperium is no longer here.^000000"; close; } else { if (.@rp_temp == .@ro_of01) { mes "^3355FFThe Fortress Gate has"; mes "been successfully repaired!^000000"; delitem 1019,30; //Wooden_Block delitem 999,10; //Steel delitem 1011,10; //Emveretarcon delitem 984,5; //Oridecon close2; donpcevent "#sch01_RL03::OnEnable"; disablenpc "Control Device03#sch01"; mapannounce "schg_cas01","The 3rd Fortress Gate has been reconstructed!",bc_map,"0x00ff00"; setarray $agit_sc01[4],0; setarray $agit_sc01[3],2; donpcevent "Control Device02#sch01::OnEnable"; end; } else { mes "^3355FFThe wall has been breached,"; mes "and the attempt to repair the"; mes "Fortress Gate has failed."; mes "You lost some of your"; mes "repair resources...^000000"; delitem 984,2; //Oridecon delitem 999,4; //Steel delitem 1019,14; //Wooden_Block delitem 1011,3; //Emveretarcon close; } } } else { mes "^3355FFYou can't attempt to repair"; mes "the Fortress Gate if you don't"; mes "have all the needed materials.^000000"; close; } } } } end; OnInit: disablenpc "Control Device03#sch01"; end; OnEnable: enablenpc "Control Device03#sch01"; end; OnDisable: disablenpc "Control Device03#sch01"; end; } // Link Flags schg_cas01,106,302,0 script LF-01#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Please"; mes "choose a destination"; mes "within the stronghold.^000000"; switch(select("First Gate House:Second Gate House:Cancel")) { case 1: warp "schg_cas01",19,26; end; case 2: warp "schg_cas01",219,90; end; case 3: close; } } end; } schg_cas01,109,302,0 script LF-02#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Please"; mes "choose a destination"; mes "within the stronghold.^000000"; switch(select("Defense Area 1-1:Defense Area 1-2:Cancel")) { case 1: warp "schg_cas01",89,43; end; case 2: warp "schg_cas01",141,45; end; case 3: close; } } end; } schg_cas01,112,302,0 script LF-03#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Please"; mes "choose a destination"; mes "within the stronghold.^000000"; switch(select("Defense Area 2-1:Defense Area 2-2:Cancel")) { case 1: warp "schg_cas01",137,54; end; case 2: warp "schg_cas01",102,54; end; case 3: close; } } end; } schg_cas01,115,302,0 script LF-04#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Please"; mes "choose a destination"; mes "within the stronghold.^000000"; switch(select("Defense Area 2-3:Defense Area 2-4:Cancel")) { case 1: warp "schg_cas01",94,147; end; case 2: warp "schg_cas01",163,140; end; case 3: close; } } end; } schg_cas01,118,302,0 script LF-05#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Please"; mes "choose a destination"; mes "within the stronghold.^000000"; switch(select("Defense Area 2-3:Defense Area 2-4:Cancel")) { case 1: warp "schg_cas01",87,220; end; case 2: warp "schg_cas01",151,220; end; case 3: close; } } end; } schg_cas01,121,302,0 script LF-06#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Please"; mes "choose a destination"; mes "within the stronghold.^000000"; switch(select("Defense Area 3-1:Defense Area 3-2:Cancel")) { case 1: warp "schg_cas01",100,242; end; case 2: warp "schg_cas01",136,242; end; case 3: close; } } end; } schg_cas01,124,302,0 script LF-07#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Please"; mes "choose a destination"; mes "within the stronghold.^000000"; switch(select("Center 1 Area:Center 2 Area:Cancel")) { case 1: warp "schg_cas01",120,168; end; case 2: warp "schg_cas01",119,211; end; case 3: close; } } end; } schg_cas01,127,302,0 script LF-08#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Please"; mes "choose a destination"; mes "within the stronghold.^000000"; switch(select("Area 1-1:Area 2-1:Area 3-1:Cancel")) { case 1: warp "schg_cas01",89,43; end; case 2: warp "schg_cas01",94,147; end; case 3: warp "schg_cas01",100,242; end; case 4: close; } } end; } schg_cas01,130,302,0 script LF-09#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Please"; mes "choose a destination"; mes "within the stronghold.^000000"; switch(select("Area 1-2:Area 2-3:Area 3-2:Cancel")) { case 1: warp "schg_cas01",141,45; end; case 2: warp "schg_cas01",163,140; end; case 3: warp "schg_cas01",136,243; end; case 4: close; } } end; } schg_cas01,133,302,0 script LF-10#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Would"; mes "you like to teleport to the"; mes "Convenience Facility for"; mes "guild members?^000000"; switch(select("Go to Convenience Facility:Cancel")) { case 1: warp "schg_cas01",275,244; end; case 2: close; } } end; } schg_cas01,17,45,0 script Himinn#LF_sc01_1::LF_sc01_1 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Would"; mes "you like to teleport to"; mes "the Emperium Center?^000000"; switch(select("Teleport:Cancel")) { case 1: warp "schg_cas01",120,290; end; case 2: close; } } end; } schg_cas01,207,95,0 duplicate(LF_sc01_1) Himinn#LF_sc01_2 111 schg_cas01,111,46,4 script Himinn#LF_sc01_3::LF_sc01_2 722,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFThis is the Stronghold"; mes "Teleport Service. Would"; mes "you like to teleport to"; mes "the Emperium Center?^000000"; switch(select("Teleport:Cancel")) { case 1: warp "schg_cas01",120,290; end; case 2: close; } } end; OnRecvCastleSc01: FlagEmblem GetCastleData("schg_cas01",1); end; } schg_cas01,129,46,4 duplicate(LF_sc01_2) Himinn#LF_sc01_4 722 schg_cas01,99,77,0 duplicate(LF_sc01_1) Himinn#LF_sc01_5 111 schg_cas01,140,77,0 duplicate(LF_sc01_1) Himinn#LF_sc01_6 111 schg_cas01,109,150,4 duplicate(LF_sc01_2) Himinn#LF_sc01_7 722 schg_cas01,130,150,4 duplicate(LF_sc01_2) Himinn#LF_sc01_8 722 schg_cas01,112,212,0 duplicate(LF_sc01_1) Himinn#LF_sc01_9 111 schg_cas01,127,212,0 duplicate(LF_sc01_1) Himinn#LF_sc01_10 111 schg_cas01,113,238,0 duplicate(LF_sc01_1) Himinn#LF_sc01_11 111 schg_cas01,126,238,0 duplicate(LF_sc01_1) Himinn#LF_sc01_12 111 schg_cas01,95,247,0 duplicate(LF_sc01_1) Himinn#LF_sc01_13 111 schg_cas01,144,247,0 duplicate(LF_sc01_1) Himinn#LF_sc01_14 111 // Guild Manager schg_cas01,247,305,3 script Steward#sch01 55,{ set .@GID, GetCastleData("schg_cas01",1); if (.@GID == 0) { mes "[ Steward ]"; mes "I await for the master"; mes "whom destiny will choose"; mes "for me. Do you think you"; mes "have to courage and strength"; mes "to conquer this stronghold?"; close; } if (getcharid(2) != .@GID || strcharinfo(0) != getguildmaster(.@GID)) { mes "[ Steward ]"; mes "Hmpf. Your threats don't"; mes "scare me! Guardians, drive"; mes "this infidel away from here!"; mes "I will always be loyal to the"; mes "master of this stronghold,"; mes "the one and only ^FF0000" + getguildmaster(.@GID) + "^000000."; close; } mes "[ Steward ]"; mes "Ah, Master ^FF0000" + getguildmaster(.@GID) + "^000000..."; mes "How shall I serve you today?"; mes "Was there an aspect of this"; mes "stronghold's maintenance"; mes "you wanted to discuss?"; next; switch(select("Stronghold Briefing:Invest in Commercial Growth:Invest in Defense growth:Hire/Fire Storage Staff:Go to Master's room")) { case 1: mes "[ Steward ]"; mes "The Commercial Growth"; mes "Level of the stronghold is ^0000ff" + GetCastleData("schg_cas01",2) + "."; if (GetCastleData("schg_cas01",4) > 0) { mes "Last time, you invested in"; mes "Commercial Growth " + GetCastleData("schg_cas01",4) + "."; } next; mes "[ Steward ]"; mes "Our stronghold's"; mes "safeguard level is " + GetCastleData("schg_cas01",3) + "."; if (GetCastleData("schg_cas01",5) > 0) { mes "Last time, you invested"; mes "in defense " + GetCastleData("schg_cas01",5) + " times."; } mes " "; mes "That is all, master."; close; case 2: set .@Economy,GetCastleData("schg_cas01",2); if(.@Economy < 8) set .@eco_invest,10000; if(.@Economy >= 8) set .@eco_invest,20000; if(.@Economy >= 16) set .@eco_invest,40000; if(.@Economy >= 25) set .@eco_invest,80000; if(.@Economy >= 34) set .@eco_invest,160000; if(.@Economy >= 44) set .@eco_invest,320000; if(.@Economy >= 54) set .@eco_invest,640000; if(.@Economy >= 65) set .@eco_invest,1280000; if(.@Economy >= 76) set .@eco_invest,2560000; if(.@Economy >= 88) set .@eco_invest,5120000; mes "[ Steward ]"; mes "Raising the stronghold's"; mes "commercial growth will"; mes "increase the quantity of"; mes "goods produced for the guild."; mes "Investing in commercial growth"; mes "will help the guild's future."; next; mes "[ Steward ]"; mes "You can make one investment"; mes "each day, but if you can make"; mes "two investments if you pay"; mes "more zeny: this will speed"; mes "up commercial development,"; mes "but can be quite expensive."; next; if (.@Economy == 100) { mes "[ Steward ]"; mes "However, our stronghold's"; mes "commerical growth level is"; mes "at 100%. It's not possible to"; mes "develop commercial growth"; mes "any further than that."; close; } if (GetCastleData("schg_cas01",4) == 2) { mes "[ Steward ]"; mes "You've already made two"; mes "investments today, so you'll"; mes "have to wait until tomorrow"; mes "to make another investment."; close; } if (GetCastleData("schg_cas01",4) == 0) { mes "[ Steward ]"; mes "You must pay ^FF0000" + .@eco_invest + "^000000 zeny"; mes "to make an investment"; mes "Will you invest in this"; mes "stronghold's commerical"; mes "development now?"; } else { mes "[ Steward ]"; mes "You must pay ^FF0000" + .@eco_invest + "^000000"; mes "more zeny to make a second"; mes "investment today. Will you"; mes "invest one more time?"; } next; switch(select("Invest in Commercial Growth:Cancel")) { case 1: if (Zeny < .@eco_invest) { mes "[ Steward ]"; mes "I'm sorry, Master, but"; mes "you do not have enough"; mes "zeny to make an investment"; mes "for the guild today."; close; } set zeny,zeny-.@eco_invest; SetCastleData "schg_cas01",4,GetCastleData("schg_cas01",4)+1; SetCastleData "schg_cas01",2,.@Economy + 1 + (.@Economy<99 && rand(2) && getgdskilllv(.@GID,10014)); mes "[ Steward ]"; mes "A wise use of the guild's"; mes "funds, Master. We can expect"; mes "to see the results of this"; mes "investment by tomorrow."; close; case 2: mes "[ Steward ]"; mes "As you command, Master."; close; } case 3: set .@Defence,GetCastleData("schg_cas01",3); if(.@Defence < 8) set .@def_invest,20000; if(.@Defence >= 8) set .@def_invest,40000; if(.@Defence >= 16) set .@def_invest,80000; if(.@Defence >= 25) set .@def_invest,160000; if(.@Defence >= 34) set .@def_invest,320000; if(.@Defence >= 44) set .@def_invest,640000; if(.@Defence >= 54) set .@def_invest,1280000; if(.@Defence >= 65) set .@def_invest,2560000; if(.@Defence >= 76) set .@def_invest,5120000; if(.@Defence >= 88) set .@def_invest,10240000; mes "[ Steward ]"; mes "Investing in our stronghold's"; mes "defense will enhance the"; mes "durability of our Guardians"; mes "and the Emperium. We'll need"; mes "every advantage to protect"; mes "ourselves from our enemies."; next; mes "[ Steward ]"; mes "You can invest in defense"; mes "once per day, but if you pay"; mes "more zeny, you can invest"; mes "a maximum of two times daily."; next; mes "[ Steward ]"; if (GetCastleData("schg_cas01",3) == 100) { mes "The Defense Level of this"; mes "stronghold is 100%, and"; mes "cannot be increased further."; close; } if (GetCastleData("schg_cas01",5) == 2) { mes "Master, you've already"; mes "invested in Defense twice"; mes "today. You'll need to wait"; mes "until tomorrow if you really"; mes "want to increase our defenses."; close; } if (GetCastleData("schg_cas01",5) == 0) { mes "We need ^FF0000" + .@def_invest + "^000000"; mes "zeny to invest in our"; mes "stronghold's defenses."; mes "Will you invest now?"; } else { mes "We need ^FF0000" + .@def_invest + "^000000"; mes "zeny to invest in our"; mes "stronghold's defenses"; mes "a second time today."; mes "Will you invest now?"; } next; switch(select("Invest in Defense:Cancel")) { case 1: if (Zeny < .@def_invest) { mes "[ Steward ]"; mes "I'm sorry, Master, but"; mes "you do not have enough"; mes "zeny to make an investment"; mes "for the guild today."; close; } set zeny,zeny-.@def_invest; SetCastleData "schg_cas01",5,GetCastleData("schg_cas01",5)+1; SetCastleData "schg_cas01",3,.@Defence+1; mes "[ Steward ]"; mes "A wise use of the guild's"; mes "funds, Master. Increasing"; mes "the frequency of treasure"; mes "procured by the guild will"; mes "definitely help us all."; close; case 2: mes "[ Steward ]"; mes "As you command, Master."; close; } case 4: if (GetCastleData("schg_cas01",9) == 1) { mes "[ Steward ]"; mes "Do you wish to dismiss"; mes "the Kafra Employee that"; mes "we've hired for the guild?"; next; switch(select("Dismiss:Cancel")) { case 1: cutin "kafra_01",2; mes "[ Hired Kafra Employee ]"; mes "Master, please reconsider!"; mes "I've been working very hard"; mes "for the success of the guild!"; mes "I'll try harder to serve the"; mes "guild members of this"; mes "stronghold, I promise!"; next; switch(select("Dismiss:Cancel")) { case 1: mes "[ Hired Kafra Employee ]"; mes "Why?! What have I done"; mes "to deserve this? Waaah~!"; next; cutin "kafra_01",255; break; case 2: mes "[ Hired Kafra Employee ]"; mes "Thank you, Master!"; mes "I'll obey your every"; mes "command as best I can!"; mes "You won't regret this!"; close; } break; case 2: mes "[ Steward ]"; mes "She works very hard,"; mes "in my opinion. It was in"; mes "all of our best interests to"; mes "allow her to stay with us."; close; } disablenpc "Kafra Employee#sch01"; SetCastleData "schg_cas01",9,0; mes "[ Steward ]"; mes "That Kafra Employee"; mes "has been dismissed."; mes "Were really dissatisfied"; mes "by the quality of her service?"; close; } else { mes "[ Steward ]"; mes "Will you hire a"; mes "Kafra Employee to serve"; mes "our stronghold? You must"; mes "pay ^FF000010,000 zeny^000000 to hire one."; next; switch(select("Hire:Cancel")) { case 1: if (getgdskilllv(.@GID,10001) == 0) { mes "[ Steward ]"; mes "Master, we cannot hire a"; mes "Kafra Employee because"; mes "you have not yet attained"; mes "the ^FF0000Contract with Kafra^000000"; mes "guild skill."; close; } if (Zeny < 10000) { mes "[ Steward ]"; mes "Master, we cannot hire a"; mes "Kafra Employee because"; mes "we do not have enough"; mes "funds to pay the contract fee."; close; } set zeny,zeny-10000; enablenpc "Kafra Employee#sch01"; SetCastleData "schg_cas01",9,1; mes "[ Steward ]"; mes "Very well. We have formed"; mes "a contract with the Kafra"; mes "Head Office, and hired a"; mes "Kafra Employee for our"; mes "stronghold. Here she is~"; next; cutin "kafra_01",2; mes "[ Hired Kafra Employee ]"; mes "How do you do? I've"; mes "been dispatched by the"; mes "Kafra Head Office to"; mes "serve your guild's needs."; mes "I'll do my best to follow"; mes "your every command, Master."; next; cutin "kafra_01",255; mes "[ Steward ]"; mes "Our contract will expire"; mes "after one month, so we must"; mes "pay additional fees to keep"; mes "this Kafra Employee in"; mes "the service of our guild."; close; case 2: mes "[ Steward ]"; mes "As you command, Master."; mes "However, I suggest hiring"; mes "a Kafra Employee as soon"; mes "as possible since our guild"; mes "would greatly benefit from"; mes "the convenient Kafra services."; close; } } case 5: mes "[ Steward ]"; mes "Do you wish to enter the"; mes "Guild Treasure Room?"; mes "Only you, the Guild Master,"; mes "are permitted to enter."; next; mes "[ Steward ]"; mes "Please remember to open"; mes "the Treasure Boxes at the"; mes "proper time. Otherwise, the"; mes "treasure may disappear if"; mes "something unexpected happens."; next; switch(select("Go to Treasure Room:Cancel")) { case 1: mes "[ Steward ]"; mes "Allow me to guide you"; mes "on the secret path to"; mes "the Treasure Room."; mes "Press the secret switch"; mes "when you wish to return here."; close2; warp "schg_cas01",381,381; end; case 2: mes "[ Steward ]"; mes "Items in the Treasure Room"; mes "are produced once each day."; mes "Therefore, you must obtain"; mes "the treasure items everyday."; mes "For the sake of the guild,"; mes "prioritize treasure harvesting!"; close; } } Onstop: stopnpctimer; end; OnStartArena: set .@GID,getcharid(2); // Lower castle Economy set .@Economy,GetCastleData("schg_cas01",2) - 5; if (.@Economy < 0) set .@Economy, 0; SetCastleData "schg_cas01", 2, .@Economy; // Lower Castle Defence set .@Defence,GetCastleData("schg_cas01",3) - 5; if (.@Defence < 0) set .@Defence, 0; SetCastleData "schg_cas01", 3, .@Defence; // Set new owner SetCastleData "schg_cas01",1, .@GID; // Clear castle's data. for( set .@i, 4; .@i <= 9; set .@i, .@i+1 ) SetCastleData "schg_cas01", .@i, 0; // Disable Kafra disablenpc "Kafra Employee#sch01"; set .msg,2; if (.msg == 1) { announce "Fortress [" + GetCastleName("schg_cas01") + "]'s 'Nithafjoll' was captured by [" + getguildname(.@gid) + "] Guild.",bc_all; donpcevent "Manager#sch01_02::Onstart"; } 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()) { donpcevent "Manager#sch01_02::Onreset"; initnpctimer; } else { donpcevent "Manager#sch01_02::Onreset"; stopnpctimer; } } else if (.msg == 0) { announce "Fortress [" + GetCastleName("schg_cas01") + "]'s 'Nithafjoll' was captured by [" + getguildname(.@gid) + "] Guild.",bc_all; donpcevent "Manager#sch01_02::Onreset"; stopnpctimer; end; } MapRespawnGuildID "schg_cas01",GetCastleData("schg_cas01",1),2; GetCastleData "schg_cas01",0,"::OnRecvCastlesc01"; end; OnTimer10000: donpcevent "Manager#sch01_02::Onchange"; mapannounce "schg_cas01","Rebuild this stonghold's Guardian Stones and Fortress Gates to secure your guild's new aquisition!",bc_map,"0x00FF00"; end; } // Guild Kafra schg_cas01,300,287,5 script Kafra Employee#sch01 117,{ cutin "kafra_01",2; set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID && getgdskilllv(.@GID,10001)) { mes "[Kafra Employee]"; mes "Welcome, proud member"; mes "of the ^FF0000" + GetGuildName(.@GID) + "^000000 Guild!"; mes "The Kafra Corporation is ready"; mes "to assist you wherever you go!"; next; switch(select("Use Storage:Use Warp Service:Rent Pushcart:Cancel")) { case 1: if (basicskillcheck() && getskilllv("NV_BASIC") < 6) { mes "[Kafra Employee]"; mes "I'm so sorry, but you must"; mes "have at least Novice Skill"; mes "Lv.6 to use the Storage."; } else { openstorage; } break; case 2: mes "[Kafra Employee]"; mes "Please tell me your"; mes "Warp destination."; next; switch(select("Juno -> 200 z:Cancel")) { case 1: if (Zeny < 200) { mes "[Kafra Employee]"; mes "I'm sorry, but you don't"; mes "have enough zeny to pay"; mes "the warp fee. Would you"; mes "please check your funds again?"; close2; cutin "kafra_01",255; end; } set zeny,zeny-200; warp "yuno",158,125; end; case 2: cutin "kafra_01",255; } break; case 3: if (BaseClass != Job_Merchant) { mes "[Kafra Employee]"; mes "I'm sorry, but the Pushcart"; mes "rental service can only be"; mes "used by Merchant, Blacksmith,"; mes "and Alchemist class characters."; } else if (checkcart() == 1) { mes "[Kafra Employee]"; mes "Hm? You've already"; mes "rented a Pushcart."; } else { mes "[Kafra Employee]"; mes "The Pushcart rental fee"; mes "is 800 zeny. Would you"; mes "like to rent a Pushcart?"; next; switch(select("Rent Pushcart:Cancel")) { case 1: if (Zeny < 800) { mes "[Kafra Employee]"; mes "I'm sorry, but you don't"; mes "have enough zeny to rent"; mes "one of our Pushcarts."; close2; cutin "kafra_01",255; end; } set zeny,zeny-800; setcart; break; case 2: break; } } break; case 4: mes "[Kafra Employee]"; mes "Thank you for using the"; mes "Kafra Service. Wherever"; mes "you go, Kafra will be"; mes "there to support you!"; close2; cutin "kafra_01",255; end; } close2; cutin "kafra_01",255; end; } else { mes "[Kafra Employee]"; mes "I'm sorry, but I've been"; mes "exclusively contracted"; mes "to the members of the"; mes "^FF0000" + GetGuildName(.@GID) + "^000000 Guild."; mes "You'll have to ask another"; mes "Kafra Employee to help you..."; close2; cutin "kafra_01",255; end; } OnRecvCastlesc01: if (GetCastleData("schg_cas01",1) == 0) { monster "schg_cas01",0,0,"Evil Druid",1117,10; monster "schg_cas01",0,0,"Khalitzburg",1132,4; monster "schg_cas01",0,0,"Abysmal Knight",1219,3; monster "schg_cas01",0,0,"Executioner",1205,1; monster "schg_cas01",0,0,"Penomena",1216,10; monster "schg_cas01",0,0,"Alarm",1193,18; monster "schg_cas01",0,0,"Clock",1269,9; monster "schg_cas01",0,0,"Raydric Archer",1276,12; monster "schg_cas01",0,0,"Wanderer",1208,3; monster "schg_cas01",0,0,"Alice",1275,1; monster "schg_cas01",0,0,"Bloody Knight",1268,2; monster "schg_cas01",0,0,"Dark Lord",1272,2; monster "schg_cas01",0,0,"Tower Keeper",1270,4; } if (GetCastleData("schg_cas01",9) < 1) { disablenpc "Kafra Employee#sch01"; } end; } schg_cas01,391,391,0 script #sch01_switch 111,{ mes " "; mes "^3355FFWill you pull"; mes "this small lever?^000000"; next; switch(select("Pull Lever:Cancel")) { case 1: warp "schg_cas01",275,244; end; case 2: close; } } sch_gld,290,90,0 script Himinn#flag_sc01_1::Sc01_Flag 722,{ set .@GID, GetCastleData("schg_cas01",1); if (.@GID == 0) { mes "[ Schwaltzvalt Royal Edict ]"; mes "The Holy Kingdom of"; mes "Schwaltzvalt declares that"; mes "one has yet to claim lordship"; mes "over this stronghold. The one"; mes "that breaks the Emperium will"; mes "be recognized as its new owner."; close; } else { if (getcharid(2) == .@GID) { mes "[ Ringing Voice ]"; mes "Courageous one,"; mes "do you wish to return"; mes "to your stronghold?"; next; switch(select("Return to the Stronghold:Cancel")) { case 1: set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { warp "schg_cas01",120,290; end; } close; case 2: close; } } mes "[ Schwaltzvalt Royal Edict ]"; mes "The Holy Kingdom of"; mes "Schwaltzvalt decrees that"; mes "this stronghold is owned"; mes "by the ^FF0000" + GetGuildName(.@GID) + "^000000 Guild."; next; mes "[ Schwaltzvalt Royal Edict ]"; mes "^FF0000" + GetGuildMaster(.@GID) + "^000000 is"; mes "Guild Master of ^FF0000" + GetGuildName(.@GID) + "^000000."; mes "Any that object must claim this"; mes "stronghold through strength of"; mes "steel and magic during the"; mes "appointed Guild Siege times."; close; } OnRecvCastlesc01: FlagEmblem GetCastleData("schg_cas01",1); end; } sch_gld,297,90,0 duplicate(Sc01_Flag) Himinn#flag_sc01_2 722