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
Question
Erebos
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
Link to comment
Share on other sites
6 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.