summaryrefslogblamecommitdiff
path: root/npc/008-1-1/cutscene.txt
blob: a9d39a6cfc6bdb7418eb227eb7dcfb386f45351a (plain) (tree)



































































































                                                                                        
                                            


                                                                                
                                         










































































                                                                                               
// 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;
}