rathena/npc/re/instances/BaggotLaboratory.txt

490 lines
13 KiB
Plaintext

//===== rAthena Script =======================================
//= 2 Instances:
// - Bagot Laboratory
// - Simulation Battle
//===== Description: =========================================
//- [Walkthrough conversion]
//- Instance of episode 19 (same map).
//===== Changelogs: ==========================================
//= 1.0 First version. [Atemo]
//============================================================
// Bagot Laboratory
// ------------------------------
// Main Quest: Step 58
jor_dun03,57,63,3 script(CLOAKED) Juncea#ep19re2 4_EP19_JUNCEA,{
if (ep19_main == 49) { // Step 58
cutin "ep19_juncea04.png",2;
mes "[Juncea]";
mes "Oh, I want to talk to you alone. Are you okay?";
next;
cutin "",255;
mes "- ^0000ffLet's have a party of 1 and listen to Juncea's story.^000000 -";
erasequest 16659;
setquest 16660;
ep19_main = 50;
close;
}
if (ep19_main == 50) {
if (is_party_leader() == false) {
mes "[Juncea]";
mes "I can only open the secret passage for party leaders. Please have your party leader talk to me.";
close;
}
.@md_name$ = "Bagot Laboratory";
switch( select( "Prepare to enter " + .@md_name$, "Enter " + .@md_name$ ) ) {
case 1:
if (is_party_leader() == false) {
mes "[Juncea]";
mes "I can only open the secret passage for party leaders. Please have your party leader talk to me.";
close;
}
mes "- ^0000ffPreparation for entry has started. After you are ready, press the button to enter " + .@md_name$ + ".^000000 -";
instance_create(.@md_name$);
close;
case 2:
if (is_party_leader() == false) {
mes "[Juncea]";
mes "I can only open the secret passage for party leaders. Please have your party leader talk to me.";
close;
}
switch( instance_enter(.@md_name$) ) {
case IE_OTHER:
mes "An unknown error occurred.";
close;
case IE_NOINSTANCE:
mes "- ^0000ffMemorial dungeon not created. Please check again.^000000 -";
close;
case IE_NOMEMBER:
mes "[Juncea]";
mes "^ff0000Only a member of the party can enter the Memorial Dungeon.^000000";
close;
case IE_OK:
// warp "1@jorlab",57,45;
end;
}
end;
}
end;
}
end;
OnInit:
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(16659) == 1" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "isbegin_quest(16660) == 1" );
end;
}
1@jorlab,1,1,0 script #jorlab_main -1,{
end;
OnInstanceInit:
'map_jorlab$ = instance_mapname("1@jorlab");
'event = 0;
.@md_name$ = "Bagot Laboratory";
disablenpc instance_npcname("Juncea#ep19re4");
if (instance_live_info(ILI_NAME) == .@md_name$) // MD "Bagot Laboratory"
disablenpc instance_npcname("Summon Device#ep19re1");
else { // MD "Simulation"
disablenpc instance_npcname("#jorlab_hw1");
disablenpc instance_npcname("Juncea#ep19re3");
}
end;
}
1@jorlab,58,45,0 script #jorlab_hw1 HIDDEN_WARP_NPC,4,4,{
end;
OnTouch:
disablenpc();
if (ep19_main == 50) {
if ('event != 0)
end;
if (is_party_leader() == false)
end;
enablenpc instance_npcname("Juncea#ep19re3");
end;
}
end;
}
// Main Quest: Step 59
1@jorlab,58,67,3 script Juncea#ep19re3 4_EP19_JUNCEA,{
if (ep19_main != 50)
end;
if (is_party_leader() == false)
end;
.@npc_name$ = instance_npcname("Juncea#ep19re3");
if ('event == 0) {
cutin "ep19_juncea04.png",2;
mes "[Juncea]";
mes "Oh, I'm here. Welcome.";
next;
cutin "",255;
mes "[" + strcharinfo(0) + "]";
mes "Why do you want it to be just the two of us?";
mes "Although, I had some questions for you too.";
next;
cutin "ep19_juncea04.png",2;
mes "[Juncea]";
mes "Oh, I thought so.";
mes "But listen to me first.";
next;
mes "[Juncea]";
mes "You are in a lot of trouble.";
mes "It must be hard to be someone you're not.";
next;
cutin "",255;
mes "[" + strcharinfo(0) + "]";
mes "What do you mean? What's wrong? You're a bit strange. You scare me.";
next;
cutin "ep19_juncea04.png",2;
mes "[Juncea]";
mes "What are you afraid of? You've done a good job of pretending to be friendly so far. Why are you suddenly acting scared again?";
next;
cutin "",255;
mes "[" + strcharinfo(0) + "]";
mes "I didn't pretend to be friendly. I really want to become friends with you.";
next;
cutin "ep19_juncea04.png",2;
mes "[Juncea]";
mes "Whoa, that's why you were so hard on me to gossip about Bagot? It's a good way, it's a good way.";
mes "There is no faster way to make friends than to curse the same person.";
next;
mes "[Juncea]";
mes "However, you chose the wrong opponent. Idiot.";
next;
mes "[Juncea]";
mes "The great... Bagot, do you think you will... fall for such a shallow... masterpiece?";
next;
cutin "",255;
mes "[" + strcharinfo(0) + "]";
mes "Are you the great Bagot?";
next;
cutin "ep19_juncea04.png",2;
mes "[Juncea]";
mes "Yeah... It's already reading your thoughts...";
next;
mes "[Juncea]";
mes "You know... you're trying to... use me.";
next;
mes "[Juncea]";
mes "So I...";
next;
mes "[Juncea]";
mes "I am... Who am I? This is...";
next;
cutin "",255;
mes "[" + strcharinfo(0) + "]";
mes "(Juncea is weird..., did Bagot do something?)";
next;
cutin "ep19_juncea04.png",2;
mes "[Juncea]";
mes "Even if I jumped... you're already in Bagot's palm.";
next;
cutin "ep19_juncea00.png",1;
setnpcdisplay( .@npc_name$, 4_EP19_JUNCEA_M );
mes "[Juncea]";
mes "Here... I'll take care of it...!";
next;
cutin "",255;
mes "[" + strcharinfo(0) + "]";
mes "(...I don't have time to ask anyone for help! I have to do that myself!)";
if ('event == 0)
'event = 1;
close;
}
if ('event == 1) {
cutin "ep19_juncea04.png",2;
setnpcdisplay( .@npc_name$, 4_EP19_JUNCEA );
mes "[Juncea]";
mes "Aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaah!";
next;
cutin "ep19_juncea00.png",1;
sleep2 500;
setnpcdisplay( .@npc_name$, 4_EP19_JUNCEA_M );
mes "[Juncea]";
mes "Everything is... Bagot's... Meaning...!";
next;
cutin "ep19_juncea04.png",2;
sleep2 500;
setnpcdisplay( .@npc_name$, 4_EP19_JUNCEA );
mes "[Juncea]";
mes "Aaaaaaah!";
setnpcdisplay( .@npc_name$, 4_EP19_JUNCEA_M );
setnpcdisplay( .@npc_name$, 4_EP19_JUNCEA );
setnpcdisplay( .@npc_name$, 4_EP19_JUNCEA_M );
sleep2 500;
setnpcdisplay( .@npc_name$, 4_EP19_JUNCEA );
next;
cutin "ep19_juncea00.png",1;
sleep2 500;
setnpcdisplay( .@npc_name$, 4_EP19_JUNCEA_M );
mes "[Juncea]";
mes "As intended... I will punish you!";
close2;
cutin "",255;
if ('event != 1)
end;
'event = 2;
disablenpc();
donpcevent instance_npcname("jorlab_boss") + "::OnStart";
end;
}
end;
}
1@jorlab,1,1,0 script jorlab_boss -1,{
end;
OnStart:
sleep 500;
monster 'map_jorlab$,58,67,"--ja--",21532,1, instance_npcname("jorlab_boss") + "::OnMobDead"; // EP19_MD_JUNCEA
end;
OnMobDead:
if ('event != 2)
end;
'event = 3;
enablenpc instance_npcname("Juncea#ep19re4");
end;
}
// Main Quest: Step 60
1@jorlab,58,67,3 script Juncea#ep19re4 4_EP19_JUNCEA_D,{
if (ep19_main != 50) {
warp "icecastle",27,123;
end;
}
if ('event != 3)
end;
if (is_party_leader() == false)
end;
mes "[" + strcharinfo(0) + "]";
mes "(Barely subdued. Juncea lost her mind...)";
next;
mes "[" + strcharinfo(0) + "]";
mes "(Bagot... What did you do to Juncea? You've turned her into a monster right?)";
next;
mes "[" + strcharinfo(0) + "]";
mes "(If everything went according to plan, we should have persuaded her and taken her out, but we should have taken her out even in this condition.)";
mapannounce 'map_jorlab$, "Bagot: Oh, it was not enough to use Juncea as a vessel.", bc_map, 0xFFFF;
next;
mes "[" + strcharinfo(0) + "]";
mes "(I used the Ragan Transformation Scroll on Juncea as I had planned...)";
mapannounce 'map_jorlab$, "Bagot: This time, my prediction was wrong.", bc_map, 0xFFFF;
next;
setnpcdisplay( instance_npcname("Juncea#ep19re4"), 4_EP19_RGAN_R1 );
mes "[" + strcharinfo(0) + "]";
mes "(For now, let's take her back to the village.)";
mapannounce 'map_jorlab$, "Bagot: By the way, there were scrolls like that... I knew they were cheating, but the existence of such a thing is interesting.", bc_map, 0xFFFF;
next;
mes "[" + strcharinfo(0) + "]";
mes "(I think I heard something... I must have heard it wrong?)";
mapannounce 'map_jorlab$, "Bagot: Whoops.", bc_map, 0xFFFF;
erasequest 16660;
setquest 16661;
ep19_main = 51;
close2;
warp "icecastle",27,123;
end;
OnInstanceInit:
questinfo( QTYPE_QUEST, QMARK_NONE, "checkquest(16660,HUNTING) == 2" );
end;
}
// Simulation Battle
// ------------------------------
jor_nest,66,260,3 script Arolong#ep19re2 4_EP19_IWIN,{
if (ep19_main < 100)
end;
if (checkweight(1000811,1) == 0) {
mes "[Arolong]";
mes "- Your bag is full. Please check the weight and quantity of items you have and then talk to us again. -";
close;
}
switch( checkquest(16663,PLAYTIME) ) {
case -1:
break;
case 0:
case 1:
mes "[Arolong]";
mes "Today's challenge is over.";
mes "If you come back tomorrow, please let me in.";
next;
mes "[Arolong]";
mes "Okay?";
mes "Have a good rest, see you again tomorrow.";
close;
case 2:
erasequest 16663;
break;
}
if (checkquest(16662,HUNTING) == 2) {
mes "[Arolong]";
mes "Societyless Simulation with Juncea";
mes "Did you win a fight and come back?";
next;
mes "[Arolong]";
mes "Child, it's okay if you don't answer.";
mes "I've seen it all here.";
next;
mes "[Arolong]";
mes "Well done.";
mes "It's a great win and come back.";
next;
mes "[Arolong]";
mes "The data are paired, so our researchers also";
mes "Your calf.";
mes "Then, please accept the promised reward.";
next;
mes "[Arolong]";
mes "Have a good rest, see you again tomorrow.";
mes "I'll try again tomorrow.";
close2;
erasequest 16662;
setquest 16663;
getitem 1000811,1; // Snow_F_Ore
// todo
end;
}
// Note: Player can re-enter / re-create an instance until the boss is defeated
cutin "ep19_iwin01.png",2;
mes "[Arolong]";
mes "The battle with Juncea wasn't thrilling, wasn't it?";
mes "You want to fight again, don't you think?";
next;
cutin "",255;
if (select( "Lift", "Don't lift" ) == 2) {
cutin "ep19_iwin01.png",2;
mes "[Arolong]";
mes "Is that so?";
mes "I'm sorry.";
close3;
}
cutin "ep19_iwin01.png",2;
mes "[Arolong]";
mes "It was prepared for such an adventurer.";
mes "Exciting simulation battles with simulation data Juncea.";
next;
mes "[Arolong]";
mes "I prepared it at the Ice Castle, so it's safe.";
mes "Defeat " + getmonsterinfo("EP19_MD_JUNCEA_S", MOB_NAME) + " once a day.";
next;
mes "[Arolong]";
mes "But you can try again and again until you defeat it.";
mes "Would you like to try it?";
next;
.@md_name$ = "Simulation Battle";
if (is_party_leader() == true)
.@menu$ = "Prepare to enter Bagot's lab";
cutin "",255;
switch( select( .@menu$, "Enter Bagot's Lab", "Do not challenge" ) ) {
case 1:
mes "- ^0000ff Preparation for entry has started. After you are ready, press the button to enter the lab in Bagot.^000000 -";
instance_create(.@md_name$);
close;
case 2:
switch( instance_enter(.@md_name$) ) {
case IE_OTHER:
mes "An unknown error occurred.";
close;
case IE_NOINSTANCE:
mes "- ^0000ff Memorial dungeon not created. Please check again.^000000 -";
close;
case IE_NOMEMBER:
mes "[Juncea]";
mes "^ff0000Only a member of the party can enter the Memorial Dungeon.^000000";
close;
case IE_OK:
if (isbegin_quest(16662) == 0)
setquest 16662;
// warp "1@jorlab",57,45;
end;
}
end;
case 3:
cutin "ep19_iwin01.png",2;
mes "[Arolong]";
mes "Heh, what a boring adventure.";
close3;
}
end;
OnInit:
cloakonnpc();
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "ep19_main >= 100 && checkquest(16662,HUNTING) != 2 && checkquest(16663,PLAYTIME) == -1" );
questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(16663,PLAYTIME) == 2" );
questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(16662,HUNTING) == 2" );
end;
}
1@jorlab,58,67,3 script Summon Device#ep19re1 PORTAL,{
if ('event == 2) {
mes "[Summon Device]";
mes "Battle complete, save data.";
mes "Press the Yes button to exit the lab";
mes "Please press";
next;
if (select( "Yes", "No" ) == 2) {
mes "[Summon Device]";
mes "Exit.";
close;
}
mes "[Summon Device]";
mes "3, 2, 1. Ready to move.";
close2;
warp "jor_nest",63,257;
end;
}
if (is_party_leader() == false || 'event != 0) {
mes "[Summon Device]";
mes "- I am talking with another party member. Please listen together for a moment. -";
mes "- If the conversation ended due to an error, you will be able to talk 5 minutes after the conversation starts. -";
close;
}
mes "[Summon Device]";
mes "Start a simulation battle.";
mes "When you are ready, click the Yes button.";
next;
mes "[Summon Device]";
mes "Are you ready?";
next;
if (select( "Yes", "No" ) == 2) {
mes "[Summon Device]";
mes "Exit.";
close;
}
mes "[Summon Device]";
mes "Summon " + getmonsterinfo("EP19_MD_JUNCEA_S", MOB_NAME) + ".";
mes "3, 2, 1. Ready to summon.";
close2;
if ('event == 0) {
'event = 1;
disablenpc();
donpcevent instance_npcname("ep19_simulation_battle") + "::OnStart";
}
end;
}
1@jorlab,1,1,0 script ep19_simulation_battle -1,{
end;
OnStart:
monster 'map_jorlab$,58,67,"--ja--","EP19_MD_JUNCEA_S",1, instance_npcname("ep19_simulation_battle") + "::OnBossDead";
end;
OnBossDead:
if ('event != 1)
end;
'event = 2;
enablenpc instance_npcname("Summon Device#ep19re1");
end;
}