summaryrefslogblamecommitdiff
path: root/npc/032-3/episode.txt
blob: 1c01139ab828a5d38e26984bd3fb182619159c05 (plain) (tree)
1
2
3
4
5
6
7
8
9
10





                                 



                                                                        
                 



                                             
 



                                        
       
                                
                      














































                                                        

 


























































































                                                                                                  
 




























































































































































































                                                                                                  
 
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Part of the Doctor's Quest.

032-3,121,70,0	script	#CryptEP	NPC_HIDDEN,0,0,{
    end;
OnTouch:
    .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
    if (.@q >= 2)
        warp "032-4", 40, 74;
    else
        dispbottom l("This door is locked.");
    end;

OnInstanceInit:
    disablenpc instance_npcname(.name$);
    end;

OnInit:
    if (instance_id() >= 0) end;
    // The Green Arena
    monster("032-3",  28,  25, "Arena", GreenDragon, 1);
    monster("032-3",  46,  25, "Arena", GreenDragon, 1);
    monster("032-3",  64,  19, "Arena", GreenDragon, 1);
    monster("032-3",  78,  19, "Arena", GreenDragon, 1);
    monster("032-3",  64,  43, "Arena", GreenDragon, 1);
    monster("032-3",  78,  43, "Arena", GreenDragon, 1);
    monster("032-3", 102,  19, "Arena", GreenDragon, 1);
    monster("032-3", 112,  19, "Arena", GreenDragon, 1);
    monster("032-3", 102,  43, "Arena", GreenDragon, 1);
    monster("032-3", 112,  43, "Arena", GreenDragon, 1);

    // The Blue Area
    monster("032-3", 130,  19, "Arena", Moonshroom, 1);
    monster("032-3", 140,  19, "Arena", Moonshroom, 1);
    monster("032-3", 164,  19, "Arena", Moonshroom, 1);
    monster("032-3", 178,  19, "Arena", Moonshroom, 1);
    monster("032-3", 196,  25, "Arena", Moonshroom, 1);
    monster("032-3", 214,  25, "Arena", Moonshroom, 1);
    monster("032-3", 130,  43, "Arena", Moonshroom, 1);
    monster("032-3", 140,  43, "Arena", Moonshroom, 1);
    monster("032-3", 164,  43, "Arena", Moonshroom, 1);
    monster("032-3", 178,  43, "Arena", Moonshroom, 1);

    // The Yellow Arena
    monster("032-3",  64, 106, "Arena", JackO, 1);
    monster("032-3",  78, 106, "Arena", JackO, 1);
    monster("032-3", 102, 106, "Arena", JackO, 1);
    monster("032-3", 112, 106, "Arena", JackO, 1);
    monster("032-3",  28, 124, "Arena", JackO, 1);
    monster("032-3",  46, 124, "Arena", JackO, 1);
    monster("032-3",  64, 130, "Arena", JackO, 1);
    monster("032-3",  78, 130, "Arena", JackO, 1);
    monster("032-3", 102, 130, "Arena", JackO, 1);
    monster("032-3", 112, 130, "Arena", JackO, 1);

    // The Red Arena
    monster("032-3", 130, 106, "Arena", GoboBear, 1);
    monster("032-3", 140, 106, "Arena", GoboBear, 1);
    monster("032-3", 164, 106, "Arena", GoboBear, 1);
    monster("032-3", 178, 106, "Arena", GoboBear, 1);
    monster("032-3", 196, 124, "Arena", GoboBear, 1);
    monster("032-3", 214, 124, "Arena", GoboBear, 1);
    monster("032-3", 130, 130, "Arena", GoboBear, 1);
    monster("032-3", 140, 130, "Arena", GoboBear, 1);
    monster("032-3", 164, 130, "Arena", GoboBear, 1);
    monster("032-3", 178, 130, "Arena", GoboBear, 1);
    end;
}

