MorseCave.txt 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225
  1. //===== rAthena Script =======================================
  2. //= Morse Cave
  3. //===== Description: =========================================
  4. //= [Walkthrough Conversion]
  5. //= Morse Cave Instance
  6. //===== Changelogs: ==========================================
  7. //= 1.0 First version. [Capuche]
  8. //============================================================
  9. moro_cav,61,69,3 script Senior Tracker#a1 4_M_JOB_ASSASSIN,{
  10. if (ep14_3_isle == 0) {
  11. mes "[Senior Tracker]";
  12. mes "This is our advance base";
  13. mes "to stop Morroc.";
  14. mes "I'm a tracker";
  15. mes "charged with leading my army";
  16. mes "to Morroc's lair.";
  17. close;
  18. }
  19. switch( checkquest(9319,PLAYTIME) ) {
  20. case -1:
  21. break;
  22. case 0:
  23. case 1:
  24. mes "[Senior Tracker]";
  25. mes "We're nowhere near close";
  26. mes "to stopping Morroc's resurrection.";
  27. mes "I can't sleep at night,";
  28. mes "knowing Morroc is doing everything he can";
  29. mes "to recover his strength.";
  30. mes "Could you come back tomorrow?";
  31. close;
  32. case 2:
  33. break;
  34. }
  35. switch( isbegin_quest(9318) ) {
  36. case 0:
  37. mes "[Senior Tracker]";
  38. mes "This is our advance base";
  39. mes "to stop Morroc.";
  40. mes "I'm a tracker";
  41. mes "charged with leading my army";
  42. mes "to Morroc's lair.";
  43. next;
  44. mes "[Senior Tracker]";
  45. mes "After a painstaking search,";
  46. mes "I've located";
  47. mes "the place with the highest chance of";
  48. mes "hiding Morroc inside.";
  49. next;
  50. mes "[Senior Tracker]";
  51. mes "According to my intel,";
  52. mes "Morroc is hiding out in this place,";
  53. mes "trying to recover";
  54. mes "his full strength.";
  55. next;
  56. mes "[Senior Tracker]";
  57. mes "Even though I've located this place myself,";
  58. mes "I have to admit";
  59. mes "that I'm not equipped to";
  60. mes "explore it by myself.";
  61. mes "I'm a tracker after all, not a fighter.";
  62. next;
  63. mes "[Senior Tracker]";
  64. mes "You look like";
  65. mes "a warrior spoiling for";
  66. mes "a good fight with Morroc,";
  67. mes "and I think";
  68. mes "you have a chance at winning it.";
  69. next;
  70. mes "[Senior Tracker]";
  71. mes "How'd you like to";
  72. mes "enter Morroc's lair,";
  73. mes "defeat him,";
  74. mes "and become the hero";
  75. mes "who saved the world from evil?";
  76. next;
  77. if (getcharid(1) < 1 || is_party_leader() == false) {
  78. mes "[Senior Tracker]";
  79. mes "If you're interested in my proposition,";
  80. mes "let me talk to your party leader.";
  81. mes "We'll discuss more details together.";
  82. close;
  83. }
  84. mes "[Senior Tracker]";
  85. mes "Morroc may not have recovered his full strength, but fighting him still";
  86. break;
  87. case 1:
  88. mes "[Senior Tracker]";
  89. mes "Finally you're back!";
  90. mes "What happened in there?";
  91. next;
  92. mes "- You relay";
  93. mes "your experience in the Red Flower. -";
  94. next;
  95. mes "[Senior Tracker]";
  96. mes "So Morroc got away.";
  97. mes "That's a shame.";
  98. next;
  99. if (checkquest(9318,HUNTING) == 2) {
  100. mes "[Senior Tracker]";
  101. mes "At least";
  102. mes "you wiped out";
  103. mes "his army.";
  104. mes "That's an accomplishment in itself.";
  105. next;
  106. }
  107. mes "[Senior Tracker]";
  108. mes "At least we know";
  109. mes "where he is.";
  110. mes "Could you come back tomorrow";
  111. mes "and help me track";
  112. mes "him down again?";
  113. mes "I'll be waiting here.";
  114. if (checkquest(9318,HUNTING) == 2)
  115. getitem 6684,1; // TokenOfHero
  116. completequest 9318;// Pursuing Hiding Morroc
  117. setquest 9319;// Pursuing Hiding Morroc Continues
  118. close;
  119. case 2:
  120. mes "[Senior Tracker]";
  121. mes "I knew you'd return.";
  122. mes "You look well-rested.";
  123. next;
  124. mes "[Senior Tracker]";
  125. mes "According to my intel,";
  126. mes "Morroc is hiding out in this place,";
  127. mes "recovering his strength.";
  128. next;
  129. mes "[Senior Tracker]";
  130. mes "Fighting Morroc";
  131. break;
  132. }
  133. mes "takes more than a few warriors, no matter how strong they are.";
  134. mes "I recommend you join forces with";
  135. mes "as many comrades as you can find.";
  136. mes "Are you ready to enter the Red Flower";
  137. mes "where Morroc is believed to be hiding?";
  138. if (getcharid(1) > 0 && is_party_leader() == true) {
  139. next;
  140. if (select( "No.", "Yes." ) == 1) {
  141. mes "[Senior Tracker]";
  142. mes "Come back";
  143. mes "if you change your mind.";
  144. close;
  145. }
  146. mes "[Senior Tracker]";
  147. mes "The entrance to the Red Flower";
  148. mes "has opened.";
  149. mes "It will only stay open for a while.";
  150. mes "You'd better use it";
  151. mes "while you can.";
  152. if (instance_create("Morse's Cave") >= 0)
  153. 'party_id = getcharid(1);
  154. }
  155. close;
  156. }
  157. moro_cav,57,69,3 script Red Flower#a1 CLEAR_NPC,{
  158. if (ep14_3_isle == 0) {
  159. mes "[Senior Tracker]";
  160. mes "This is our advance base";
  161. mes "to stop Morroc.";
  162. mes "I'm a tracker";
  163. mes "charged with leading my army";
  164. mes "to Morroc's lair.";
  165. close;
  166. }
  167. if (isbegin_quest(9318) == 1) {
  168. mes "- The Red Flower is closed.";
  169. mes "You cannot enter it yet. -";
  170. close;
  171. }
  172. switch( checkquest(9319,PLAYTIME) ) {
  173. case -1:
  174. break;
  175. case 0:
  176. case 1:
  177. mes "- The Red Flower is closed.";
  178. mes "You cannot enter it yet. -";
  179. close;
  180. case 2:
  181. break;
  182. }
  183. if (select( "Do not enter the Red Flower.", "Enter the Red Flower." ) == 1) {
  184. mes "- You can sense some sinister energy. -";
  185. close;
  186. }
  187. switch( instance_enter("Morse's Cave") ) {
  188. case IE_OTHER:
  189. mes "An unknown error occurred.";
  190. close;
  191. case IE_NOINSTANCE:
  192. mes "The Memorial dungeon Morse's Cave does not exist.";
  193. mes "Your party leader has not yet created the Memorial dungeon.";
  194. close;
  195. case IE_NOMEMBER:
  196. mes "Only party members can enter this Memorial dungeon.";
  197. close;
  198. case IE_OK:
  199. mapannounce 'map_rev$, getpartyname( getcharid(1) ) + " party's " + strcharinfo(0) + " is entering Morse's Cave.", bc_map,0xFF99;
  200. if (isbegin_quest(9319) > 0)
  201. erasequest 9319;// Pursuing Hiding Morroc Continues
  202. if (isbegin_quest(9318) > 0)
  203. erasequest 9318;
  204. setquest 9318;// Pursuing Hiding Morroc
  205. // warp "1@rev",26,181;
  206. end;
  207. }
  208. end;
  209. OnInit:
  210. while(true) {
  211. sleep 15000;
  212. specialeffect 239;
  213. }
  214. end;
  215. }
  216. // Entrance
  217. 1@rev,27,181,0 script #RZ Memorial Start HIDDEN_WARP_NPC,4,4,{
  218. end;
  219. OnTouch:
  220. // note : party member can also trigger this event
  221. disablenpc instance_npcname("#RZ Memorial Start");
  222. 'soul_name$ = strcharinfo(0); // name displayed on soul is defined at entrance
  223. mes "";
  224. sleep2 500;
  225. mapannounce 'map_rev$, "Morroc: Who dares to disrupt my sleep?!", bc_map,0xEBFF;
  226. unittalk getcharid(3), "" + strcharinfo(0) + " : We came to the right place!";
  227. sleep2 3000;
  228. unittalk getcharid(3), "" + strcharinfo(0) + " : Wait! There's something ahead of us!";
  229. sleep2 3000;
  230. specialeffect2 EF_LOCKON;
  231. unittalk getcharid(3), "" + strcharinfo(0) + " : Are these hideous monsters Morroc's lackeys?";
  232. donpcevent instance_npcname("#RZ Event_1") + "::OnStart";
  233. end;
  234. }
  235. // 1@rev,31,181,0 script #RZ Event_1 HIDDEN_WARP_NPC,5,5,{
  236. 1@rev,1,1,0 script #RZ Event_1 HIDDEN_WARP_NPC,{
  237. end;
  238. OnStart:
  239. enablenpc instance_npcname("#RZ Event_1");
  240. .@label$ = instance_npcname("#RZ Event_1") + "::OnMobDead";
  241. monster 'map_rev$,38,180,"Morroc's Ghoul",3001,1, .@label$; // EP14_MORS_MOB1
  242. monster 'map_rev$,38,181,"Morroc's Ghoul",3001,1, .@label$;
  243. monster 'map_rev$,38,182,"Morroc's Ghoul",3001,1, .@label$;
  244. monster 'map_rev$,54,180,"Morroc's Ghoul",3001,1, .@label$;
  245. monster 'map_rev$,54,181,"Morroc's Ghoul",3001,1, .@label$;
  246. monster 'map_rev$,54,182,"Morroc's Ghoul",3001,1, .@label$;
  247. monster 'map_rev$,70,180,"Morroc's Ghoul",3001,1, .@label$;
  248. monster 'map_rev$,70,181,"Morroc's Ghoul",3001,1, .@label$;
  249. monster 'map_rev$,70,182,"Morroc's Ghoul",3001,1, .@label$;
  250. end;
  251. OnMobDead:
  252. if (mobcount( 'map_rev$, instance_npcname("#RZ Event_1") + "::OnMobDead" ) < 1) {
  253. donpcevent instance_npcname("Reaper Yanku#RZ Event_2") + "::OnStart";
  254. disablenpc instance_npcname("#RZ Event_1");
  255. }
  256. end;
  257. }
  258. 1@rev,64,181,4 script Reaper Yanku#RZ Event_2 3029,{
  259. end;
  260. OnStart:
  261. enablenpc instance_npcname("Reaper Yanku#RZ Event_2");
  262. npctalk "Reaper Yanku: *Chuckle* We meet again!";
  263. sleep 3000;
  264. npctalk "Reaper Yanku: You shouldn't have come. You're interrupting Lord Morroc from recovering his strength.";
  265. sleep 3000;
  266. npctalk "Reaper Yanku: This world resides in his mind.";
  267. sleep 3000;
  268. npctalk "Reaper Yanku: You can't do anything against his will. *Chuckle*";
  269. sleep 3000;
  270. npctalk "Reaper Yanku: Lord Morroc is expecting you. Let me take you to him. *Chuckle*";
  271. sleep 3000;
  272. disablenpc instance_npcname("Reaper Yanku#RZ Event_2");
  273. enablenpc instance_npcname("#RZ Event_3");
  274. sleep 3000;
  275. /* Officials scripts
  276. enablenpc instance_npcname("#RZ Move_30");
  277. enablenpc instance_npcname("#RZ Move_31");
  278. enablenpc instance_npcname("#RZ Move_32");
  279. */
  280. mapwarp 'map_rev$,'map_rev$,103,177; // note: officially players are warped when the next event start - player entering can't access to the current event
  281. end;
  282. }
  283. // Weakened Morroc Room
  284. 1@rev,104,176,0 script #RZ Event_3 HIDDEN_WARP_NPC,4,4,{
  285. end;
  286. OnTouch: // note : party member can also trigger this event
  287. mes ""; // fix me
  288. disablenpc instance_npcname("#RZ Event_3");
  289. enablenpc instance_npcname("Weakened Morroc#RZ1");
  290. unittalk getcharid(3), "" + strcharinfo(0) + " : Finally, here we are, Morroc.";
  291. sleep2 3000;
  292. unittalk getcharid(3), "" + strcharinfo(0) + " : It's been almost too easy to find you,";
  293. sleep2 3000;
  294. unittalk getcharid(3), "" + strcharinfo(0) + " : but it doesn't matter; you'll die today!";
  295. sleep2 3000;
  296. specialeffect2 EF_LOCKON;
  297. donpcevent instance_npcname("Weakened Morroc#RZ1") + "::OnTalk1";
  298. end;
  299. }
  300. 1@rev,111,178,4 script Weakened Morroc#RZ1 1916,{
  301. end;
  302. OnTalk1:
  303. npctalk "Weakened Morroc: I should punish you for disturbing my slumber.";
  304. sleep 3000;
  305. npctalk "Weakened Morroc: Do you really think you can stop me?";
  306. sleep 3000;
  307. npctalk "Weakened Morroc: I'll make you regret ever coming here.";
  308. sleep 3000;
  309. npctalk "Weakened Morroc: I may have not recovered my full strength,";
  310. specialeffect EF_ENERGYCOAT;
  311. sleep 3000;
  312. npctalk "Weakened Morroc: but I still can take down a bunch of you easily.";
  313. sleep 3000;
  314. npctalk "Weakened Morroc: Death is your only escape!";
  315. specialeffect EF_VOLCANO;
  316. sleep 3000;
  317. disablenpc instance_npcname("Weakened Morroc#RZ1");
  318. donpcevent instance_npcname("Weakened Morroc#control") + "::OnStart";
  319. end;
  320. OnTalk2:
  321. enablenpc instance_npcname("Weakened Morroc#RZ1");
  322. npctalk "Weakened Morroc: I'm sorry, but I haven't recovered my full strength.";
  323. sleep 3000;
  324. npctalk "Weakened Morroc: I'll have to leave you to my soldiers for now.";
  325. sleep 3000;
  326. npctalk "Weakened Morroc: Do your worst to get out of my world!";
  327. sleep 3000;
  328. npctalk "Weakened Morroc: In the end, you'll learn the meaning of helplessness in the most painful way!";
  329. sleep 3000;
  330. npctalk "Weakened Morroc: And your souls will be mine! Mwah hah hah!";
  331. sleep 3000;
  332. disablenpc instance_npcname("Weakened Morroc#RZ1");
  333. sleep 3000;
  334. /* Officials scripts use WARPNPC
  335. enablenpc instance_npcname("#RZ Move_1");
  336. enablenpc instance_npcname("#RZ Move_2");
  337. enablenpc instance_npcname("#RZ Move_3");
  338. enablenpc instance_npcname("#RZ Move_4");
  339. */
  340. enablenpc instance_npcname("#Battle_1RZ1");
  341. enablenpc instance_npcname("#Battle_1RZ2");
  342. for ( .@i = 1; .@i <= 12; .@i++ )
  343. enablenpc instance_npcname( "#Pause Effect RZ" + .@i );
  344. for ( .@i = 1; .@i <= 8; .@i++ )
  345. enablenpc instance_npcname( "#RZ Debuff_" + .@i );
  346. getpartymember 'party_id, 1, .@char_id;
  347. getpartymember 'party_id, 2, .@account_id;
  348. for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
  349. if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
  350. continue;
  351. if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$) {
  352. if ((.@count % 2) == 0) // Right
  353. warp 'map_rev$, rand(33,36), rand(117,118), .@char_id[.@i];
  354. else // Left
  355. warp 'map_rev$, rand(112,114), rand(116,118), .@char_id[.@i];
  356. .@count++;
  357. }
  358. }
  359. end;
  360. }
  361. 1@rev,1,1,0 script Weakened Morroc#control HIDDEN_WARP_NPC,{
  362. end;
  363. OnStart:
  364. enablenpc instance_npcname("Weakened Morroc#control");
  365. monster 'map_rev$,111,178,"Weakened Morroc",2998,1, instance_npcname("Weakened Morroc#control") + "::OnMobDead"; // EP14_MORS_EVENT
  366. end;
  367. OnMobDead:
  368. donpcevent instance_npcname("Weakened Morroc#RZ1") + "::OnTalk2";
  369. disablenpc instance_npcname("Weakened Morroc#control");
  370. end;
  371. }
  372. 1@rev,34,126,4 script Reaper Yanku#RZ Event_3 3029,{ end; }
  373. 1@rev,112,126,4 duplicate(Reaper Yanku#RZ Event_3) Reaper Yanku#RZ Event_4 3029
  374. 1@rev,34,55,4 duplicate(Reaper Yanku#RZ Event_3) Reaper Yanku#RZ Event_5 3029
  375. 1@rev,112,48,4 duplicate(Reaper Yanku#RZ Event_3) Reaper Yanku#RZ Event_6 3029
  376. // Battle 1 - waves, event A - left side
  377. // 1@rev,35,119,0 script #Battle_1RZ1 HIDDEN_WARP_NPC,10,10,{
  378. 1@rev,35,119,0 script #Battle_1RZ1 HIDDEN_WARP_NPC,2,2,{
  379. end;
  380. OnTouch:
  381. pcblockmove 0, true;
  382. if ('status_battle[0] == 0) {
  383. 'status_battle[0] = 1;
  384. donpcevent instance_npcname("#RZ Memorial Effect 1") + "::OnStart";
  385. mapannounce 'map_rev$, "Morroc: How do you like to be separated from each other and have your bodies and minds bound?", bc_map,0xEBFF;
  386. sleep2 3000;
  387. mapannounce 'map_rev$, "Morroc: You're trespassing! Riff-raff like you have no business in here!", bc_map,0xEBFF;
  388. sleep2 3000;
  389. mapannounce 'map_rev$, "Morroc: Your bodies are mine to control!", bc_map,0xEBFF;
  390. sleep2 3000;
  391. mapannounce 'map_rev$, "Morroc: Your souls are food for my resurrection!", bc_map,0xEBFF;
  392. sleep2 3000;
  393. mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
  394. donpcevent instance_npcname("#morse_cave_wave_1") + "::OnStart";
  395. }
  396. end;
  397. }
  398. // Event B - right side
  399. // 1@rev,112,126,0 script #Battle_1RZ2 HIDDEN_WARP_NPC,10,10
  400. 1@rev,112,116,0 script #Battle_1RZ2 HIDDEN_WARP_NPC,2,2,{
  401. end;
  402. OnTouch:
  403. pcblockmove 0, true;
  404. if ('status_battle[1] == 0) {
  405. 'status_battle[1] = 1;
  406. donpcevent instance_npcname("#RZ Memorial Effect 2") + "::OnStart";
  407. }
  408. end;
  409. }
  410. 1@rev,1,1,0 script #morse_cave_wave_1 HIDDEN_WARP_NPC,{
  411. end;
  412. OnStart:
  413. enablenpc instance_npcname("#morse_cave_wave_1");
  414. sleep 5000;
  415. callsub( S_Spawn,0 );
  416. sleep 20000;
  417. callsub( S_Spawn,0 );
  418. sleep 20000;
  419. callsub( S_Spawn,0 );
  420. mapannounce 'map_rev$, "Morroc: My soldiers, make them suffer! Feast on their bodies and souls!", bc_map,0xEBFF;
  421. sleep 20000;
  422. callsub( S_Spawn,0 );
  423. sleep 20000;
  424. callsub( S_Spawn,0 );
  425. mapannounce 'map_rev$, "Morroc: Not enough. Make them feel terror!", bc_map,0xEBFF;
  426. sleep 20000;
  427. callsub( S_Spawn,0 );
  428. sleep 20000;
  429. callsub( S_Spawn,0 );
  430. mapannounce 'map_rev$, "Morroc: Resist me! Fight to the death!", bc_map,0xEBFF;
  431. sleep 20000;
  432. callsub( S_Spawn,0 );
  433. sleep 15000;
  434. callsub( S_Spawn,1 );
  435. mapannounce 'map_rev$, "Morroc: Mwa hah hah, I can feel my power returning!", bc_map,0xEBFF;
  436. sleep 10000;
  437. callsub( S_Spawn,2 );
  438. sleep 12000;
  439. .@count[0] = mobcount( 'map_rev$, instance_npcname("#morse_cave_wave_1") + "::OnMobDead" );
  440. .@count[1] = mobcount( 'map_rev$, instance_npcname("#morse_cave_wave_1") + "::OnMobDead2" );
  441. killmonster 'map_rev$, instance_npcname("#morse_cave_wave_1") + "::OnMobDead";
  442. killmonster 'map_rev$, instance_npcname("#morse_cave_wave_1") + "::OnMobDead2";
  443. disablenpc instance_npcname("#Battle_1RZ1");
  444. disablenpc instance_npcname("#Battle_1RZ2");
  445. for ( .@i = 1; .@i <= 12; .@i++ )
  446. donpcevent instance_npcname( "#Pause Effect RZ" + .@i ) + "::OnStop";
  447. sleep 3000;
  448. if (.@count[0] > 19 || .@count[1] > 19) {
  449. .@reaper$[0] = instance_npcname("Reaper Yanku#RZ Event_3");
  450. .@reaper$[1] = instance_npcname("Reaper Yanku#RZ Event_4");
  451. enablenpc .@reaper$[0];
  452. enablenpc .@reaper$[1];
  453. npctalk "You're pathetic.", .@reaper$[0];
  454. npctalk "You're pathetic.", .@reaper$[1];
  455. sleep 3000;
  456. npctalk "Weaklings like you aren't enough food for Lord Morroc", .@reaper$[0];
  457. npctalk "Weaklings like you aren't enough food for Lord Morroc", .@reaper$[1];
  458. sleep 3000;
  459. npctalk "to get the energy he needs for a full recovery.", .@reaper$[0];
  460. npctalk "to get the energy he needs for a full recovery.", .@reaper$[1];
  461. sleep 3000;
  462. npctalk "I'll give you one chance to leave. NOW!", .@reaper$[0];
  463. npctalk "I'll give you one chance to leave. NOW!", .@reaper$[1];
  464. sleep 3000;
  465. disablenpc .@reaper$[0];
  466. disablenpc .@reaper$[1];
  467. sleep 5000;
  468. /* Officials scripts
  469. enablenpc instance_npcname("#RZ Move_5a");// warp to prontera,97,167
  470. enablenpc instance_npcname("#RZ Move_6a");
  471. enablenpc instance_npcname("#RZ Move_7a");
  472. enablenpc instance_npcname("#RZ Move_8a");
  473. enablenpc instance_npcname("#RZ Move_9a");
  474. enablenpc instance_npcname("#RZ Move_10a");
  475. enablenpc instance_npcname("#RZ Move_11a");
  476. enablenpc instance_npcname("#RZ Move_12a");
  477. */
  478. getpartymember 'party_id, 1, .@char_id;
  479. getpartymember 'party_id, 2, .@account_id;
  480. for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
  481. if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
  482. continue;
  483. if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$)
  484. pcblockmove .@account_id[.@i], false;
  485. }
  486. mapwarp 'map_rev$,"prontera",97,167;
  487. }
  488. else {
  489. mapannounce 'map_rev$, "Morroc: You're more resilient than I thought.", bc_map,0xEBFF;
  490. sleep 2000;
  491. mapannounce 'map_rev$, "Morroc: But enough is enough.", bc_map,0xEBFF;
  492. sleep 5000;
  493. /* Officials scripts
  494. enablenpc instance_npcname("#RZ Move_5");// warp to 1@rev,31,50
  495. enablenpc instance_npcname("#RZ Move_6");
  496. enablenpc instance_npcname("#RZ Move_7");
  497. enablenpc instance_npcname("#RZ Move_8");
  498. enablenpc instance_npcname("#RZ Move_9");
  499. enablenpc instance_npcname("#RZ Move_10");
  500. enablenpc instance_npcname("#RZ Move_11");
  501. enablenpc instance_npcname("#RZ Move_12");
  502. */
  503. for ( .@i = 9; .@i <= 15; .@i++ )
  504. enablenpc instance_npcname( "#RZ Debuff_" + .@i );
  505. enablenpc instance_npcname("#Battle_2RZ1");
  506. for ( .@i = 1; .@i <= 12; .@i++ )
  507. enablenpc instance_npcname( "#Pause Effecto RZ" + .@i );
  508. warpparty 'map_rev$,31,50, 'party_id, 'map_rev$,1,1;
  509. }
  510. for ( .@i = 1; .@i <= 8; .@i++ )
  511. disablenpc instance_npcname( "#RZ Debuff_" + .@i );
  512. disablenpc instance_npcname("#morse_cave_wave_1");
  513. donpcevent instance_npcname("#RZ Memorial Effect 1") + "::OnStop";
  514. donpcevent instance_npcname("#RZ Memorial Effect 2") + "::OnStop";
  515. end;
  516. S_Spawn:
  517. .@additionnal_monster = getarg(0);
  518. .@label$ = instance_npcname("#morse_cave_wave_1") + "::OnMobDead";
  519. monster 'map_rev$,33,128,"Morroc's Ghoul",3001,1, .@label$;// EP14_MORS_MOB1
  520. monster 'map_rev$,42,120,"Morroc's Ghoul",3001,1, .@label$;
  521. monster 'map_rev$,34,111,"Morroc's Ghoul",3001,1, .@label$;
  522. monster 'map_rev$,25,119,"Morroc's Ghoul",3001,1, .@label$;
  523. if (.@additionnal_monster == 1)
  524. monster 'map_rev$,33,111,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  525. else if (.@additionnal_monster == 2)
  526. monster 'map_rev$,32,128,"Morroc's Archer Skeleton",3003,1, .@label$;
  527. if ('status_battle[1] == true) {
  528. .@label$ = instance_npcname("#morse_cave_wave_1") + "::OnMobDead2";
  529. monster 'map_rev$,112,126,"Morroc's Ghoul",3001,1, .@label$;// EP14_MORS_MOB1
  530. monster 'map_rev$,120,118,"Morroc's Ghoul",3001,1, .@label$;
  531. monster 'map_rev$,112,109,"Morroc's Ghoul",3001,1, .@label$;
  532. monster 'map_rev$,103,117,"Morroc's Ghoul",3001,1, .@label$;
  533. if (.@additionnal_monster == 1)
  534. monster 'map_rev$,103,118,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  535. else if (.@additionnal_monster == 2)
  536. monster 'map_rev$,120,117,"Morroc's Archer Skeleton",3003,1, .@label$;
  537. }
  538. return;
  539. OnMobDead:
  540. OnMobDead2:
  541. end;
  542. }
  543. // display icewall every 30s
  544. 1@rev,33,117,0 script #Pause Effect RZ1 HIDDEN_WARP_NPC,1,1,{
  545. end;
  546. OnTouch:
  547. if (countstr( strnpcinfo(0), "Effecto" ) == 0)
  548. .@num = atoi( replacestr( strnpcinfo(2), "Pause Effect RZ", "" ) );
  549. else
  550. .@num = atoi( replacestr( strnpcinfo(2), "Pause Effecto RZ", "" ) ) + 20;
  551. if ('pause_effect[.@num] == 0) {
  552. 'pause_effect[.@num] = 1;
  553. specialeffect EF_ICEWALL;
  554. initnpctimer;
  555. }
  556. pcblockmove 0, true;
  557. if (.@num < 7 && 'status_battle[0] == 0) {
  558. mes ""; // fix me
  559. 'status_battle[0] = 1;
  560. donpcevent instance_npcname("#RZ Memorial Effect 1") + "::OnStart";
  561. mapannounce 'map_rev$, "Morroc: How do you like to be separated from each other and have your bodies and minds bound?", bc_map,0xEBFF;
  562. sleep2 3000;
  563. mapannounce 'map_rev$, "Morroc: You're trespassing! Riff-raff like you have no business in here!", bc_map,0xEBFF;
  564. sleep2 3000;
  565. mapannounce 'map_rev$, "Morroc: Your bodies are mine to control!", bc_map,0xEBFF;
  566. sleep2 3000;
  567. mapannounce 'map_rev$, "Morroc: Your souls are food for my resurrection!", bc_map,0xEBFF;
  568. sleep2 3000;
  569. mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
  570. donpcevent instance_npcname("#morse_cave_wave_1") + "::OnStart";
  571. }
  572. else if (.@num >= 7 && .@num < 13 && 'status_battle[1] == 0) {
  573. 'status_battle[1] = 1;
  574. donpcevent instance_npcname("#RZ Memorial Effect 2") + "::OnStart";
  575. }
  576. else if (.@num >= 21 && .@num < 33 && 'status_battle[2] == 0) {
  577. mes ""; // fix me
  578. 'status_battle[2] = 1;
  579. donpcevent instance_npcname("#RZ Memorial Effect 3") + "::OnStart";
  580. mapannounce 'map_rev$, "Morroc: This world of mine is evolving.", bc_map,0xEBFF;
  581. sleep2 2000;
  582. mapannounce 'map_rev$, "Morroc: My power is returning!", bc_map,0xEBFF;
  583. sleep2 3000;
  584. mapannounce 'map_rev$, "Morroc: Your bodies and souls are under my command!", bc_map,0xEBFF;
  585. sleep2 3000;
  586. mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
  587. donpcevent instance_npcname("#morse_cave_wave_2") + "::OnStart";
  588. }
  589. end;
  590. OnTimer30000:
  591. specialeffect EF_ICEWALL;
  592. initnpctimer;
  593. end;
  594. OnStop:
  595. stopnpctimer;
  596. disablenpc instance_npcname( strnpcinfo(0) );
  597. end;
  598. }
  599. 1@rev,36,118,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ2 HIDDEN_WARP_NPC,1,1
  600. 1@rev,36,121,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ3 HIDDEN_WARP_NPC,1,1
  601. 1@rev,34,122,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ4 HIDDEN_WARP_NPC,1,1
  602. 1@rev,31,121,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ5 HIDDEN_WARP_NPC,1,1
  603. 1@rev,31,118,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ6 HIDDEN_WARP_NPC,1,1
  604. // Event B - right side
  605. 1@rev,112,116,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ7 HIDDEN_WARP_NPC,1,1
  606. 1@rev,114,117,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ8 HIDDEN_WARP_NPC,1,1
  607. 1@rev,114,120,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ9 HIDDEN_WARP_NPC,1,1
  608. 1@rev,111,121,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ10 HIDDEN_WARP_NPC,1,1
  609. 1@rev,109,120,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ11 HIDDEN_WARP_NPC,1,1
  610. 1@rev,109,117,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ12 HIDDEN_WARP_NPC,1,1
  611. // Battle 2 - waves
  612. 1@rev,31,50,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ1 HIDDEN_WARP_NPC,1,1
  613. 1@rev,36,49,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ2 HIDDEN_WARP_NPC,1,1
  614. 1@rev,37,45,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ3 HIDDEN_WARP_NPC,1,1
  615. 1@rev,30,45,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ4 HIDDEN_WARP_NPC,1,1
  616. 1@rev,29,47,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ5 HIDDEN_WARP_NPC,1,1
  617. 1@rev,33,51,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ6 HIDDEN_WARP_NPC,1,1
  618. 1@rev,38,49,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ7 HIDDEN_WARP_NPC,1,1
  619. 1@rev,34,44,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ8 HIDDEN_WARP_NPC,1,1
  620. 1@rev,32,44,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ9 HIDDEN_WARP_NPC,1,1
  621. 1@rev,29,49,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ10 HIDDEN_WARP_NPC,1,1
  622. 1@rev,35,51,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ11 HIDDEN_WARP_NPC,1,1
  623. 1@rev,37,47,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ12 HIDDEN_WARP_NPC,1,1
  624. // Event A - left side - debuff
  625. 1@rev,33,111,0 script #RZ Debuff_1 HIDDEN_WARP_NPC,12,4,{
  626. end;
  627. OnTouch:
  628. pcblockmove 0, true;
  629. .@num = atoi( replacestr( strnpcinfo(2), "RZ Debuff_", "" ) );
  630. if (.@num < 5 && 'status_battle[0] == 0) {
  631. mes ""; // fix me
  632. 'status_battle[0] = 1;
  633. donpcevent instance_npcname("#RZ Memorial Effect 1") + "::OnStart";
  634. mapannounce 'map_rev$, "Morroc: How do you like to be separated from each other and have your bodies and minds bound?", bc_map,0xEBFF;
  635. sleep2 3000;
  636. mapannounce 'map_rev$, "Morroc: You're trespassing! Riff-raff like you have no business in here!", bc_map,0xEBFF;
  637. sleep2 3000;
  638. mapannounce 'map_rev$, "Morroc: Your bodies are mine to control!", bc_map,0xEBFF;
  639. sleep2 3000;
  640. mapannounce 'map_rev$, "Morroc: Your souls are food for my resurrection!", bc_map,0xEBFF;
  641. sleep2 3000;
  642. mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
  643. donpcevent instance_npcname("#morse_cave_wave_1") + "::OnStart";
  644. }
  645. else if (.@num >= 5 && .@num < 9 && 'status_battle[1] == 0) {
  646. 'status_battle[1] = 1;
  647. donpcevent instance_npcname("#RZ Memorial Effect 2") + "::OnStart";
  648. }
  649. else if (.@num >= 9 && .@num < 16 && 'status_battle[2] == 0) {
  650. mes ""; // fix me
  651. 'status_battle[2] = 1;
  652. donpcevent instance_npcname("#RZ Memorial Effect 3") + "::OnStart";
  653. mapannounce 'map_rev$, "Morroc: This world of mine is evolving.", bc_map,0xEBFF;
  654. sleep2 2000;
  655. mapannounce 'map_rev$, "Morroc: My power is returning!", bc_map,0xEBFF;
  656. sleep2 3000;
  657. mapannounce 'map_rev$, "Morroc: Your bodies and souls are under my command!", bc_map,0xEBFF;
  658. sleep2 3000;
  659. mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
  660. donpcevent instance_npcname("#morse_cave_wave_2") + "::OnStart";
  661. }
  662. end;
  663. }
  664. 1@rev,42,124,0 duplicate(#RZ Debuff_1) #RZ Debuff_2 HIDDEN_WARP_NPC,4,8
  665. 1@rev,25,124,0 duplicate(#RZ Debuff_1) #RZ Debuff_3 HIDDEN_WARP_NPC,4,8
  666. 1@rev,33,128,0 duplicate(#RZ Debuff_1) #RZ Debuff_4 HIDDEN_WARP_NPC,4,4
  667. // Event B - right side - debuff
  668. 1@rev,112,110,0 duplicate(#RZ Debuff_1) #RZ Debuff_5 HIDDEN_WARP_NPC,12,4
  669. 1@rev,103,122,0 duplicate(#RZ Debuff_1) #RZ Debuff_6 HIDDEN_WARP_NPC,4,7
  670. 1@rev,120,122,0 duplicate(#RZ Debuff_1) #RZ Debuff_7 HIDDEN_WARP_NPC,4,7
  671. 1@rev,112,126,0 duplicate(#RZ Debuff_1) #RZ Debuff_8 HIDDEN_WARP_NPC,4,3
  672. // Battle 2 - waves - debuff
  673. 1@rev,32,47,0 duplicate(#RZ Debuff_1) #RZ Debuff_9 HIDDEN_WARP_NPC,1,1
  674. 1@rev,24,48,0 duplicate(#RZ Debuff_1) #RZ Debuff_10 HIDDEN_WARP_NPC,3,5
  675. 1@rev,27,56,0 duplicate(#RZ Debuff_1) #RZ Debuff_11 HIDDEN_WARP_NPC,4,4
  676. 1@rev,43,47,0 duplicate(#RZ Debuff_1) #RZ Debuff_12 HIDDEN_WARP_NPC,3,4
  677. 1@rev,41,56,0 duplicate(#RZ Debuff_1) #RZ Debuff_13 HIDDEN_WARP_NPC,4,4
  678. 1@rev,34,56,0 duplicate(#RZ Debuff_1) #RZ Debuff_14 HIDDEN_WARP_NPC,2,3
  679. 1@rev,34,39,0 duplicate(#RZ Debuff_1) #RZ Debuff_15 HIDDEN_WARP_NPC,12,3
  680. // official npcs to block the player from moving
  681. // Event A - left side
  682. // 1@rev,28,125,0 script #RZ Debuff_1 HIDDEN_WARP_NPC,10,10,{
  683. // 1@rev,28,114,0 script #RZ Debuff_2 HIDDEN_WARP_NPC,10,10,{
  684. // 1@rev,39,114,0 script #RZ Debuff_3 HIDDEN_WARP_NPC,10,10,{
  685. // 1@rev,39,125,0 script #RZ Debuff_4 HIDDEN_WARP_NPC,10,10,{
  686. // Event B - right side
  687. // 1@rev,106,123,0 script #RZ Debuff_5 HIDDEN_WARP_NPC,10,10,{
  688. // 1@rev,106,112,0 script #RZ Debuff_6 HIDDEN_WARP_NPC,10,10,{
  689. // 1@rev,117,112,0 script #RZ Debuff_7 HIDDEN_WARP_NPC,10,10,{
  690. // 1@rev,117,123,0 script #RZ Debuff_8 HIDDEN_WARP_NPC,10,10,{
  691. // Battle 2 - waves
  692. // 1@rev,28,53,0 script #RZ Debuff_9 HIDDEN_WARP_NPC,10,10,{
  693. // 1@rev,28,42,0 script #RZ Debuff_10 HIDDEN_WARP_NPC,10,10,{
  694. // 1@rev,39,42,0 script #RZ Debuff_11 HIDDEN_WARP_NPC,10,10,{
  695. // 1@rev,39,53,0 script #RZ Debuff_12 HIDDEN_WARP_NPC,10,10,{
  696. // 1@rev,28,53,0 script #RZ Debuff Recovery_1 HIDDEN_WARP_NPC,10,10,{
  697. // 1@rev,28,42,0 script #RZ Debuff Recovery_2 HIDDEN_WARP_NPC,10,10,{
  698. // 1@rev,39,42,0 script #RZ Debuff Recovery_3 HIDDEN_WARP_NPC,10,10,{
  699. // 1@rev,39,53,0 script #RZ Debuff Recovery_4 HIDDEN_WARP_NPC,10,10,{
  700. // Battle 2 - waves
  701. // 1@rev,34,47,0 script #Battle_2RZ1 HIDDEN_WARP_NPC,10,10,{
  702. 1@rev,34,47,0 script #Battle_2RZ1 HIDDEN_WARP_NPC,3,3,{
  703. end;
  704. OnTouch:
  705. pcblockmove 0, true;
  706. if ('status_battle[2] == 0) {
  707. 'status_battle[2] = 1;
  708. donpcevent instance_npcname("#RZ Memorial Effect 3") + "::OnStart";
  709. mapannounce 'map_rev$, "Morroc: This world of mine is evolving.", bc_map,0xEBFF;
  710. sleep 2000;
  711. mapannounce 'map_rev$, "Morroc: My power is returning!", bc_map,0xEBFF;
  712. sleep 3000;
  713. mapannounce 'map_rev$, "Morroc: Your bodies and souls are under my command!", bc_map,0xEBFF;
  714. sleep 3000;
  715. mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
  716. donpcevent instance_npcname("#morse_cave_wave_2") + "::OnStart";
  717. }
  718. end;
  719. }
  720. 1@rev,1,1,0 script #morse_cave_wave_2 HIDDEN_WARP_NPC,{
  721. end;
  722. OnStart:
  723. enablenpc instance_npcname("#morse_cave_wave_2");
  724. .@label$ = instance_npcname("#morse_cave_wave_2") + "::OnMobDead";
  725. sleep 5000;
  726. callsub( S_Spawn );
  727. monster 'map_rev$,27,53,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  728. monster 'map_rev$,27,41,"Morroc's Archer Skeleton",3003,1, .@label$;
  729. mapannounce 'map_rev$, "Morroc: This power! It feels great! Mwah hah hah!", bc_map,0xEBFF;
  730. sleep 25000;
  731. callsub( S_Spawn );
  732. monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  733. monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
  734. mapannounce 'map_rev$, "Morroc: How do you like losing control of your own body? *Chuckle*", bc_map,0xEBFF;
  735. sleep 25000;
  736. callsub( S_Spawn );
  737. monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  738. monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
  739. monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
  740. sleep 25000;
  741. callsub( S_Spawn );
  742. monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  743. monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
  744. monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
  745. mapannounce 'map_rev$, "Morroc: More! I need more energy!", bc_map,0xEBFF;
  746. sleep 25000;
  747. callsub( S_Spawn );
  748. monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  749. monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
  750. monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
  751. mapannounce 'map_rev$, "Morroc: Mwah hah hah! Fear my army! Struggle harder!", bc_map,0xEBFF;
  752. sleep 25000;
  753. monster 'map_rev$,34,57,"Morroc's Ghoul",3001,1, .@label$;// EP14_MORS_MOB1
  754. monster 'map_rev$,43,48,"Morroc's Ghoul",3001,1, .@label$;
  755. monster 'map_rev$,33,38,"Morroc's Ghoul",3001,1, .@label$;
  756. monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  757. monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
  758. monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
  759. sleep 25000;
  760. callsub( S_Spawn );
  761. monster 'map_rev$,27,53,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  762. monster 'map_rev$,27,41,"Morroc's Archer Skeleton",3003,1, .@label$;
  763. monster 'map_rev$,40,41,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
  764. monster 'map_rev$,40,54,"Morroc's Verit",3005,1, .@label$;
  765. mapannounce 'map_rev$, "Morroc: You're pathetic, struggling to survive!", bc_map,0xEBFF;
  766. sleep 15000;
  767. callsub( S_Spawn );
  768. monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
  769. monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
  770. monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
  771. monster 'map_rev$,27,41,"Morroc's Verit",3005,1, .@label$;
  772. sleep 12000;
  773. .@count = mobcount( 'map_rev$, instance_npcname("#morse_cave_wave_2") + "::OnMobDead" );
  774. killmonster 'map_rev$, instance_npcname("#morse_cave_wave_2") + "::OnMobDead";
  775. disablenpc instance_npcname("#Battle_2RZ1");
  776. for ( .@i = 1; .@i <= 12; .@i++ )
  777. donpcevent instance_npcname( "#Pause Effecto RZ" + .@i ) + "::OnStop";
  778. sleep 3000;
  779. if (.@count > 19) {
  780. .@reaper$ = instance_npcname("Reaper Yanku#RZ Event_5");
  781. enablenpc .@reaper$;
  782. npctalk "You're pathetic.", .@reaper$;
  783. sleep 3000;
  784. npctalk "Weaklings like you aren't enough food for Lord Morroc", .@reaper$;
  785. sleep 3000;
  786. npctalk "to get the energy he needs for a full recovery.", .@reaper$;
  787. sleep 3000;
  788. npctalk "I'll give you one chance to leave. NOW!", .@reaper$;
  789. sleep 3000;
  790. disablenpc .@reaper$;
  791. sleep 5000;
  792. /* Officials scripts
  793. enablenpc instance_npcname("#Move_13a");// warp to prontera,97,167
  794. enablenpc instance_npcname("#Move_14a");
  795. enablenpc instance_npcname("#Move_15a");
  796. enablenpc instance_npcname("#Move_16a");
  797. */
  798. getpartymember 'party_id, 1, .@char_id;
  799. getpartymember 'party_id, 2, .@account_id;
  800. for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
  801. if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
  802. continue;
  803. if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$)
  804. pcblockmove .@account_id[.@i], false;
  805. }
  806. mapwarp 'map_rev$,"prontera",97,167;
  807. }
  808. else {
  809. mapannounce 'map_rev$, "Morroc: I'm surprised you've lasted this long. Thank you for helping me recover most of my strength.", bc_map,0xEBFF;
  810. sleep 4000;
  811. mapannounce 'map_rev$, "Morroc: Good, I feel rejuvenated.", bc_map,0xEBFF;
  812. sleep 3000;
  813. for ( .@i = 9; .@i <= 15; .@i++ )
  814. disablenpc instance_npcname( "#RZ Debuff_" + .@i );
  815. getpartymember 'party_id, 1, .@char_id;
  816. getpartymember 'party_id, 2, .@account_id;
  817. for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
  818. if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
  819. continue;
  820. if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$)
  821. pcblockmove .@account_id[.@i], false;
  822. }
  823. // enablenpc instance_npcname("#RZ Debuff Recovery_1");
  824. // enablenpc instance_npcname("#RZ Debuff Recovery_2");
  825. // enablenpc instance_npcname("#RZ Debuff Recovery_3");
  826. // enablenpc instance_npcname("#RZ Debuff Recovery_4");
  827. sleep 1000;
  828. // enablenpc instance_npcname("#RZ Move_13");// warp to 1@rev,104,48
  829. // enablenpc instance_npcname("#RZ Move_14");
  830. // enablenpc instance_npcname("#RZ Move_15");
  831. // enablenpc instance_npcname("#RZ Move_16");
  832. enablenpc instance_npcname("#Battle_3RZ1");
  833. mapwarp 'map_rev$,'map_rev$,104,48;
  834. }
  835. disablenpc instance_npcname("#morse_cave_wave_2");
  836. donpcevent instance_npcname("#RZ Memorial Effect 3") + "::OnStop";
  837. end;
  838. S_Spawn:
  839. .@label$ = instance_npcname("#morse_cave_wave_2") + "::OnMobDead";
  840. monster 'map_rev$,34,57,"Morroc's Ghoul",3001,1, .@label$;// EP14_MORS_MOB1
  841. monster 'map_rev$,43,48,"Morroc's Ghoul",3001,1, .@label$;
  842. monster 'map_rev$,33,38,"Morroc's Ghoul",3001,1, .@label$;
  843. monster 'map_rev$,24,48,"Morroc's Ghoul",3001,1, .@label$;
  844. return;
  845. OnMobDead:
  846. end;
  847. }
  848. // Display EF_CURSEATTACK effect overhead 'Soul' monster
  849. // Event A - left side
  850. 1@rev,34,120,0 script #RZ Memorial Effect 1 HIDDEN_WARP_NPC,{
  851. end;
  852. OnStart:
  853. .@npc_name$ = instance_npcname( strnpcinfo(0) );
  854. enablenpc .@npc_name$;
  855. getmapxy .@map$,.@x,.@y, UNITTYPE_NPC;
  856. monster 'map_rev$,.@x,.@y,('soul_name$ + "'s Soul"),3007,1, .@npc_name$ + "::OnStop"; // EP14_MORS_DUMMY
  857. initnpctimer;
  858. specialeffect EF_STORMGUST;
  859. specialeffect EF_CURSEATTACK;
  860. end;
  861. OnTimer2000:
  862. specialeffect EF_CURSEATTACK;
  863. initnpctimer;
  864. end;
  865. OnStop:
  866. stopnpctimer;
  867. killmonster 'map_rev$, instance_npcname( strnpcinfo(0) ) + "::OnStop";
  868. disablenpc instance_npcname( strnpcinfo(0) );
  869. end;
  870. }
  871. // Event B - right side
  872. 1@rev,112,118,0 duplicate(#RZ Memorial Effect 1) #RZ Memorial Effect 2 HIDDEN_WARP_NPC
  873. // Battle 2 - waves
  874. 1@rev,34,48,0 duplicate(#RZ Memorial Effect 1) #RZ Memorial Effect 3 HIDDEN_WARP_NPC
  875. // official range
  876. // 1@rev,34,120,0 script #RZ Memorial Effect 1 HIDDEN_WARP_NPC,4,4,{
  877. // 1@rev,112,118,0 duplicate(#RZ Memorial Effect 1) #RZ Memorial Effect 2 HIDDEN_WARP_NPC,4,4
  878. // 1@rev,34,48,0 duplicate(#RZ Memorial Effect 1) #RZ Memorial Effect 3 HIDDEN_WARP_NPC,4,4
  879. // Battle 3
  880. 1@rev,112,48,4 script Morocc Necromancer#RZ1 4_GHOST_STAND,{ end; }
  881. 1@rev,104,47,0 script #Battle_3RZ1 HIDDEN_WARP_NPC,5,5,{
  882. end;
  883. OnTouch:
  884. disablenpc instance_npcname("#Battle_3RZ1");
  885. mapannounce 'map_rev$, "Morroc: I can't let you go unscathed!", bc_map,0xEBFF;
  886. sleep2 3000;
  887. mapannounce 'map_rev$, "Morroc: Hah hah, my Necromancer. I'll leave them to you.", bc_map,0xEBFF;
  888. sleep2 3000;
  889. mapannounce 'map_rev$, "Morroc: My loyal soldier, I'll trust you with their deaths!", bc_map,0xEBFF;
  890. sleep2 3000;
  891. .@necromancer$ = instance_npcname("Morocc Necromancer#RZ1");
  892. enablenpc .@necromancer$;
  893. sleep2 3000;
  894. specialeffect EF_TWOHANDQUICKEN,AREA, .@necromancer$;
  895. npctalk "Morocc Necromancer: As you wish, My Lord!", .@necromancer$;
  896. sleep2 3000;
  897. npctalk "Morocc Necromancer: *Chuckle* You still have no idea, do you?", .@necromancer$;
  898. sleep2 3000;
  899. npctalk "Morocc Necromancer: The energy you generated to protect me while I was hiding within your soul", .@necromancer$;
  900. sleep2 3000;
  901. npctalk "Morocc Necromancer: has been converted to healing energy for Lord Morroc the moment you entered this world of his!", .@necromancer$;
  902. sleep2 3000;
  903. npctalk "Morocc Necromancer: *Chuckle* Your stupidity was a blessing for us. We don't need you anymore. DIE!", .@necromancer$;
  904. specialeffect EF_BEGINSPELL2,AREA, .@necromancer$;
  905. sleep2 3000;
  906. disablenpc .@necromancer$;
  907. donpcevent instance_npcname("#morse_cave_3") + "::OnStart";
  908. end;
  909. }
  910. 1@rev,1,1,0 script #morse_cave_3 HIDDEN_WARP_NPC,{
  911. end;
  912. OnStart:
  913. enablenpc instance_npcname("#morse_cave_3");
  914. monster 'map_rev$,112,48,"Morocc Necromancer",2999,1, instance_npcname("#morse_cave_3") + "::OnMobDead";// EP14_MORS_BOSSA
  915. end;
  916. OnMobDead:
  917. .@necromancer$ = instance_npcname("Morocc Necromancer#RZ1");
  918. enablenpc .@necromancer$;
  919. sleep 3000;
  920. npctalk "Morocc Necromancer: You're stronger than you look.", .@necromancer$;
  921. sleep 3000;
  922. npctalk "Morocc Necromancer: *Giggle* I'll show you what I'm truly capable of.", .@necromancer$;
  923. sleep 3000;
  924. npctalk "Morocc Necromancer: Beg me for your lives!", .@necromancer$;
  925. sleep 3000;
  926. npctalk "Morocc Necromancer: *Giggle*", .@necromancer$;
  927. sleep 3000;
  928. disablenpc .@necromancer$;
  929. monster 'map_rev$,112,48,"Morocc Necromancer",3000,1, instance_npcname("#morse_cave_3") + "::OnMobDead2";// EP14_MORS_BOSSB
  930. 'boss_id = $@mobid[0];
  931. donpcevent instance_npcname("#morse_cave_wave_3") + "::OnStart";
  932. donpcevent instance_npcname("#morse_cave_boss_talk") + "::OnStart";
  933. end;
  934. OnMobDead2:
  935. donpcevent instance_npcname("#morse_cave_wave_3") + "::OnStop";
  936. donpcevent instance_npcname("#morse_cave_boss_talk") + "::OnStop";
  937. donpcevent instance_npcname("#morse_cave_wave_3_mobs") + "::OnStop";
  938. sleep 3000;
  939. .@reaper$ = instance_npcname("Reaper Yanku#RZ Event_6");
  940. enablenpc .@reaper$;
  941. sleep 1000;
  942. npctalk "Reaper Yanku: Sigh, Necromancer, why did you have to die so quickly?", .@reaper$;
  943. sleep 3000;
  944. npctalk "Reaper Yanku: Don't be so happy!", .@reaper$;
  945. sleep 3000;
  946. npctalk "Reaper Yanku: Now that Lord Morroc has fully recovered his strength, you're as good as dead!", .@reaper$;
  947. sleep 3000;
  948. npctalk "Reaper Yanku: We'll meet again. *Chuckle*", .@reaper$;
  949. sleep 2000;
  950. hideonnpc .@reaper$;
  951. enablenpc instance_npcname("#RZ Move_17a");
  952. specialeffect EF_THUNDERSTORM,AREA, .@reaper$; // officially Morocc Necromancer#RZ1 display the effects but they have the same coordinates
  953. sleep 1000;
  954. specialeffect EF_LORD,AREA, .@reaper$;
  955. specialeffect EF_THUNDERSTORM,AREA, .@reaper$;
  956. sleep 1000;
  957. specialeffect EF_LORD,AREA, .@reaper$;
  958. end;
  959. }
  960. 1@rev,1,1,0 script #morse_cave_wave_3 HIDDEN_WARP_NPC,{
  961. end;
  962. OnStart:
  963. enablenpc instance_npcname("#morse_cave_wave_3");
  964. initnpctimer;
  965. end;
  966. OnTimer7000:
  967. stopnpctimer;
  968. donpcevent instance_npcname("#morse_cave_wave_3_mobs") + "::OnStart";
  969. end;
  970. OnStop:
  971. disablenpc instance_npcname("#morse_cave_wave_3");
  972. stopnpctimer;
  973. end;
  974. }
  975. 1@rev,1,1,0 script #morse_cave_boss_talk HIDDEN_WARP_NPC,{
  976. end;
  977. OnStart:
  978. initnpctimer;
  979. end;
  980. OnTimer8000:
  981. .@r = rand(4);
  982. if (.@r == 0)
  983. unittalk 'boss_id, "Morocc Necromancer: We the soldiers of Morroc know no mercy!";
  984. else if (.@r == 1)
  985. unittalk 'boss_id, "Morocc Necromancer: You're doing good so far. *Giggle*";
  986. else if (.@r == 2)
  987. unittalk 'boss_id, "Morocc Necromancer: I see you're weakening, though.";
  988. else
  989. unittalk 'boss_id, "Morocc Necromancer: Feel the power of his army!";
  990. initnpctimer;
  991. end;
  992. OnTimer25000:
  993. initnpctimer;
  994. end;
  995. OnStop:
  996. disablenpc instance_npcname("#morse_cave_boss_talk");
  997. stopnpctimer;
  998. end;
  999. }
  1000. 1@rev,1,1,0 script #morse_cave_wave_3_mobs HIDDEN_WARP_NPC,{
  1001. end;
  1002. OnStart:
  1003. enablenpc instance_npcname("#morse_cave_wave_3_mobs");
  1004. initnpctimer;
  1005. setarray 'coord[0],
  1006. 112,57,
  1007. 121,47,
  1008. 112,38,
  1009. 120,54,
  1010. 119,40,
  1011. 104,40,
  1012. 102,48;
  1013. 'num_coord = getarraysize('coord) / 2;
  1014. end;
  1015. OnTimer25000:
  1016. for ( .@i = 0; .@i < 'num_coord; .@i++ ) {
  1017. .@last = ( 'num_coord - .@i - 1 ) * 2;
  1018. .@r = rand( 'num_coord - .@i ) * 2;
  1019. setarray .@xy[0], 'coord[.@r], 'coord[.@r+1];
  1020. setarray 'coord[.@r], 'coord[.@last], 'coord[.@last+1];
  1021. setarray 'coord[.@last], .@xy[0], .@xy[1];
  1022. }
  1023. .@label$ = instance_npcname("#morse_cave_wave_3_mobs") + "::OnMobDead";
  1024. if (mobcount( 'map_rev$, .@label$ ) < 100) { // stop to 100 mobs for performance
  1025. monster 'map_rev$,'coord[0],'coord[1], "Morroc's Ghoul", 3001,1, .@label$; // EP14_MORS_MOB1
  1026. monster 'map_rev$,'coord[2],'coord[3], "Morroc's Ghoul", 3001,1, .@label$; // EP14_MORS_MOB1
  1027. monster 'map_rev$,'coord[4],'coord[5], "Morroc's Ghoul", 3001,1, .@label$; // EP14_MORS_MOB1
  1028. monster 'map_rev$,'coord[6],'coord[7], "Morroc's Osiris", 3002,1, .@label$; // EP14_MORS_MOB2
  1029. monster 'map_rev$,'coord[8],'coord[9], "Morroc's Archer Skeleton", 3003,1, .@label$; // EP14_MORS_MOB3
  1030. monster 'map_rev$,'coord[10],'coord[11], "Morroc's Wraith", 3004,1, .@label$; // EP14_MORS_MOB4
  1031. if (rand(100) < 20)
  1032. monster 'map_rev$,'coord[12],'coord[12], "Morroc's Archer Skeleton", 3003,1, .@label$; // EP14_MORS_MOB3
  1033. else
  1034. monster 'map_rev$,'coord[12],'coord[13], "Morroc's Verit", 3005,1, .@label$; // EP14_MORS_MOB5
  1035. // inaccurate
  1036. areamonster 'map_rev$,102,38,121,57, "#Poison", 3008,1, .@label$; // EP14_MORS_HIDDEN
  1037. }
  1038. initnpctimer;
  1039. end;
  1040. OnStop:
  1041. stopnpctimer;
  1042. killmonster 'map_rev$, instance_npcname("#morse_cave_wave_3_mobs") + "::OnMobDead";
  1043. disablenpc instance_npcname("#morse_cave_wave_3_mobs");
  1044. end;
  1045. OnMobDead:
  1046. end;
  1047. }
  1048. // 1@rev,106,57,0 script #Battle_3RZ2 HIDDEN_WARP_NPC,{
  1049. // 1@rev,120,54,0 script #Battle_3RZ3 HIDDEN_WARP_NPC,{
  1050. // 1@rev,120,55,0 script #Battle_3RZ4 HIDDEN_WARP_NPC,{
  1051. // 1@rev,120,56,0 script #Battle_3RZ5 HIDDEN_WARP_NPC,{
  1052. // 1@rev,120,57,0 script #Battle_3RZ6 HIDDEN_WARP_NPC,{
  1053. // 1@rev,120,58,0 script #Battle_3RZ7 HIDDEN_WARP_NPC,{
  1054. 1@rev,112,56,3 script #RZ Move_17a PORTAL,{
  1055. mes "Do you want to exit through the portal?";
  1056. next;
  1057. if (select( "No.", "Yes." ) == 2) {
  1058. mes "- Teleporting... -";
  1059. close2;
  1060. warp "moro_cav",59,63;
  1061. end;
  1062. }
  1063. end;
  1064. OnInstanceInit:
  1065. 'map_rev$ = instance_mapname("1@rev");
  1066. 'status_battle[0] = 0;
  1067. 'status_battle[1] = 0;
  1068. 'status_battle[2] = 0;
  1069. // Entrance
  1070. disablenpc instance_npcname("#RZ Event_1");
  1071. disablenpc instance_npcname("Reaper Yanku#RZ Event_2");
  1072. // Weakened Morroc
  1073. disablenpc instance_npcname("#RZ Event_3");
  1074. disablenpc instance_npcname("Weakened Morroc#RZ1");
  1075. disablenpc instance_npcname("Weakened Morroc#control");
  1076. // Battle 1
  1077. disablenpc instance_npcname("Reaper Yanku#RZ Event_3");
  1078. disablenpc instance_npcname("Reaper Yanku#RZ Event_4");
  1079. disablenpc instance_npcname("#Battle_1RZ1");
  1080. disablenpc instance_npcname("#Battle_1RZ2");
  1081. disablenpc instance_npcname("#RZ Memorial Effect 1");
  1082. disablenpc instance_npcname("#RZ Memorial Effect 2");
  1083. disablenpc instance_npcname("#morse_cave_wave_1");
  1084. for ( .@i = 1; .@i <= 12; .@i++ )
  1085. disablenpc instance_npcname( "#Pause Effect RZ" + .@i );
  1086. // Battle 2
  1087. disablenpc instance_npcname("Reaper Yanku#RZ Event_5");
  1088. disablenpc instance_npcname("#RZ Memorial Effect 3");
  1089. disablenpc instance_npcname("#morse_cave_wave_2");
  1090. disablenpc instance_npcname("#Battle_2RZ1");
  1091. for ( .@i = 1; .@i <= 12; .@i++ )
  1092. disablenpc instance_npcname( "#Pause Effecto RZ" + .@i );
  1093. // Battle 3
  1094. disablenpc instance_npcname("#morse_cave_3");
  1095. disablenpc instance_npcname("#morse_cave_wave_3");
  1096. disablenpc instance_npcname("Reaper Yanku#RZ Event_6");
  1097. disablenpc instance_npcname("#Battle_3RZ1");
  1098. disablenpc instance_npcname("Morocc Necromancer#RZ1");
  1099. disablenpc instance_npcname("#RZ Move_17a");
  1100. // Debuff - Battle 1 & 2
  1101. for ( .@i = 1; .@i <= 15; .@i++ )
  1102. disablenpc instance_npcname( "#RZ Debuff_" + .@i );
  1103. // reload
  1104. if ('party_id > 0) {
  1105. getpartymember 'party_id, 1, .@char_id;
  1106. getpartymember 'party_id, 2, .@account_id;
  1107. for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
  1108. if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
  1109. continue;
  1110. if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$)
  1111. pcblockmove .@account_id[.@i], false;
  1112. }
  1113. }
  1114. end;
  1115. }
  1116. /*
  1117. // Original warps
  1118. // Entrance -> Weakened Morroc
  1119. 1@rev,63,181,0 warp2 #RZ Move_30 10,10,1@rev,103,177
  1120. 1@rev,47,181,0 warp2 #RZ Move_31 10,10,1@rev,103,177
  1121. 1@rev,31,181,0 warp2 #RZ Move_32 10,10,1@rev,103,177
  1122. // Weakened Morroc -> Battle Wave 1a
  1123. 1@rev,106,172,0 warp2 #RZ Move_1 10,10,1@rev,33,117
  1124. 1@rev,106,172,0 warp2 #RZ Move_2 10,10,1@rev,33,117
  1125. 1@rev,117,172,0 warp2 #RZ Move_3 10,10,1@rev,33,117
  1126. 1@rev,117,183,0 warp2 #RZ Move_4 10,10,1@rev,33,117
  1127. // Weakened Morroc -> Battle Wave 1b
  1128. 1@rev,106,172,0 warp2 #RZ Move_1 10,10,1@rev,112,116
  1129. 1@rev,106,172,0 warp2 #RZ Move_2 10,10,1@rev,112,116
  1130. 1@rev,117,172,0 warp2 #RZ Move_3 10,10,1@rev,112,116
  1131. 1@rev,117,183,0 warp2 #RZ Move_4 10,10,1@rev,112,116
  1132. // Battle Wave 1a -> Battle Wave 2
  1133. 1@rev,28,125,0 warp2 #RZ Move_5 10,10,1@rev,31,50
  1134. 1@rev,28,114,0 warp2 #RZ Move_6 10,10,1@rev,31,50
  1135. 1@rev,39,114,0 warp2 #RZ Move_7 10,10,1@rev,31,50
  1136. 1@rev,39,125,0 warp2 #RZ Move_8 10,10,1@rev,31,50
  1137. // Battle Wave 1a -> Prontera
  1138. 1@rev,28,125,0 warp2 #RZ Move_5a 10,10,prontera,97,167
  1139. 1@rev,28,114,0 warp2 #RZ Move_6a 10,10,prontera,97,167
  1140. 1@rev,39,114,0 warp2 #RZ Move_7a 10,10,prontera,97,167
  1141. 1@rev,39,125,0 warp2 #RZ Move_8a 10,10,prontera,97,167
  1142. // Battle Wave 1b -> Battle Wave 2
  1143. 1@rev,106,123,0 warp2 #RZ Move_9 10,10,1@rev,31,50
  1144. 1@rev,106,112,0 warp2 #RZ Move_10 10,10,1@rev,31,50
  1145. 1@rev,117,112,0 warp2 #RZ Move_11 10,10,1@rev,31,50
  1146. 1@rev,117,123,0 warp2 #RZ Move_12 10,10,1@rev,31,50
  1147. // Battle Wave 1b -> Prontera
  1148. 1@rev,106,123,0 warp2 #RZ Move_9a 10,10,prontera,97,167
  1149. 1@rev,106,112,0 warp2 #RZ Move_10a 10,10,prontera,97,167
  1150. 1@rev,117,112,0 warp2 #RZ Move_11a 10,10,prontera,97,167
  1151. 1@rev,117,123,0 warp2 #RZ Move_12a 10,10,prontera,97,167
  1152. // Battle Wave 2 -> Final Battle
  1153. 1@rev,28,53,0 warp2 #RZ Move_13 10,10,1@rev,104,48
  1154. 1@rev,28,42,0 warp2 #RZ Move_14 10,10,1@rev,104,48
  1155. 1@rev,39,42,0 warp2 #RZ Move_15 10,10,1@rev,104,48
  1156. 1@rev,39,53,0 warp2 #RZ Move_16 10,10,1@rev,104,48
  1157. // Battle Wave 2 -> Prontera
  1158. 1@rev,28,53,0 warp2 #RZ Move_13a 10,10,prontera,97,167
  1159. 1@rev,28,42,0 warp2 #RZ Move_14a 10,10,prontera,97,167
  1160. 1@rev,39,42,0 warp2 #RZ Move_15a 10,10,prontera,97,167
  1161. 1@rev,39,53,0 warp2 #RZ Move_16a 10,10,prontera,97,167
  1162. */