You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1459 lines
53 KiB
Plaintext
1459 lines
53 KiB
Plaintext
//===== rAthena Script =======================================
|
|
//= Morse Cave
|
|
//===== Description: =========================================
|
|
//= [Official Conversion]
|
|
//= Morse Cave Instance
|
|
//===== Changelogs: ==========================================
|
|
//= 1.0 First version. [Capuche]
|
|
//= 1.1 Updated to match official script. [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 Morocc.";
|
|
mes "I'm a tracker";
|
|
mes "charged with leading my army";
|
|
mes "to Morocc's lair.";
|
|
close;
|
|
}
|
|
if (checkweight(2104,2) == 0) {
|
|
mes "Your backpack is too full";
|
|
mes "I can't talk to you!";
|
|
close;
|
|
}
|
|
if (BaseLevel < 160) {
|
|
mes "You need to reach level 160 first";
|
|
mes "to enter the Red Flower!";
|
|
close;
|
|
}
|
|
switch( checkquest(9319,PLAYTIME) ) {
|
|
case -1:
|
|
break;
|
|
case 0:
|
|
case 1:
|
|
mes "[Senior Tracker]";
|
|
mes "We're nowhere near close";
|
|
mes "to stopping Morocc's resurrection.";
|
|
mes "I can't sleep at night,";
|
|
mes "knowing Morocc is doing everything he can";
|
|
mes "to recover his strength.";
|
|
mes "Could you come back tomorrow?";
|
|
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 "Morocc is hiding out in this place,";
|
|
mes "recovering his strength.";
|
|
next;
|
|
mes "[Senior Tracker]";
|
|
mes "Fighting Morocc";
|
|
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 Morocc is believed to be hiding?";
|
|
if (getcharid(1) < 1 || is_party_leader() == false)
|
|
close;
|
|
next;
|
|
if (select( "No.", "Yes." ) == 1) {
|
|
mes "[Senior Tracker]";
|
|
mes "Come back";
|
|
mes "if you change your mind.";
|
|
close;
|
|
}
|
|
if (instance_create("Morse's Cave") < 1) {
|
|
mes "[Senior Tracker]";
|
|
mes "The entrance to the Red Flower";
|
|
mes "is not open yet.";
|
|
mes "Please come back later";
|
|
mes "and try again.";
|
|
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.";
|
|
close;
|
|
}
|
|
.@hunting_9318 = checkquest(9318,HUNTING);
|
|
if (.@hunting_9318 == -1) {
|
|
mes "[Senior Tracker]";
|
|
mes "This is our advance base";
|
|
mes "to stop Morocc.";
|
|
mes "I'm a tracker";
|
|
mes "charged with leading my army";
|
|
mes "to Morocc'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 Morocc inside.";
|
|
next;
|
|
mes "[Senior Tracker]";
|
|
mes "According to my intel,";
|
|
mes "Morocc 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 Morocc,";
|
|
mes "and I think";
|
|
mes "you have a chance at winning it.";
|
|
next;
|
|
mes "[Senior Tracker]";
|
|
mes "How'd you like to";
|
|
mes "enter Morocc'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 "Morocc may not have recovered his full strength, but fighting him still";
|
|
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 Morocc is believed to be hiding?";
|
|
next;
|
|
if (select( "No.", "Yes." ) == 1) {
|
|
mes "[Senior Tracker]";
|
|
mes "Come back";
|
|
mes "if you change your mind.";
|
|
close;
|
|
}
|
|
if (instance_create("Morse's Cave") < 1) {
|
|
mes "[Senior Tracker]";
|
|
mes "The entrance to the Red Flower";
|
|
mes "is not open yet.";
|
|
mes "Please come back later";
|
|
mes "and try again.";
|
|
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.";
|
|
close;
|
|
}
|
|
else {
|
|
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 Morocc 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
|
|
erasequest 9318;// Pursuing Hiding Morocc
|
|
setquest 9319;// Pursuing Hiding Morocc Continues
|
|
ep14_3_mors01 = 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 Morocc.";
|
|
mes "I'm a tracker";
|
|
mes "charged with leading my army";
|
|
mes "to Morocc's lair.";
|
|
close;
|
|
}
|
|
if (BaseLevel < 160) {
|
|
mes "You need to reach level 160 first";
|
|
mes "to enter the Red Flower!";
|
|
close;
|
|
}
|
|
if (isbegin_quest(9318) > 0) {
|
|
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 "moro_cav", getpartyname( getcharid(1) ) + " party's " + strcharinfo(0) + " is entering Morse's Cave.", bc_map,0xFF99;
|
|
if (isbegin_quest(9319) > 0)
|
|
erasequest 9319;// Pursuing Hiding Morocc Continues
|
|
if (isbegin_quest(9318) > 0)
|
|
erasequest 9318;
|
|
setquest 9318;// Pursuing Hiding Morocc
|
|
// warp "1@rev",26,181;
|
|
end;
|
|
}
|
|
end;
|
|
|
|
OnInit:
|
|
initnpctimer;
|
|
end;
|
|
OnTimer3000:
|
|
specialeffect EF_BOTTOM_VO;
|
|
end;
|
|
OnTimer15000:
|
|
initnpctimer;
|
|
end;
|
|
}
|
|
|
|
1@rev,33,117,0 script #Pause Effect RZ1 HIDDEN_WARP_NPC,1,1,{
|
|
end;
|
|
OnTouch:
|
|
if (getnpctimer(0) > 0)
|
|
end;
|
|
initnpctimer;
|
|
//disablenpc();
|
|
hideonnpc instance_npcname( strnpcinfo(0) );
|
|
specialeffect EF_ICEWALL;
|
|
end;
|
|
OnTimer30000:
|
|
specialeffect EF_ICEWALL;
|
|
end;
|
|
OnTimer60000:
|
|
specialeffect EF_ICEWALL;
|
|
initnpctimer;
|
|
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
|
|
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
|
|
|
|
1@rev,31,50,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ1_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,36,49,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ2_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,37,45,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ3_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,30,45,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ4_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,29,47,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ5_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,33,51,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ6_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,38,49,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ7_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,34,44,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ8_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,32,44,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ9_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,29,49,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ10_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,35,51,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ11_ HIDDEN_WARP_NPC,1,1
|
|
1@rev,37,47,0 duplicate(#Pause Effect RZ1) #Pause Effect RZ12_ HIDDEN_WARP_NPC,1,1
|
|
|
|
|
|
// Event A
|
|
1@rev,27,181,0 script #RZ Memorial Start HIDDEN_WARP_NPC,4,4,{
|
|
end;
|
|
OnTouch:
|
|
disablenpc instance_npcname("#RZ Memorial Start");
|
|
enablenpc instance_npcname("#RZ Event_1");
|
|
.@mob_name$ = "" + strcharinfo(0) + "'s Soul";
|
|
.@label$ = instance_npcname("#RZ Memorial Start") + "::OnSoulDead";
|
|
monster 'map_rev$, 34,120, .@mob_name$, 3007,1, .@label$; // EP14_MORS_DUMMY
|
|
monster 'map_rev$,112,118, .@mob_name$, 3007,1, .@label$;
|
|
monster 'map_rev$, 34, 48, .@mob_name$, 3007,1, .@label$;
|
|
monster 'map_rev$,112, 48, .@mob_name$, 3007,1, .@label$;
|
|
end;
|
|
OnSoulDead:
|
|
end;
|
|
|
|
OnInstanceInit:
|
|
'map_rev$ = instance_mapname("1@rev");
|
|
'event_right = false;
|
|
'event_ended = false;
|
|
'boss_id = 0;
|
|
'monster_id[4] = 0;
|
|
'monster_id[5] = 0;
|
|
'monster_id[6] = 0;
|
|
'monster_id[7] = 0;
|
|
|
|
disablenpc instance_npcname("#RZ Event_1");
|
|
disablenpc instance_npcname("#RZ Event_3");
|
|
|
|
disablenpc instance_npcname("Grim Reaper Ankou#RZ Event_2");
|
|
disablenpc instance_npcname("Grim Reaper Ankou#RZ Event_3");
|
|
disablenpc instance_npcname("Grim Reaper Ankou#RZ Event_4");
|
|
disablenpc instance_npcname("Grim Reaper Ankou#RZ Event_5");
|
|
disablenpc instance_npcname("Grim Reaper Ankou#RZ Event_6");
|
|
|
|
disablenpc instance_npcname("#RZ Debuff Recovery_1");
|
|
disablenpc instance_npcname("#RZ Debuff Recovery_2");
|
|
disablenpc instance_npcname("#RZ Debuff Recovery_3");
|
|
disablenpc instance_npcname("#RZ Debuff Recovery_4");
|
|
|
|
for ( .@i = 5; .@i < 18; ++.@i )
|
|
disablenpc instance_npcname("#RZ Move_" + .@i + "a");
|
|
for ( .@i = 1; .@i < 13; ++.@i )
|
|
disablenpc instance_npcname("#RZ Debuff_" + .@i);
|
|
|
|
for ( .@i = 1; .@i < 17; ++.@i )
|
|
disablenpc instance_npcname("#RZ Move_" + .@i);
|
|
disablenpc instance_npcname("#RZ Move_30");
|
|
disablenpc instance_npcname("#RZ Move_31");
|
|
disablenpc instance_npcname("#RZ Move_32");
|
|
|
|
disablenpc instance_npcname("#Battle_1RZ1");
|
|
disablenpc instance_npcname("#Battle_1RZ2");
|
|
disablenpc instance_npcname("#Battle_2RZ1");
|
|
disablenpc instance_npcname("#Battle_3RZ2");
|
|
disablenpc instance_npcname("#Battle_3RZ3");
|
|
disablenpc instance_npcname("#Battle_3RZ4");
|
|
disablenpc instance_npcname("#Battle_3RZ5");
|
|
disablenpc instance_npcname("#Battle_3RZ6");
|
|
disablenpc instance_npcname("#Battle_3RZ7");
|
|
|
|
disablenpc instance_npcname("Weakened Morocc#RZ1");
|
|
disablenpc instance_npcname("Morocc Necromancer#RZ1");
|
|
end;
|
|
}
|
|
|
|
1@rev,34,120,0 script #RZ Memorial Effect 1 HIDDEN_WARP_NPC,4,4,{
|
|
end;
|
|
OnInstanceInit:
|
|
//disablenpc();
|
|
hideonnpc instance_npcname( strnpcinfo(0) );
|
|
initnpctimer;
|
|
end;
|
|
OnTimer1000:
|
|
specialeffect EF_CURSEATTACK;
|
|
end;
|
|
OnTimer2000:
|
|
initnpctimer;
|
|
end;
|
|
}
|
|
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
|
|
|
|
1@rev,31,181,0 script #RZ Event_1 HIDDEN_WARP_NPC,5,5,{
|
|
end;
|
|
OnTouch:
|
|
disablenpc instance_npcname("#RZ Event_1");
|
|
// specialeffect EF_HIT2, AREA, ""; // npc target undefined
|
|
mapannounce 'map_rev$, "Morocc: Who dares to disrupt my sleep?!", bc_map,00EBFF;
|
|
.@account_id = getcharid(3);
|
|
.@name$ = strcharinfo(0);
|
|
unittalk .@account_id, "" + .@name$ + " : We came to the right place!";
|
|
setpcblock PCBLOCK_NPC, true;
|
|
sleep2 3000;
|
|
unittalk .@account_id, "" + .@name$ + " : Wait! There's something ahead of us!";
|
|
sleep2 3000;
|
|
setpcblock PCBLOCK_NPC, false;
|
|
|
|
// debug in case of reload script
|
|
getpartymember getcharid(1), 1, .@char_id;
|
|
getpartymember getcharid(1), 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$)
|
|
setpcblock PCBLOCK_MOVE, false, .@account_id[.@i];
|
|
}
|
|
|
|
specialeffect2 EF_LOCKON;
|
|
.@label$ = instance_npcname("#RZ Event_1") + "::OnMobDead";
|
|
monster 'map_rev$,38,180,"Morocc's Ghoul",3001,1, .@label$; // EP14_MORS_MOB1
|
|
monster 'map_rev$,38,181,"Morocc's Ghoul",3001,1, .@label$;
|
|
monster 'map_rev$,38,182,"Morocc's Ghoul",3001,1, .@label$;
|
|
monster 'map_rev$,54,180,"Morocc's Ghoul",3001,1, .@label$;
|
|
monster 'map_rev$,54,181,"Morocc's Ghoul",3001,1, .@label$;
|
|
monster 'map_rev$,54,182,"Morocc's Ghoul",3001,1, .@label$;
|
|
monster 'map_rev$,70,180,"Morocc's Ghoul",3001,1, .@label$;
|
|
monster 'map_rev$,70,181,"Morocc's Ghoul",3001,1, .@label$;
|
|
monster 'map_rev$,70,182,"Morocc's Ghoul",3001,1, .@label$;
|
|
unittalk .@account_id, "" + .@name$ + " : Are these hideous monsters Morocc's lackeys?";
|
|
initnpctimer;
|
|
end;
|
|
OnTimer2000:
|
|
if (mobcount( 'map_rev$, instance_npcname("#RZ Event_1") + "::OnMobDead" ) < 1) {
|
|
stopnpctimer;
|
|
donpcevent instance_npcname("Grim Reaper Ankou#RZ Event_2") + "::OnStart";
|
|
}
|
|
end;
|
|
OnTimer4000:
|
|
initnpctimer;
|
|
end;
|
|
OnMobDead:
|
|
end;
|
|
}
|
|
|
|
1@rev,64,181,4 script Grim Reaper Ankou#RZ Event_2 3029,{
|
|
end;
|
|
OnStart:
|
|
enablenpc instance_npcname("Grim Reaper Ankou#RZ Event_2");
|
|
enablenpc instance_npcname("#RZ Event_3");
|
|
npctalk "Grim Reaper Ankou: *Chuckle* We meet again!";
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: You shouldn't have come. You're interrupting Lord Morocc from recovering his strength.";
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: This world resides in his mind.";
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: You can't do anything against his will. *Chuckle*";
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: Lord Morocc is expecting you. Let me take you to him. *Chuckle*";
|
|
sleep 3000;
|
|
disablenpc instance_npcname("Grim Reaper Ankou#RZ Event_2");
|
|
sleep 3000;
|
|
enablenpc instance_npcname("#RZ Move_30");
|
|
enablenpc instance_npcname("#RZ Move_31");
|
|
enablenpc instance_npcname("#RZ Move_32");
|
|
end;
|
|
}
|
|
|
|
// Fail, warp out
|
|
1@rev,34,126,4 script Grim Reaper Ankou#RZ Event_3 3029,{
|
|
end;
|
|
OnEnd:
|
|
.@ankou_3$ = instance_npcname("Grim Reaper Ankou#RZ Event_3");
|
|
.@ankou_4$ = instance_npcname("Grim Reaper Ankou#RZ Event_4");
|
|
enablenpc .@ankou_3$;
|
|
enablenpc .@ankou_4$;
|
|
npctalk "Grim Reaper Ankou: You're pathetic.", .@ankou_3$;
|
|
npctalk "Grim Reaper Ankou: You're pathetic.", .@ankou_4$;
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: Weaklings like you aren't enough food for Lord Morocc", .@ankou_3$;
|
|
npctalk "Grim Reaper Ankou: Weaklings like you aren't enough food for Lord Morocc", .@ankou_4$;
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: to get the energy he needs for a full recovery.", .@ankou_3$;
|
|
npctalk "Grim Reaper Ankou: to get the energy he needs for a full recovery.", .@ankou_4;
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: I'll give you one chance to leave. NOW!", .@ankou_3$;
|
|
npctalk "Grim Reaper Ankou: I'll give you one chance to leave. NOW!", .@ankou_4$;
|
|
sleep 3000;
|
|
disablenpc .@ankou_3$;
|
|
disablenpc .@ankou_4$;
|
|
sleep 5000;
|
|
enablenpc instance_npcname("#RZ Move_5a");
|
|
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");
|
|
end;
|
|
}
|
|
1@rev,112,126,4 script Grim Reaper Ankou#RZ Event_4 3029,{ end; }
|
|
|
|
1@rev,34,55,4 script Grim Reaper Ankou#RZ Event_5 3029,{
|
|
end;
|
|
OnEnd:
|
|
enablenpc instance_npcname("Grim Reaper Ankou#RZ Event_5");
|
|
npctalk "Grim Reaper Ankou: You're pathetic.";
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: Weaklings like you aren't enough food for Lord Morocc";
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: to get the energy he needs for a full recovery.";
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: I'll give you one chance to leave. NOW!!";
|
|
sleep 3000;
|
|
disablenpc instance_npcname("Grim Reaper Ankou#RZ Event_5");
|
|
sleep 5000;
|
|
enablenpc instance_npcname("#RZ Move_13a");
|
|
enablenpc instance_npcname("#RZ Move_14a");
|
|
enablenpc instance_npcname("#RZ Move_15a");
|
|
enablenpc instance_npcname("#RZ Move_16a");
|
|
end;
|
|
}
|
|
|
|
|
|
// Event B
|
|
1@rev,104,176,0 script #RZ Event_3 HIDDEN_WARP_NPC,4,4,{
|
|
end;
|
|
OnTouch:
|
|
disablenpc instance_npcname("#RZ Event_3");
|
|
enablenpc instance_npcname("Weakened Morocc#RZ1");
|
|
unittalk getcharid(3), "" + strcharinfo(0) + " : Finally, here we are, Morocc.";
|
|
setpcblock PCBLOCK_NPC, true;
|
|
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;
|
|
setpcblock PCBLOCK_NPC, false;
|
|
specialeffect2 EF_LOCKON;
|
|
donpcevent instance_npcname("Weakened Morocc#RZ1") + "::OnTalk1";
|
|
end;
|
|
}
|
|
|
|
1@rev,111,178,4 script Weakened Morocc#RZ1 1916,{
|
|
end;
|
|
OnTalk1:
|
|
npctalk "Weakened Morocc: I should punish you for disturbing my slumber.";
|
|
sleep 3000;
|
|
npctalk "Weakened Morocc: Do you really think you can stop me?";
|
|
sleep 3000;
|
|
npctalk "Weakened Morocc: I'll make you regret ever coming here.";
|
|
sleep 3000;
|
|
npctalk "Weakened Morocc: I may have not recovered my full strength,";
|
|
specialeffect EF_ENERGYCOAT;
|
|
sleep 3000;
|
|
npctalk "Weakened Morocc: but I still can take down a bunch of you easily.";
|
|
sleep 3000;
|
|
npctalk "Weakened Morocc: Death is your only escape!";
|
|
specialeffect EF_VOLCANO;
|
|
sleep 3000;
|
|
disablenpc instance_npcname("Weakened Morocc#RZ1");
|
|
initnpctimer;
|
|
monster 'map_rev$,111,178,"Weakened Morocc",2998,1, instance_npcname("Weakened Morocc#RZ1") + "::OnMobDead"; // EP14_MORS_EVENT
|
|
end;
|
|
OnTalk2:
|
|
npctalk "Weakened Morocc: I'm sorry, but I haven't recovered my full strength.";
|
|
sleep 3000;
|
|
npctalk "Weakened Morocc: I'll have to leave you to my soldiers for now.";
|
|
sleep 3000;
|
|
npctalk "Weakened Morocc: Do your worst to get out of my world!";
|
|
sleep 3000;
|
|
npctalk "Weakened Morocc: In the end, you'll learn the meaning of helplessness in the most painful way!";
|
|
sleep 3000;
|
|
npctalk "Weakened Morocc: And your souls will be mine! Mwah hah hah!";
|
|
sleep 3000;
|
|
disablenpc instance_npcname("Weakened Morocc#RZ1");
|
|
sleep 3000;
|
|
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");
|
|
end;
|
|
OnTimer2000:
|
|
if (mobcount( 'map_rev$, instance_npcname("Weakened Morocc#RZ1") + "::OnMobDead" ) < 1) {
|
|
stopnpctimer;
|
|
enablenpc instance_npcname("Weakened Morocc#RZ1");
|
|
donpcevent instance_npcname("Weakened Morocc#RZ1") + "::OnTalk2";
|
|
}
|
|
end;
|
|
OnTimer4000:
|
|
initnpctimer;
|
|
end;
|
|
OnMobDead:
|
|
end;
|
|
}
|
|
|
|
|
|
// Event C1 - left side
|
|
1@rev,35,119,0 script #Battle_1RZ1 HIDDEN_WARP_NPC,10,10,{
|
|
end;
|
|
OnTouch:
|
|
disablenpc instance_npcname("#Battle_1RZ1");
|
|
disablenpc instance_npcname("#RZ Move_30");
|
|
disablenpc instance_npcname("#RZ Move_31");
|
|
disablenpc instance_npcname("#RZ Move_32");
|
|
specialeffect EF_STORMGUST, AREA, instance_npcname("#RZ Memorial Effect 1");
|
|
mapannounce 'map_rev$, "Morocc: How do you like to be separated from each other and have your bodies and minds bound?", bc_map,0x00EBFF;
|
|
setpcblock PCBLOCK_MOVE, true;
|
|
sleep2 3000;
|
|
mapannounce 'map_rev$, "Morocc: You're trespassing! Riff-raff like you have no business in here!", bc_map,0x00EBFF;
|
|
sleep2 3000;
|
|
mapannounce 'map_rev$, "Morocc: Your bodies are mine to control!", bc_map,0x00EBFF;
|
|
sleep2 3000;
|
|
mapannounce 'map_rev$, "Morocc: Your souls are food for my resurrection!", bc_map,0x00EBFF;
|
|
sleep2 3000;
|
|
setpcblock (PCBLOCK_NPC ^ PCBLOCK_MOVE), false;
|
|
mapannounce 'map_rev$, "Morocc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0x00EBFF;
|
|
initnpctimer;
|
|
end;
|
|
|
|
OnTimer4000:
|
|
callsub( S_Spawn );
|
|
OnTimer25000:
|
|
callsub( S_Spawn );
|
|
OnTimer45000:
|
|
if ('event_right == false)
|
|
mapannounce 'map_rev$, "Morocc: My soldiers, make them suffer! Feast on their bodies and souls!", bc_map,0x00EBFF;
|
|
callsub( S_Spawn );
|
|
OnTimer65000:
|
|
callsub( S_Spawn );
|
|
OnTimer85000:
|
|
if ('event_right == false)
|
|
mapannounce 'map_rev$, "Morocc: Not enough. Make them feel terror!", bc_map,0x00EBFF;
|
|
callsub( S_Spawn );
|
|
OnTimer105000:
|
|
callsub( S_Spawn );
|
|
OnTimer125000:
|
|
if ('event_right == false)
|
|
mapannounce 'map_rev$, "Morocc: Resist me! Fight to the death!", bc_map,0x00EBFF;
|
|
callsub( S_Spawn );
|
|
OnTimer145000:
|
|
callsub( S_Spawn );
|
|
OnTimer160000:
|
|
if ('event_right == false)
|
|
mapannounce 'map_rev$, "Morocc: Mwa hah hah, I can feel my power returning!", bc_map,0x00EBFF;
|
|
monster 'map_rev$,33,111,"Morocc's Archer Skeleton",3003,1, instance_npcname("#Battle_1RZ1") + "::OnMobDead";// EP14_MORS_MOB3
|
|
callsub( S_Spawn );
|
|
OnTimer170000:
|
|
monster 'map_rev$,32,128,"Morocc's Archer Skeleton",3003,1, instance_npcname("#Battle_1RZ1") + "::OnMobDead";
|
|
callsub( S_Spawn );
|
|
OnTimer180000:
|
|
if (mobcount( 'map_rev$, instance_npcname("#Battle_1RZ1") + "::OnMobDead") > 19) {
|
|
stopnpctimer;
|
|
stopnpctimer instance_npcname("#Battle_1RZ2");
|
|
donpcevent instance_npcname("Grim Reaper Ankou#RZ Event_3") + "::OnEnd";
|
|
}
|
|
end;
|
|
OnTimer186000:
|
|
killmonster 'map_rev$, instance_npcname("#Battle_1RZ1") + "::OnMobDead";
|
|
end;
|
|
OnTimer187000:
|
|
enablenpc instance_npcname("#Battle_2RZ1");
|
|
mapannounce 'map_rev$, "Morocc: You're more resilient than I thought.", bc_map,0x00EBFF;
|
|
sleep 2000;
|
|
mapannounce 'map_rev$, "Morocc: But enough is enough.", bc_map,0x00EBFF;
|
|
end;
|
|
OnTimer193000:
|
|
enablenpc instance_npcname("#RZ Move_5");
|
|
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");
|
|
stopnpctimer;
|
|
end;
|
|
OnMobDead:
|
|
end;
|
|
|
|
S_Spawn:
|
|
.@label$ = instance_npcname("#Battle_1RZ1") + "::OnMobDead";
|
|
monster 'map_rev$,33,128,"Morocc's Ghoul",3001,1, .@label$;// EP14_MORS_MOB1
|
|
monster 'map_rev$,42,120,"Morocc's Ghoul",3001,1, .@label$;
|
|
monster 'map_rev$,34,111,"Morocc's Ghoul",3001,1, .@label$;
|
|
monster 'map_rev$,25,119,"Morocc's Ghoul",3001,1, .@label$;
|
|
end;
|
|
}
|
|
|
|
// Event C2 - right side
|
|
1@rev,112,126,0 script #Battle_1RZ2 HIDDEN_WARP_NPC,10,10,{
|
|
end;
|
|
OnTouch:
|
|
disablenpc instance_npcname("#RZ Move_30");
|
|
disablenpc instance_npcname("#RZ Move_31");
|
|
disablenpc instance_npcname("#RZ Move_32");
|
|
disablenpc instance_npcname("#Battle_1RZ2");
|
|
specialeffect EF_STORMGUST, AREA, instance_npcname("#RZ Memorial Effect 2");
|
|
setpcblock PCBLOCK_NPC, true;
|
|
sleep2 6000;
|
|
'event_right = true;
|
|
setpcblock (PCBLOCK_NPC ^ PCBLOCK_MOVE), false;
|
|
initnpctimer;
|
|
end;
|
|
OnTimer4000:
|
|
callsub( S_Spawn );
|
|
OnTimer25000:
|
|
mapannounce 'map_rev$, "Morocc: My soldiers, make them suffer! Feast on their bodies and souls!", bc_map,0x00EBFF;
|
|
callsub( S_Spawn );
|
|
OnTimer45000:
|
|
callsub( S_Spawn );
|
|
OnTimer65000:
|
|
mapannounce 'map_rev$, "Morocc: Not enough. Make them feel terror!", bc_map,0x00EBFF;
|
|
callsub( S_Spawn );
|
|
OnTimer85000:
|
|
callsub( S_Spawn );
|
|
OnTimer105000:
|
|
mapannounce 'map_rev$, "Morocc: Resist me! Fight to the death!", bc_map,0x00EBFF;
|
|
callsub( S_Spawn );
|
|
OnTimer125000:
|
|
callsub( S_Spawn );
|
|
OnTimer145000:
|
|
mapannounce 'map_rev$, "Morocc: Mwa hah hah, I can feel my power returning!", bc_map,0x00EBFF;
|
|
callsub( S_Spawn );
|
|
OnTimer160000:
|
|
monster 'map_rev$,103,118, "Morocc's Archer Skeleton", 3003,1, instance_npcname("#Battle_1RZ2") + "::OnMobDead"; // EP14_MORS_MOB3
|
|
callsub( S_Spawn );
|
|
OnTimer170000:
|
|
monster 'map_rev$,120,117, "Morocc's Archer Skeleton", 3003,1, instance_npcname("#Battle_1RZ2") + "::OnMobDead";
|
|
callsub( S_Spawn );
|
|
OnTimer182000:
|
|
//if (mobcount( 'map_rev$, instance_npcname("#Battle_1RZ1") + "::OnMobDead") > 19) { // Official script check Battle_1RZ1
|
|
if (mobcount( 'map_rev$, instance_npcname("#Battle_1RZ2") + "::OnMobDead") > 19) {
|
|
stopnpctimer;
|
|
stopnpctimer instance_npcname("#Battle_1RZ1");
|
|
donpcevent instance_npcname("Grim Reaper Ankou#RZ Event_3") + "::OnEnd";
|
|
}
|
|
end;
|
|
OnTimer186000:
|
|
enablenpc instance_npcname("#Battle_2RZ1");
|
|
killmonster 'map_rev$, instance_npcname("#Battle_1RZ2") + "::OnMobDead";
|
|
end;
|
|
OnTimer194000:
|
|
enablenpc instance_npcname("#RZ Move_5");
|
|
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");
|
|
stopnpctimer;
|
|
end;
|
|
OnMobDead:
|
|
end;
|
|
|
|
S_Spawn:
|
|
.@label$ = instance_npcname("#Battle_1RZ2") + "::OnMobDead";
|
|
monster 'map_rev$,112,126, "Morocc's Ghoul", 3001,1, .@label$; // EP14_MORS_MOB1
|
|
monster 'map_rev$,120,118, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,112,109, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,103,117, "Morocc's Ghoul", 3001,1, .@label$;
|
|
end;
|
|
}
|
|
|
|
// Event D
|
|
1@rev,34,47,0 script #Battle_2RZ1 HIDDEN_WARP_NPC,10,10,{
|
|
end;
|
|
OnTouch:
|
|
disablenpc instance_npcname("#Battle_2RZ1");
|
|
specialeffect EF_STORMGUST, AREA, instance_npcname("#RZ Memorial Effect 3");
|
|
mapannounce 'map_rev$, "Morocc: This world of mine is evolving.", bc_map,0x00EBFF;
|
|
setpcblock PCBLOCK_NPC, true;
|
|
sleep2 3000;
|
|
mapannounce 'map_rev$, "Morocc: My power is returning!", bc_map,0x00EBFF;
|
|
sleep2 3000;
|
|
mapannounce 'map_rev$, "Morocc: Your bodies and souls are under my command!", bc_map,0x00EBFF;
|
|
sleep2 3000;
|
|
setpcblock (PCBLOCK_NPC ^ PCBLOCK_MOVE), false;
|
|
mapannounce 'map_rev$, "Morocc: My soldiers, tear their bodies asunder and bring their souls to me!", bc_map,0x00EBFF;
|
|
initnpctimer;
|
|
end;
|
|
OnTimer4000:
|
|
.@label$ = callsub(S_Spawn);
|
|
monster 'map_rev$,27,53, "Morocc's Archer Skeleton", 3003,1, .@label$; // EP14_MORS_MOB3
|
|
monster 'map_rev$,27,41, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
mapannounce 'map_rev$, "Morocc: This power! It feels great! Mwah hah hah!", bc_map,0x00EBFF;
|
|
end;
|
|
OnTimer30000:
|
|
.@label$ = callsub(S_Spawn);
|
|
monster 'map_rev$,40,41, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,40,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
mapannounce 'map_rev$, "Morocc: How do you like losing control of your own body? *Chuckle*", bc_map,0x00EBFF;
|
|
end;
|
|
OnTimer55000:
|
|
.@label$ = callsub(S_Spawn);
|
|
monster 'map_rev$,40,41, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,40,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,27,53, "Morocc's Verit", 3005,1, .@label$; // EP14_MORS_MOB5
|
|
end;
|
|
OnTimer80000:
|
|
.@label$ = callsub(S_Spawn);
|
|
monster 'map_rev$,40,41, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,40,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,27,53, "Morocc's Verit", 3005,1, .@label$;
|
|
mapannounce 'map_rev$, "Morocc: More! I need more energy!", bc_map,0x00EBFF;
|
|
end;
|
|
OnTimer105000:
|
|
.@label$ = callsub(S_Spawn);
|
|
monster 'map_rev$,40,41, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,40,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,27,53, "Morocc's Verit", 3005,1, .@label$;
|
|
mapannounce 'map_rev$, "Morocc: Mwah hah hah! Fear my army! Struggle harder!", bc_map,0x00EBFF;
|
|
end;
|
|
OnTimer130000:
|
|
.@label$ = callsub(S_Spawn);
|
|
monster 'map_rev$,40,41, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,40,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,27,53, "Morocc's Verit", 3005,1, .@label$;
|
|
end;
|
|
OnTimer155000:
|
|
.@label$ = callsub(S_Spawn);
|
|
monster 'map_rev$,27,53, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,27,41, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,40,41, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,40,54, "Morocc's Verit", 3005,1, .@label$;
|
|
mapannounce 'map_rev$, "Morocc: You're pathetic, struggling to survive!", bc_map,0x00EBFF;
|
|
end;
|
|
OnTimer170000:
|
|
.@label$ = callsub(S_Spawn);
|
|
monster 'map_rev$,40,41, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,40,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,27,53, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,27,41, "Morocc's Verit", 3005,1, .@label$;
|
|
end;
|
|
OnTimer180000:
|
|
if (mobcount( 'map_rev$, instance_npcname("#Battle_2RZ1") + "::OnMobDead" ) > 19) {
|
|
stopnpctimer;
|
|
donpcevent instance_npcname("Grim Reaper Ankou#RZ Event_5") + "::OnEnd";
|
|
}
|
|
end;
|
|
OnTimer185000:
|
|
killmonster 'map_rev$, instance_npcname("#Battle_2RZ1") + "::OnMobDead";
|
|
disablenpc instance_npcname("#RZ Debuff_9");
|
|
disablenpc instance_npcname("#RZ Debuff_10");
|
|
disablenpc instance_npcname("#RZ Debuff_11");
|
|
disablenpc instance_npcname("#RZ Debuff_12");
|
|
end;
|
|
OnTimer186000:
|
|
mapannounce 'map_rev$, "Morocc: I'm surprised you've lasted this long. Thank you for helping me recover most of my strength.", bc_map,0x00EBFF;
|
|
end;
|
|
OnTimer190000:
|
|
mapannounce 'map_rev$, "Morocc: Good, I feel rejuvenated.", bc_map,0x00EBFF;
|
|
end;
|
|
OnTimer192500:
|
|
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");
|
|
end;
|
|
OnTimer193000:
|
|
enablenpc instance_npcname("#RZ Move_13");
|
|
enablenpc instance_npcname("#RZ Move_14");
|
|
enablenpc instance_npcname("#RZ Move_15");
|
|
enablenpc instance_npcname("#RZ Move_16");
|
|
stopnpctimer;
|
|
end;
|
|
S_Spawn:
|
|
.@label$ = instance_npcname("#Battle_2RZ1") + "::OnMobDead";
|
|
monster 'map_rev$,34,57, "Morocc's Ghoul", 3001,1, .@label$; // EP14_MORS_MOB1
|
|
monster 'map_rev$,43,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,33,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,24,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
return .@label$;
|
|
OnMobDead:
|
|
end;
|
|
}
|
|
|
|
// Event E - final
|
|
1@rev,112,48,4 script Morocc Necromancer#RZ1 4_GHOST_STAND,{
|
|
end;
|
|
OnFinal:
|
|
.@ankou$ = instance_npcname("Grim Reaper Ankou#RZ Event_6");
|
|
'event_ended = true;
|
|
sleep 3000;
|
|
enablenpc .@ankou$;
|
|
npctalk "Grim Reaper Ankou: Sigh, Necromancer, why did you have to die so quickly?", .@ankou$;
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: Don't be so happy!", .@ankou$;
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: Now that Lord Morocc has fully recovered his strength, you're as good as dead!", .@ankou$;
|
|
sleep 3000;
|
|
npctalk "Grim Reaper Ankou: We'll meet again. *Chuckle*", .@ankou$;
|
|
sleep 3000;
|
|
disablenpc .@ankou$;
|
|
enablenpc instance_npcname("#RZ Move_17a");
|
|
specialeffect EF_THUNDERSTORM, AREA, instance_npcname("#morocc_necromancer_dummy");
|
|
sleep 1000;
|
|
specialeffect EF_LORD, AREA, instance_npcname("#morocc_necromancer_dummy");
|
|
end;
|
|
}
|
|
1@rev,112,48,4 script Grim Reaper Ankou#RZ Event_6 3029,{ end; }
|
|
|
|
// additionnal npc to display the effect on Morocc Necromancer#RZ1 coordinates without bothered the player
|
|
1@rev,112,48,4 script #morocc_necromancer_dummy HIDDEN_WARP_NPC,{ end; }
|
|
|
|
|
|
1@rev,104,47,0 script #Battle_3RZ1 HIDDEN_WARP_NPC,5,5,{
|
|
end;
|
|
OnTouch:
|
|
disablenpc instance_npcname("#Battle_3RZ1");
|
|
mapannounce 'map_rev$, "Morocc: I can't let you go unscathed!", bc_map,0x00EBFF;
|
|
sleep2 3000;
|
|
mapannounce 'map_rev$, "Morocc: Hah hah, my Necromancer. I'll leave them to you.", bc_map,0x00EBFF;
|
|
sleep2 3000;
|
|
mapannounce 'map_rev$, "Morocc: My loyal soldier, I'll trust you with their deaths!", bc_map,0x00EBFF;
|
|
sleep2 3000;
|
|
killmonster 'map_rev$, instance_npcname("#RZ Memorial Start") + "::OnSoulDead";
|
|
.@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 Morocc 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$;
|
|
monster 'map_rev$,112,48, "Morocc Necromancer", 2999,1, instance_npcname("#Battle_3RZ1") + "::OnMobDead"; // EP14_MORS_BOSSA
|
|
'boss_id = $@mobid[0];
|
|
initnpctimer;
|
|
end;
|
|
OnTimer2000:
|
|
if (unitexists('boss_id) == false || mobcount( 'map_rev$, instance_npcname("#Battle_3RZ1") + "::OnMobDead" ) < 1) {
|
|
stopnpctimer;
|
|
donpcevent instance_npcname("#Battle_3RZ2") + "::OnStart";
|
|
}
|
|
end;
|
|
OnTimer4000:
|
|
initnpctimer;
|
|
end;
|
|
OnMobDead:
|
|
end;
|
|
}
|
|
|
|
1@rev,106,57,0 script #Battle_3RZ2 HIDDEN_WARP_NPC,{
|
|
end;
|
|
OnStart:
|
|
.@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("#Battle_3RZ2") + "::OnMobDead"; // EP14_MORS_BOSSB
|
|
'boss_id = $@mobid[0];
|
|
initnpctimer instance_npcname("#Battle_3RZ3"); // init monsters spawn
|
|
initnpctimer;
|
|
end;
|
|
OnTimer1000:
|
|
if (mobcount( 'map_rev$, instance_npcname("#Battle_3RZ2") + "::OnMobDead" ) < 1 || unitexists('boss_id) == false) {
|
|
donpcevent instance_npcname("#Battle_3RZ3") + "::OnStop";
|
|
donpcevent instance_npcname("Morocc Necromancer#RZ1") + "::OnFinal";
|
|
donpcevent instance_npcname("#Battle_3RZ4") + "::OnStop";
|
|
donpcevent instance_npcname("#Battle_3RZ5") + "::OnStop";
|
|
donpcevent instance_npcname("#Battle_3RZ6") + "::OnStop";
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStop";
|
|
stopnpctimer;
|
|
end;
|
|
}
|
|
'timer++;
|
|
if ('timer == 30) {
|
|
getunitdata 'boss_id, .@data;
|
|
if (.@data[UMOB_HP] < 3000000 && .@data[UMOB_HP] > 1) {
|
|
.@necromancer$ = instance_npcname("#morocc_necromancer_dummy");
|
|
setunitdata 'boss_id, UMOB_HP, 3000000;
|
|
specialeffect EF_HEAL, AREA, .@necromancer$;
|
|
specialeffect EF_HEAL2, AREA, .@necromancer$;
|
|
specialeffect EF_HEAL4, AREA, .@necromancer$;
|
|
specialeffect EF_HEAL3, AREA, .@necromancer$;
|
|
unittalk 'boss_id, "Morocc Necromancer: You can't kill me!";
|
|
}
|
|
'timer = 0;
|
|
}
|
|
initnpctimer;
|
|
end;
|
|
OnMobDead:
|
|
end;
|
|
}
|
|
|
|
1@rev,120,54,0 script #Battle_3RZ3 HIDDEN_WARP_NPC,{
|
|
end;
|
|
OnStop:
|
|
stopnpctimer;
|
|
killmonster 'map_rev$, instance_npcname("#Battle_3RZ3") + "::OnMobDead";
|
|
end;
|
|
OnTimer4500:
|
|
if ('event_ended == true) {
|
|
stopnpctimer;
|
|
end;
|
|
}
|
|
end;
|
|
OnTimer7000:
|
|
if ('event_ended == true) {
|
|
stopnpctimer;
|
|
end;
|
|
}
|
|
.@count = mobcount( 'map_rev$, instance_npcname("#Battle_3RZ3") + "::OnMobDead" );
|
|
if (.@count > 39) {
|
|
if (unitexists('boss_id) == true)
|
|
unittalk 'boss_id, "Morocc Necromancer: You are surrounded by a lot! It's already in the middle of it! Can't escape! Hey!";
|
|
end;
|
|
}
|
|
donpcevent instance_npcname("#Battle_3RZ4") + "::OnStop";
|
|
donpcevent instance_npcname("#Battle_3RZ5") + "::OnStop";
|
|
donpcevent instance_npcname("#Battle_3RZ6") + "::OnStop";
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStop";
|
|
.@label$ = instance_npcname("#Battle_3RZ3") + "::OnMobDead";
|
|
if (.@count < 10) {
|
|
.@wRand = rand(1,100);
|
|
if (.@wRand < 11) {
|
|
.@string$ = "Morocc Necromancer: We the soldiers of Morocc know no mercy!";
|
|
monster 'map_rev$,121,47, "Morocc's Ghoul", 3001,1, .@label$; // EP14_MORS_MOB1
|
|
monster 'map_rev$,112,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$; // EP14_MORS_MOB3
|
|
monster 'map_rev$,119,40, "Morocc's Verit", 3005,1, .@label$; // EP14_MORS_MOB5
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$; // EP14_MORS_MOB4
|
|
donpcevent instance_npcname("#Battle_3RZ4") + "::OnStart";
|
|
}
|
|
else if (.@wRand < 21) {
|
|
.@string$ = "Morocc Necromancer: You're doing good so far. *Giggle*";
|
|
monster 'map_rev$,112,57, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,112,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ5") + "::OnStart";
|
|
}
|
|
else if (.@wRand < 31) {
|
|
.@string$ = "Morocc Necromancer: I see you're weakening, though.";
|
|
monster 'map_rev$,112,57, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,121,47, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ6") + "::OnStart";
|
|
}
|
|
else if (.@wRand < 41) {
|
|
.@string$ = "Morocc Necromancer: Feel the power of his army!";
|
|
monster 'map_rev$,112,57, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,121,47, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,112,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStart";
|
|
}
|
|
else if (.@wRand < 51) {
|
|
.@string$ = "Morocc Necromancer: Feel the power of his army!";
|
|
monster 'map_rev$,121,47, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,112,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ4") + "::OnStart";
|
|
}
|
|
else if (.@wRand < 61) {
|
|
.@string$ = "Morocc Necromancer: I see you're weakening, though.";
|
|
monster 'map_rev$,121,47, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,112,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Verit", 3005,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ4") + "::OnStart";
|
|
}
|
|
else if (.@wRand < 71) {
|
|
.@string$ = "Morocc Necromancer: You're doing good so far. *Giggle*";
|
|
monster 'map_rev$,112,57, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,112,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Verit", 3005,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ5") + "::OnStart";
|
|
}
|
|
else if (.@wRand < 81) {
|
|
.@string$ = "Morocc Necromancer: We the soldiers of Morocc know no mercy!";
|
|
monster 'map_rev$,112,57, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,121,47, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Wraith", 3004,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Verit", 3005,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ6") + "::OnStart";
|
|
}
|
|
else if (.@wRand < 91) {
|
|
.@string$ = "Morocc Necromancer: Feel the power of his army!";
|
|
monster 'map_rev$,112,57, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,121,47, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,112,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStart";
|
|
}
|
|
else if (.@wRand < 101) {
|
|
.@string$ = "Morocc Necromancer: I see you're weakening, though.";
|
|
monster 'map_rev$,121,47, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,112,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ4") + "::OnStart";
|
|
}
|
|
}
|
|
else if (.@count < 15) {
|
|
.@wRand = rand(1,60);
|
|
if (.@wRand < 11) {
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ4") + "::OnStart";
|
|
donpcevent instance_npcname("#Battle_3RZ5") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: Go to hell! Send them to hell!";
|
|
}
|
|
else if (.@wRand < 21) {
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ4") + "::OnStart";
|
|
donpcevent instance_npcname("#Battle_3RZ6") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: Morocc's army is not afraid!";
|
|
}
|
|
else if (.@wRand < 31) {
|
|
monster 'map_rev$,112,38, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Wraith", 3004,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ4") + "::OnStart";
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: My loyal men are coming! Come over!";
|
|
}
|
|
else if (.@wRand < 41) {
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ5") + "::OnStart";
|
|
donpcevent instance_npcname("#Battle_3RZ6") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: For Morocc!!";
|
|
}
|
|
else if (.@wRand < 51) {
|
|
monster 'map_rev$,112,57, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ5") + "::OnStart";
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: For Morocc!!";
|
|
}
|
|
else {
|
|
monster 'map_rev$,121,47, "Morocc's Ghoul", 3001,1, .@label$;
|
|
monster 'map_rev$,120,54, "Morocc's Wraith", 3004,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Verit", 3005,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Archer Skeleton", 3003,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ6") + "::OnStart";
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: My loyal men are coming! Come over!";
|
|
}
|
|
}
|
|
else if (.@count < 20) {
|
|
.@wRand = rand(1,40);
|
|
monster 'map_rev$,102,48, "Morocc's Ghoul", 3001,1, .@label$;
|
|
if (.@wRand < 11) {
|
|
monster 'map_rev$,120,54, "Morroc's Pumpkin Soul", 3006,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ6") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: You are alive and can't go back!";
|
|
}
|
|
else if (.@wRand < 21) {
|
|
monster 'map_rev$,119,40, "Morroc's Pumpkin Soul", 3006,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: You are alive and can't go back!";
|
|
}
|
|
else if (.@wRand < 31) {
|
|
monster 'map_rev$,104,40, "Morroc's Pumpkin Soul", 3006,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: You are gradually entering death!";
|
|
}
|
|
else {
|
|
monster 'map_rev$,104,54, "Morroc's Pumpkin Soul", 3006,1, .@label$;
|
|
donpcevent instance_npcname("#Battle_3RZ7") + "::OnStart";
|
|
.@string$ = "Morocc Necromancer: Let me pray for your impending death!";
|
|
}
|
|
}
|
|
else {
|
|
.@wRand = rand(1,100);
|
|
if (.@wRand < 21) {
|
|
monster 'map_rev$,120,54, "Morocc's Wraith", 3004,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
if (.@wRand < 11)
|
|
.@string$ = "Morocc Necromancer: You are no different from the walking dead!";
|
|
else
|
|
.@string$ = "Morocc Necromancer: Can hold you up now and you are lucky!";
|
|
}
|
|
else if (.@wRand < 31) {
|
|
monster 'map_rev$,120,54, "Morocc's Wraith", 3004,1, .@label$;
|
|
monster 'map_rev$,119,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
.@string$ = "Morocc Necromancer: The result is only this level!";
|
|
}
|
|
else if (.@wRand < 51) {
|
|
monster 'map_rev$,119,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
.@string$ = "Morocc Necromancer: Even I can't cope with it and dare to fight against Morocc!";
|
|
}
|
|
else {
|
|
monster 'map_rev$,119,40, "Morroc's Pumpkin Soul", 3006,1, .@label$; // EP14_MORS_MOB6
|
|
monster 'map_rev$,104,40, "Morocc's Wraith", 3004,1, .@label$;
|
|
monster 'map_rev$,104,54, "Morocc's Wraith", 3004,1, .@label$;
|
|
if (.@wRand < 61)
|
|
.@string$ = "Morocc Necromancer: The result is only this level!";
|
|
else
|
|
.@string$ = "Morocc Necromancer: Can hold you up now and you are lucky!";
|
|
}
|
|
}
|
|
if (unitexists('boss_id) == true)
|
|
unittalk 'boss_id, .@string$;
|
|
end;
|
|
OnTimer24000:
|
|
OnTimer24500:
|
|
if ('event_ended == true)
|
|
stopnpctimer;
|
|
end;
|
|
OnTimer25000:
|
|
if ('event_ended == true) {
|
|
stopnpctimer;
|
|
end;
|
|
}
|
|
initnpctimer;
|
|
end;
|
|
OnMobDead:
|
|
end;
|
|
}
|
|
|
|
1@rev,120,55,0 script #Battle_3RZ4 HIDDEN_WARP_NPC,{
|
|
end;
|
|
OnStart:
|
|
sscanf( strnpcinfo(2), "Battle_3RZ%d", .@num );
|
|
if (.@num == 4) setarray .@xy[0],112,57;
|
|
else if (.@num == 5) setarray .@xy[0],121,47;
|
|
else if (.@num == 6) setarray .@xy[0],112,38;
|
|
else setarray .@xy[0],102,48;
|
|
monster 'map_rev$, .@xy[0], .@xy[1], "Morocc's Osiris", 3002,1, instance_npcname( strnpcinfo(0) ) + "::OnMobDead"; // EP14_MORS_MOB2
|
|
'monster_id[.@num] = $mobid[0];
|
|
initnpctimer;
|
|
end;
|
|
OnStop:
|
|
stopnpctimer;
|
|
killmonster 'map_rev$, instance_npcname( strnpcinfo(0) ) + "::OnMobDead";
|
|
end;
|
|
OnTimer4500:
|
|
callsub S_Spawn;
|
|
end;
|
|
OnTimer9000:
|
|
callsub S_Spawn;
|
|
initnpctimer;
|
|
end;
|
|
OnMobDead:
|
|
end;
|
|
S_Spawn:
|
|
if ('event_ended == true) {
|
|
donpcevent instance_npcname( strnpcinfo(0) ) + "::OnStop";
|
|
end;
|
|
}
|
|
sscanf( strnpcinfo(2), "Battle_3RZ%d", .@num );
|
|
if (unitexists('monster_id[.@num]) == true && mobcount( 'map_rev$, instance_npcname( strnpcinfo(0) ) + "::OnMobDead" ) > 0) {
|
|
getunitdata 'monster_id[.@num], .@data;
|
|
monster 'map_rev$, .@data[UMOB_X], .@data[UMOB_Y], "#Poison", 3008,1, instance_npcname( strnpcinfo(0) ) + "::OnMobDead"; // EP14_MORS_HIDDEN
|
|
}
|
|
return;
|
|
}
|
|
1@rev,120,56,0 duplicate(#Battle_3RZ4) #Battle_3RZ5 HIDDEN_WARP_NPC
|
|
1@rev,120,57,0 duplicate(#Battle_3RZ4) #Battle_3RZ6 HIDDEN_WARP_NPC
|
|
1@rev,120,58,0 duplicate(#Battle_3RZ4) #Battle_3RZ7 HIDDEN_WARP_NPC
|
|
|
|
|
|
// Warps
|
|
// Entrance -> Weakened Morocc
|
|
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
|
|
|
|
1@rev,106,183,0 script #RZ Move_1 WARPNPC,10,10,{
|
|
end;
|
|
OnTouch:
|
|
if (is_party_leader() == false)
|
|
end;
|
|
sscanf( strnpcinfo(2), "RZ Move_%d", .@num );
|
|
|
|
if (.@num < 5) {
|
|
setarray .@x[0], 33, 112, 36, 114, 36, 114, 34, 111, 31, 109, 31, 109;
|
|
setarray .@y[0], 117, 116, 118, 117, 121, 120, 122, 121, 121, 120, 118, 117;
|
|
}
|
|
else if (.@num < 13) {
|
|
setarray .@x[0], 31, 36, 37, 30, 29, 33, 38, 34, 32, 29, 35, 37;
|
|
setarray .@y[0], 50, 49, 45, 45, 47, 51, 49, 44, 44, 49, 51, 47;
|
|
}
|
|
else {
|
|
setarray .@x[0], 104, 104, 104, 104, 103, 103, 103, 103, 102, 102, 102, 102;
|
|
setarray .@y[0], 48, 47, 46, 49, 49, 48, 47, 46, 46, 47, 48, 49;
|
|
}
|
|
.@size = getarraysize(.@x);
|
|
|
|
getpartymember getcharid(1), 1, .@char_id;
|
|
getpartymember getcharid(1), 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$) {
|
|
.@n = (.@index % .@size);
|
|
warp 'map_rev$, .@x[.@n], .@y[.@n], .@char_id[.@i];
|
|
}
|
|
.@index++;
|
|
}
|
|
end;
|
|
}
|
|
1@rev,106,172,0 duplicate(#RZ Move_1) #RZ Move_2 WARPNPC,10,10
|
|
1@rev,117,172,0 duplicate(#RZ Move_1) #RZ Move_3 WARPNPC,10,10
|
|
1@rev,117,183,0 duplicate(#RZ Move_1) #RZ Move_4 WARPNPC,10,10
|
|
1@rev,28,125,0 duplicate(#RZ Move_1) #RZ Move_5 WARPNPC,10,10
|
|
1@rev,28,114,0 duplicate(#RZ Move_1) #RZ Move_6 WARPNPC,10,10
|
|
1@rev,39,114,0 duplicate(#RZ Move_1) #RZ Move_7 WARPNPC,10,10
|
|
1@rev,39,125,0 duplicate(#RZ Move_1) #RZ Move_8 WARPNPC,10,10
|
|
1@rev,106,123,0 duplicate(#RZ Move_1) #RZ Move_9 WARPNPC,10,10
|
|
1@rev,106,112,0 duplicate(#RZ Move_1) #RZ Move_10 WARPNPC,10,10
|
|
1@rev,117,112,0 duplicate(#RZ Move_1) #RZ Move_11 WARPNPC,10,10
|
|
1@rev,117,123,0 duplicate(#RZ Move_1) #RZ Move_12 WARPNPC,10,10
|
|
1@rev,28,53,0 duplicate(#RZ Move_1) #RZ Move_13 WARPNPC,10,10
|
|
1@rev,28,42,0 duplicate(#RZ Move_1) #RZ Move_14 WARPNPC,10,10
|
|
1@rev,39,42,0 duplicate(#RZ Move_1) #RZ Move_15 WARPNPC,10,10
|
|
1@rev,39,53,0 duplicate(#RZ Move_1) #RZ Move_16 WARPNPC,10,10
|
|
|
|
1@rev,28,125,0 script #RZ Move_5a WARPNPC,10,10,{
|
|
end;
|
|
OnTouch:
|
|
setpcblock PCBLOCK_MOVE, false;
|
|
warp "prontera",97,167;
|
|
end;
|
|
}
|
|
1@rev,28,114,0 duplicate(#RZ Move_5a) #RZ Move_6a WARPNPC,10,10
|
|
1@rev,39,114,0 duplicate(#RZ Move_5a) #RZ Move_7a WARPNPC,10,10
|
|
1@rev,39,125,0 duplicate(#RZ Move_5a) #RZ Move_8a WARPNPC,10,10
|
|
1@rev,106,123,0 duplicate(#RZ Move_5a) #RZ Move_9a WARPNPC,10,10
|
|
1@rev,106,112,0 duplicate(#RZ Move_5a) #RZ Move_10a WARPNPC,10,10
|
|
1@rev,117,112,0 duplicate(#RZ Move_5a) #RZ Move_11a WARPNPC,10,10
|
|
1@rev,117,123,0 duplicate(#RZ Move_5a) #RZ Move_12a WARPNPC,10,10
|
|
1@rev,28,53,0 duplicate(#RZ Move_5a) #RZ Move_13a WARPNPC,10,10
|
|
1@rev,28,42,0 duplicate(#RZ Move_5a) #RZ Move_14a WARPNPC,10,10
|
|
1@rev,39,42,0 duplicate(#RZ Move_5a) #RZ Move_15a WARPNPC,10,10
|
|
1@rev,39,53,0 duplicate(#RZ Move_5a) #RZ Move_16a WARPNPC,10,10
|
|
|
|
1@rev,112,56,3 script #RZ Move_17a PORTAL,{
|
|
mes "Do you want to exit through the portal?";
|
|
next;
|
|
if (select( "No.", "Yes." ) == 1)
|
|
close;
|
|
mes "- Teleporting... -";
|
|
close2;
|
|
warp "moro_cav",59,63;
|
|
end;
|
|
}
|
|
|
|
// dummy npc
|
|
// 1@rev,10,10,0 script #RZ Move_18 WARPNPC,{ end; }
|
|
|
|
1@rev,28,125,0 script #RZ Debuff_1 HIDDEN_WARP_NPC,10,10,{
|
|
end;
|
|
OnTouch:
|
|
setpcblock PCBLOCK_MOVE, true;
|
|
end;
|
|
}
|
|
1@rev,28,114,0 duplicate(#RZ Debuff_1) #RZ Debuff_2 HIDDEN_WARP_NPC,10,10
|
|
1@rev,39,114,0 duplicate(#RZ Debuff_1) #RZ Debuff_3 HIDDEN_WARP_NPC,10,10
|
|
1@rev,39,125,0 duplicate(#RZ Debuff_1) #RZ Debuff_4 HIDDEN_WARP_NPC,10,10
|
|
1@rev,106,123,0 duplicate(#RZ Debuff_1) #RZ Debuff_5 HIDDEN_WARP_NPC,10,10
|
|
1@rev,106,112,0 duplicate(#RZ Debuff_1) #RZ Debuff_6 HIDDEN_WARP_NPC,10,10
|
|
1@rev,117,112,0 duplicate(#RZ Debuff_1) #RZ Debuff_7 HIDDEN_WARP_NPC,10,10
|
|
1@rev,117,123,0 duplicate(#RZ Debuff_1) #RZ Debuff_8 HIDDEN_WARP_NPC,10,10
|
|
1@rev,28,53,0 duplicate(#RZ Debuff_1) #RZ Debuff_9 HIDDEN_WARP_NPC,10,10
|
|
1@rev,28,42,0 duplicate(#RZ Debuff_1) #RZ Debuff_10 HIDDEN_WARP_NPC,10,10
|
|
1@rev,39,42,0 duplicate(#RZ Debuff_1) #RZ Debuff_11 HIDDEN_WARP_NPC,10,10
|
|
1@rev,39,53,0 duplicate(#RZ Debuff_1) #RZ Debuff_12 HIDDEN_WARP_NPC,10,10
|
|
|
|
|
|
1@rev,28,53,0 script #RZ Debuff Recovery_1 HIDDEN_WARP_NPC,10,10,{
|
|
end;
|
|
OnTouch:
|
|
setpcblock PCBLOCK_MOVE, false;
|
|
end;
|
|
}
|
|
1@rev,28,42,0 duplicate(#RZ Debuff Recovery_1) #RZ Debuff Recovery_2 HIDDEN_WARP_NPC,10,10
|
|
1@rev,39,42,0 duplicate(#RZ Debuff Recovery_1) #RZ Debuff Recovery_3 HIDDEN_WARP_NPC,10,10
|
|
1@rev,39,53,0 duplicate(#RZ Debuff Recovery_1) #RZ Debuff Recovery_4 HIDDEN_WARP_NPC,10,10
|
|
|
|
// GM NPC
|
|
sec_in02,20,20,6 script Death Cave#a2 4_M_KHKYEL,{
|
|
if (callfunc("F_GM_NPC",1854,0,1,9999) < 1)
|
|
end;
|
|
switch( select( "Death Cave Reset", "Set Vars", "Cancel" ) ) {
|
|
case 1:
|
|
mes "[Death Cave]";
|
|
mes "Yes. Reset.";
|
|
next;
|
|
if (isbegin_quest(9318) > 0)
|
|
erasequest 9318;
|
|
if (isbegin_quest(9319) > 0)
|
|
erasequest 9319;
|
|
mes "[Death Cave]";
|
|
mes "Done!";
|
|
close;
|
|
case 2:
|
|
ep14_3_bios01 = 1;
|
|
mes "[Death Cave]";
|
|
mes "Thank You!";
|
|
close;
|
|
case 3:
|
|
mes "[Death Cave]";
|
|
mes "Thank You!";
|
|
close;
|
|
}
|
|
}
|