032-3,121,85,0	script	Central Switch#EP	NPC_SWITCH_OFFLINE,{
    .@m$ = getmap();
    if (mobcount(.@m$, "all")) {
        dispbottom l("Clear the arena to leave!");
        end;
    }
    setnpcdisplay instance_npcname(.name$), NPC_SWITCH_ONLINE;
    sleep2(1000);
    warp "032-3", 121, 86;
    setnpcdisplay instance_npcname(.name$), NPC_SWITCH_OFFLINE;
    .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
    if (.@q != 1) end;
    if (@ep_id)
        setq3 LoFQuest_EPISODE, getq3(LoFQuest_EPISODE) | @ep_id;
    @ep_id=0;
    if (getq3(LoFQuest_EPISODE) == 15)
        setq LoFQuest_EPISODE, getq(LoFQuest_EPISODE), 2, 0;
    end;

OnInit:
    disablenpc .name$;
    end;
OnInstanceInit:
    .distance=2;
    end;
}

032-3,118,82,0	script	Green Switch#EP	NPC_SWITCH_OFFLINE,{
    .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
    if (.@q != 1) end;
    .@x = getq3(LoFQuest_EPISODE);
    if (.@x & 1) { dispbottom l("I have already completed this arena."); end; }
    mesc l("This switch controls one of the four dungeons.");
    mesc l("All four Dungeons must be completed.");
    mes "";
    mesc l("Anyone within this rug will be teleported.");
    mesc l("Time limit: 10 minutes"), 3;
    mes "";
    mesc l("Do you want to begin the %s Dungeon?", l("Green")), 1;
    if (askyesno() == ASK_NO) { closeclientdialog; close; }
    closeclientdialog;
    setnpcdisplay .name$, NPC_SWITCH_ONLINE;
    .@mapn$="epar@"+getcharid(0);
    if (instanceowner(@episode) == getcharid(3)) {
		instance_set_timeout(605, 605, @episode);
    } else {
		@episode = instance_create("Episode Arena "+getcharid(0), getcharid(3), IOT_CHAR);
        if (@episode < 0) {
            mesc l("You cannot begin this now, try again later."), 1;
            @episode = 0;
            close;
        }
	    instance_attachmap("032-3", @episode, false, .@mapn$);
		instance_set_timeout(900, 900, @episode);
		instance_init(@episode);
    }
    sleep2(3000);
    if (!playerattached()) end;
    monster(.@mapn$,  28,  27, "Arena", GreenDragon, 1);
    monster(.@mapn$,  46,  27, "Arena", GreenDragon, 1);
    monster(.@mapn$,  64,  21, "Arena", GreenDragon, 1);
    monster(.@mapn$,  78,  21, "Arena", GreenDragon, 1);
    monster(.@mapn$,  64,  45, "Arena", GreenDragon, 1);
    monster(.@mapn$,  78,  45, "Arena", GreenDragon, 1);
    monster(.@mapn$, 102,  21, "Arena", GreenDragon, 1);
    monster(.@mapn$, 112,  21, "Arena", GreenDragon, 1);
    monster(.@mapn$, 102,  45, "Arena", GreenDragon, 1);
    monster(.@mapn$, 112,  45, "Arena", GreenDragon, 1);
    areatimer("032-3", 112, 76, 119, 83, 10, "Green Switch#EP::OnSet");
    sleep2(50);
    areawarp("032-3",  112, 76, 119, 83, .@mapn$, 32, 32, 41, 41);
    setnpcdisplay .name$, NPC_SWITCH_OFFLINE;
    sleep2(100);
    close;

OnSet:
    @ep_id=1;
    end;

OnInit:
    .distance=2;
    end;
OnInstanceInit:
    disablenpc instance_npcname(.name$);
    end;
}






