rathena/npc/re/instances/MorseCave.txt
Atemo 78edf851a0
Suggestion of implementation of is_party_leader and is_guild_leader script commands. (#3617)
* Implemented is_party_leader and is_guild_leader script commands.

Thanks to @cydh !
2018-11-06 16:28:09 +01:00

1226 lines
46 KiB
Plaintext

//===== rAthena Script =======================================
//= Morse Cave
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Morse Cave Instance
//===== Changelogs: ==========================================
//= 1.0 First version. [Capuche]
//============================================================
moro_cav,61,69,3 script Senior Tracker#a1 4_M_JOB_ASSASSIN,{
if (ep14_3_isle == 0) {
mes "[Senior Tracker]";
mes "This is our advance base";
mes "to stop Morroc.";
mes "I'm a tracker";
mes "charged with leading my army";
mes "to Morroc's lair.";
close;
}
switch( checkquest(9319,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Senior Tracker]";
mes "We're nowhere near close";
mes "to stopping Morroc's resurrection.";
mes "I can't sleep at night,";
mes "knowing Morroc is doing everything he can";
mes "to recover his strength.";
mes "Could you come back tomorrow?";
close;
case 2:
break;
}
switch( isbegin_quest(9318) ) {
case 0:
mes "[Senior Tracker]";
mes "This is our advance base";
mes "to stop Morroc.";
mes "I'm a tracker";
mes "charged with leading my army";
mes "to Morroc's lair.";
next;
mes "[Senior Tracker]";
mes "After a painstaking search,";
mes "I've located";
mes "the place with the highest chance of";
mes "hiding Morroc inside.";
next;
mes "[Senior Tracker]";
mes "According to my intel,";
mes "Morroc is hiding out in this place,";
mes "trying to recover";
mes "his full strength.";
next;
mes "[Senior Tracker]";
mes "Even though I've located this place myself,";
mes "I have to admit";
mes "that I'm not equipped to";
mes "explore it by myself.";
mes "I'm a tracker after all, not a fighter.";
next;
mes "[Senior Tracker]";
mes "You look like";
mes "a warrior spoiling for";
mes "a good fight with Morroc,";
mes "and I think";
mes "you have a chance at winning it.";
next;
mes "[Senior Tracker]";
mes "How'd you like to";
mes "enter Morroc's lair,";
mes "defeat him,";
mes "and become the hero";
mes "who saved the world from evil?";
next;
if (getcharid(1) < 1 || is_party_leader() == false) {
mes "[Senior Tracker]";
mes "If you're interested in my proposition,";
mes "let me talk to your party leader.";
mes "We'll discuss more details together.";
close;
}
mes "[Senior Tracker]";
mes "Morroc may not have recovered his full strength, but fighting him still";
break;
case 1:
mes "[Senior Tracker]";
mes "Finally you're back!";
mes "What happened in there?";
next;
mes "- You relay";
mes "your experience in the Red Flower. -";
next;
mes "[Senior Tracker]";
mes "So Morroc got away.";
mes "That's a shame.";
next;
if (checkquest(9318,HUNTING) == 2) {
mes "[Senior Tracker]";
mes "At least";
mes "you wiped out";
mes "his army.";
mes "That's an accomplishment in itself.";
next;
}
mes "[Senior Tracker]";
mes "At least we know";
mes "where he is.";
mes "Could you come back tomorrow";
mes "and help me track";
mes "him down again?";
mes "I'll be waiting here.";
if (checkquest(9318,HUNTING) == 2)
getitem 6684,1; // TokenOfHero
completequest 9318;// Pursuing Hiding Morroc
setquest 9319;// Pursuing Hiding Morroc Continues
close;
case 2:
mes "[Senior Tracker]";
mes "I knew you'd return.";
mes "You look well-rested.";
next;
mes "[Senior Tracker]";
mes "According to my intel,";
mes "Morroc is hiding out in this place,";
mes "recovering his strength.";
next;
mes "[Senior Tracker]";
mes "Fighting Morroc";
break;
}
mes "takes more than a few warriors, no matter how strong they are.";
mes "I recommend you join forces with";
mes "as many comrades as you can find.";
mes "Are you ready to enter the Red Flower";
mes "where Morroc is believed to be hiding?";
if (getcharid(1) > 0 && is_party_leader() == true) {
next;
if (select( "No.", "Yes." ) == 1) {
mes "[Senior Tracker]";
mes "Come back";
mes "if you change your mind.";
close;
}
mes "[Senior Tracker]";
mes "The entrance to the Red Flower";
mes "has opened.";
mes "It will only stay open for a while.";
mes "You'd better use it";
mes "while you can.";
if (instance_create("Morse's Cave") >= 0)
'party_id = getcharid(1);
}
close;
}
moro_cav,57,69,3 script Red Flower#a1 CLEAR_NPC,{
if (ep14_3_isle == 0) {
mes "[Senior Tracker]";
mes "This is our advance base";
mes "to stop Morroc.";
mes "I'm a tracker";
mes "charged with leading my army";
mes "to Morroc's lair.";
close;
}
if (isbegin_quest(9318) == 1) {
mes "- The Red Flower is closed.";
mes "You cannot enter it yet. -";
close;
}
switch( checkquest(9319,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "- The Red Flower is closed.";
mes "You cannot enter it yet. -";
close;
case 2:
break;
}
if (select( "Do not enter the Red Flower.", "Enter the Red Flower." ) == 1) {
mes "- You can sense some sinister energy. -";
close;
}
switch( instance_enter("Morse's Cave") ) {
case IE_OTHER:
mes "An unknown error occurred.";
close;
case IE_NOINSTANCE:
mes "The Memorial dungeon Morse's Cave does not exist.";
mes "Your party leader has not yet created the Memorial dungeon.";
close;
case IE_NOMEMBER:
mes "Only party members can enter this Memorial dungeon.";
close;
case IE_OK:
mapannounce 'map_rev$, getpartyname( getcharid(1) ) + " party's " + strcharinfo(0) + " is entering Morse's Cave.", bc_map,0xFF99;
if (isbegin_quest(9319) > 0)
erasequest 9319;// Pursuing Hiding Morroc Continues
if (isbegin_quest(9318) > 0)
erasequest 9318;
setquest 9318;// Pursuing Hiding Morroc
// warp "1@rev",26,181;
end;
}
end;
OnInit:
while(true) {
sleep 15000;
specialeffect 239;
}
end;
}
// Entrance
1@rev,27,181,0 script #RZ Memorial Start HIDDEN_WARP_NPC,4,4,{
end;
OnTouch:
// note : party member can also trigger this event
disablenpc instance_npcname("#RZ Memorial Start");
'soul_name$ = strcharinfo(0); // name displayed on soul is defined at entrance
mes "";
sleep2 500;
mapannounce 'map_rev$, "Morroc: Who dares to disrupt my sleep?!", bc_map,0xEBFF;
unittalk getcharid(3), "" + strcharinfo(0) + " : We came to the right place!";
sleep2 3000;
unittalk getcharid(3), "" + strcharinfo(0) + " : Wait! There's something ahead of us!";
sleep2 3000;
specialeffect2 EF_LOCKON;
unittalk getcharid(3), "" + strcharinfo(0) + " : Are these hideous monsters Morroc's lackeys?";
donpcevent instance_npcname("#RZ Event_1") + "::OnStart";
end;
}
// 1@rev,31,181,0 script #RZ Event_1 HIDDEN_WARP_NPC,5,5,{
1@rev,1,1,0 script #RZ Event_1 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#RZ Event_1");
.@label$ = instance_npcname("#RZ Event_1") + "::OnMobDead";
monster 'map_rev$,38,180,"Morroc's Ghoul",3001,1, .@label$; // EP14_MORS_MOB1
monster 'map_rev$,38,181,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,38,182,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,54,180,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,54,181,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,54,182,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,70,180,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,70,181,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,70,182,"Morroc's Ghoul",3001,1, .@label$;
end;
OnMobDead:
if (mobcount( 'map_rev$, instance_npcname("#RZ Event_1") + "::OnMobDead" ) < 1) {
donpcevent instance_npcname("Reaper Yanku#RZ Event_2") + "::OnStart";
disablenpc instance_npcname("#RZ Event_1");
}
end;
}
1@rev,64,181,4 script Reaper Yanku#RZ Event_2 3029,{
end;
OnStart:
enablenpc instance_npcname("Reaper Yanku#RZ Event_2");
npctalk "Reaper Yanku: *Chuckle* We meet again!";
sleep 3000;
npctalk "Reaper Yanku: You shouldn't have come. You're interrupting Lord Morroc from recovering his strength.";
sleep 3000;
npctalk "Reaper Yanku: This world resides in his mind.";
sleep 3000;
npctalk "Reaper Yanku: You can't do anything against his will. *Chuckle*";
sleep 3000;
npctalk "Reaper Yanku: Lord Morroc is expecting you. Let me take you to him. *Chuckle*";
sleep 3000;
disablenpc instance_npcname("Reaper Yanku#RZ Event_2");
enablenpc instance_npcname("#RZ Event_3");
sleep 3000;
/* Officials scripts
enablenpc instance_npcname("#RZ Move_30");
enablenpc instance_npcname("#RZ Move_31");
enablenpc instance_npcname("#RZ Move_32");
*/
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
end;
}
// Weakened Morroc Room
1@rev,104,176,0 script #RZ Event_3 HIDDEN_WARP_NPC,4,4,{
end;
OnTouch: // note : party member can also trigger this event
mes ""; // fix me
disablenpc instance_npcname("#RZ Event_3");
enablenpc instance_npcname("Weakened Morroc#RZ1");
unittalk getcharid(3), "" + strcharinfo(0) + " : Finally, here we are, Morroc.";
sleep2 3000;
unittalk getcharid(3), "" + strcharinfo(0) + " : It's been almost too easy to find you,";
sleep2 3000;
unittalk getcharid(3), "" + strcharinfo(0) + " : but it doesn't matter; you'll die today!";
sleep2 3000;
specialeffect2 EF_LOCKON;
donpcevent instance_npcname("Weakened Morroc#RZ1") + "::OnTalk1";
end;
}
1@rev,111,178,4 script Weakened Morroc#RZ1 1916,{
end;
OnTalk1:
npctalk "Weakened Morroc: I should punish you for disturbing my slumber.";
sleep 3000;
npctalk "Weakened Morroc: Do you really think you can stop me?";
sleep 3000;
npctalk "Weakened Morroc: I'll make you regret ever coming here.";
sleep 3000;
npctalk "Weakened Morroc: I may have not recovered my full strength,";
specialeffect EF_ENERGYCOAT;
sleep 3000;
npctalk "Weakened Morroc: but I still can take down a bunch of you easily.";
sleep 3000;
npctalk "Weakened Morroc: Death is your only escape!";
specialeffect EF_VOLCANO;
sleep 3000;
disablenpc instance_npcname("Weakened Morroc#RZ1");
donpcevent instance_npcname("Weakened Morroc#control") + "::OnStart";
end;
OnTalk2:
enablenpc instance_npcname("Weakened Morroc#RZ1");
npctalk "Weakened Morroc: I'm sorry, but I haven't recovered my full strength.";
sleep 3000;
npctalk "Weakened Morroc: I'll have to leave you to my soldiers for now.";
sleep 3000;
npctalk "Weakened Morroc: Do your worst to get out of my world!";
sleep 3000;
npctalk "Weakened Morroc: In the end, you'll learn the meaning of helplessness in the most painful way!";
sleep 3000;
npctalk "Weakened Morroc: And your souls will be mine! Mwah hah hah!";
sleep 3000;
disablenpc instance_npcname("Weakened Morroc#RZ1");
sleep 3000;
/* Officials scripts use WARPNPC
enablenpc instance_npcname("#RZ Move_1");
enablenpc instance_npcname("#RZ Move_2");
enablenpc instance_npcname("#RZ Move_3");
enablenpc instance_npcname("#RZ Move_4");
*/
enablenpc instance_npcname("#Battle_1RZ1");
enablenpc instance_npcname("#Battle_1RZ2");
for ( .@i = 1; .@i <= 12; .@i++ )
enablenpc instance_npcname( "#Pause Effect RZ" + .@i );
for ( .@i = 1; .@i <= 8; .@i++ )
enablenpc instance_npcname( "#RZ Debuff_" + .@i );
getpartymember 'party_id, 1, .@char_id;
getpartymember 'party_id, 2, .@account_id;
for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
continue;
if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$) {
if ((.@count % 2) == 0) // Right
warp 'map_rev$, rand(33,36), rand(117,118), .@char_id[.@i];
else // Left
warp 'map_rev$, rand(112,114), rand(116,118), .@char_id[.@i];
.@count++;
}
}
end;
}
1@rev,1,1,0 script Weakened Morroc#control HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("Weakened Morroc#control");
monster 'map_rev$,111,178,"Weakened Morroc",2998,1, instance_npcname("Weakened Morroc#control") + "::OnMobDead"; // EP14_MORS_EVENT
end;
OnMobDead:
donpcevent instance_npcname("Weakened Morroc#RZ1") + "::OnTalk2";
disablenpc instance_npcname("Weakened Morroc#control");
end;
}
1@rev,34,126,4 script Reaper Yanku#RZ Event_3 3029,{ end; }
1@rev,112,126,4 duplicate(Reaper Yanku#RZ Event_3) Reaper Yanku#RZ Event_4 3029
1@rev,34,55,4 duplicate(Reaper Yanku#RZ Event_3) Reaper Yanku#RZ Event_5 3029
1@rev,112,48,4 duplicate(Reaper Yanku#RZ Event_3) Reaper Yanku#RZ Event_6 3029
// Battle 1 - waves, event A - left side
// 1@rev,35,119,0 script #Battle_1RZ1 HIDDEN_WARP_NPC,10,10,{
1@rev,35,119,0 script #Battle_1RZ1 HIDDEN_WARP_NPC,2,2,{
end;
OnTouch:
pcblockmove 0, true;
if ('status_battle[0] == 0) {
'status_battle[0] = 1;
donpcevent instance_npcname("#RZ Memorial Effect 1") + "::OnStart";
mapannounce 'map_rev$, "Morroc: How do you like to be separated from each other and have your bodies and minds bound?", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: You're trespassing! Riff-raff like you have no business in here!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: Your bodies are mine to control!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: Your souls are food for my resurrection!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
donpcevent instance_npcname("#morse_cave_wave_1") + "::OnStart";
}
end;
}
// Event B - right side
// 1@rev,112,126,0 script #Battle_1RZ2 HIDDEN_WARP_NPC,10,10
1@rev,112,116,0 script #Battle_1RZ2 HIDDEN_WARP_NPC,2,2,{
end;
OnTouch:
pcblockmove 0, true;
if ('status_battle[1] == 0) {
'status_battle[1] = 1;
donpcevent instance_npcname("#RZ Memorial Effect 2") + "::OnStart";
}
end;
}
1@rev,1,1,0 script #morse_cave_wave_1 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#morse_cave_wave_1");
sleep 5000;
callsub( S_Spawn,0 );
sleep 20000;
callsub( S_Spawn,0 );
sleep 20000;
callsub( S_Spawn,0 );
mapannounce 'map_rev$, "Morroc: My soldiers, make them suffer! Feast on their bodies and souls!", bc_map,0xEBFF;
sleep 20000;
callsub( S_Spawn,0 );
sleep 20000;
callsub( S_Spawn,0 );
mapannounce 'map_rev$, "Morroc: Not enough. Make them feel terror!", bc_map,0xEBFF;
sleep 20000;
callsub( S_Spawn,0 );
sleep 20000;
callsub( S_Spawn,0 );
mapannounce 'map_rev$, "Morroc: Resist me! Fight to the death!", bc_map,0xEBFF;
sleep 20000;
callsub( S_Spawn,0 );
sleep 15000;
callsub( S_Spawn,1 );
mapannounce 'map_rev$, "Morroc: Mwa hah hah, I can feel my power returning!", bc_map,0xEBFF;
sleep 10000;
callsub( S_Spawn,2 );
sleep 12000;
.@count[0] = mobcount( 'map_rev$, instance_npcname("#morse_cave_wave_1") + "::OnMobDead" );
.@count[1] = mobcount( 'map_rev$, instance_npcname("#morse_cave_wave_1") + "::OnMobDead2" );
killmonster 'map_rev$, instance_npcname("#morse_cave_wave_1") + "::OnMobDead";
killmonster 'map_rev$, instance_npcname("#morse_cave_wave_1") + "::OnMobDead2";
disablenpc instance_npcname("#Battle_1RZ1");
disablenpc instance_npcname("#Battle_1RZ2");
for ( .@i = 1; .@i <= 12; .@i++ )
donpcevent instance_npcname( "#Pause Effect RZ" + .@i ) + "::OnStop";
sleep 3000;
if (.@count[0] > 19 || .@count[1] > 19) {
.@reaper$[0] = instance_npcname("Reaper Yanku#RZ Event_3");
.@reaper$[1] = instance_npcname("Reaper Yanku#RZ Event_4");
enablenpc .@reaper$[0];
enablenpc .@reaper$[1];
npctalk "You're pathetic.", .@reaper$[0];
npctalk "You're pathetic.", .@reaper$[1];
sleep 3000;
npctalk "Weaklings like you aren't enough food for Lord Morroc", .@reaper$[0];
npctalk "Weaklings like you aren't enough food for Lord Morroc", .@reaper$[1];
sleep 3000;
npctalk "to get the energy he needs for a full recovery.", .@reaper$[0];
npctalk "to get the energy he needs for a full recovery.", .@reaper$[1];
sleep 3000;
npctalk "I'll give you one chance to leave. NOW!", .@reaper$[0];
npctalk "I'll give you one chance to leave. NOW!", .@reaper$[1];
sleep 3000;
disablenpc .@reaper$[0];
disablenpc .@reaper$[1];
sleep 5000;
/* Officials scripts
enablenpc instance_npcname("#RZ Move_5a");// warp to prontera,97,167
enablenpc instance_npcname("#RZ Move_6a");
enablenpc instance_npcname("#RZ Move_7a");
enablenpc instance_npcname("#RZ Move_8a");
enablenpc instance_npcname("#RZ Move_9a");
enablenpc instance_npcname("#RZ Move_10a");
enablenpc instance_npcname("#RZ Move_11a");
enablenpc instance_npcname("#RZ Move_12a");
*/
getpartymember 'party_id, 1, .@char_id;
getpartymember 'party_id, 2, .@account_id;
for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
continue;
if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$)
pcblockmove .@account_id[.@i], false;
}
mapwarp 'map_rev$,"prontera",97,167;
}
else {
mapannounce 'map_rev$, "Morroc: You're more resilient than I thought.", bc_map,0xEBFF;
sleep 2000;
mapannounce 'map_rev$, "Morroc: But enough is enough.", bc_map,0xEBFF;
sleep 5000;
/* Officials scripts
enablenpc instance_npcname("#RZ Move_5");// warp to 1@rev,31,50
enablenpc instance_npcname("#RZ Move_6");
enablenpc instance_npcname("#RZ Move_7");
enablenpc instance_npcname("#RZ Move_8");
enablenpc instance_npcname("#RZ Move_9");
enablenpc instance_npcname("#RZ Move_10");
enablenpc instance_npcname("#RZ Move_11");
enablenpc instance_npcname("#RZ Move_12");
*/
for ( .@i = 9; .@i <= 15; .@i++ )
enablenpc instance_npcname( "#RZ Debuff_" + .@i );
enablenpc instance_npcname("#Battle_2RZ1");
for ( .@i = 1; .@i <= 12; .@i++ )
enablenpc instance_npcname( "#Pause Effecto RZ" + .@i );
warpparty 'map_rev$,31,50, 'party_id, 'map_rev$,1,1;
}
for ( .@i = 1; .@i <= 8; .@i++ )
disablenpc instance_npcname( "#RZ Debuff_" + .@i );
disablenpc instance_npcname("#morse_cave_wave_1");
donpcevent instance_npcname("#RZ Memorial Effect 1") + "::OnStop";
donpcevent instance_npcname("#RZ Memorial Effect 2") + "::OnStop";
end;
S_Spawn:
.@additionnal_monster = getarg(0);
.@label$ = instance_npcname("#morse_cave_wave_1") + "::OnMobDead";
monster 'map_rev$,33,128,"Morroc's Ghoul",3001,1, .@label$;// EP14_MORS_MOB1
monster 'map_rev$,42,120,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,34,111,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,25,119,"Morroc's Ghoul",3001,1, .@label$;
if (.@additionnal_monster == 1)
monster 'map_rev$,33,111,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
else if (.@additionnal_monster == 2)
monster 'map_rev$,32,128,"Morroc's Archer Skeleton",3003,1, .@label$;
if ('status_battle[1] == true) {
.@label$ = instance_npcname("#morse_cave_wave_1") + "::OnMobDead2";
monster 'map_rev$,112,126,"Morroc's Ghoul",3001,1, .@label$;// EP14_MORS_MOB1
monster 'map_rev$,120,118,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,112,109,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,103,117,"Morroc's Ghoul",3001,1, .@label$;
if (.@additionnal_monster == 1)
monster 'map_rev$,103,118,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
else if (.@additionnal_monster == 2)
monster 'map_rev$,120,117,"Morroc's Archer Skeleton",3003,1, .@label$;
}
return;
OnMobDead:
OnMobDead2:
end;
}
// display icewall every 30s
1@rev,33,117,0 script #Pause Effect RZ1 HIDDEN_WARP_NPC,1,1,{
end;
OnTouch:
if (countstr( strnpcinfo(0), "Effecto" ) == 0)
.@num = atoi( replacestr( strnpcinfo(2), "Pause Effect RZ", "" ) );
else
.@num = atoi( replacestr( strnpcinfo(2), "Pause Effecto RZ", "" ) ) + 20;
if ('pause_effect[.@num] == 0) {
'pause_effect[.@num] = 1;
specialeffect EF_ICEWALL;
initnpctimer;
}
pcblockmove 0, true;
if (.@num < 7 && 'status_battle[0] == 0) {
mes ""; // fix me
'status_battle[0] = 1;
donpcevent instance_npcname("#RZ Memorial Effect 1") + "::OnStart";
mapannounce 'map_rev$, "Morroc: How do you like to be separated from each other and have your bodies and minds bound?", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: You're trespassing! Riff-raff like you have no business in here!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: Your bodies are mine to control!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: Your souls are food for my resurrection!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
donpcevent instance_npcname("#morse_cave_wave_1") + "::OnStart";
}
else if (.@num >= 7 && .@num < 13 && 'status_battle[1] == 0) {
'status_battle[1] = 1;
donpcevent instance_npcname("#RZ Memorial Effect 2") + "::OnStart";
}
else if (.@num >= 21 && .@num < 33 && 'status_battle[2] == 0) {
mes ""; // fix me
'status_battle[2] = 1;
donpcevent instance_npcname("#RZ Memorial Effect 3") + "::OnStart";
mapannounce 'map_rev$, "Morroc: This world of mine is evolving.", bc_map,0xEBFF;
sleep2 2000;
mapannounce 'map_rev$, "Morroc: My power is returning!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: Your bodies and souls are under my command!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
donpcevent instance_npcname("#morse_cave_wave_2") + "::OnStart";
}
end;
OnTimer30000:
specialeffect EF_ICEWALL;
initnpctimer;
end;
OnStop:
stopnpctimer;
disablenpc instance_npcname( strnpcinfo(0) );
end;
}
1@rev,36,118,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ2 HIDDEN_WARP_NPC,1,1
1@rev,36,121,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ3 HIDDEN_WARP_NPC,1,1
1@rev,34,122,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ4 HIDDEN_WARP_NPC,1,1
1@rev,31,121,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ5 HIDDEN_WARP_NPC,1,1
1@rev,31,118,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ6 HIDDEN_WARP_NPC,1,1
// Event B - right side
1@rev,112,116,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ7 HIDDEN_WARP_NPC,1,1
1@rev,114,117,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ8 HIDDEN_WARP_NPC,1,1
1@rev,114,120,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ9 HIDDEN_WARP_NPC,1,1
1@rev,111,121,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ10 HIDDEN_WARP_NPC,1,1
1@rev,109,120,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ11 HIDDEN_WARP_NPC,1,1
1@rev,109,117,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ12 HIDDEN_WARP_NPC,1,1
// Battle 2 - waves
1@rev,31,50,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ1 HIDDEN_WARP_NPC,1,1
1@rev,36,49,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ2 HIDDEN_WARP_NPC,1,1
1@rev,37,45,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ3 HIDDEN_WARP_NPC,1,1
1@rev,30,45,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ4 HIDDEN_WARP_NPC,1,1
1@rev,29,47,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ5 HIDDEN_WARP_NPC,1,1
1@rev,33,51,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ6 HIDDEN_WARP_NPC,1,1
1@rev,38,49,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ7 HIDDEN_WARP_NPC,1,1
1@rev,34,44,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ8 HIDDEN_WARP_NPC,1,1
1@rev,32,44,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ9 HIDDEN_WARP_NPC,1,1
1@rev,29,49,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ10 HIDDEN_WARP_NPC,1,1
1@rev,35,51,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ11 HIDDEN_WARP_NPC,1,1
1@rev,37,47,0 duplicate(#Pause Effect RZ1) #Pause Effecto RZ12 HIDDEN_WARP_NPC,1,1
// Event A - left side - debuff
1@rev,33,111,0 script #RZ Debuff_1 HIDDEN_WARP_NPC,12,4,{
end;
OnTouch:
pcblockmove 0, true;
.@num = atoi( replacestr( strnpcinfo(2), "RZ Debuff_", "" ) );
if (.@num < 5 && 'status_battle[0] == 0) {
mes ""; // fix me
'status_battle[0] = 1;
donpcevent instance_npcname("#RZ Memorial Effect 1") + "::OnStart";
mapannounce 'map_rev$, "Morroc: How do you like to be separated from each other and have your bodies and minds bound?", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: You're trespassing! Riff-raff like you have no business in here!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: Your bodies are mine to control!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: Your souls are food for my resurrection!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
donpcevent instance_npcname("#morse_cave_wave_1") + "::OnStart";
}
else if (.@num >= 5 && .@num < 9 && 'status_battle[1] == 0) {
'status_battle[1] = 1;
donpcevent instance_npcname("#RZ Memorial Effect 2") + "::OnStart";
}
else if (.@num >= 9 && .@num < 16 && 'status_battle[2] == 0) {
mes ""; // fix me
'status_battle[2] = 1;
donpcevent instance_npcname("#RZ Memorial Effect 3") + "::OnStart";
mapannounce 'map_rev$, "Morroc: This world of mine is evolving.", bc_map,0xEBFF;
sleep2 2000;
mapannounce 'map_rev$, "Morroc: My power is returning!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: Your bodies and souls are under my command!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
donpcevent instance_npcname("#morse_cave_wave_2") + "::OnStart";
}
end;
}
1@rev,42,124,0 duplicate(#RZ Debuff_1) #RZ Debuff_2 HIDDEN_WARP_NPC,4,8
1@rev,25,124,0 duplicate(#RZ Debuff_1) #RZ Debuff_3 HIDDEN_WARP_NPC,4,8
1@rev,33,128,0 duplicate(#RZ Debuff_1) #RZ Debuff_4 HIDDEN_WARP_NPC,4,4
// Event B - right side - debuff
1@rev,112,110,0 duplicate(#RZ Debuff_1) #RZ Debuff_5 HIDDEN_WARP_NPC,12,4
1@rev,103,122,0 duplicate(#RZ Debuff_1) #RZ Debuff_6 HIDDEN_WARP_NPC,4,7
1@rev,120,122,0 duplicate(#RZ Debuff_1) #RZ Debuff_7 HIDDEN_WARP_NPC,4,7
1@rev,112,126,0 duplicate(#RZ Debuff_1) #RZ Debuff_8 HIDDEN_WARP_NPC,4,3
// Battle 2 - waves - debuff
1@rev,32,47,0 duplicate(#RZ Debuff_1) #RZ Debuff_9 HIDDEN_WARP_NPC,1,1
1@rev,24,48,0 duplicate(#RZ Debuff_1) #RZ Debuff_10 HIDDEN_WARP_NPC,3,5
1@rev,27,56,0 duplicate(#RZ Debuff_1) #RZ Debuff_11 HIDDEN_WARP_NPC,4,4
1@rev,43,47,0 duplicate(#RZ Debuff_1) #RZ Debuff_12 HIDDEN_WARP_NPC,3,4
1@rev,41,56,0 duplicate(#RZ Debuff_1) #RZ Debuff_13 HIDDEN_WARP_NPC,4,4
1@rev,34,56,0 duplicate(#RZ Debuff_1) #RZ Debuff_14 HIDDEN_WARP_NPC,2,3
1@rev,34,39,0 duplicate(#RZ Debuff_1) #RZ Debuff_15 HIDDEN_WARP_NPC,12,3
// official npcs to block the player from moving
// Event A - left side
// 1@rev,28,125,0 script #RZ Debuff_1 HIDDEN_WARP_NPC,10,10,{
// 1@rev,28,114,0 script #RZ Debuff_2 HIDDEN_WARP_NPC,10,10,{
// 1@rev,39,114,0 script #RZ Debuff_3 HIDDEN_WARP_NPC,10,10,{
// 1@rev,39,125,0 script #RZ Debuff_4 HIDDEN_WARP_NPC,10,10,{
// Event B - right side
// 1@rev,106,123,0 script #RZ Debuff_5 HIDDEN_WARP_NPC,10,10,{
// 1@rev,106,112,0 script #RZ Debuff_6 HIDDEN_WARP_NPC,10,10,{
// 1@rev,117,112,0 script #RZ Debuff_7 HIDDEN_WARP_NPC,10,10,{
// 1@rev,117,123,0 script #RZ Debuff_8 HIDDEN_WARP_NPC,10,10,{
// Battle 2 - waves
// 1@rev,28,53,0 script #RZ Debuff_9 HIDDEN_WARP_NPC,10,10,{
// 1@rev,28,42,0 script #RZ Debuff_10 HIDDEN_WARP_NPC,10,10,{
// 1@rev,39,42,0 script #RZ Debuff_11 HIDDEN_WARP_NPC,10,10,{
// 1@rev,39,53,0 script #RZ Debuff_12 HIDDEN_WARP_NPC,10,10,{
// 1@rev,28,53,0 script #RZ Debuff Recovery_1 HIDDEN_WARP_NPC,10,10,{
// 1@rev,28,42,0 script #RZ Debuff Recovery_2 HIDDEN_WARP_NPC,10,10,{
// 1@rev,39,42,0 script #RZ Debuff Recovery_3 HIDDEN_WARP_NPC,10,10,{
// 1@rev,39,53,0 script #RZ Debuff Recovery_4 HIDDEN_WARP_NPC,10,10,{
// Battle 2 - waves
// 1@rev,34,47,0 script #Battle_2RZ1 HIDDEN_WARP_NPC,10,10,{
1@rev,34,47,0 script #Battle_2RZ1 HIDDEN_WARP_NPC,3,3,{
end;
OnTouch:
pcblockmove 0, true;
if ('status_battle[2] == 0) {
'status_battle[2] = 1;
donpcevent instance_npcname("#RZ Memorial Effect 3") + "::OnStart";
mapannounce 'map_rev$, "Morroc: This world of mine is evolving.", bc_map,0xEBFF;
sleep 2000;
mapannounce 'map_rev$, "Morroc: My power is returning!", bc_map,0xEBFF;
sleep 3000;
mapannounce 'map_rev$, "Morroc: Your bodies and souls are under my command!", bc_map,0xEBFF;
sleep 3000;
mapannounce 'map_rev$, "Morroc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0xEBFF;
donpcevent instance_npcname("#morse_cave_wave_2") + "::OnStart";
}
end;
}
1@rev,1,1,0 script #morse_cave_wave_2 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#morse_cave_wave_2");
.@label$ = instance_npcname("#morse_cave_wave_2") + "::OnMobDead";
sleep 5000;
callsub( S_Spawn );
monster 'map_rev$,27,53,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
monster 'map_rev$,27,41,"Morroc's Archer Skeleton",3003,1, .@label$;
mapannounce 'map_rev$, "Morroc: This power! It feels great! Mwah hah hah!", bc_map,0xEBFF;
sleep 25000;
callsub( S_Spawn );
monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
mapannounce 'map_rev$, "Morroc: How do you like losing control of your own body? *Chuckle*", bc_map,0xEBFF;
sleep 25000;
callsub( S_Spawn );
monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
sleep 25000;
callsub( S_Spawn );
monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
mapannounce 'map_rev$, "Morroc: More! I need more energy!", bc_map,0xEBFF;
sleep 25000;
callsub( S_Spawn );
monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
mapannounce 'map_rev$, "Morroc: Mwah hah hah! Fear my army! Struggle harder!", bc_map,0xEBFF;
sleep 25000;
monster 'map_rev$,34,57,"Morroc's Ghoul",3001,1, .@label$;// EP14_MORS_MOB1
monster 'map_rev$,43,48,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,33,38,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
sleep 25000;
callsub( S_Spawn );
monster 'map_rev$,27,53,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
monster 'map_rev$,27,41,"Morroc's Archer Skeleton",3003,1, .@label$;
monster 'map_rev$,40,41,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
monster 'map_rev$,40,54,"Morroc's Verit",3005,1, .@label$;
mapannounce 'map_rev$, "Morroc: You're pathetic, struggling to survive!", bc_map,0xEBFF;
sleep 15000;
callsub( S_Spawn );
monster 'map_rev$,40,41,"Morroc's Archer Skeleton",3003,1, .@label$;// EP14_MORS_MOB3
monster 'map_rev$,40,54,"Morroc's Archer Skeleton",3003,1, .@label$;
monster 'map_rev$,27,53,"Morroc's Verit",3005,1, .@label$;// EP14_MORS_MOB5
monster 'map_rev$,27,41,"Morroc's Verit",3005,1, .@label$;
sleep 12000;
.@count = mobcount( 'map_rev$, instance_npcname("#morse_cave_wave_2") + "::OnMobDead" );
killmonster 'map_rev$, instance_npcname("#morse_cave_wave_2") + "::OnMobDead";
disablenpc instance_npcname("#Battle_2RZ1");
for ( .@i = 1; .@i <= 12; .@i++ )
donpcevent instance_npcname( "#Pause Effecto RZ" + .@i ) + "::OnStop";
sleep 3000;
if (.@count > 19) {
.@reaper$ = instance_npcname("Reaper Yanku#RZ Event_5");
enablenpc .@reaper$;
npctalk "You're pathetic.", .@reaper$;
sleep 3000;
npctalk "Weaklings like you aren't enough food for Lord Morroc", .@reaper$;
sleep 3000;
npctalk "to get the energy he needs for a full recovery.", .@reaper$;
sleep 3000;
npctalk "I'll give you one chance to leave. NOW!", .@reaper$;
sleep 3000;
disablenpc .@reaper$;
sleep 5000;
/* Officials scripts
enablenpc instance_npcname("#Move_13a");// warp to prontera,97,167
enablenpc instance_npcname("#Move_14a");
enablenpc instance_npcname("#Move_15a");
enablenpc instance_npcname("#Move_16a");
*/
getpartymember 'party_id, 1, .@char_id;
getpartymember 'party_id, 2, .@account_id;
for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
continue;
if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$)
pcblockmove .@account_id[.@i], false;
}
mapwarp 'map_rev$,"prontera",97,167;
}
else {
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;
sleep 4000;
mapannounce 'map_rev$, "Morroc: Good, I feel rejuvenated.", bc_map,0xEBFF;
sleep 3000;
for ( .@i = 9; .@i <= 15; .@i++ )
disablenpc instance_npcname( "#RZ Debuff_" + .@i );
getpartymember 'party_id, 1, .@char_id;
getpartymember 'party_id, 2, .@account_id;
for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
continue;
if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$)
pcblockmove .@account_id[.@i], false;
}
// enablenpc instance_npcname("#RZ Debuff Recovery_1");
// enablenpc instance_npcname("#RZ Debuff Recovery_2");
// enablenpc instance_npcname("#RZ Debuff Recovery_3");
// enablenpc instance_npcname("#RZ Debuff Recovery_4");
sleep 1000;
// enablenpc instance_npcname("#RZ Move_13");// warp to 1@rev,104,48
// enablenpc instance_npcname("#RZ Move_14");
// enablenpc instance_npcname("#RZ Move_15");
// enablenpc instance_npcname("#RZ Move_16");
enablenpc instance_npcname("#Battle_3RZ1");
mapwarp 'map_rev$,'map_rev$,104,48;
}
disablenpc instance_npcname("#morse_cave_wave_2");
donpcevent instance_npcname("#RZ Memorial Effect 3") + "::OnStop";
end;
S_Spawn:
.@label$ = instance_npcname("#morse_cave_wave_2") + "::OnMobDead";
monster 'map_rev$,34,57,"Morroc's Ghoul",3001,1, .@label$;// EP14_MORS_MOB1
monster 'map_rev$,43,48,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,33,38,"Morroc's Ghoul",3001,1, .@label$;
monster 'map_rev$,24,48,"Morroc's Ghoul",3001,1, .@label$;
return;
OnMobDead:
end;
}
// Display EF_CURSEATTACK effect overhead 'Soul' monster
// Event A - left side
1@rev,34,120,0 script #RZ Memorial Effect 1 HIDDEN_WARP_NPC,{
end;
OnStart:
.@npc_name$ = instance_npcname( strnpcinfo(0) );
enablenpc .@npc_name$;
getmapxy .@map$,.@x,.@y, UNITTYPE_NPC;
monster 'map_rev$,.@x,.@y,('soul_name$ + "'s Soul"),3007,1, .@npc_name$ + "::OnStop"; // EP14_MORS_DUMMY
initnpctimer;
specialeffect EF_STORMGUST;
specialeffect EF_CURSEATTACK;
end;
OnTimer2000:
specialeffect EF_CURSEATTACK;
initnpctimer;
end;
OnStop:
stopnpctimer;
killmonster 'map_rev$, instance_npcname( strnpcinfo(0) ) + "::OnStop";
disablenpc instance_npcname( strnpcinfo(0) );
end;
}
// Event B - right side
1@rev,112,118,0 duplicate(#RZ Memorial Effect 1) #RZ Memorial Effect 2 HIDDEN_WARP_NPC
// Battle 2 - waves
1@rev,34,48,0 duplicate(#RZ Memorial Effect 1) #RZ Memorial Effect 3 HIDDEN_WARP_NPC
// official range
// 1@rev,34,120,0 script #RZ Memorial Effect 1 HIDDEN_WARP_NPC,4,4,{
// 1@rev,112,118,0 duplicate(#RZ Memorial Effect 1) #RZ Memorial Effect 2 HIDDEN_WARP_NPC,4,4
// 1@rev,34,48,0 duplicate(#RZ Memorial Effect 1) #RZ Memorial Effect 3 HIDDEN_WARP_NPC,4,4
// Battle 3
1@rev,112,48,4 script Morocc Necromancer#RZ1 4_GHOST_STAND,{ end; }
1@rev,104,47,0 script #Battle_3RZ1 HIDDEN_WARP_NPC,5,5,{
end;
OnTouch:
disablenpc instance_npcname("#Battle_3RZ1");
mapannounce 'map_rev$, "Morroc: I can't let you go unscathed!", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: Hah hah, my Necromancer. I'll leave them to you.", bc_map,0xEBFF;
sleep2 3000;
mapannounce 'map_rev$, "Morroc: My loyal soldier, I'll trust you with their deaths!", bc_map,0xEBFF;
sleep2 3000;
.@necromancer$ = instance_npcname("Morocc Necromancer#RZ1");
enablenpc .@necromancer$;
sleep2 3000;
specialeffect EF_TWOHANDQUICKEN,AREA, .@necromancer$;
npctalk "Morocc Necromancer: As you wish, My Lord!", .@necromancer$;
sleep2 3000;
npctalk "Morocc Necromancer: *Chuckle* You still have no idea, do you?", .@necromancer$;
sleep2 3000;
npctalk "Morocc Necromancer: The energy you generated to protect me while I was hiding within your soul", .@necromancer$;
sleep2 3000;
npctalk "Morocc Necromancer: has been converted to healing energy for Lord Morroc the moment you entered this world of his!", .@necromancer$;
sleep2 3000;
npctalk "Morocc Necromancer: *Chuckle* Your stupidity was a blessing for us. We don't need you anymore. DIE!", .@necromancer$;
specialeffect EF_BEGINSPELL2,AREA, .@necromancer$;
sleep2 3000;
disablenpc .@necromancer$;
donpcevent instance_npcname("#morse_cave_3") + "::OnStart";
end;
}
1@rev,1,1,0 script #morse_cave_3 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#morse_cave_3");
monster 'map_rev$,112,48,"Morocc Necromancer",2999,1, instance_npcname("#morse_cave_3") + "::OnMobDead";// EP14_MORS_BOSSA
end;
OnMobDead:
.@necromancer$ = instance_npcname("Morocc Necromancer#RZ1");
enablenpc .@necromancer$;
sleep 3000;
npctalk "Morocc Necromancer: You're stronger than you look.", .@necromancer$;
sleep 3000;
npctalk "Morocc Necromancer: *Giggle* I'll show you what I'm truly capable of.", .@necromancer$;
sleep 3000;
npctalk "Morocc Necromancer: Beg me for your lives!", .@necromancer$;
sleep 3000;
npctalk "Morocc Necromancer: *Giggle*", .@necromancer$;
sleep 3000;
disablenpc .@necromancer$;
monster 'map_rev$,112,48,"Morocc Necromancer",3000,1, instance_npcname("#morse_cave_3") + "::OnMobDead2";// EP14_MORS_BOSSB
'boss_id = $@mobid[0];
donpcevent instance_npcname("#morse_cave_wave_3") + "::OnStart";
donpcevent instance_npcname("#morse_cave_boss_talk") + "::OnStart";
end;
OnMobDead2:
donpcevent instance_npcname("#morse_cave_wave_3") + "::OnStop";
donpcevent instance_npcname("#morse_cave_boss_talk") + "::OnStop";
donpcevent instance_npcname("#morse_cave_wave_3_mobs") + "::OnStop";
sleep 3000;
.@reaper$ = instance_npcname("Reaper Yanku#RZ Event_6");
enablenpc .@reaper$;
sleep 1000;
npctalk "Reaper Yanku: Sigh, Necromancer, why did you have to die so quickly?", .@reaper$;
sleep 3000;
npctalk "Reaper Yanku: Don't be so happy!", .@reaper$;
sleep 3000;
npctalk "Reaper Yanku: Now that Lord Morroc has fully recovered his strength, you're as good as dead!", .@reaper$;
sleep 3000;
npctalk "Reaper Yanku: We'll meet again. *Chuckle*", .@reaper$;
sleep 2000;
hideonnpc .@reaper$;
enablenpc instance_npcname("#RZ Move_17a");
specialeffect EF_THUNDERSTORM,AREA, .@reaper$; // officially Morocc Necromancer#RZ1 display the effects but they have the same coordinates
sleep 1000;
specialeffect EF_LORD,AREA, .@reaper$;
specialeffect EF_THUNDERSTORM,AREA, .@reaper$;
sleep 1000;
specialeffect EF_LORD,AREA, .@reaper$;
end;
}
1@rev,1,1,0 script #morse_cave_wave_3 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#morse_cave_wave_3");
initnpctimer;
end;
OnTimer7000:
stopnpctimer;
donpcevent instance_npcname("#morse_cave_wave_3_mobs") + "::OnStart";
end;
OnStop:
disablenpc instance_npcname("#morse_cave_wave_3");
stopnpctimer;
end;
}
1@rev,1,1,0 script #morse_cave_boss_talk HIDDEN_WARP_NPC,{
end;
OnStart:
initnpctimer;
end;
OnTimer8000:
.@r = rand(4);
if (.@r == 0)
unittalk 'boss_id, "Morocc Necromancer: We the soldiers of Morroc know no mercy!";
else if (.@r == 1)
unittalk 'boss_id, "Morocc Necromancer: You're doing good so far. *Giggle*";
else if (.@r == 2)
unittalk 'boss_id, "Morocc Necromancer: I see you're weakening, though.";
else
unittalk 'boss_id, "Morocc Necromancer: Feel the power of his army!";
initnpctimer;
end;
OnTimer25000:
initnpctimer;
end;
OnStop:
disablenpc instance_npcname("#morse_cave_boss_talk");
stopnpctimer;
end;
}
1@rev,1,1,0 script #morse_cave_wave_3_mobs HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#morse_cave_wave_3_mobs");
initnpctimer;
setarray 'coord[0],
112,57,
121,47,
112,38,
120,54,
119,40,
104,40,
102,48;
'num_coord = getarraysize('coord) / 2;
end;
OnTimer25000:
for ( .@i = 0; .@i < 'num_coord; .@i++ ) {
.@last = ( 'num_coord - .@i - 1 ) * 2;
.@r = rand( 'num_coord - .@i ) * 2;
setarray .@xy[0], 'coord[.@r], 'coord[.@r+1];
setarray 'coord[.@r], 'coord[.@last], 'coord[.@last+1];
setarray 'coord[.@last], .@xy[0], .@xy[1];
}
.@label$ = instance_npcname("#morse_cave_wave_3_mobs") + "::OnMobDead";
if (mobcount( 'map_rev$, .@label$ ) < 100) { // stop to 100 mobs for performance
monster 'map_rev$,'coord[0],'coord[1], "Morroc's Ghoul", 3001,1, .@label$; // EP14_MORS_MOB1
monster 'map_rev$,'coord[2],'coord[3], "Morroc's Ghoul", 3001,1, .@label$; // EP14_MORS_MOB1
monster 'map_rev$,'coord[4],'coord[5], "Morroc's Ghoul", 3001,1, .@label$; // EP14_MORS_MOB1
monster 'map_rev$,'coord[6],'coord[7], "Morroc's Osiris", 3002,1, .@label$; // EP14_MORS_MOB2
monster 'map_rev$,'coord[8],'coord[9], "Morroc's Archer Skeleton", 3003,1, .@label$; // EP14_MORS_MOB3
monster 'map_rev$,'coord[10],'coord[11], "Morroc's Wraith", 3004,1, .@label$; // EP14_MORS_MOB4
if (rand(100) < 20)
monster 'map_rev$,'coord[12],'coord[12], "Morroc's Archer Skeleton", 3003,1, .@label$; // EP14_MORS_MOB3
else
monster 'map_rev$,'coord[12],'coord[13], "Morroc's Verit", 3005,1, .@label$; // EP14_MORS_MOB5
// inaccurate
areamonster 'map_rev$,102,38,121,57, "#Poison", 3008,1, .@label$; // EP14_MORS_HIDDEN
}
initnpctimer;
end;
OnStop:
stopnpctimer;
killmonster 'map_rev$, instance_npcname("#morse_cave_wave_3_mobs") + "::OnMobDead";
disablenpc instance_npcname("#morse_cave_wave_3_mobs");
end;
OnMobDead:
end;
}
// 1@rev,106,57,0 script #Battle_3RZ2 HIDDEN_WARP_NPC,{
// 1@rev,120,54,0 script #Battle_3RZ3 HIDDEN_WARP_NPC,{
// 1@rev,120,55,0 script #Battle_3RZ4 HIDDEN_WARP_NPC,{
// 1@rev,120,56,0 script #Battle_3RZ5 HIDDEN_WARP_NPC,{
// 1@rev,120,57,0 script #Battle_3RZ6 HIDDEN_WARP_NPC,{
// 1@rev,120,58,0 script #Battle_3RZ7 HIDDEN_WARP_NPC,{
1@rev,112,56,3 script #RZ Move_17a PORTAL,{
mes "Do you want to exit through the portal?";
next;
if (select( "No.", "Yes." ) == 2) {
mes "- Teleporting... -";
close2;
warp "moro_cav",59,63;
end;
}
end;
OnInstanceInit:
'map_rev$ = instance_mapname("1@rev");
'status_battle[0] = 0;
'status_battle[1] = 0;
'status_battle[2] = 0;
// Entrance
disablenpc instance_npcname("#RZ Event_1");
disablenpc instance_npcname("Reaper Yanku#RZ Event_2");
// Weakened Morroc
disablenpc instance_npcname("#RZ Event_3");
disablenpc instance_npcname("Weakened Morroc#RZ1");
disablenpc instance_npcname("Weakened Morroc#control");
// Battle 1
disablenpc instance_npcname("Reaper Yanku#RZ Event_3");
disablenpc instance_npcname("Reaper Yanku#RZ Event_4");
disablenpc instance_npcname("#Battle_1RZ1");
disablenpc instance_npcname("#Battle_1RZ2");
disablenpc instance_npcname("#RZ Memorial Effect 1");
disablenpc instance_npcname("#RZ Memorial Effect 2");
disablenpc instance_npcname("#morse_cave_wave_1");
for ( .@i = 1; .@i <= 12; .@i++ )
disablenpc instance_npcname( "#Pause Effect RZ" + .@i );
// Battle 2
disablenpc instance_npcname("Reaper Yanku#RZ Event_5");
disablenpc instance_npcname("#RZ Memorial Effect 3");
disablenpc instance_npcname("#morse_cave_wave_2");
disablenpc instance_npcname("#Battle_2RZ1");
for ( .@i = 1; .@i <= 12; .@i++ )
disablenpc instance_npcname( "#Pause Effecto RZ" + .@i );
// Battle 3
disablenpc instance_npcname("#morse_cave_3");
disablenpc instance_npcname("#morse_cave_wave_3");
disablenpc instance_npcname("Reaper Yanku#RZ Event_6");
disablenpc instance_npcname("#Battle_3RZ1");
disablenpc instance_npcname("Morocc Necromancer#RZ1");
disablenpc instance_npcname("#RZ Move_17a");
// Debuff - Battle 1 & 2
for ( .@i = 1; .@i <= 15; .@i++ )
disablenpc instance_npcname( "#RZ Debuff_" + .@i );
// reload
if ('party_id > 0) {
getpartymember 'party_id, 1, .@char_id;
getpartymember 'party_id, 2, .@account_id;
for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == false)
continue;
if (strcharinfo(3,.@char_id[.@i]) == 'map_rev$)
pcblockmove .@account_id[.@i], false;
}
}
end;
}
/*
// Original warps
// Entrance -> Weakened Morroc
1@rev,63,181,0 warp2 #RZ Move_30 10,10,1@rev,103,177
1@rev,47,181,0 warp2 #RZ Move_31 10,10,1@rev,103,177
1@rev,31,181,0 warp2 #RZ Move_32 10,10,1@rev,103,177
// Weakened Morroc -> Battle Wave 1a
1@rev,106,172,0 warp2 #RZ Move_1 10,10,1@rev,33,117
1@rev,106,172,0 warp2 #RZ Move_2 10,10,1@rev,33,117
1@rev,117,172,0 warp2 #RZ Move_3 10,10,1@rev,33,117
1@rev,117,183,0 warp2 #RZ Move_4 10,10,1@rev,33,117
// Weakened Morroc -> Battle Wave 1b
1@rev,106,172,0 warp2 #RZ Move_1 10,10,1@rev,112,116
1@rev,106,172,0 warp2 #RZ Move_2 10,10,1@rev,112,116
1@rev,117,172,0 warp2 #RZ Move_3 10,10,1@rev,112,116
1@rev,117,183,0 warp2 #RZ Move_4 10,10,1@rev,112,116
// Battle Wave 1a -> Battle Wave 2
1@rev,28,125,0 warp2 #RZ Move_5 10,10,1@rev,31,50
1@rev,28,114,0 warp2 #RZ Move_6 10,10,1@rev,31,50
1@rev,39,114,0 warp2 #RZ Move_7 10,10,1@rev,31,50
1@rev,39,125,0 warp2 #RZ Move_8 10,10,1@rev,31,50
// Battle Wave 1a -> Prontera
1@rev,28,125,0 warp2 #RZ Move_5a 10,10,prontera,97,167
1@rev,28,114,0 warp2 #RZ Move_6a 10,10,prontera,97,167
1@rev,39,114,0 warp2 #RZ Move_7a 10,10,prontera,97,167
1@rev,39,125,0 warp2 #RZ Move_8a 10,10,prontera,97,167
// Battle Wave 1b -> Battle Wave 2
1@rev,106,123,0 warp2 #RZ Move_9 10,10,1@rev,31,50
1@rev,106,112,0 warp2 #RZ Move_10 10,10,1@rev,31,50
1@rev,117,112,0 warp2 #RZ Move_11 10,10,1@rev,31,50
1@rev,117,123,0 warp2 #RZ Move_12 10,10,1@rev,31,50
// Battle Wave 1b -> Prontera
1@rev,106,123,0 warp2 #RZ Move_9a 10,10,prontera,97,167
1@rev,106,112,0 warp2 #RZ Move_10a 10,10,prontera,97,167
1@rev,117,112,0 warp2 #RZ Move_11a 10,10,prontera,97,167
1@rev,117,123,0 warp2 #RZ Move_12a 10,10,prontera,97,167
// Battle Wave 2 -> Final Battle
1@rev,28,53,0 warp2 #RZ Move_13 10,10,1@rev,104,48
1@rev,28,42,0 warp2 #RZ Move_14 10,10,1@rev,104,48
1@rev,39,42,0 warp2 #RZ Move_15 10,10,1@rev,104,48
1@rev,39,53,0 warp2 #RZ Move_16 10,10,1@rev,104,48
// Battle Wave 2 -> Prontera
1@rev,28,53,0 warp2 #RZ Move_13a 10,10,prontera,97,167
1@rev,28,42,0 warp2 #RZ Move_14a 10,10,prontera,97,167
1@rev,39,42,0 warp2 #RZ Move_15a 10,10,prontera,97,167
1@rev,39,53,0 warp2 #RZ Move_16a 10,10,prontera,97,167
*/