diff options
author | Jesusaves <cpntb1@ymail.com> | 2022-04-28 16:11:01 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2022-04-28 16:11:01 -0300 |
commit | d451a097f3ddc03c2552a8962fe86316440884ec (patch) | |
tree | 387c55e55f6371d4fc42b0e7050b9c78f8fa459d /npc/014-2-2/valia.txt | |
parent | 99e6981142744c1853c3c44a1cd289426313a8a8 (diff) | |
download | serverdata-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.txt | 85 |
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); |