032-3,124,82,0	script	Blue Switch#EP	NPC_SWITCH_OFFLINE,{
    .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
    if (.@q != 1) end;
    .@x = getq3(LoFQuest_EPISODE);
    if (.@x & 2) { dispbottom l("I have already completed this arena."); end; }
    mesc l("This switch controls one of the four dungeons.");
    mesc l("All four Dungeons must be completed.");
    mes "";
    mesc l("Anyone within this rug will be teleported.");
    mesc l("Time limit: 10 minutes"), 3;
    mes "";
    mesc l("Do you want to begin the %s Dungeon?", l("Blue")), 1;
    if (askyesno() == ASK_NO) { closeclientdialog; close; }
    closeclientdialog;
    setnpcdisplay .name$, NPC_SWITCH_ONLINE;
    .@mapn$="epar@"+getcharid(0);
    if (instanceowner(@episode) == getcharid(3)) {
		instance_set_timeout(605, 605, @episode);
    } else {
		@episode = instance_create("Episode Arena "+getcharid(0), getcharid(3), IOT_CHAR);
        if (@episode < 0) {
            mesc l("You cannot begin this now, try again later."), 1;
            @episode = 0;
            close;
        }
	    instance_attachmap("032-3", @episode, false, .@mapn$);
		instance_set_timeout(900, 900, @episode);
		instance_init(@episode);
    }
    sleep2(3000);
    if (!playerattached()) end;
    monster(.@mapn$, 130,  21, "Arena", Moonshroom, 1);
    monster(.@mapn$, 140,  21, "Arena", Moonshroom, 1);
    monster(.@mapn$, 164,  21, "Arena", Moonshroom, 1);
    monster(.@mapn$, 178,  21, "Arena", Moonshroom, 1);
    monster(.@mapn$, 196,  27, "Arena", Moonshroom, 1);
    monster(.@mapn$, 214,  27, "Arena", Moonshroom, 1);
    monster(.@mapn$, 130,  45, "Arena", Moonshroom, 1);
    monster(.@mapn$, 140,  45, "Arena", Moonshroom, 1);
    monster(.@mapn$, 164,  45, "Arena", Moonshroom, 1);
    monster(.@mapn$, 178,  45, "Arena", Moonshroom, 1);
    areatimer("032-3", 123, 76, 130, 83, 10, "Blue Switch#EP::OnSet");
    sleep2(50);
    areawarp("032-3",  123, 76, 130, 83, .@mapn$, 200, 32, 210, 41);
    setnpcdisplay .name$, NPC_SWITCH_OFFLINE;
    sleep2(100);
    close;

OnSet:
    @ep_id=2;
    end;

OnInit:
    .distance=2;
    end;
OnInstanceInit:
    disablenpc instance_npcname(.name$);
    end;
}






032-3,118,88,0	script	Yellow Switch#EP	NPC_SWITCH_OFFLINE,{
    .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
    if (.@q != 1) end;
    .@x = getq3(LoFQuest_EPISODE);
    if (.@x & 4) { dispbottom l("I have already completed this arena."); end; }
    mesc l("This switch controls one of the four dungeons.");
    mesc l("All four Dungeons must be completed.");
    mes "";
    mesc l("Anyone within this rug will be teleported.");
    mesc l("Time limit: 10 minutes"), 3;
    mes "";
    mesc l("Do you want to begin the %s Dungeon?", l("Yellow")), 1;
    if (askyesno() == ASK_NO) { closeclientdialog; close; }
    closeclientdialog;
    setnpcdisplay .name$, NPC_SWITCH_ONLINE;
    .@mapn$="epar@"+getcharid(0);
    if (instanceowner(@episode) == getcharid(3)) {
		instance_set_timeout(605, 605, @episode);
    } else {
		@episode = instance_create("Episode Arena "+getcharid(0), getcharid(3), IOT_CHAR);
        if (@episode < 0) {
            mesc l("You cannot begin this now, try again later."), 1;
            @episode = 0;
            close;
        }
	    instance_attachmap("032-3", @episode, false, .@mapn$);
		instance_set_timeout(900, 900, @episode);
		instance_init(@episode);
    }
    sleep2(3000);
    if (!playerattached()) end;
    monster(.@mapn$,  64, 108, "Arena", JackO, 1);
    monster(.@mapn$,  78, 108, "Arena", JackO, 1);
    monster(.@mapn$, 102, 108, "Arena", JackO, 1);
    monster(.@mapn$, 112, 108, "Arena", JackO, 1);
    monster(.@mapn$,  28, 126, "Arena", JackO, 1);
    monster(.@mapn$,  46, 126, "Arena", JackO, 1);
    monster(.@mapn$,  64, 132, "Arena", JackO, 1);
    monster(.@mapn$,  78, 132, "Arena", JackO, 1);
    monster(.@mapn$, 102, 132, "Arena", JackO, 1);
    monster(.@mapn$, 112, 132, "Arena", JackO, 1);
    areatimer("032-3", 112, 87, 119, 94, 10, "Yellow Switch#EP::OnSet");
    sleep2(50);
    areawarp("032-3",  112, 87, 119, 94, .@mapn$, 32, 131, 42, 140);
    setnpcdisplay .name$, NPC_SWITCH_OFFLINE;
    sleep2(100);
    close;

