Initial release of Ghost Palace Memorial (#2331)

* Initial release of Ghost Palace Memorial (Walkthrough conversion)

Thanks @Lemongrass3110, @aleos89 and @Jeybla for their help!
Thanks to Divine Pride for the monsters datas !
This commit is contained in:
Atemo 2017-08-15 20:11:50 +02:00 committed by GitHub
parent eac3365282
commit 11d33007d9
6 changed files with 1058 additions and 13 deletions

View File

@ -22,3 +22,4 @@
15,Geffen Magic Tournament,7200,300,1@gef,119,209,1@gef_in,1@ge_st 15,Geffen Magic Tournament,7200,300,1@gef,119,209,1@gef_in,1@ge_st
16,Horror Toy Factory,3600,300,1@xm_d,111,22 16,Horror Toy Factory,3600,300,1@xm_d,111,22
17,Faceworm's Nest,3600,300,1@face,112,374 17,Faceworm's Nest,3600,300,1@face,112,374
18,Ghost Palace,3600,300,1@spa,42,196

View File

@ -2102,20 +2102,20 @@
//2945,J_MUMMY //2945,J_MUMMY
//2946,J_ANUBIS //2946,J_ANUBIS
//2947,J_EGGYRA //2947,J_EGGYRA
//2948,CURSED_SOLDIER 2948,CURSED_SOLDIER,Cursed Soldier,Cursed Soldier,110,18574,1,1907,1851,9,1258,1791,85,35,81,50,64,56,178,23,10,12,1,1,69,0x3885,150,1960,576,420,0,0,0,0,0,0,0,6672,1000,957,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2949,CURSED_SENTINEL 2949,CURSED_SENTINEL,Cursed Sentinel,Cursed Sentinel,110,14099,1,1634,1346,2,1347,1906,84,41,120,65,66,41,107,26,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,6672,1000,934,2500,1097,1500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2950,BROKEN_MIND 2950,BROKEN_MIND,Broken Mind,Broken Mind,110,13520,1,1545,1557,1,1259,1799,67,27,69,37,36,10,64,5,10,12,1,6,67,0x2003885,200,920,720,200,0,0,0,0,0,0,0,6672,1000,6086,2500,683,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2951,FLOATING_WORD 2951,FLOATING_WORD,Floating Word,Floating Word,110,11276,1,1166,1034,1,1080,1509,93,40,111,90,60,70,139,65,10,12,0,6,68,0x2003885,150,972,648,432,0,0,0,0,0,0,0,6672,1000,938,3000,947,2500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2952,LIKE_LOVE 2952,LIKE_LOVE,Like Love,Like Love,110,14008,1,1505,1667,2,1182,1183,64,51,62,27,25,55,102,20,10,12,1,6,64,0x2003885,150,1056,1056,336,0,0,0,0,0,0,0,6672,1000,929,2500,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2953,CURSED_MEMORY 2953,CURSED_MEMORY,Cursed Memory,Cursed Memory,110,18045,1,1802,1623,1,1310,1867,89,28,87,39,58,5,82,10,10,12,1,1,69,0x3885,350,1768,500,192,0,0,0,0,0,0,0,6672,1000,957,3000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2954,COLORLESS_VOW 2954,COLORLESS_VOW,Colorless Vow,Colorless Vow,110,19194,0,1939,1881,1,1478,2121,95,41,84,35,60,20,85,15,10,12,1,1,69,0x3885,350,0,500,0,0,0,0,0,0,0,0,6672,1000,958,3500,1063,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2955,OLD_FRIENDSHIP 2955,OLD_FRIENDSHIP,Old Friendship,Old Friendship,110,12614,0,1306,1328,0,1147,1638,78,5,56,12,19,11,30,10,10,12,1,1,49,0x3885,250,2460,912,0,0,0,0,0,0,0,0,6672,1000,932,3500,1098,2500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2956,SWEET_SLAUGHTER 2956,SWEET_SLAUGHTER,Sweet Slaughter,Sweet Slaughter,110,13986,0,1960,1587,0,1216,1709,125,10,121,48,40,31,125,32,10,12,2,1,29,0x3885,350,1538,1000,396,0,0,0,0,0,0,0,6672,1000,929,2000,682,1000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2957,FORGOTTEN_NAME 2957,FORGOTTEN_NAME,Forgotten Name,Forgotten Name,120,19546,1,1505,1485,2,1093,1520,111,38,121,29,51,43,100,3,10,12,1,1,49,0x3885,155,1169,1152,480,0,0,0,0,0,0,0,6672,1500,682,5000,683,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2958,FATAL_DAYS 2958,FATAL_DAYS,Fatal Days,Fatal Days,120,24240,1,2052,2026,2,1025,1428,72,15,100,71,63,85,115,37,10,12,1,6,67,0x2003885,190,720,384,480,0,0,0,0,0,0,0,6672,1500,1050,2500,1038,2500,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2959,TORTUROUS_REDEEMER 2959,TORTUROUS_REDEEMER,Torturous Redeemer,Torturous Redeemer,120,103342,0,10590,8378,0,1253,1753,144,28,133,69,72,55,165,44,10,12,1,7,62,0x3885,200,672,420,360,0,0,0,0,0,0,0,6672,10000,6672,10000,923,2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2960,MM_FLAMECROSS //2960,MM_FLAMECROSS
//2961,E_TORTUROUS_REDEEMER 2961,E_TORTUROUS_REDEEMER,Torturous Redeemer,Torturous Redeemer,120,103342,1,10590,8378,1,1253,1753,144,28,133,69,72,55,165,44,10,12,1,7,62,0x3885,200,672,420,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
//2962,E_DEVILING //2962,E_DEVILING
//2963,WOODIE //2963,WOODIE
//2964,EXP_1000 //2964,EXP_1000

View File

@ -10916,6 +10916,54 @@
2923,Owl Marquees@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,, 2923,Owl Marquees@NPC_EMOTION,idle,197,1,2000,0,5000,yes,self,always,0,6,0x3695,,,,,
2923,Owl Marquees@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,2922,,,,,, 2923,Owl Marquees@NPC_SUMMONSLAVE,idle,196,2,10000,2000,60000,no,self,slavele,0,2922,,,,,,
// Ghost Palace Memorial
2948,Cursed Soldier@NPC_BLINDATTACK,attack,177,5,500,0,5000,no,target,always,0,,,,,,,
2948,Cursed Soldier@AC_DOUBLE,attack,46,5,500,0,5000,no,target,always,0,,,,,,,
2948,Cursed Soldier@NPC_MAGICALATTACK,attack,192,1,500,800,5000,yes,target,always,0,,,,,,,
2948,Cursed Soldier@AC_SHOWER,attack,47,3,500,0,5000,no,target,always,0,,,,,,,
2949,Cursed Sentinel@AS_SONICBLOW,attack,136,7,500,800,5000,yes,target,always,0,,,,,,29,
2949,Cursed Sentinel@NPC_CURSEATTACK,attack,181,5,500,800,5000,yes,target,always,0,,,,,,29,
2950,Broken Mind@NPC_BLINDATTACK,attack,177,3,1500,0,5000,no,target,always,0,,,,,,1,
2950,Broken Mind@NPC_BLINDATTACK,chase,177,3,1500,0,5000,no,target,always,0,,,,,,1,
2950,Broken Mind@NPC_BLOODDRAIN,attack,199,1,500,0,5000,no,target,always,0,,,,,,26,
2950,Broken Mind@NPC_CURSEATTACK,attack,181,3,500,800,5000,yes,target,always,0,,,,,,0,
2950,Broken Mind@NPC_CURSEATTACK,chase,181,3,500,800,5000,yes,target,always,0,,,,,,0,
2950,Broken Mind@CR_REFLECTSHIELD,attack,252,2,500,0,300000,yes,self,always,0,,,,,,7,
2950,Broken Mind@NPC_PETRIFYATTACK,attack,180,3,500,500,5000,yes,target,always,0,,,,,,2,
2950,Broken Mind@NPC_PETRIFYATTACK,chase,180,3,500,500,5000,yes,target,always,0,,,,,,2,
2951,Floating Word@NPC_BLOODDRAIN,attack,199,1,500,0,5000,no,target,always,0,,,,,,2,
2951,Floating Word@NPC_EMOTION,idle,197,1,2000,0,5000,no,self,always,0,29,,,,,,
2951,Floating Word@MG_FIREBALL,chase,17,5,1500,500,5000,yes,target,always,0,,,,,,,
2951,Floating Word@MO_BODYRELOCATION,chase,264,1,2000,500,5000,yes,target,always,0,,,,,,,
2952,Like Love@HT_SHOCKWAVE,idle,118,5,500,0,300000,no,around2,always,0,,,,,,29,
2952,Like Love@MG_LIGHTNINGBOLT,attack,20,5,500,1500,5000,no,target,always,0,,,,,,6,
2952,Like Love@MG_LIGHTNINGBOLT,chase,20,5,500,1500,5000,no,target,always,0,,,,,,6,
2952,Like Love@NPC_EMOTION,idle,197,1,2000,0,5000,no,self,always,0,29,,,,,,
2952,Like Love@NPC_MAGICALATTACK,attack,192,1,500,1000,5000,yes,target,always,0,,,,,,9,
2952,Like Love@NPC_UNDEADATTACK,attack,347,2,2000,0,5000,no,target,always,0,,,,,,,
2952,Like Love@WZ_JUPITEL,attack,84,3,500,1500,5000,no,target,always,0,,,,,,6,
2952,Like Love@WZ_JUPITEL,chase,84,3,500,1500,5000,no,target,always,0,,,,,,6,
2953,Cursed Memory@NPC_POISON,attack,176,3,500,800,5000,yes,target,always,0,,,,,,,
2953,Cursed Memory@NPC_POISONATTACK,attack,188,3,500,800,5000,yes,target,always,0,,,,,,,
2953,Cursed Memory@NPC_UNDEADATTACK,attack,347,2,500,500,5000,yes,target,always,0,,,,,,,
2954,Colorless Vow@NPC_CRITICALSLASH,attack,170,1,500,500,5000,yes,target,always,0,,,,,,,
2954,Colorless Vow@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,no,target,always,0,,,,,,,
2955,Old Friendship@NPC_POISON,attack,176,3,500,800,5000,yes,target,always,0,,,,,,,
2955,Old Friendship@NPC_POISON,angry,176,3,500,800,5000,yes,target,always,0,,,,,,,
2956,Sweet Slaughter@AS_GRIMTOOTH,chase,137,5,2000,0,5000,no,target,always,0,,,,,,,
2956,Sweet Slaughter@BS_MAXIMIZE,attack,114,5,500,1000,5000,yes,self,always,0,,,,,,,
2956,Sweet Slaughter@BS_MAXIMIZE,chase,114,5,500,1000,5000,yes,self,always,0,,,,,,,
2956,Sweet Slaughter@NPC_SPLASHATTACK,attack,174,1,2000,0,5000,no,target,always,0,,,,,,9,
2956,Sweet Slaughter@NPC_STUNATTACK,attack,179,3,500,1500,5000,yes,target,always,0,,,,,,,
2957,Forgotten Name@NPC_CRITICALSLASH,attack,170,1,1000,500,5000,yes,target,always,0,,,,,,,
2957,Forgotten Name@NPC_DARKNESSATTACK,attack,190,3,500,500,5000,yes,target,always,0,,,,,,6,
2958,Fatal Days@MG_SOULSTRIKE,chase,13,5,2000,0,3000,no,target,always,0,,,,,,,
2958,Fatal Days@AS_GRIMTOOTH,attack,137,5,10000,0,700,no,target,always,0,,,,,,,
2959,Torturous Redeemer@SM_MAGNUM,attack,7,5,500,0,10000,no,self,always,0,,,,,,,
2959,Torturous Redeemer@NPC_FIREATTACK,attack,186,3,1000,1000,200000,yes,target,always,0,,,,,,,
2959,Torturous Redeemer@WZ_FIREPILLAR,attack,80,5,500,0,10000,no,around2,always,0,,,,,,,
2959,Torturous Redeemer@SM_BASH,attack,5,5,500,0,5000,no,target,always,0,,,,,,,
// Horror Toy Factory // Horror Toy Factory
2987,Decorated Evil Tree@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,, 2987,Decorated Evil Tree@AS_GRIMTOOTH,chase,137,5,2000,0,5000,yes,target,always,0,,,,,,,
2987,Decorated Evil Tree@NPC_CURSEATTACK,attack,181,3,1000,0,5000,yes,target,always,0,,,,,,6, 2987,Decorated Evil Tree@NPC_CURSEATTACK,attack,181,3,1000,0,5000,yes,target,always,0,,,,,,6,

View File

@ -136,6 +136,10 @@
1239,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Shop guide" 1239,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Shop guide"
1240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Shop guide" 1240,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Shop guide"
// Ghost Palace memorial
1261,82800,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Cursed Swordman"
1263,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Cursed Swordman"
2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Blacksmith" 2000,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Blacksmith"
2001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Blacksmith" 2001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Blacksmith"
2002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Blacksmith" 2002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"Job Change to Blacksmith"

View File

@ -0,0 +1,991 @@
//===== rAthena Script =======================================
//= Ghost Palace
//===== Description: =========================================
//= [Walkthrough Conversion]
//= Ghost Palace Instance
//===== Changelogs: ==========================================
//= 1.0 First version. [Capuche]
//============================================================
dali02,43,129,5 script Unpleasant Royal Guard# 4_M_SAKRAYROYAL,{
if (BaseLevel < 120) {
mes "[Unpleasant Royal Guard]";
mes "Althought I need help with a task, you are not strong enough to assist me, noob~!";
next;
mes "[Unpleasant Royal Guard]";
mes "Come back later when you have done some training and are at least level 120!";
close;
}
.@party_id = getcharid(1);
if (getcharid(0) != getpartyleader(.@party_id,2) || .@party_id < 1) {
mes "[Unpleasant Royal Guard]";
mes "I can only open the secret passage for party leaders. Please have your party leader talk to me.";
close;
}
switch( checkquest(1261,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Unpleasant Royal Guard]";
mes "Have you found the princess yet?! Is she safe?";
close;
case 2:
mes "[Unpleasant Royal Guard]";
mes "The monsters around the secret passage have disappeared. Now is our chance to save the princess!";
erasequest 1261;// Cursed Swordman
close;
}
mes "[Unpleasant Royal Guard]";
mes "I need help, even from the likes of you.";
next;
mes "[Unpleasant Royal Guard]";
mes "In the middle of battle the princess disappeared while I was guarding the palace.";
next;
mes "[Unpleasant Royal Guard]";
mes "You run ahead and I will catch up. We must save her.";
next;
if (select( "I will help.", "This is not a good time." ) == 2) {
mes "[Unpleasant Royal Guard]";
mes "Even now all the royal guards are fighting and dying from the monsters.";
next;
mes "[Unpleasant Royal Guard]";
mes "We must, no matter how much fear grips our hearts, save the princess!";
close;
}
instance_create("Ghost Palace");
mes "[Unpleasant Royal Guard]";
mes "Thank you..";
mes "I will open the secret passage to the ^0000ffGhost Palace^000000.";
mes "Please be ready!";
close;
}
dali02,40,134,5 script Interdimensional Device#dk PORTAL,{
if (BaseLevel < 120) {
mes "[Unpleasant Royal Guard]";
mes "Althought I need help with a task, you are not strong enough to assist me, noob~!";
next;
mes "[Unpleasant Royal Guard]";
mes "Come back later when you have done some training and are at least level 120!";
close;
}
mes "[Unpleasant Royal Guard]";
mes "I can see the secret passage into the palace. Are you ready to save the princess?!";
next;
if (select( "Enter", "Stop" ) == 2) {
mes "[Unpleasant Royal Guard]";
mes "Even now all the royal guards are fighting and dying from the monsters.";
next;
mes "[Unpleasant Royal Guard]";
mes "We must, no matter how much fear grips our hearts, save the princess!";
close;
}
switch( checkquest(1261,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Unpleasant Royal Guard]";
mes "The monsters that attacked the palace are wandering around the secret entrance. It would be very bad if they spotted us... Please wait.";
next;
mes "When the time limit for the entrance is up";
mes "let's try to re-enter.";
close;
case 2:
mes "^0000ffThe time limit for entering to the Curse of the Swordsman is finished. Please try to talk to the Unpleasent Royal Guard again..^000000";
erasequest 1261;// Cursed Swordman
close;
}
.@party_id = getcharid(1);
if (getcharid(0) != getpartyleader(.@party_id,2) || .@party_id < 1) {
mes "[Unpleasant Royal Guard]";
mes "I can only open the secret passage for party leaders. Please have your party leader talk to me.";
close;
}
.@md_name$ = "Ghost Palace";
switch( instance_enter(.@md_name$) ) {
case IE_OTHER:
mes "An unknown error occurred.";
close;
case IE_NOINSTANCE:
mes "^ff0000Inside the devices you see a dark hole. If you wish to enter you must to talk to the Unpleasent Royal Guard first.^000000";
close;
case IE_NOMEMBER:
mes "Only registered members can enter the " + .@md_name$ + " instance.";
close;
case IE_OK:
mapannounce "dali", "" + strcharinfo(0) + " of the party, " + getpartyname(.@party_id) + ", is entering the Ghost Palace.", bc_map, 0x00ff99;
// warp "1@spa",42,196;
setquest 1261;// Cursed Swordman
end;
}
}
// 1st floor
1@spa,41,204,5 script King#dk 4_M_RUSKING,{
mes "[King]";
mes "You are hereby appointed as the personal guard to Princess Tiara. I trust your loyalty above all else.";
npctalk "King: You are hereby appointed as the personal guard to Princess Tiara. I trust your loyalty above all else.";
next;
mes "[Lurid Royal Guard]";
mes "I will protect the princess with my life.";
npctalk "Lurid Royal Guard: I will protect the princess with my life.", instance_npcname("Lurid Royal Guard#dk");
next;
mes "[King]";
mes "The marriage arrangements are going as planned. The prince is here to meet with the princess.";
npctalk "King: The marriage arrangements are going as planned. The prince is here to meet with the princess.";
next;
mes "[Lurid Royal Guard]";
mes "...Yes, your majesty.";
npctalk "Lurid Royal Guard: ...Yes, your majesty.", instance_npcname("Lurid Royal Guard#dk");
next;
mes "[King]";
mes "My gods, there are monsters in the castle! Get rid of them now!";
npctalk "King: My gods, there are monsters in the castle! Get rid of them now!";
close2;
donpcevent instance_npcname("#gp_control_1") + "::OnStart";
end;
OnInstanceInit:
// 1: enabled potential double spawn (official), 0: disabled
'bool_double_spawn = 1;
'map_spa$ = instance_mapname("1@spa");
// warps
disablenpc instance_npcname("The second floor of Palace");
disablenpc instance_npcname("3rd floor in the palace");
disablenpc instance_npcname("4th floor in the palace");
disablenpc instance_npcname("5th floor of Palace");
disablenpc instance_npcname("Way out of Palace");
// first floor
disablenpc instance_npcname("#gp_control_1");
// second floor
disablenpc instance_npcname("Lurid Royal Guard#dk1");
disablenpc instance_npcname("Princess Tiara#dk");
disablenpc instance_npcname("#gp_control_2");
// 3rd floor
disablenpc instance_npcname("King#dk1");
disablenpc instance_npcname("Lurid Royal Guard#dk2");
disablenpc instance_npcname("Captain of the Guard#dk");
disablenpc instance_npcname("Soldier#dk1");
disablenpc instance_npcname("Soldier#dk2");
disablenpc instance_npcname("Soldier#dk3");
disablenpc instance_npcname("Lurid Royal Guard#dk3");
disablenpc instance_npcname("Thanatos Magic Trace#dk1");
disablenpc instance_npcname("#gp_control_3");
// 4th floor
disablenpc instance_npcname("#gp_control_4");
disablenpc instance_npcname("#gp_control_5");
disablenpc instance_npcname("Thanatos Magic Trace#dk2");
disablenpc instance_npcname("Visiting Prince#dk");
disablenpc instance_npcname("Lurid Royal Guard#dk4");
disablenpc instance_npcname("King's Corpse#dk");
disablenpc instance_npcname("Captain's Corpse#dk");
disablenpc instance_npcname("Soldier's Corpse#dk");
disablenpc instance_npcname("Soldier's Corpse#dk1");
disablenpc instance_npcname("Soldier's Corpse#dk2");
disablenpc instance_npcname("Soldier's Corpse#dk3");
disablenpc instance_npcname("Soldier's Corpse#dk4");
// 5th floor
disablenpc instance_npcname("#gp_control_6");
disablenpc instance_npcname("Princess Tiara#dk1");
disablenpc instance_npcname("Lurid Royal Guard#dk5");
disablenpc instance_npcname("King#dk11");
disablenpc instance_npcname("Sakray#dk");
disablenpc instance_npcname("Thanatos Magic Trace#dk3");
disablenpc instance_npcname("#tb");
disablenpc instance_npcname("#sv");
disablenpc instance_npcname("#tv");
end;
}
1@spa,42,201,1 script Lurid Royal Guard#dk 4_M_SAKRAYROYAL,{ end; }
1@spa,1,1,1 script #gp_control_1 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#gp_control_1");
disablenpc instance_npcname("King#dk");
disablenpc instance_npcname("Lurid Royal Guard#dk");
initnpctimer;
end;
OnTimer2000:
.@label$ = instance_npcname("#gp_control_1") + "::OnMyMobDead1";
monster 'map_spa$,50,194,"Cursed Soldier",2948,1, .@label$; // CURSED_SOLDIER
monster 'map_spa$,34,208,"Cursed Soldier",2948,1, .@label$; // CURSED_SOLDIER
monster 'map_spa$,32,194,"Cursed Gatekeeper",2949,1, .@label$; // CURSED_SENTINEL
monster 'map_spa$,52,209,"Cursed Gatekeeper",2949,1, .@label$; // CURSED_SENTINEL
stopnpctimer;
end;
OnMyMobDead1:
if (mobcount('map_spa$, instance_npcname("#gp_control_1") + "::OnMyMobDead1") < (1 + 'bool_double_spawn)) {
deltimer instance_npcname("#gp_control_1") + "::OnSpawn1"; // stop double spawn if timer is running
addtimer 2000, instance_npcname("#gp_control_1") + "::OnSpawn1";
}
end;
OnSpawn1:
.@label$ = instance_npcname("#gp_control_1") + "::OnMyMobDead2";
monster 'map_spa$,37,182,"Cursed Soldier",2948,1, .@label$; // CURSED_SOLDIER
monster 'map_spa$,46,182,"Cursed Gatekeeper",2949,1, .@label$; // CURSED_SENTINEL
end;
OnMyMobDead2:
if (mobcount('map_spa$, instance_npcname("#gp_control_1") + "::OnMyMobDead2") < 1) {
deltimer instance_npcname("#gp_control_1") + "::OnSpawn1"; // stop double spawn if timer is running
deltimer instance_npcname("#gp_control_1") + "::OnSpawn2";
addtimer 2000, instance_npcname("#gp_control_1") + "::OnSpawn2";
}
end;
OnSpawn2:
.@label$ = instance_npcname("#gp_control_1") + "::OnMyMobDead3";
monster 'map_spa$,30,200,"Cursed Soldier",2948,1, .@label$; // CURSED_SOLDIER
monster 'map_spa$,51,200,"Cursed Gatekeeper",2949,1, .@label$; // CURSED_SENTINEL
monster 'map_spa$,53,199,"Cursed Gatekeeper",2949,1, .@label$; // CURSED_SENTINEL
end;
OnMyMobDead3:
if (mobcount('map_spa$, instance_npcname("#gp_control_1") + "::OnMyMobDead3") < 1) {
mapannounce 'map_spa$, "The passage on the 2nd floor in the palace of ghost is open .", bc_map,0xFFFF00;
enablenpc instance_npcname("The second floor of Palace");
enablenpc instance_npcname("Lurid Royal Guard#dk1");
enablenpc instance_npcname("Princess Tiara#dk");
}
end;
}
// 2nd floor
1@spa,132,122,7 script Lurid Royal Guard#dk1 4_M_SAKRAYROYAL,{
.@tiara$ = instance_npcname("Princess Tiara#dk");
cutin "npc-tiara.bmp",3;
mes "[Lurid Royal Guard]";
mes "Your highness, the King has invited a prince from a neighboring country to be your betrothed. Be ready to meet him...";
npctalk "Lurid Royal Guard: Your highness, the King has invited a prince from a neighboring country to be your betrothed. Be ready to meet him...";
next;
mes "[Princess Tiara]";
mes "If...If a marriage is arranged what should I do?";
npctalk "Princess Tiara: If...If a marriage is arranged what should I do?", .@tiara$;
next;
mes "[Lurid Royal Guard]";
mes "The only thing I can do is protect you from physical harm.";
npctalk "Lurid Royal Guard: The only thing I can do is protect you from physical harm.";
next;
mes "[Princess Tiara]";
mes "Then, what can I do?";
npctalk "Princess Tiara: Then, what can I do?", .@tiara$;
next;
mes "[Lurid Royal Guard]";
mes "You must decide that for yourself your highness...";
npctalk "Lurid Royal Guard: You must decide that for yourself your highness...";
next;
mes "[Princess Tiara]";
mes "Would it be easier for you if I were married and sent off to another country?";
npctalk "Princess Tiara: Would it be easier for you if I were married and sent off to another country?", .@tiara$;
next;
mes "[Lurid Royal Guard]";
mes "I will always stand by you and protect you forever.";
npctalk "Lurid Royal Guard: I will always stand by you and protect you forever.";
cutin "npc-tiara.bmp",255;
next;
mes "[Princess Tiara]";
mes "Monsters have gotten inside the castle? Please, protect me!";
npctalk "Princess Tiara: Monsters have gotten inside the castle? Please, protect me!", .@tiara$;
next;
mes "[Lurid Royal Guard]";
mes "Stay behind me. Let's go!";
npctalk "Lurid Royal Guard: Stay behind me. Let's go!";
close2;
donpcevent instance_npcname("#gp_control_2") + "::OnStart";
end;
}
1@spa,135,125,3 duplicate(Lurid Royal Guard#dk) Princess Tiara#dk 4_F_MAYSEL
1@spa,1,1,1 script #gp_control_2 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#gp_control_2");
disablenpc instance_npcname("Lurid Royal Guard#dk1");
disablenpc instance_npcname("Princess Tiara#dk");
disablenpc instance_npcname("The second floor of Palace");
killmonster 'map_spa$, instance_npcname("#gp_control_1") + "::OnMyMobDead1";
killmonster 'map_spa$, instance_npcname("#gp_control_1") + "::OnMyMobDead2";
killmonster 'map_spa$, instance_npcname("#gp_control_1") + "::OnMyMobDead3";
disablenpc instance_npcname("#gp_control_1");
initnpctimer;
end;
OnTimer2000:
.@label$ = instance_npcname("#gp_control_2") + "::OnMyMobDead1";
monster 'map_spa$,135,116,"Broken Promise",2950,1, .@label$; // BROKEN_MIND
monster 'map_spa$,110,120,"Broken Promise",2950,1, .@label$; // BROKEN_MIND
monster 'map_spa$,122,112,"Floating Sorrow",2951,1, .@label$; // FLOATING_WORD
monster 'map_spa$,121,129,"Unfulfilled Love",2952,1, .@label$; // LIKE_LOVE
stopnpctimer;
end;
OnMyMobDead1:
if (mobcount('map_spa$, instance_npcname("#gp_control_2") + "::OnMyMobDead1") < 1) {
sleep 2000;
.@label$ = instance_npcname("#gp_control_2") + "::OnMyMobDead2";
monster 'map_spa$,120,103,"Broken Promise",2950,1, .@label$; // BROKEN_MIND
monster 'map_spa$,115,137,"Floating Sorrow",2951,1, .@label$; // FLOATING_WORD
monster 'map_spa$,103,130,"Unfulfilled Love",2952,1, .@label$; // LIKE_LOVE
}
end;
OnMyMobDead2:
if (mobcount('map_spa$, instance_npcname("#gp_control_2") + "::OnMyMobDead2") < 1) {
sleep 2000;
.@label$ = instance_npcname("#gp_control_2") + "::OnMyMobDead3";
monster 'map_spa$,98,119,"Floating Sorrow",2951,1, .@label$; // FLOATING_WORD
monster 'map_spa$,98,120,"Floating Sorrow",2951,1, .@label$; // FLOATING_WORD
monster 'map_spa$,103,109,"Unfulfilled Love",2952,1, .@label$; // LIKE_LOVE
}
end;
OnMyMobDead3:
if (mobcount('map_spa$, instance_npcname("#gp_control_2") + "::OnMyMobDead3") < 1) {
mapannounce 'map_spa$, "The passage on the 3rd floor of the palace is open.", bc_map,0xFFFF00;
enablenpc instance_npcname("3rd floor in the palace");
enablenpc instance_npcname("King#dk1");
enablenpc instance_npcname("Lurid Royal Guard#dk2");
enablenpc instance_npcname("Captain of the Guard#dk");
enablenpc instance_npcname("Soldier#dk1");
enablenpc instance_npcname("Soldier#dk2");
enablenpc instance_npcname("Soldier#dk3");
disablenpc instance_npcname("#gp_control_2");
}
end;
}
// 3rd floor
1@spa,32,54,1 script King#dk1 4_M_RUSKING,{
mes "[King]";
mes "It was you who brought the monsters here! You want to get rid of me and have the princess for yourself?";
npctalk "King: It was you who brought the monsters here! You want to get rid of me and have the princess for yourself?";
next;
mes "[Lurid Royal Guard]";
mes "It is a trap your majesty! You must trust me!";
npctalk "Lurid Royal Guard: It is a trap your majesty! You must trust me!", instance_npcname("Lurid Royal Guard#dk2");
next;
mes "[King]";
mes "Shut up! You've betrayed me! I trusted you... you must pay for your disgrace.";
npctalk "King: Shut up! You've betrayed me! I trusted you... you must pay for your disgrace.";
next;
mes "[King]";
mes "You will suffer for the rest of your life.";
npctalk "King: You will suffer for the rest of your life.";
close2;
disablenpc instance_npcname("3rd floor in the palace");
disablenpc instance_npcname("King#dk1");
disablenpc instance_npcname("Captain of the Guard#dk");
disablenpc instance_npcname("Soldier#dk1");
disablenpc instance_npcname("Soldier#dk2");
disablenpc instance_npcname("Soldier#dk3");
disablenpc instance_npcname("Lurid Royal Guard#dk2");
donpcevent instance_npcname("Thanatos Magic Trace#dk1") + "::OnStart";
end;
}
1@spa,35,56,5 script Thanatos Magic Trace#dk1 4_TRACE,{
end;
OnStart:
enablenpc instance_npcname("Thanatos Magic Trace#dk1");
enablenpc instance_npcname("Lurid Royal Guard#dk3");
initnpctimer;
end;
OnTimer5000:
npctalk "Ominous Voice: Oh, faithful royal guard, you are trapped.";
end;
OnTimer8000:
npctalk "Ominous Voice: The conspiracy in the palace has your princess in grave danger...";
end;
OnTimer12000:
npctalk "Lurid Royal Guard: Who are you? Show yourself!", instance_npcname("Lurid Royal Guard#dk3");
end;
OnTimer15000:
npctalk "Ominous Voice: Ah... so you do you hear me?";
end;
OnTimer20000:
npctalk "Lurid Royal Guard: ...?", instance_npcname("Lurid Royal Guard#dk3");
end;
OnTimer23000:
npctalk "Ominous Voice: I can give you unlimited power. If you make a pact with me.";
end;
OnTimer28000:
npctalk "Lurid Royal Guard: I..I...", instance_npcname("Lurid Royal Guard#dk3");
end;
OnTimer33000:
npctalk "Thanatos Magic Trace: Kukuku... What do you want boy?";
end;
OnTimer34000:
stopnpctimer;
disablenpc instance_npcname("Thanatos Magic Trace#dk1");
disablenpc instance_npcname("Lurid Royal Guard#dk3");
donpcevent instance_npcname("#gp_control_3") + "::OnStart";
end;
}
1@spa,28,52,7 duplicate(Lurid Royal Guard#dk) Captain of the Guard#dk 4_M_KY_KNT
1@spa,25,53,7 duplicate(Lurid Royal Guard#dk) Soldier#dk1 4_M_CRU_SOLD
1@spa,34,53,1 duplicate(Lurid Royal Guard#dk) Soldier#dk2 4_M_CRU_SOLD
1@spa,30,52,7 duplicate(Lurid Royal Guard#dk) Soldier#dk3 4_M_KY_SOLD
1@spa,30,58,5 duplicate(Lurid Royal Guard#dk) Lurid Royal Guard#dk2 4_M_SAKRAY_TIED
1@spa,31,57,5 duplicate(Lurid Royal Guard#dk) Lurid Royal Guard#dk3 4_M_SAKRAY_TIED
1@spa,1,1,1 script #gp_control_3 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#gp_control_3");
initnpctimer;
end;
OnTimer2000:
.@label$ = instance_npcname("#gp_control_3") + "::OnMyMobDead1";
monster 'map_spa$,31,57, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
monster 'map_spa$,59,24, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
monster 'map_spa$,23,40, "Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
monster 'map_spa$,54,45, "Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
monster 'map_spa$,26,20, "Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
stopnpctimer;
end;
OnMyMobDead1:
if (mobcount('map_spa$, instance_npcname("#gp_control_3") + "::OnMyMobDead1") < 1)
addtimer 2000, instance_npcname("#gp_control_3") + "::OnSpawn1";
end;
OnSpawn1:
.@label$ = instance_npcname("#gp_control_3") + "::OnMyMobDead2";
monster 'map_spa$,30,52, "Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
monster 'map_spa$,58,58, "Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
monster 'map_spa$,54,24, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
end;
OnMyMobDead2:
if (mobcount('map_spa$, instance_npcname("#gp_control_3") + "::OnMyMobDead2") < (1 + 'bool_double_spawn)) {
deltimer instance_npcname("#gp_control_3") + "::OnAnnounce";
addtimer 500, instance_npcname("#gp_control_3") + "::OnAnnounce";
}
end;
OnAnnounce:
mapannounce 'map_spa$, "The passage on the 4th floor of the palace is open.", bc_map,0xFFFF00;
enablenpc instance_npcname("4th floor in the palace");
deltimer instance_npcname("#gp_control_3") + "::OnSpawn2"; // stop double spawn if timer is running
addtimer 2000, instance_npcname("#gp_control_3") + "::OnSpawn2";
end;
OnSpawn2:
donpcevent instance_npcname("#gp_control_4") + "::OnStart";
// 35 mobs
.@label$ = instance_npcname("#gp_control_3") + "::OnMyMobDead3";
monster 'map_spa$,67,46, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "You are trapped...";
monster 'map_spa$,62,48, "Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Run away!";
monster 'map_spa$,57,46, "Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
unittalk $@mobid[0], "Run away quickly!";
monster 'map_spa$,51,48, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "Faithful royal guard...";
monster 'map_spa$,56,55, "Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Run away!";
monster 'map_spa$,62,56, "Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
unittalk $@mobid[0], "You are trapped...";
monster 'map_spa$,66,58, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "You put your princess in grave danger...";
monster 'map_spa$,66,64, "Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Faithful royal guard...";
monster 'map_spa$,62,65, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "Run away quickly!";
monster 'map_spa$,57,67, "Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "You are trapped...";
monster 'map_spa$,49,66, "Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
unittalk $@mobid[0], "Run away!";
monster 'map_spa$,44,66, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "Run away quickly!";
monster 'map_spa$,45,20, "Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Run away!";
monster 'map_spa$,38,20, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "You are trapped...";
monster 'map_spa$,32,20, "Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
unittalk $@mobid[0], "Run away quickly!";
monster 'map_spa$,51,22, "Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
unittalk $@mobid[0], "Run away quickly!";
monster 'map_spa$,26,34,"Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
unittalk $@mobid[0], "Run away!";
monster 'map_spa$,21,37,"Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Faithful royal guard...";
monster 'map_spa$,18,39,"Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "Run away quickly!";
monster 'map_spa$,21,45,"Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Run away!";
monster 'map_spa$,23,49,"Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "You are trapped...";
monster 'map_spa$,25,54,"Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
unittalk $@mobid[0], "Run away quickly!";
monster 'map_spa$,29,54,"Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "You put your princess in grave danger...";
monster 'map_spa$,56,39,"Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "Run away!";
monster 'map_spa$,61,36,"Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Faithful royal guard...";
monster 'map_spa$,66,38,"Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
unittalk $@mobid[0], "Run away quickly!";
monster 'map_spa$,42,54,"Wasted Friendship",2955,1, .@label$; // OLD_FRIENDSHIP
unittalk $@mobid[0], "Run away!";
monster 'map_spa$,35,54,"Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "You are trapped...";
monster 'map_spa$,43,60,"Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Faithful royal guard...";
monster 'map_spa$,30,25,"Tarnished Oath",2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "You put your princess in grave danger...";
monster 'map_spa$,30,31,"Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
unittalk $@mobid[0], "You are trapped...";
monster 'map_spa$,65,64, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
monster 'map_spa$,65,67, "Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
monster 'map_spa$,18,43,"Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
monster 'map_spa$,21,43,"Regretful Memory",2953,1, .@label$; // CURSED_MEMORY
end;
OnMyMobDead3:
end;
}
// 4th floor
1@spa,1,1,1 script #gp_control_4 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#gp_control_4");
.@label$ = instance_npcname("#gp_control_4") + "::OnMyMobDead1";
monster 'map_spa$,215,194, "Sweet Slaughter",2956,1, .@label$; // SWEET_SLAUGHTER
monster 'map_spa$,194,178, "Sweet Slaughter",2956,1, .@label$; // SWEET_SLAUGHTER
monster 'map_spa$,191,211, "Sweet Slaughter",2956,1, .@label$; // SWEET_SLAUGHTER
monster 'map_spa$,185,203, "Cursed Gatekeeper",2949,1, .@label$; // CURSED_SENTINEL
monster 'map_spa$,209,218, "Cursed Gatekeeper",2949,1, .@label$; // CURSED_SENTINEL
end;
OnMyMobDead1:
if (mobcount('map_spa$, instance_npcname("#gp_control_4") + "::OnMyMobDead1") < (1 + 'bool_double_spawn)) {
deltimer instance_npcname("#gp_control_4") + "::OnSpawn1";
addtimer 2000, instance_npcname("#gp_control_4") + "::OnSpawn1";
}
end;
OnSpawn1:
.@label$ = instance_npcname("#gp_control_4") + "::OnMyMobDead2";
monster 'map_spa$,189,192, "Cursed Gatekeeper",2949,1, .@label$; // CURSED_SENTINEL
monster 'map_spa$,211,209, "Sweet Slaughter",2956,1, .@label$; // SWEET_SLAUGHTER
end;
OnMyMobDead2:
if (mobcount('map_spa$, instance_npcname("#gp_control_4") + "::OnMyMobDead2") < 1) {
enablenpc instance_npcname("Thanatos Magic Trace#dk2");
enablenpc instance_npcname("Visiting Prince#dk");
enablenpc instance_npcname("Lurid Royal Guard#dk4");
enablenpc instance_npcname("King's Corpse#dk");
enablenpc instance_npcname("Captain's Corpse#dk");
enablenpc instance_npcname("Soldier's Corpse#dk");
enablenpc instance_npcname("Soldier's Corpse#dk1");
enablenpc instance_npcname("Soldier's Corpse#dk2");
enablenpc instance_npcname("Soldier's Corpse#dk3");
enablenpc instance_npcname("Soldier's Corpse#dk4");
}
end;
}
1@spa,199,214,1 script Lurid Royal Guard#dk4 4_M_SAKRAYROYAL,{
.@prince$ = instance_npcname("Visiting Prince#dk");
mes "[Lurid Royal Guard]";
mes "Where is Princess Tiara?";
npctalk "Lurid Royal Guard: Where is Princess Tiara?";
next;
mes "[Visiting Prince]";
mes "You are too late... but you brought what I was looking for. Thanks for your help.";
npctalk "Visiting Prince: You are too late... but you brought what I was looking for. Thanks for your help.", .@prince$;
next;
mes "[Visiting Prince]";
mes "Cursed Thanatos Magic Trace! Are you ready to have a new master?";
npctalk "Visiting Prince: Cursed Thanatos Magic Trace! Are you ready to have a new master?", .@prince$;
next;
cutin "tartanos.bmp",3;
mes "[Thanatos Magic Trace]";
mes "How dare you!";
npctalk "Thanatos Magic Trace: How dare you!", instance_npcname("Thanatos Magic Trace#dk2");
next;
mes "[Visiting Prince]";
mes "aah, aah !!!";
npctalk "Visiting Prince: Aah, aah!!!", .@prince$;
donpcevent instance_npcname("#gp_control_5") + "::OnStart";
close2;
cutin "",255;
end;
}
1@spa,201,214,1 duplicate(Lurid Royal Guard#dk) Thanatos Magic Trace#dk2 CLEAR_NPC
1@spa,197,218,5 duplicate(Lurid Royal Guard#dk) Visiting Prince#dk 4_M_KNIGHT_SILVER
1@spa,194,214,5 duplicate(Lurid Royal Guard#dk) King's Corpse#dk 4_M_TRISTAN
1@spa,211,194,3 duplicate(Lurid Royal Guard#dk) Captain's Corpse#dk 4_M_LIEMAN
1@spa,201,198,1 duplicate(Lurid Royal Guard#dk) Soldier's Corpse#dk 4_M_DIEMAN
1@spa,197,190,1 duplicate(Lurid Royal Guard#dk) Soldier's Corpse#dk1 4_M_DIEMAN
1@spa,191,207,7 duplicate(Lurid Royal Guard#dk) Soldier's Corpse#dk2 4_M_DIEMAN
1@spa,206,209,7 duplicate(Lurid Royal Guard#dk) Soldier's Corpse#dk3 4_M_DIEMAN
1@spa,189,195,1 duplicate(Lurid Royal Guard#dk) Soldier's Corpse#dk4 4_M_DIEMAN
1@spa,1,1,1 script #gp_control_5 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#gp_control_5");
disablenpc instance_npcname("Thanatos Magic Trace#dk2");
disablenpc instance_npcname("Visiting Prince#dk");
disablenpc instance_npcname("Lurid Royal Guard#dk4");
disablenpc instance_npcname("King's Corpse#dk");
disablenpc instance_npcname("Captain's Corpse#dk");
disablenpc instance_npcname("Soldier's Corpse#dk");
disablenpc instance_npcname("Soldier's Corpse#dk1");
disablenpc instance_npcname("Soldier's Corpse#dk2");
disablenpc instance_npcname("Soldier's Corpse#dk3");
disablenpc instance_npcname("Soldier's Corpse#dk4");
sleep 1000;
.@label$ = instance_npcname("#gp_control_5") + "::OnMyMobDead";
monster 'map_spa$,198,218, "Torturous Redeemer",2959,1, .@label$; // TORTUROUS_REDEEMER
monster 'map_spa$,198,182, "Sweet Slaughter",2956,1, .@label$; // SWEET_SLAUGHTER
end;
OnMyMobDead:
if (mobcount('map_spa$, instance_npcname("#gp_control_5") + "::OnMyMobDead") < 1) {
deltimer instance_npcname("#gp_control_4") + "::OnSpawn1"; // stop double spawn if timer is running
mapannounce 'map_spa$, "The passage on the 5th floor of the palace is open.", bc_map,0xFFFF00;
disablenpc instance_npcname("4th floor in the palace");
enablenpc instance_npcname("5th floor of Palace");
enablenpc instance_npcname("Princess Tiara#dk1");
enablenpc instance_npcname("Lurid Royal Guard#dk5");
killmonster 'map_spa$, instance_npcname("#gp_control_3") + "::OnMyMobDead2";
killmonster 'map_spa$, instance_npcname("#gp_control_3") + "::OnMyMobDead3";
disablenpc instance_npcname("#gp_control_3");
}
end;
}
// 5th floor
1@spa,216,43,3 script Princess Tiara#dk1 4_F_MAYSEL,{
.@guard$ = instance_npcname("Lurid Royal Guard#dk5");
mes "[Princess Tiara]";
mes "You kept your promise.";
npctalk "Princess Tiara: You kept your promise.";
next;
mes "[Lurid Royal Guard]";
mes "princess!";
npctalk "Lurid Royal Guard: Princess!", .@guard$;
next;
cutin "npc-tiara.bmp",3;
mes "[Princess Tiara]";
mes "Thank you... now I can rest beside you...";
npctalk "Princess Tiara: Thank you... now I can rest beside you...";
next;
mes "[Lurid Royal Guard]";
mes "No..No!!!!!";
npctalk "Lurid Royal Guard: No..No!!!!!", .@guard$;
next;
mes "[The voice of Princess Tiara]";
mes "I want to be with you forever in peace...forever...";
npctalk "Princess Tiara: I want to be with you forever in peace...forever...";
next;
cutin "b-tiara.BMP",3;
mes "[Lurid Royal Guard]";
mes "no.....Ahh ahh ahh!!!!~!";
npctalk "Lurid Royal Guard: no.....Ahh ahh ahh!!!!~!", .@guard$;
next;
mes "[The voice of Princess Tiara]";
mes "I love you...";
npctalk "Princess Tiara: I love you...";
cutin "",255;
close2;
donpcevent instance_npcname("#gp_control_6") + "::OnStart";
end;
}
1@spa,213,42,7 duplicate(Lurid Royal Guard#dk) Lurid Royal Guard#dk5 4_M_SAKRAYROYAL
1@spa,1,1,1 script #gp_control_6 HIDDEN_WARP_NPC,{
end;
OnStart:
enablenpc instance_npcname("#gp_control_6");
disablenpc instance_npcname("Princess Tiara#dk1");
disablenpc instance_npcname("Lurid Royal Guard#dk5");
killmonster 'map_spa$, instance_npcname("#gp_control_4") + "::OnMyMobDead1";
killmonster 'map_spa$, instance_npcname("#gp_control_4") + "::OnMyMobDead2";
killmonster 'map_spa$, instance_npcname("#gp_control_5") + "::OnMyMobDead";
disablenpc instance_npcname("#gp_control_4");
disablenpc instance_npcname("#gp_control_5");
disablenpc instance_npcname("5th floor of Palace");
sleep 2000;
.@label$ = instance_npcname("#gp_control_6") + "::OnMyMobDead1";
monster 'map_spa$,217,52, "Forgotten Name" ,2957,1, .@label$; // FORGOTTEN_NAME
unittalk $@mobid[0], "Wake up! look at us... We are monsters?";
monster 'map_spa$,190,21, "Tarnished Oath" ,2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Sakray killed the King and tried to kill us!";
monster 'map_spa$,198,49, "Tarnished Oath" ,2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "What is this..??";
monster 'map_spa$,212,28, "Fatal Days" ,2958,1, .@label$; // FATAL_DAYS
unittalk $@mobid[0], "Sakray killed a princess!";
end;
OnMyMobDead1:
if (mobcount('map_spa$, instance_npcname("#gp_control_6") + "::OnMyMobDead1") < 1) {
sleep 2000;
.@label$ = instance_npcname("#gp_control_6") + "::OnMyMobDead2";
monster 'map_spa$,217,43, "Forgotten Name" ,2957,1, .@label$; // FORGOTTEN_NAME
unittalk $@mobid[0], "Wake up! look at us... We are monsters?";
monster 'map_spa$,193,24, "Forgotten Name" ,2957,1, .@label$; // FORGOTTEN_NAME
unittalk $@mobid[0], "Sakray..?? why.....Sakray!";
monster 'map_spa$,216,59, "Tarnished Oath" ,2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Sakray killed the King and tried to kill us!";
monster 'map_spa$,197,57, "Fatal Days" ,2958,1, .@label$; // FATAL_DAYS
unittalk $@mobid[0], "Sakray killed a princess!";
}
end;
OnMyMobDead2:
if (mobcount('map_spa$, instance_npcname("#gp_control_6") + "::OnMyMobDead2") < 1) {
sleep 2000;
.@label$ = instance_npcname("#gp_control_6") + "::OnMyMobDead3";
monster 'map_spa$,193,39, "Forgotten Name" ,2957,1, .@label$; // FORGOTTEN_NAME
unittalk $@mobid[0], "Wake up! look at us... We are monsters?";
monster 'map_spa$,212,34, "Forgotten Name" ,2957,1, .@label$; // FORGOTTEN_NAME
unittalk $@mobid[0], "Sakray..?? why.....Sakray!";
monster 'map_spa$,201,64, "Tarnished Oath" ,2954,1, .@label$; // COLORLESS_VOW
unittalk $@mobid[0], "Sakray killed the King and tried to kill us!";
monster 'map_spa$,175,44, "Fatal Days" ,2958,1, .@label$; // FATAL_DAYS
unittalk $@mobid[0], "Sakray killed a princess!";
}
end;
OnMyMobDead3:
if (mobcount('map_spa$, instance_npcname("#gp_control_6") + "::OnMyMobDead3") < 1) {
sleep 2000;
monster 'map_spa$,200,45, "Torturous Redeemer" ,2961,1, instance_npcname("#gp_control_6") + "::OnMyMobDead4"; // E_TORTUROUS_REDEEMER
unittalk $@mobid[0], "Thanatos Magic Trace! I will destroy you if I can't have you... Oh no! How could this be?";
sleep 5000;
killmonster 'map_spa$, instance_npcname("#gp_control_6") + "::OnMyMobDead4";
enablenpc instance_npcname("Sakray#dk");
enablenpc instance_npcname("Thanatos Magic Trace#dk3");
disablenpc instance_npcname("#gp_control_6");
}
end;
OnMyMobDead4:
end;
}
1@spa,196,44,5 script Sakray#dk 4_M_SAKRAY,{
mes "[Lurid Royal Guard]";
mes "Are you satisfied..? Thanatos Magic Trace?";
npctalk "Lurid Royal Guard: Are you satisfied..? Thanatos Magic Trace?";
next;
mes "[Thanatos Magic Trace]";
mes "I need more blood..Sakray, offer me his blood.";
npctalk "Thanatos Magic Trace: I need more blood..Sakray, offer me his blood.", instance_npcname("Thanatos Magic Trace#dk3");
next;
mes "[Sakray]";
mes "Okay, that is good. A traveller. Did you see?";
npctalk "Sakray: Okay, that is good. A traveller. Did you see?";
next;
mes "[" + strcharinfo(0) + "]";
mes "Sakray, what do you want? Sympathy? Or is it a trap?";
unittalk getcharid(3), "" + strcharinfo(0) + " : Sakray, what do you want? Sympathy? Or is it a trap?";
next;
mes "[Sakray]";
mes "No... I do not need to make any effort to catch a novice.";
npctalk "Sakray: No... I do not need to make any effort to catch a novice.";
next;
mes "[" + strcharinfo(0) + "]";
mes "If so... then why...?";
unittalk getcharid(3), "" + strcharinfo(0) + " : If so... then why...?";
next;
cutin "cry-b.bmp",2;
mes "[Sakray]";
mes "I wanted to get rid of a piece of humanity inside of me through you.";
npctalk "Sakray: I wanted to get rid of a piece of humanity inside of me through you.";
next;
mes "[Sakray]";
mes "I am quite satisfied with the result.";
npctalk "Sakray: I am quite satisfied with the result.";
next;
mes "[Thanatos Magic Trace]";
mes "Sakray, offer the blood to me now!";
npctalk "Thanatos Magic Trace: Sakray, offer the blood to me now!", instance_npcname("Thanatos Magic Trace#dk3");
next;
mes "[Sakray]";
mes "If you were me, what would you do?";
npctalk "Sakray: If you were me, what would you do?";
next;
mes "[Sakray]";
mes "Can you set yourself free from this curse?";
npctalk "Sakray: Can you set yourself free from this curse?";
next;
mes "[" + strcharinfo(0) + "]";
mes "...";
unittalk getcharid(3), "" + strcharinfo(0) + " : ...";
next;
mes "[Sakray]";
mes "Heh heh... I will keep watching you until the day comes when you are old enough.";
npctalk "Sakray: Heh heh... I will keep watching you until the day comes when you are old enough.";
next;
mes "[Sakray]";
mes "I am willing to hunt you later for Thanatos.";
npctalk "Sakray: I am willing to hunt you later for Thanatos.";
cutin "",255;
next;
mes "[Sakray]";
mes "Farewell then.";
npctalk "Sakray: Farewell then.";
close2;
donpcevent instance_npcname("#tb") + "::OnStart";
end;
}
1@spa,196,46,1 script #tb CLEAR_NPC,{
end;
OnStart:
disablenpc instance_npcname("Sakray#dk");
disablenpc instance_npcname("Thanatos Magic Trace#dk3");
enablenpc instance_npcname("#tb");
enablenpc instance_npcname("#sv");
enablenpc instance_npcname("#tv");
initnpctimer;
end;
OnTimer3000:
npctalk "Voice of Princess Tiara : What can I do for you?";
end;
OnTimer8000:
npctalk "Voice of Sakray : I will always stand by you. Please rest beside me.", instance_npcname("#sv");
end;
OnTimer13000:
npctalk "Thanatos Magic Trace: Sakray, do not forget the covenant of blood between us.", instance_npcname("#tv");
end;
OnTimer17000:
npctalk "Thanatos Magic Trace: Your soul is mine until you find the blood that satisfies me...", instance_npcname("#tv");
end;
OnTimer22000:
npctalk "Voice of Sakray : Rest in the shadow with me.", instance_npcname("#sv");
end;
OnTimer25000:
npctalk "Voice of Sakray : In the dark forever...", instance_npcname("#sv");
end;
OnTimer28500:
disablenpc instance_npcname("#tb");
disablenpc instance_npcname("#sv");
disablenpc instance_npcname("#tv");
mapannounce 'map_spa$, "It is time to leave the Ghost Palace.", bc_map,0xFFFF00;
enablenpc instance_npcname("Way out of Palace");
enablenpc instance_npcname("King#dk11");
end;
}
1@spa,195,41,1 duplicate(Lurid Royal Guard#dk) Thanatos Magic Trace#dk3 CLEAR_NPC
1@spa,198,43,1 duplicate(Lurid Royal Guard#dk) #sv CLEAR_NPC
1@spa,196,41,1 duplicate(Lurid Royal Guard#dk) #tv CLEAR_NPC
1@spa,204,29,1 script King#dk11 4_M_RUSKING,{
disable_items;
mes "[King]";
mes "Hey there, are you alive?";
mes "I did not expect to meet someone who is still alive.";
next;
mes "[King]";
mes "Do you possibly have the ^006400Gray Shard^000000?";
mes "Can you give it to me?";
mes "The memories of the faithful royal guard";
mes "and the memories of everyone he loved";
mes "are contained inside of these shards.";
next;
mes "[King]";
mes "Will you give the ^006400Gray Shard^000000 to me?";
mes "The guilt is eating my soul.";
mes "My soul is stuck within the Ghost Palace.";
next;
mes "[King]";
mes "I am collecting Sakray's abandoned memories from these shards.";
next;
mes "[King]";
mes "If you give any ^006400Gray Shard^000000s to me, I can make equipment for you.";
next;
mes "[King]";
mes "The cursed knight...";
mes "Please help me save the soul of Sakray.";
next;
setarray .@item_name$[0],
"Thanatos Sword", "Thanatos Great Sword", "Thanatos Spear", "Thanatos Long Spear", "Thanatos Staff",
"Thanatos Two-handed Staff", "Thanatos Bow", "Thanatos Dagger", "Thanatos Katar", "Thanatos Knuckle",
"Thanatos Hammer", "Thanatos Axe", "Thanatos Violin", "Thanatos Whip",
"Gray Shield", "Gray Armor", "Gray Robe", "Gray Cloak", "Gray Shoes", "Gray Helmet";
setarray .@items_list[0],13441,21009,1438,1496,1669,2023,18119,13093,28000,1836,16028,28100,1933,1988,2187,15090,15091,20721,22033,18820;
for ( .@i = 0; .@i < 20; .@i++ )
.@menu$ += .@item_name$[.@i] + ":";
.@menu$ += "Cancel";
while(true) {
.@s = select(.@menu$) - 1;
if (.@s == 20) {
mes "[King]";
mes "Someday, Sakray will";
mes "get out of this curse for sure.";
mes "I believe";
mes "^006400Gray Shard^000000s are the only method";
mes "to save him....";
close;
}
.@cost = ( .@s > 13 ? 100 : 200 );
mes "[King]";
mes "To make a ^FF0000" + .@item_name$[.@s] + "^000000";
mes "I need " + .@cost + " ^006400Gray Shard^000000.";
next;
if (select( "Cancel", "Hand over " + .@cost + " Gray Shard." ) == 1) {
mes "[King]";
mes "Someday, Sakray will";
mes "get out of this curse for sure.";
next;
continue;
}
if (countitem(6672) < .@cost) {
mes "[King]";
mes "You do not have enough ^006400Gray Shard^000000";
mes "to make a ^FF0000" + .@item_name$[.@s] + "^000000.";
mes "I need " + .@cost + " ^006400Gray Shard^000000.";
next;
continue;
}
mes "[King]";
mes "I will make a ^FF0000" + .@item_name$[.@s] + "^000000";
mes "with " + .@cost + " ^006400Gray Shard^000000.";
next;
mes "You see a light through the folded hands of the king and it gradually takes on a shape.";
next;
mes "[King]";
mes "All right, it is done.";
mes "Take this ^FF0000" + .@item_name$[.@s] + "^000000";
mes "to confront Sakray and Thanatos.";
next;
mes "[King]";
mes "The power requires a sacrifice.";
mes "Please be careful...";
delitem 6672,.@cost;// Gray Shard
getitem .@items_list[.@s],1;
close;
}
}
1@spa,210,28,0 script Way out of Palace WARPNPC,2,2,{
end;
OnTouch_:
mes "It is time to leave the Ghost Palace.";
mes "Everything is now complete";
mes "and will vanish..";
close2;
if (isbegin_quest(1263) == 2)
getitem 6672,1;// Gray Shard
else {
setquest 1263;// Cursed Swordman
completequest 1263;
getexp 900000,500000;
getitem 6672,2;// Gray Shard
}
warp "dali02",46,129;
end;
}
1@spa,41,217,0 warp The second floor of Palace 2,2,1@spa,114,120
1@spa,117,137,0 warp 3rd floor in the palace 2,2,1@spa,60,43
1@spa,54,28,0 warp 4th floor in the palace 2,2,1@spa,218,186
1@spa,178,186,0 warp 5th floor of Palace 2,2,1@spa,186,57

View File

@ -55,6 +55,7 @@ npc: npc/re/instances/BakonawaLake.txt
npc: npc/re/instances/BangungotHospital.txt npc: npc/re/instances/BangungotHospital.txt
npc: npc/re/instances/BuwayaCave.txt npc: npc/re/instances/BuwayaCave.txt
npc: npc/re/instances/FacewormsNest.txt npc: npc/re/instances/FacewormsNest.txt
npc: npc/re/instances/GhostPalace.txt
npc: npc/re/instances/HazyForest.txt npc: npc/re/instances/HazyForest.txt
npc: npc/re/instances/HorrorToyFactory.txt npc: npc/re/instances/HorrorToyFactory.txt
npc: npc/re/instances/MalangdoCulvert.txt npc: npc/re/instances/MalangdoCulvert.txt