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/gemini.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/gemini.txt')
-rw-r--r-- | npc/014-2-2/gemini.txt | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/npc/014-2-2/gemini.txt b/npc/014-2-2/gemini.txt new file mode 100644 index 000000000..898d12e9e --- /dev/null +++ b/npc/014-2-2/gemini.txt @@ -0,0 +1,93 @@ +// TMW2 scripts. +// Authors: +// Jesusalva +// Description: +// Gemini Sisters Quest - Central Core + +034-1,0,0,0 script #Gemini NPC_HIDDEN,{ + end; + +OnCoreInit: + debugmes "CORE INIT, Inst = %d", instance_id(); + .@p = getcharid(1); + instance_attach($@VALIA_INST[.@p]); + debugmes "Attached to %d", $@VALIA_INST[.@p]; + debugmes "New Inst = %d", instance_id(); + @mystatus = 0; + sleep2(200); + if (!'STATUS) + 'STATUS = 1; + // FALLTHROUGH +OnCore: + if (!compare(getmap(), "val")) end; + .@p = getcharid(1); + instance_attach($@VALIA_INST[.@p]); + // 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, "#Gemini::OnCore"); + end; +} + + |