//===== eAthena Script ======================================= //= War of Emperium Second Edition //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== //= 2.2 //===== Compatible With: ===================================== //= eAthena SVN //===== Description: ========================================= //= WoE SE Schwaltzvalt Castle 2 //===== Additional Comments: ================================= //= 1.0 First Version [L0ne_W0lf] //= 1.1 Fixed setcell range of first barricade. [L0ne_W0lf] //= 1.2 Fixed first Barricade being desotryable. [L0ne_W0lf] //= 1.3 Swaped an end for a close in eco investing. [L0ne_W0lf] //= 1.4 Fixed 3rd Control Device wasting supplies. [L0ne_W0lf] //= 1.5 Fixed double message in defense investing. [L0ne_W0lf] //= Corrected a minor typo in the guild steward. //= 1.6 Fixed a guardian spawning NPCs. [L0ne_W0lf] //= 1.7 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.8 Fixed error with control devices. [L0ne_W0lf] //= 1.9 Replaced effect numerics with constants. [L0ne_W0lf] //= 2.0 Applied updated eco/def systems. [L0ne_W0lf] //= 2.0a Corrected investment data being reset before applied. //= 2.1 Fixed eco/def not actually incrementing. [L0ne_W0lf] //= Can no longer gain eco/def higher than 100. //= 2.2 Fixed a possible exploit in guild castle investment. [Brian] //============================================================ schg_cas02,1,1,0 script Manager#sch02_02 111,{ end; OnInterIfInitOnce: GetCastleData "schg_cas02",0,"::OnRecvCastleSc02"; end; OnRecvCastlesc02: RequestGuildInfo GetCastleData("schg_cas02",1); if (GetCastleData("schg_cas02",1) == 0) { donpcevent "Manager#sch02_02::Onstart"; } end; OnAgitStart2: if (agitcheck2()) { MapRespawnGuildID "schg_cas02",GetCastleData("schg_cas02",1),2; GvgOn "schg_cas02"; donpcevent "Manager#sch02_02::Onstart"; } else { donpcevent "#sch02_RL00::OnDisable"; donpcevent "#sch02_RL01::OnDisable"; donpcevent "#sch02_RL02::OnDisable"; donpcevent "#sch02_RL03::OnDisable"; } end; OnAgitEnd2: GvgOff "schg_cas02"; if (GetCastleData("schg_cas02",1)) { KillMonster "schg_cas02","Steward#sch02::OnStartArena"; donpcevent "Manager#sch02_02::Onreset"; donpcevent "Steward#sch02::Onstop"; } 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_cas02",1)) { setarray $agit_sc02[0],0,0,0,0,0,0; donpcevent "#sch02_df01::OnEnable"; donpcevent "#sch02_df02::OnEnable"; donpcevent "#sch02_RL00::OnEnable"; donpcevent "#sch02_RL01::OnEnable"; donpcevent "#sch02_RL02::OnEnable"; donpcevent "#sch02_RL03::OnEnable"; } monster "schg_cas02",162,193,"Emperium",1288,1,"Steward#sch02::OnStartArena"; end; Onreset: donpcevent "#sch02_df01::OnDisable"; donpcevent "#sch02_df02::OnDisable"; donpcevent "#sch02_gard01::Onreset"; donpcevent "#sch02_gard02::Onreset"; donpcevent "#sch02_RL00::OnDisable"; donpcevent "#sch02_RL01::OnDisable"; donpcevent "#sch02_RL02::OnDisable"; donpcevent "#sch02_RL03::OnDisable"; donpcevent "1st Guardian Stone#sch02::OnDisable"; donpcevent "2nd Guardian Stone#sch02::OnDisable"; donpcevent "Control Device01#sch02::OnDisable"; donpcevent "Control Device02#sch02::OnDisable"; donpcevent "Control Device03#sch02::OnDisable"; if (agitcheck2()) { setarray $agit_sc02[0],0,0,1,1,1,0; } end; Onchange: setarray $agit_sc02[0],2,2,1,1,2,0; monster "schg_cas02",162,193,"Emperium",1288,1,"Steward#sch02::OnStartArena"; donpcevent "Control Device03#sch02::OnEnable"; donpcevent "1st Guardian Stone#sch02::OnEnable"; donpcevent "2nd Guardian Stone#sch02::OnEnable"; end; OnClock0001: if (!GetCastleData("schg_cas02",1)) end; killmonster "schg_cas02","Manager#sch02_02::OnTreasureDied"; if (GetCastleData("schg_cas02",4)) { set .@Economy,GetCastleData("schg_cas02",2); SetCastleData "schg_cas02",2,.@Economy + GetCastleData("schg_cas02",4) + (rand(2) && getgdskilllv(.@GID,10014)); if (GetCastleData("schg_cas02",2) > 100) SetCastleData "schg_cas02",2,100; setcastledata "schg_cas02",4,0; } if (GetCastleData("schg_cas02",5)) { set .@Defence,GetCastleData("schg_cas02",3); SetCastleData "schg_cas02",3,.@Defence + GetCastleData("schg_cas02",5); if (GetCastleData("schg_cas02",3) > 100) SetCastleData "schg_cas02",3,100; setcastledata "schg_cas02",5,0; } set .@Treasure,GetCastleData("schg_cas02",2)/5+4; if (.@Treasure) { monster "schg_cas02",249,378,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; monster "schg_cas02",250,378,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; monster "schg_cas02",251,378,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; monster "schg_cas02",252,378,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 5) end; monster "schg_cas02",253,378,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 6) end; monster "schg_cas02",246,376,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 7) end; monster "schg_cas02",247,376,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 8) end; monster "schg_cas02",248,376,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 9) end; monster "schg_cas02",249,376,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 10) end; monster "schg_cas02",250,376,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 11) end; monster "schg_cas02",250,374,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 12) end; monster "schg_cas02",251,374,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 13) end; monster "schg_cas02",252,374,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 14) end; monster "schg_cas02",253,374,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 15) end; monster "schg_cas02",246,372,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 16) end; monster "schg_cas02",247,372,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 17) end; monster "schg_cas02",248,372,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 18) end; monster "schg_cas02",249,372,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 19) end; monster "schg_cas02",250,372,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 20) end; monster "schg_cas02",249,370,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 21) end; monster "schg_cas02",250,370,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 22) end; monster "schg_cas02",251,370,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 23) end; monster "schg_cas02",252,270,"Treasure Chest",1939,1,"Manager#sch02_02::OnTreasureDied"; if (.@Treasure < 24) end; monster "schg_cas02",253,370,"Treasure Chest",1324,1,"Manager#sch02_02::OnTreasureDied"; } end; OnTreasureDied: end; } schg_cas02,140,184,3 script Endeef#sch02_01 868,{ set .@GID, GetCastleData("schg_cas02",1); if (.@GID == 0) { mes "[Endeef]"; 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 "[Endeef]"; 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 (agitcheck2() == 0) { mes "[Endeef]"; mes "I am Endeef, guardian of"; mes "this stronghold. For now,"; mes "all is quiet in this place."; next; switch(select("Converse:Cancel")) { case 1: mes "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; 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 "[Endeef]"; mes "You have no questions"; mes "to ask of me? Well, I'm"; mes "here to serve your needs."; close; } case 2: mes "[Endeef]"; mes "I'm always here, so"; mes "feel free to request my"; mes "assistance whenever"; mes "the need arises."; close; } } else { mes "[Endeef]"; mes "Greetings, "+strcharinfo(0)+"."; mes "What are your orders?"; next; switch(select("Increase Stronghold Defense:Situational Briefing:Cancel")) { case 1: if ($agit_sc02[5] == 0) { if (getgdskilllv(.@GID,10002) == 0) { mes "[Endeef]"; 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 "[Endeef]"; 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_sc02[5],1; if ($agit_sc02[0] == 0) { donpcevent "#sch02_gard01::OnEnable"; } if ($agit_sc02[1] == 0) { donpcevent "#sch02_gard02::OnEnable"; } close; } } else { mes "[Endeef]"; mes "You've already commanded"; mes "me to summon a Guardian"; mes "to defend the stronghold."; close; } case 2: mes "[Endeef]"; mes "Our defense status is..."; if ($agit_sc02[0] == 1) { mes "1st Guardian Stone: ^FF0000Destroyed^000000"; } else if ($agit_sc02[0] == 2) { mes "1st Guardian Stone: ^008000Repairing^000000"; } else { mes "1st Guardian Stone: ^4D4DFFOperational^000000"; } if ($agit_sc02[1] == 1) { mes "2nd Guardian Stone: ^FF0000Destroyed^000000"; } else if ($agit_sc02[1] == 2) { mes "2nd Guardian Stone: ^008000Repairing^000000"; } else { mes "2nd Guardian Stone: ^4D4DFFOperational^000000"; } if ($agit_sc02[2] == 1) { mes "1st Fortress Gate: ^FF0000Destroyed^000000"; } else if ($agit_sc02[2] == 2) { mes "1st Fortress Gate: ^008000Repairing^000000"; } else { mes "1st Fortress Gate: ^4D4DFFOperational^000000"; } if ($agit_sc02[3] == 1) { mes "2nd Fortress Gate: ^FF0000Destroyed^000000"; } else if ($agit_sc02[3] == 2) { mes "2nd Fortress Gate: ^008000Repairing^000000"; } else { mes "2nd Fortress Gate: ^4D4DFFOperational^000000"; } if ($agit_sc02[4] == 1) { mes "3rd Fortress Gate: ^FF0000Destroyed^000000"; } else if ($agit_sc02[4] == 2) { mes "3rd Fortress Gate: ^008000Repairing^000000"; } else { mes "3rd Fortress Gate: ^4D4DFFOperational^000000"; } close; case 3: mes "[Endeef]"; mes "I'll be standing by,"; mes "awaiting your orders."; close; } } } } else { mes "[Endeef]"; mes "Who are you? Scoundrel!"; mes "Leave this stronghold now!"; close; } OnInit: setarray $agit_sc02[0],0,0,0,0,0,0; end; } schg_cas02,1,1,0 script #sch02_gard01 -1,{ OnEnable: set .@defence,GetCastleData("schg_cas02",3); guardian "schg_cas02",326,83,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //0; if ((.@defence > 10) && (.@defence < 31)) { set .MyMobCount,2; guardian "schg_cas02",337,95,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //1; } else if ((.@defence > 30) && (.@defence < 51)) { set .MyMobCount,3; guardian "schg_cas02",337,95,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //1; guardian "schg_cas02",334,119,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //2; } else if ((.@defence > 50) && (.@defence < 71)) { set .MyMobCount,4; guardian "schg_cas02",337,95,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //1; guardian "schg_cas02",334,119,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //2; guardian "schg_cas02",296,82,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //3; } else if (.@defence > 70) { set .MyMobCount,5; guardian "schg_cas02",337,95,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //1; guardian "schg_cas02",334,119,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //2; guardian "schg_cas02",296,82,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //3; guardian "schg_cas02",285,40,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //4; } else { set .MyMobCount,2; guardian "schg_cas02",337,95,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //1; } initnpctimer; end; OnTimer300000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",236,41,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //5; mapannounce "schg_cas02","The 1st Guardian has been summoned from the Gate House.",bc_map,"0xff4500"; end; OnTimer900000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",285,40,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //6; mapannounce "schg_cas02","The 2nd Guardian has been summoned from the Gate House.",bc_map,"0xff4500"; end; OnTimer1800000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",296,82,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //7; mapannounce "schg_cas02","The 3rd Guardian has been summoned from the Gate House.",bc_map,"0xff4500"; end; OnTimer2700000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",334,119,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //8; mapannounce "schg_cas02","The 4th Guardian has been summoned from the Gate House.",bc_map,"0xff4500"; end; OnTimer3600000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",337,95,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //9; mapannounce "schg_cas02","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_cas02",334,119,"Guardian Soldier",1899,"#sch02_gard01::OnGuardianDied"; //10; } end; Onreset: stopnpctimer; killmonster "schg_cas02","#sch02_gard01::OnGuardianDied"; end; } schg_cas02,1,2,0 script #sch02_gard02 -1,{ OnEnable: set .@defence,GetCastleData("schg_cas02",3); guardian "schg_cas02",359,85,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //11; if ((.@defence > 10) && (.@defence < 31)) { set .MyMobCount,2; guardian "schg_cas02",300,119,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //12; } else if ((.@defence > 30) && (.@defence < 51)) { set .MyMobCount,3; guardian "schg_cas02",300,119,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //12; guardian "schg_cas02",337,154,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //13; } else if ((.@defence > 50) && (.@defence < 71)) { set .MyMobCount,4; guardian "schg_cas02",300,119,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //12; guardian "schg_cas02",337,154,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //13; guardian "schg_cas02",317,183,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //14; } else if (.@defence > 70) { set .MyMobCount,5; guardian "schg_cas02",300,119,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //12; guardian "schg_cas02",337,154,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //13; guardian "schg_cas02",317,183,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //14; guardian "schg_cas02",307,222,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //15; } else { set .MyMobCount,2; guardian "schg_cas02",307,222,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //12; } initnpctimer; end; OnTimer600000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",300,119,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //16; end; OnTimer1200000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",337,154,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //17; end; OnTimer2100000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",317,183,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //18; end; OnTimer3000000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",307,222,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //19; end; OnTimer3900000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",359,85,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //20; stopnpctimer; end; OnGuardianDied: set .MyMobCount,.MyMobCount-1; if (.MyMobCount < 2) { set .MyMobCount,.MyMobCount+1; guardian "schg_cas02",236,41,"Guardian Soldier",1899,"#sch02_gard02::OnGuardianDied"; //21; } end; Onreset: stopnpctimer; killmonster "schg_cas02","#sch02_gard02::OnGuardianDied"; end; } schg_cas02,1,3,0 script #sch02_df01 -1,{ OnEnable: guardian "schg_cas02",231,58,"1st Guardian Stone",1907,"#sch02_df01::OnGuardianStoneDied"; //22; end; OnDisable: killmonster "schg_cas02","#sch02_df01::OnGuardianStoneDied"; setarray $agit_sc02[0],1; //Global Variable stopnpctimer; end; OnGuardianStoneDied: // 1st Guardian Stone is Destroyed setarray $agit_sc02[0],1; if (($agit_sc02[0] == 1) || ($agit_sc02[0] == 2)) { set .@destroyed,.@destroyed + 1; } if (($agit_sc02[1] == 1) || ($agit_sc02[1] == 2)) { set .@destroyed,.@destroyed + 1; } if (.@destroyed == 2) { mapannounce "schg_cas02","All of the Guardian Stones have been destroyed!",bc_map,"0x00ff00"; donpcevent "#sch02_RL00::OnDisable"; donpcevent "#sch02_gard01::Onreset"; } else { mapannounce "schg_cas02","The 1st Guardian Stone has been destroyed!",bc_map,"0x00ff00"; donpcevent "#sch02_gard01::Onreset"; } initnpctimer; end; OnTimer300000: donpcevent "1st Guardian Stone#sch02::OnEnable"; setarray $agit_sc02[0],2; //Global Variable stopnpctimer; end; } schg_cas02,231,57,0 script 1st Guardian Stone#sch02 844,{ set .@GID, GetCastleData("schg_cas02",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 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 EF_STEAL; next; break; } break; case 2: specialeffect 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 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 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 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_sc02[0] == 0) { mes "^3355FFThe Guardian Stone"; mes "Repair System has"; mes "already completed.^000000"; close; } else { if (agitcheck2() == 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 "#sch02_df01::OnEnable"; specialeffect EF_ICECRASH; disablenpc "1st Guardian Stone#sch02"; setarray $agit_sc02[0],0; set .@df_all,$agit_sc02[0]+$agit_sc02[1]; if (.@df_all == 0) { mapannounce "schg_cas02","The Guardian Stones have been erected, bolstering this stronghold's defenses!",bc_map,"0x00ff00"; donpcevent "#sch02_RL00::OnEnable"; } else { mapannounce "schg_cas02","The 1st Guardian Stone has been repaired successfully.",bc_map,"0x00ff00"; } if ($agit_sc02[5] == 1) { donpcevent "#sch02_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#sch02"; end; OnEnable: enablenpc "1st Guardian Stone#sch02"; specialeffect EF_MAPPILLAR2; end; OnDisable: disablenpc "1st Guardian Stone#sch02"; end; } schg_cas02,1,4,0 script #sch02_df02 -1,{ OnEnable: guardian "schg_cas02",335,230,"2nd Guardian Stone",1908,"#sch02_df02::OnGuardianStoneDied"; //23; end; OnDisable: killmonster "schg_cas02","#sch02_df02::OnGuardianStoneDied"; setarray $agit_sc02[1],1; //Global Variable stopnpctimer; end; OnGuardianStoneDied: // 2nd Guardian Stone is Destroyed setarray $agit_sc02[1],1; if (($agit_sc02[0] == 1) || ($agit_sc02[0] == 2)) { set .@destroyed,.@destroyed + 1; } if (($agit_sc02[1] == 1) || ($agit_sc02[1] == 2)) { set .@destroyed,.@destroyed + 1; } if (.@destroyed == 2) { mapannounce "schg_cas02","All of the Guardian Stones have been destroyed!",bc_map,"0x00ff00"; donpcevent "#sch02_RL00::OnDisable"; donpcevent "#sch02_gard02::Onreset"; } else { mapannounce "schg_cas02","The 2nd Guardian Stone has been destroyed!",bc_map,"0x00ff00"; donpcevent "#sch02_gard02::Onreset"; } initnpctimer; end; OnTimer300000: donpcevent "2nd Guardian Stone#sch02::OnEnable"; setarray $agit_sc02[1],2; //Global Variable stopnpctimer; end; } schg_cas02,335,231,0 script 2nd Guardian Stone#sch02 844,{ set .@GID, GetCastleData("schg_cas02",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 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 EF_STEAL; next; break; } break; case 2: specialeffect 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 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 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 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_sc02[1] == 0) { mes "^3355FFThe Guardian Stone"; mes "Repair System has"; mes "successfully completed.^000000"; close; } else { if (agitcheck2() == 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 "#sch02_df02::OnEnable"; specialeffect EF_ICECRASH; disablenpc "2nd Guardian Stone#sch02"; setarray $agit_sc02[1],0; set .@df_all,$agit_sc02[0]+$agit_sc02[1]; if (.@df_all == 0) { mapannounce "schg_cas02","Both Guardian Stones have been erected, bolstering this stronghold's defenses!",bc_map,"0x00ff00"; donpcevent "#sch02_RL00::OnEnable"; } else { mapannounce "schg_cas02","The 2nd Guardian Stone has been repaired successfully.",bc_map,"0x00ff00"; } if ($agit_sc02[5] == 1) { donpcevent "#sch02_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#sch02"; end; OnEnable: enablenpc "2nd Guardian Stone#sch02"; specialeffect EF_MAPPILLAR2; end; OnDisable: disablenpc "2nd Guardian Stone#sch02"; end; } schg_cas02,2,1,0 script #sch02_RL00 -1,{ OnEnable: setwall "schg_cas02",290,98,8,0,0,"sch02_RL00"; guardian "schg_cas02",289,98," ",1905,"#sch02_RL00::OnBarrierDestroyed"; //24; guardian "schg_cas02",289,100," ",1905,"#sch02_RL00::OnBarrierDestroyed"; //25; guardian "schg_cas02",289,102," ",1905,"#sch02_RL00::OnBarrierDestroyed"; //26; guardian "schg_cas02",289,104," ",1905,"#sch02_RL00::OnBarrierDestroyed"; //27; end; OnDisable: delwall "sch02_RL00"; killmonster "schg_cas02","#sch02_RL00::OnBarrierDestroyed"; end; OnBarrierDestroyed: end; } schg_cas02,2,2,0 script #sch02_RL01 -1,{ OnEnable: set .MyMobCount,6; setwall "schg_cas02",279,98,8,0,1,"sch02_RL01"; guardian "schg_cas02",280,98," ",1905,"#sch02_RL01::OnBarrierDestroyed"; //28; guardian "schg_cas02",280,100," ",1905,"#sch02_RL01::OnBarrierDestroyed"; //29; guardian "schg_cas02",280,102," ",1905,"#sch02_RL01::OnBarrierDestroyed"; //30; guardian "schg_cas02",281,99," ",1905,"#sch02_RL01::OnBarrierDestroyed"; //31; guardian "schg_cas02",281,101," ",1905,"#sch02_RL01::OnBarrierDestroyed"; //32; guardian "schg_cas02",281,103," ",1905,"#sch02_RL01::OnBarrierDestroyed"; //33; end; OnBarrierDestroyed: set .MyMobCount,.MyMobCount-1; if (.MyMobCount == 0) { setarray $agit_sc02[2],1; mapannounce "schg_cas02","The 1st Fortress Gate is destroyed.",bc_map,"0x00ff00"; delwall "sch02_RL01"; } end; OnDisable: delwall "sch02_RL01"; killmonster "schg_cas02","#sch02_RL01::OnBarrierDestroyed"; end; } schg_cas02,2,3,0 script #sch02_RL02 -1,{ OnEnable: set .MyMobCount,6; setwall "schg_cas02",230,213,6,0,1,"sch02_RL02"; guardian "schg_cas02",231,214," ",1905,"#sch02_RL02::OnBarrierDestroyed"; //34; guardian "schg_cas02",231,216," ",1905,"#sch02_RL02::OnBarrierDestroyed"; //35; guardian "schg_cas02",231,218," ",1905,"#sch02_RL02::OnBarrierDestroyed"; //36; guardian "schg_cas02",232,213," ",1905,"#sch02_RL02::OnBarrierDestroyed"; //37; guardian "schg_cas02",232,215," ",1905,"#sch02_RL02::OnBarrierDestroyed"; //38; guardian "schg_cas02",232,217," ",1905,"#sch02_RL02::OnBarrierDestroyed"; //39; end; OnBarrierDestroyed: set .MyMobCount,.MyMobCount-1; if (.MyMobCount == 0) { setarray $agit_sc02[3],1; mapannounce "schg_cas02","The 2nd Fortress Gate is destroyed.",bc_map,"0x00ff00"; delwall "sch02_RL02"; } end; OnDisable: delwall "sch02_RL02"; killmonster "schg_cas02","#sch02_RL02::OnBarrierDestroyed"; end; } schg_cas02,2,4,0 script #sch02_RL03 -1,{ OnEnable: set .MyMobCount,4; setwall "schg_cas02",160,141,6,6,1,"sch02_RL03"; guardian "schg_cas02",160,140," ",1905,"#sch02_RL03::OnBarrierDestroyed"; //40; guardian "schg_cas02",162,140," ",1905,"#sch02_RL03::OnBarrierDestroyed"; //41; guardian "schg_cas02",164,140," ",1905,"#sch02_RL03::OnBarrierDestroyed"; //42; guardian "schg_cas02",166,140," ",1905,"#sch02_RL03::OnBarrierDestroyed"; //43; end; OnBarrierDestroyed: set .MyMobCount,.MyMobCount-1; if (.MyMobCount == 0) { setarray $agit_sc02[4],1; mapannounce "schg_cas02","The 3rd Fortress Gate is destroyed!",bc_map,"0x00ff00"; delwall "sch02_RL03"; } end; OnDisable: delwall "sch02_RL03"; killmonster "schg_cas02","#sch02_RL03::OnBarrierDestroyed"; end; } schg_cas02,288,97,0 script Control Device01#sch02 111,{ set .@GID, GetCastleData("schg_cas02",1); if (getcharid(2) == .@GID) { if (strcharinfo(0) == getguildmaster(.@GID)) { if ($agit_sc02[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 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 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 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 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 (agitcheck2() == 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 "#sch02_RL01::OnEnable"; disablenpc "Control Device01#sch02"; mapannounce "schg_cas02","The 1st Fortress Gate has been reconstructed!",bc_map,"0x00ff00"; setarray $agit_sc02[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#sch02"; end; OnEnable: enablenpc "Control Device01#sch02"; end; OnDisable: disablenpc "Control Device01#sch02"; end; } schg_cas02,230,209,0 script Control Device02#sch02 111,{ set .@GID, GetCastleData("schg_cas02",1); if (getcharid(2) == .@GID) { if (strcharinfo(0) == getguildmaster(.@GID)) { if ($agit_sc02[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 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 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 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 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 (agitcheck2() == 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 "#sch02_RL02::OnEnable"; disablenpc "Control Device02#sch02"; mapannounce "schg_cas02","The 2nd Fortress Gate has been reconstructed!",bc_map,"0x00ff00"; setarray $agit_sc02[3],0; //Global Variable setarray $agit_sc02[2],2; //Global Variable donpcevent "Control Device01#sch02::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#sch02"; end; OnEnable: enablenpc "Control Device02#sch02"; end; OnDisable: disablenpc "Control Device02#sch02"; end; } schg_cas02,159,143,0 script Control Device03#sch02 111,{ set .@GID, GetCastleData("schg_cas02",1); if (getcharid(2) == .@GID) { if (strcharinfo(0) == getguildmaster(.@GID)) { if ($agit_sc02[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 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 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 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 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 (agitcheck2() == 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 "#sch02_RL03::OnEnable"; disablenpc "Control Device03#sch02"; mapannounce "schg_cas02","The 3rd Fortress Gate has been reconstructed!!",bc_map,"0x00ff00"; setarray $agit_sc02[4],0; setarray $agit_sc02[3],2; donpcevent "Control Device02#sch02::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#sch02"; end; OnEnable: enablenpc "Control Device03#sch02"; end; OnDisable: disablenpc "Control Device03#sch02"; end; } // Link Flags schg_cas02,143,198,0 script LF-01#schg_cas02 111,{ set .@GID, GetCastleData("schg_cas02",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_cas02",235,44; end; case 2: warp "schg_cas02",302,233; end; case 3: close; } } end; } schg_cas02,143,202,0 script LF-02#schg_cas02 111,{ set .@GID, GetCastleData("schg_cas02",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_cas02",317,83; end; case 2: warp "schg_cas02",359,83; end; case 3: close; } } end; } schg_cas02,143,206,0 script LF-03#schg_cas02 111,{ set .@GID, GetCastleData("schg_cas02",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_cas02",283,79; end; case 2: warp "schg_cas02",280,122; end; case 3: close; } } end; } schg_cas02,145,208,0 script LF-04#schg_cas02 111,{ set .@GID, GetCastleData("schg_cas02",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_cas02",215,110; end; case 2: warp "schg_cas02",255,215; end; case 3: close; } } end; } schg_cas02,180,208,0 script LF-05#schg_cas02 111,{ set .@GID, GetCastleData("schg_cas02",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_cas02",338,153; end; case 2: warp "schg_cas02",213,226; end; case 3: close; } } end; } schg_cas02,182,206,0 script LF-06#schg_cas02 111,{ set .@GID, GetCastleData("schg_cas02",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 2-1:Defense area 3-1:Cancel")) { case 1: warp "schg_cas02",317,83; end; case 2: warp "schg_cas02",283,79; end; case 3: warp "schg_cas02",215,110; end; case 4: close; } } end; } schg_cas02,182,202,0 script LF-07#schg_cas02 111,{ set .@GID, GetCastleData("schg_cas02",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-2:Area 3-2:Cancel")) { case 1: warp "schg_cas02",359,83; end; case 2: warp "schg_cas02",280,122; end; case 3: warp "schg_cas02",255,215; end; case 4: close; } } end; } schg_cas02,182,198,0 script LF-08#schg_cas02 111,{ set .@GID, GetCastleData("schg_cas02",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_cas02",101,306; end; case 2: close; } } end; } schg_cas02,235,222,0 script Andlangr#LF_sc02_1::LF_sc02_1 111,{ set .@GID, GetCastleData("schg_cas02",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_cas02",136,188; end; case 2: close; } } end; } schg_cas02,157,136,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_2 111 schg_cas02,168,136,4 duplicate(LF_sc02_1) Andlangr#LF_sc02_3 111 schg_cas02,320,232,4 duplicate(LF_sc02_1) Andlangr#LF_sc02_4 111 schg_cas02,295,109,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_5 111 schg_cas02,295,92,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_6 111 schg_cas02,285,90,4 duplicate(LF_sc02_1) Andlangr#LF_sc02_7 111 schg_cas02,285,190,4 duplicate(LF_sc02_1) Andlangr#LF_sc02_8 111 schg_cas02,238,66,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_9 111 schg_cas02,230,45,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_10 111 schg_cas02,233,120,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_11 111 schg_cas02,247,120,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_12 111 schg_cas02,261,162,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_13 111 schg_cas02,244,162,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_14 111 schg_cas02,235,207,0 duplicate(LF_sc02_1) Andlangr#LF_sc02_15 111 // Guild Manager schg_cas02,105,378,3 script Steward#sch02 55,{ set .@GID, GetCastleData("schg_cas02",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_cas02",2) + "."; if (GetCastleData("schg_cas02",4) > 0) { mes "Last time, you invested in"; mes "Commercial Growth " + GetCastleData("schg_cas02",4) + "."; } next; mes "[ Steward ]"; mes "Our stronghold's"; mes "safeguard level is " + GetCastleData("schg_cas02",3) + "."; if (GetCastleData("schg_cas02",5) > 0) { mes "Last time, you invested"; mes "in defense " + GetCastleData("schg_cas02",5) + " times."; } mes " "; mes "That is all, master."; close; case 2: set .@Economy,GetCastleData("schg_cas02",2); if (.@Economy < 6) { set .@eco_invest,5000; } else if ((.@Economy >= 6) && (.@Economy <= 10)) { set .@eco_invest,10000; } else if ((.@Economy >= 11) && (.@Economy <= 15)) { set .@eco_invest,20000; } else if ((.@Economy >= 16) && (.@Economy <= 20)) { set .@eco_invest,35000; } else if ((.@Economy >= 21) && (.@Economy <= 25)) { set .@eco_invest,55000; } else if ((.@Economy >= 26) && (.@Economy <= 30)) { set .@eco_invest,80000; } else if ((.@Economy >= 31) && (.@Economy <= 35)) { set .@eco_invest,110000; } else if ((.@Economy >= 36) && (.@Economy <= 40)) { set .@eco_invest,145000; } else if ((.@Economy >= 41) && (.@Economy <= 45)) { set .@eco_invest,185000; } else if ((.@Economy >= 46) && (.@Economy <= 50)) { set .@eco_invest,230000; } else if ((.@Economy >= 51) && (.@Economy <= 55)) { set .@eco_invest,280000; } else if ((.@Economy >= 56) && (.@Economy <= 60)) { set .@eco_invest,335000; } else if ((.@Economy >= 61) && (.@Economy <= 65)) { set .@eco_invest,395000; } else if ((.@Economy >= 66) && (.@Economy <= 70)) { set .@eco_invest,460000; } else if ((.@Economy >= 71) && (.@Economy <= 75)) { set .@eco_invest,530000; } else if ((.@Economy >= 76) && (.@Economy <= 80)) { set .@eco_invest,605000; } else if ((.@Economy >= 81) && (.@Economy <= 85)) { set .@eco_invest,685000; } else if ((.@Economy >= 86) && (.@Economy <= 90)) { set .@eco_invest,770000; } else if ((.@Economy >= 91) && (.@Economy <= 95)) { set .@eco_invest,860000; } else if ((.@Economy >= 96) && (.@Economy <= 100)) { set .@eco_invest,955000; } //Quadruple the cost of investing if you've already invested once. if (GetCastleData("schg_cas02",4)) { set .@eco_invest,.@eco_invest*4; } 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_cas02",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_cas02",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 (GetCastleData("schg_cas02",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 (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_cas02",4,GetCastleData("schg_cas02",4)+1; 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_cas02",3); if (.@Defence < 6) { set .@def_invest,10000; } else if ((.@Defence >= 6) && (.@Defence <= 10)) { set .@def_invest,20000; } else if ((.@Defence >= 11) && (.@Defence <= 15)) { set .@def_invest,40000; } else if ((.@Defence >= 16) && (.@Defence <= 20)) { set .@def_invest,70000; } else if ((.@Defence >= 21) && (.@Defence <= 25)) { set .@def_invest,110000; } else if ((.@Defence >= 26) && (.@Defence <= 30)) { set .@def_invest,160000; } else if ((.@Defence >= 31) && (.@Defence <= 35)) { set .@def_invest,220000; } else if ((.@Defence >= 36) && (.@Defence <= 40)) { set .@def_invest,290000; } else if ((.@Defence >= 41) && (.@Defence <= 45)) { set .@def_invest,370000; } else if ((.@Defence >= 46) && (.@Defence <= 50)) { set .@def_invest,460000; } else if ((.@Defence >= 51) && (.@Defence <= 55)) { set .@def_invest,560000; } else if ((.@Defence >= 56) && (.@Defence <= 60)) { set .@def_invest,670000; } else if ((.@Defence >= 61) && (.@Defence <= 65)) { set .@def_invest,790000; } else if ((.@Defence >= 66) && (.@Defence <= 70)) { set .@def_invest,920000; } else if ((.@Defence >= 71) && (.@Defence <= 75)) { set .@def_invest,1060000; } else if ((.@Defence >= 76) && (.@Defence <= 80)) { set .@def_invest,1210000; } else if ((.@Defence >= 81) && (.@Defence <= 85)) { set .@def_invest,1370000; } else if ((.@Defence >= 86) && (.@Defence <= 90)) { set .@def_invest,1540000; } else if ((.@Defence >= 91) && (.@Defence <= 95)) { set .@def_invest,1720000; } else if ((.@Defence >= 96) && (.@Defence <= 100)) { set .@def_invest,1910000; } //Quadruple the cost of investing if you've already invested once. if (GetCastleData("schg_cas02",5)) { set .@def_invest,.@def_invest*4; } 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_cas02",3) == 100) { mes "The Defense Level of this"; mes "stronghold is 100%, and"; mes "cannot be increased further."; close; } if (GetCastleData("schg_cas02",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_cas02",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 (GetCastleData("schg_cas02",5) >= 2) { mes "[ Steward ]"; 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 (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_cas02",5,GetCastleData("schg_cas02",5)+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_cas02",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#sch02"; SetCastleData "schg_cas02",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#sch02"; SetCastleData "schg_cas02",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_cas02",249,373; 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_cas02",2) - 5; if (.@Economy < 0) set .@Economy, 0; SetCastleData "schg_cas02", 2, .@Economy; // Lower Castle Defence set .@Defence,GetCastleData("schg_cas02",3) - 5; if (.@Defence < 0) set .@Defence, 0; SetCastleData "schg_cas02", 3, .@Defence; // Set new owner SetCastleData "schg_cas02",1, .@GID; // Clear castle's data. for( set .@i, 4; .@i <= 9; set .@i, .@i+1 ) SetCastleData "schg_cas02", .@i, 0; // Disable Kafra disablenpc "Kafra Employee#sch02"; set .msg,2; if (.msg == 1) { announce "Fortress [" + GetCastleName("schg_cas02") + "]'s 'Nithafjoll' was captured by [" + getguildname(.@gid) + "] Guild.",bc_all|bc_woe; donpcevent "Manager#sch02_02::Onstart"; } else if (.msg == 2) { announce "The [" + getguildname(.@gid) + "] conquered the [Nithafjoll 2] stronghold of "+GetCastleName("schg_cas02"),bc_all|bc_woe; mapannounce "schg_cas02","The emperium has been shattered!",bc_map,"0x00FF00",FW_NORMAL,20,0,40; if (agitcheck2()) { donpcevent "Manager#sch02_02::Onreset"; initnpctimer; } else { donpcevent "Manager#sch02_02::Onreset"; stopnpctimer; } } else if (.msg == 0) { announce "Fortress [" + GetCastleName("schg_cas02") + "]'s 'Nithafjoll' was captured by [" + getguildname(.@gid) + "] Guild.",bc_all|bc_woe; donpcevent "Manager#sch02_02::Onreset"; stopnpctimer; end; } MapRespawnGuildID "schg_cas02",GetCastleData("schg_cas02",1),2; GetCastleData "schg_cas02",0,"::OnRecvCastlesc02"; end; OnTimer10000: donpcevent "Manager#sch02_02::Onchange"; mapannounce "schg_cas02","Rebuild this stronghold's Guardian Stones and Fortress Gates to secure your guild's new aquisition!",bc_map,"0x00FF00",FW_NORMAL,20,0,40; end; } // Guild Kafra schg_cas02,131,365,3 script Kafra Employee#sch02 117,{ cutin "kafra_01",2; set .@GID, GetCastleData("schg_cas02",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; } OnRecvCastlesc02: if (GetCastleData("schg_cas02",1) == 0) { monster "schg_cas02",0,0,"Evil Druid",1117,10; monster "schg_cas02",0,0,"Khalitzburg",1132,4; monster "schg_cas02",0,0,"Abysmal Knight",1219,3; monster "schg_cas02",0,0,"Executioner",1205,1; monster "schg_cas02",0,0,"Penomena",1216,10; monster "schg_cas02",0,0,"Alarm",1193,18; monster "schg_cas02",0,0,"Clock",1269,9; monster "schg_cas02",0,0,"Raydric Archer",1276,12; monster "schg_cas02",0,0,"Wanderer",1208,3; monster "schg_cas02",0,0,"Alice",1275,1; monster "schg_cas02",0,0,"Bloody Knight",1268,2; monster "schg_cas02",0,0,"Dark Lord",1272,2; monster "schg_cas02",0,0,"Tower Keeper",1270,4; } if (GetCastleData("schg_cas02",9) < 1) { disablenpc "Kafra Employee#sch02"; } end; } schg_cas02,257,369,0 script #sc02_switch 111,{ mes " "; mes "^3355FFWill you pull"; mes "this small lever?^000000"; next; switch(select("Pull Lever:Cancel")) { case 1: warp "schg_cas02",339,79; end; case 2: close; } } sch_gld,296,247,4 script Andlangr#flag_sc02_1::Sc02_Flag 722,{ set .@GID, GetCastleData("schg_cas02",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_cas02",1); if (getcharid(2) == .@GID) { warp "schg_cas02",136,188; 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; } OnRecvCastlesc02: FlagEmblem GetCastleData("schg_cas02",1); end; } sch_gld,280,247,4 duplicate(Sc02_Flag) Andlangr#flag_sc02_2 722