//Le Livre d'Ymir http://www.bookofymir.net/ //traduit par Myllena //===== eAthena Script ======================================= //= War of Emperium Second Edition //===== By: ================================================== //= L0ne_W0lf //===== Current Version: ===================================== //= 2.1 //===== 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] //= 1.7 Replaced effect numerics with constants. [L0ne_W0lf] //= 1.8 Corrected wrong treasure spawn position. [zapbomb] //= 1.9 Applied updated eco/def systems. [L0ne_W0lf] //= 2.0 Fixed eco/def not actually incrementing. [L0ne_W0lf] //= Can no longer gain eco/def higher than 100. //= 2.1 Fixed a possible exploit in guild castle investment. [Brian] //============================================================ 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; OnAgitStart2: if (agitcheck2()) { 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; OnAgitEnd2: GvgOff "schg_cas01"; if (GetCastleData("schg_cas01",1)) { KillMonster "schg_cas01","Steward#sch01::OnStartArena"; donpcevent "Manager#sch01_02::Onreset"; donpcevent "Steward#sch01::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_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 "Pierre Gardienne#1sch01::OnDisable"; donpcevent "Pierre Gardienne#2sch01::OnDisable"; donpcevent "Contrôle Porte 1#sch01::OnDisable"; donpcevent "Contrôle Porte 2#sch01::OnDisable"; donpcevent "Contrôle Porte 3#sch01::OnDisable"; if (agitcheck2()) { 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 "Contrôle Porte 3#sch01::OnEnable"; donpcevent "Pierre Gardienne#1sch01::OnEnable"; donpcevent "Pierre Gardienne#2sch01::OnEnable"; end; OnClock0001: if (!GetCastleData("schg_cas01",1)) end; killmonster "schg_cas01","Manager#sch01_02::OnTreasureDied"; if (GetCastleData("schg_cas01",4)) { set .@Economy,GetCastleData("schg_cas01",2); SetCastleData "schg_cas01",2,.@Economy + GetCastleData("schg_cas01",4) + (rand(2) && getgdskilllv(.@GID,10014)); if (GetCastleData("schg_cas01",2) > 100) SetCastleData "schg_cas01",2,100; setcastledata "schg_cas01",4,0; } if (GetCastleData("schg_cas01",5)) { set .@Defence,GetCastleData("schg_cas01",3); SetCastleData "schg_cas01",3,.@Defence + GetCastleData("schg_cas01",5); if (GetCastleData("schg_cas01",3) > 100) SetCastleData "schg_cas01",3,100; setcastledata "schg_cas01",5,0; } set .@Treasure,GetCastleData("schg_cas01",2)/5+4; if (.@Treasure) { monster "schg_cas01",388,388,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; monster "schg_cas01",388,389,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; monster "schg_cas01",388,390,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; monster "schg_cas01",387,390,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 5) end; monster "schg_cas01",386,390,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 6) end; monster "schg_cas01",385,390,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 7) end; monster "schg_cas01",384,389,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 8) end; monster "schg_cas01",384,388,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 9) end; monster "schg_cas01",384,387,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 10) end; monster "schg_cas01",384,386,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 11) end; monster "schg_cas01",384,385,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 12) end; monster "schg_cas01",384,384,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 13) end; monster "schg_cas01",385,384,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 14) end; monster "schg_cas01",386,384,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 15) end; monster "schg_cas01",387,384,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 16) end; monster "schg_cas01",388,384,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 17) end; monster "schg_cas01",389,384,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 18) end; monster "schg_cas01",390,384,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 19) end; monster "schg_cas01",390,385,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 20) end; monster "schg_cas01",390,386,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 21) end; monster "schg_cas01",389,386,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 22) end; monster "schg_cas01",388,386,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 23) end; monster "schg_cas01",387,386,"Coffre",1938,1,"Manager#sch01_02::OnTreasureDied"; if (.@Treasure < 24) end; monster "schg_cas01",386,386,"Coffre",1324,1,"Manager#sch01_02::OnTreasureDied"; } 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 "Bon travail. Maintenant il ne vous reste plus qu'à détruire cet Emperium pour entrer en possession de ce bastion."; close; } if (getcharid(2) == .@GID) { if (strcharinfo(0) != getguildmaster(.@GID)) { mes "[Ef]"; mes "En tant que gardien de ce bastion, je ne réponds qu'au Maître de la Guilde qui contrôle les lieux."; close; } else { if (agitcheck2() == 0) { mes "[Ef]"; mes "Mon nom est Ef, et je suis le gardien de ce bastion. Tout est calme en ces lieux... pour le moment."; next; switch(select("Converser:Annuler")) { case 1: mes "[Ef]"; mes "Avez-vous des questions à propos de ce bastion?"; next; switch(select("Pierres Gardiennes:Portes Barrières:Drapeaux de Téléportation:Stratégie de Combat:Annuler")) { case 1: mes "[Ef]"; mes "La force du Bastion réside en un Emperium et deux Pierres Gardiennes. Ces Pierres Gardiennes sont la première ligne de défense, et doivent être détruites par les assaillants si ceux-ci veulent espérer pénétrer le Bastion."; next; mes "[Ef]"; mes "Les Pierres se situent dans deux salles particulières du Bastion appelées ^4D4DFFSalles Barrières^000000, qui doivent être protégées à tout prix afin d'éviter que les ennemis n'atteignent l'Emperium."; mes "^4D4DFFDes Gardiens^000000 peuvent être invoqués à partir de ces Pierres Gardiennes pour renforcer leur protection."; next; mes "[Ef]"; mes "Un bastion possédant un haut niveau de défense aura plus de Gardiens à sa disposition, c'est pourquoi il est vital d'effectuer des Investissements Défensifs réguliers."; next; mes "[Ef]"; mes "Les Pierres Gardiennes détruites peuvent être régénérées après un certain laps de temps. Il suffit pour cela qu'un membre de la guilde m'en donne l'ordre. Je peux également vous renseigner à n'importe quel moment sur l'état des Pierres Gardiennes."; close; case 2: mes "[Ef]"; mes "Les ^4D4DFFPortes Barrières^000000 constituent la deuxième ligne de défense du Bastion. Elles sont protégées par des barricades, activées par les Pierres Gardiennes."; mes "Il existe trois Portes Barrières situées à différents endroits de la forteresse."; next; mes "[Ef]"; mes "Les barricades sont protégées par les Pierres Barrières, et sont régénérées lorsque les Pierres Gardiennes sont réparées. Cependant, il n'est pas aisé de réparer des Portes Barrières."; next; mes "[Ef]"; mes "Les Portes Barrières ne peuvent être réparées que lors d'un changement du ^4D4DFFChef de la Guilde contrôlant le Bastion^000000, ou si le ^4D4DFFChef de la Guilde contrôlant le Bastion demande la réparation^000000."; close; case 3: mes "[Ef]"; mes "Les Bastions possèdent de nombreux Drapeaux de Téléportation, qui permettent aux défenseurs d'accéder rapidement aux lieux stratégiques du Bastion, notamment près des barricades. Par exemple, le ^4D4DFFPremier Drapeau relie les Salles Barrières^000000."; next; mes "[Ef]"; mes "De nombreux drapeaux sont reliés à des drapeaux proches de l'Emperium."; mes "Le dernier drapeau permet l'accès au Lieu de Gestion réservé au Maître du Bastion et aux Membres de la Guilde. Ne l'oubliez pas!"; close; case 4: mes "[Ef]"; mes "Une stratégie de combat? Il vaut mieux développer des plans de batailles afin d'exploiter l'avantage du terrain par rapport à vos ennemis. Utilisez les Salles Barrières ainsi que les barricades des Portes Barrières, et n'oubliez pas de réparer les éléments vitaux du Bastion dès que vous en avez l'occasion!"; close; case 5: mes "[Ef]"; mes "Si vous n'avez pas d'autre question, je reste à votre disposition."; close; } case 2: mes "[Ef]"; mes "Je reste en position. N'hésitez pas à venir me trouver si vous avez besoin d'assistance."; close; } } else { mes "[Ef]"; mes "Salutations, "+strcharinfo(0)+"."; mes "Quels sont vos ordres?"; next; switch(select("Augmenter la Défense du Bastion:Résumé de l'Etat du Bastion:Annuler")) { case 1: if ($agit_sc01[5] == 0) { if (getgdskilllv(.@GID,10002) == 0) { mes "[Ef]"; mes "Je suis désolé, mais les Pierres Gardiennes ne sont pas assez puissantes pour pouvoir invoquer des Gardiens pour le moment."; mes "Nous devons accumuler plus de connaissances avant de pouvoir invoquer des Gardiens."; close; } else { mes "[Ef]"; mes "Je commence immédiatement l'incantation permettant d'invoquer un Gardien à travers une Pierre Gardienne. Cependant, gardez à l'esprit que cela ne fonctionnera pas si la Pierre Gardienne est détruite."; 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 "Vous m'avez déjà demandé d'invoquer un Gardien pour défendre le Bastion."; close; } case 2: mes "[Ef]"; mes "L'état de nos défenses est..."; if ($agit_sc01[0] == 1) { mes "Première Pierre Gardienne: ^FF0000Détruite^000000"; } else if ($agit_sc01[0] == 2) { mes "Première Pierre Gardienne: ^008000En Régénération^000000"; } else { mes "Première Pierre Gardienne: ^4D4DFFOpérationelle^000000"; } if ($agit_sc01[1] == 1) { mes "Seconde Pierre Gardienne: ^FF0000Détruite^000000"; } else if ($agit_sc01[1] == 2) { mes "Seconde Pierre Gardienne: ^008000En Régénération^000000"; } else { mes "Seconde Pierre Gardienne: ^4D4DFFOpérationelle^000000"; } if ($agit_sc01[2] == 1) { mes "Première Porte Barrière: ^FF0000Détruite^000000"; } else if ($agit_sc01[2] == 2) { mes "Première Porte Barrière: ^008000En Réparation^000000"; } else { mes "Première Porte Barrière: ^4D4DFFOpérationelle^000000"; } if ($agit_sc01[3] == 1) { mes "Seconde Porte Barrière: ^FF0000Détruite^000000"; } else if ($agit_sc01[3] == 2) { mes "Seconde Porte Barrière: ^008000En Réparation^000000"; } else { mes "Seconde Porte Barrière: ^4D4DFFOpérationelle^000000"; } if ($agit_sc01[4] == 1) { mes "Troisième Porte Barrière: ^FF0000Détruite^000000"; } else if ($agit_sc01[4] == 2) { mes "Troisième Porte Barrière: ^008000En Réparation^000000"; } else { mes "Troisième Porte Barrière: ^4D4DFFOpérationelle^000000"; } close; case 3: mes "[Ef]"; mes "Je reste ici pour attendre vos ordres."; close; } } } } else { mes "[Ef]"; mes "Qui êtes-vous? Espèce de vaurien!"; mes "Quittez le Bastion immédiatement!"; 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,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //0; if ((.@defence > 10) && (.@defence < 31)) { set .MyMobCount,2; guardian "schg_cas01",109,44,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //1; } else if ((.@defence > 30) && (.@defence < 51)) { set .MyMobCount,3; guardian "schg_cas01",109,44,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //1; guardian "schg_cas01",65,22,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //2; } else if ((.@defence > 50) && (.@defence < 71)) { set .MyMobCount,4; guardian "schg_cas01",109,44,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //1; guardian "schg_cas01",65,22,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //2; guardian "schg_cas01",110,40,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //3; } else if (.@defence > 70) { set .MyMobCount,5; guardian "schg_cas01",109,44,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //1; guardian "schg_cas01",65,22,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //2; guardian "schg_cas01",110,40,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //3; guardian "schg_cas01",88,20,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //4; } else { set .MyMobCount,2; guardian "schg_cas01",108,32,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //1; } initnpctimer; end; OnTimer300000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",64,40,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //5; mapannounce "schg_cas01","Le Premier Gardien a été invoqué.",bc_map,"0xff4500"; end; OnTimer900000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",47,43,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //6; mapannounce "schg_cas01","Le Second Gardien a été invoqué.",bc_map,"0xff4500"; end; OnTimer1800000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",109,48,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //7; mapannounce "schg_cas01","Le Troisième Gardien a été invoqué.",bc_map,"0xff4500"; end; OnTimer2700000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",111,18,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //8; mapannounce "schg_cas01","Le Quatrième Gardien a été invoqué.",bc_map,"0xff4500"; end; OnTimer3600000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",112,32,"Gardien",1899,"#sch01_gard01::OnGuardianDied"; //9; mapannounce "schg_cas01","Le Cinquième Gardien a été invoqué.",bc_map,"0xff4500"; stopnpctimer; end; OnGuardianDied: set .MyMobCount,.MyMobCount-1; if (.MyMobCount < 2) { set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",120,37,"Gardien",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,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //11; if ((.@defence > 10) && (.@defence < 31)) { set .MyMobCount,2; guardian "schg_cas01",187,15,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //12; } else if ((.@defence > 30) && (.@defence < 51)) { set .MyMobCount,3; guardian "schg_cas01",129,47,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //12; guardian "schg_cas01",151,18,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //13; } else if ((.@defence > 50) && (.@defence < 71)) { set .MyMobCount,4; guardian "schg_cas01",129,47,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //12; guardian "schg_cas01",151,18,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //13; guardian "schg_cas01",187,15,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //14; } else if (.@defence > 70) { set .MyMobCount,5; guardian "schg_cas01",129,47,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //12; guardian "schg_cas01",151,18,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //13; guardian "schg_cas01",187,15,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //14; guardian "schg_cas01",128,42,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //15; } else { set .MyMobCount,2; guardian "schg_cas01",128,42,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //12; } initnpctimer; end; OnTimer600000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",152,43,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //16; end; OnTimer1200000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",187,15,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //17; end; OnTimer2100000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",128,42,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //18; end; OnTimer3000000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",130,22,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //19; end; OnTimer3900000: set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",130,28,"Gardien",1899,"#sch01_gard02::OnGuardianDied"; //20; stopnpctimer; end; OnGuardianDied: set .MyMobCount,.MyMobCount-1; if (.MyMobCount < 2) { set .MyMobCount,.MyMobCount+1; guardian "schg_cas01",151,18,"Gardien",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,"Pierre Gardienne",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","Toutes les Pierres Gardiennes ont été détruites!",bc_map,"0x00ff00"; donpcevent "#sch01_RL00::OnDisable"; donpcevent "#sch01_gard01::Onreset"; } else { mapannounce "schg_cas01","Une Pierre Gardienne a été détruite!",bc_map,"0x00ff00"; donpcevent "#sch01_gard01::Onreset"; } initnpctimer; end; OnTimer300000: donpcevent "Pierre Gardienne#1sch01::OnEnable"; setarray $agit_sc01[0],2; //Global Variable stopnpctimer; end; } schg_cas01,27,36,0 script Pierre Gardienne#1sch01 844,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFVeuillez fournir les"; mes "matériaux suivants afin de"; mes "régénérer un Pierre Gardienne"; mes "détruite.^000000"; next; mes "1 Oridecon"; mes "1 Elunium"; mes "30 Pierres"; mes "5 Gemmes Bleues"; mes "5 Gemmes Jaunes"; mes "5 Gemmes Rouges"; next; mes "^3355FFSouhaitez-vous entamer le processus de régénération?^000000"; switch(select("Non:Oui")) { case 1: mes "^3355FFProcessus de Régénération annulé.^000000"; close; case 2: if ((countitem(984) > 0) && (countitem(985) > 0) && (countitem(7049) > 29) && (countitem(717) > 4) && (countitem(715) > 4) && (countitem(716) > 4)) { mes "^3355FFPosez les Pierres, l'Elunium, et l'Oridecon, dans cet ordre, au centre du socle. Vous devrez ensuite orienter les Gemmes afin de pouvoir reconstruire la Pierre Gardienne^000000."; next; switch(select("Elunium:Oridecon:Pierre")) { case 1: mes "^3355FFL'Elunium a été"; mes "placé au centre du socle.^000000"; next; break; case 2: mes "^3355FFL'Oridecon a été"; mes "placé au centre du socle.^000000"; next; break; case 3: mes "^3355FFLes Pierres ont été"; mes "placées au centre du socle.^000000"; set .@nice,.@nice+10; next; break; } switch(select("Elunium:Oridecon:Pierre")) { case 1: mes "^3355FFVous avez déposé L'Elunium près du centre du socle.^000000"; set .@nice,.@nice+10; next; break; case 2: mes "^3355FFVous avez déposé l'Oridecon près du centre du socle.^000000"; next; break; case 3: mes "^3355FFVous avez déposé les Pierres près du centre du socle.^000000"; next; break; } switch(select("Elunium:Oridecon:Pierre")) { case 1: mes "^3355FFLa ligne de matériaux s'achève avec l'Elunium.^000000"; next; break; case 2: mes "^3355FFLa ligne de matériaux s'achève avec l'Oridecon.^000000"; set .@nice,.@nice+10; next; break; case 3: mes "^3355FFLa ligne de matériaux s'achève avec les Pierres.^000000"; next; break; } mes "^3355FFVous devez maintenant orienter les Gemmes correctement. Aidez-vous en identifiant leurs propriétés magiques selon l'effet des incantations.^000000"; next; while(1) { if (.@roof0 > 7) { break; } else { switch(rand(1,3)) { case 1: specialeffect EF_BEGINSPELL2; mes "^3355FFLes Gemmes doivent être orientées en fonction de leur puissance et de leurs propriétés magiques.^000000"; next; switch(select("Gemme Rouge:Gemme Jaune:Gemme Bleue")) { case 1: mes "^3355FFVous avez déposé les Gemmes Rouges."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; case 2: mes "^3355FFVous avez déposé les Gemmes Jaunes."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; case 3: mes "^3355FFVous avez déposé les Gemmes Bleues.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect EF_STEAL; next; break; } break; case 2: specialeffect EF_VOLCANO; mes "^3355FFLes Gemmes doivent être orientées en fonction de leur puissance et de leurs propriétés magiques.^000000"; next; switch(select("Gemme Rouge:Gemme Jaune:Gemme Bleue")) { case 1: mes "^3355FFVous avez déposé les Gemmes Rouges.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect EF_STEAL; next; break; case 2: mes "^3355FFVous avez déposé les Gemmes Jaunes."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; case 3: mes "^3355FFVous avez déposé les Gemmes Bleues."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; } break; case 3: specialeffect EF_BEGINSPELL4; mes "^3355FFLes Gemmes doivent être orientées en fonction de leur puissance et de leurs propriétés magiques.^000000"; next; switch(select("Gemme Rouge:Gemme Jaune:Gemme Bleue")) { case 1: mes "^3355FFVous avez déposé les Gemmes Rouges."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; case 2: mes "^3355FFVous avez déposé les Gemmes Jaunes.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect EF_STEAL; next; break; case 3: mes "^3355FFVous avez déposé les Gemmes Bleues."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; } } } } if (.@nice > 90) { if ($agit_sc01[0] == 0) { mes "^3355FFLe processus de régénération de la Pierre Gardienne est terminé.^000000"; close; } else { if (agitcheck2() == 0) { mes "^3355FFIl est impossible de reconstruire la Pierre Gardienne car l'Emperium est absent.^000000"; close; } else { mes "^3355FFLes Gemmes ont été déposées, la Pierre Gardienne est maintenant régénérée.^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 EF_ICECRASH; disablenpc "Pierre Gardienne#1sch01"; setarray $agit_sc01[0],0; set .@df_all,$agit_sc01[0]+$agit_sc01[1]; if (.@df_all == 0) { mapannounce "schg_cas01","Deux Pierres Gardiennes viennent renforcer la défense du bastion!",bc_map,"0x00ff00"; donpcevent "#sch01_RL00::OnEnable"; } else { mapannounce "schg_cas01","Une Pierre Gardienne vient d'être réparée.",bc_map,"0x00ff00"; } if ($agit_sc01[5] == 1) { donpcevent "#sch01_gard01::OnEnable"; } end; } } } else { mes "^3355FFAprès tous vos efforts... Vous avez échoué à réparer la Pierre Gardienne, et perdu vos matériaux.^000000"; delitem 7049,10; //Stone delitem 717,2; //Blue_Gemstone delitem 715,2; //Yellow_Gemstone delitem 716,2; //Red_Gemstone close; } } else { mes "^3355FFVous n'avez pas tous les matériaux requis pour la réparation de la Pierre Gardienne.^000000"; close; } } } end; OnInit: disablenpc "Pierre Gardienne#1sch01"; end; OnEnable: enablenpc "Pierre Gardienne#1sch01"; specialeffect EF_MAPPILLAR2; end; OnDisable: disablenpc "Pierre Gardienne#1sch01"; end; } schg_cas01,1,4,0 script #sch01_df02 -1,{ OnEnable: guardian "schg_cas01",207,75,"Pierre Gardienne",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","Toutes les Pierres Gardiennes ont été détruites!",bc_map,"0x00ff00"; donpcevent "#sch01_RL00::OnDisable"; donpcevent "#sch01_gard02::Onreset"; } else { mapannounce "schg_cas01","Une Pierre Gardienne a été détruite!",bc_map,"0x00ff00"; donpcevent "#sch01_gard02::Onreset"; } initnpctimer; end; OnTimer300000: donpcevent "Pierre Gardienne#2sch01::OnEnable"; setarray $agit_sc01[1],2; //Global Variable stopnpctimer; end; } schg_cas01,208,75,0 script Pierre Gardienne#2sch01 844,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFVeuillez fournir les"; mes "matériaux suivants afin de"; mes "régénérer un Pierre Gardienne"; mes "détruite.^000000"; next; mes "1 Oridecon"; mes "1 Elunium"; mes "30 Pierres"; mes "5 Gemmes Bleues"; mes "5 Gemmes Jaunes"; mes "5 Gemmes Rouges"; next; mes "^3355FFSouhaitez-vous entamer le processus de régénération?^000000"; switch(select("Non:Oui")) { case 1: mes "^3355FFProcessus de Régénération annulé.^000000"; close; case 2: if ((countitem(984) > 0) && (countitem(985) > 0) && (countitem(7049) > 29) && (countitem(717) > 4) && (countitem(715) > 4) && (countitem(716) > 4)) { mes "^3355FFPosez les Pierres, l'Elunium, et l'Oridecon, dans cet ordre, au centre du socle. Vous devrez ensuite orienter les Gemmes afin de pouvoir reconstruire la Pierre Gardienne^000000."; next; switch(select("Elunium:Oridecon:Pierre")) { case 1: mes "^3355FFL'Elunium a été"; mes "placé au centre du socle.^000000"; next; break; case 2: mes "^3355FFL'Oridecon a été"; mes "placé au centre du socle.^000000"; next; break; case 3: mes "^3355FFLes Pierres ont été"; mes "placées au centre du socle.^000000"; set .@nice,.@nice+10; next; break; } switch(select("Elunium:Oridecon:Pierre")) { case 1: mes "^3355FFVous avez déposé L'Elunium près du centre du socle.^000000"; set .@nice,.@nice+10; next; break; case 2: mes "^3355FFVous avez déposé l'Oridecon près du centre du socle.^000000"; next; break; case 3: mes "^3355FFVous avez déposé les Pierres près du centre du socle.^000000"; next; break; } switch(select("Elunium:Oridecon:Pierre")) { case 1: mes "^3355FFLa ligne de matériaux s'achève avec l'Elunium.^000000"; next; break; case 2: mes "^3355FFLa ligne de matériaux s'achève avec l'Oridecon.^000000"; set .@nice,.@nice+10; next; break; case 3: mes "^3355FFLa ligne de matériaux s'achève avec les Pierres.^000000"; next; break; } mes "^3355FFVous devez maintenant orienter les Gemmes correctement. Aidez-vous en identifiant leurs propriétés magiques selon l'effet des incantations.^000000"; next; while(1) { if (.@roof0 > 7) { break; } else { switch(rand(1,3)) { case 1: specialeffect EF_BEGINSPELL2; mes "^3355FFLes Gemmes doivent être orientées en fonction de leur puissance et de leurs propriétés magiques.^000000"; next; switch(select("Gemme Rouge:Gemme Jaune:Gemme Bleue")) { case 1: mes "^3355FFVous avez déposé les Gemmes Rouges."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; case 2: mes "^3355FFVous avez déposé les Gemmes Jaunes."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; case 3: mes "^3355FFVous avez déposé les Gemmes Bleues.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect EF_STEAL; next; break; } break; case 2: specialeffect EF_VOLCANO; mes "^3355FFLes Gemmes doivent être orientées en fonction de leur puissance et de leurs propriétés magiques.^000000"; next; switch(select("Gemme Rouge:Gemme Jaune:Gemme Bleue")) { case 1: mes "^3355FFVous avez déposé les Gemmes Rouges.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect EF_STEAL; next; break; case 2: mes "^3355FFVous avez déposé les Gemmes Jaunes."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; case 3: mes "^3355FFVous avez déposé les Gemmes Bleues."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; } break; case 3: specialeffect EF_BEGINSPELL4; mes "^3355FFLes Gemmes doivent être orientées en fonction de leur puissance et de leurs propriétés magiques.^000000"; next; switch(select("Gemme Rouge:Gemme Jaune:Gemme Bleue")) { case 1: mes "^3355FFVous avez déposé les Gemmes Rouges."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; case 2: mes "^3355FFVous avez déposé les Gemmes Jaunes.^000000"; set .@nice,.@nice+10; set .@roof0,.@roof0 + 1; specialeffect EF_STEAL; next; break; case 3: mes "^3355FFVous avez déposé les Gemmes Bleues."; mes "Cependant, le processus de régénération de la Pierre Gardienne a échoué, à cause d'un conflit de puissance magique.^000000"; close; } } } } if (.@nice > 90) { if ($agit_sc01[1] == 0) { mes "^3355FFLe processus de régénération de la Pierre Gardienne est terminé.^000000"; close; } else { if (agitcheck2() == 0) { mes "^3355FFIl est impossible de reconstruire la Pierre Gardienne car l'Emperium est absent.^000000"; close; } else { mes "^3355FFLes Gemmes ont été déposées, la Pierre Gardienne est maintenant régénérée.^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 EF_ICECRASH; disablenpc "Pierre Gardienne#2sch01"; setarray $agit_sc01[1],0; set .@df_all,$agit_sc01[0]+$agit_sc01[1]; if (.@df_all == 0) { mapannounce "schg_cas01","Deux Pierres Gardiennes viennent renforcer la défense du bastion!",bc_map,"0x00ff00"; donpcevent "#sch01_RL00::OnEnable"; } else { mapannounce "schg_cas01","Une Pierre Gardienne vient d'être réparée.",bc_map,"0x00ff00"; } if ($agit_sc01[5] == 1) { donpcevent "#sch01_gard02::OnEnable"; } end; } } } else { mes "^3355FFAprès tous vos efforts... Vous avez échoué à réparer la Pierre Gardienne, et perdu vos matériaux.^000000"; delitem 7049,10; //Stone delitem 717,2; //Blue_Gemstone delitem 715,2; //Yellow_Gemstone delitem 716,2; //Red_Gemstone close; } } else { mes "^3355FFVous n'avez pas tous les matériaux requis pour la réparation de la Pierre Gardienne.^000000"; close; } } } end; OnInit: disablenpc "Pierre Gardienne#2sch01"; end; OnEnable: enablenpc "Pierre Gardienne#2sch01"; specialeffect EF_MAPPILLAR2; end; OnDisable: disablenpc "Pierre Gardienne#2sch01"; end; } // Barrier Summoners schg_cas01,2,1,0 script #sch01_RL00 -1,{ OnEnable: setwall "schg_cas01",114,48,13,6,0,"sch01_RL00"; 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: delwall "sch01_RL00"; killmonster "schg_cas01","#sch01_RL00::OnBarrierDestroyed"; end; OnBarrierDestroyed: end; } schg_cas01,2,2,0 script #sch01_RL01 -1,{ OnEnable: set .MyMobCount,6; setwall "schg_cas01",114,51,13,6,1,"sch01_RL01"; 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","La première Porte Barrière a été détruite.",bc_map,"0x00ff00"; delwall "sch01_RL01"; } end; OnDisable: delwall "sch01_RL01"; killmonster "schg_cas01","#sch01_RL01::OnBarrierDestroyed"; end; } schg_cas01,2,3,0 script #sch01_RL02 -1,{ OnEnable: set .MyMobCount,6; setwall "schg_cas01",114,154,13,6,1,"sch01_RL02"; 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","La deuxième Porte Barrière a été détruite.",bc_map,"0x00ff00"; delwall "sch01_RL02"; } end; OnDisable: delwall "sch01_RL02"; killmonster "schg_cas01","#sch01_RL02::OnBarrierDestroyed"; end; } schg_cas01,2,4,0 script #sch01_RL03 -1,{ OnEnable: set .MyMobCount,4; setwall "schg_cas01",116,241,11,6,1,"sch01_RL03"; 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","La troisième Porte Barrière a été détruite!",bc_map,"0x00ff00"; delwall "sch01_RL03"; } end; OnDisable: delwall "sch01_RL03"; killmonster "schg_cas01","#sch01_RL03::OnBarrierDestroyed"; end; } schg_cas01,124,52,0 script Contrôle Porte 1#sch01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { if (strcharinfo(0) == getguildmaster(.@GID)) { if ($agit_sc01[2] == 2) { mes "^3355FFLes Portes Barrières détruites peuvent être réparées avec les matériaux suivants:^000000"; next; mes "^4D4DFF10 morceaux d'Acier^000000,"; mes "^4D4DFF30 Troncs^000000,"; mes "^4D4DFF5 Oridecons^000000, et"; mes "^4D4DFF10 Emveretarcons^000000."; next; select("Continuer"); if ((countitem(1019) > 29) && (countitem(999) > 9) && (countitem(1011) > 9) && (countitem(984) > 4)) { mes "^3355FFVous aurez besoin des Troncs pour réparer l'encadrement de la Porte, l'Oridecon pour renforcer la structure, l'Acier pour combler les failles et l'Emveretarcon pour que le tout soit cohésif.^000000"; next; set .@ro_of01,rand(10,15); while(1) { if (.@ro_of02 == .@ro_of01) { break; } else { switch(rand(1,4)) { case 1: mes "^3355FFL'encadrement des Portes est très endommagé. Il faut réparer ces pièces en priorité.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFL'encadrement de la Porte a été renforcé par le bois des Troncs.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour réparer l'encadrement de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer un autre type de matériau.^000000"; close; case 3: mes "^3355FFVous avez essayé d'utiliser de l'emveretarcon pour réparer l'encadrement de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer un autre type de matériau.^000000"; close; case 4: mes "^3355FFVous avez essayé d'utiliser de l'oridecon pour réparer l'encadrement de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer un autre type de matériau.^000000"; close; } break; case 2: mes "^3355FFOn dirait que la structure de la Porte a besoin d'être renforcée.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFVous avez utilisé du bois pour renforcer la structure de la Porte.^000000"; set .@ro_of02,.@ro_of02 + 1; next; break; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour renforcer la structure de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; case 3: mes "^3355FFVous avez essayé d'utiliser de l'emveretarcon pour renforcer la structure de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; case 4: mes "^3355FFVous avez utilisé de l'oridecon pour renforcer la structure de la Porte: on dirait que ça a bien fonctionné.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; } break; case 3: mes "^3355FFLes dégâts des Portes sont si étendus que la cohésion de la structure n'est plus assurée, et la Porte présente des failles. Vous devez absolument combler ces failles pour renforcer la cohésion.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFVous avez essayé d'utiliser du bois pour combler les failles de la structure, mais on dirait que ça a empiré les choses. Vous devriez essayer autre chose.^000000"; close; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour combler les failles: la structure semble meilleure.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; case 3: mes "^3355FFVous avez essayé d'utiliser de l'emveretarcon pour combler les failles de la structure, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; case 4: mes "^3355FFVous avez essayé d'utiliser de l'oridecon pour combler les failles de la structure, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; } break; case 4: mes "^3355FFVous devez maintenant vous assurer d'une cohésion parfaite pour que la Porte supporte de nouveaux assauts.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFVous avez essayé d'utiliser du bois pour renforcer la cohésion globale de la Porte, mais on dirait que ça a empiré les choses. Vous devriez essayer avec un autre matériau.^000000"; close; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour renforcer la cohésion globale de la Porte, mais on dirait que ça n'a pas bien fonctionné. Vous devriez essayer autre chose.^000000"; close; case 3: mes "^3355FFVous avez réussi à utiliser de l'emveretarcon pour renforcer la cohésion globale de la Porte.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; case 4: mes "^3355FFVous avez essayé d'utiliser de l'oridecon pour renforcer la cohésion globale de la Porte, mais on dirait que ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; } } } } mes "^3355FFLa Porte Barrière semble être totalement réparée à présent.^000000"; next; if (agitcheck2() == 0) { mes "^3355FFVous ne pouvez pas réparer la Porte Barrière, car l'Emperium n'est pas présent.^000000"; close; } else { if (.@rp_temp == .@ro_of01) { mes "^3355FFLa Porte Barrière a été totalement réparée!^000000"; delitem 1019,30; //Wooden_Block delitem 999,10; //Steel delitem 1011,10; //Emveretarcon delitem 984,5; //Oridecon close2; donpcevent "#sch01_RL01::OnEnable"; disablenpc "Contrôle Porte 1#sch01"; mapannounce "schg_cas01","La première Porte Barrière a été reconstruite!",bc_map,"0x00ff00"; setarray $agit_sc01[2],0; end; } else { mes "^3355FFLe processus de reconstruction de la Porte Barrière a échoué, et vous perdez vos matériaux...^000000"; delitem 984,2; //Oridecon delitem 999,4; //Steel delitem 1019,14; //Wooden_Block delitem 1011,3; //Emveretarcon close; } } } else { mes "^3355FFVous n'avez pas les matériaux nécessaires pour réparer la Porte Barrière.^000000"; close; } } } } end; OnInit: disablenpc "Contrôle Porte 1#sch01"; end; OnEnable: enablenpc "Contrôle Porte 1#sch01"; end; OnDisable: disablenpc "Contrôle Porte 1#sch01"; end; } schg_cas01,128,157,0 script Contrôle Porte 2#sch01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { if (strcharinfo(0) == getguildmaster(.@GID)) { if ($agit_sc01[3] == 2) { mes "^3355FFLes Portes Barrières détruites peuvent être réparées avec les matériaux suivants:^000000"; next; mes "^4D4DFF10 morceaux d'Acier^000000,"; mes "^4D4DFF30 Troncs^000000,"; mes "^4D4DFF5 Oridecons^000000, et"; mes "^4D4DFF10 Emveretarcons^000000."; next; select("Continue"); if ((countitem(1019) > 29) && (countitem(999) > 9) && (countitem(1011) > 9) && (countitem(984) > 4)) { mes "^3355FFVous aurez besoin des Troncs pour réparer l'encadrement de la Porte, l'Oridecon pour renforcer la structure, l'Acier pour combler les failles et l'Emveretarcon pour que le tout soit cohésif.^000000"; next; set .@ro_of01,rand(10,15); while(1) { if (.@ro_of02 == .@ro_of01) { break; } else { switch(rand(1,4)) { case 1: mes "^3355FFL'encadrement des Portes est très endommagé. Il faut réparer ces pièces en priorité.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFL'encadrement de la Porte a été renforcé par le bois des Troncs.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour réparer l'encadrement de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer un autre type de matériau.^000000"; close; case 3: mes "^3355FFVous avez essayé d'utiliser de l'emveretarcon pour réparer l'encadrement de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer un autre type de matériau.^000000"; close; case 4: mes "^3355FFVous avez essayé d'utiliser de l'oridecon pour réparer l'encadrement de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer un autre type de matériau.^000000"; close; } break; case 2: mes "^3355FFOn dirait que la structure de la Porte a besoin d'être renforcée.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFVous avez utilisé du bois pour renforcer la structure de la Porte.^000000"; set .@ro_of02,.@ro_of02 + 1; next; break; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour renforcer la structure de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; case 3: mes "^3355FFVous avez essayé d'utiliser de l'emveretarcon pour renforcer la structure de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; case 4: mes "^3355FFVous avez utilisé de l'oridecon pour renforcer la structure de la Porte: on dirait que ça a bien fonctionné.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; } break; case 3: mes "^3355FFLes dégâts des Portes sont si étendus que la cohésion de la structure n'est plus assurée, et la Porte présente des failles. Vous devez absolument combler ces failles pour renforcer la cohésion.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFVous avez essayé d'utiliser du bois pour combler les failles de la structure, mais on dirait que ça a empiré les choses. Vous devriez essayer autre chose.^000000"; close; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour combler les failles: la structure semble meilleure.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; case 3: mes "^3355FFVous avez essayé d'utiliser de l'emveretarcon pour combler les failles de la structure, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; case 4: mes "^3355FFVous avez essayé d'utiliser de l'oridecon pour combler les failles de la structure, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; } break; case 4: mes "^3355FFVous devez maintenant vous assurer d'une cohésion parfaite pour que la Porte supporte de nouveaux assauts.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFVous avez essayé d'utiliser du bois pour renforcer la cohésion globale de la Porte, mais on dirait que ça a empiré les choses. Vous devriez essayer avec un autre matériau.^000000"; close; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour renforcer la cohésion globale de la Porte, mais on dirait que ça n'a pas bien fonctionné. Vous devriez essayer autre chose.^000000"; close; case 3: mes "^3355FFVous avez réussi à utiliser de l'emveretarcon pour renforcer la cohésion globale de la Porte.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; case 4: mes "^3355FFVous avez essayé d'utiliser de l'oridecon pour renforcer la cohésion globale de la Porte, mais on dirait que ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; } } } } mes "^3355FFLa Porte Barrière semble être totalement réparée à présent.^000000"; next; if (agitcheck2() == 0) { mes "^3355FFVous ne pouvez pas réparer la Porte Barrière, car l'Emperium n'est pas présent.^000000"; close; } else { if (.@rp_temp == .@ro_of01) { mes "^3355FFLa Porte Barrière a été totalement réparée!^000000"; delitem 1019,30; //Wooden_Block delitem 999,10; //Steel delitem 1011,10; //Emveretarcon delitem 984,5; //Oridecon close2; donpcevent "#sch01_RL02::OnEnable"; disablenpc "Contrôle Porte 2#sch01"; mapannounce "schg_cas01","La deuxième Porte Barrière a été reconstruite!",bc_map,"0x00ff00"; setarray $agit_sc01[3],0; //Global Variable setarray $agit_sc01[2],2; //Global Variable donpcevent "Contrôle Porte 1#sch01::OnEnable"; end; } else { mes "^3355FFLe processus de reconstruction de la Porte Barrière a échoué, et vous perdez vos matériaux...^000000"; delitem 984,2; //Oridecon delitem 999,4; //Steel delitem 1019,14; //Wooden_Block delitem 1011,3; //Emveretarcon close; } } } else { mes "^3355FFVous n'avez pas les matériaux nécessaires pour réparer la Porte Barrière.^000000"; close; } } } } end; OnInit: disablenpc "Contrôle Porte 2#sch01"; end; OnEnable: enablenpc "Contrôle Porte 2#sch01"; end; OnDisable: disablenpc "Contrôle Porte 2#sch01"; end; } schg_cas01,109,247,0 script Contrôle Porte 3#sch01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { if (strcharinfo(0) == getguildmaster(.@GID)) { if ($agit_sc01[4] == 2) { mes "^3355FFLes Portes Barrières détruites peuvent être réparées avec les matériaux suivants:^000000"; next; mes "^4D4DFF10 morceaux d'Acier^000000,"; mes "^4D4DFF30 Troncs^000000,"; mes "^4D4DFF5 Oridecons^000000, et"; mes "^4D4DFF10 Emveretarcons^000000."; next; select("Continue"); if ((countitem(1019) > 29) && (countitem(999) > 9) && (countitem(1011) > 9) && (countitem(984) > 4)) { mes "^3355FFVous aurez besoin des Troncs pour réparer l'encadrement de la Porte, l'Oridecon pour renforcer la structure, l'Acier pour combler les failles et l'Emveretarcon pour que le tout soit cohésif.^000000"; next; set .@ro_of01,rand(10,15); while(1) { if (.@ro_of02 == .@ro_of01) { break; } else { switch(rand(1,4)) { case 1: mes "^3355FFL'encadrement des Portes est très endommagé. Il faut réparer ces pièces en priorité.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFL'encadrement de la Porte a été renforcé par le bois des Troncs.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour réparer l'encadrement de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer un autre type de matériau.^000000"; close; case 3: mes "^3355FFVous avez essayé d'utiliser de l'emveretarcon pour réparer l'encadrement de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer un autre type de matériau.^000000"; close; case 4: mes "^3355FFVous avez essayé d'utiliser de l'oridecon pour réparer l'encadrement de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer un autre type de matériau.^000000"; close; } break; case 2: mes "^3355FFOn dirait que la structure de la Porte a besoin d'être renforcée.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFVous avez utilisé du bois pour renforcer la structure de la Porte.^000000"; set .@ro_of02,.@ro_of02 + 1; next; break; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour renforcer la structure de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; case 3: mes "^3355FFVous avez essayé d'utiliser de l'emveretarcon pour renforcer la structure de la Porte, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; case 4: mes "^3355FFVous avez utilisé de l'oridecon pour renforcer la structure de la Porte: on dirait que ça a bien fonctionné.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; } break; case 3: mes "^3355FFLes dégâts des Portes sont si étendus que la cohésion de la structure n'est plus assurée, et la Porte présente des failles. Vous devez absolument combler ces failles pour renforcer la cohésion.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFVous avez essayé d'utiliser du bois pour combler les failles de la structure, mais on dirait que ça a empiré les choses. Vous devriez essayer autre chose.^000000"; close; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour combler les failles: la structure semble meilleure.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; case 3: mes "^3355FFVous avez essayé d'utiliser de l'emveretarcon pour combler les failles de la structure, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; case 4: mes "^3355FFVous avez essayé d'utiliser de l'oridecon pour combler les failles de la structure, mais ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; } break; case 4: mes "^3355FFVous devez maintenant vous assurer d'une cohésion parfaite pour que la Porte supporte de nouveaux assauts.^000000"; next; switch(select("Tronc:Acier:Emveretarcon:Oridecon")) { case 1: mes "^3355FFVous avez essayé d'utiliser du bois pour renforcer la cohésion globale de la Porte, mais on dirait que ça a empiré les choses. Vous devriez essayer avec un autre matériau.^000000"; close; case 2: mes "^3355FFVous avez essayé d'utiliser de l'acier pour renforcer la cohésion globale de la Porte, mais on dirait que ça n'a pas bien fonctionné. Vous devriez essayer autre chose.^000000"; close; case 3: mes "^3355FFVous avez réussi à utiliser de l'emveretarcon pour renforcer la cohésion globale de la Porte.^000000"; set .@rp_temp,.@rp_temp + 1; set .@ro_of02,.@ro_of02 + 1; specialeffect2 EF_REPAIRWEAPON; next; break; case 4: mes "^3355FFVous avez essayé d'utiliser de l'oridecon pour renforcer la cohésion globale de la Porte, mais on dirait que ça n'a pas bien fonctionné. Vous devriez essayer à nouveau.^000000"; close; } } } } mes "^3355FFLa Porte Barrière semble être totalement réparée à présent.^000000"; next; if (agitcheck2() == 0) { mes "^3355FFVous ne pouvez pas réparer la Porte Barrière, car l'Emperium n'est pas présent.^000000"; close; } else { if (.@rp_temp == .@ro_of01) { mes "^3355FFLa Porte Barrière a été totalement réparée!^000000"; delitem 1019,30; //Wooden_Block delitem 999,10; //Steel delitem 1011,10; //Emveretarcon delitem 984,5; //Oridecon close2; donpcevent "#sch01_RL03::OnEnable"; disablenpc "Contrôle Porte 3#sch01"; mapannounce "schg_cas01","La troisième Porte Barrière a été reconstruite!",bc_map,"0x00ff00"; setarray $agit_sc01[4],0; setarray $agit_sc01[3],2; donpcevent "Contrôle Porte 2#sch01::OnDevice02#sch01_dlrp02"; end; } else { mes "^3355FFLe processus de reconstruction de la Porte Barrière a échoué, et vous perdez vos matériaux...^000000"; delitem 984,2; //Oridecon delitem 999,4; //Steel delitem 1019,14; //Wooden_Block delitem 1011,3; //Emveretarcon close; } } } else { mes "^3355FFVous n'avez pas les matériaux nécessaires pour réparer la Porte Barrière.^000000"; close; } } } } end; OnInit: disablenpc "Contrôle Porte 3#sch01"; end; OnEnable: enablenpc "Contrôle Porte 3#sch01"; end; OnDisable: disablenpc "Contrôle Porte 3#sch01"; end; } // Link Flags schg_cas01,106,302,0 script 1er Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Veuillez choisir une destination.^000000"; switch(select("Première Salle Barrière:Deuxième Salle Barrière:Annuler")) { 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 2nd Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Veuillez choisir une destination.^000000"; switch(select("Zone de Défense 1-1:Zone de Défense 1-2:Annuler")) { 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 3ème Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Veuillez choisir une destination.^000000"; switch(select("Zone de Défense 2-1:Zone de Défense 2-2:Annuler")) { 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 4ème Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Veuillez choisir une destination.^000000"; switch(select("Zone de Défense 2-3:Zone de Défense 2-4:Annuler")) { 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 5ème Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Veuillez choisir une destination.^000000"; switch(select("Zone de Défense 2-3:Zone de Défense 2-4:Annuler")) { 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 6ème Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Veuillez choisir une destination.^000000"; switch(select("Zone de Défense 3-1:Zone de Défense 3-2:Annuler")) { 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 7ème Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Veuillez choisir une destination.^000000"; switch(select("1ère Zone Centrale:2ième Zone Centrale:Annuler")) { 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 8ème Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Veuillez choisir une destination.^000000"; switch(select("Zone 1-1:Zone 2-1:Zone 3-1:Annuler")) { 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 9ème Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Veuillez choisir une destination.^000000"; switch(select("Zone 1-2:Zone 2-3:Zone 3-2:Annuler")) { 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 10ème Drapeau#schg_cas01 111,{ set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { mes "^3355FFService de Téléportation du Bastion."; mes "Souhaitez-vous être téléporté au Lieu de Gestion du Bastion réservé au Chef de Guilde et à ses membres?^000000"; switch(select("Se Téléporter au Lieu de Gestion:Annuler")) { 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 "^3355FFService de Téléportation du Bastion."; mes "Souhaitez-vous être téléporté dans la Salle Centrale de l'Emperium?^000000"; switch(select("Se Téléporter:Annuler")) { 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 "^3355FFService de Téléportation du Bastion."; mes "Souhaitez-vous être téléporté dans la Salle Centrale de l'Emperium?^000000"; switch(select("Se Téléporter:Annuler")) { 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 "J'attends le Maître que la destinée choisira pour moi. Pensez-vous avoir le courage et la force de conquérir ce Bastion?"; close; } if (getcharid(2) != .@GID || strcharinfo(0) != getguildmaster(.@GID)) { mes "[ Steward ]"; mes "Humpf. Vos menaces ne me font pas peur! Gardiens! Reconduisez cet intrus hors d'ici! Je suis loyal au seul et unique Maître du Bastion, ^FF0000" + getguildmaster(.@GID) + "^000000."; close; } mes "[ Steward ]"; mes "Ah, Maître ^FF0000" + getguildmaster(.@GID) + "^000000..."; mes "Comment puis-je vous servir aujourd'hui?"; mes "Y a-t-il un aspect de la maintenance du Bastion dont vous souhaitez discuter?"; next; switch(select("Résumé de l'Etat du Bastion:Investissements Commerciaux:Investissements Défensifs:Emploi ou Renvoi d'une Kafra:Entrer dans la Salle des Coffres")) { case 1: mes "[ Steward ]"; mes "Le taux d'investissement commercial est de ^0000ff" + GetCastleData("schg_cas01",2) + "."; if (GetCastleData("schg_cas01",4) > 0) { mes "Vous avez investi " + GetCastleData("schg_cas01",4) + " fois aujourd'hui."; } next; mes "[ Steward ]"; mes "Le taux d'investissement défensif est de " + GetCastleData("schg_cas01",3) + "."; if (GetCastleData("schg_cas01",5) > 0) { mes "Vous avez investi " + GetCastleData("schg_cas01",5) + " fois aujourd'hui."; } mes " "; mes "C'est tout pour le moment, Maître."; close; case 2: set .@Economy,GetCastleData("schg_cas01",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_cas01",4)) { set .@eco_invest,.@eco_invest*4; } mes "[ Steward ]"; mes "Grâce aux Investissements Commerciaux du Bastion, la production des biens augmentera. Si vous espérez un avenir prospère, un investissement serait un bon placement."; next; mes "[ Steward ]"; mes "Vous pouvez investir jusqu'à deux fois par jour. La seconde fois vous coûtera plus cher."; next; if (.@Economy == 100) { mes "[ Steward ]"; mes "L'Investissement Commercial du Bastion est à son maximum. Vous êtes un Maître très dévoué, comme je m'en doutais."; close; } if (GetCastleData("schg_cas01",4) >= 2) { mes "[ Steward ]"; mes "Vous avez déjà investi deux fois aujourd'hui, c'est le maximum possible."; close; } if (GetCastleData("schg_cas01",4) == 0) { mes "[ Steward ]"; mes "L'argent nécessaire pour le premier investissement de la journée est de ^FF0000" + .@eco_invest + "^000000 Zenys."; mes "Souhaitez-vous investir?"; } else { mes "[ Steward ]"; mes "Vous avez déjà investi une fois aujourd'hui, vous pouvez investir à nouveau pour ^FF0000" + .@eco_invest + "^000000 Zenys."; mes "Souhaitez-vous investir à nouveau?"; } next; switch(select("Investir en Commerce:Annuler")) { case 1: if (GetCastleData("schg_cas01",4) >= 2) { mes "[ Steward ]"; mes "Vous avez déjà investi deux fois aujourd'hui. Vous devrez attendre demain avant de pouvoir investir à nouveau."; close; } if (Zeny < .@eco_invest) { mes "[ Steward ]"; mes "Maître, vous n'avez pas assez d'argent pour investir. L'investissement est donc annulé."; close; } set zeny,zeny-.@eco_invest; SetCastleData "schg_cas01",4,GetCastleData("schg_cas01",4)+1; mes "[ Steward ]"; mes "L'investissement a été pris en compte. Vous utilisez vos ressources d'une sage façon, Maître. Nous devrions voir les effets de cet investissement dès demain."; close; case 2: mes "[ Steward ]"; mes "Je ferai selon vos instructions, Maître."; close; } case 3: set .@Defence,GetCastleData("schg_cas01",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_cas01",5)) { set .@def_invest,.@def_invest*4; } mes "[ Steward ]"; mes "Grâce aux Investissements Défensifs du Bastion, les Gardiens et l'Emperium deviendront plus résistants. Si vous souhaitez accroître vos défenses à l'avenir, un investissement est nécessaire."; next; mes "[ Steward ]"; mes "Vous pouvez investir jusqu'à deux fois par jour. La seconde fois vous coûtera plus cher."; next; mes "[ Steward ]"; if (GetCastleData("schg_cas01",3) == 100) { mes "L'Investissement Défensif du Bastion est à son maximum. Vous êtes un Maître très dévoué, comme je m'en doutais."; close; } if (GetCastleData("schg_cas01",5) >= 2) { mes "Vous avez déjà investi deux fois aujourd'hui, c'est le maximum possible."; close; } if (GetCastleData("schg_cas01",5) == 0) { mes "L'argent nécessaire pour le premier investissement de la journée est de ^FF0000" + .@def_invest + "^000000 Zenys."; mes "Souhaitez-vous investir?"; } else { mes "Vous avez déjà investi une fois aujourd'hui, vous pouvez investir à nouveau pour ^FF0000" + .@def_invest + "^000000 Zenys."; mes "Souhaitez-vous investir?"; } next; switch(select("Investir en Défense:Annuler")) { case 1: if (GetCastleData("schg_cas01",5) >= 2) { mes "[ Steward ]"; mes "Vous avez déjà investi deux fois aujourd'hui. Vous devrez attendre demain avant de pouvoir investir à nouveau."; close; } if (Zeny < .@def_invest) { mes "[ Steward ]"; mes "Maître, vous n'avez pas assez d'argent pour investir. L'investissement est donc annulé."; close; } set zeny,zeny-.@def_invest; SetCastleData "schg_cas01",5,GetCastleData("schg_cas01",5)+1; mes "[ Steward ]"; mes "L'investissement a été pris en compte. Vous utilisez vos ressources d'une sage façon, Maître. Nous devrions voir les effets de cet investissement dès demain."; close; case 2: mes "[ Steward ]"; mes "Je ferai selon vos instructions, Maître."; close; } case 4: if (GetCastleData("schg_cas01",9) == 1) { mes "[ Steward ]"; mes "Nous employons actuellement une Employée Kafra... Voulez vous renvoyer l'actuelle Employée Kafra?"; next; switch(select("Renvoyer:Annuler")) { case 1: cutin "kafra_01",2; mes "[ Employée Kafra ]"; mes "J'ai travaillé de mon mieux... Maître, je vous l'assure!... Je travaillerais plus encore s'il le faut si vous êtes mécontent, mais s'il vous plaît... ne me renvoyez pas, Maître."; next; switch(select("Renvoyer:Annuler")) { case 1: mes "[ Employée Kafra ]"; mes "Je suis confuse de ne pas avoir réussi à servir votre Guilde comme j'aurais dû.... Qu'ai-je fais pour mériter cela?"; next; cutin "kafra_01",255; break; case 2: mes "[ Employée Kafra ]"; mes "Je travaillerai dur pour vous, Maître... Merci! Vous ne le regretterez pas!"; close; } break; case 2: mes "[ Steward ]"; mes "Elle est très travailleuse, vous avez raison de le garder à votre service."; close; } disablenpc "Kafra#sch_cas01"; SetCastleData "schg_cas01",9,0; mes "[ Steward ]"; mes "...."; mes "J'ai renvoyé l'Employée Kafra... Mais... Êtes-vous satisfait de votre décision?"; close; } else { mes "[ Steward ]"; mes "Voulez-vous contacter la Corporation Kafra pour engager une Employée dans le Bastion?"; mes "^FF000010 000 Zenys^000000 sont nécessaires pour leurs services."; next; switch(select("Engager:Annuler")) { case 1: if (getgdskilllv(.@GID,10001) == 0) { mes "[ Steward ]"; mes "Maître, vous n'avez pas de contrat avec la Corporation Kafra."; mes "Afin de pouvoir employer une Kafra, votre guilde doit d'abord apprendre la compétence ^ff0000Contrat Kafra^000000."; close; } if (Zeny < 10000) { mes "[ Steward ]"; mes "Maître, vous n'avez pas assez d'argent. L'emploi d'une Kafra a été annulé."; close; } set zeny,zeny-10000; enablenpc "Kafra#sch01"; SetCastleData "schg_cas01",9,1; mes "[ Steward ]"; mes "Vous avez passé un contrat avec la Corporation Kafra et engagé une Employée Kafra affectée au Bastion. La voici~"; next; cutin "kafra_01",2; mes "[ Employée Kafra ]"; mes "Comment allez-vous? J'ai été envoyée ici par la Corporation pour vous assister. C'est un honneur de pouvoir vous proposer mes services. Je vous aiderai au mieux."; next; cutin "kafra_01",255; mes "[ Steward ]"; mes "Le contrat avec la Corporation Kafra dure 1 mois. Après cela, vous devrez de nouveau payer pour renouveler le contrat."; mes "Je pense que l'Employée Kafra sera très bénéfique pour les membres de la Guilde."; close; case 2: mes "[ Steward ]"; mes "J'ai fait selon vos ordres, mais je vous suggère d'employer une Kafra très bientôt!"; close; } } case 5: mes "[ Steward ]"; mes "Voulez-vous vous rendre dans la Salle des Coffres? Seul vous, le Chef de Guilde, êtes autorisé à entrer dans cette salle."; next; mes "[ Steward ]"; mes "Nous recevons des coffres chaque jour."; mes "Vous devriez en prendre possession chaque fois que vous le pouvez."; next; switch(select("Entrer dans la Salle des Coffres:Annuler")) { case 1: mes "[ Steward ]"; mes "Suivez-moi, je vais vous montrer le passage secret pour y accéder."; mes "Vous devrez activer le petit levier dans la salle afin d'en ressortir."; close2; warp "schg_cas01",381,381; end; case 2: mes "[ Steward ]"; mes "Nous recevons des coffres chaque jour."; mes "Vous devriez en prendre possession chaque fois que vous le pouvez."; 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#sch01"; set .msg,2; if (.msg == 1) { announce "Le Bastion [" + GetCastleName("schg_cas01") + "] de Nithafjoll a été conquis par la Guilde [" + getguildname(.@gid) + "].",bc_all|bc_woe; donpcevent "Manager#sch01_02::Onstart"; } else if (.msg == 2) { announce "La Guilde [" + getguildname(.@gid) + "] a conquis le Premier Bastion de Nithafjoll: " + GetCastleName("schg_cas01"),bc_all|bc_woe; mapannounce "schg_cas01","L'Emperium a été détruit!",bc_map,"0x00FF00",FW_NORMAL,20,0,40; if (agitcheck2()) { donpcevent "Manager#sch01_02::Onreset"; initnpctimer; } else { donpcevent "Manager#sch01_02::Onreset"; stopnpctimer; } } else if (.msg == 0) { announce "Le Bastion [" + GetCastleName("schg_cas01") + "] de Nithafjoll a été conquis par la Guilde [" + getguildname(.@gid) + "].",bc_all|bc_woe; 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","Réparez les Pierres Gardiennes ainsi que les Portes Barrières afin de sécuriser le Bastion!",bc_map,"0x00FF00",FW_NORMAL,20,0,40; end; } // Guild Kafra schg_cas01,300,287,5 script Kafra#sch01 117,{ cutin "kafra_01",2; set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID && getgdskilllv(.@GID,10001)) { mes "[Employée Kafra]"; mes "Bienvenue, honorable membre de la Guilde ^FF0000" + GetGuildName(.@GID) + "^000000!"; mes "La Corporation Kafra vous accompagne où que vous alliez!"; next; switch(select("Ouvrir mon Stock:Service de Téléportation:Louer une Charrette:Annuler")) { case 1: if (basicskillcheck() && getskilllv("NV_BASIC") < 6) { mes "[Employée Kafra]"; mes "Je suis désolée, mais vous devez être un Novice de Niveau de Métier 6 au minimum pour pouvoir consulter votre stock."; } else { openstorage; } break; case 2: mes "[Employée Kafra]"; mes "Veuillez choisir votre destination."; next; switch(select("Yuno -> 200 Zenys:Annuler")) { case 1: if (Zeny < 200) { mes "[Employée Kafra]"; mes "Je suis désolée, mais vous n'avez pas assez d'argent pour accéder à ce service."; 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 "[Employée Kafra]"; mes "Je suis désolée, mais la location de charrettes n'est proposée qu'aux Marchands, Forgerons et Alchimistes."; } else if (checkcart() == 1) { mes "Désolée... Mais vous avez déjà une Charrette...."; } else if(!getskilllv(39)){ // Bugfix: on check si le perso a appris la compétence mes "[Employée Kafra]"; mes "Je suis désolée, mais vous n'avez pas encore passé votre Permis Charrette!"; } else { mes "[Employée Kafra]"; mes "La location de charrette coûte 800 Zenys. Acceptez-vous ce tarif?"; next; switch(select("Oui:Annuler")) { case 1: if (Zeny < 800) { mes "[Employée Kafra]"; mes "Je suis désolée, mais vous n'avez pas assez d'argent pour accéder à ce service."; close2; cutin "kafra_01",255; end; } set zeny,zeny-800; setcart; break; case 2: break; } } break; case 4: mes "[Employée Kafra]"; mes "La Corporation Kafra restera toujours à votre disposition."; mes "Merci d'avoir utilisé nos services. A bientôt."; close2; cutin "kafra_01",255; end; } close2; cutin "kafra_01",255; end; } else { mes "[Employée Kafra]"; mes "Je suis employée ici afin de servir les membres de la Guilde ^FF0000" + GetGuildName(.@GID) + "^000000 uniquement. Merci de vous adresser à un autre Agent de la Corporation Kafra."; close2; cutin "kafra_01",255; end; } OnRecvCastlesc01: if (GetCastleData("schg_cas01",1) == 0) { monster "schg_cas01",0,0,"--ja--",1117,10; monster "schg_cas01",0,0,"--ja--",1132,4; monster "schg_cas01",0,0,"--ja--",1219,3; monster "schg_cas01",0,0,"--ja--",1205,1; monster "schg_cas01",0,0,"--ja--",1216,10; monster "schg_cas01",0,0,"--ja--",1193,18; monster "schg_cas01",0,0,"--ja--",1269,9; monster "schg_cas01",0,0,"--ja--",1276,12; monster "schg_cas01",0,0,"--ja--",1208,3; monster "schg_cas01",0,0,"--ja--",1275,1; monster "schg_cas01",0,0,"--ja--",1268,2; monster "schg_cas01",0,0,"--ja--",1272,2; monster "schg_cas01",0,0,"--ja--",1270,4; } if (GetCastleData("schg_cas01",9) < 1) { disablenpc "Kafra#sch01"; } end; } schg_cas01,391,391,0 script #sch01_switch 111,{ mes " "; mes "Vous remarquez un petit levier..."; mes "Voulez-vous l'activer?"; next; switch(select("Oui:Annuler")) { 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 "[ Edit Royal de Schwaltzvalt]"; mes "Le Saint Royaume de Schwaltzvalt déclare que ce Bastion ne possède actuellement aucun Maître. Celui qui détruira l'Emperium sera reconnu comme nouveau possesseur de ce Bastion."; close; } else { if (getcharid(2) == .@GID) { mes "[ Voix Mystérieuse ]"; mes "Brave guerrier,"; mes "souhaitez-vous retourner dans votre Bastion?"; next; switch(select("Retourner au Bastion:Annuler")) { case 1: set .@GID, GetCastleData("schg_cas01",1); if (getcharid(2) == .@GID) { warp "schg_cas01",120,290; end; } close; case 2: close; } } mes "[ Edit Royal de Schwaltzvalt]"; mes "Le Saint Royaume de Schwaltzvalt déclare que ce Bastion appartient à la Guilde ^FF0000" + GetGuildName(.@GID) + "^000000."; next; mes "[ Edit Royal de Schwaltzvalt]"; mes "^FF0000" + GetGuildMaster(.@GID) + "^000000 est le Chef de la Guilde ^FF0000" + GetGuildName(.@GID) + "^000000."; mes "A quiconque souhaitant remettre en cause ce fait, qu'il lève son épée et se batte pour l'Honneur. Ce Bastion ne cèdera que sous la puissance de l'acier et de la magie."; close; } OnRecvCastlesc01: FlagEmblem GetCastleData("schg_cas01",1); end; } sch_gld,297,90,0 duplicate(Sc01_Flag) Himinn#flag_sc01_2 722