summaryrefslogtreecommitdiff
path: root/npc/008-3-0/juliet.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/008-3-0/juliet.txt')
-rw-r--r--npc/008-3-0/juliet.txt656
1 files changed, 0 insertions, 656 deletions
diff --git a/npc/008-3-0/juliet.txt b/npc/008-3-0/juliet.txt
deleted file mode 100644
index e0d256be..00000000
--- a/npc/008-3-0/juliet.txt
+++ /dev/null
@@ -1,656 +0,0 @@
-// The Mana World scripts.
-// Author:
-// Jesusalva
-// Description:
-// Core for rescuing Juliet.
-// Named as "Juliet" so `pluma npc/*/juliet.txt` resolves to something tangible.
-008-3-0 mapflag nosave 008-1-1,49,158
-
-008-3-0,92,89,0 script Summoning Altar#Rossy NPC_NO_SPRITE,{
- .@q2=getq2(HurnscaldQuests_Rossy);
- // Not ready
- if (.@q2 < ROSSY_READY) {
- mesn;
- mesq l("Better not touch this.");
- close;
- }
- // Complete
- if (.@q2 & ROSSY_BOSSCAVE) {
- dispbottom l("You find someone hiding behind the altar.");
- enablenpc instance_npcname("Juliet");
- disablenpc instance_npcname("Summoning Altar#Rossy");
- end;
- }
- // Battle
- mesc l("This is the boss room! Be prepared for the worst!!"), 1;
- callfunc("RossyCave", ROSSY_BOSSCAVE);
- close;
-
-OnInit:
- .distance = 4;
- end;
-
-// Time to configure the map
-OnInstanceInit:
- .@m$=instance_mapname("008-3-0");
- // Rebuild spawns
- // WARNING: Originals were generated automatically!
- // print('\tareamonster(.@m$, %d, %d, %d, %d, strmobinfo(1, %s), %s, %d);' % (obj.x, obj.y, obj.x+obj.w, obj.y+obj.h, obj.name.replace(' ', ''), obj.name.replace(' ', ''), obj.max_beings))
- areamonster(.@m$, 30, 113, 37, 127, strmobinfo(1, CaveMaggot), CaveMaggot, 5);
- areamonster(.@m$, 102, 116, 116, 124, strmobinfo(1, CaveMaggot), CaveMaggot, 5);
- areamonster(.@m$, 79, 144, 89, 150, strmobinfo(1, CaveMaggot), CaveMaggot, 7);
- areamonster(.@m$, 158, 87, 168, 99, strmobinfo(1, CaveMaggot), CaveMaggot, 7);
- areamonster(.@m$, 34, 28, 37, 32, strmobinfo(1, PoisonSkull), PoisonSkull, 1);
- areamonster(.@m$, 160, 124, 165, 127, strmobinfo(1, Ratto), Ratto, 4);
- areamonster(.@m$, 155, 163, 156, 170, strmobinfo(1, Ratto), Ratto, 4);
- areamonster(.@m$, 128, 146, 133, 149, strmobinfo(1, Ratto), Ratto, 4);
- areamonster(.@m$, 120, 61, 125, 64, strmobinfo(1, Ratto), Ratto, 4);
- areamonster(.@m$, 138, 64, 148, 71, strmobinfo(1, Crafty), Crafty, 10);
- areamonster(.@m$, 129, 102, 140, 108, strmobinfo(1, Crafty), Crafty, 6);
- areamonster(.@m$, 67, 114, 77, 116, strmobinfo(1, Spider), Spider, 3);
- areamonster(.@m$, 109, 145, 113, 155, strmobinfo(1, Spider), Spider, 5);
- areamonster(.@m$, 68, 84, 71, 91, strmobinfo(1, Spider), Spider, 4);
- areamonster(.@m$, 80, 169, 80, 169, strmobinfo(1, DiamondVein), DiamondVein, 1);
- areamonster(.@m$, 118, 96, 118, 96, strmobinfo(1, GemVeinbloc), GemVeinbloc, 1);
- areamonster(.@m$, 131, 93, 131, 93, strmobinfo(1, CoalVeinbloc), CoalVeinbloc, 1);
- areamonster(.@m$, 119, 101, 119, 101, strmobinfo(1, GoldVeinbloc), GoldVeinbloc, 1);
- areamonster(.@m$, 113, 60, 136, 68, strmobinfo(1, CaveMaggot), CaveMaggot, 7);
- areamonster(.@m$, 199, 68, 207, 77, strmobinfo(1, Crafty), Crafty, 5);
- areamonster(.@m$, 160, 47, 177, 52, strmobinfo(1, Crafty), Crafty, 5);
- areamonster(.@m$, 119, 200, 139, 204, strmobinfo(1, Spider), Spider, 5);
- areamonster(.@m$, 34, 193, 45, 202, strmobinfo(1, Spider), Spider, 5);
- areamonster(.@m$, 26, 115, 31, 132, strmobinfo(1, Spider), Spider, 5);
- areamonster(.@m$, 82, 60, 103, 67, strmobinfo(1, CaveMaggot), CaveMaggot, 5);
- areamonster(.@m$, 38, 193, 54, 197, strmobinfo(1, CaveMaggot), CaveMaggot, 5);
- areamonster(.@m$, 114, 199, 126, 202, strmobinfo(1, Ratto), Ratto, 4);
- areamonster(.@m$, 106, 30, 116, 37, strmobinfo(1, Crafty), Crafty, 5);
- areamonster(.@m$, 78, 128, 89, 149, strmobinfo(1, Ratto), Ratto, 4);
- areamonster(.@m$, 117, 141, 152, 152, strmobinfo(1, Crafty), Crafty, 10);
- areamonster(.@m$, 117, 101, 135, 112, strmobinfo(1, Ratto), Ratto, 7);
- areamonster(.@m$, 130, 88, 130, 88, strmobinfo(1, RubyVein), RubyVein, 1);
- areamonster(.@m$, 122, 94, 122, 94, strmobinfo(1, RubyVein), RubyVein, 1);
- areamonster(.@m$, 31, 181, 31, 181, strmobinfo(1, SapphireVein), SapphireVein, 1);
- areamonster(.@m$, 31, 198, 31, 198, strmobinfo(1, SapphireVein), SapphireVein, 1);
- areamonster(.@m$, 135, 127, 135, 127, strmobinfo(1, TopazVein), TopazVein, 1);
- areamonster(.@m$, 120, 125, 120, 125, strmobinfo(1, TopazVein), TopazVein, 1);
- areamonster(.@m$, 31, 112, 31, 112, strmobinfo(1, AmethystVein), AmethystVein, 1);
- areamonster(.@m$, 24, 123, 24, 123, strmobinfo(1, AmethystVein), AmethystVein, 1);
- areamonster(.@m$, 193, 123, 193, 123, strmobinfo(1, EmeraldVein), EmeraldVein, 1);
- areamonster(.@m$, 204, 116, 204, 116, strmobinfo(1, EmeraldVein), EmeraldVein, 1);
- areamonster(.@m$, 89, 168, 89, 168, strmobinfo(1, DiamondVein), DiamondVein, 1);
- areamonster(.@m$, 132, 192, 132, 192, strmobinfo(1, SapphireVein), SapphireVein, 1);
- areamonster(.@m$, 39, 174, 39, 174, strmobinfo(1, AmethystVein), AmethystVein, 1);
- areamonster(.@m$, 44, 174, 44, 174, strmobinfo(1, TopazVein), TopazVein, 1);
- areamonster(.@m$, 118, 196, 118, 196, strmobinfo(1, EmeraldVein), EmeraldVein, 1);
- areamonster(.@m$, 65, 105, 65, 105, strmobinfo(1, DiamondVein), DiamondVein, 1);
- areamonster(.@m$, 143, 139, 143, 139, strmobinfo(1, GemVeinbloc), GemVeinbloc, 1);
- areamonster(.@m$, 156, 121, 156, 121, strmobinfo(1, GemVeinbloc), GemVeinbloc, 1);
- areamonster(.@m$, 155, 166, 155, 166, strmobinfo(1, GemVeinbloc), GemVeinbloc, 1);
- areamonster(.@m$, 125, 162, 125, 162, strmobinfo(1, GemVeinbloc), GemVeinbloc, 1);
- areamonster(.@m$, 107, 141, 107, 141, strmobinfo(1, GemVeinbloc), GemVeinbloc, 1);
- areamonster(.@m$, 77, 148, 77, 148, strmobinfo(1, GemVeinbloc), GemVeinbloc, 1);
- areamonster(.@m$, 62, 119, 62, 119, strmobinfo(1, GemVeinbloc), GemVeinbloc, 1);
- areamonster(.@m$, 162, 95, 162, 95, strmobinfo(1, CoalVeinbloc), CoalVeinbloc, 1);
- areamonster(.@m$, 157, 66, 157, 66, strmobinfo(1, CoalVeinbloc), CoalVeinbloc, 1);
- areamonster(.@m$, 112, 60, 112, 60, strmobinfo(1, CoalVeinbloc), CoalVeinbloc, 1);
- areamonster(.@m$, 66, 54, 66, 54, strmobinfo(1, CoalVeinbloc), CoalVeinbloc, 1);
- areamonster(.@m$, 63, 91, 63, 91, strmobinfo(1, GoldVeinbloc), GoldVeinbloc, 1);
- areamonster(.@m$, 76, 127, 76, 127, strmobinfo(1, GoldVeinbloc), GoldVeinbloc, 1);
- areamonster(.@m$, 111, 148, 111, 148, strmobinfo(1, GoldVeinbloc), GoldVeinbloc, 1);
- /*
- areamonster(.@m$, 101, 27, 104, 31, strmobinfo(1, PoisonSkull), PoisonSkull, 1);
- areamonster(.@m$, 165, 28, 168, 32, strmobinfo(1, PoisonSkull), PoisonSkull, 1);
- areamonster(.@m$, 199, 67, 202, 71, strmobinfo(1, PoisonSkull), PoisonSkull, 1);
- areamonster(.@m$, 199, 109, 202, 113, strmobinfo(1, PoisonSkull), PoisonSkull, 1);
- areamonster(.@m$, 197, 194, 200, 198, strmobinfo(1, PoisonSkull), PoisonSkull, 1);
- areamonster(.@m$, 133, 199, 136, 203, strmobinfo(1, PoisonSkull), PoisonSkull, 1);
- areamonster(.@m$, 34, 194, 37, 198, strmobinfo(1, PoisonSkull), PoisonSkull, 1);
- areamonster(.@m$, 26, 111, 29, 115, strmobinfo(1, PoisonSkull), PoisonSkull, 1);
- */
- areamonster(.@m$, 88, 48, 88, 48, strmobinfo(1, CoalVein), CoalVein, 1);
- areamonster(.@m$, 100, 49, 100, 49, strmobinfo(1, CoalVein), CoalVein, 1);
- areamonster(.@m$, 130, 44, 130, 44, strmobinfo(1, CoalVein), CoalVein, 1);
- areamonster(.@m$, 67, 47, 67, 47, strmobinfo(1, CoalVein), CoalVein, 1);
- areamonster(.@m$, 124, 94, 124, 94, strmobinfo(1, CoalVein), CoalVein, 1);
- areamonster(.@m$, 158, 60, 158, 60, strmobinfo(1, CoalVein), CoalVein, 1);
- areamonster(.@m$, 56, 53, 56, 53, strmobinfo(1, IronVein), IronVein, 1);
- areamonster(.@m$, 55, 98, 55, 98, strmobinfo(1, IronVein), IronVein, 1);
- areamonster(.@m$, 62, 103, 62, 103, strmobinfo(1, IronVein), IronVein, 1);
- areamonster(.@m$, 69, 125, 69, 125, strmobinfo(1, IronVein), IronVein, 1);
- areamonster(.@m$, 62, 153, 62, 153, strmobinfo(1, IronVein), IronVein, 1);
- areamonster(.@m$, 96, 145, 96, 145, strmobinfo(1, IronVein), IronVein, 1);
-
- // Yay yay yay
- end;
-}
-
-/////////////////////////////////////////////////////////
-// Main script controller for Rossy Quest
-- script #RossyQuest NPC_HIDDEN,{
- end;
-
-OnStage2:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage2")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_CAVE1;
- goto OnBeat;
-
-OnStage4:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage4")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_CAVE2;
- goto OnBeat;
-
-OnStage8:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage8")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_CAVE3;
- goto OnBeat;
-
-OnStage16:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage16")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_CAVE4;
- goto OnBeat;
-
-OnStage32:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage32")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_CAVE5;
- goto OnBeat;
-
-OnStage64:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage64")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_CAVE6;
- goto OnBeat;
-
-OnStage128:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage128")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_CAVE7;
- goto OnBeat;
-
-OnStage256:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage256")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_CAVE8;
- goto OnBeat;
-
-OnStage512:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage512")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_CAVE9;
- goto OnBeat;
-
-OnStage1024:
- if (!playerattached()) end; // ERROR
- if (!@rossylock) end; // Invalid
- if (mobcount(getmap(), "#RossyQuest::OnStage1024")) end; // Still working
- .@q2=getq2(HurnscaldQuests_Rossy);
- setq2 HurnscaldQuests_Rossy, .@q2 | ROSSY_BOSSCAVE;
- goto OnBeat;
-
-OnBeat:
- @rossylock = false;
- dispbottom l("*** Cave Cleared ***");
- delcells "Rossy"+getcharid(0)+"Wall";
- .@inst = getq3(HurnscaldQuests_Rossy);
- instance_set_timeout(ROSSY_INSTIME, ROSSY_INSTIME, .@inst);
- if (.@q2 < ROSSY_BOSSCAVE)
- addtimer2(300000, "#RossyQuest::OnTick1");
- else
- deltimer("#RossyQuest::OnTick1");
- deltimer("#RossyQuest::OnTick2");
- deltimer("#RossyQuest::OnTick3");
- deltimer("#RossyQuest::OnTick4");
- deltimer("#RossyQuest::OnTick5");
- end;
-
-/* ****************************************** */
-OnTick1:
- dispbottom l("Time remaining: %d minutes", 15);
- addtimer2(300000, "#RossyQuest::OnTick2");
- end;
-
-OnTick2:
- dispbottom l("Time remaining: %d minutes", 10);
- addtimer2(300000, "#RossyQuest::OnTick3");
- end;
-
-OnTick3:
- dispbottom l("Time remaining: %d minutes", 5);
- addtimer2(240000, "#RossyQuest::OnTick4");
- end;
-
-OnTick4:
- dispbottom l("Time remaining: 1 minute");
- addtimer2(45000, "#RossyQuest::OnTick5");
- end;
-
-OnTick5:
- dispbottom l("Time remaining: %d seconds!", 15);
- end;
-
-}
-
-/////////////////////////////////////////////////////////
-// RossyCave(Cave ID)
-function script RossyCave {
- // Fight ongoing - cannot trigger
- if (@rossylock)
- return false;
-
- // Check quest consistency
- // HurnscaldQuests_Rossy
- // (MAIN QUEST, CAVE CONTROL, INSTANCE CONTROL)
- .@q=getq(HurnscaldQuests_Rossy);
- .@q2=getq2(HurnscaldQuests_Rossy);
- .@inst=getq3(HurnscaldQuests_Rossy);
-
- if (instance_id() != .@inst)
- return false;
- if (.@q != 16)
- return false;
- if (!.@q2) {
- dispbottom l("This looks DANGEROUS! Maybe someone around here can tell me what I'm supposed to do.");
- return false;
- }
- if (.@q2 & .caveid)
- return false;
-
- // ---------------
- // Main node setup
- .@c=getarg(0);
- .@m$=getmap();
- .@n$="#RossyQuest::OnStage"+.@c;
-
- // Obtain and Write Configuration
- switch (.@c) {
- case ROSSY_CAVE1:
- .@boss=PoisonSkull;
- .@mobc=rand2(3,5);
- .@x1=85;.@y1=21;.@x2=108;.@y2=39;
- .@x3=109;.@y3=33; .@x4=109; .@y4=36;
- break;
- case ROSSY_CAVE2:
- .@boss=Troll;
- .@mobc=rand2(3,5);
- .@x1=191;.@y1=103;.@x2=205;.@y2=122;
- .@x3=201;.@y3=123; .@x4=201; .@y4=123;
- break;
- case ROSSY_CAVE3:
- .@boss=FireWisp;
- .@mobc=rand2(2,4);
- .@x1=26;.@y1=23;.@x2=43;.@y2=36;
- .@x3=38;.@y3=37; .@x4=38; .@y4=37;
- break;
- case ROSSY_CAVE4:
- .@boss=WaterWisp;
- .@mobc=rand2(6,12);
- .@x1=180;.@y1=176;.@x2=206;.@y2=207;
- .@x3=179;.@y3=200; .@x4=179; .@y4=200;
- break;
- case ROSSY_CAVE5:
- .@boss=Serqet;
- .@mobc=rand2(6,8);
- .@x1=98;.@y1=188;.@x2=141;.@y2=207;
- .@x3=97;.@y3=190; .@x4=97; .@y4=197;
- break;
- case ROSSY_CAVE6:
- .@boss=SnakeGhost;
- .@mobc=rand2(5,7);
- .@x1=19;.@y1=98;.@x2=36;.@y2=136;
- .@x3=37;.@y3=125; .@x4=37; .@y4=125;
- break;
- case ROSSY_CAVE7:
- .@boss=ScorpionGhost;
- .@mobc=rand2(5,7);
- .@x1=22;.@y1=181;.@x2=50;.@y2=205;
- .@x3=51;.@y3=192; .@x4=51; .@y4=197;
- break;
- case ROSSY_CAVE8:
- .@boss=JackO;
- .@mobc=rand2(3,5);
- .@x1=158;.@y1=20;.@x2=176;.@y2=35;
- .@x3=175;.@y3=36; .@x4=177; .@y4=36;
- break;
- case ROSSY_CAVE9:
- .@boss=GreenSlimeProgenitor;
- .@mobc=rand2(5,7);
- .@x1=187;.@y1=58;.@x2=208;.@y2=85;
- .@x3=186;.@y3=82; .@x4=186; .@y4=85;
- break;
- case ROSSY_BOSSCAVE:
- .@boss=Golem;
- .@mobc=rand2(3,5);
- .@x1=84;.@y1=85;.@x2=101;.@y2=101;
- .@x3=92;.@y3=102; .@x4=93; .@y4=102;
- break;
- default:
- consolemes(CONSOLEMES_ERROR, "INVALID ROSSY CAVE ID - "+.@c+" - SCRIPT ABORTED");
- return false;
- }
-
- // This is cast from a dialog so prompt comes before any advanced calculation
- mesc l("Drop a %s here to summon monsters.", getitemlink(PileOfAsh));
- if (.@c == ROSSY_BOSSCAVE)
- mesc l("This is the master's room seal, be careful!"), 1;
- else
- mesc l("Weaken all nine seals to be able to undo the final one.");
- select
- rif(countitem(PileOfAsh), l("Place pile of ashes")),
- l("Run away in fear");
- mes "";
- closeclientdialog;
- if (@menu == 2)
- return false;
-
- // Delete the item and lock for the quest
- delitem PileOfAsh, 1;
- @rossylock = true;
-
- // Spawn underlings
- for (.@i=0; .@i < .@mobc; .@i++) {
- // FIXME: Penguin? Mister Prickel? Ice Goblin? Wolvern?
- // I think all those four could be removed.
- .@mobId=any(Bandit, RobinBandit, Skeleton, MisterPrickel, ManaGhost, Penguin, CraftyGhost, Zombie, Wolvern, SpiderGhost, IceGoblin); // Mobs lv 26~47
- .@mob=areamonster(.@m$, .@x1, .@y1, .@x2, .@y2, strmobinfo(1, .@mobId), .@mobId, 1, .@n$);
- // Make it aggresive
- .@bmod=getunitdata(.@mob, UDT_MODE);
- setunitdata(.@mob, UDT_MODE, .@bmod|4); // 4 = MD_AGGRESSIVE
- }
-
- // Spawn boss
- .@mob=areamonster(.@m$, .@x1, .@y1, .@x2, .@y2, strmobinfo(1, .@boss), .@boss, 1, .@n$);
-
- // Obain boss basic status...
- .@bhp= getunitdata(.@mob, UDT_MAXHP);
- .@bat1=getunitdata(.@mob, UDT_ATKMIN);
- .@bat2=getunitdata(.@mob, UDT_ATKMAX);
- .@bhit=getunitdata(.@mob, UDT_HIT);
- .@bmod=getunitdata(.@mob, UDT_MODE);
- .@bmod=.@bmod|4; // 4 = MD_AGGRESSIVE
-
- // ...And Tweak Battle Status
- setunitdata(.@mob, UDT_MAXHP, .@bhp*15/10);
- setunitdata(.@mob, UDT_HP, .@bhp*15/10);
- setunitdata(.@mob, UDT_ATKMIN, .@bat1*7/10);
- setunitdata(.@mob, UDT_ATKMAX, .@bat2*7/10);
- setunitdata(.@mob, UDT_HIT, .@bhit*2);
- setunitdata(.@mob, UDT_MODE, .@bmod|32); // 32 = MD_BOSS
-
- // Build the wall so you cannot leave :>
- setcells getmap(), .@x3, .@y3, .@x4, .@y4, 3, "Rossy"+getcharid(0)+"Wall";
- return true;
-}
-
-///////////////////////////////////////////////
-// Reset quest when you die
-function script RossyDeath {
- if (getq(HurnscaldQuests_Rossy) != 16)
- return;
- if (@rossylock)
- delcells("Rossy"+getcharid(0)+"Wall");
- @rossylock=false;
- setq2 HurnscaldQuests_Rossy, 0;
- deltimer("#RossyQuest::OnTick1");
- deltimer("#RossyQuest::OnTick2");
- deltimer("#RossyQuest::OnTick3");
- deltimer("#RossyQuest::OnTick4");
- deltimer("#RossyQuest::OnTick5");
- return;
-}
-
-// May reset quest when you logout
-function script RossyLogout {
- if (getq(HurnscaldQuests_Rossy) != 16)
- return;
- if (@rossylock) {
- delcells("Rossy"+getcharid(0)+"Wall");
- @rossylock=false;
- setq2 HurnscaldQuests_Rossy, 0;
- }
- // FIXME: Set timers again when you login back? =/
- return;
-}
-
-/////////////////////////////////////////////////////////
-// Position the triggers
-
-// Begin Cave Code
-008-3-0,98,27,0 script #RossyCave01 NPC_SUMMONING_CIRC,{
- if (RossyCave(.caveid))
- disablenpc instance_npcname(.name$);
- close;
-
-OnInit:
- disablenpc "#RossyCave01";
-OnInstanceInit:
- .distance=1;
- .caveid=ROSSY_CAVE1;
- end;
-}
-
-// Begin Cave Code
-008-3-0,199,109,0 script #RossyCave02 NPC_SUMMONING_CIRC,{
- if (RossyCave(.caveid))
- disablenpc instance_npcname(.name$);
- close;
-
-OnInit:
- disablenpc "#RossyCave02";
-OnInstanceInit:
- .distance=1;
- .caveid=ROSSY_CAVE2;
- end;
-}
-
-// Begin Cave Code
-008-3-0,35,26,0 script #RossyCave03 NPC_SUMMONING_CIRC,{
- if (RossyCave(.caveid))
- disablenpc instance_npcname(.name$);
- close;
-
-OnInit:
- disablenpc "#RossyCave03";
-OnInstanceInit:
- .distance=1;
- .caveid=ROSSY_CAVE3;
- end;
-}
-
-// Begin Cave Code
-008-3-0,198,193,0 script #RossyCave04 NPC_SUMMONING_CIRC,{
- if (RossyCave(.caveid))
- disablenpc instance_npcname(.name$);
- close;
-
-OnInit:
- disablenpc "#RossyCave04";
-OnInstanceInit:
- .distance=1;
- .caveid=ROSSY_CAVE4;
- end;
-}
-
-// Begin Cave Code
-008-3-0,133,200,0 script #RossyCave05 NPC_SUMMONING_CIRC,{
- if (RossyCave(.caveid))
- disablenpc instance_npcname(.name$);
- close;
-
-OnInit:
- disablenpc "#RossyCave05";
-OnInstanceInit:
- .distance=1;
- .caveid=ROSSY_CAVE5;
- end;
-}
-
-// Begin Cave Code
-008-3-0,27,104,0 script #RossyCave06 NPC_SUMMONING_CIRC,{
- if (RossyCave(.caveid))
- disablenpc instance_npcname(.name$);
- close;
-
-OnInit:
- disablenpc "#RossyCave06";
-OnInstanceInit:
- .distance=1;
- .caveid=ROSSY_CAVE6;
- end;
-}
-
-// Begin Cave Code
-008-3-0,31,192,0 script #RossyCave07 NPC_SUMMONING_CIRC,{
- if (RossyCave(.caveid))
- disablenpc instance_npcname(.name$);
- close;
-
-OnInit:
- disablenpc "#RossyCave07";
-OnInstanceInit:
- .distance=1;
- .caveid=ROSSY_CAVE7;
- end;
-}
-
-// Begin Cave Code
-008-3-0,165,26,0 script #RossyCave08 NPC_SUMMONING_CIRC,{
- if (RossyCave(.caveid))
- disablenpc instance_npcname(.name$);
- close;
-
-OnInit:
- disablenpc "#RossyCave08";
-OnInstanceInit:
- .distance=1;
- .caveid=ROSSY_CAVE8;
- end;
-}
-
-// Begin Cave Code
-008-3-0,201,69,0 script #RossyCave09 NPC_SUMMONING_CIRC,{
- if (RossyCave(.caveid))
- disablenpc instance_npcname(.name$);
- close;
-
-OnInit:
- disablenpc "#RossyCave09";
-OnInstanceInit:
- .distance=1;
- .caveid=ROSSY_CAVE9;
- end;
-}
-
-// --------------------------------------------------------------------
-008-3-0,92,90,0 script Juliet NPC_TANISHA,{
- // Check quest consistency
- // HurnscaldQuests_Rossy
- // (MAIN QUEST, CAVE CONTROL, INSTANCE CONTROL)
- .@q=getq(HurnscaldQuests_Rossy);
- .@q2=getq2(HurnscaldQuests_Rossy);
- .@inst=getq3(HurnscaldQuests_Rossy);
-
- if (instance_id() != .@inst)
- end;
- if (!.@q2)
- end;
-
- // A bug!
- if (.@q != 16) {
- disablenpc instance_npcname("Juliet", .@inst);
- end;
- }
-
- // Another bug!!
- if (!(.@q2 & ROSSY_BOSSCAVE)) {
- disablenpc instance_npcname("Juliet", .@inst);
- end;
- }
-
- // Prepare rewards
- .@rune=any(RunestoneUruz, RunestoneRaido, RunestoneThurisaz, RunestoneKaunaz, RunestoneDagaz, RunestonePeorth);
- .@gems=any(CrudeDiamond, CrudeRuby, CrudeEmerald, CrudeSapphire, CrudeTopaz, CrudeAmethyst);
- inventoryplace .@rune, 1, .@gems, 1;
-
- // Run epilogue
- mesn;
- mesq l("I heard some battle noises a few minutes ago. Are you here to save me?");
- next;
- select
- l("Of course I'm here to save you, Rossy sent me here!");
- mes "";
- mesn;
- mesc l("Juliet starts scavenging the fallen Golem.");
- mesq l("Mommy teached me about precious gemstones. This Golem has quite a few of them.");
- next;
- mesn;
- mesq l("Here you go!");
- getitem .@gems, 1;
- quest_item(.@rune, 1);
- quest_xp(.maxLevel, 100000);
- quest_jxp(.maxLevel, 10000);
- setq HurnscaldQuests_Rossy, 17, 0, .@inst;
- next;
- mesn;
- mesq l("Thanks for helping me... I'll be on my way now.");
- next;
- select
- l("Go safely!"),
- l("Do you need an escort?"),
- l("What was following you, anyway?");
- mes "";
- if (@menu == 2) {
- mesn;
- mesq l("I'll be fine, but thanks for the concern.");
- } else if (@menu == 3) {
- // This opens path for additional questline
- mesn;
- mesq l("Actually... I don't remember. I'm not sure why.");
- next;
- mesn;
- mesq l("But it was big and scary! I haven't seen it since I entered this cave, though...");
- next;
- mesn;
- mesq l("It probably went away after seeing your bravure, tee-hee!");
- next;
- mesn;
- mesq l("I must go now. I've already spent too much time here already.");
- }
- disablenpc instance_npcname("Juliet", .@inst);
- close;
-
-OnInit:
- disablenpc "Juliet";
- .distance=4;
- .maxLevel=80;
- end;
-
-OnInstanceInit:
- disablenpc instance_npcname("Juliet");
- .distance=4;
- .maxLevel=90;
- end;
-}
-
-