In this Temple of Demon God script when i'm going to start the instance it crashes the map-server, no information in the console, just a "Server received crash signal! attempting to save all online characters".
//===== Alayne Scripts =======================================
//= Temple of Demon God Instance
//===== By: ==================================================
//= Alayne
//===== Current Version: =====================================
//= 1.0
//===== Compatible With: =====================================
//= rAthena SVN
//= hercules SVN
//===== Description: =========================================
//= The official instance Temple of Demon God transcription
//===== Todo Remaining: ======================================
//
//===== Additional Comments: =================================
//
//
//============================================================
moro_vol,108,88,5 script Commander Hiva Agip::alatdgcha 4_M_REDSWORD,{
set .@npcname$, "[Commander Hiva Agip]";
cutin "ep13_captin_edq", 2;
mes .@npcname$;
if(checkquest(.questId) == -1)
{
mes "Hey! You! Come here.";
mes "I need you help.";
mes "Morocc is regaining his power! We absolutely need to defy him, and defeat him before he raised again.";
mes "But I'm affraid we're not strong enough to fight him...";
mes "Can you help us?";
if(select("Yes","No") == 1)
{
next;
mes .@npcname$;
mes "Good! I'm couting on you!";
mes "I'll pray for your victory!";
setquest .questId;
}
}
else if(checkquest(.questId, HUNTING) < 2)
{
//uncomplete quest
mes "You didn't fullfill the quest yet, do you?";
}
else if(checkquest(.questId, HUNTING) == 2)
{
//complete quest
mes "*Whistle* Good work!";
mes "How's the Temple of Demon God? Still the same?";
getitem 22537,1;
//getitem reward
completequest .questId;
erasequest .questId;
}
else
{
mes "Now that we've taken care of the main body, we can take things slow.";
mes "Why don't you go rest for now? Leave the rest to us.";
}
cutin "", 255;
close;
OnInit:
set .questId, 7593;
end;
}
moro_vol,110,90,3 script Abidal::alatdga 4_M_KNIGHT_GOLD,{
set .@npcname$, "[Abidal]";
mes .@npcname$;
if(checkquest(.questId) == -1)
{
mes "Hey! I've heard the Commander gave you a quest.";
mes "I have also something to ask you.";
mes "Two monsters protect Morocc. Brinaranea and Muspelskoll.";
mes "If you defeat them, it'll weakened this Demon...";
mes "Can you handle that?";
if(select("Yes","No") == 1)
{
next;
mes .@npcname$;
mes "Good! I'm couting on you!";
mes "I'll pray for your victory!";
setquest .questId;
}
}
else if(checkquest(.questId, HUNTING) < 2)
{
//uncomplete quest
mes "You didn't fullfill the quest yet, do you?";
}
else if(checkquest(.questId, HUNTING) == 2)
{
//complete quest"
mes "You did it! I knew you would!";
mes "Congratulations!";
mes "But I'm affraid this is not over yet.";
mes "I have this nagging sense of misgiving.";
mes "I'm sorry. Maybe I'm thinking irrationally.";
next;
mes .@npcname$;
mes "Take this as a reward, and a thanks from me.";
//getitem
completequest .questId;
erasequest .questId;
}
else
{
mes "Take some rest now.";
}
close;
OnInit:
set .questId, 7594;
end;
}
moro_cav,43,73,3 script Yggdrasil Lookalike::alatdgyl HIDDEN_NPC,{
OnStart:
set .@party_id, getcharid(1);
set .@tdg_leader, ( getcharid(0) == getpartyleader(.@party_id,2) );
set .@has_instance, TDG_INSTANCE_ID > 0;
set .@instance_delay, ( instance_delay_templedg - gettimetick(2) );
set .@npcname$, "[Yggdrasil Lookalike]";
mes .@npcname$;
mes "You touched the tree and felt a strange flow of mana.";
mes "Perhaps the flow of mana will guide to the depth of the temple.";
if( ep14_3_morse == 0 )
next;
if( .@instance_delay > 0 )
{
mes "You have to wait : ^FF0000"+.@instance_delay+" Seconds.^000000";
close;
}
switch( select(
(( .@party_id && .@tdg_leader && !.@has_instance )?"Create " + .instance_name$:""),
(( .@party_id && .@has_instance )?"Enter " + .instance_name$:""),
(( .@party_id && .@tdg_leader && .@has_instance )?"Destroy " + .instance_name$:""),
"Nevermind."
)){
case 1:
getpartymember .@party_id,2;
if( .min_party_member >= 1 ){
set .@origin, getcharid(3);
set .@gettimetick, gettimetick(2);
for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 )
if( attachrid( $@partymemberaid[.@i] ) ){
set .@member_count, .@member_count + 1;
if( BaseLevel < .base_level[0] || BaseLevel > .base_level[1] ) set .@fail, .@fail|1;
if( Zeny < .instance_zeny ) set .@fail, .@fail|2;
if( instance_delay_templedg > .@gettimetick ) set .@fail, .@fail|4;
if( .@fail ){
set .@name$, strcharinfo(0);
break;
}
}
attachrid( .@origin );
}
//clean any previously remaining instance
if(TDG_INSTANCE_ID > 0)
{
getpartymember getcharid(1),2;
for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 )
if( attachrid( $@partymemberaid[.@i] ) && TDG_INSTANCE_ID > 0){
set TDG_INSTANCE_ID, -1;
}
instance_destroy instance_id();
}
if( .@name$ != "" && .@fail ){
mes "^FF0000[ Failed ]^000000";
mes "^0055FF"+.@name$+"^000000, You cannot join right now.";
mes " ";
mes "^FF0000[ Reason: ]^000000";
if( .@fail & 1 ) mes "^777777You must be Level: "+.base_level[0]+" - "+.base_level[1]+"^000000";
if( .@fail & 2 ) mes "^777777You need "+ .instance_zeny +" Zeny^000000";
if( .@fail & 4 ) mes "^777777You still have cooldown.^000000";
break;
}
getpartymember getcharid(1),0;
if (instance_check_party(.@party_id, .min_party_member, .base_level[0], .base_level[1]) == 0) {
mes "^0055FF[ "+.instance_name$+" ]^000000";
mes "Make or join a party with at least "+.min_party_member+" member and try again, with level between " +.base_level[0] + " and " + .base_level[1] + ".";
}
else{
set .@instance, instance_create( .instance_name$ );
if( .@instance < 0 ) {
npctalk .instance_name$ + " reservation failed.";
mes "^0000FF"+ .instance_name$ +" ^000000 - Reservation Failed!";
close;
}
mes "^0055FF[ "+.instance_name$+" ]^000000";
mes "^0000FF"+.instance_name$+" ^000000 - Reserved";
set .@gettimetick, gettimetick(2);
getpartymember .@party_id,2;
for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 )
if( attachrid( $@partymemberaid[.@i] ) )
set TDG_INSTANCE_ID, .@instance;
attachrid( .@origin );
npctalk .instance_name$ + " has been generated for Party - " + getpartyname( .@party_id );
//disable unused npcs for now
disablenpc instance_npcname( "tdgWarp#1", instance_id() );
disablenpc instance_npcname( "tdgWarp#2", instance_id() );
disablenpc instance_npcname( "tdgWarp#3", instance_id() );
disablenpc instance_npcname( "tdgWarp#4", instance_id() );
disablenpc instance_npcname( "tdgWarp#5", instance_id() );
}
case 2:
if( TDG_INSTANCE_ID <= 0 ){
mes .instance_name$ + " doesn't exist for Party - "+getpartyname( .@party_id );
}
else{
getmapxy(.@map$, .@x, .@y, UNITTYPE_PC);
//save .@map$, .@x, .@y;
set instance_delay_templedg, ( .@gettimetick + ( .instance_delay ));
switch(instance_enter(.instance_name$)) {
default:
mes "An unknown error has occurred.";
close;
case 2:
mes "The memorial dungeon " + .instance_name$ + " does not exist.";
mes "The party leader did not generate the dungeon yet.";
close;
case 1:
mes "You can enter the dungeon after making the party.";
close;
case 0:
mapannounce .@map$, strcharinfo(0)+" from party, " +getpartyname( .@party_id )+", tdg entering the dungeon, "+.instance_name$+".",bc_map,"0x00ff99",FW_NORMAL,12;
close;
}
}
break;
case 3:
mes .instance_name$ + " Destroyed.";
getpartymember getcharid(1),2;
for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 )
if( attachrid( $@partymemberaid[.@i] ) && TDG_INSTANCE_ID > 0){
set TDG_INSTANCE_ID, -1;
}
instance_destroy instance_id();
break;
default:
break;
}
close;
OnPCLoginEvent:
OnPCLogoutEvent:
set TDG_INSTANCE_ID, -1;
end;
OnInit:
setarray .base_level[0],145, 175;
setarray .map$[0],"1@eom";
set .map_size, getarraysize( .map$ );
set .min_party_member, 1;
set .instance_delay, 7200;
set $tdg_timer_delay, 3600; //1 hour to clean the instance
set .instance_name$, "Temple of Demon God";
end;
}
1@eom,101,107,4 script temple_demon_god HIDDEN_WARP_NPC,2,2,{
function summon_normal;
function summon_guardian;
end;
OnInstanceInit:
set .@map$, strnpcinfo(4);
set 'instance_tdg_level, 0;
set .max_tdg_level, 6;
set .moroccId, -1;
instance_announce instance_id(), "[Temple of Demon God] Eliminate the Demon God's Apostles, Ahat and Shnaim.",bc_map,0x00ff99;
sleep 1500;
instance_announce instance_id(), "[Temple of Demon God] Then collect their Souls. Those are the key to open the Temple.",bc_map,0x00ff99;
set 'ahatSoul, 6713;
set 'shnaimSoul, 6714;
set 'tdgMercenaryOn, 0;
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
summon_normal( .@map$,.@npc_name$, 1 );
set .timerCount, 0;
initnpctimer;
end;
function summon_normal {
set .@map$, getarg(0);
set .@npcname$, getarg(1);
set .@increaseFloor, getarg(2);
if(.@increaseFloor == 1)
{
'instance_tdg_level++;
}
switch( 'instance_tdg_level ){
case 1:
//ahat and shnaim
setarray .@monster,3041,3039,3040;
setarray .@amount,1,1,1;
setarray .@coordinate,89,13,111,49;
setarray .@label$, "OnAhatDied","OnShnaimDied",0;
break;
case 2:
//dolomedes
setarray .@monster,3088;
setarray .@amount,5;
setarray .@coordinate,54,97,33,138;
break;
case 3:
//kasa
setarray .@monster,3089;
setarray .@amount,5;
setarray .@coordinate,153,91,173,140;
break;
case 4:
//two satan morocc
setarray .@monster,3098,3099;
setarray .@amount,1,1;
setarray .@coordinate,90,208,116,176;
break;
case 6:
//random pop salamander or dolomedes
if(rand(0,1) == 1)
{
setarray .@monster,3088;
}
else
{
setarray .@monster,3090;
}
setarray .@amount,5;
setarray .@coordinate,90,208,116,176;
break;
}
set .@monster_size, getarraysize( .@monster );
for( set .@i, 0; .@i < .@monster_size; set .@i,.@i+1 ){
set .@target_amount, ( .@amount[.@i] );
set .@size, 0;
if(getarraysize(.@label$) == 0)
{
set .@clabel$, .@npcname$ + "::OnNormalDied";
}
else
{
set .@clabel$, .@npcname$ + "::" + .@label$[.@i];
}
areamonster .@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@clabel$,.@size;
}
return;
}
function summon_guardian {
set .@map$, getarg(0);
set .@label$, getarg(1);
switch( 'instance_tdg_level ){
case 2:
//brynarea
setarray .@monster,3091;
setarray .@coordinate,54,97,33,138;
break;
case 3:
//muspelskoll
setarray .@monster,3092;
setarray .@coordinate,153,91,173,140;
break;
case 4:
//morocc boy
setarray .@monster,3096;
setarray .@coordinate,90,208,116,176;
break;
case 5:
//morocc boy, 20% left
setarray .@monster,3096;
setarray .@coordinate,90,208,116,176;
break;
case 6:
//morocc adult
setarray .@monster,3097;
setarray .@coordinate,90,208,116,176;
break;
default:
mapannounce .@map$,"[ Temple of Demon God ] : Cleared!! Congratulation!!",bc_map,0x00FF99;
return;
}
set .@monster_size, getarraysize( .@monster );
for( set .@i, 0; .@i < .@monster_size; set .@i,.@i+1 ){
set .@target_amount, 1;
set .@size, 0;
if('instance_tdg_level == 4)
{
//RATHENA
areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size);
set .moroccId, $@mobid[0];
//HERCULES
//set .moroccId, areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size);
}
else if('instance_tdg_level == 5)
{
//RATHENA
areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size);
set .moroccId, $@mobid[0];
getunitdata(.moroccId, .@moroccData);
setunitdata .moroccId, 2, .@moroccData[UMOB_MAXHP] * 20 / 100;
//HERCULES
//set .moroccId, areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size);
//set .@mhp, getunitdata($moroccId, UDT_MAXHP);
//setunitdata $moroccId, UDT_HP, .@mhp * 20 / 100;
}
else
{
areamonster(.@map$,.@coordinate[0],.@coordinate[1],.@coordinate[2],.@coordinate[3],"--ja--",.@monster[.@i],.@target_amount,.@label$,.@size);
}
}
return;
}
OnAhatDied:
//get item
getitem 'ahatSoul, 1;
set .@map$, strnpcinfo(4);
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnShnaimDied" );
if(.@mob_dead_num == 0)
{
instance_announce instance_id(), "[Temple of Demon God] Activate the Soul Globe to open the Temple.",bc_map,0x00ff99;
enablenpc instance_npcname( "alatdgor", instance_id() );
}
end;
OnShnaimDied:
//get item
getitem 'shnaimSoul, 1;
set .@map$, strnpcinfo(4);
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnAhatDied" );
if(.@mob_dead_num == 0)
{
instance_announce instance_id(), "[Temple of Demon God] Activate the Soul Globe to open the Temple.",bc_map,0x00ff99;
enablenpc instance_npcname( "alatdgor", instance_id() );
}
end;
OnNormalDied:
set .@map$, strnpcinfo(4);
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnNormalDied" );
if( .@mob_dead_num == 0 && .@mob_dead_num2 == 0 ){
if('instance_tdg_level == 4)
{
'instance_tdg_level++;
//summon morocc boy again
summon_guardian( .@map$,.@npc_name$+"::OnGuardianDied" );
}
}
end;
OnGuardianDied:
set .@map$, strnpcinfo(4);
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnGuardianDied" );
set .@party_id, getcharid(1);
if( !.@mob_dead_num ){
if('instance_tdg_level == 2)
{
killmonster strnpcinfo(4), "All";
//nydhogg pop
enablenpc instance_npcname( "alatdgny2", instance_id() );
donpcevent instance_npcname( "alatdgny2", instance_id() ) + "::OnDialog2";
}
else if('instance_tdg_level == 3)
{
killmonster strnpcinfo(4), "All";
//nydhogg pop
enablenpc instance_npcname( "alatdgny3", instance_id() );
donpcevent instance_npcname( "alatdgny3", instance_id() ) + "::OnDialog3";
}
else if('instance_tdg_level == 5)
{
'instance_tdg_level++;
//morocc boy death
instance_announce instance_id(), "[Morocc] This is getting more interesting, humans!",bc_map,0xFF0000;
sleep 1500;
instance_announce instance_id(), "[Morocc] You don't think this is already over, do you?!",bc_map,0xFF0000;
sleep 1500;
set .randomPop, 1;
summon_guardian( .@map$, .@npc_name$ + "::OnGuardianDied" );
}
else if ('instance_tdg_level == .max_tdg_level)
{
killmonster strnpcinfo(4), "All";
stopnpctimer;
instance_announce instance_id(), "Do...Don't think...It's over...You! You're allready...Dead!!",bc_map,0xFF0000;
sleep 1500;
//enable portal
enablenpc instance_npcname( "alatdgny4", instance_id() );
end;
}
}
end;
OnTimer10000:
//each 10s, increase timer
set .timerCount, .timerCount + 10;
if(.timerCount == $tdg_timer_delay)
{
instance_announce instance_id(), "[ Temple of Demon God ] The Dimension collapse! I have to get you out of there!", bc_map, 0xFF0000;
sleep 5000;
getpartymember getcharid(1),2;
for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 )
if( attachrid( $@partymemberaid[.@i] ) && TDG_INSTANCE_ID > 0){
set TDG_INSTANCE_ID, -1;
}
instance_destroy instance_id();
stopnpctimer;
}
if(.randomPop == 1)
{
set .@map$, strnpcinfo(4);
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
set .@mob_dead_num, mobcount(.@map$,.@npc_name$+"::OnNormalDied" );
if(.@mob_dead_num == 0)
{
summon_normal( .@map$,.@npc_name$, 0 );
}
}
if(.checkHP == 1)
{
callsub OnCheckMoroccHP;
}
setnpctimer 0;
end;
OnCheckMoroccHP:
//RATHENA
getunitdata(.moroccId, .@moroccData);
if(.@moroccData[UMOB_HP] <= .@moroccData[UMOB_MAXHP] / 2)
//HERCULES
//set .@hp, getunitdata($stefanId, UDT_HP);
//set .@mhp, getunitdata($stefanId, UDT_MAXHP);
//if(.@hp <= .@mhp / 2)
{
set .@map$, strnpcinfo(4);
set .@npc_name$, strnpcinfo(3);
killmonster strnpcinfo(4), "All";
set .checkHP, 0;
//stop, kill monster and pop 2 morocc
summon_normal( .@map$, strnpcinfo(3), 0 );
}
return;
OnFirstFloorOn:
set .@map$, strnpcinfo(4);
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
//pop furious incarnation of morroc
summon_normal( .@map$, .@npc_name$, 1 );
end;
OnSecondFloorOn:
set .@map$, strnpcinfo(4);
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
//pop dolomedes
summon_normal( .@map$, .@npc_name$, 1 );
//pop brynarea
summon_guardian( .@map$, .@npc_name$ + "::OnGuardianDied" );
enablenpc instance_npcname( "tdgWarp#1", instance_id() );
end;
OnThirdFloorOn:
set .@map$, strnpcinfo(4);
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
//pop kasa
summon_normal( .@map$, .@npc_name$, 1 );
//pop muspelskoll
summon_guardian( .@map$, .@npc_name$ + "::OnGuardianDied" );
enablenpc instance_npcname( "tdgWarp#3", instance_id() );
end;
OnFourthFloorOn:
set .@map$, strnpcinfo(4);
set .@npc_name$, instance_npcname( strnpcinfo(0), instance_id() );
'instance_tdg_level++;
//pop morocc boy
summon_guardian( .@map$, .@npc_name$ + "::OnGuardianDied");
enablenpc instance_npcname( "tdgWarp#5", instance_id() );
set .checkHP, 1;
end;
}
1@eom,101,62,3 script Temple Entrance::alatdgwe HIDDEN_WARP_NPC,2,2,{
end;
OnTouch:
warp strnpcinfo(4), 98, 115;
end;
OnInit:
OnInstanceInit:
disablenpc strnpcinfo(3);
end;
}
1@eom,98,56,3 script Soul Globe::alatdgor HIDDEN_WARP_NPC,2,2,{
set .@npcname$, "[Soul Globe]";
mes .@npcname$;
mes "Do you wish to insert the Souls?";
if(select("Yes","No") == 1)
{
if(countitem('ahatSoul) > 0)
{
delitem 'ahatSoul, 1;
set .ahat, 1;
}
if(countitem('shnaimSoul) > 0)
{
delitem 'shnaimSoul, 1;
set .shnaim, 1;
}
if(.ahat == 1 && .shnaim == 1)
{
set .warpingOn, 1;
npctalk "[Soul Globe] The Door is open.";
instance_announce instance_id(), "[Soul Globe] The Door is open.", bc_map, 0x00FF99;
//enable warp
enablenpc instance_npcname( "alatdgwe", instance_id() );
enablenpc instance_npcname( "alatdge", instance_id() );
enablenpc instance_npcname( "alatdgmo", instance_id() );
enablenpc instance_npcname( "alatdglo", instance_id() );
enablenpc instance_npcname( "alatdgny", instance_id() );
}
else
{
next;
mes "[Soul Globe]";
mes "Insert the Ahat and Shnaim Souls to open the Door.";
}
}
close;
OnInstanceInit:
OnInit:
enablenpc strnpcinfo(3);
set .ahat, 0;
set .shnaim, 0;
end;
}
1@eom,98,115,3 script entrance::alatdge HIDDEN_WARP_NPC,2,2,{
end;
OnTouch:
if('instance_tdg_level == 1)
{
sleep 5000;
donpcevent instance_npcname( "alatdgmo", instance_id() ) + "::OnDialog1_1";
}
end;
OnInstanceInit:
OnInit:
disablenpc strnpcinfo(3);
end;
}
1@eom,102,124,3 script Morocc::alatdgmo 4_F_MOCBOY,2,2,{
end;
OnDialog1_1:
if(.moTalking == 0)
{
set .moTalking, 1;
npctalk "I'll create a new world and become its creator.";
instance_announce instance_id(), "[Morocc] I'll create a new world and become its creator.", bc_map, 0xFF0000;
sleep 1500;
npctalk "Let me ask you, the first creatures that have stepped in my newborn land.";
instance_announce instance_id(), "[Morocc] Let me ask you, the first creatures that have stepped in my newborn land.", bc_map, 0xFF0000;
sleep 1500;
npctalk "How'd you like to follow me and watch the birth of a new world?";
instance_announce instance_id(), "[Morocc] How'd you like to follow me and watch the birth of a new world?", bc_map, 0xFF0000;
sleep 1500;
donpcevent instance_npcname( "alatdglo", instance_id() ) + "::OnDialog1_2";
}
end;
OnDialog1_4:
npctalk "Let me ask you, the first creatures that have stepped in my newborn land.";
instance_announce instance_id(), "[Morocc] Let me ask you, the first creatures that have stepped in my newborn land.",bc_map, 0xFF0000;
sleep 1500;
npctalk "How'd you like to follow me and watch the birth of a new world?";
instance_announce instance_id(), "[Morocc] How'd you like to follow me and watch the birth of a new world?",bc_map, 0xFF0000;
sleep 1500;
donpcevent instance_npcname( "alatdglo", instance_id() ) + "::OnDialog1_5";
end;
OnInstanceInit:
OnInit:
disablenpc strnpcinfo(3);
set .moTalking, 0;
end;
}
1@eom,95,125,5 script Loki::alatdglo 4_M_BLACKMAN,2,2,{
end;
OnDialog1_2:
npctalk "Enough with your nonsense. Just say you like destroying things!";
instance_announce instance_id(), "[Loki] Enough with your nonsense. Just say you like destroying things!", bc_map, 0x00FF99;
sleep 1500;
npctalk "Create a new world and become its creator? If this is the new world you're talking about, then I'm disappointed!";
instance_announce instance_id(), "[Loki] Create a new world and become its creator? If this is the new world you're talking about, then I'm disappointed!", bc_map, 0x00FF99;
sleep 1500;
npctalk "Even if you burn your body, you power is not as potent as that of Ymir of the Genesis!";
instance_announce instance_id(), "[Loki] Even if you burn your body, you power is not as potent as that of Ymir of the Genesis!",bc_map, 0x00FF99;
sleep 1500;
npctalk "Just the fact that you had to steal Yggdrasil shows you lack of creativity!";
instance_announce instance_id(), "[Loki] Just the fact that you had to steal Yggdrasil shows you lack of creativity!",bc_map, 0x00FF99;
sleep 1500;
npctalk "Take a look at yourself. You're delusional if you think that you look like a creator of any kind!";
instance_announce instance_id(), "[Loki] Take a look at yourself. You're delusional if you think that you look like a creator of any kind!",bc_map, 0x00FF99;
sleep 1500;
donpcevent instance_npcname( "alatdgny", instance_id() ) + "::OnDialog1_3";
end;
OnDialog1_5:
disablenpc instance_npcname( "alatdgmo", instance_id() );
npctalk "Are you running?!";
instance_announce instance_id(), "[Loki] Are you running?!",bc_map, 0x00FF99;
disablenpc strnpcinfo(3);
sleep 1500;
set 'tdgMercenaryOn, 1;
donpcevent instance_npcname( "temple_demon_god", instance_id() ) + "::OnSecondFloorOn";
end;
OnInstanceInit:
OnInit:
disablenpc strnpcinfo(3);
end;
}
1@eom,93,122,5 script Nydhogg::alatdgny 4_F_NYDHOG,{
if (getcharid(0) == getpartyleader(getcharid(1),2)) {
mes "[Nydhogg]";
mes "Listen carefully.";
next;
mes "[Nydhogg]";
mes "Morocc will soon overpower us all. We need to defeat him before it arrives.";
next;
mes "[Nydhogg]";
mes "We need your powers to defeat him. We're not strong enough to defeat him by our own.";
next;
mes "[Nydhogg]";
mes "I will offer you my strength in exchange for you to help me.";
close2;
summon "Nydhogg",3087,99999999;
disablenpc strnpcinfo(3);
end;
}
mes "[Nydhogg]";
mes "I'm talking to your leader.";
close;
OnDialog1_3:
npctalk "I second that. You're unnecessary to this world. You don't belong here!";
instance_announce instance_id(), "[Nydhogg] I second that. You're unnecessary to this world. You don't belong here!",bc_map, 0x0000FF;
sleep 1500;
npctalk "Even Yggdrasil denies your existence!";
instance_announce instance_id(), "[Nydhogg] Even Yggdrasil denies your existence!",bc_map, 0x0000FF;
sleep 1500;
npctalk "As the Guardian of Yggdrasil, I have to erase your existence from this world.";
instance_announce instance_id(), "[Nydhogg] As the Guardian of Yggdrasil, I have to erase your existence from this world.",bc_map, 0x0000FF;
sleep 1500;
donpcevent instance_npcname( "alatdgmo", instance_id() ) + "::OnDialog1_4";
end;
OnInstanceInit:
OnInit:
disablenpc strnpcinfo(3);
set .endTalking, 0;
end;
}
1@eom,102,124,3 script Morocc::alatdgmoa 3097,2,2,{
end;
OnTouch:
if(.moTalking == 0)
{
set .moTalking, 1;
npctalk "You exceeded my expectations.";
instance_announce instance_id(), "[Morocc] You exceeded my expectations.",bc_map, 0xFF0000;
sleep 1500;
npctalk "I'll accept your challenge.";
instance_announce instance_id(), "[Morocc] I'll accept your challenge.",bc_map, 0xFF0000;
sleep 1500;
npctalk "I shall drench the land with your flowing blood, and nourish it with your torn flesh.";
instance_announce instance_id(), "[Morocc] I shall drench the land with your flowing blood, and nourish it with your torn flesh.",bc_map, 0xFF0000;
sleep 1500;
npctalk "I'll show you the true depth of despair.";
instance_announce instance_id(), "[Morocc] I'll show you the true depth of despair.",bc_map, 0xFF0000;
sleep 1500;
disablenpc strnpcinfo(3);
donpcevent instance_npcname( "temple_demon_god", instance_id() ) + "::OnFourthFloorOn";
}
end;
OnInstanceInit:
OnInit:
disablenpc strnpcinfo(3);
set .moTalking, 0;
end;
}
1@eom,61,149,3 script Nydhogg::alatdgny2 4_F_NYDHOG,{
set .@npcname$, "[Nydhogg]";
mes .@npcname$;
mes "That was a tought battle.";
mes "This may not be good enough, but I hope it'll help your growth.";
if(NYDBRYN == 0)
{
//getexp
next;
mes "Nydhogg rewarded you with a large amount of EXP for defeating Brinnaranea.";
set NYDBRYN, 1;
}
close;
OnDialog2:
instance_announce instance_id(), "[Nyddhog] Brinnaranea's influence has dissipated, and a new warp gate has appeared.",bc_map, 0x0000FF;
enablenpc instance_npcname( "tdgWarp#2", instance_id() );
donpcevent instance_npcname( "temple_demon_god", instance_id() ) + "::OnThirdFloorOn";
end;
OnInstanceInit:
OnInit:
disablenpc strnpcinfo(3);
end;
}
1@eom,154,155,3 script Nydhogg::alatdgny3 4_F_NYDHOG,{
set .@npcname$, "[Nydhogg]";
mes .@npcname$;
mes "Good job again.";
mes "This may not be good enough, but I hope it'll help your growth.";
if(NYDMUS == 0)
{
//getexp
next;
mes "Nydhogg rewarded you with a large amount of EXP for defeating Muspelskoll.";
set NYDMUS, 1;
}
close;
OnDialog3:
instance_announce instance_id(), "[Nyddhog] Muspelskoll's influence has dissipated, and a new warp gate has appeared.",bc_map, 0x0000FF;
enablenpc instance_npcname( "tdgWarp#4", instance_id() );
enablenpc instance_npcname( "alatdgmoa", instance_id() );
end;
OnInstanceInit:
OnInit:
disablenpc strnpcinfo(3);
end;
}
1@eom,106,197,3 script Nydhogg::alatdgny4 4_F_NYDHOG,{
set .@npcname$, "[Nydhogg]";
cutin "ep14_nyd01",1;
mes .@npcname$;
mes "I don't know what to say...";
mes "We stopped the God in waiting.";
mes "We ascomplished our goal.";
mes "But I'm still unnerved...";
next;
mes .@npcname$;
mes "This world is created in the mind of Morocc.";
mes "He'll live forever in this garden he couldn't finish.";
next;
mes .@npcname$;
mes "He probably doesn't know his body is destroyed forever.";
mes "He was far too ambitious, even for him.";
mes "He wanted to create a new world and become its creator.";
next;
mes .@npcname$;
mes "But he couldn't create anything on his own.";
mes "He abandonned his demon body, just to become a mere facsimile of an existing god.";
next;
mes .@npcname$;
mes "He look the snape of a man.";
mes "He wasn't creative enough to reinvent the concept of a God.";
mes "He was some kind of paradox.";
next;
mes .@npcname$;
mes "Now we need to get out of this trap in time and get back to reality.";
mes "This world only exists in the Demon's mind, and this day will repeat endlessly.";
next;
mes .@npcname$;
mes "Everyone entering this world will be dragged in this loop.";
mes "In that sense, he succeeded in making his own world.";
next;
mes .@npcname$;
mes "I've talked to much.";
mes "The commander must be waiting. Let me validate your feat so you can report to him.";
mes "You did a great job today.";
cutin "", 255;
next;
getpartymember getcharid(1),2;
for( set .@i, 0; .@i < $@partymembercount; set .@i, .@i+1 )
if( attachrid( $@partymemberaid[.@i] ) && TDG_INSTANCE_ID > 0){
set TDG_INSTANCE_ID, -1;
getitem 22537,1;
getitem 6715,1;
getitem 22567,3;
}
instance_destroy instance_id();
close;
OnInstanceInit:
OnInit:
disablenpc strnpcinfo(3);
end;
}
1@eom,91,120 warp tdgWarp#1 2,2,1@eom,61,88
1@eom,69,149 warp tdgWarp#2 2,2,1@eom,98, 115
1@eom,105,120 warp tdgWarp#3 2,2,1@eom,133,93
1@eom,147,156 warp tdgWarp#4 2,2,1@eom,98, 115
1@eom,98,127 warp tdgWarp#5 2,2,1@eom,101,176