OnSet:
    @ep_id=4;
    end;

OnInit:
    .distance=2;
    end;
OnInstanceInit:
    disablenpc instance_npcname(.name$);
    end;
}






032-3,124,88,0	script	Red Switch#EP	NPC_SWITCH_OFFLINE,{
    .@q = (getq(LoFQuest_EPISODE) == 15 ? getq2(LoFQuest_EPISODE) : 99);
    if (.@q != 1) end;
    .@x = getq3(LoFQuest_EPISODE);
    if (.@x & 8) { dispbottom l("I have already completed this arena."); end; }
    mesc l("This switch controls one of the four dungeons.");
    mesc l("All four Dungeons must be completed.");
    mes "";
    mesc l("Anyone within this rug will be teleported.");
    mesc l("Time limit: 10 minutes"), 3;
    mes "";
    mesc l("Do you want to begin the %s Dungeon?", l("Red")), 1;
    if (askyesno() == ASK_NO) { closeclientdialog; close; }
    closeclientdialog;
    setnpcdisplay .name$, NPC_SWITCH_ONLINE;
    .@mapn$="epar@"+getcharid(0);
    if (instanceowner(@episode) == getcharid(3)) {
		instance_set_timeout(605, 605, @episode);
    } else {
		@episode = instance_create("Episode Arena "+getcharid(0), getcharid(3), IOT_CHAR);
        if (@episode < 0) {
            mesc l("You cannot begin this now, try again later."), 1;
            @episode = 0;
            close;
        }
	    instance_attachmap("032-3", @episode, false, .@mapn$);
		instance_set_timeout(900, 900, @episode);
		instance_init(@episode);
    }
    sleep2(3000);
    if (!playerattached()) end;
    monster(.@mapn$, 130, 108, "Arena", GoboBear, 1);
    monster(.@mapn$, 140, 108, "Arena", GoboBear, 1);
    monster(.@mapn$, 164, 108, "Arena", GoboBear, 1);
    monster(.@mapn$, 178, 108, "Arena", GoboBear, 1);
    monster(.@mapn$, 196, 126, "Arena", GoboBear, 1);
    monster(.@mapn$, 214, 126, "Arena", GoboBear, 1);
    monster(.@mapn$, 130, 132, "Arena", GoboBear, 1);
    monster(.@mapn$, 140, 132, "Arena", GoboBear, 1);
    monster(.@mapn$, 164, 132, "Arena", GoboBear, 1);
    monster(.@mapn$, 178, 132, "Arena", GoboBear, 1);
    areatimer("032-3", 123, 87, 130, 94, 10, "Red Switch#EP::OnSet");
    sleep2(50);
    areawarp("032-3",  123, 87, 130, 94, .@mapn$, 200, 131, 210, 140);
    setnpcdisplay .name$, NPC_SWITCH_OFFLINE;
    sleep2(100);
    close;

OnSet:
    @ep_id=8;
    end;

OnInit:
    .distance=2;
    end;
OnInstanceInit:
    disablenpc instance_npcname(.name$);
    end;
}