diff options
Diffstat (limited to 'npc/008-1-1/cutscene.txt')
-rw-r--r-- | npc/008-1-1/cutscene.txt | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/npc/008-1-1/cutscene.txt b/npc/008-1-1/cutscene.txt new file mode 100644 index 00000000..a9d39a6c --- /dev/null +++ b/npc/008-1-1/cutscene.txt @@ -0,0 +1,180 @@ +// TMW Script +// Author: +// Jesusalva +// Description: +// Cutscenes for Main Story + +008-1-1,42,63,0 script #MQ2Cutscene NPC_HIDDEN,0,1,{ + end; + +OnTouch: + .@q=getq(General_Narrator); + if (.@q != 2) + end; + if (getmap() != "008-1-1") + end; + // Cutscene time! + // m (from main quest) 02 map 1 + .@mapn$="m021@"+getcharid(0); + .@mapx$="m022@"+getcharid(0); + // Build instance if it doesn't exists or has been reallocated + // (This only happens if you escape the map - edge case scenarios) + if (instanceowner(@mainquestinst) != getcharid(3)) { + @mainquestinst = instance_create("m102@a"+getcharid(0), getcharid(3), IOT_CHAR); + instance_attachmap("008-1-1", @mainquestinst, false, .@mapn$); + instance_attachmap("008-2-32", @mainquestinst, false, .@mapx$); + // Instance lasts 60 minutes + instance_set_timeout(3600, 3600, @mainquestinst); + instance_init(@mainquestinst); + } else { + // Restart instance timer if it already exists + instance_set_timeout(3600, 3600, @mainquestinst); + } + getmapxy(.@m$, .@x, .@y, 0); + warp(.@mapn$, .@x, .@y); + addtimer(500, instance_npcname(.name$, @mainquestinst)+"::OnBegin"); + end; + +OnBegin: + .@n$=instance_npcname(.name$); + .@mc$=instance_npcname("Morcant"); + + // Freeze player + // (M+ may render this incorrectly but it is not my job to care with that) + setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_MOVE, true); + sc_start(SC_STUN, 360000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK); + + // Begin moving Morcant + npcwalkto(58, 64, .@mc$); + sleep2(3000); + getmapxy(.@m$, .@x, .@y, 0); + npcwalkto(.@x + 1, .@y, .@mc$); + sleep2(1000); + unitwarp(getnpcid(.@mc$), .@m$, .@x + 1, .@y); // FIXME PLACEHOLDER + npctalk l("Hoho!"), .@mc$; + sleep2(2500); + npctalk l("Look what the shore brought me!"), .@mc$; + sleep2(3000); + npctalk l("Rarely anyone uses this port."), .@mc$; + sleep2(3000); + npctalk l("...Well, anyone adhering to the law, at least! Hahahah!"), .@mc$; + sleep2(3000); + npctalk l("Anyway, come in! You must be hungry."), .@mc$; + sleep2(3000); + npcwalkto(51, 57, .@mc$); + sleep2(1000); + sc_end(SC_STUN); + setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_MOVE, false); + dispbottom col(l("1-1. Follow Morcant into his house."), 1); + sleep2(500); + .@mapx$="m022@"+getcharid(0); + unitwarp(getnpcid(.@mc$), .@mapx$, 40, 24); + end; +} + +// Series 2 +008-1-1,51,58,0 script #MQ2Cutscene2 NPC_HIDDEN,0,1,{ + end; +OnTouch: + if (getmap() == "008-1-1") end; + .@n$=instance_npcname(.name$); + .@mapx$="m022@"+getcharid(0); + warp(.@mapx$, 40, 36); + addtimer(3000, .@n$+"::OnStunlock"); + end; + +OnStunlock: + .@n$=instance_npcname(.name$); + addtimer(300, .@n$+"::OnBegin"); + // Freeze player + // (M+ may render this incorrectly but it is not my job to care with that) + setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_MOVE, true); + sc_start(SC_STUN, 360000, 1, 10000, SCFLAG_NOAVOID|SCFLAG_FIXEDTICK); + end; + +OnBegin: + .@n$=instance_npcname(.name$); + .@mc$=instance_npcname("Morcant"); + .@tm$=instance_npcname("Thamas"); + npctalk l("Welcome to my humble abode."), .@mc$; + sleep2(500); + npctalk l("Who is that fellow?"), .@tm$; + sleep2(2500); + npctalk l("Thamas, this is a stowaway who reached here from Artis."), .@mc$; + sleep2(2500); + npctalk l("Yes, I remember."), .@tm$; + sleep2(3000); + npctalk l("Anyway, I assume you're trying to get into Hurnscald?"), .@mc$; + sleep2(2100); + npctalk l("Really? You should be careful, then."), .@tm$; + sleep2(2500); + npctalk l("Hurnscald is under the domain of the Brotherhood."), .@tm$; + sleep2(3000); + npctalk l("Shaddy fellas, I do not trust them the sightliest."), .@tm$; + sleep2(3500); + npctalk l("*ahem*!"), .@mc$; + sleep2(2000); + npctalk l("Hurnscald is just east of here."), .@mc$; + sleep2(2000); + npctalk l("Keep following the road, you can't miss it."), .@mc$; + sleep2(3000); + npctalk l("Do not venture into south, though."), .@mc$; + sleep2(2000); + npctalk l("It is haunted."), .@mc$; + sleep2(2500); + //atcommand("@refresh"); // FIXME -> Hercules upstream broke @refresh + // TODO FIXME: Check if x-1 is a collision, move to x+1 if it is + getmapxy(.@m$, .@x, .@y, 0); + npcwalkto(.@x - 1, .@y, .@mc$); + sleep2(1000); + unitwarp(getnpcid(.@mc$), .@m$, .@x - 1, .@y); // FIXME PLACEHOLDER + npctalk col(l("*Hey, psst.*"), 9), .@mc$; + sleep2(1000); + npctalk col(l("*I assume you're here for the Brotherhood, right?*"), 9), .@mc$; + sleep2(2500); + npctalk col(l("*Reaching Hurnscald, look for a girl called Airlia.*"), 9), .@mc$; + sleep2(2500); + npctalk col(l("*Whisper her the... password, and she'll lead you to Jonatas.*"), 9), .@mc$; + sleep2(3100); + npctalk col(l("*I don't know why Sophiahalla sent you here...*"), 9), .@mc$; + sleep2(2200); + npctalk col(l("*But I am just a retired merchant, hohoho!*"), 9), .@mc$; + sleep2(2200); + npctalk l("Anyway, that's it. Here, have a bowl of stew, Morcant special!"), .@mc$; + sleep2(2500); + npctalk l("I'll be back to the port, so see you later!"), .@mc$; + npcwalkto(40, 38, .@mc$); + sleep2(2000); + .@mapx$="m021@"+getcharid(0); + unitwarp(getnpcid(.@mc$), .@mapx$, 51, 58); + sc_end(SC_STUN); + setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM|PCBLOCK_MOVE, false); + sleep2(1000); + getmapxy(.@m$, .@x, .@y, 0); + warp "008-2-32", .@x, .@y; + getitembound SailorStew, 1, IBT_ACCOUNT; + setq General_Narrator, 3; + end; +} + +// WHAT ARE YOU DOING +008-1-1,83,65,0 script #MQ2CutsceneWAYD NPC_HIDDEN,0,10,{ + end; + +OnTouch: + if (getmap() == "008-1-1") end; + // What are you doing?! + slide 51, 63; + mesc l("I really should follow Morcant into his house."); + close; +} + +008-2-32,40,37,0 script #MQ2Cutscene2WAYD NPC_HIDDEN,1,0,{ + end; +OnTouch: + if (getmap() == "008-2-32") end; + slide 40, 36; + dispbottom l("But you just arrived! Seriously. Stop."); + end; +} + |