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

                                                          
                         
                                     
                      
                                                                                                                                                                                               

                      
                              
 
                                              
























                                                   
                                   

                           
                      


                 
                                   

                           
                      


             
                                   

                           
                      


                 
                                   

                           
                      


                      
                                   

                           
                      


                  
                                   

                           
                      


                
                                   

                            
                      


                     
                                   

                            
                      


                
                                   

                            
                      


             
                                   

                           






                                                              
                      





                                           
                      
 



                                                         
 
              

                    
                                  
               
 
         
                                                                                                                         

                
         
                                                                                                

                
            

                                                                                                                               
                
 
       

                               
 




                              
           
 
 
                              
 
















                                                                                                                                                                                                                                                                                                      

                                                              
 
// See #TravelConfig
function|script|WarpTowel
{
    set @seconds, TowelLastUsed - (gettimetick(2) - 1800);
    if (@seconds > 0)
        goto L_DontPanic;
    if (isin("botcheck",25,27,51,47))
        goto L_Prison;
    if (getmapflag(getmap(), MF_NOSAVE) || getmapflag(getmap(), MF_NOTELEPORT) || getmapflag(getmap(), MF_NOWARP) || isin("009-7",$@fightclub_x1,$@fightclub_y1,$@fightclub_x2,$@fightclub_y2))
        goto L_Forbid;

    callfunc "MultiWarpTowel";

    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
    set @NextLocationMap$, "035-2";
    set @NextLocationX, 20;
    set @NextLocationY, 21;
    goto L_WarpPlayer;

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

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

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

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

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

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

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

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

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

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

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

L_WarpPlayer:
    set 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), "##1Towel : This area is protected by a force that doesn't tolerate the power of the Towel.";
    goto L_Keep;

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

L_DontPanic:
    callfunc "HumanTime";
    message strcharinfo(0), "##3Towel : 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:
    set @NextLocationMap$, "";
    set @NextLocationX, 0;
    set @NextLocationY, 0;
    set @warpTowelName$, "";
    return;
}

function|script|MultiWarpTowel
{
    setarray $@warpTowels$, "HitchhikersTowel", "WhiteHitchhikersTowel", "RedHitchhikersTowel", "GreenHitchhikersTowel", "BlueHitchhikersTowel", "YellowHitchhikersTowel", "PurpleHitchhikersTowel", "OrangeHitchhikersTowel", "PinkHitchhikersTowel", "TealHitchhikersTowel", "LimeHitchhikersTowel";
    set @towel_count, 0;
    set @towel_loop, 0;
    goto L_CountTowelLoop;

L_CountTowelLoop:
    set @towel_count, (@towel_count + countitem($@warpTowels$[@towel_loop]));
    delitem $@warpTowels$[@towel_loop], countitem($@warpTowels$[@towel_loop]);
    goto L_DelLoopAgain;

L_DelLoopAgain:
    if((@towel_loop + 1) == getarraysize($@warpTowels$))
        goto L_Return;
    set @towel_loop, (@towel_loop + 1);
    goto L_CountTowelLoop;

L_Return:
    cleararray $@warpTowels$, "", getarraysize($@warpTowels$);
    return;
}