//===== Système de Script rAthena ======================================= //= Script du Dirigeable (Airship) //===== Par : =========================================================== //= Équipe de Développement rAthena //===== Version Actuelle : ============================================== //= 1.0 //===== Compatible avec : =============================================== //= Projet rAthena //===== Traduction par : =============================================== //= OverSu & Liara //===== Description : =================================================== //= Système de Dirigeable utilisé sur les serveurs officiels //===== Commentaires additionnels : ===================================== //= 1.0 Première version //======================================================================= //======================================================================= //= Route intérieure du Dirigeable //= ... -> Juno -> Einbroch -> Lighthalzen -> Einbroch //= -> Juno -> Hugel -> ... //======================================================================= airplane,243,73,0 script #AirshipWarp-1 45,1,1,{ end; OnInit: OnHide: specialeffect EF_BASH; disablenpc(); end; OnUnhide: enablenpc(); specialeffect EF_SUMMONSLAVE; end; OnTouch_: switch ($@airplanelocation) { case 0: warp "yuno",92,260; end; case 1: warp "einbroch",92,278; end; case 2: warp "lighthalzen",302,75; end; case 3: warp "hugel",181,146; end; } } airplane,243,29,0 duplicate(#AirshipWarp-1) #AirshipWarp-2 45,1,1 airplane,1,1,0 script Dirigeable_Intérieur -1,{ end; OnInit: initnpctimer; end; OnTimer20000: mapannounce "airplane","Direction Einbroch. Veuillez attacher vos ceintures.",bc_map,"0x00ff00"; end; OnTimer50000: mapannounce "airplane","Nous approchons de Einbroch. Préparez-vous à débarquer.",bc_map,"0x00ff00"; end; OnTimer60000: set $@airplanelocation,1; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Bienvenue à Einbroch. Bon séjour parmi nous.",bc_map,"0x00ff00"; end; OnTimer70000: mapannounce "airplane","Le Dirigeable est actuellement à Einbroch. Départ imminent.",bc_map,"0x00ff00"; end; OnTimer80000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","Décollage en cours. Prochaine destination : Lighthalzen.",bc_map,"0x70dbdb"; end; OnTimer100000: mapannounce "airplane","Cap sur Lighthalzen. Profitez du voyage.",bc_map,"0x70dbdb"; end; OnTimer130000: mapannounce "airplane","Arrivée imminente à Lighthalzen. Préparez vos affaires.",bc_map,"0x70dbdb"; end; OnTimer140000: set $@airplanelocation,2; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Bienvenue à Lighthalzen. Merci d’avoir voyagé avec nous.",bc_map,"0x70dbdb"; end; OnTimer150000: mapannounce "airplane","Le Dirigeable est actuellement à Lighthalzen. Départ imminent.",bc_map,"0x70dbdb"; end; OnTimer160000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","Le Dirigeable reprend les airs. Prochaine escale : Einbroch.",bc_map,"0x00ff00"; end; OnTimer180000: mapannounce "airplane","En route vers Einbroch.",bc_map,"0x00ff00"; end; OnTimer210000: mapannounce "airplane","Approche de Einbroch. Veuillez rester assis jusqu’à l’arrêt complet.",bc_map,"0x00FF00"; end; OnTimer220000: set $@airplanelocation,1; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Bienvenue à Einbroch. Bon séjour.",bc_map,"0x00ff00"; end; OnTimer230000: mapannounce "airplane","Nous sommes toujours à Einbroch. Le Dirigeable repart bientôt.",bc_map,"0x00ff00"; end; OnTimer240000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","Décollage en cours. Cap sur Juno.",bc_map,"0xff8200"; end; OnTimer260000: mapannounce "airplane","Nous mettons le cap sur Juno.",bc_map,"0xff8200"; end; OnTimer290000: mapannounce "airplane","Arrivée imminente à Juno. Merci de voyager avec nous.",bc_map,"0xff8200"; end; OnTimer300000: set $@airplanelocation,0; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Bienvenue à Juno. Que les étoiles vous accompagnent.",bc_map,"0xff8200"; end; OnTimer310000: mapannounce "airplane","Nous sommes actuellement à Juno. Le départ est pour bientôt.",bc_map,"0xff8200"; end; OnTimer320000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","Décollage en cours. Prochaine escale : Hugel.",bc_map,"0xca4bf3"; end; OnTimer340000: mapannounce "airplane","En route pour Hugel. Vue imprenable garantie !",bc_map,"0xca4bf3"; end; OnTimer370000: mapannounce "airplane","Approche de Hugel. Merci de rester en sécurité jusqu’à l'arrêt.",bc_map,"0xca4bf3"; end; OnTimer380000: set $@airplanelocation,3; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Bienvenue à Hugel. Profitez de l’air pur !",bc_map,"0xca4bf3"; end; OnTimer390000: mapannounce "airplane","Le Dirigeable est actuellement à Hugel. Départ imminent.",bc_map,"0xca4bf3"; end; OnTimer400000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","Décollage en cours. Prochaine destination : Juno.",bc_map,"0xff8200"; end; OnTimer420000: mapannounce "airplane","Nous sommes en route pour Juno.",bc_map,"0xff8200"; end; OnTimer450000: mapannounce "airplane","Nous arriverons bientôt à Juno. Préparez-vous à débarquer.",bc_map,"0xff8200"; end; OnTimer460000: set $@airplanelocation,0; donpcevent "#AirshipWarp-1::OnUnhide"; donpcevent "#AirshipWarp-2::OnUnhide"; mapannounce "airplane","Bienvenue à Juno. Merci pour votre fidélité.",bc_map,"0xff8200"; end; OnTimer470000: mapannounce "airplane","Dirigeable à l’arrêt. Dernière escale avant le prochain départ.",bc_map,"0xff8200"; end; OnTimer480000: donpcevent "#AirshipWarp-1::OnHide"; donpcevent "#AirshipWarp-2::OnHide"; mapannounce "airplane","Redécollage. En route vers Einbroch.",bc_map,"0x00ff00"; stopnpctimer; initnpctimer; } airplane,240,64,5 script Sortie#dirigeable1a::SortieDirigeable 857,{ end; } airplane,247,64,5 duplicate(SortieDirigeable) Sortie#dirigeable1b 857 airplane,240,40,1 duplicate(SortieDirigeable) Sortie#dirigeable2a 857 airplane,247,40,1 duplicate(SortieDirigeable) Sortie#dirigeable2b 857 airplane,100,69,3 script Équipage Dirigeable#ein-1 852,{ mes "[Membre d'Équipage]"; mes "Si nous avons atteint votre destination,"; mes "et que vous souhaitez débarquer,"; mes "veuillez utiliser l’escalier juste devant vous."; mes "Merci d’avoir volé avec nous."; close; } airplane,64,94,1 script Enfant d'Umbala#ein_p 787,{ emotion ET_PROFUSELY_SWEAT; mes "[Gamin]"; if (event_umbala >= 3) { mes "Wouah, maman !"; mes "R-regarde ça !"; mes "On vole ! On... on est..."; mes "On est carrément dans le ciel !"; } else { mes "Makumalagu !"; mes "Saampa joojimbo"; mes "kaku na jedi Solo."; mes "Bwahahahahahahaah !"; } close; } airplane,66,93,3 script Dame d'Umbala#ein_p 783,{ emotion ET_THINK; mes "[Dame]"; if (event_umbala >= 3) { mes "Chut..."; mes "Mon cœur, tiens-toi bien~"; mes "On ne s’extasie pas autant"; mes "dans un lieu public comme celui-ci !"; } else { mes "Chooktu !"; mes "Sacraup matii !"; mes "Shaka gurftalfi"; mes "huntiki manjoo !"; } close; } airplane,71,91,7 script Homme d'Umbala#ein_p 789,{ if (event_umbala >= 3) { mes "[Chrmlim]"; mes "Tiens donc~"; mes "À voir ta tête,"; mes "je sens que tu peux me comprendre."; mes "^333333*Pfouuu... !*^000000"; next; emotion ET_HNG; mes "[Chrmlim]"; mes "Je file un coup de main au projet Dirigeable,"; mes "en envoyant l’équipage s'entraîner à Umbala."; mes "Ils y affrontent leur peur du vide à coups de..."; mes "...sauts à l’élastique. Sympa, hein ?"; next; mes "[Chrmlim]"; mes "Mais..."; mes "Certains n'ont jamais pu vaincre"; mes "leur vertige. Y'en a même quelques-uns qui ont fini..."; mes "...^333333à Niflheim^000000. Voilà."; } else { mes "[Chrmlim]"; mes "Bajoo ga"; mes "nukta Airship."; next; mes "[Chrmlim]"; mes "..."; mes "......"; next; emotion ET_HNG; mes "[Chrmlim]"; mes "Shabala moow bajama"; mes "Airship kulaha googoona "; mes "salu. Dama, kookoo na nu"; mes "yukuta. Um, fashuku na ret !"; } close; } airplane,250,58,2 script Personnel Dirigeable#airplane 67,{ // Quête Hugel if (hg_ma1 == 3) { mes "[Équipage]"; mes "Bienvenue à bord."; mes "Comment puis-je vous aider ?"; next; select("Cherchez-vous un passager nommé Thierry ?"); mes "[Équipage]"; mes "Je suis désolé, mais je ne pense pas que nous ayons un passager de ce nom."; close; } // Fin quête Hugel mes "[Équipage]"; mes "Bienvenue à bord du Dirigeable."; mes "Comment puis-je vous assister ?"; next; switch (select("Utiliser le Dirigeable:Cabine du Capitaine:Installations:Annuler")) { case 1: mes "[Équipage]"; mes "Lorsque vous entendez une annonce"; mes "signalant notre arrivée à votre destination,"; mes "veuillez emprunter l'une des sorties"; mes "au nord ou au sud du Dirigeable."; next; mes "[Équipage]"; mes "Si vous ratez votre arrêt, pas de panique."; mes "Le Dirigeable est en service continu,"; mes "vous aurez une autre chance de descendre."; close; case 2: mes "[Équipage]"; mes "La Cabine du Capitaine se trouve à l’avant."; mes "Vous pouvez y rencontrer le capitaine"; mes "et le pilote du Dirigeable."; close; case 3: mes "[Équipage]"; mes "Nous proposons divers mini-jeux"; mes "pour divertir nos passagers."; mes "Tentez votre chance et"; mes "montrez vos talents~"; close; case 4: mes "[Équipage]"; mes "Très bien."; mes "Nous vous souhaitons un agréable vol."; mes "Merci, et bonne journée !"; close; } } airplane,80,71,2 script Zerta#01airplane 834,{ mes "[Zerta]"; mes "Oh, bonjour aventurier."; mes "Je suis actuellement"; mes "en pèlerinage sacré,"; mes "priant pour la paix sur"; mes "le continent de Midgard."; close; } airplane,65,63,4 script Maelin#01airplane 714,{ mes "[Maelin]"; mes "Heu... ce Dirigeable va bien à Lutie, pas vrai ?"; mes "J’attends depuis si longtemps,"; mes "mais je n’ai entendu aucune annonce à ce sujet..."; close; } airplane,72,34,6 script Aanos#01airplane 702,{ mes "[Aanos]"; mes "Waaah~"; mes "Le ciel est tellement"; mes "différent vu d'ici..."; mes "C'est magnifique !"; close; } airplane,221,158,2 script Pilote#airplane 852,{ // Quête Hugel if (hg_ma1 == 3) { mes "[Pilote]"; mes "Par les dieux, j'aimerais pouvoir"; mes "boire une bonne bière fraîche..."; mes "L’alcool, c’est ma vocation ! Il me donne de l'énergie !"; mes "Sans lui, je suis qu’un ballon vide."; next; mes "[Pilote]"; mes "Mais ! Conduire sous influence, c’est mal."; mes "Et pourtant, ça me donne encore plus envie de boire !"; emotion ET_CRY; next; select("Connaissez-vous un passager nommé Thierry ?"); mes "[Pilote]"; mes "Cet uniforme a du style, vraiment."; mes "Mais il est beaucoup trop chaud"; mes "pour être porté à bord."; next; mes "[Pilote]"; mes "..."; mes "......"; mes "Personne ne vient jamais ici."; mes "Et puis le capitaine... c’est un renne."; mes "Je pourrais me balader en caleçon que personne ne dirait rien."; next; emotion ET_HUK; mes "[Pilote]"; mes "Héééé !? Qui va là !?"; next; mes "- ...Il ne vous écoute absolument pas. -"; close; } // Fin quête Hugel switch (rand(1,4)) { case 1: mes "[Pilote]"; mes "Pfiou... ça fait siii longtemps que j’ai pas savouré"; mes "une bonne vieille bière bien fraîche."; mes "Mais faut rester sobre quand on pilote !"; next; mes "[Pilote]"; mes "Boire avec modération, toujours !"; mes "Cela dit, je me souviens même plus"; mes "de ma dernière vraie pause..."; mes "Un peu de bière, des chips, un bon film..."; mes "Voilà ce qu’il me faut. Et une sieste."; emotion ET_CRY; close; case 2: mes "[Pilote]"; mes "Le temps est magnifique aujourd’hui."; mes "Un ciel dégagé, une bonne visibilité..."; mes "Le bonheur pour voler tranquille."; close; case 3: mes "[Pilote]"; mes "Tu sais, notre capitaine est un gars bien."; mes "Lui et son frère sont réputés dans l’aéronautique."; mes "Et ouais, les rennes font d’excellents capitaines."; next; mes "[Pilote]"; mes "Entre nous... Santa avait compris le truc."; mes "Des rennes, des lutins, de la magie..."; mes "Ce gars était un visionnaire !"; close; default: mes "[Pilote]"; mes "Piloter un engin volant,"; mes "c’est encore tout récent pour moi."; mes "Ils ont mis le système en place à toute vitesse."; next; emotion ET_HUK; mes "[Pilote]"; mes "Mais ils étaient sérieux, vraiment prévoyants."; mes "On a même été formés avant que les dirigeables soient terminés."; mes "Fou, non ?!"; close; } } airplane,50,66,5 script Marchand de Pommes#airplane 86,{ mes "[Fruitz]"; mes "Bienvenue chez Fruitz,"; mes "la boutique où l’on vend"; mes "des Pommes et où l’on peut les"; mes "presser pour en faire du Jus de Pomme !"; next; switch (select("Acheter des Pommes.:Faire du Jus de Pomme.:Pourquoi es-tu ici ? :Annuler.")) { case 1: mes "[Fruitz]"; mes "Combien de Pommes veux-tu acheter ?"; mes "Chaque Pomme coûte 15 zeny."; mes "Tu peux en acheter jusqu’à 500 à la fois."; mes "Tape '0' pour annuler la commande."; next; while (1) { input .@input; set .@pay, .@input * 15; if (.@input == 0) { mes "[Fruitz]"; mes "Merci d’être passé."; mes "Reviens quand tu veux grignoter une bonne Pomme~"; close; } else if (.@input < 1 || .@input > 500) { mes "[Fruitz]"; mes "Oups, ce nombre dépasse la limite."; mes "Recommence avec un chiffre entre 1 et 500."; next; } else { mes "[Fruitz]"; mes "Alors, ^FF0000" + .@input + "^000000 Pommes"; mes "ça fera ^FF0000" + .@pay + "^000000 zeny."; mes "Tu veux confirmer ?"; next; if (select("Oui:Non") == 2) { mes "[Fruitz]"; mes "Pas de souci, à une prochaine fringale !"; close; } break; } } if (Zeny < .@pay) { mes "[Fruitz]"; mes "Tu n’as pas assez de zeny."; mes "Vérifie ta bourse ou achète-en moins."; close; } else if (checkweight(512, .@input) == 0) { mes "[Fruitz]"; mes "Tu es trop chargé."; mes "Fais un peu de place dans ton inventaire."; close; } else { set Zeny, Zeny - .@pay; getitem 512, .@input; // Pomme mes "[Fruitz]"; mes "Merci de ton achat~"; mes "Savoure bien ces délicieuses Pommes !"; close; } case 2: mes "[Fruitz]"; mes "Il me faut ^FF00003 Pommes et 1 Bouteille Vide^000000"; mes "pour faire un Jus de Pomme."; mes "Tu veux procéder ?"; next; switch (select("Oui:Non")) { case 1: if (countitem(512) < 3 || countitem(713) < 1) { mes "[Fruitz]"; mes "Pas assez d’ingrédients."; mes "3 Pommes et une Bouteille Vide, c’est la recette !"; close; } else { mes "[Fruitz]"; mes "Parfait, prépare-toi..."; next; mes "^3355FF*Bruit de broyage intensif*^000000"; mes "*Crac* *Sblourp* *Clang !*"; next; delitem 512, 3; delitem 713, 1; getitem 531, 1; mes "[Fruitz]"; mes "Voilà ton Jus de Pomme !"; mes "Reviens quand tu veux, aventurier ~"; close; } case 2: mes "[Fruitz]"; mes "Pas de problème."; mes "Tu reviendras quand la soif t’appellera !"; close; } case 3: mes "[Fruitz]"; mes "À l’origine, j’étais un vagabond."; mes "Un jour, en dormant sous un pommier,"; mes "une pomme m’est tombée dessus."; next; mes "[Fruitz]"; mes "J’allais la manger... mourant de faim."; mes "Mais un ancien camarade, Kain, m’a trouvé."; mes "Il m’a recruté comme aide sur le dirigeable."; next; mes "[Fruitz]"; mes "C’est là que j’ai découvert le jeu de dés."; mes "J’ai parié ma pomme... et j’ai gagné."; mes "Puis deux pommes, puis quatre..."; next; mes "[Fruitz]"; mes "Et me voilà maintenant,"; mes "roi du marché de la Pomme !"; mes "Alors crois-moi, les pommes, c’est du sérieux."; mes "Hahahaha !"; close; case 4: mes "[Fruitz]"; mes "Merci d’avoir visité ma boutique."; mes "Bon voyage et à bientôt !"; close; } } //============================================================ //= International Airship Route //= ... -> Izlude -> Juno -> Rachel -> ... //============================================================ airplane_01,243,73,0 script #AirshipWarp-3 45,1,1,{ end; OnTouch_: switch ($@airplanelocation2) { case 0: warp "ra_fild12",292,204; end; case 1: if(checkre(0)) warp "izlude",200,73; else warp "izlude",200,56; end; case 2: warp "yuno",12,261; end; } OnInit: OnHide: specialeffect EF_BASH; disablenpc(); end; OnUnhide: enablenpc(); specialeffect EF_SUMMONSLAVE; end; } airplane_01,243,29,0 duplicate(#AirshipWarp-3) #AirshipWarp-4 45,1,1 airplane_01,1,1,0 script Dirigeable_International -1,{ end; OnInit: OnEnable: initnpctimer; end; OnTimer25000: mapannounce "airplane_01","Nous mettons le cap sur Izlude.",bc_map,"0x00ff00"; end; OnTimer50000: mapannounce "airplane_01","Nous approchons de la ville portuaire d'Izlude.",bc_map,"0x00ff00"; end; OnTimer60000: set $@airplanelocation2,1; donpcevent "#AirshipWarp-3::OnUnhide"; donpcevent "#AirshipWarp-4::OnUnhide"; mapannounce "airplane_01","Bienvenue à Izlude. Nous vous souhaitons un agréable séjour.",bc_map,"0x00ff00"; end; OnTimer70000: mapannounce "airplane_01","Nous sommes actuellement à Izlude. Le dirigeable va bientôt redécoller.",bc_map,"0x00ff00"; end; OnTimer80000: donpcevent "#AirshipWarp-3::OnHide"; donpcevent "#AirshipWarp-4::OnHide"; mapannounce "airplane_01","Le dirigeable quitte Izlude. Prochaine destination : Juno.",bc_map,"0x70dbdb"; end; OnTimer105000: mapannounce "airplane_01","Nous survolons actuellement les terres de Midgard en direction de Juno.",bc_map,"0x70dbdb"; end; OnTimer130000: mapannounce "airplane_01","Nous approchons de Juno. Merci de vous préparer au débarquement.",bc_map,"0x70dbdb"; end; OnTimer140000: set $@airplanelocation2,2; donpcevent "#AirshipWarp-3::OnUnhide"; donpcevent "#AirshipWarp-4::OnUnhide"; mapannounce "airplane_01","Bienvenue à Juno, la cité suspendue. Bon séjour parmi nous.",bc_map,"0x70dbdb"; end; OnTimer150000: mapannounce "airplane_01","Le dirigeable est à quai à Juno. Il repartira dans quelques instants.",bc_map,"0x70dbdb"; end; OnTimer160000: donpcevent "#AirshipWarp-3::OnHide"; donpcevent "#AirshipWarp-4::OnHide"; mapannounce "airplane_01","Le dirigeable s’élève à nouveau. Prochaine escale : Rachel.",bc_map,"0xFF8200"; end; OnTimer185000: mapannounce "airplane_01","Cap sur Rachel, la ville sainte.",bc_map,"0xFF8200"; end; OnTimer210000: mapannounce "airplane_01","Nous serons bientôt à Rachel. Merci de rester assis jusqu'à l'arrêt complet.",bc_map,"0xFF8200"; end; OnTimer220000: set $@airplanelocation2,0; donpcevent "#AirshipWarp-3::OnUnhide"; donpcevent "#AirshipWarp-4::OnUnhide"; mapannounce "airplane_01","Bienvenue à Rachel. Que la bénédiction des étoiles vous accompagne.",bc_map,"0xFF8200"; end; OnTimer230000: mapannounce "airplane_01","Nous sommes à Rachel. Le dirigeable redécollera dans quelques instants.",bc_map,"0xFF8200"; end; OnTimer240000: donpcevent "#AirshipWarp-3::OnHide"; donpcevent "#AirshipWarp-4::OnHide"; mapannounce "airplane_01","Le dirigeable reprend son envol. Retour vers Izlude en cours.",bc_map,"0x00ff00"; stopnpctimer; set .moninv, .moninv + 1; if (.moninv == 7) { if (rand(1,3) == 3) { donpcevent "Airship#airplane02::OnEnable"; end; } set .moninv, 0; } initnpctimer; end; } airplane_01,240,64,5 script Exit#airplane_011a::ExitAirplane01 857,{ end; } airplane_01,247,64,5 duplicate(ExitAirplane01) Exit#airplane_011b 857 airplane_01,240,40,1 duplicate(ExitAirplane01) Exit#airplane_012a 857 airplane_01,247,40,1 duplicate(ExitAirplane01) Exit#airplane_012b 857 airplane_01,250,58,2 script Équipage du Dirigeable#airplane01 67,{ mes "[Équipier]"; mes "Bienvenue à bord du Dirigeable."; mes "Puis-je vous aider d'une quelconque manière ?"; next; switch (select("Utiliser le Dirigeable:Cabine du Capitaine:Installations:Annuler")) { case 1: mes "[Équipier]"; mes "Lorsque vous verrez une annonce"; mes "signalant l’arrivée à destination,"; mes "veuillez emprunter l’une des sorties"; mes "situées aux extrémités nord et sud du navire."; next; mes "[Équipier]"; mes "Si vous ratez votre arrêt, pas de panique."; mes "Le Dirigeable est en rotation constante,"; mes "vous aurez une autre chance d’y descendre."; close; case 2: mes "[Équipier]"; mes "La cabine du capitaine se trouve à l'avant du Dirigeable."; mes "Vous y rencontrerez le capitaine ainsi que le pilote."; close; case 3: mes "[Équipier]"; mes "Le Dirigeable propose différents mini-jeux"; mes "pour divertir les passagers pendant le trajet."; mes "Nous vous invitons à tester votre chance et vos talents !"; close; case 4: mes "[Équipier]"; mes "Très bien. Nous vous souhaitons un agréable voyage à bord de nos Dirigeables."; mes "Merci et bonne journée."; close; } } airplane_01,50,66,5 script Marchand de Pommes#air01 86,{ if (checkweight(1201,1) == 0) { mes "- Attendez une seconde !! -"; mes "- Vous transportez trop d’objets -"; mes "- Impossible de continuer la transaction. -"; mes "- Merci de libérer de l’espace -"; mes "- et de réessayer. -"; close; } mes "[Meltz]"; mes "Bienvenue dans la boutique de Meltz !"; mes "Vous pouvez acheter des pommes ou"; mes "les transformer en délicieux jus de pomme."; next; switch (select("Acheter des pommes.:Faire du jus de pomme.:Annuler.")) { case 1: mes "[Meltz]"; mes "Indiquez combien de pommes"; mes "vous souhaitez acheter."; mes "Chaque pomme coûte 15 zeny."; mes "Vous pouvez en acheter jusqu'à 500 à la fois."; mes "Entrez '0' pour annuler."; next; while (1) { input .@input; set .@pay, .@input * 15; if (.@input == 0) { mes "[Meltz]"; mes "Merci de votre visite."; mes "Revenez quand vous aurez faim d’une bonne pomme~"; close; } else if (.@input < 1 || .@input > 500) { mes "[Meltz]"; mes "Le montant entré dépasse la limite autorisée."; mes "Veuillez saisir un nombre entre 1 et 500."; next; } else { mes "[Meltz]"; mes "Cela fera ^FF0000" + .@input + "^000000 pommes,"; mes "soit un total de ^FF0000" + .@pay + "^000000 zeny."; mes "Souhaitez-vous procéder à l’achat ?"; next; if (select("Oui:Non") == 2) { mes "[Meltz]"; mes "Pas de souci. Revenez quand vous voulez !"; close; } break; } } if (Zeny < .@pay) { mes "[Meltz]"; mes "Vous n’avez pas assez de zeny."; mes "Réduisez la quantité ou revenez plus tard."; close; } else if (checkweight(512,.@input) == 0) { mes "[Meltz]"; mes "Hmm... Vous n’avez pas assez de place dans votre inventaire."; mes "Libérez un peu d’espace et réessayez."; close; } else { set Zeny, Zeny - .@pay; getitem 512,.@input; // Apple mes "[Meltz]"; mes "Voici vos pommes bien fraîches !"; mes "Savourez-les comme il se doit~"; close; } case 2: mes "[Meltz]"; mes "Pour chaque jus de pomme, j’ai besoin de :"; mes "^FF00003 pommes et 1 bouteille vide^000000."; mes "Souhaitez-vous continuer ?"; next; switch (select("Oui:Non")) { case 1: if (countitem(512) < 3 || countitem(713) < 1) { mes "[Meltz]"; mes "Oh non, vous n’avez pas les bons ingrédients."; mes "Il me faut 3 pommes et 1 bouteille vide."; close; } else { mes "[Meltz]"; mes "Merci, une seconde..."; next; mes "^3355FF*Broyage...*"; mes "*Bzzzz... Clac !*^000000"; next; delitem 512,3; // Apple delitem 713,1; // Empty Bottle getitem 531,1; // Apple Juice mes "[Meltz]"; mes "Et voilà ! Un jus de pomme tout frais."; mes "Revenez quand vous voulez pour en refaire."; close; } case 2: mes "[Meltz]"; mes "Très bien, à une prochaine fois."; close; } case 3: mes "[Meltz]"; mes "Merci de votre visite."; mes "Portez-vous bien et à bientôt !"; close; } } airplane_01,221,158,2 script Pilote#airplane_01 852,{ switch (rand(1,4)) { case 1: mes "[Pilote]"; mes "Longitude, 131 degrés Est."; mes "Latitude, 37 degrés Nord."; mes "Nous sommes parfaitement sur la trajectoire, Capitaine."; close; case 2: mes "[Pilote]"; mes "Hmm... la journée est bien nuageuse."; mes "C’est toujours galère de naviguer dans ce brouillard..."; mes "Bon, on va devoir renforcer les capteurs radar."; close; case 3: mes "[Pilote]"; mes "Notre capitaine est un homme exceptionnel."; mes "Il dirige ce vaisseau comme personne."; mes "Mais qu’est-ce qu’il est strict..."; next; mes "[^ff0000Tarlock^000000]"; mes "^ff0000Hey...!^000000"; mes "^ff0000Moins de bavardage,^000000"; mes "^ff0000et plus de pilotage !^000000"; next; mes "[Pilote]"; mes "O-oui Chef !"; mes "(Tu vois ce que je voulais dire ?)"; close; default: mes "[Pilote]"; mes "Cet uniforme est classe, vraiment."; mes "Mais alors, il est tellement épais..."; mes "J’étouffe dedans à longueur de journée."; next; mes "[Pilote]"; mes "..."; mes "......"; mes "Personne ne vient jamais ici."; mes "Et vu que le capitaine est un renne..."; mes "Je pourrais me mettre en caleçon sans que ça ne choque personne."; next; emotion ET_HUK; mes "[Pilote]"; mes "Ah...! Euh, salut !"; mes "T-tu profites bien du vol j’espère ?!"; close; } } airplane_01,83,61,2 script Dianne#01airplane_01 72,2,2,{ mes "[Dianne]"; mes "C’est trop bizarre !"; mes "Je suis allée voir le capitaine du dirigeable,"; mes "et tout ce que j’ai vu, c’est un drôle de renne."; mes "Tu penses que... non ? Quand même pas ?"; close; OnTouch_: emotion ET_CRY; end; } airplane_01,69,63,2 script Mendel#01airplane_01 55,{ mes "[Mendel]"; mes "Comme je le redoutais."; mes "Les repas servis à bord"; mes "sont tout juste dignes d’un trois étoiles."; next; mes "[Mendel]"; mes "*Harrrumph* J’aurais dû embarquer mon chef personnel."; mes "Au moins j’aurais mangé quelque chose de digne de ce nom."; close; } airplane_01,71,31,2 script Shimizu le Bretteur#air_01 106,{ mes "[Shimizu le Bretteur]"; mes "Enfin... après cinq longues années..."; mes "L’heure de ma vengeance approche !"; next; mes "[Shimizu le Bretteur]"; mes "Je dois juste faire attention à ne pas rater"; mes "ma station une fois de plus..."; mes "Mais bientôt, très bientôt..."; mes "La justice frappera !"; close; } //============================================================ //= Typing Challenge //============================================================ airplane_01,32,61,4 script Nils#ein 49,1,1,{ mes "[Nils]"; mes "Bienvenue dans le"; mes "^ff0000Défi de Dactylo RO^000000 !"; mes "Envie de tester"; mes "ta rapidité au clavier ?"; next; switch (select("Jouer au ^ff0000Défi de Dactylo RO^000000:Informations:Voir les records:Annuler")) { case 1: mes "[Nils]"; mes "Très bien, nous avons"; mes "un nouveau challenger !"; mes "Tape le texte suivant"; mes "le plus vite possible,"; mes "sans faire la moindre faute."; mes "C’est parti~ !"; setarray .@line1_1$[0], "^3cbcbccallipygian salacius lascivious^000000", "^3cbcbcBy the power of^000000", "^0000ffthkelfkskeldmsiejdlslehfndkelsheidl^000000", "^3cbcbcburrdingdingdingdilidingdingdingphoohudaamb^000000", "^3cbcbcCoboman no chikara-yumei na^000000", "^3cbcbcI'm the king of All Weirdos! Now^000000", "^3cbcbcYou give me no choice. I guess it's^000000"; setarray .@line1_2$[0], "^3cbcbclicentious prurient concupiscent^000000", "^3cbcbcp-po-poi-po-poi-poin-poing^000000", "^3cbcbcskemd^000000", "^3cbcbcandoorabambarambambambambamburanbamding^000000", "^3cbcbcchikara-daiookii na chikara da ze!^000000", "^3cbcbcyou know of my true power. Obey~!^000000", "^3cbcbctime for me to reveal my secret...^000000"; setarray .@line1_3$[0], "", "^3cbcbcGOD-POING. I NEVER LOSE!^000000", "", "", "^3cbcbcCOBO ON^000000", "", ""; setarray .@word1$[0], "callipygian salacius lascivious licentious prurient concupiscent", "By the power of p-po-poi-po-poi-poin-poing GOD-POING. I NEVER LOSE!", "thkelfkskeldmsiejdlslehfndkelsheidlskemd", "burrdingdingdingdilidingdingdingphoohudaambandoorabambarambambambambamburanbamding", "Coboman no chikara-yumei na chikara-daiookii na chikara da ze! COBO ON", "I'm the king of All Weirdos! Now you know of my true power. Obey~!", "You give me no choice. I guess it's time for me to reveal my secret..."; setarray .@line2_1$[0], "^3cbcbcuNflAPPaBLe LoVaBLe SeCreTs AnD^000000", "^ff1493LiGhTsPeEd RiGhT SPEed LeFT TURn^000000", "^ff1493hfjdkeldjsieldjshfjdjeiskdlefvbd^000000", "^ff1493burapaphuralanderamduanbatuhiwooi^000000", "^ff1493belief love luck grimace sweat rush^000000", "^800080opeN, Open!op3n.openOpen0p3nOpEn0pen^000000", "^3cbcbcfReeDoM ecstAcy JoUrnaliSm ArMplt^000000"; setarray .@line2_2$[0], "^3cbcbcboWLIiNg aGaINST tHe KarMA of YoUtH^000000", "^ff1493RiGhT BuRn OrIGInAL GaNgSteR SmACk^000000", "", "^ff1493kabamturubamdingding^000000", "^ff1493folktale rodimus optimus bumblebee^000000", "^800080`open'0Pen open? open!111OPENSESAME^000000", "^3cbcbcDisCoverY hEaDaChE MoonbeAmS jUsTiCE^000000"; setarray .@word2$[0], "uNflAPPaBLe LoVaBLe SeCreTs AnD boWLIiNg aGaINST tHe KarMA of YoUtH", "LiGhTsPeEd RiGhT SPEed LeFT TURn RiGhT BuRn OrIGInAL GaNgSteR SmACk", "hfjdkeldjsieldjshfjdjeiskdlefvbd", "burapaphuralanderamduanbatuhiwooikabamturubamdingding", "belief love luck grimace sweat rush folktale rodimus optimus bumblebee", "opeN, Open!op3n.openOpen0p3nOpEn0pen`open'0Pen open? open!111OPENSESAME", "fReeDoM ecstAcy JoUrnaliSm ArMplt DisCoverY hEaDaChE MoonbeAmS jUsTiCE"; setarray .@letters[0], 1300, 1250, 1180, 1380, 1740, 1440, 1450; set .@wordtest, rand(7); next; mes "[Nils]"; mes .@line1_1$[.@wordtest]; mes .@line1_2$[.@wordtest]; mes .@line1_3$[.@wordtest]; set .@start_time, gettimetick(1); next; input .@save1$; set .@end_time, gettimetick(1); set .@total_time, .@end_time - .@start_time; mes "[Nils]"; mes .@line2_1$[.@wordtest]; mes .@line2_2$[.@wordtest]; set .@start_time, gettimetick(1); next; input .@save2$; set .@end_time, gettimetick(1); set .@total_time, .@total_time + (.@start_time - .@end_time); set .@tasoo, (.@letters[.@wordtest] / ( .@total_time > 0 ? .@total_time : 1)) * 6; if ((.@save1$ == .@word1$[.@wordtest]) && (.@save2$ == .@word2$[.@wordtest])) { mes "[Nils]"; mes "Ton score : ^ff0000" + .@total_time + " secondes^000000."; mes "Nombre total de caractères : " + .@tasoo + "."; next; if (.@tasoo >= 1300) { mes "[Nils]"; mes "Hmm, ce score n’est humainement possible que si..."; mes "tu as fait un vilain copier-coller !"; mes "Allez, sois fair-play la prochaine fois."; close; } if (.@tasoo >= $050320_ein_typing) { mes "[Nils]"; mes "L'ancien record appartenait à :"; mes "^0000ff" + $050320_minus1_typing$ + "^000000 avec " + $050320_ein_typing + " caractères."; mes "Mais maintenant, c’est toi, ^ff0000" + strcharinfo(0) + "^000000 !"; mes "Félicitations, champion !"; set $050320_minus1_typing$, strcharinfo(0); set $050320_ein_typing, .@tasoo; close; } else { mes "[Nils]"; mes "Le détenteur actuel du record est :"; mes "^0000ff" + $050320_minus1_typing$ + "^000000 avec " + $050320_ein_typing + " caractères."; mes "Tu t’en es bien sorti, reviens tenter ta chance !"; close; } } else { mes "[Nils]"; mes "Ooooh non..."; mes "Tu as fait une faute de frappe."; mes "Pas de panique, tu peux réessayer~"; close; } case 2: mes "[Nils]"; mes "Le ^ff0000Défi de Dactylo RO^000000"; mes "est un jeu où tu dois taper"; mes "le texte affiché, le plus vite possible."; mes "Le meilleur joueur sera inscrit au panthéon !"; next; mes "[Nils]"; mes "Tu dois tout taper dans une seule ligne."; mes "Ne presse pas Entrée au milieu, clique juste sur 'OK'."; mes "Prêt à briller ?!"; close; case 3: mes "[Nils]"; mes "Actuellement, le record est détenu par :"; mes "^0000ff" + $050320_minus1_typing$ + "^000000 avec ^0000ff" + $050320_ein_typing + "^000000 caractères."; mes "Essaie de battre ce score légendaire !"; close; case 4: mes "[Nils]"; mes "Reviens jouer au ^ff0000Défi de Dactylo RO^000000"; mes "quand tu veux. Je t’attendrai~"; close; } } //============================================================ //= Apple Gambling //============================================================ airplane_01,33,68,4 script Clarice 74,{ mes "[Clarice]"; mes "Coucou ! Moi, c’est Clarice~"; mes "Envie de miser quelques Pommes"; mes "dans un petit jeu amical de dés ?"; next; callfunc "applegamble","Clarice"; end; } function script applegamble { .@npc_name$ = getarg(0); switch (select("Jouer au jeu de dés:Apprendre les règles:Annuler")) { case 3: mes "["+ .@npc_name$ +"]"; mes "Je suis toujours partante"; mes "pour une partie de dés !"; mes "Reviens me voir dès que"; mes "l’envie de parier te démange~"; close; case 2: mes "["+ .@npc_name$ +"]"; mes "Les règles sont simples :"; mes "tu mises des Pommes (jusqu’à 50)"; mes "et on joue aux dés."; next; mes "["+ .@npc_name$ +"]"; mes "Je n’accepte que les Pommes~"; mes "Si t’as trop de zeny, va voir Fruitz"; mes "pour te faire un stock de Pommes."; next; mes "["+ .@npc_name$ +"]"; mes "Je lance deux dés à six faces."; mes "Puis c’est ton tour de faire pareil."; mes "Ensuite, chacun peut décider de lancer un troisième dé."; next; mes "["+ .@npc_name$ +"]"; mes "Attention : si tu dépasses 12, tu perds !"; mes "Sinon, celui qui a le total le plus élevé gagne."; next; mes "["+ .@npc_name$ +"]"; mes "Tu décides d'abord si tu veux"; mes "un troisième lancer, puis ce sera mon tour."; next; mes "["+ .@npc_name$ +"]"; mes "Si tu gagnes, tu repars avec le double"; mes "de Pommes que tu as misées."; mes "Et en cas d’égalité, tu récupères ta mise."; mes "Fair-play, non ?"; close; case 1: break; } mes "["+ .@npc_name$ +"]"; mes "Héhé~ Prêt à parier ?"; mes "Combien de Pommes veux-tu miser ?"; mes "(Max : 50, entre '0' pour annuler)"; next; while(1) { input .@amount; if (.@amount == 0) { mes "["+ .@npc_name$ +"]"; mes "Tu changes d'avis ?"; mes "Pas de souci, une autre fois peut-être."; close; } else if (.@amount < 1 || .@amount > 50) { mes "["+ .@npc_name$ +"]"; mes "Pas plus de 50 Pommes, hein !"; mes "Allez, entre un nombre raisonnable."; next; continue; } mes "["+ .@npc_name$ +"]"; mes "Tu veux miser ^FF0000"+.@amount+"^000000 Pommes."; mes "C’est bien ça ?"; next; if (select("Oui:Non") == 2) { mes "["+ .@npc_name$ +"]"; mes "Pas de souci~"; mes "Réessaie avec la bonne mise."; next; continue; } if (countitem(512) <.@amount) { mes "["+ .@npc_name$ +"]"; mes "Euh... T’as pas assez de Pommes !"; mes "Tu peux pas tricher, ici c’est sérieux."; next; continue; } delitem 512,.@amount; mes "["+ .@npc_name$ +"]"; mes "Parfait ! Que les dés soient lancés~"; break; } mes "^3355FF*Lancer de dés en cours...*^000000"; next; set .@giveapple, .@amount * 2; set .@table1, rand(1,6); set .@table2, rand(1,6); set .@tablesub, .@table1 + .@table2; set .@tabletotal, .@tablesub; mes "["+ .@npc_name$ +"]"; mes "J’ai obtenu un ^0000FF" + .@table1 + "^000000 et un ^0000FF" + .@table2 + "^000000."; mes "Total : ^0000FF" + .@tablesub + "^000000."; mes "^FF0000" + strcharinfo(0) + "^000000, à toi !"; next; select("Lancer les dés !"); mes "^3355FF*Lancer de dés en cours...*^000000"; set .@player1, rand(1,6); set .@player2, rand(1,6); set .@playersub, .@player1 + .@player2; // Anti-triche anti-chance insolente if (.@playersub > 9 && .@amount > 39) { set .@player1, rand(1,6); set .@player2, rand(1,6); set .@playersub, .@player1 + .@player2; } set .@playertotal, .@playersub; next; mes "["+ .@npc_name$ +"]"; mes "^FF0000" + strcharinfo(0) + "^000000, tu as obtenu ^FF0000" + .@player1 + "^000000 et ^FF0000" + .@player2 + "^000000. Total : ^FF0000" + .@playersub + "^000000."; next; // Dialogue en fonction des scores mes "["+ .@npc_name$ +"]"; if(.@playersub == .@tablesub) mes "Égalité pour l’instant ! Tu veux relancer un dé ?"; else if (.@playersub > .@tablesub) mes "Tu gagnes actuellement~ Tu veux relancer pour assurer ?"; else mes "Aïe, tu perds pour l’instant... Un troisième dé pour tenter ta chance ?"; next; switch (select("Relancer un dé:Stop, j’assure.")) { case 1: mes "^3355FF*Suspense...*^000000"; set .@player3, rand(1,6); set .@playertotal, .@playertotal + .@player3; next; mes "["+ .@npc_name$ +"]"; if (.@playertotal > 12) { mes "Oups ! Tu fais un total de ^FF0000" + .@playertotal + "^000000."; mes "Tu dépasses 12, tu es éliminé !"; close; } else if (.@playertotal < .@tablesub) { mes "Mince, même avec ton lancer, tu restes derrière."; mes "Tu as perdu cette manche. Reviens tenter ta chance !"; close; } else if (.@playertotal == .@tablesub) { if (.@tablesub > 8) { mes "On est ex æquo... et le risque est trop grand !"; mes "On arrête là. Match nul, voici ta mise."; close2; getitem 512,.@amount; end; } mes "Très bien, à moi de lancer le troisième dé."; } else { mes "Tu as un total de ^FF0000" + .@playertotal + "^000000. Voyons ce que j’obtiens~"; } break; case 2: mes "["+ .@npc_name$ +"]"; if (.@playersub > .@tablesub) mes "Tu veux pas tenter le diable ? Ok, à moi maintenant."; else if (.@playersub == .@tablesub && .@tablesub > 8) { mes "Tu préfères ne pas prendre de risques ? D’accord, égalité."; close2; getitem 512,.@amount; end; } else { mes "Héhé, dans ce cas... j’ai gagné~"; mes "Tu retenteras ta chance plus tard !"; close; } break; } // Jet final de Clarice next; mes "^3355FF*Clarice lance son dernier dé...*^000000"; set .@table3, rand(1,6); set .@tabletotal, .@tabletotal + .@table3; next; mes "["+ .@npc_name$ +"]"; if (.@tabletotal > 12) { mes "Ah non ! J’ai explosé le score avec ^0000FF" + .@tabletotal + "^000000..."; mes "Tu remportes la partie, bravo !"; close2; getitem 512,.@giveapple; end; } else if (.@playertotal > .@tabletotal) { mes "J’ai obtenu un total de ^0000FF" + .@tabletotal + "^000000."; mes "Tu gagnes cette fois, félicitations !"; close2; getitem 512,.@giveapple; end; } else if (.@playertotal == .@tabletotal) { mes "Total égal ! Match nul, voici ta mise."; close2; getitem 512,.@amount; end; } else { mes "Ahah ! J’ai un total de ^0000FF" + .@tabletotal + "^000000."; mes "Dommage pour toi... mais tu rejoueras sûrement, hein ?"; close; } }