You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

635 lines
20 KiB
Plaintext

//===== rAthena Script =======================================
//= The Last Room
//===== Description: =========================================
//= [Official Conversion]
//= The Last Room Instance
//===== Changelogs: ==========================================
//= 1.0 First version. [Capuche]
//= 1.1 Updated to match official script. [Capuche]
//============================================================
un_myst,163,38,5 script Mark 4_M_BLUEMAN,{
mes "[Mark]";
cutin "bu_mark1.bmp",0;
if (BaseLevel < 150) {
mes "It's dangerous here.";
mes "It would be better to come back next time when we are stronger.";
close3;
}
mes "Unlike the other doors we saw this door has traces of it being blocked from this side.";
next;
mes "[Mark]";
mes "Is there something inside?";
next;
switch( checkquest(11379,PLAYTIME) ) {
case -1:
.@party_id = getcharid(1);
if (.@party_id < 1) {
mes "...It doesn't feel right here.";
mes "It may be dangerous alone so it might be better to form a party.";
close3;
}
if (is_party_leader() == true)
.@string$ = "Open door.";
switch( select( .@string$, "Go in.", "Quit." ) ) {
case 1:
if (instance_create("Last room") < 1) {
mes "Party: " + getpartyname( getcharid(1) ) + "";
mes "Leader: " + getpartyleader( getcharid(1) ) + "";
mes "^0000ffLast room ^000000- Creation failed";
close3;
}
mes "[Mark]";
mes "I'm opening the door.";
mes "Go in when the door is completely open.";
close3;
case 2:
switch( instance_enter("Last room") ) {
case IE_NOMEMBER:
mes "[Mark]";
mes "...feel very suspicious!";
mes "It's a little dangerous to be alone. It is recommended to team up!";
close3;
case IE_NOINSTANCE:
mes "[Mark]";
mes "The door does not seem to be fully open.";
close3;
case IE_OTHER:
mes "[Mark]";
mes "Hey... what is going on?";
close3;
case IE_OK:
mapannounce "un_myst", "" + strcharinfo(0) + " of the party, " + getpartyname(.@party_id) + ", is entering Last room.",bc_map,"0x00FF99";
setquest 11379;// Final Room
if (isbegin_quest(11380) == 0)
setquest 11380;// Final Room
end;
}
end;
case 3:
close3;
}
end;
case 0:
case 1:
mes "[Mark]";
cutin "bu_mark1.bmp",0;
mes "...You look tired.";
mes "Since you went there you should take a day to rest.";
close3;
case 2:
mes "[Mark]";
cutin "bu_mark1.bmp",0;
mes "I can't believe you want to enter a place like this again...";
erasequest 11379;// Final Room
close3;
}
}
// 1st step
/*
// npcs found on iro
1@uns,139,41,3 script Mark#room1 4_M_BLUEMAN,{
mes "[Mark]";
mes "Something doesn't feel right. It is better that we move carefully.";
cutin "bu_mark4.bmp",0;
close3;
}
1@uns,145,32,5 script Alph#room1 4_M_BLACKMAN,{
mes "[Alph]";
mes "There are suspicious traces everywhere.";
mes "Some kind of heavy machine seems to have passed...";
cutin "bu_alp1.bmp",2;
close3;
}
1@uns,143,39,5 script Maggi#room1 4_F_PINKWOMAN,{
mes "[Maggi]";
mes "Aahh....";
cutin "bu_maggi4.bmp",2;
close3;
}
*/
1@uns,145,37,3 script Tamarin#room1 4_M_TAMARIN,{
mes "[Tamarin]";
mes "Verity, are you alright?";
mes "You do not look good...";
cutin "ep143_taang.bmp",2;
close3;
}
1@uns,143,38,5 script Du#room1 4_M_REDMAN,{
mes "[Du]";
mes "I have a bad feeling about this...";
cutin "bu_du1.bmp",2;
close3;
}
1@uns,144,37,3 script Verity#room1 4_F_BERRYTEA,{
if ('protocole < 2) {
mes "[Verity]";
mes "Umph...I suddenly have a feeling that's not good.";
cutin "EP15_2_brt_6.bmp",2;
if (is_party_leader() == false) {
mes "I wish to talk with the leader.";
close3;
}
npctalk "Verity: Umph...I suddenly have a feeling that's not good.";
next;
mes "[Verity]";
mes "Something is splitting my head....Ugh....";
npctalk "Verity: Something is splitting my head....Ugh....";
next;
mes "[Verity]";
mes "....Ugh....";
npctalk "Verity: ....Ugh....";
next;
mes "[Du]";
mes "Sister! Are you alright?!";
cutin "bu_du5.bmp",2;
npctalk "Du: Sister! Are you alright?!", instance_npcname("Du#room1");
next;
mes "[Verity]";
mes "....Have to go back....";
cutin "EP15_2_brt_7.bmp",2;
npctalk "Verity: ....Have to go back....";
next;
mes "[Tamarin]";
mes "Verity, are you alright?";
mes "Can you walk?";
cutin "ep143_tahuk.bmp",2;
npctalk "Tamarin: Verity, are you alright? Can you walk?", instance_npcname("Tamarin#room1");
next;
mes "[Verity]";
mes "Ugh...";
cutin "EP15_2_brt_6.bmp",2;
npctalk "Verity: Ugh...";
next;
mes "[Du]";
mes "" + strcharinfo(0) + "! I think it is better that you go back.";
cutin "bu_du5.bmp",2;
npctalk "Du: " + strcharinfo(0) + "! I think it is better that you go back.", instance_npcname("Du#room1");
next;
mes "[Verity]";
mes "N...no. I will catch up soon so go on ahead.";
cutin "EP15_2_brt_4.bmp",2;
npctalk "Verity: N...no. I will catch up soon so go on ahead.";
next;
mes "[Tamarin]";
mes "Then I will stay with Verity until she recovers so you can go on ahead.";
cutin "ep143_tahuk.bmp",2;
npctalk "Tamarin: Then I will stay with Verity until she recovers so you can go on ahead.";
if ('protocole == 0) {
'protocole = 1;
disablenpc instance_npcname("#lrdoor1");
enablenpc instance_npcname("#lrdoor2");
}
close2;
cutin "",255;
}
end;
}
1@uns,140,45,0 script #lrdoor1 WARPNPC,5,5,{
end;
OnTouch:
warp 'map_name$,142,30;
end;
}
1@uns,140,45,0 script #lrdoor2 HIDDEN_WARP_NPC,5,5,{
end;
OnTouch:
if ('protocole == 1) {
'protocole = 2;
disablenpc instance_npcname("#lrdoor2");
// disablenpc instance_npcname("Mark#room1");
disablenpc instance_npcname("Du#room1");
disablenpc instance_npcname("Tamarin#room1");
disablenpc instance_npcname("Verity#room1");
// disablenpc instance_npcname("Maggi#room1");
// disablenpc instance_npcname("Alph#room1");
mapannounce 'map_name$, "-----------------Creak---------------------",bc_map,"0xFF0000";
donpcevent instance_npcname("#lrdoor3") + "::OnStart";
}
end;
}
1@uns,1,1,0 script #lrdoor3 -1,{
end;
OnStart:
initnpctimer;
end;
OnTimer2000:
mapannounce 'map_name$, "-----Creak---Wrr--------------------------",bc_map,"0xFF0000";
end;
OnTimer4000:
mapannounce 'map_name$, "--------------Wirrrrrrr-----------------",bc_map,"0xFF0000";
end;
OnTimer6000:
mapannounce 'map_name$, "-----Zizip--------Zizizip------------------",bc_map,"0xFF0000";
end;
OnTimer8000:
mapannounce 'map_name$, "System message : Intruder detected.",bc_map,"0xFF0000";
end;
OnTimer10000:
mapannounce 'map_name$, "System message : Sealing off entrance and eliminating intruder according to designated protocols.",bc_map,"0xFF0000";
enablenpc instance_npcname("#lrdoor3");
areamonster 'map_name$,30,33,70,73,"System message",3253,1, instance_npcname("#lrdoor3") + "::OnMyMobDead";
callsub S_Spawn;
OnTimer310000:
mapannounce 'map_name$, "System message : Eliminating intruder.",bc_map,"0xFF0000";
callsub S_Spawn;
OnTimer610000:
stopnpctimer;
mapannounce 'map_name$, "System message : Eliminating intruder.",bc_map,"0xFF0000";
callsub S_Spawn;
S_Spawn:
.@label$ = instance_npcname("#lrdoor3") + "::OnMyMobDead";
areamonster 'map_name$,125,44,145, 64, "Machine Component",3251,3, .@label$; // GC109
areamonster 'map_name$,117,50,137, 70, "Machine Component",3251,3, .@label$;
areamonster 'map_name$, 77,59, 97, 79, "Machine Component",3251,3, .@label$;
areamonster 'map_name$, 53,86, 73,106, "Machine Component",3251,3, .@label$;
areamonster 'map_name$,125,44,145, 64, "Machine Component",3252,3, .@label$; // DR815
areamonster 'map_name$,117,50,137, 70, "Machine Component",3252,3, .@label$;
areamonster 'map_name$, 77,59, 97, 79, "Machine Component",3252,3, .@label$;
areamonster 'map_name$, 53,86, 73,106, "Machine Component",3252,3, .@label$;
end;
OnMyMobDead:
.@count = mobcount( 'map_name$, instance_npcname("#lrdoor3") + "::OnMyMobDead" );
if (.@count < 1) {
mapannounce 'map_name$, "System message : First protocol failed. Commencing next protocol.",bc_map,"0xFF0000";
stopnpctimer;
enablenpc instance_npcname("Tamarin#room2");
disablenpc instance_npcname("#lrdoor3");
}
end;
}
1@uns,67,97,3 script Tamarin#room2 4_M_TAMARIN,{
mes "[Tamarin]";
mes "Huff huff... Verity suddenly huff huff couldn't even stand straight before huff huff...";
cutin "ep143_tahuk.bmp",2;
if (is_party_leader() == false) {
next;
mes "[Tamarin]";
mes "I don't think this is a problem we can solve by talking amongst ourselves.";
mes "Let's ask the leader's opinion first.";
close3;
}
npctalk "Tamarin: Huff huff... Verity suddenly huff huff couldn't even stand straight before huff huff...";
next;
mes "[Tamarin]";
mes "Ran off so fast huff...huff... to even catch up. Huff huff";
npctalk "Tamarin: Ran off so fast huff...huff... to even catch up. Huff huff";
next;
mapannounce 'map_name$, "System message : An unidentified object is moving fast from Zone 1 to Zone 2.",bc_map,"0xFF0000";
mes "[Tamarin]";
mes "Uh... Could Verity have gone that far?";
npctalk "Tamarin: Uh... Could Verity have gone that far?";
next;
mapannounce 'map_name$, "System message : Commencing emergency protocol.",bc_map,"0xFF0000";
mes "[Tamarin]";
mes "We need to find Verity quickly";
npctalk "Tamarin: We need to find Verity quickly";
next;
mes "[Tamarin]";
mes "There is only the route going up so go ahead.";
npctalk "Tamarin: There is only the route going up so go ahead.";
if ('protocole == 2) {
'protocole = 3;
enablenpc instance_npcname("#lrdoor4");
for ( .@i = 1; .@i < 16; ++.@i )
enablenpc instance_npcname( "#lrboom" + .@i );
enablenpc instance_npcname("Verity#room2");
enablenpc instance_npcname("Verity#room3");
}
close3;
}
// 2nd step
1@uns,100,121,0 warp2 #lrdoor4 3,3,1@uns,145,107
1@uns,157,94,0 script #lrboom1 4_CRACK,2,2,{
end;
OnTouch:
sscanf( strnpcinfo(2), "lrboom%d", .@num );
areamonster 'map_name$,178,34,198,54, "Machine Component", (3251 + ((.@num-1) % 2)), 3;
mapannounce 'map_name$, "System message : Intruder detected in Zone 2.",bc_map,"0xFF0000";
disablenpc();
end;
}
1@uns,164,97,0 duplicate(#lrboom1) #lrboom2 4_CRACK,2,2
1@uns,166,92,0 duplicate(#lrboom1) #lrboom3 4_CRACK,2,2
1@uns,170,96,0 duplicate(#lrboom1) #lrboom4 4_CRACK,2,2
1@uns,175,93,0 duplicate(#lrboom1) #lrboom5 4_CRACK,2,2
1@uns,190,97,0 duplicate(#lrboom1) #lrboom6 4_CRACK,2,2
1@uns,194,94,0 duplicate(#lrboom1) #lrboom7 4_CRACK,2,2
1@uns,199,96,0 duplicate(#lrboom1) #lrboom8 4_CRACK,2,2
1@uns,206,93,0 duplicate(#lrboom1) #lrboom9 4_CRACK,2,2
1@uns,217,91,0 duplicate(#lrboom1) #lrboom10 4_CRACK,2,2
1@uns,224,79,0 duplicate(#lrboom1) #lrboom11 4_CRACK,2,2
1@uns,227,73,0 duplicate(#lrboom1) #lrboom12 4_CRACK,2,2
1@uns,227,69,0 duplicate(#lrboom1) #lrboom13 4_CRACK,2,2
1@uns,220,63,0 duplicate(#lrboom1) #lrboom14 4_CRACK,2,2
1@uns,201,60,0 duplicate(#lrboom1) #lrboom15 4_CRACK,2,2
1@uns,224,29,3 script Verity#room2 4_F_BERRYTEA,{
mes "[Verity]";
mes "Ah...Where am I..";
mes "What happened?";
cutin "EP15_2_brt_6.bmp",2;
next;
mes "[Verity]";
mes "My head...is splitting.";
mes "A sound coming from this...door...";
next;
if (select( "Quit.", "Go inside." ) == 1) {
mes "[Verity]";
mes "Go back...we have to go back...";
cutin "EP15_2_brt_7.bmp",2;
close3;
}
mes "[Verity]";
mes "Quickly...we have to go back...";
cutin "EP15_2_brt_7.bmp",2;
close2;
warp 'map_name$,240,255;
end;
}
// Last step
1@uns,242,253,3 script Verity#room3 4_F_BERRYTEA,{
mes "[Verity]";
mes "Finally.. We came back...";
mes "Finally.....";
cutin "EP15_2_brt_7.bmp",2;
if ('protocole == 3) {
'protocole = 4;
disablenpc instance_npcname("Verity#room3");
donpcevent instance_npcname("#bosslr") + "::OnStart";
}
close3;
}
1@uns,1,1,0 script #bosslr -1,{
end;
OnStart:
enablenpc instance_npcname("#bosslr");
initnpctimer;
end;
OnTimer2000:
mapannounce 'map_name$, "System message : Intruder detected in Mother Room.",bc_map,"0xFF0000";
end;
OnTimer4000:
mapannounce 'map_name$, "System message : Commencing final protocol.",bc_map,"0xFF0000";
areamonster 'map_name$,235,255,255,275,"T_W_O",3254,1, instance_npcname("#bosslr") + "::OnMyMobDead";
end;
OnTimer6000:
mapannounce 'map_name$, "System message : Changing all systems from maintenance mode to combat mode.",bc_map,"0xFF0000";
end;
OnTimer8000:
mapannounce 'map_name$, "System message : This is the final protocol to protect... all unrelated personnel please evacuate.",bc_map,"0xFF0000";
end;
OnTimer11000:
mapannounce 'map_name$, "T_W_O : Have to go back..... This place isn't it....",bc_map,"0xFF0000";
end;
OnTimer30000:
mapannounce 'map_name$, "System message : System damage occurred.",bc_map,"0xFF0000";
areamonster 'map_name$,225,250,265,280, "System message",3253,4, instance_npcname("#bosslr") + "::OnMyMobDead2";
end;
OnTimer32000:
mapannounce 'map_name$, "T_W_O : Who am I? Why am I here?.",bc_map,"0xFF0000";
end;
OnTimer60000:
mapannounce 'map_name$, "System message : There may be critical damage within the Zone during system damage so please be careful.",bc_map,"0xFF0000";
end;
OnTimer90000:
mapannounce 'map_name$, "System message : System damage occurred.",bc_map,"0xFF0000";
areamonster 'map_name$,225,250,265,280, "System message",3253,4, instance_npcname("#bosslr") + "::OnMyMobDead2";
end;
OnTimer100000:
mapannounce 'map_name$, "T_W_O : There is nothing left....",bc_map,"0xFF0000";
end;
OnTimer110000:
mapannounce 'map_name$, "T_W_O : I... Nor them....",bc_map,"0xFF0000";
end;
OnTimer150000:
mapannounce 'map_name$, "System message : System damage occurred.",bc_map,"0xFF0000";
areamonster 'map_name$,225,250,265,280, "System message",3253,4, instance_npcname("#bosslr") + "::OnMyMobDead2";
end;
OnTimer210000:
mapannounce 'map_name$, "System message : System damage occurred.",bc_map,"0xFF0000";
areamonster 'map_name$,225,250,265,280, "System message",3253,4, instance_npcname("#bosslr") + "::OnMyMobDead2";
stopnpctimer;
end;
OnMyMobDead:
if (mobcount( 'map_name$, instance_npcname("#bosslr") + "::OnMyMobDead" ) < 1) {
stopnpctimer;
killmonster 'map_name$, instance_npcname("#bosslr") + "::OnMyMobDead";
killmonster 'map_name$, instance_npcname("#bosslr") + "::OnMyMobDead2";
mapannounce 'map_name$, "System message : All protocols failed. Locking down area excluding threat element.",bc_map,"0xFF0000";
// enablenpc instance_npcname("Alph#room4");
// enablenpc instance_npcname("Tamarin#room4");
// enablenpc instance_npcname("Maggi#room4");
// enablenpc instance_npcname("Du#room4");
// enablenpc instance_npcname("Mark#room4");
enablenpc instance_npcname("Verity#room4");
disablenpc instance_npcname("#bosslr");
}
end;
OnMyMobDead2:
end;
}
1@uns,242,253,3 script Verity#room4 4_F_BERRYTEA,{
mes "[Verity]";
mes "Who am I?";
mes "Who am I...";
cutin "EP15_2_brt_6.bmp",2;
close2;
warp "un_bunker",299,162;
end;
OnInstanceInit:
'map_name$ = instance_mapname("1@uns");
'protocole = 0;
// 1st step
disablenpc instance_npcname("#lrdoor3");
disablenpc instance_npcname("Tamarin#room2");
disablenpc instance_npcname("#lrdoor4");
// 2nd step
disablenpc instance_npcname("Verity#room2");
for ( .@i = 1; .@i < 16; ++.@i )
disablenpc instance_npcname( "#lrboom" + .@i );
// Last step
disablenpc instance_npcname("Verity#room3");
disablenpc instance_npcname("#bosslr");
// disablenpc instance_npcname("Alph#room4");
// disablenpc instance_npcname("Tamarin#room4");
// disablenpc instance_npcname("Maggi#room4");
// disablenpc instance_npcname("Du#room4");
// disablenpc instance_npcname("Mark#room4");
disablenpc instance_npcname("Verity#room4");
end;
}
/*
1@uns,236,258,1 script Alph#room4 4_M_BLACKMAN,{
mes "[Alph]";
mes "It's too early to relax...";
cutin "bu_alp1.bmp",2;
close3;
}
1@uns,244,257,3 script Tamarin#room4 4_M_TAMARIN,{
mes "[Tamarin]";
mes "Verity!!!";
mes "Pull yourself together!";
cutin "ep143_tahuk.bmp",2;
close3;
}
1@uns,245,254,3 script Maggi#room4 4_F_PINKWOMAN,{
mes "[Maggi]";
mes "Verity, are you alright?";
cutin "bu_maggi4.bmp",2;
close3;
}
1@uns,244,254,3 script Du#room4 4_M_REDMAN,{
mes "[Du]";
mes "Sister!";
mes "What happened?!";
mes "Are you alright?";
cutin "bu_du5.bmp",2;
close3;
}
1@uns,242,255,5 script Mark#room4 4_M_BLUEMAN,{
mes "[Mark]";
mes "Everybody out of the way!";
mes "I will cast Heal!!!";
cutin "bu_mark4.bmp",0;
close3;
}
1@uns,242,253,3 script Verity#room4 4_F_BERRYTEA,{
mes "[Du]";
mes "Sister!";
mes "What happened?!";
mes "Are you alright?";
cutin "bu_du5.bmp",2;
npctalk "Du: Sister! What happened?! Are you alright?", instance_npcname("Du#room4");
next;
mes "[Tamarin]";
mes "Verity!!!";
mes "Pull yourself together!";
cutin "ep143_tahuk.bmp",2;
npctalk "Tamarin: Verity!!! Pull yourself together!", instance_npcname("Tamarin#room4");
next;
mes "[Mark]";
mes "Everybody out of the way!";
mes "I will cast Heal!!!";
cutin "bu_mark4.bmp",0;
npctalk "Mark: Everybody out of the way! I will cast Heal!!!", instance_npcname("Mark#room4");
next;
mes "[Verity]";
mes "Uh..uhm...";
cutin "EP15_2_brt_4.bmp",2;
npctalk "Verity: Uh..uhm...";
next;
mes "[Verity]";
mes "Oh...";
mes "What is going on.";
mes "With serious faces.";
cutin "EP15_2_brt_5.bmp",2;
npctalk "Verity Oh... What is going on. With serious faces.";
next;
mes "[Du]";
mes "What do you think!";
mes "You don't remember?";
cutin "bu_du4.bmp",2;
npctalk "Du: What do you think! You don't remember?", instance_npcname("Du#room4");
next;
mes "[Verity]";
mes "Remember?";
cutin "EP15_2_brt_5.bmp",2;
npctalk "Verity: Remember?";
next;
mes "[Verity]";
mes "... Come to think of it where am I?";
cutin "EP15_2_brt_3.bmp",2;
npctalk "Verity: ... Come to think of it where am I?";
next;
mes "[Tamarin]";
mes "Verity you really don't remember anything?";
mes "Before...";
cutin "ep143_tahuk.bmp",2;
npctalk "Tamarin: Verity you really don't remember anything? Before...", instance_npcname("Tamarin#room4");
next;
mes "[Verity]";
mes "Uhm...";
mes "I think my head was splitting since I went underground...";
npctalk "Verity: I think my head was splitting since I went underground...";
cutin "EP15_2_brt_3.bmp",2;
next;
mes "[Verity]";
mes "I don't remember anything after that.";
npctalk "Verity: I don't remember anything after that.";
cutin "EP15_2_brt_5.bmp",2;
next;
mes "[Du]";
mes "Just now something tremendous...";
cutin "bu_du4.bmp",2;
npctalk "Du: Just now something tremendous...", instance_npcname("Du#room4");
next;
mes "[Alph]";
mes "Hey... I don't think this is a situation where we should be chatting right now.";
cutin "bu_alp3.bmp",2;
npctalk "Alph: Hey... I don't think this is a situation where we should be chatting right now.", instance_npcname("Alph#room4");
next;
mes "[Du]";
mes "You call this chatting?";
mes "It was tremendous before okay?";
cutin "bu_du4.bmp",2;
npctalk "Du: You call this chatting? It was tremendous before okay?", instance_npcname("Du#room4");
next;
mes "[Alph]";
mes "Do you hear this?";
mes "Something is coming...";
cutin "bu_alp1.bmp",2;
npctalk "Alph: Do you hear this? Something is coming...", instance_npcname("Alph#room4");
next;
mes "[Tamarin]";
mes "Now...now that I look the ground is..., shaking a little, right?";
cutin "ep143_tahuk.bmp",2;
npctalk "Tamarin: Now...now that I look the ground is..., shaking a little, right?", instance_npcname("Tamarin#room4");
next;
mes "[Du]";
mes "What...what's this?";
cutin "bu_du4.bmp",2;
npctalk "Du: What...what's this?", instance_npcname("Du#room4");
next;
mes "[Alph]";
mes "This is...dangerous.";
mes "This is not a level we can handle...";
cutin "bu_alp2.bmp",2;
npctalk "Alph: This is...dangerous. This is not a level we can handle...", instance_npcname("Alph#room4");
next;
mes "[Mark]";
mes "Qui...quickly outside!!!!!";
cutin "bu_mark4.bmp",0;
npctalk "Mark: Qui...quickly outside!!!!!", instance_npcname("Mark#room4");
close2;
warp "un_bunker",299,162;
end;
*/