PoringVillage.txt 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686
  1. //===== rAthena Script =======================================
  2. //= Poring Village
  3. //===== Description: =========================================
  4. //= [Walkthrough Conversion]
  5. //= Poring Village instance
  6. //===== Changelogs: ==========================================
  7. //= 1.0 First version. [Capuche]
  8. //============================================================
  9. // Enchant
  10. prt_fild05,174,238,7 script Veggie Enchanter#0 4_F_02,2,2,{
  11. mes "[Veggie Enchanter]";
  12. mes "50 Jellopies and 20,000 zeny are all you need to get special effect on your green onion or carrot!";
  13. next;
  14. mes "[Veggie Enchanter]";
  15. mes "Enchant and reset have ^ff000030% of failure.^000000 Invest in your veggie and luck!";
  16. next;
  17. switch( select( "How much do I need to enchant?", "Enchant to Poring Village Veggie", "Reset Poring Village Veggie" ) ) {
  18. case 1:
  19. mes "[Veggie Enchanter]";
  20. mes "As I heard, you can get Poring Village Green Onion or Carrot if you go west a bit more from here.";
  21. next;
  22. mes "[Veggie Enchanter]";
  23. mes "I do enchant to the fresh vegetable.";
  24. next;
  25. mes "[Veggie Enchanter]";
  26. mes "Enchant or Reset requires 20,000z and 50 Jellopy! It's not bad, is it?";
  27. next;
  28. mes "[Veggie Enchanter]";
  29. mes "Well... As you know, it's a vegetable any way. So sometimes it can be broken.";
  30. close;
  31. case 2:
  32. .@equip_id = getequipid(EQI_HEAD_LOW);
  33. switch( .@equip_id ) {
  34. case -1:
  35. mes "[Veggie Enchanter]";
  36. mes "Please put on the equipment you'd like to enchant first.";
  37. close;
  38. case 19238: // PoringTownOnion
  39. case 19239: // PoringTownCarrot
  40. break;
  41. default:
  42. mes "[Veggie Enchanter]";
  43. mes "This is not a vegetable!?";
  44. close;
  45. }
  46. if (getequipcardid(EQI_HEAD_LOW,3) > 0) {
  47. mes "[Veggie Enchanter]";
  48. mes "This vegetable cannot be enchanted anymore.";
  49. close;
  50. }
  51. if (countitem(909) < 50 || Zeny < 20000) {
  52. mes "[Veggie Enchanter]";
  53. mes "This enchant requires 50 Jellopy and 20,000z..... But... you don't have them.";
  54. close;
  55. }
  56. delequip EQI_HEAD_LOW;
  57. delitem 909,50; // Jellopy
  58. Zeny -= 20000;
  59. if (rand(100) < 70) {
  60. .@r = rand(5356);
  61. if (.@r < 160) .@card = 4795; // HP100
  62. else if (.@r < 200) .@card = 4796; // HP200
  63. else if (.@r < 1000) .@card = 4928; // SP10
  64. else if (.@r < 1400) .@card = 4870; // SP25
  65. else if (.@r < 1480) .@card = 4800; // SP50
  66. else if (.@r < 1880) .@card = 4700; // Strength1
  67. else if (.@r < 2280) .@card = 4730; // Agility1
  68. else if (.@r < 3410) .@card = 4740; // Vitality1
  69. else if (.@r < 3810) .@card = 4710; // Inteligence1
  70. else if (.@r < 4210) .@card = 4720; // Dexterity1
  71. else if (.@r < 5340) .@card = 4750; // Luck1
  72. else if (.@r < 5348) .@card = 4992; // HPdrain1
  73. else if (.@r < 5356) .@card = 4993; // SPdrain1
  74. getitem2 .@equip_id,1,1,0,0,0,0,0,.@card;
  75. mes "[Veggie Enchanter]";
  76. mes "Tada! Enchant is done! Check your vegetable.";
  77. specialeffect2 EF_REPAIRWEAPON;
  78. close;
  79. }
  80. mes "[Veggie Enchanter]";
  81. mes "It must have been a rotten vegetable. It's a shame that I can't stand this level of power...";
  82. specialeffect2 EF_LORD;
  83. close;
  84. case 3:
  85. .@equip_id = getequipid(EQI_HEAD_LOW);
  86. switch( .@equip_id ) {
  87. case -1:
  88. mes "[Veggie Enchanter]";
  89. mes "Please put on the equipment you'd like to enchant first.";
  90. close;
  91. case 19238: // PoringTownOnion
  92. case 19239: // PoringTownCarrot
  93. break;
  94. default:
  95. mes "[Veggie Enchanter]";
  96. mes "This is not a vegetable!?";
  97. close;
  98. }
  99. if (getequipcardid(EQI_HEAD_LOW,3) == 0) {
  100. mes "[Veggie Enchanter]";
  101. mes "This is a vegetable that has never been fortified...";
  102. close;
  103. }
  104. if (countitem(909) < 50 || Zeny < 20000) {
  105. mes "[Veggie Enchanter]";
  106. mes "This enchant requires 50 Jellopy and 20,000z..... But... you don't have them.";
  107. close;
  108. }
  109. delequip EQI_HEAD_LOW;
  110. delitem 909,50; // Jellopy
  111. Zeny -= 20000;
  112. if (rand(100) < 70) {
  113. getitem .@equip_id,1;
  114. mes "[Veggie Enchanter]";
  115. mes "The item is complete! Check it out.";
  116. specialeffect2 EF_REPAIRWEAPON;
  117. close;
  118. }
  119. mes "[Veggie Enchanter]";
  120. mes "It must have been a rotten vegetable. It's a shame that I can't stand this level of power...";
  121. specialeffect2 EF_LORD;
  122. close;
  123. }
  124. end;
  125. OnTouch:
  126. npctalk "Veggie Enchanter: Make your green onion or carrot stronger!", "", bc_self;
  127. end;
  128. }
  129. // Instance
  130. prt_fild05,145,235,5 script Emily#0 4_GEFFEN_03,4,4,{
  131. if (BaseLevel < 30) {
  132. mes "[Emily]";
  133. mes "Wow~ You look like a novice. I do want to adventure with you someday when you grow up!";
  134. close;
  135. }
  136. if (BaseLevel > 60) {
  137. mes "[Emily]";
  138. mes "Oh, now you are stronger than me. How did you grow so fast?";
  139. next;
  140. mes "[Emily]";
  141. mes "I should find another adventurer who is similar with my level. It's been nice knowing you.";
  142. close;
  143. }
  144. if (isbegin_quest(12416) == 0) {
  145. mes "[Emily]";
  146. mes "My name is Emily. I was waiting for someone who will go on adventures with me!";
  147. next;
  148. select("Who said I will adventure with you?");
  149. mes "[Emily]";
  150. mes "Well, come one. Don't be stern. Listen, you can decide after listening to my story. Of course, I can give you a proper reward.";
  151. next;
  152. if (select( "Proper Reward?", "I'm not interested." ) == 2) {
  153. mes "[Emily]";
  154. mes "How square! It's much better to be together!";
  155. close;
  156. }
  157. mes "[Emily]";
  158. mes "Yes! Proper Reward.";
  159. next;
  160. mes "[Emily]";
  161. mes "It seems this Poring Village can be defeated by beginners just like us. It's just a wild guess though...";
  162. next;
  163. mes "[Emily]";
  164. mes "Well, actually I cannot give you the reward officially through adventurer association. But we can separate the income after hunting.";
  165. next;
  166. select("But 50-50 sounds fair to me.");
  167. mes "[Emily]";
  168. mes "No way. 70-30. And I'm 70 of course.";
  169. next;
  170. select("It's gotta be 50-50 or it's no good");
  171. mes "[Emily]";
  172. mes "How about 60-40!!";
  173. next;
  174. select("50-50 ...");
  175. mes "[Emily]";
  176. mes "This drives me crazy. OK, 50-50. Let's go with this.";
  177. setquest 12416; // Contract with Emily
  178. completequest 12416;
  179. close;
  180. }
  181. switch( checkquest(12417,PLAYTIME) ) {
  182. case -1:
  183. break;
  184. case 0:
  185. case 1:
  186. mes "^ff0000Any processing of monsters such as monster taming inside the dungeon will not be considered a normal progress. Please note that.^000000";
  187. next;
  188. mes "^ff0000In beginner mode, the player transforms into a monster. Please note that the existing transformation effect disappears when entering and proceeding.^000000";
  189. next;
  190. mes "[Emily]";
  191. mes "So, are you ready?";
  192. next;
  193. mes "[Emily]";
  194. mes "You look very tired.";
  195. next;
  196. mes "[Emily]";
  197. mes "Why don't you come back after a while? Take a break for now.";
  198. close;
  199. case 2:
  200. mes "^ff0000Any processing of monsters such as monster taming inside the dungeon will not be considered a normal progress. Please note that.^000000";
  201. next;
  202. mes "^ff0000In beginner mode, the player transforms into a monster. Please note that the existing transformation effect disappears when entering and proceeding. ^000000";
  203. next;
  204. mes "[Emily]";
  205. mes "So, are you ready?";
  206. next;
  207. mes "^0000ffAll Traces of the Poring Village quest were removed. Now, talk to Emily again to enter^000000";
  208. erasequest 12417;
  209. close;
  210. }
  211. mes "^ff0000Any processing of monsters such as monster taming inside the dungeon will not be considered a normal progress. Please note that.^000000";
  212. next;
  213. mes "^ff0000In beginner mode, the player transforms into a monster. Please note that the existing transformation effect disappears when entering and proceeding.^000000";
  214. next;
  215. mes "[Emily]";
  216. mes "So, are you ready?";
  217. if (isbegin_quest(12418) == 0)
  218. setquest 12418; // First Visit to Poring Village
  219. next;
  220. if (getcharid(1) < 1) {
  221. mes "[Emily]";
  222. mes "Hmm you should create a party first to start this grand adventure.";
  223. close;
  224. }
  225. .@md_name$ = "Poring Village";
  226. if (is_party_leader())
  227. .@menu$[0] = "Create the entrance";
  228. if (instance_live_info(ILI_NAME, instance_id(IM_PARTY)) == .@md_name$)
  229. .@menu$[1] = "Enter the dungeon";
  230. switch( select( .@menu$[0], .@menu$[1], "Cancel" ) ) {
  231. case 1:
  232. mes "[Emily]";
  233. mes "Now I'm looking for the entrance, please talk to me again after it's totally open.";
  234. instance_create(.@md_name$);
  235. close;
  236. case 2:
  237. switch( instance_enter(.@md_name$) ) {
  238. case IE_OTHER:
  239. mes "An unknown error occurred.";
  240. close;
  241. case IE_NOINSTANCE:
  242. mes "^ff0000Time's crack is not created yet.^000000";
  243. close;
  244. case IE_NOMEMBER:
  245. end;
  246. case IE_OK:
  247. mapannounce "prt_fild05", "Party member " + strcharinfo(0) + " of the party " + getpartyname(getcharid(0)) + " enters " + .@md_name$ + ".", bc_map,0xFF9900;
  248. setquest 12417; // Overcoming fatigue
  249. // warp "1@begi",100,22;
  250. end;
  251. }
  252. end;
  253. case 3:
  254. end;
  255. }
  256. end;
  257. OnTouch:
  258. if (isbegin_quest(12416) == 0 && BaseLevel >= 30 && BaseLevel <= 60)
  259. npctalk "Emily: Hey, there! May I talk to you for a minute?";
  260. end;
  261. OnInit:
  262. questinfo( QTYPE_JUMPING_PORING, QMARK_YELLOW , "isbegin_quest(12416) == 0 && BaseLevel >= 30 && BaseLevel <= 60" );
  263. end;
  264. }
  265. 1@begi,106,30,0 script #start_wp1_0 HIDDEN_WARP_NPC,4,4,{
  266. end;
  267. OnTouch:
  268. disablenpc();
  269. donpcevent instance_npcname("#start_wp1_1") + "::OnStart";
  270. end;
  271. OnInstanceInit:
  272. 'map_begi$ = instance_mapname("1@begi");
  273. setcell 'map_begi$,146,35,146,41,cell_walkable,0;
  274. setcell 'map_begi$,154,100,154,107,cell_walkable,0;
  275. setcell 'map_begi$,59,187,59,197,cell_walkable,0;
  276. disablenpc instance_npcname("#start_wp1_2");
  277. disablenpc instance_npcname("#gift");
  278. end;
  279. }
  280. 1@begi,106,30,5 script #start_wp1_1 4_GEFFEN_03,{
  281. mes "[Emily]";
  282. mes "Let's go forward.";
  283. close;
  284. OnStart:
  285. npctalk "Emily: So.. is this Poring Village?";
  286. sleep 2000;
  287. npctalk "Emily: OK. Let's go!";
  288. sleep 2000;
  289. disablenpc();
  290. donpcevent instance_npcname("#start_wp1_2") + "::OnStart";
  291. donpcevent instance_npcname("poring_village_1") + "::OnStart";
  292. end;
  293. }
  294. 1@begi,140,37,5 script #start_wp1_2 4_GEFFEN_03,{
  295. mes "[Emily]";
  296. mes "I'm going to start slowly now...";
  297. close;
  298. OnStart:
  299. enablenpc();
  300. sleep 1000;
  301. npctalk "Emily: Hmmm. It seems they made barriers not to let us go easily.";
  302. sleep 3000;
  303. npctalk "Emily: I'm quite sure Poring gathered a lot of treasure somewhere.";
  304. sleep 4000;
  305. mapannounce 'map_begi$, "???: I can hear a human's voice. Make them welcome, everybody.", bc_map, 0xFFFF00;
  306. sleep 4000;
  307. npctalk "Emily: What is it saying?";
  308. sleep 3000;
  309. npctalk "Emily: It sounds someone is rushing here... ";
  310. sleep 2500;
  311. mapannounce 'map_begi$, "???: Don't let them run! Take all valuable items from them!", bc_map, 0xFFFF00;
  312. sleep 2500;
  313. npctalk "Emily: Well... OK. They don't seem very friendly. Quick, hide!";
  314. sleep 4000;
  315. // disablenpc();
  316. hideonnpc(); // hideonnpc instead of disablenpc (official) to display text on rAthena
  317. sleep 1000;
  318. npctalk "Emily: Oooops. Can't you hide? Well..... Cheer up!";
  319. // disablenpc instance_npcname("#poring_wl18");
  320. hideonnpc instance_npcname("#poring_wl18");
  321. specialeffect EF_LORD,AREA, instance_npcname("#poring_wl18");
  322. sleep 500;
  323. // disablenpc instance_npcname("#poring_wl19");
  324. hideonnpc instance_npcname("#poring_wl19");
  325. specialeffect EF_LORD,AREA, instance_npcname("#poring_wl19");
  326. sleep 500;
  327. disablenpc instance_npcname("#poring_wl15");
  328. sleep 500;
  329. disablenpc instance_npcname("#poring_wl16");
  330. disablenpc instance_npcname("#poring_wl17");
  331. disablenpc instance_npcname("#poring_wl20");
  332. disablenpc instance_npcname("#poring_wl21");
  333. setcell 'map_begi$,146,35,146,41,cell_walkable,1;
  334. end;
  335. }
  336. // First wall
  337. 1@begi,146,35,6 duplicate(dummy_npc) #poring_wl15 4_ROPEPILE,1,0
  338. 1@begi,146,36,6 duplicate(dummy_npc) #poring_wl16 4_ROPEPILE,1,0
  339. 1@begi,146,37,6 duplicate(dummy_npc) #poring_wl17 4_ROPEPILE,1,0
  340. 1@begi,146,38,6 duplicate(dummy_npc) #poring_wl18 4_ROPEPILE,1,0
  341. 1@begi,146,39,6 duplicate(dummy_npc) #poring_wl19 4_ROPEPILE,1,0
  342. 1@begi,146,40,6 duplicate(dummy_npc) #poring_wl20 4_ROPEPILE,1,0
  343. 1@begi,146,41,6 duplicate(dummy_npc) #poring_wl21 4_ROPEPILE,1,0
  344. // Second wall
  345. 1@begi,59,187,6 duplicate(dummy_npc) #poring_wl9 4_ROPEPILE,1,0
  346. 1@begi,59,188,6 duplicate(dummy_npc) #poring_wl10 4_ROPEPILE,1,0
  347. 1@begi,59,189,6 duplicate(dummy_npc) #poring_wl11 4_ROPEPILE,1,0
  348. 1@begi,59,190,6 duplicate(dummy_npc) #poring_wl12 4_ROPEPILE,1,0
  349. 1@begi,59,191,6 duplicate(dummy_npc) #poring_wl13 4_ROPEPILE,1,0
  350. 1@begi,59,192,6 duplicate(dummy_npc) #poring_wl14 4_ROPEPILE,1,0
  351. // Others
  352. 1@begi,154,100,6 duplicate(dummy_npc) #poring_wl1 4_ROPEPILE,1,0
  353. 1@begi,154,101,6 duplicate(dummy_npc) #poring_wl2 4_ROPEPILE,1,0
  354. 1@begi,154,102,6 duplicate(dummy_npc) #poring_wl3 4_ROPEPILE,1,0
  355. 1@begi,154,103,6 duplicate(dummy_npc) #poring_wl4 4_ROPEPILE,1,0
  356. 1@begi,154,104,6 duplicate(dummy_npc) #poring_wl5 4_ROPEPILE,1,0
  357. 1@begi,154,105,6 duplicate(dummy_npc) #poring_wl6 4_ROPEPILE,1,0
  358. 1@begi,154,106,6 duplicate(dummy_npc) #poring_wl7 4_ROPEPILE,1,0
  359. 1@begi,154,107,6 duplicate(dummy_npc) #poring_wl8 4_ROPEPILE,1,0
  360. 1@begi,1,1,5 script poring_village_1 -1,{
  361. end;
  362. OnStart:
  363. .@event$ = instance_npcname("poring_village_1") + "::OnMobDead";
  364. areamonster 'map_begi$, 153,32, 171,32, "--en--", "MD_DROPS",7, .@event$;
  365. areamonster 'map_begi$, 48,54, 71,57, "--en--", "MD_DROPS",8, .@event$;
  366. areamonster 'map_begi$, 170,38, 189,38, "--en--", "MD_POPORING",8, .@event$;
  367. areamonster 'map_begi$, 24,72, 28,92, "--en--", "MD_POPORING",8, .@event$;
  368. areamonster 'map_begi$, 188,42, 191,58, "--en--", "MD_MARIN",8, .@event$;
  369. areamonster 'map_begi$, 158,67, 174,68, "--en--", "MD_MARIN",3, .@event$;
  370. areamonster 'map_begi$, 117,68, 131,68, "--en--", "MD_MARIN",4, .@event$;
  371. areamonster 'map_begi$, 79,113, 92,113, "--en--", "MD_MARIN",6, .@event$;
  372. monster 'map_begi$,101,66, "--en--","MD_MARIN",1, .@event$;
  373. monster 'map_begi$,57,113, "--en--","MD_MARIN",1, .@event$;
  374. monster 'map_begi$,68,113, "--en--","MD_MARIN",1, .@event$;
  375. monster 'map_begi$,176,66, "--en--","MD_PORING",1, .@event$;
  376. monster 'map_begi$,158,68, "--en--","MD_PORING",1, .@event$;
  377. monster 'map_begi$,157,67, "--en--","MD_PORING",1, .@event$;
  378. monster 'map_begi$,149,66, "--en--","MD_PORING",1, .@event$;
  379. monster 'map_begi$,125,67, "--en--","MD_PORING",1, .@event$;
  380. monster 'map_begi$,121,67, "--en--","MD_PORING",1, .@event$;
  381. monster 'map_begi$,102,67, "--en--","MD_PORING",1, .@event$;
  382. monster 'map_begi$,101,68, "--en--","MD_PORING",1, .@event$;
  383. end;
  384. OnMobDead:
  385. if (mobcount( 'map_begi$, instance_npcname("poring_village_1") + "::OnMobDead" ) > 3)
  386. end;
  387. killmonster 'map_begi$, instance_npcname("poring_village_1") + "::OnMobDead";
  388. mapannounce 'map_begi$, "Emily: Wow~ You are quite strong! You defeated all these Porings!", bc_map, 0xFFFF00;
  389. sleep 2000;
  390. mapannounce 'map_begi$, "Emily: But the Poring looks unique somehow. Be careful!", bc_map, 0xFFFF00;
  391. sleep 2000;
  392. mapannounce 'map_begi$, "Emily: Ah, there is a unique force if you go near the column of blue light.", bc_map, 0xFFFF00;
  393. sleep 2000;
  394. monster 'map_begi$,132,103,"--en--","MD_GOLDRING",1, instance_npcname("poring_village_1") + "::OnBossDead";
  395. end;
  396. OnBossDead:
  397. if (mobcount( 'map_begi$, instance_npcname("poring_village_1") + "::OnBossDead" ) > 0)
  398. end;
  399. killmonster 'map_begi$, instance_npcname("poring_village_1") + "::OnBossDead";
  400. donpcevent instance_npcname("poring_village_2") + "::OnStart";
  401. sleep 6000;
  402. // disablenpc instance_npcname("#poring_wl4");
  403. hideonnpc instance_npcname("#poring_wl4");
  404. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4");
  405. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4");
  406. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4");
  407. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4");
  408. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4");
  409. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4");
  410. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4");
  411. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl4");
  412. // disablenpc instance_npcname("#poring_wl5");
  413. hideonnpc instance_npcname("#poring_wl5");
  414. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5");
  415. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5");
  416. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5");
  417. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5");
  418. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5");
  419. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5");
  420. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5");
  421. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl5");
  422. disablenpc instance_npcname("#poring_wl1");
  423. disablenpc instance_npcname("#poring_wl2");
  424. disablenpc instance_npcname("#poring_wl3");
  425. disablenpc instance_npcname("#poring_wl6");
  426. disablenpc instance_npcname("#poring_wl7");
  427. disablenpc instance_npcname("#poring_wl8");
  428. setcell 'map_begi$,154,100,154,107,cell_walkable,1;
  429. end;
  430. }
  431. 1@begi,1,1,5 script poring_village_2 -1,{
  432. end;
  433. OnStart:
  434. .@event$ = instance_npcname("poring_village_2") + "::OnMobDead";
  435. monster 'map_begi$,191,97,"--en--","MD_DROPS",1, .@event$;
  436. monster 'map_begi$,191,97,"--en--","MD_DROPS",1, .@event$;
  437. monster 'map_begi$,191,97,"--en--","MD_DROPS",1, .@event$;
  438. monster 'map_begi$,192,97,"--en--","MD_DROPS",1, .@event$;
  439. monster 'map_begi$,194,97,"--en--","MD_DROPS",1, .@event$;
  440. monster 'map_begi$,194,97,"--en--","MD_DROPS",1, .@event$;
  441. monster 'map_begi$,195,97,"--en--","MD_DROPS",1, .@event$;
  442. monster 'map_begi$,195,97,"--en--","MD_DROPS",1, .@event$;
  443. monster 'map_begi$,199,108,"--en--","MD_POPORING",1, .@event$;
  444. monster 'map_begi$,201,107,"--en--","MD_POPORING",1, .@event$;
  445. monster 'map_begi$,203,108,"--en--","MD_POPORING",1, .@event$;
  446. monster 'map_begi$,206,107,"--en--","MD_POPORING",1, .@event$;
  447. monster 'map_begi$,213,108,"--en--","MD_POPORING",1, .@event$;
  448. monster 'map_begi$,214,109,"--en--","MD_MARIN",1, .@event$;
  449. monster 'map_begi$,214,109,"--en--","MD_MARIN",1, .@event$;
  450. monster 'map_begi$,214,109,"--en--","MD_MARIN",1, .@event$;
  451. monster 'map_begi$,214,115,"--en--","MD_MARIN",1, .@event$;
  452. monster 'map_begi$,214,112,"--en--","MD_MARIN",1, .@event$;
  453. monster 'map_begi$,214,113,"--en--","MD_MARIN",1, .@event$;
  454. monster 'map_begi$,214,117,"--en--","MD_MARIN",1, .@event$;
  455. monster 'map_begi$,214,111,"--en--","MD_MARIN",1, .@event$;
  456. monster 'map_begi$,215,108,"--en--","MD_POPORING",1, .@event$;
  457. monster 'map_begi$,215,107,"--en--","MD_POPORING",1, .@event$;
  458. monster 'map_begi$,216,107,"--en--","MD_POPORING",1, .@event$;
  459. monster 'map_begi$,197,143,"--en--","MD_PORING",1, .@event$;
  460. monster 'map_begi$,197,143,"--en--","MD_PORING",1, .@event$;
  461. monster 'map_begi$,192,143,"--en--","MD_PORING",1, .@event$;
  462. monster 'map_begi$,190,143,"--en--","MD_PORING",1, .@event$;
  463. monster 'map_begi$,188,143,"--en--","MD_PORING",1, .@event$;
  464. monster 'map_begi$,188,143,"--en--","MD_PORING",1, .@event$;
  465. monster 'map_begi$,184,143,"--en--","MD_PORING",1, .@event$;
  466. monster 'map_begi$,182,143,"--en--","MD_PORING",1, .@event$;
  467. monster 'map_begi$,157,144,"--en--","MD_PORING",1, .@event$;
  468. monster 'map_begi$,154,143,"--en--","MD_MARIN",1, .@event$;
  469. monster 'map_begi$,154,144,"--en--","MD_MARIN",1, .@event$;
  470. monster 'map_begi$,152,143,"--en--","MD_DROPS",1, .@event$;
  471. monster 'map_begi$,142,144,"--en--","MD_POPORING",1, .@event$;
  472. monster 'map_begi$,130,144,"--en--","MD_PORING",1, .@event$;
  473. monster 'map_begi$,129,144,"--en--","MD_PORING",1, .@event$;
  474. monster 'map_begi$,127,144,"--en--","MD_MARIN",1, .@event$;
  475. monster 'map_begi$,120,144,"--en--","MD_PORING",1, .@event$;
  476. monster 'map_begi$,117,144,"--en--","MD_PORING",1, .@event$;
  477. monster 'map_begi$,116,144,"--en--","MD_MARIN",1, .@event$;
  478. monster 'map_begi$,114,143,"--en--","MD_MARIN",1, .@event$;
  479. monster 'map_begi$,103,144,"--en--","MD_POPORING",1, .@event$;
  480. monster 'map_begi$,102,144,"--en--","MD_MARIN",1, .@event$;
  481. monster 'map_begi$,102,144,"--en--","MD_DROPS",1, .@event$;
  482. monster 'map_begi$,93,143,"--en--","MD_MARIN",1, .@event$;
  483. monster 'map_begi$,88,144,"--en--","MD_DROPS",1, .@event$;
  484. monster 'map_begi$,88,144,"--en--","MD_POPORING",1, .@event$;
  485. monster 'map_begi$,84,144,"--en--","MD_POPORING",1, .@event$;
  486. monster 'map_begi$,84,144,"--en--","MD_MARIN",1, .@event$;
  487. monster 'map_begi$,83,143,"--en--","MD_PORING",1, .@event$;
  488. monster 'map_begi$,76,143,"--en--","MD_POPORING",1, .@event$;
  489. monster 'map_begi$,75,144,"--en--","MD_DROPS",1, .@event$;
  490. monster 'map_begi$,73,144,"--en--","MD_POPORING",1, .@event$;
  491. monster 'map_begi$,73,143,"--en--","MD_DROPS",1, .@event$;
  492. monster 'map_begi$,72,144,"--en--","MD_POPORING",1, .@event$;
  493. monster 'map_begi$,69,143,"--en--","MD_POPORING",1, .@event$;
  494. monster 'map_begi$,64,144,"--en--","MD_DROPS",1, .@event$;
  495. monster 'map_begi$,59,143,"--en--","MD_PORING",1, .@event$;
  496. monster 'map_begi$,59,144,"--en--","MD_DROPS",1, .@event$;
  497. monster 'map_begi$,52,144,"--en--","MD_DROPS",1, .@event$;
  498. monster 'map_begi$,51,143,"--en--","MD_PORING",1, .@event$;
  499. end;
  500. OnMobDead:
  501. if (mobcount( 'map_begi$, instance_npcname("poring_village_2") + "::OnMobDead" ) > 4)
  502. end;
  503. killmonster 'map_begi$, instance_npcname("poring_village_2") + "::OnMobDead";
  504. mapannounce 'map_begi$, "Emily: Hmm.. here is another Boss... It looks strong...", bc_map, 0xFFFF00;
  505. sleep 2000;
  506. mapannounce 'map_begi$, "Emily: I'm not good at battle.. Let me look for tresure first. See you soon~", bc_map, 0xFFFF00;
  507. sleep 2000;
  508. monster 'map_begi$,42,173,"--en--","MD_AMERING",1, instance_npcname("poring_village_2") + "::OnBossDead";
  509. end;
  510. OnBossDead:
  511. if (mobcount( 'map_begi$, instance_npcname("poring_village_2") + "::OnBossDead" ) > 0)
  512. end;
  513. killmonster 'map_begi$, instance_npcname("poring_village_2") + "::OnBossDead";
  514. donpcevent instance_npcname("poring_village_3") + "::OnStart";
  515. sleep 6000;
  516. // disablenpc instance_npcname("#poring_wl10");
  517. hideonnpc instance_npcname("#poring_wl10");
  518. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10");
  519. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10");
  520. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10");
  521. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10");
  522. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10");
  523. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl10");
  524. // disablenpc instance_npcname("#poring_wl13");
  525. hideonnpc instance_npcname("#poring_wl13");
  526. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13");
  527. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13");
  528. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13");
  529. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13");
  530. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13");
  531. specialeffect EF_LORD, AREA, instance_npcname("#poring_wl13");
  532. disablenpc instance_npcname("#poring_wl9");
  533. disablenpc instance_npcname("#poring_wl11");
  534. disablenpc instance_npcname("#poring_wl12");
  535. disablenpc instance_npcname("#poring_wl14");
  536. setcell 'map_begi$,59,187,59,197,cell_walkable,1;
  537. end;
  538. }
  539. 1@begi,1,1,5 script poring_village_3 -1,{
  540. end;
  541. OnStart:
  542. .@event$ = instance_npcname("poring_village_3") + "::OnMobDead";
  543. monster 'map_begi$,81,197,"--en--","MD_MARIN",1, .@event$;
  544. monster 'map_begi$,84,197,"--en--","MD_MARIN",1, .@event$;
  545. monster 'map_begi$,85,197,"--en--","MD_MARIN",1, .@event$;
  546. monster 'map_begi$,86,197,"--en--","MD_MARIN",1, .@event$;
  547. monster 'map_begi$,87,197,"--en--","MD_MARIN",1, .@event$;
  548. monster 'map_begi$,88,197,"--en--","MD_MARIN",1, .@event$;
  549. monster 'map_begi$,90,197,"--en--","MD_MARIN",1, .@event$;
  550. monster 'map_begi$,93,197,"--en--","MD_MARIN",1, .@event$;
  551. monster 'map_begi$,94,197,"--en--","MD_MARIN",1, .@event$;
  552. monster 'map_begi$,94,197,"--en--","MD_MARIN",1, .@event$;
  553. monster 'map_begi$,95,197,"--en--","MD_MARIN",1, .@event$;
  554. monster 'map_begi$,98,197,"--en--","MD_MARIN",1, .@event$;
  555. monster 'map_begi$,99,197,"--en--","MD_MARIN",1, .@event$;
  556. monster 'map_begi$,103,197,"--en--","MD_MARIN",1, .@event$;
  557. monster 'map_begi$,103,197,"--en--","MD_MARIN",1, .@event$;
  558. monster 'map_begi$,104,197,"--en--","MD_MARIN",1, .@event$;
  559. monster 'map_begi$,108,197,"--en--","MD_MARIN",1, .@event$;
  560. monster 'map_begi$,111,197,"--en--","MD_MARIN",1, .@event$;
  561. monster 'map_begi$,128,185,"--en--","MD_MARIN",1, .@event$;
  562. monster 'map_begi$,128,185,"--en--","MD_MARIN",1, .@event$;
  563. monster 'map_begi$,130,185,"--en--","MD_MARIN",1, .@event$;
  564. monster 'map_begi$,132,185,"--en--","MD_MARIN",1, .@event$;
  565. monster 'map_begi$,132,185,"--en--","MD_MARIN",1, .@event$;
  566. monster 'map_begi$,132,185,"--en--","MD_MARIN",1, .@event$;
  567. monster 'map_begi$,133,185,"--en--","MD_MARIN",1, .@event$;
  568. monster 'map_begi$,134,185,"--en--","MD_MARIN",1, .@event$;
  569. monster 'map_begi$,135,185,"--en--","MD_MARIN",1, .@event$;
  570. monster 'map_begi$,136,185,"--en--","MD_MARIN",1, .@event$;
  571. monster 'map_begi$,137,185,"--en--","MD_MARIN",1, .@event$;
  572. monster 'map_begi$,141,185,"--en--","MD_MARIN",1, .@event$;
  573. monster 'map_begi$,143,185,"--en--","MD_MARIN",1, .@event$;
  574. monster 'map_begi$,144,185,"--en--","MD_MARIN",1, .@event$;
  575. monster 'map_begi$,144,185,"--en--","MD_MARIN",1, .@event$;
  576. monster 'map_begi$,146,185,"--en--","MD_MARIN",1, .@event$;
  577. monster 'map_begi$,150,185,"--en--","MD_MARIN",1, .@event$;
  578. monster 'map_begi$,150,185,"--en--","MD_MARIN",1, .@event$;
  579. end;
  580. OnMobDead:
  581. if (mobcount( 'map_begi$, instance_npcname("poring_village_3") + "::OnMobDead" ) > 4)
  582. end;
  583. killmonster 'map_begi$, instance_npcname("poring_village_3") + "::OnMobDead";
  584. mapannounce 'map_begi$, "King Poring: Excuse me... But... Would you please get back now?...", bc_map, 0xFFFF;
  585. sleep 2000;
  586. mapannounce 'map_begi$, "Emily: What? Who are you?", bc_map, 0xFFFF00;
  587. sleep 2000;
  588. mapannounce 'map_begi$, "King Poring: I am the leader of this Poring Village. Sorry for the late introduction.", bc_map, 0xFFFF;
  589. sleep 2000;
  590. mapannounce 'map_begi$, "King Poring: Maybe there is some misunderstanding on our flyers. This village is so poor and has nothing valuable.", bc_map, 0xFFFF;
  591. sleep 2000;
  592. mapannounce 'map_begi$, "Emily: It's for me to judge after looking around more....", bc_map, 0xFFFF00;
  593. sleep 2000;
  594. mapannounce 'map_begi$, "King Poring: Ugh.... I don't like fighting but there is no choice.", bc_map, 0xFFFF;
  595. sleep 2000;
  596. monster 'map_begi$,182,194,"--en--","PORING",10;
  597. for ( .@i = 0; .@i < 10; ++.@i ) {
  598. setunitdata $@mobid[.@i], UMOB_MODE, (MD_CANMOVE | MD_LOOTER | MD_AGGRESSIVE | MD_CANATTACK);
  599. setunitdata $@mobid[.@i], UMOB_SPEED, 200;
  600. }
  601. monster 'map_begi$,182,194,"--en--","MD_KING_PORING",1, instance_npcname("poring_village_3") + "::OnBossDead";
  602. end;
  603. OnBossDead:
  604. if (mobcount( 'map_begi$, instance_npcname("poring_village_3") + "::OnBossDead" ) > 0)
  605. end;
  606. killmonster 'map_begi$, instance_npcname("poring_village_3") + "::OnBossDead";
  607. enablenpc instance_npcname("#gift");
  608. end;
  609. }
  610. 1@begi,117,108,5 script Blue Light Column#1 4_ENERGY_BLUE,4,4,{
  611. end;
  612. OnTouch:
  613. switch( rand(3) ) {
  614. case 0:
  615. unittalk getcharid(3), "" + strcharinfo(0) + " : Ohhhhh!!! Release the parrot inside!!!!";
  616. break;
  617. case 1:
  618. unittalk getcharid(3), "" + strcharinfo(0) + " : I think it's ok to peck someone right now!!";
  619. break;
  620. case 2:
  621. unittalk getcharid(3), "" + strcharinfo(0) + " : Have you been bitten by a mad parrot?";
  622. break;
  623. }
  624. transform 1629,60000;
  625. specialeffect2 EF_ENHANCE;
  626. sc_start SC_GLASTHEIM_STATE,30000,20;
  627. end;
  628. }
  629. 1@begi,37,165,5 duplicate(Blue Light Column#1) Blue Light Column#2 4_ENERGY_BLUE,4,4
  630. 1@begi,175,199,5 duplicate(Blue Light Column#1) Blue Light Column#3 4_ENERGY_BLUE,4,4
  631. 1@begi,199,186,5 script #gift 4_GEFFEN_03,{
  632. mes "[Emily]";
  633. mes "You can have all of the items you find in this dungeon. I already have some.";
  634. next;
  635. if (isbegin_quest(12418) == 1) {
  636. mes "[Emily]";
  637. mes "Ah, I found some items. Let me give you one of them. Just to celebrate your first visit!";
  638. next;
  639. if (rand(100) < 50)
  640. getitem 19238,1; // PoringTownOnion
  641. else
  642. getitem 19239,1; // PoringTownCarrot
  643. completequest 12418;
  644. }
  645. mes "[Emily]";
  646. mes "I don't need this novice box. You can take it. Now, let's go out side!";
  647. close2;
  648. getitem 23302,1; // PoringsPreciousBox
  649. warp "prt_fild05",149,238;
  650. end;
  651. }