diff options
author | Jesusaves <cpntb1@ymail.com> | 2021-12-07 22:19:02 -0300 |
---|---|---|
committer | Jesusaves <cpntb1@ymail.com> | 2021-12-07 22:19:02 -0300 |
commit | 2f729b93cbae81e9476f04c44890feb4e5f8cf3d (patch) | |
tree | 503fd0b70a9e91c90d762dc690166b7873f0a151 | |
parent | 1d7b5deb0ac22a61e408e3c5502a327434841686 (diff) | |
download | serverdata-2f729b93cbae81e9476f04c44890feb4e5f8cf3d.tar.gz serverdata-2f729b93cbae81e9476f04c44890feb4e5f8cf3d.tar.bz2 serverdata-2f729b93cbae81e9476f04c44890feb4e5f8cf3d.tar.xz serverdata-2f729b93cbae81e9476f04c44890feb4e5f8cf3d.zip |
Initial draft version of the ending cutscene.
The only real cutscene I added for this event. Sorry.
-rw-r--r-- | db/constants.conf | 2 | ||||
-rw-r--r-- | npc/080-1/final.txt | 80 | ||||
-rw-r--r-- | npc/080-3/cutscene.txt | 1 |
3 files changed, 77 insertions, 6 deletions
diff --git a/db/constants.conf b/db/constants.conf index 822f6ebe..b7554e2c 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -3189,6 +3189,8 @@ more than one separator can be used in a row (so 12_3___456 is illegal). NPC436:436 NPC437:437 NPC438:438 + NPC439:439 + NPC440:440 NPC32767:32767 // NPCs decently named diff --git a/npc/080-1/final.txt b/npc/080-1/final.txt index f6837f0e..b3cd0955 100644 --- a/npc/080-1/final.txt +++ b/npc/080-1/final.txt @@ -16,12 +16,16 @@ // - Oh, and in 2016, Gak went to visit Asphodel again. 080-1,98,41,0 script Alissa#ED2 NPC_ALISSA,{ + if ('XMAS21ENDING) { + npctalkonce l("Thanks for bringing Gorrik back to me."); + } end; OnInstanceInit: disablenpc instance_npcname(.name$); end; OnInit: .distance=4; + .speed=125; /* I thought in making a shop here */ /* Valentine Dress, Love Potions, Pinkie Crystal... */ /* Would be confusing and bad, so removed. */ @@ -29,14 +33,78 @@ OnInit: } 080-1,97,41,0 script Gak#X21 NPC_GAK,{ - // 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; + if (!'XMAS21FINAL) + end; + if (!X21ED1_CLEAR()) + end; + if ('XMAS21CUTSCENE) + end; + if ('XMAS21ENDING) { + openshop; + closedialog; + end; + } + .@gak$=instance_npcname("Gak#X21"); + .@ali$=instance_npcname("Alissa#ED2"); + .@m$=getmap(); + + // We're now running a cutscene, lock NPCs + 'XMAS21CUTSCENE=true; + + // Position the NPCs based on Gak's maximum distance and visible window + unitwarp(getnpcid(.@ali$), .@m$, 97, 60); + sleep2(100); + npcwalkto(97, 42, .@ali$); + // Look at direction 4: Automatic? + sleep2(150*11); // Presumed at 150ms/tile, let she get in player window + npctalk l("GAK!"), .@ali$; + sleep2(300); + npctalk l("Alissa! You... You are alive!"), .@gak$; + sleep2(2000); + npctalk l("Of course I am alive, after you did that... That stupid thing! "), .@ali$; + sleep2(2000); + npctalk l("Did you forgot I can defend myself?!"), .@ali$; + sleep2(2000); + npctalk l("Well... No... But... Yes... I mean..."), .@gak$; + sleep2(1000); + npctalk l("Stop giving excuses, I don't want to hear them!"), .@ali$; + sleep2(2000); + npctalk l("Alissa..."), .@gak$; + sleep2(1000); + npctalk l("You idiot, did you really think I would be happy with you giving your life recklessy like that for me??"), .@ali$; + sleep2(2000); + npctalk l("..."), .@gak$; + sleep2(1000); + npctalk l("Also, where did you even got that ugly blinking mask."), .@ali$; + sleep2(2000); + npctalk l("You and me, we have a lot to talk."), .@ali$; + sleep2(2000); + npctalk l("Yes Alissa..."), .@gak$; + sleep2(2000); + // Let Alissa direct to her final position + npcwalkto(98, 41, .@ali$); + if (X21TYPE() == IOT_PARTY) + npctalk l("Thanks %s. I may have now an earful to listen, but... I'm really thankful.", strcharinfo(1)), .@gak$; + else + npctalk l("Thanks %s. I may have now an earful to listen, but... I'm really thankful.", strcharinfo(0)), .@gak$; + sleep2(3000); + npctalk l("Here, you can have this %s which Easter Bunny gave me.", b(l("Carrot"))), .@gak$; + sleep2(3000); + npctalk l("He said I could trade for a rare or even level up if I gave it to GM Santa..."), .@gak$; + sleep2(3000); + npctalk l("But Alissa is worth way more than that. You can have it."), .@gak$; + sleep2(2000); + if (X21TYPE() == IOT_PARTY) { + npctalk l("%s, in the name of %s, you should take it.", strcharinfo(0), strcharinfo(1)), .@gak$; + sleep2(2000); + } + + // FIXME: getitem Carrot, 1; + // We're done + 'XMAS21CUTSCENE=false; end; + OnInit: .distance=4; setarray .prizes, BlinkingEvil, BlinkingEvilRed, BlinkingEvilBlue, diff --git a/npc/080-3/cutscene.txt b/npc/080-3/cutscene.txt index 5cb03656..b4a2d452 100644 --- a/npc/080-3/cutscene.txt +++ b/npc/080-3/cutscene.txt @@ -119,6 +119,7 @@ OnInit: function rushed; function ending; if (!isChristmas21()) end; + if (!X21BC1_CLEAR()) end; if (.stable == 6) ending(); if (.stable >= 7) end; mesn; |