summaryrefslogblamecommitdiff
path: root/npc/items/warpTowels.txt
blob: a6ffa8d1ae095e4f3535ccdbec9e1c6997f75628 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                                                       
                                      
                         

                                      
                      



                                                                                                                                                                    























































                                                   


                                


































                                
                           














                                                         
                  
                    
                                






                                                                                                                      
                                                                                     

















                                                                                                                            
function	script	WarpTowel	{
    @seconds = TowelLastUsed - (gettimetick(2) - 1200);
    if (@seconds > 0 && !is_trusted())
        goto L_DontPanic;
    .@zone = getmapinfo(MAPINFO_ZONE);
    if (.@zone == "Jail")
        goto L_Prison;
    // Zone will never be MMO, though
    if (.@zone == "MMO" || .@zone == "Event")
        goto L_Forbid;
    if (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-1";
    @NextLocationX = 113;
    @NextLocationY = 117;
    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;
    callfunc "MiriamCheat";
    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 (rand2(12))
        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 this 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;
}