summaryrefslogtreecommitdiff
path: root/npc/014-2-2/valia.txt
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2022-04-28 16:11:01 -0300
committerJesusaves <cpntb1@ymail.com>2022-04-28 16:11:01 -0300
commitd451a097f3ddc03c2552a8962fe86316440884ec (patch)
tree387c55e55f6371d4fc42b0e7050b9c78f8fa459d /npc/014-2-2/valia.txt
parent99e6981142744c1853c3c44a1cd289426313a8a8 (diff)
downloadserverdata-d451a097f3ddc03c2552a8962fe86316440884ec.tar.gz
serverdata-d451a097f3ddc03c2552a8962fe86316440884ec.tar.bz2
serverdata-d451a097f3ddc03c2552a8962fe86316440884ec.tar.xz
serverdata-d451a097f3ddc03c2552a8962fe86316440884ec.zip
Note: instance_attach() can't deal with instance variables
Diffstat (limited to 'npc/014-2-2/valia.txt')
-rw-r--r--npc/014-2-2/valia.txt85
1 files changed, 8 insertions, 77 deletions
diff --git a/npc/014-2-2/valia.txt b/npc/014-2-2/valia.txt
index 892f5641f..5d02af384 100644
--- a/npc/014-2-2/valia.txt
+++ b/npc/014-2-2/valia.txt
@@ -18,6 +18,7 @@ function script GeminiCheck {
die();
end;
}
+ return;
}
// You killed a mob
@@ -117,7 +118,7 @@ function script GeminiFail {
mesq l("Good. I hope you have stocked everything. The time limit is 4 hours.");
// Only first attempt is free - all others are charged
- if (getq(HurnscaldQuest_Gemini)) {
+ if (getq(HurnscaldQuest_Gemini) && !is_gm()) {
next;
mesn;
mesq l("Actually, I need help with reagents this time. Bring me a %s and a %s and I'll gladly warp you... again.", getitemlink(GemPowder), getitemlink(EverburnPowder));
@@ -135,11 +136,12 @@ function script GeminiFail {
}
// Handle first attempt
+ clear;
mesn;
mesq l("Good. Here, take this key and hide it. I will quickly brief you:");
mes "";
mesc l(".:: GEMINI ASSASSINS QUEST ::."), 3;
- mesc ("Recommended Level: %d+", 85);
+ mesc l("Recommended Level: %d+", 85);
mes "";
mes l("- The goal is to rescue Luvia from Isabamuth. She has been ##Bbrainwashed##b.");
mes l("- Luvia is a powerful mage and Isbamuth is watching, so teleporting directly would be risky.");
@@ -149,6 +151,8 @@ function script GeminiFail {
mesc l("- If you fail, you'll need to pay me ingredients to try again!"), 1;
mes "";
mesc l("Good luck!");
+ next;
+ closeclientdialog;
compareandsetq HurnscaldQuest_Gemini, 0, 1;
@@ -176,85 +180,12 @@ function script GeminiFail {
instance_init(.@inst);
// Warp everyone and add timers
- partytimer("014-2-2", 1000, "Valia::OnCoreInit", getcharid(1));
+ partytimer("014-2-2", 10, "#Gemini::OnCoreInit", getcharid(1));
+ sleep2(100);
warpparty("val1@"+.@p, 24, 24, getcharid(1), "014-2-2", true);
close;
// Macros
-OnCoreInit:
- @mystatus = 0;
- if (!'STATUS)
- 'STATUS = 1;
-OnCore:
- if (!compare(getmap(), "val")) end;
- .@p = getcharid(1);
- // Always true on first interaction
- // This handles new stages for person
- if (@mystatus != 'STATUS) {
- switch ('STATUS) {
- case 1: // Quest initiated
- @mystatus = 1;
- // Spawn monsters
- areamonster("val1@"+.@p, 20, 20, 60, 60, strmobinfo(1, GreenSlime), GreenSlime, (BaseLevel/15), "Valia::OnGSlime");
- areamonster("val1@"+.@p, 20, 20, 70, 60, strmobinfo(1, LogHead), LogHead, (BaseLevel/15), "Valia::OnLHead");
- areamonster("val1@"+.@p, 20, 20, 70, 60, strmobinfo(1, ForestMushroom), ForestMushroom, (BaseLevel/12), "Valia::OnFShroom");
- areamonster("val1@"+.@p, 20, 20, 70, 60, strmobinfo(1, RedMushroom), RedMushroom, 1+(BaseLevel/30), "Valia::OnRShroom");
- break;
- case 2: // Looking for a runestone
- break;
- case 3: // Runestone was found
- getexp 8132, 657;
- break;
- case 4: // Desert unlocked, but no clue on what to do
- dispbottom l("You hear a noise from distance.");
- // Spawn monsters
- areamonster("val1@"+.@p, 100, 20, 170, 60, strmobinfo(1, CaveSnake), CaveSnake, 2, "Valia::OnCSnake");
- areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, MagicGoblin), MagicGoblin, 1, "Valia::OnMGoblin");
- // These refuse to respawn but are numerous
- // Thus far, the quest is still easy. But soon it won't be.
- areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, MountainSnake), MountainSnake, 1+(BaseLevel/24));
- areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, DarkLizard), DarkLizard, 1+(BaseLevel/20));
- areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, WickedMushroom), WickedMushroom, 1+(BaseLevel/32));
- areamonster(getmap(), 100, 20, 170, 60, strmobinfo(1, EliteDuck), EliteDuck, 1);
- break;
- case 6: // Passage Open
- if (countitem(SealedSoul))
- delitem SealedSoul, countitem(SealedSoul);
- dispbottom l("You hear waterfall opening in distance.");
- // FALLTHROUGH
- case 5: // JackO shows up
- getexp 32000, 1400;
- break;
- case 7: // Ambushed & Captured
- @lockpicks=false;
- // Prision Area
- .@m=any(Bandit, RobinBandit, SleepingBandit);
- areamonster("val2@"+.@p, 52, 93, 70, 98, strmobinfo(1, .@m), .@m, 1);
- .@m=any(Bandit, RobinBandit, SleepingBandit);
- areamonster("val2@"+.@p, 52, 93, 70, 98, strmobinfo(1, .@m), .@m, 1);
- // Ante-chamber
- areamonster("val2@"+.@p, 69, 96, 85, 107, strmobinfo(1, Bandit), Bandit, 1);
- .@m=any(Bandit, RobinBandit, SleepingBandit, RobinBandit);
- areamonster("val2@"+.@p, 69, 96, 85, 107, strmobinfo(1, .@m), .@m, 1);
- // Reception & Lord Desk
- areamonster("val2@"+.@p, 50, 30, 80, 75, strmobinfo(1, Bandit), Bandit, (BaseLevel/15));
- areamonster("val2@"+.@p, 50, 30, 80, 75, strmobinfo(1, RobinBandit), RobinBandit, (BaseLevel/25));
- // Whole Map
- areamonster("val2@"+.@p, 20, 24, 78, 72, strmobinfo(1, Archant), Archant, (BaseLevel/8));
- // Great Hall
- areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, RobinBandit), RobinBandit, (BaseLevel/22));
- areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, Assassin), Assassin, (BaseLevel/20));
- areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, Bandit), Bandit, (BaseLevel/18));
- areamonster("val2@"+.@p, 25, 24, 50, 45, strmobinfo(1, HoodedNinja), HoodedNinja, 1);
- break;
- case 8: // Key retrieved
- getexp 128000, 2000;
- break;
- }
- }
- addtimer(5000, "Valia::OnCoreInit");
- end;
-
OnGSlime:
fix_mobkill(GreenSlime);
.@p = getcharid(1);