airships.txt 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314
  1. //===== Système de Script rAthena =======================================
  2. //= Script du Dirigeable (Airship)
  3. //===== Par : ===========================================================
  4. //= Équipe de Développement rAthena
  5. //===== Version Actuelle : ==============================================
  6. //= 1.0
  7. //===== Compatible avec : ===============================================
  8. //= Projet rAthena
  9. //===== Traduction par : ===============================================
  10. //= OverSu & Liara
  11. //===== Description : ===================================================
  12. //= Système de Dirigeable utilisé sur les serveurs officiels
  13. //===== Commentaires additionnels : =====================================
  14. //= 1.0 Première version
  15. //=======================================================================
  16. //=======================================================================
  17. //= Route intérieure du Dirigeable
  18. //= ... -> Juno -> Einbroch -> Lighthalzen -> Einbroch
  19. //= -> Juno -> Hugel -> ...
  20. //=======================================================================
  21. airplane,243,73,0 script #AirshipWarp-1 45,1,1,{
  22. end;
  23. OnInit:
  24. OnHide:
  25. specialeffect EF_BASH;
  26. disablenpc();
  27. end;
  28. OnUnhide:
  29. enablenpc();
  30. specialeffect EF_SUMMONSLAVE;
  31. end;
  32. OnTouch_:
  33. switch ($@airplanelocation) {
  34. case 0: warp "yuno",92,260; end;
  35. case 1: warp "einbroch",92,278; end;
  36. case 2: warp "lighthalzen",302,75; end;
  37. case 3: warp "hugel",181,146; end;
  38. }
  39. }
  40. airplane,243,29,0 duplicate(#AirshipWarp-1) #AirshipWarp-2 45,1,1
  41. airplane,1,1,0 script Dirigeable_Intérieur -1,{
  42. end;
  43. OnInit:
  44. initnpctimer;
  45. end;
  46. OnTimer20000:
  47. mapannounce "airplane","Direction Einbroch. Veuillez attacher vos ceintures.",bc_map,"0x00ff00";
  48. end;
  49. OnTimer50000:
  50. mapannounce "airplane","Nous approchons de Einbroch. Préparez-vous à débarquer.",bc_map,"0x00ff00";
  51. end;
  52. OnTimer60000:
  53. set $@airplanelocation,1;
  54. donpcevent "#AirshipWarp-1::OnUnhide";
  55. donpcevent "#AirshipWarp-2::OnUnhide";
  56. mapannounce "airplane","Bienvenue à Einbroch. Bon séjour parmi nous.",bc_map,"0x00ff00";
  57. end;
  58. OnTimer70000:
  59. mapannounce "airplane","Le Dirigeable est actuellement à Einbroch. Départ imminent.",bc_map,"0x00ff00";
  60. end;
  61. OnTimer80000:
  62. donpcevent "#AirshipWarp-1::OnHide";
  63. donpcevent "#AirshipWarp-2::OnHide";
  64. mapannounce "airplane","Décollage en cours. Prochaine destination : Lighthalzen.",bc_map,"0x70dbdb";
  65. end;
  66. OnTimer100000:
  67. mapannounce "airplane","Cap sur Lighthalzen. Profitez du voyage.",bc_map,"0x70dbdb";
  68. end;
  69. OnTimer130000:
  70. mapannounce "airplane","Arrivée imminente à Lighthalzen. Préparez vos affaires.",bc_map,"0x70dbdb";
  71. end;
  72. OnTimer140000:
  73. set $@airplanelocation,2;
  74. donpcevent "#AirshipWarp-1::OnUnhide";
  75. donpcevent "#AirshipWarp-2::OnUnhide";
  76. mapannounce "airplane","Bienvenue à Lighthalzen. Merci d’avoir voyagé avec nous.",bc_map,"0x70dbdb";
  77. end;
  78. OnTimer150000:
  79. mapannounce "airplane","Le Dirigeable est actuellement à Lighthalzen. Départ imminent.",bc_map,"0x70dbdb";
  80. end;
  81. OnTimer160000:
  82. donpcevent "#AirshipWarp-1::OnHide";
  83. donpcevent "#AirshipWarp-2::OnHide";
  84. mapannounce "airplane","Le Dirigeable reprend les airs. Prochaine escale : Einbroch.",bc_map,"0x00ff00";
  85. end;
  86. OnTimer180000:
  87. mapannounce "airplane","En route vers Einbroch.",bc_map,"0x00ff00";
  88. end;
  89. OnTimer210000:
  90. mapannounce "airplane","Approche de Einbroch. Veuillez rester assis jusqu’à l’arrêt complet.",bc_map,"0x00FF00";
  91. end;
  92. OnTimer220000:
  93. set $@airplanelocation,1;
  94. donpcevent "#AirshipWarp-1::OnUnhide";
  95. donpcevent "#AirshipWarp-2::OnUnhide";
  96. mapannounce "airplane","Bienvenue à Einbroch. Bon séjour.",bc_map,"0x00ff00";
  97. end;
  98. OnTimer230000:
  99. mapannounce "airplane","Nous sommes toujours à Einbroch. Le Dirigeable repart bientôt.",bc_map,"0x00ff00";
  100. end;
  101. OnTimer240000:
  102. donpcevent "#AirshipWarp-1::OnHide";
  103. donpcevent "#AirshipWarp-2::OnHide";
  104. mapannounce "airplane","Décollage en cours. Cap sur Juno.",bc_map,"0xff8200";
  105. end;
  106. OnTimer260000:
  107. mapannounce "airplane","Nous mettons le cap sur Juno.",bc_map,"0xff8200";
  108. end;
  109. OnTimer290000:
  110. mapannounce "airplane","Arrivée imminente à Juno. Merci de voyager avec nous.",bc_map,"0xff8200";
  111. end;
  112. OnTimer300000:
  113. set $@airplanelocation,0;
  114. donpcevent "#AirshipWarp-1::OnUnhide";
  115. donpcevent "#AirshipWarp-2::OnUnhide";
  116. mapannounce "airplane","Bienvenue à Juno. Que les étoiles vous accompagnent.",bc_map,"0xff8200";
  117. end;
  118. OnTimer310000:
  119. mapannounce "airplane","Nous sommes actuellement à Juno. Le départ est pour bientôt.",bc_map,"0xff8200";
  120. end;
  121. OnTimer320000:
  122. donpcevent "#AirshipWarp-1::OnHide";
  123. donpcevent "#AirshipWarp-2::OnHide";
  124. mapannounce "airplane","Décollage en cours. Prochaine escale : Hugel.",bc_map,"0xca4bf3";
  125. end;
  126. OnTimer340000:
  127. mapannounce "airplane","En route pour Hugel. Vue imprenable garantie !",bc_map,"0xca4bf3";
  128. end;
  129. OnTimer370000:
  130. mapannounce "airplane","Approche de Hugel. Merci de rester en sécurité jusqu’à l'arrêt.",bc_map,"0xca4bf3";
  131. end;
  132. OnTimer380000:
  133. set $@airplanelocation,3;
  134. donpcevent "#AirshipWarp-1::OnUnhide";
  135. donpcevent "#AirshipWarp-2::OnUnhide";
  136. mapannounce "airplane","Bienvenue à Hugel. Profitez de l’air pur !",bc_map,"0xca4bf3";
  137. end;
  138. OnTimer390000:
  139. mapannounce "airplane","Le Dirigeable est actuellement à Hugel. Départ imminent.",bc_map,"0xca4bf3";
  140. end;
  141. OnTimer400000:
  142. donpcevent "#AirshipWarp-1::OnHide";
  143. donpcevent "#AirshipWarp-2::OnHide";
  144. mapannounce "airplane","Décollage en cours. Prochaine destination : Juno.",bc_map,"0xff8200";
  145. end;
  146. OnTimer420000:
  147. mapannounce "airplane","Nous sommes en route pour Juno.",bc_map,"0xff8200";
  148. end;
  149. OnTimer450000:
  150. mapannounce "airplane","Nous arriverons bientôt à Juno. Préparez-vous à débarquer.",bc_map,"0xff8200";
  151. end;
  152. OnTimer460000:
  153. set $@airplanelocation,0;
  154. donpcevent "#AirshipWarp-1::OnUnhide";
  155. donpcevent "#AirshipWarp-2::OnUnhide";
  156. mapannounce "airplane","Bienvenue à Juno. Merci pour votre fidélité.",bc_map,"0xff8200";
  157. end;
  158. OnTimer470000:
  159. mapannounce "airplane","Dirigeable à l’arrêt. Dernière escale avant le prochain départ.",bc_map,"0xff8200";
  160. end;
  161. OnTimer480000:
  162. donpcevent "#AirshipWarp-1::OnHide";
  163. donpcevent "#AirshipWarp-2::OnHide";
  164. mapannounce "airplane","Redécollage. En route vers Einbroch.",bc_map,"0x00ff00";
  165. stopnpctimer;
  166. initnpctimer;
  167. }
  168. airplane,240,64,5 script Sortie#dirigeable1a::SortieDirigeable 857,{
  169. end;
  170. }
  171. airplane,247,64,5 duplicate(SortieDirigeable) Sortie#dirigeable1b 857
  172. airplane,240,40,1 duplicate(SortieDirigeable) Sortie#dirigeable2a 857
  173. airplane,247,40,1 duplicate(SortieDirigeable) Sortie#dirigeable2b 857
  174. airplane,100,69,3 script Équipage Dirigeable#ein-1 852,{
  175. mes "[Membre d'Équipage]";
  176. mes "Si nous avons atteint votre destination,";
  177. mes "et que vous souhaitez débarquer,";
  178. mes "veuillez utiliser l’escalier juste devant vous.";
  179. mes "Merci d’avoir volé avec nous.";
  180. close;
  181. }
  182. airplane,64,94,1 script Enfant d'Umbala#ein_p 787,{
  183. emotion ET_PROFUSELY_SWEAT;
  184. mes "[Gamin]";
  185. if (event_umbala >= 3) {
  186. mes "Wouah, maman !";
  187. mes "R-regarde ça !";
  188. mes "On vole ! On... on est...";
  189. mes "On est carrément dans le ciel !";
  190. } else {
  191. mes "Makumalagu !";
  192. mes "Saampa joojimbo";
  193. mes "kaku na jedi Solo.";
  194. mes "Bwahahahahahahaah !";
  195. }
  196. close;
  197. }
  198. airplane,66,93,3 script Dame d'Umbala#ein_p 783,{
  199. emotion ET_THINK;
  200. mes "[Dame]";
  201. if (event_umbala >= 3) {
  202. mes "Chut...";
  203. mes "Mon cœur, tiens-toi bien~";
  204. mes "On ne s’extasie pas autant";
  205. mes "dans un lieu public comme celui-ci !";
  206. } else {
  207. mes "Chooktu !";
  208. mes "Sacraup matii !";
  209. mes "Shaka gurftalfi";
  210. mes "huntiki manjoo !";
  211. }
  212. close;
  213. }
  214. airplane,71,91,7 script Homme d'Umbala#ein_p 789,{
  215. if (event_umbala >= 3) {
  216. mes "[Chrmlim]";
  217. mes "Tiens donc~";
  218. mes "À voir ta tête,";
  219. mes "je sens que tu peux me comprendre.";
  220. mes "^333333*Pfouuu... !*^000000";
  221. next;
  222. emotion ET_HNG;
  223. mes "[Chrmlim]";
  224. mes "Je file un coup de main au projet Dirigeable,";
  225. mes "en envoyant l’équipage s'entraîner à Umbala.";
  226. mes "Ils y affrontent leur peur du vide à coups de...";
  227. mes "...sauts à l’élastique. Sympa, hein ?";
  228. next;
  229. mes "[Chrmlim]";
  230. mes "Mais...";
  231. mes "Certains n'ont jamais pu vaincre";
  232. mes "leur vertige. Y'en a même quelques-uns qui ont fini...";
  233. mes "...^333333à Niflheim^000000. Voilà.";
  234. } else {
  235. mes "[Chrmlim]";
  236. mes "Bajoo ga";
  237. mes "nukta Airship.";
  238. next;
  239. mes "[Chrmlim]";
  240. mes "...";
  241. mes "......";
  242. next;
  243. emotion ET_HNG;
  244. mes "[Chrmlim]";
  245. mes "Shabala moow bajama";
  246. mes "Airship kulaha googoona ";
  247. mes "salu. Dama, kookoo na nu";
  248. mes "yukuta. Um, fashuku na ret !";
  249. }
  250. close;
  251. }
  252. airplane,250,58,2 script Personnel Dirigeable#airplane 67,{
  253. // Quête Hugel
  254. if (hg_ma1 == 3) {
  255. mes "[Équipage]";
  256. mes "Bienvenue à bord.";
  257. mes "Comment puis-je vous aider ?";
  258. next;
  259. select("Cherchez-vous un passager nommé Thierry ?");
  260. mes "[Équipage]";
  261. mes "Je suis désolé, mais je ne pense pas que nous ayons un passager de ce nom.";
  262. close;
  263. }
  264. // Fin quête Hugel
  265. mes "[Équipage]";
  266. mes "Bienvenue à bord du Dirigeable.";
  267. mes "Comment puis-je vous assister ?";
  268. next;
  269. switch (select("Utiliser le Dirigeable:Cabine du Capitaine:Installations:Annuler")) {
  270. case 1:
  271. mes "[Équipage]";
  272. mes "Lorsque vous entendez une annonce";
  273. mes "signalant notre arrivée à votre destination,";
  274. mes "veuillez emprunter l'une des sorties";
  275. mes "au nord ou au sud du Dirigeable.";
  276. next;
  277. mes "[Équipage]";
  278. mes "Si vous ratez votre arrêt, pas de panique.";
  279. mes "Le Dirigeable est en service continu,";
  280. mes "vous aurez une autre chance de descendre.";
  281. close;
  282. case 2:
  283. mes "[Équipage]";
  284. mes "La Cabine du Capitaine se trouve à l’avant.";
  285. mes "Vous pouvez y rencontrer le capitaine";
  286. mes "et le pilote du Dirigeable.";
  287. close;
  288. case 3:
  289. mes "[Équipage]";
  290. mes "Nous proposons divers mini-jeux";
  291. mes "pour divertir nos passagers.";
  292. mes "Tentez votre chance et";
  293. mes "montrez vos talents~";
  294. close;
  295. case 4:
  296. mes "[Équipage]";
  297. mes "Très bien.";
  298. mes "Nous vous souhaitons un agréable vol.";
  299. mes "Merci, et bonne journée !";
  300. close;
  301. }
  302. }
  303. airplane,80,71,2 script Zerta#01airplane 834,{
  304. mes "[Zerta]";
  305. mes "Oh, bonjour aventurier.";
  306. mes "Je suis actuellement";
  307. mes "en pèlerinage sacré,";
  308. mes "priant pour la paix sur";
  309. mes "le continent de Midgard.";
  310. close;
  311. }
  312. airplane,65,63,4 script Maelin#01airplane 714,{
  313. mes "[Maelin]";
  314. mes "Heu... ce Dirigeable va bien à Lutie, pas vrai ?";
  315. mes "J’attends depuis si longtemps,";
  316. mes "mais je n’ai entendu aucune annonce à ce sujet...";
  317. close;
  318. }
  319. airplane,72,34,6 script Aanos#01airplane 702,{
  320. mes "[Aanos]";
  321. mes "Waaah~";
  322. mes "Le ciel est tellement";
  323. mes "différent vu d'ici...";
  324. mes "C'est magnifique !";
  325. close;
  326. }
  327. airplane,221,158,2 script Pilote#airplane 852,{
  328. // Quête Hugel
  329. if (hg_ma1 == 3) {
  330. mes "[Pilote]";
  331. mes "Par les dieux, j'aimerais pouvoir";
  332. mes "boire une bonne bière fraîche...";
  333. mes "L’alcool, c’est ma vocation ! Il me donne de l'énergie !";
  334. mes "Sans lui, je suis qu’un ballon vide.";
  335. next;
  336. mes "[Pilote]";
  337. mes "Mais ! Conduire sous influence, c’est mal.";
  338. mes "Et pourtant, ça me donne encore plus envie de boire !";
  339. emotion ET_CRY;
  340. next;
  341. select("Connaissez-vous un passager nommé Thierry ?");
  342. mes "[Pilote]";
  343. mes "Cet uniforme a du style, vraiment.";
  344. mes "Mais il est beaucoup trop chaud";
  345. mes "pour être porté à bord.";
  346. next;
  347. mes "[Pilote]";
  348. mes "...";
  349. mes "......";
  350. mes "Personne ne vient jamais ici.";
  351. mes "Et puis le capitaine... c’est un renne.";
  352. mes "Je pourrais me balader en caleçon que personne ne dirait rien.";
  353. next;
  354. emotion ET_HUK;
  355. mes "[Pilote]";
  356. mes "Héééé !? Qui va là !?";
  357. next;
  358. mes "- ...Il ne vous écoute absolument pas. -";
  359. close;
  360. }
  361. // Fin quête Hugel
  362. switch (rand(1,4)) {
  363. case 1:
  364. mes "[Pilote]";
  365. mes "Pfiou... ça fait siii longtemps que j’ai pas savouré";
  366. mes "une bonne vieille bière bien fraîche.";
  367. mes "Mais faut rester sobre quand on pilote !";
  368. next;
  369. mes "[Pilote]";
  370. mes "Boire avec modération, toujours !";
  371. mes "Cela dit, je me souviens même plus";
  372. mes "de ma dernière vraie pause...";
  373. mes "Un peu de bière, des chips, un bon film...";
  374. mes "Voilà ce qu’il me faut. Et une sieste.";
  375. emotion ET_CRY;
  376. close;
  377. case 2:
  378. mes "[Pilote]";
  379. mes "Le temps est magnifique aujourd’hui.";
  380. mes "Un ciel dégagé, une bonne visibilité...";
  381. mes "Le bonheur pour voler tranquille.";
  382. close;
  383. case 3:
  384. mes "[Pilote]";
  385. mes "Tu sais, notre capitaine est un gars bien.";
  386. mes "Lui et son frère sont réputés dans l’aéronautique.";
  387. mes "Et ouais, les rennes font d’excellents capitaines.";
  388. next;
  389. mes "[Pilote]";
  390. mes "Entre nous... Santa avait compris le truc.";
  391. mes "Des rennes, des lutins, de la magie...";
  392. mes "Ce gars était un visionnaire !";
  393. close;
  394. default:
  395. mes "[Pilote]";
  396. mes "Piloter un engin volant,";
  397. mes "c’est encore tout récent pour moi.";
  398. mes "Ils ont mis le système en place à toute vitesse.";
  399. next;
  400. emotion ET_HUK;
  401. mes "[Pilote]";
  402. mes "Mais ils étaient sérieux, vraiment prévoyants.";
  403. mes "On a même été formés avant que les dirigeables soient terminés.";
  404. mes "Fou, non ?!";
  405. close;
  406. }
  407. }
  408. airplane,50,66,5 script Marchand de Pommes#airplane 86,{
  409. mes "[Fruitz]";
  410. mes "Bienvenue chez Fruitz,";
  411. mes "la boutique où l’on vend";
  412. mes "des Pommes et où l’on peut les";
  413. mes "presser pour en faire du Jus de Pomme !";
  414. next;
  415. switch (select("Acheter des Pommes.:Faire du Jus de Pomme.:Pourquoi es-tu ici ? :Annuler.")) {
  416. case 1:
  417. mes "[Fruitz]";
  418. mes "Combien de Pommes veux-tu acheter ?";
  419. mes "Chaque Pomme coûte 15 zeny.";
  420. mes "Tu peux en acheter jusqu’à 500 à la fois.";
  421. mes "Tape '0' pour annuler la commande.";
  422. next;
  423. while (1) {
  424. input .@input;
  425. set .@pay, .@input * 15;
  426. if (.@input == 0) {
  427. mes "[Fruitz]";
  428. mes "Merci d’être passé.";
  429. mes "Reviens quand tu veux grignoter une bonne Pomme~";
  430. close;
  431. } else if (.@input < 1 || .@input > 500) {
  432. mes "[Fruitz]";
  433. mes "Oups, ce nombre dépasse la limite.";
  434. mes "Recommence avec un chiffre entre 1 et 500.";
  435. next;
  436. } else {
  437. mes "[Fruitz]";
  438. mes "Alors, ^FF0000" + .@input + "^000000 Pommes";
  439. mes "ça fera ^FF0000" + .@pay + "^000000 zeny.";
  440. mes "Tu veux confirmer ?";
  441. next;
  442. if (select("Oui:Non") == 2) {
  443. mes "[Fruitz]";
  444. mes "Pas de souci, à une prochaine fringale !";
  445. close;
  446. }
  447. break;
  448. }
  449. }
  450. if (Zeny < .@pay) {
  451. mes "[Fruitz]";
  452. mes "Tu n’as pas assez de zeny.";
  453. mes "Vérifie ta bourse ou achète-en moins.";
  454. close;
  455. } else if (checkweight(512, .@input) == 0) {
  456. mes "[Fruitz]";
  457. mes "Tu es trop chargé.";
  458. mes "Fais un peu de place dans ton inventaire.";
  459. close;
  460. } else {
  461. set Zeny, Zeny - .@pay;
  462. getitem 512, .@input; // Pomme
  463. mes "[Fruitz]";
  464. mes "Merci de ton achat~";
  465. mes "Savoure bien ces délicieuses Pommes !";
  466. close;
  467. }
  468. case 2:
  469. mes "[Fruitz]";
  470. mes "Il me faut ^FF00003 Pommes et 1 Bouteille Vide^000000";
  471. mes "pour faire un Jus de Pomme.";
  472. mes "Tu veux procéder ?";
  473. next;
  474. switch (select("Oui:Non")) {
  475. case 1:
  476. if (countitem(512) < 3 || countitem(713) < 1) {
  477. mes "[Fruitz]";
  478. mes "Pas assez d’ingrédients.";
  479. mes "3 Pommes et une Bouteille Vide, c’est la recette !";
  480. close;
  481. } else {
  482. mes "[Fruitz]";
  483. mes "Parfait, prépare-toi...";
  484. next;
  485. mes "^3355FF*Bruit de broyage intensif*^000000";
  486. mes "*Crac* *Sblourp* *Clang !*";
  487. next;
  488. delitem 512, 3;
  489. delitem 713, 1;
  490. getitem 531, 1;
  491. mes "[Fruitz]";
  492. mes "Voilà ton Jus de Pomme !";
  493. mes "Reviens quand tu veux, aventurier ~";
  494. close;
  495. }
  496. case 2:
  497. mes "[Fruitz]";
  498. mes "Pas de problème.";
  499. mes "Tu reviendras quand la soif t’appellera !";
  500. close;
  501. }
  502. case 3:
  503. mes "[Fruitz]";
  504. mes "À l’origine, j’étais un vagabond.";
  505. mes "Un jour, en dormant sous un pommier,";
  506. mes "une pomme m’est tombée dessus.";
  507. next;
  508. mes "[Fruitz]";
  509. mes "J’allais la manger... mourant de faim.";
  510. mes "Mais un ancien camarade, Kain, m’a trouvé.";
  511. mes "Il m’a recruté comme aide sur le dirigeable.";
  512. next;
  513. mes "[Fruitz]";
  514. mes "C’est là que j’ai découvert le jeu de dés.";
  515. mes "J’ai parié ma pomme... et j’ai gagné.";
  516. mes "Puis deux pommes, puis quatre...";
  517. next;
  518. mes "[Fruitz]";
  519. mes "Et me voilà maintenant,";
  520. mes "roi du marché de la Pomme !";
  521. mes "Alors crois-moi, les pommes, c’est du sérieux.";
  522. mes "Hahahaha !";
  523. close;
  524. case 4:
  525. mes "[Fruitz]";
  526. mes "Merci d’avoir visité ma boutique.";
  527. mes "Bon voyage et à bientôt !";
  528. close;
  529. }
  530. }
  531. //============================================================
  532. //= International Airship Route
  533. //= ... -> Izlude -> Juno -> Rachel -> ...
  534. //============================================================
  535. airplane_01,243,73,0 script #AirshipWarp-3 45,1,1,{
  536. end;
  537. OnTouch_:
  538. switch ($@airplanelocation2) {
  539. case 0: warp "ra_fild12",292,204; end;
  540. case 1:
  541. if(checkre(0))
  542. warp "izlude",200,73;
  543. else
  544. warp "izlude",200,56;
  545. end;
  546. case 2: warp "yuno",12,261; end;
  547. }
  548. OnInit:
  549. OnHide:
  550. specialeffect EF_BASH;
  551. disablenpc();
  552. end;
  553. OnUnhide:
  554. enablenpc();
  555. specialeffect EF_SUMMONSLAVE;
  556. end;
  557. }
  558. airplane_01,243,29,0 duplicate(#AirshipWarp-3) #AirshipWarp-4 45,1,1
  559. airplane_01,1,1,0 script Dirigeable_International -1,{
  560. end;
  561. OnInit:
  562. OnEnable:
  563. initnpctimer;
  564. end;
  565. OnTimer25000:
  566. mapannounce "airplane_01","Nous mettons le cap sur Izlude.",bc_map,"0x00ff00";
  567. end;
  568. OnTimer50000:
  569. mapannounce "airplane_01","Nous approchons de la ville portuaire d'Izlude.",bc_map,"0x00ff00";
  570. end;
  571. OnTimer60000:
  572. set $@airplanelocation2,1;
  573. donpcevent "#AirshipWarp-3::OnUnhide";
  574. donpcevent "#AirshipWarp-4::OnUnhide";
  575. mapannounce "airplane_01","Bienvenue à Izlude. Nous vous souhaitons un agréable séjour.",bc_map,"0x00ff00";
  576. end;
  577. OnTimer70000:
  578. mapannounce "airplane_01","Nous sommes actuellement à Izlude. Le dirigeable va bientôt redécoller.",bc_map,"0x00ff00";
  579. end;
  580. OnTimer80000:
  581. donpcevent "#AirshipWarp-3::OnHide";
  582. donpcevent "#AirshipWarp-4::OnHide";
  583. mapannounce "airplane_01","Le dirigeable quitte Izlude. Prochaine destination : Juno.",bc_map,"0x70dbdb";
  584. end;
  585. OnTimer105000:
  586. mapannounce "airplane_01","Nous survolons actuellement les terres de Midgard en direction de Juno.",bc_map,"0x70dbdb";
  587. end;
  588. OnTimer130000:
  589. mapannounce "airplane_01","Nous approchons de Juno. Merci de vous préparer au débarquement.",bc_map,"0x70dbdb";
  590. end;
  591. OnTimer140000:
  592. set $@airplanelocation2,2;
  593. donpcevent "#AirshipWarp-3::OnUnhide";
  594. donpcevent "#AirshipWarp-4::OnUnhide";
  595. mapannounce "airplane_01","Bienvenue à Juno, la cité suspendue. Bon séjour parmi nous.",bc_map,"0x70dbdb";
  596. end;
  597. OnTimer150000:
  598. mapannounce "airplane_01","Le dirigeable est à quai à Juno. Il repartira dans quelques instants.",bc_map,"0x70dbdb";
  599. end;
  600. OnTimer160000:
  601. donpcevent "#AirshipWarp-3::OnHide";
  602. donpcevent "#AirshipWarp-4::OnHide";
  603. mapannounce "airplane_01","Le dirigeable s’élève à nouveau. Prochaine escale : Rachel.",bc_map,"0xFF8200";
  604. end;
  605. OnTimer185000:
  606. mapannounce "airplane_01","Cap sur Rachel, la ville sainte.",bc_map,"0xFF8200";
  607. end;
  608. OnTimer210000:
  609. mapannounce "airplane_01","Nous serons bientôt à Rachel. Merci de rester assis jusqu'à l'arrêt complet.",bc_map,"0xFF8200";
  610. end;
  611. OnTimer220000:
  612. set $@airplanelocation2,0;
  613. donpcevent "#AirshipWarp-3::OnUnhide";
  614. donpcevent "#AirshipWarp-4::OnUnhide";
  615. mapannounce "airplane_01","Bienvenue à Rachel. Que la bénédiction des étoiles vous accompagne.",bc_map,"0xFF8200";
  616. end;
  617. OnTimer230000:
  618. mapannounce "airplane_01","Nous sommes à Rachel. Le dirigeable redécollera dans quelques instants.",bc_map,"0xFF8200";
  619. end;
  620. OnTimer240000:
  621. donpcevent "#AirshipWarp-3::OnHide";
  622. donpcevent "#AirshipWarp-4::OnHide";
  623. mapannounce "airplane_01","Le dirigeable reprend son envol. Retour vers Izlude en cours.",bc_map,"0x00ff00";
  624. stopnpctimer;
  625. set .moninv, .moninv + 1;
  626. if (.moninv == 7) {
  627. if (rand(1,3) == 3) {
  628. donpcevent "Airship#airplane02::OnEnable";
  629. end;
  630. }
  631. set .moninv, 0;
  632. }
  633. initnpctimer;
  634. end;
  635. }
  636. airplane_01,240,64,5 script Exit#airplane_011a::ExitAirplane01 857,{
  637. end;
  638. }
  639. airplane_01,247,64,5 duplicate(ExitAirplane01) Exit#airplane_011b 857
  640. airplane_01,240,40,1 duplicate(ExitAirplane01) Exit#airplane_012a 857
  641. airplane_01,247,40,1 duplicate(ExitAirplane01) Exit#airplane_012b 857
  642. airplane_01,250,58,2 script Équipage du Dirigeable#airplane01 67,{
  643. mes "[Équipier]";
  644. mes "Bienvenue à bord du Dirigeable.";
  645. mes "Puis-je vous aider d'une quelconque manière ?";
  646. next;
  647. switch (select("Utiliser le Dirigeable:Cabine du Capitaine:Installations:Annuler")) {
  648. case 1:
  649. mes "[Équipier]";
  650. mes "Lorsque vous verrez une annonce";
  651. mes "signalant l’arrivée à destination,";
  652. mes "veuillez emprunter l’une des sorties";
  653. mes "situées aux extrémités nord et sud du navire.";
  654. next;
  655. mes "[Équipier]";
  656. mes "Si vous ratez votre arrêt, pas de panique.";
  657. mes "Le Dirigeable est en rotation constante,";
  658. mes "vous aurez une autre chance d’y descendre.";
  659. close;
  660. case 2:
  661. mes "[Équipier]";
  662. mes "La cabine du capitaine se trouve à l'avant du Dirigeable.";
  663. mes "Vous y rencontrerez le capitaine ainsi que le pilote.";
  664. close;
  665. case 3:
  666. mes "[Équipier]";
  667. mes "Le Dirigeable propose différents mini-jeux";
  668. mes "pour divertir les passagers pendant le trajet.";
  669. mes "Nous vous invitons à tester votre chance et vos talents !";
  670. close;
  671. case 4:
  672. mes "[Équipier]";
  673. mes "Très bien. Nous vous souhaitons un agréable voyage à bord de nos Dirigeables.";
  674. mes "Merci et bonne journée.";
  675. close;
  676. }
  677. }
  678. airplane_01,50,66,5 script Marchand de Pommes#air01 86,{
  679. if (checkweight(1201,1) == 0) {
  680. mes "- Attendez une seconde !! -";
  681. mes "- Vous transportez trop d’objets -";
  682. mes "- Impossible de continuer la transaction. -";
  683. mes "- Merci de libérer de l’espace -";
  684. mes "- et de réessayer. -";
  685. close;
  686. }
  687. mes "[Meltz]";
  688. mes "Bienvenue dans la boutique de Meltz !";
  689. mes "Vous pouvez acheter des pommes ou";
  690. mes "les transformer en délicieux jus de pomme.";
  691. next;
  692. switch (select("Acheter des pommes.:Faire du jus de pomme.:Annuler.")) {
  693. case 1:
  694. mes "[Meltz]";
  695. mes "Indiquez combien de pommes";
  696. mes "vous souhaitez acheter.";
  697. mes "Chaque pomme coûte 15 zeny.";
  698. mes "Vous pouvez en acheter jusqu'à 500 à la fois.";
  699. mes "Entrez '0' pour annuler.";
  700. next;
  701. while (1) {
  702. input .@input;
  703. set .@pay, .@input * 15;
  704. if (.@input == 0) {
  705. mes "[Meltz]";
  706. mes "Merci de votre visite.";
  707. mes "Revenez quand vous aurez faim d’une bonne pomme~";
  708. close;
  709. }
  710. else if (.@input < 1 || .@input > 500) {
  711. mes "[Meltz]";
  712. mes "Le montant entré dépasse la limite autorisée.";
  713. mes "Veuillez saisir un nombre entre 1 et 500.";
  714. next;
  715. }
  716. else {
  717. mes "[Meltz]";
  718. mes "Cela fera ^FF0000" + .@input + "^000000 pommes,";
  719. mes "soit un total de ^FF0000" + .@pay + "^000000 zeny.";
  720. mes "Souhaitez-vous procéder à l’achat ?";
  721. next;
  722. if (select("Oui:Non") == 2) {
  723. mes "[Meltz]";
  724. mes "Pas de souci. Revenez quand vous voulez !";
  725. close;
  726. }
  727. break;
  728. }
  729. }
  730. if (Zeny < .@pay) {
  731. mes "[Meltz]";
  732. mes "Vous n’avez pas assez de zeny.";
  733. mes "Réduisez la quantité ou revenez plus tard.";
  734. close;
  735. }
  736. else if (checkweight(512,.@input) == 0) {
  737. mes "[Meltz]";
  738. mes "Hmm... Vous n’avez pas assez de place dans votre inventaire.";
  739. mes "Libérez un peu d’espace et réessayez.";
  740. close;
  741. }
  742. else {
  743. set Zeny, Zeny - .@pay;
  744. getitem 512,.@input; // Apple
  745. mes "[Meltz]";
  746. mes "Voici vos pommes bien fraîches !";
  747. mes "Savourez-les comme il se doit~";
  748. close;
  749. }
  750. case 2:
  751. mes "[Meltz]";
  752. mes "Pour chaque jus de pomme, j’ai besoin de :";
  753. mes "^FF00003 pommes et 1 bouteille vide^000000.";
  754. mes "Souhaitez-vous continuer ?";
  755. next;
  756. switch (select("Oui:Non")) {
  757. case 1:
  758. if (countitem(512) < 3 || countitem(713) < 1) {
  759. mes "[Meltz]";
  760. mes "Oh non, vous n’avez pas les bons ingrédients.";
  761. mes "Il me faut 3 pommes et 1 bouteille vide.";
  762. close;
  763. }
  764. else {
  765. mes "[Meltz]";
  766. mes "Merci, une seconde...";
  767. next;
  768. mes "^3355FF*Broyage...*";
  769. mes "*Bzzzz... Clac !*^000000";
  770. next;
  771. delitem 512,3; // Apple
  772. delitem 713,1; // Empty Bottle
  773. getitem 531,1; // Apple Juice
  774. mes "[Meltz]";
  775. mes "Et voilà ! Un jus de pomme tout frais.";
  776. mes "Revenez quand vous voulez pour en refaire.";
  777. close;
  778. }
  779. case 2:
  780. mes "[Meltz]";
  781. mes "Très bien, à une prochaine fois.";
  782. close;
  783. }
  784. case 3:
  785. mes "[Meltz]";
  786. mes "Merci de votre visite.";
  787. mes "Portez-vous bien et à bientôt !";
  788. close;
  789. }
  790. }
  791. airplane_01,221,158,2 script Pilote#airplane_01 852,{
  792. switch (rand(1,4)) {
  793. case 1:
  794. mes "[Pilote]";
  795. mes "Longitude, 131 degrés Est.";
  796. mes "Latitude, 37 degrés Nord.";
  797. mes "Nous sommes parfaitement sur la trajectoire, Capitaine.";
  798. close;
  799. case 2:
  800. mes "[Pilote]";
  801. mes "Hmm... la journée est bien nuageuse.";
  802. mes "C’est toujours galère de naviguer dans ce brouillard...";
  803. mes "Bon, on va devoir renforcer les capteurs radar.";
  804. close;
  805. case 3:
  806. mes "[Pilote]";
  807. mes "Notre capitaine est un homme exceptionnel.";
  808. mes "Il dirige ce vaisseau comme personne.";
  809. mes "Mais qu’est-ce qu’il est strict...";
  810. next;
  811. mes "[^ff0000Tarlock^000000]";
  812. mes "^ff0000Hey...!^000000";
  813. mes "^ff0000Moins de bavardage,^000000";
  814. mes "^ff0000et plus de pilotage !^000000";
  815. next;
  816. mes "[Pilote]";
  817. mes "O-oui Chef !";
  818. mes "(Tu vois ce que je voulais dire ?)";
  819. close;
  820. default:
  821. mes "[Pilote]";
  822. mes "Cet uniforme est classe, vraiment.";
  823. mes "Mais alors, il est tellement épais...";
  824. mes "J’étouffe dedans à longueur de journée.";
  825. next;
  826. mes "[Pilote]";
  827. mes "...";
  828. mes "......";
  829. mes "Personne ne vient jamais ici.";
  830. mes "Et vu que le capitaine est un renne...";
  831. mes "Je pourrais me mettre en caleçon sans que ça ne choque personne.";
  832. next;
  833. emotion ET_HUK;
  834. mes "[Pilote]";
  835. mes "Ah...! Euh, salut !";
  836. mes "T-tu profites bien du vol j’espère ?!";
  837. close;
  838. }
  839. }
  840. airplane_01,83,61,2 script Dianne#01airplane_01 72,2,2,{
  841. mes "[Dianne]";
  842. mes "C’est trop bizarre !";
  843. mes "Je suis allée voir le capitaine du dirigeable,";
  844. mes "et tout ce que j’ai vu, c’est un drôle de renne.";
  845. mes "Tu penses que... non ? Quand même pas ?";
  846. close;
  847. OnTouch_:
  848. emotion ET_CRY;
  849. end;
  850. }
  851. airplane_01,69,63,2 script Mendel#01airplane_01 55,{
  852. mes "[Mendel]";
  853. mes "Comme je le redoutais.";
  854. mes "Les repas servis à bord";
  855. mes "sont tout juste dignes d’un trois étoiles.";
  856. next;
  857. mes "[Mendel]";
  858. mes "*Harrrumph* J’aurais dû embarquer mon chef personnel.";
  859. mes "Au moins j’aurais mangé quelque chose de digne de ce nom.";
  860. close;
  861. }
  862. airplane_01,71,31,2 script Shimizu le Bretteur#air_01 106,{
  863. mes "[Shimizu le Bretteur]";
  864. mes "Enfin... après cinq longues années...";
  865. mes "L’heure de ma vengeance approche !";
  866. next;
  867. mes "[Shimizu le Bretteur]";
  868. mes "Je dois juste faire attention à ne pas rater";
  869. mes "ma station une fois de plus...";
  870. mes "Mais bientôt, très bientôt...";
  871. mes "La justice frappera !";
  872. close;
  873. }
  874. //============================================================
  875. //= Typing Challenge
  876. //============================================================
  877. airplane_01,32,61,4 script Nils#ein 49,1,1,{
  878. mes "[Nils]";
  879. mes "Bienvenue dans le";
  880. mes "^ff0000Défi de Dactylo RO^000000 !";
  881. mes "Envie de tester";
  882. mes "ta rapidité au clavier ?";
  883. next;
  884. switch (select("Jouer au ^ff0000Défi de Dactylo RO^000000:Informations:Voir les records:Annuler")) {
  885. case 1:
  886. mes "[Nils]";
  887. mes "Très bien, nous avons";
  888. mes "un nouveau challenger !";
  889. mes "Tape le texte suivant";
  890. mes "le plus vite possible,";
  891. mes "sans faire la moindre faute.";
  892. mes "C’est parti~ !";
  893. setarray .@line1_1$[0], "^3cbcbccallipygian salacius lascivious^000000",
  894. "^3cbcbcBy the power of^000000",
  895. "^0000ffthkelfkskeldmsiejdlslehfndkelsheidl^000000",
  896. "^3cbcbcburrdingdingdingdilidingdingdingphoohudaamb^000000",
  897. "^3cbcbcCoboman no chikara-yumei na^000000",
  898. "^3cbcbcI'm the king of All Weirdos! Now^000000",
  899. "^3cbcbcYou give me no choice. I guess it's^000000";
  900. setarray .@line1_2$[0], "^3cbcbclicentious prurient concupiscent^000000",
  901. "^3cbcbcp-po-poi-po-poi-poin-poing^000000",
  902. "^3cbcbcskemd^000000",
  903. "^3cbcbcandoorabambarambambambambamburanbamding^000000",
  904. "^3cbcbcchikara-daiookii na chikara da ze!^000000",
  905. "^3cbcbcyou know of my true power. Obey~!^000000",
  906. "^3cbcbctime for me to reveal my secret...^000000";
  907. setarray .@line1_3$[0], "",
  908. "^3cbcbcGOD-POING. I NEVER LOSE!^000000",
  909. "",
  910. "",
  911. "^3cbcbcCOBO ON^000000",
  912. "",
  913. "";
  914. setarray .@word1$[0], "callipygian salacius lascivious licentious prurient concupiscent",
  915. "By the power of p-po-poi-po-poi-poin-poing GOD-POING. I NEVER LOSE!",
  916. "thkelfkskeldmsiejdlslehfndkelsheidlskemd",
  917. "burrdingdingdingdilidingdingdingphoohudaambandoorabambarambambambambamburanbamding",
  918. "Coboman no chikara-yumei na chikara-daiookii na chikara da ze! COBO ON",
  919. "I'm the king of All Weirdos! Now you know of my true power. Obey~!",
  920. "You give me no choice. I guess it's time for me to reveal my secret...";
  921. setarray .@line2_1$[0], "^3cbcbcuNflAPPaBLe LoVaBLe SeCreTs AnD^000000",
  922. "^ff1493LiGhTsPeEd RiGhT SPEed LeFT TURn^000000",
  923. "^ff1493hfjdkeldjsieldjshfjdjeiskdlefvbd^000000",
  924. "^ff1493burapaphuralanderamduanbatuhiwooi^000000",
  925. "^ff1493belief love luck grimace sweat rush^000000",
  926. "^800080opeN, Open!op3n.openOpen0p3nOpEn0pen^000000",
  927. "^3cbcbcfReeDoM ecstAcy JoUrnaliSm ArMplt^000000";
  928. setarray .@line2_2$[0], "^3cbcbcboWLIiNg aGaINST tHe KarMA of YoUtH^000000",
  929. "^ff1493RiGhT BuRn OrIGInAL GaNgSteR SmACk^000000",
  930. "",
  931. "^ff1493kabamturubamdingding^000000",
  932. "^ff1493folktale rodimus optimus bumblebee^000000",
  933. "^800080`open'0Pen open? open!111OPENSESAME^000000",
  934. "^3cbcbcDisCoverY hEaDaChE MoonbeAmS jUsTiCE^000000";
  935. setarray .@word2$[0], "uNflAPPaBLe LoVaBLe SeCreTs AnD boWLIiNg aGaINST tHe KarMA of YoUtH",
  936. "LiGhTsPeEd RiGhT SPEed LeFT TURn RiGhT BuRn OrIGInAL GaNgSteR SmACk",
  937. "hfjdkeldjsieldjshfjdjeiskdlefvbd",
  938. "burapaphuralanderamduanbatuhiwooikabamturubamdingding",
  939. "belief love luck grimace sweat rush folktale rodimus optimus bumblebee",
  940. "opeN, Open!op3n.openOpen0p3nOpEn0pen`open'0Pen open? open!111OPENSESAME",
  941. "fReeDoM ecstAcy JoUrnaliSm ArMplt DisCoverY hEaDaChE MoonbeAmS jUsTiCE";
  942. setarray .@letters[0], 1300,
  943. 1250,
  944. 1180,
  945. 1380,
  946. 1740,
  947. 1440,
  948. 1450;
  949. set .@wordtest, rand(7);
  950. next;
  951. mes "[Nils]";
  952. mes .@line1_1$[.@wordtest];
  953. mes .@line1_2$[.@wordtest];
  954. mes .@line1_3$[.@wordtest];
  955. set .@start_time, gettimetick(1);
  956. next;
  957. input .@save1$;
  958. set .@end_time, gettimetick(1);
  959. set .@total_time, .@end_time - .@start_time;
  960. mes "[Nils]";
  961. mes .@line2_1$[.@wordtest];
  962. mes .@line2_2$[.@wordtest];
  963. set .@start_time, gettimetick(1);
  964. next;
  965. input .@save2$;
  966. set .@end_time, gettimetick(1);
  967. set .@total_time, .@total_time + (.@start_time - .@end_time);
  968. set .@tasoo, (.@letters[.@wordtest] / ( .@total_time > 0 ? .@total_time : 1)) * 6;
  969. if ((.@save1$ == .@word1$[.@wordtest]) && (.@save2$ == .@word2$[.@wordtest])) {
  970. mes "[Nils]";
  971. mes "Ton score : ^ff0000" + .@total_time + " secondes^000000.";
  972. mes "Nombre total de caractères : " + .@tasoo + ".";
  973. next;
  974. if (.@tasoo >= 1300) {
  975. mes "[Nils]";
  976. mes "Hmm, ce score n’est humainement possible que si...";
  977. mes "tu as fait un vilain copier-coller !";
  978. mes "Allez, sois fair-play la prochaine fois.";
  979. close;
  980. }
  981. if (.@tasoo >= $050320_ein_typing) {
  982. mes "[Nils]";
  983. mes "L'ancien record appartenait à :";
  984. mes "^0000ff" + $050320_minus1_typing$ + "^000000 avec " + $050320_ein_typing + " caractères.";
  985. mes "Mais maintenant, c’est toi, ^ff0000" + strcharinfo(0) + "^000000 !";
  986. mes "Félicitations, champion !";
  987. set $050320_minus1_typing$, strcharinfo(0);
  988. set $050320_ein_typing, .@tasoo;
  989. close;
  990. }
  991. else {
  992. mes "[Nils]";
  993. mes "Le détenteur actuel du record est :";
  994. mes "^0000ff" + $050320_minus1_typing$ + "^000000 avec " + $050320_ein_typing + " caractères.";
  995. mes "Tu t’en es bien sorti, reviens tenter ta chance !";
  996. close;
  997. }
  998. } else {
  999. mes "[Nils]";
  1000. mes "Ooooh non...";
  1001. mes "Tu as fait une faute de frappe.";
  1002. mes "Pas de panique, tu peux réessayer~";
  1003. close;
  1004. }
  1005. case 2:
  1006. mes "[Nils]";
  1007. mes "Le ^ff0000Défi de Dactylo RO^000000";
  1008. mes "est un jeu où tu dois taper";
  1009. mes "le texte affiché, le plus vite possible.";
  1010. mes "Le meilleur joueur sera inscrit au panthéon !";
  1011. next;
  1012. mes "[Nils]";
  1013. mes "Tu dois tout taper dans une seule ligne.";
  1014. mes "Ne presse pas Entrée au milieu, clique juste sur 'OK'.";
  1015. mes "Prêt à briller ?!";
  1016. close;
  1017. case 3:
  1018. mes "[Nils]";
  1019. mes "Actuellement, le record est détenu par :";
  1020. mes "^0000ff" + $050320_minus1_typing$ + "^000000 avec ^0000ff" + $050320_ein_typing + "^000000 caractères.";
  1021. mes "Essaie de battre ce score légendaire !";
  1022. close;
  1023. case 4:
  1024. mes "[Nils]";
  1025. mes "Reviens jouer au ^ff0000Défi de Dactylo RO^000000";
  1026. mes "quand tu veux. Je t’attendrai~";
  1027. close;
  1028. }
  1029. }
  1030. //============================================================
  1031. //= Apple Gambling
  1032. //============================================================
  1033. airplane_01,33,68,4 script Clarice 74,{
  1034. mes "[Clarice]";
  1035. mes "Coucou ! Moi, c’est Clarice~";
  1036. mes "Envie de miser quelques Pommes";
  1037. mes "dans un petit jeu amical de dés ?";
  1038. next;
  1039. callfunc "applegamble","Clarice";
  1040. end;
  1041. }
  1042. function script applegamble {
  1043. .@npc_name$ = getarg(0);
  1044. switch (select("Jouer au jeu de dés:Apprendre les règles:Annuler")) {
  1045. case 3:
  1046. mes "["+ .@npc_name$ +"]";
  1047. mes "Je suis toujours partante";
  1048. mes "pour une partie de dés !";
  1049. mes "Reviens me voir dès que";
  1050. mes "l’envie de parier te démange~";
  1051. close;
  1052. case 2:
  1053. mes "["+ .@npc_name$ +"]";
  1054. mes "Les règles sont simples :";
  1055. mes "tu mises des Pommes (jusqu’à 50)";
  1056. mes "et on joue aux dés.";
  1057. next;
  1058. mes "["+ .@npc_name$ +"]";
  1059. mes "Je n’accepte que les Pommes~";
  1060. mes "Si t’as trop de zeny, va voir Fruitz";
  1061. mes "pour te faire un stock de Pommes.";
  1062. next;
  1063. mes "["+ .@npc_name$ +"]";
  1064. mes "Je lance deux dés à six faces.";
  1065. mes "Puis c’est ton tour de faire pareil.";
  1066. mes "Ensuite, chacun peut décider de lancer un troisième dé.";
  1067. next;
  1068. mes "["+ .@npc_name$ +"]";
  1069. mes "Attention : si tu dépasses 12, tu perds !";
  1070. mes "Sinon, celui qui a le total le plus élevé gagne.";
  1071. next;
  1072. mes "["+ .@npc_name$ +"]";
  1073. mes "Tu décides d'abord si tu veux";
  1074. mes "un troisième lancer, puis ce sera mon tour.";
  1075. next;
  1076. mes "["+ .@npc_name$ +"]";
  1077. mes "Si tu gagnes, tu repars avec le double";
  1078. mes "de Pommes que tu as misées.";
  1079. mes "Et en cas d’égalité, tu récupères ta mise.";
  1080. mes "Fair-play, non ?";
  1081. close;
  1082. case 1:
  1083. break;
  1084. }
  1085. mes "["+ .@npc_name$ +"]";
  1086. mes "Héhé~ Prêt à parier ?";
  1087. mes "Combien de Pommes veux-tu miser ?";
  1088. mes "(Max : 50, entre '0' pour annuler)";
  1089. next;
  1090. while(1) {
  1091. input .@amount;
  1092. if (.@amount == 0) {
  1093. mes "["+ .@npc_name$ +"]";
  1094. mes "Tu changes d'avis ?";
  1095. mes "Pas de souci, une autre fois peut-être.";
  1096. close;
  1097. }
  1098. else if (.@amount < 1 || .@amount > 50) {
  1099. mes "["+ .@npc_name$ +"]";
  1100. mes "Pas plus de 50 Pommes, hein !";
  1101. mes "Allez, entre un nombre raisonnable.";
  1102. next;
  1103. continue;
  1104. }
  1105. mes "["+ .@npc_name$ +"]";
  1106. mes "Tu veux miser ^FF0000"+.@amount+"^000000 Pommes.";
  1107. mes "C’est bien ça ?";
  1108. next;
  1109. if (select("Oui:Non") == 2) {
  1110. mes "["+ .@npc_name$ +"]";
  1111. mes "Pas de souci~";
  1112. mes "Réessaie avec la bonne mise.";
  1113. next;
  1114. continue;
  1115. }
  1116. if (countitem(512) <.@amount) {
  1117. mes "["+ .@npc_name$ +"]";
  1118. mes "Euh... T’as pas assez de Pommes !";
  1119. mes "Tu peux pas tricher, ici c’est sérieux.";
  1120. next;
  1121. continue;
  1122. }
  1123. delitem 512,.@amount;
  1124. mes "["+ .@npc_name$ +"]";
  1125. mes "Parfait ! Que les dés soient lancés~";
  1126. break;
  1127. }
  1128. mes "^3355FF*Lancer de dés en cours...*^000000";
  1129. next;
  1130. set .@giveapple, .@amount * 2;
  1131. set .@table1, rand(1,6);
  1132. set .@table2, rand(1,6);
  1133. set .@tablesub, .@table1 + .@table2;
  1134. set .@tabletotal, .@tablesub;
  1135. mes "["+ .@npc_name$ +"]";
  1136. mes "J’ai obtenu un ^0000FF" + .@table1 + "^000000 et un ^0000FF" + .@table2 + "^000000.";
  1137. mes "Total : ^0000FF" + .@tablesub + "^000000.";
  1138. mes "^FF0000" + strcharinfo(0) + "^000000, à toi !";
  1139. next;
  1140. select("Lancer les dés !");
  1141. mes "^3355FF*Lancer de dés en cours...*^000000";
  1142. set .@player1, rand(1,6);
  1143. set .@player2, rand(1,6);
  1144. set .@playersub, .@player1 + .@player2;
  1145. // Anti-triche anti-chance insolente
  1146. if (.@playersub > 9 && .@amount > 39) {
  1147. set .@player1, rand(1,6);
  1148. set .@player2, rand(1,6);
  1149. set .@playersub, .@player1 + .@player2;
  1150. }
  1151. set .@playertotal, .@playersub;
  1152. next;
  1153. mes "["+ .@npc_name$ +"]";
  1154. mes "^FF0000" + strcharinfo(0) + "^000000, tu as obtenu ^FF0000" + .@player1 + "^000000 et ^FF0000" + .@player2 + "^000000. Total : ^FF0000" + .@playersub + "^000000.";
  1155. next;
  1156. // Dialogue en fonction des scores
  1157. mes "["+ .@npc_name$ +"]";
  1158. if(.@playersub == .@tablesub)
  1159. mes "Égalité pour l’instant ! Tu veux relancer un dé ?";
  1160. else if (.@playersub > .@tablesub)
  1161. mes "Tu gagnes actuellement~ Tu veux relancer pour assurer ?";
  1162. else
  1163. mes "Aïe, tu perds pour l’instant... Un troisième dé pour tenter ta chance ?";
  1164. next;
  1165. switch (select("Relancer un dé:Stop, j’assure.")) {
  1166. case 1:
  1167. mes "^3355FF*Suspense...*^000000";
  1168. set .@player3, rand(1,6);
  1169. set .@playertotal, .@playertotal + .@player3;
  1170. next;
  1171. mes "["+ .@npc_name$ +"]";
  1172. if (.@playertotal > 12) {
  1173. mes "Oups ! Tu fais un total de ^FF0000" + .@playertotal + "^000000.";
  1174. mes "Tu dépasses 12, tu es éliminé !";
  1175. close;
  1176. }
  1177. else if (.@playertotal < .@tablesub) {
  1178. mes "Mince, même avec ton lancer, tu restes derrière.";
  1179. mes "Tu as perdu cette manche. Reviens tenter ta chance !";
  1180. close;
  1181. }
  1182. else if (.@playertotal == .@tablesub) {
  1183. if (.@tablesub > 8) {
  1184. mes "On est ex æquo... et le risque est trop grand !";
  1185. mes "On arrête là. Match nul, voici ta mise.";
  1186. close2;
  1187. getitem 512,.@amount;
  1188. end;
  1189. }
  1190. mes "Très bien, à moi de lancer le troisième dé.";
  1191. }
  1192. else {
  1193. mes "Tu as un total de ^FF0000" + .@playertotal + "^000000. Voyons ce que j’obtiens~";
  1194. }
  1195. break;
  1196. case 2:
  1197. mes "["+ .@npc_name$ +"]";
  1198. if (.@playersub > .@tablesub)
  1199. mes "Tu veux pas tenter le diable ? Ok, à moi maintenant.";
  1200. else if (.@playersub == .@tablesub && .@tablesub > 8) {
  1201. mes "Tu préfères ne pas prendre de risques ? D’accord, égalité.";
  1202. close2;
  1203. getitem 512,.@amount;
  1204. end;
  1205. }
  1206. else {
  1207. mes "Héhé, dans ce cas... j’ai gagné~";
  1208. mes "Tu retenteras ta chance plus tard !";
  1209. close;
  1210. }
  1211. break;
  1212. }
  1213. // Jet final de Clarice
  1214. next;
  1215. mes "^3355FF*Clarice lance son dernier dé...*^000000";
  1216. set .@table3, rand(1,6);
  1217. set .@tabletotal, .@tabletotal + .@table3;
  1218. next;
  1219. mes "["+ .@npc_name$ +"]";
  1220. if (.@tabletotal > 12) {
  1221. mes "Ah non ! J’ai explosé le score avec ^0000FF" + .@tabletotal + "^000000...";
  1222. mes "Tu remportes la partie, bravo !";
  1223. close2;
  1224. getitem 512,.@giveapple;
  1225. end;
  1226. }
  1227. else if (.@playertotal > .@tabletotal) {
  1228. mes "J’ai obtenu un total de ^0000FF" + .@tabletotal + "^000000.";
  1229. mes "Tu gagnes cette fois, félicitations !";
  1230. close2;
  1231. getitem 512,.@giveapple;
  1232. end;
  1233. }
  1234. else if (.@playertotal == .@tabletotal) {
  1235. mes "Total égal ! Match nul, voici ta mise.";
  1236. close2;
  1237. getitem 512,.@amount;
  1238. end;
  1239. }
  1240. else {
  1241. mes "Ahah ! J’ai un total de ^0000FF" + .@tabletotal + "^000000.";
  1242. mes "Dommage pour toi... mais tu rejoueras sûrement, hein ?";
  1243. close;
  1244. }
  1245. }