diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-12-05 23:45:43 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-12-05 23:45:43 -0300 |
commit | 3b9c4dd1f7ab8f490f23a6c53770e6f4c3516d7f (patch) | |
tree | 077fba7afe04244cafbb52d225048d0394751557 /npc | |
parent | 13ba0d77a77855bb0555b9a999579e148dfac378 (diff) | |
download | serverdata-3b9c4dd1f7ab8f490f23a6c53770e6f4c3516d7f.tar.gz serverdata-3b9c4dd1f7ab8f490f23a6c53770e6f4c3516d7f.tar.bz2 serverdata-3b9c4dd1f7ab8f490f23a6c53770e6f4c3516d7f.tar.xz serverdata-3b9c4dd1f7ab8f490f23a6c53770e6f4c3516d7f.zip |
Initial version of the Three Guardians which some pink-booted wizard set.
Diffstat (limited to 'npc')
-rw-r--r-- | npc/080-1/final.txt | 30 | ||||
-rw-r--r-- | npc/annuals/xmas/2021.txt | 67 |
2 files changed, 95 insertions, 2 deletions
diff --git a/npc/080-1/final.txt b/npc/080-1/final.txt index 1bb5d0a0..e73689b7 100644 --- a/npc/080-1/final.txt +++ b/npc/080-1/final.txt @@ -11,10 +11,17 @@ OnInstanceInit: end; OnInit: .distance=4; + /* I thought in making a shop here */ + /* Valentine Dress, Love Potions, Pinkie Crystal... */ + /* Would be confusing and bad, so removed. */ end; } 080-1,97,41,0 script Gak#X21 NPC183,{ + // FIXME: Cutscene + // FIXME: Enablenpc Alissa#ED2 + // FIXME: Do not repeat cutscene if quest once completed + // FIXME: Do not repeat cutscene if Alissa is enabled? openshop; closedialog; end; @@ -75,12 +82,31 @@ OnPayFunds: // But then, Gak *did* "kidnap" a zealite specialist, right? 080-1,83,136,0 script #X21BarrierF NPC_HIDDEN,3,0,{ - if (!'XMAS21FINAL) + if ('XMAS21FINAL) + end; + + if (mobcount(getmap(), "#X21BarrierF::OnKil")) { dispbottom strcharinfo(0) + " : " + l("This clearly is not a real gate; Most likely an illusion to prevent access. I should be able to dispel it by killing the guardians."); - // TODO: Verify again if all guardians are dead + end; + } + delcells("X21LF@"+X21ID()); + specialeffect(FX_MAGIC_WICKED_SPAWN, AREA, getcharid(3)); + getitem AquaTicket, X21_TICKET_BOSS; + 'XMAS21FINAL = true; + maptimer2(getmap(), 10, "#X21BarrierF::OnSesame"); end; OnInit: .distance=1; end; +OnSesame: + dispbottom l("Without the guardians, the illusion is just that: An illusion. The path is clear."); + getitem AquaTicket, X21_TICKET_SUPPORT; + getexp X21_EXP_PUZZLE, 0; + end; +OnKil: + mapannounce getmap(), "One of the guardians has been eliminated by "+strcharinfo(0), 0; + getitem AquaTicket, X21_TICKET_SUPPORT + 1; + X21INIT(); + end; } diff --git a/npc/annuals/xmas/2021.txt b/npc/annuals/xmas/2021.txt index 8766cdd5..70b2b7da 100644 --- a/npc/annuals/xmas/2021.txt +++ b/npc/annuals/xmas/2021.txt @@ -127,6 +127,73 @@ function script X21INIT { "#XMAS21Core"::spawn(Pinkie, 18, .@mapd$); "#XMAS21Core"::spawn(Hyvern, 3, .@mapd$); + /* The Three Guardians */ + .@bon = 0; + if (X21TYPE() == IOT_PARTY) + .@bon = 20000; + + .@mg = monster(.@mapd$, 43, 47, "Der Schneemann (Alpha)", SnowmanBoss, 1, "#X21BarrierF::OnKil"); + .@hp = .@bon + rand2(35000, 47000); + setunitdata(.@mg, UDT_MAXHP, .@hp); + setunitdata(.@mg, UDT_HP, .@hp); + setunitdata(.@mg, UDT_ATKRANGE, 2); + setunitdata(.@mg, UDT_ATKMIN, 30); + setunitdata(.@mg, UDT_ATKMAX, 40); + + .@mg = monster(.@mapd$, 144, 154, "Der Schneemann (Beta)", SnowmanBoss, 1, "#X21BarrierF::OnKil"); + .@hp = .@bon + rand2(35000, 47000); + setunitdata(.@mg, UDT_MAXHP, .@hp); + setunitdata(.@mg, UDT_HP, .@hp); + setunitdata(.@mg, UDT_ATKRANGE, 2); + setunitdata(.@mg, UDT_ATKMIN, 30); + setunitdata(.@mg, UDT_ATKMAX, 40); + + .@mg = monster(.@mapd$, 42, 147, "Der Schneemann (Gamma)", SnowmanBoss, 1, "#X21BarrierF::OnKil"); + .@hp = .@bon + rand2(35000, 47000); + setunitdata(.@mg, UDT_MAXHP, .@hp); + setunitdata(.@mg, UDT_HP, .@hp); + setunitdata(.@mg, UDT_ATKRANGE, 2); + setunitdata(.@mg, UDT_ATKMIN, 30); + setunitdata(.@mg, UDT_ATKMAX, 40); + + /* The Three Guardians Friends */ + if (X21TYPE() == IOT_PARTY) { .@g = 12; } else { .@g = 7; } + + freeloop(true); + for (.@i=0; .@i < .@g; .@i++) { + .@mg = areamonster(.@mapd$, 30, 38, 50, 51, "Snowman (Alpha)", Snowman, 1); + .@hp = rand2(3500, 5700); + .@ak = rand2(70, 120); + setunitdata(.@mg, UDT_MAXHP, .@hp); + setunitdata(.@mg, UDT_HP, .@hp); + setunitdata(.@mg, UDT_ATKRANGE, 1); + setunitdata(.@mg, UDT_ATKMIN, .@ak); + setunitdata(.@mg, UDT_ATKMAX, .@ak+20); + } + + for (.@i=0; .@i < .@g; .@i++) { + .@mg = areamonster(.@mapd$, 30, 38, 50, 51, "Snowman (Beta)", Snowman, 1); + .@hp = rand2(3500, 5700); + .@ak = rand2(70, 120); + setunitdata(.@mg, UDT_MAXHP, .@hp); + setunitdata(.@mg, UDT_HP, .@hp); + setunitdata(.@mg, UDT_ATKRANGE, 1); + setunitdata(.@mg, UDT_ATKMIN, .@ak); + setunitdata(.@mg, UDT_ATKMAX, .@ak+20); + } + + for (.@i=0; .@i < .@g; .@i++) { + .@mg = areamonster(.@mapd$, 30, 38, 50, 51, "Snowman (Gamma)", Snowman, 1); + .@hp = rand2(3500, 5700); + .@ak = rand2(70, 120); + setunitdata(.@mg, UDT_MAXHP, .@hp); + setunitdata(.@mg, UDT_HP, .@hp); + setunitdata(.@mg, UDT_ATKRANGE, 1); + setunitdata(.@mg, UDT_ATKMIN, .@ak); + setunitdata(.@mg, UDT_ATKMAX, .@ak+20); + } + freeloop(false); + } if (instance_id() >= 0) instance_set_timeout(1800, 1800); |