diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-11-29 00:16:38 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-11-29 00:16:38 -0300 |
commit | 3fef87a0b577ba53c020da1fc647b17f6ca6740b (patch) | |
tree | 9708114c5e657fb37c0a720335faacd81ed7c770 | |
parent | e35411d8099046cb7221ff2d9546fe3e97eec9c6 (diff) | |
download | serverdata-3fef87a0b577ba53c020da1fc647b17f6ca6740b.tar.gz serverdata-3fef87a0b577ba53c020da1fc647b17f6ca6740b.tar.bz2 serverdata-3fef87a0b577ba53c020da1fc647b17f6ca6740b.tar.xz serverdata-3fef87a0b577ba53c020da1fc647b17f6ca6740b.zip |
Techinically, you can now advance to Puzzle Area 3.
Still need some real explanation about Puzzle Areas 1 and 2, but well.
One thing at a time, eh?
-rw-r--r-- | db/constants.conf | 1 | ||||
-rw-r--r-- | npc/081-1/dungeon.txt | 2 | ||||
-rw-r--r-- | npc/081-2/logic.txt | 7 | ||||
-rw-r--r-- | npc/annuals/xmas/2021.txt | 23 |
4 files changed, 29 insertions, 4 deletions
diff --git a/db/constants.conf b/db/constants.conf index 3540f640..16941536 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -3381,6 +3381,7 @@ more than one separator can be used in a row (so 12_3___456 is illegal). comment__: "Christmas 2021 Constants" X21_ACCEPTED: 1 + X21_CANDLES: 64 X21_PLANTPUZZLE: 128 X21_LEVEL3: 256 X21_RIDDLEDONE: 512 diff --git a/npc/081-1/dungeon.txt b/npc/081-1/dungeon.txt index d0d87e18..fd125dd0 100644 --- a/npc/081-1/dungeon.txt +++ b/npc/081-1/dungeon.txt @@ -19,7 +19,7 @@ OnTouch: 081-1,64,34,0 script #X21_SIGN01 NPC_NO_SPRITE,{ if (!isChristmas21()) end; - npctalk3 l("Northen Lights Dungeon - Form a party to join or enter alone. Be careful!"); + npctalk3 l("Northern Lights Dungeon - Form a party to join or enter alone. Be careful!"); end; OnInit: .distance=5; diff --git a/npc/081-2/logic.txt b/npc/081-2/logic.txt index bf0e2063..2bb05cce 100644 --- a/npc/081-2/logic.txt +++ b/npc/081-2/logic.txt @@ -22,6 +22,7 @@ OnTouch: /* Candle Puzzle */ 081-2,130,255,0 script #X21Candle_0 NPC_NO_SPRITE,{ if (!countitem(ThermalNapalm)) { dispbottom(l("I don't have anything to lit this candle.")); end; } + if ('XMAS21CANDLE) end; // Extract ID .@n$=strnpcinfo(2, "_-1"); explode(.@ni$, .@n$, "_"); @@ -47,7 +48,11 @@ OnTouch: setnpcdisplay(instance_npcname(strnpcinfo(0)), (@menuret ? (@menuret == 1 ? NPC436 : NPC437) : NPC_NO_SPRITE)); //debugmes "Sprite %s (%s) to %d", strnpcinfo(0), instance_npcname(strnpcinfo(0)), (@menuret ? (@menuret == 1 ? NPC436 : NPC437) : NPC_NO_SPRITE); // What about 374 instead of 437? - // TODO: Verify the puzzle state + // Unlock the gate once the puzzle is complete + if (X21CANDLE_CHECK()) { + delcells("X21L1@"+X21ID()); + specialeffect(FX_MAGIC_WICKED_SPAWN, AREA, getcharid(3)); + } closeclientdialog; close; OnInit: diff --git a/npc/annuals/xmas/2021.txt b/npc/annuals/xmas/2021.txt index 0562fb0d..8bc59d11 100644 --- a/npc/annuals/xmas/2021.txt +++ b/npc/annuals/xmas/2021.txt @@ -33,6 +33,24 @@ function script X21ED1_DOCLEAR { return; } +function script X21CANDLE_CHECK { + if ('XMAS21CANDLE) return false; + // NOTE: We could check here if player already finished this + // And skip the challenge after litting one candle? + if ('X21_CANDLE[0] != 'COLORCODE[0]) return false; + if ('X21_CANDLE[1] != 'COLORCODE[1]) return false; + if ('X21_CANDLE[2] != 'COLORCODE[2]) return false; + if ('X21_CANDLE[3] != 'COLORCODE[3]) return false; + if ('X21_CANDLE[4] != 'COLORCODE[4]) return false; + if ('X21_CANDLE[5] != 'COLORCODE[5]) return false; + // This instance challenge is over + 'XMAS21CANDLE = true; + // Record on player as well, just to be safe. + if (XMAS2021 & X21_CANDLES) return true; + XMAS2021 = (XMAS2021 | X21_CANDLES); + return true; +} + function script X21SEED_CHECK { /* Protip: You don't have to fill all spots * @@ -93,7 +111,7 @@ function script X21QUESTON { } function script X21INIT { - .@inst = instance_create("Northen Lights", X21ID(), X21TYPE()); + .@inst = instance_create("Northern Lights", X21ID(), X21TYPE()); // Instance must be created if (.@inst >= 0) { // We... Could use base name, actually, but whatever @@ -180,7 +198,8 @@ function script X21INIT { 081-3 mapflag zone MMO 081-3 mapflag nosave 081-1,68,31 -- script #XMAS21Core NPC_HIDDEN,{ +/* Script Core */ +080-1,0,0,0 script #XMAS21Core NPC_HIDDEN,{ end; // "#XMAS21Core"::spawn(MonsterID, {Amount=1, {Map=this}}) |