summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2021-12-05 23:45:43 -0300
committerJesusaves <cpntb1@ymail.com>2021-12-05 23:45:43 -0300
commit3b9c4dd1f7ab8f490f23a6c53770e6f4c3516d7f (patch)
tree077fba7afe04244cafbb52d225048d0394751557
parent13ba0d77a77855bb0555b9a999579e148dfac378 (diff)
downloadserverdata-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.
-rw-r--r--db/pre-re/mob_db.conf4
-rw-r--r--npc/080-1/final.txt30
-rw-r--r--npc/annuals/xmas/2021.txt67
3 files changed, 97 insertions, 4 deletions
diff --git a/db/pre-re/mob_db.conf b/db/pre-re/mob_db.conf
index 6b418c28..17879965 100644
--- a/db/pre-re/mob_db.conf
+++ b/db/pre-re/mob_db.conf
@@ -7121,13 +7121,13 @@ mob_db: (
SpriteName: "SnowmanBoss"
Name: "Der Schneemann"
Lv: 100
- Hp: 5000
+ Hp: 35000
Sp: 0
Exp: 2897
JExp: 689
AttackRange: 3
Attack: [60, 80]
- Def: 5
+ Def: 20
Mdef: 20
Stats: {
Str: 15
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);