summaryrefslogblamecommitdiff
path: root/npc/014-2-2/valia.txt
blob: e0968bc9b4bf5f463f4f4b3469d3ade1c3b002ef (plain) (tree)













































































































                                                                                                                                                                   
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Gemini Sisters Quest - Valia Gemini

function	script	GeminiCheck	{
    .@st = getarg(0, 0);
    if (getq(General_Narrator) < 16 || getq(HurnscaldQuest_Gemini) < .@st) {
        warp "Save", 0, 0;
        dispbottom l("You don't feel so well... And then, you're dead.");
        die();
        end;
    }
}

// Valia Gemini
014-2-2,36,22,0	script	Valia	NPC_RED_WIZARD_F,{
    GeminiCheck();
    .@q = getq(HurnscaldQuest_Gemini);
    mesn;
    mesq l("Greetings, adventurer. I am Valia Gemini, owner of this abode.");
    next;
    mesn;
    mesq l("I usually don't let anyone in, but I had to make an exception for the likes of you.");
    next;
    mesn;
    mesq l("You see, I have a sister. Luvia Gemini. Very talented, but unfortunately, not enough to prevent being captured and brainwashed by Isbamuth.");
    next;
    mesn;
    mesq l("I am sure you already fought him. And survived, too, apparently. Help her, and I will reward your efforts appropriately.");
    next;
    mesn;
    mesq l("You can bring up to 3 other friends with you, but they must be on the same party as you and you must be the party leader.");
    next;
    select
        l("I'm not interested, sorry."),
        l("Why don't you go yourself?"),
        l("Alright, I will help.");
    mes "";
    switch (@menu) {
    case 1:
        close;
    case 2:
        mesn;
        mesq l("Because Isbamuth is tracking me? It would be pointless if he noticed. If you can't even understand this, maybe I overestimated you, after all...");
        close;
    }
    // You accepted the quest
    mesn;
    // ...But you lack a party
    if (getcharid(1) <= 0) {
	    mesq l("You don't have a party. You're useless to me.");
        close;
    }
    // ...But you are not the leader
    if (strcharinfo(0) != getpartyleader(getcharid(1))) {
	    mesq l("Bring me %s or make your own party if you want to help me.", getpartyleader(getcharid(1)));
        close;
    }
    // ...But the party is too large
    getpartymember(getcharid(1));
	.@count = $@partymembercount;
    if (.@count > 4) {
	    mesq l("Your party is too big. Discretion is a key if we want to succeed.");
        close;
    }
    // Alright.
    mesq l("Good. I hope you have stocked everything. The time limit is 4 hours.");
    mesc l("Are you and your party ready?"), 1;
    if (askyesno() != ASK_YES)
        close;

    mesn;
    mesq l("Good. Here, take this key and hide it.");
    compareandsetq HurnscaldQuest_Gemini, 0, 1;

    // Create instance
    .@p=getcharid(1);
	.@inst = instance_create("Gemini "+.@p, .@p, IOT_PARTY);

    // If it worked then setup
    if (.@inst >= 0) {
        // Attach maps
        instance_attachmap("034-1", .@inst, false, "val1@"+.@p);
        instance_attachmap("034-2", .@inst, false, "val2@"+.@p);
        instance_attachmap("034-3", .@inst, false, "val3@"+.@p);
        instance_attachmap("034-4", .@inst, false, "val4@"+.@p);
        // Save the instance ID
        $@VALIA_INST[.@p]=.@inst;
        $@VALIA_MAP$[.@p]="";
    }

    // Instance lasts 4 hours - your time limit
	instance_set_timeout(14400, 14400, $@VALIA_INST[.@p]);

    // Do we need to initialize or are we just restarting?
    if (.@inst >= 0)
    	instance_init(.@inst);

    // Warp everyone and add timers
    //partytimer("008-0", 1000, "Party Master::OnStart", getcharid(1));
    warpparty("val1@"+.@p, 24, 24, getcharid(1), "014-2-2", true);

    close;
OnInit:
    .distance=4;
    end;
}