summaryrefslogblamecommitdiff
path: root/npc/items/warpTowels.txt
blob: 18fea9f78d710c64896cc88b1449b281a2845617 (plain) (tree)























































































































































                                                                                                                                                                                                           
function	script	WarpTowel	{
    @seconds = TowelLastUsed - (gettimetick(2) - 1200);
    if (@seconds > 0)
        goto L_DontPanic;
    if (isin("botcheck",25,27,51,47))
        goto L_Prison;
    if (getmapflag(getmapname(), mf_nosave) || getmapflag(getmapname(), MF_NOTELEPORT) || getmapflag(getmapname(), MF_NOWARP) || isin("009-7",$@fightclub_x1,$@fightclub_y1,$@fightclub_x2,$@fightclub_y2))
        goto L_Forbid;

    if (@warpTowelName$ == "HitchhikersTowel")
        goto L_Save;
    if(@warpTowelName$ == "WhiteHitchhikersTowel")
        goto L_White;
    if(@warpTowelName$ == "RedHitchhikersTowel")
        goto L_Red;
    if(@warpTowelName$ == "GreenHitchhikersTowel")
        goto L_Green;
    if(@warpTowelName$ == "BlueHitchhikersTowel")
        goto L_Blue;
    if(@warpTowelName$ == "YellowHitchhikersTowel")
        goto L_Yellow;
    if(@warpTowelName$ == "PurpleHitchhikersTowel")
        goto L_Purple;
    if(@warpTowelName$ == "OrangeHitchhikersTowel")
        goto L_Orange;
    if(@warpTowelName$ == "PinkHitchhikersTowel")
        goto L_Pink;
    if(@warpTowelName$ == "TealHitchhikersTowel")
        goto L_Teal;
    if(@warpTowelName$ == "LimeHitchhikersTowel")
        goto L_Lime;
    goto L_Save;

L_White:
    // Koga
    @NextLocationMap$ = "035-2";
    @NextLocationX = 20;
    @NextLocationY = 21;
    goto L_WarpPlayer;

L_Red:
    // Barbarians
    @NextLocationMap$ = "033-1";
    @NextLocationX = 66;
    @NextLocationY = 33;
    goto L_WarpPlayer;

L_Green:
    // Candor
    @NextLocationMap$ = "029-1";
    @NextLocationX = 69;
    @NextLocationY = 69;
    goto L_WarpPlayer;

L_Blue:
    // Blue Sages
    @NextLocationMap$ = "048-2";
    @NextLocationX = 26;
    @NextLocationY = 47;
    goto L_WarpPlayer;

L_Yellow:
    // Tulimshar Mines
    @NextLocationMap$ = "002-2";
    @NextLocationX = 27;
    @NextLocationY = 28;
    goto L_WarpPlayer;

L_Purple:
    // Dimonds Inn
    @NextLocationMap$ = "010-1";
    @NextLocationX = 27;
    @NextLocationY = 97;
    goto L_WarpPlayer;

L_Orange:
    // Graveyard
    @NextLocationMap$ = "027-1";
    @NextLocationX = 70;
    @NextLocationY = 100;
    goto L_WarpPlayer;

L_Pink:
    // Terranite Cave
    @NextLocationMap$ = "012-3";
    @NextLocationX = 448;
    @NextLocationY = 66;
    goto L_WarpPlayer;

L_Teal:
    // Mana Seed
    @NextLocationMap$ = "012-3";
    @NextLocationX = 64;
    @NextLocationY = 130;
    goto L_WarpPlayer;

L_Lime:
    // Pachua
    @NextLocationMap$ = "006-1";
    @NextLocationX = 28;
    @NextLocationY = 97;
    if(QUEST_MIRIAM_start != 0) goto L_Cheat;
    goto L_WarpPlayer;

L_Cheat:
    QUEST_MIRIAM_cheat = 1;
    QUEST_MIRIAM_run = gettimetick(2) - QUEST_MIRIAM_start;
    QUEST_MIRIAM_start = 0;
    goto L_WarpPlayer;

L_Save:
    // Soul Menhir
    @NextLocationMap$ = getsavepoint(0);
    @NextLocationX = getsavepoint(1);
    @NextLocationY = getsavepoint(2);
    goto L_WarpPlayer;

L_WarpPlayer:
    TowelLastUsed = gettimetick(2);
    warp @NextLocationMap$,@NextLocationX,@NextLocationY;
    goto L_BreakChance;

L_BreakChance:
    if (rand(15))
        goto L_Keep;
    getitem "HitchhikersTowel", 1;
    goto L_End;

L_Forbid:
    message strcharinfo(0), "Towel : This area is protected by a force that doesn't tolerate the power of the Towel.";
    goto L_Keep;

L_Prison:
    message strcharinfo(0), "Towel : You must be warped by a GM to leave the botcheck area.";
    goto L_Keep;

L_DontPanic:
    callfunc "HumanTime";
    message strcharinfo(0), "Towel : Your towel is still too low on power to jump again. Try again in ##B"+ @time$ + "##b.";
    goto L_Keep;

L_Keep:
    getitem @warpTowelName$, 1;
    goto L_End;

L_End:
    @NextLocationMap$ = "";
    @NextLocationX = 0;
    @NextLocationY = 0;
    @warpTowelName$ = "";
    return;
}