summaryrefslogblamecommitdiff
path: root/npc/items/lofteleporter.txt
blob: 9952d726d4917edd36a160f2adb078100a2b39b2 (plain) (tree)
















































                                                                                                   
                                                                                                                                  


                        

                                                

                                                                   
                                                               
                                                                   
                                                                                                 









                                                           
             


                                  
                                                 
                             
                                   

                  
                                 
                                                 
                               


                                   
                                  
                                                  
                                 
                                   
                  
               
                                  
                                                  
                               
                                   
                  
               

                                                  
                               


                                   
                                                 

                                
                                   
                  
               
                                                  
                                                  
                                     
                        
                                      
                                      



                                                    



                
// TMW2 scripts.
// Authors:
//    Pyndragon
//    Jesusalva
// Description:
//    Hand Teleporter (also saves coordinates - @memo)

-	script	LoF Teleporter	NPC_HIDDEN,{
    close;

    // Checks if you can warp
    function loftel_check {
        getmapxy(.@m$, .@x, .@y, 0);
        .@is_hurt=(readparam(Hp) < readparam(MaxHp)*9/10); // <90% hp
        .@is_town=(getmapflag(.@m$, mf_town));
        return (.@is_hurt && !.@is_town);
    }

    // Calculate time remaining
    // (time, .@x)
    function loftel_time {
        return gettimetick(2)+max((60*getarg(0))-(getarg(1)*60), 30);
    }

L_Cooldown:
    mesn;
    mesc l("This teleporter is currently recharging.");
    mesc l("You can use it again in @@.", FuzzyTime(TELEPORTER_TIME));
    close;

OnUse:
    if (TELEPORTER_TIME > gettimetick(2))
        goto L_Cooldown;
    if (readparam(Hp) < readparam(MaxHp)) {
        dispbottom l("You are hurt, and cannot use this.");
        end;
    }
    if (BaseLevel < 20) {
        dispbottom l("This is too powerful to you. Get level 20 before attempting to use.");
        end;
    }

    mesn;
    mesc l("Ozthokk, a great sage from the Land Of Fire, holds secrets of time and space travel.");
    mesc l("This is not magic, it is science!");
    mes "";
    mesc l("PS. Additional reagents may be required for warps.");
    next;

    .@x=(reputation("LoF")/10)+min(15, countitem(TimeFlask)-1); // up to 10 minutes reduction from quests, and 15 from time flasks

    select
        l("Don't warp"),
        l("Land Of Fire Village (@@m)", 35-.@x),
        l("Tulimshar (@@m)", 35-.@x),
        rif(TELEPORTERS & TP_FROST, l("Frostia (@@m)", 120-.@x)),
        rif(TELEPORTERS & TP_HALIN, l("Halinarzo (@@m)", 120-.@x)),
        rif(TELEPORTERS & TP_LILIT, l("Lilit (@@m)", 150-.@x)),
        rif(GSET_SOULMENHIR_MANUAL, l("Save Point (@@m)", 30-.@x)),
        rif(getq(LoFQuest_EPISODE) >= 15, l("200 years ago, The Great Fire (%dm)", 360-(.@x*2)));

    if (@menu == 1)
        close;

    switch (@menu) {
        case 1:
    }
    if (loftel_check()) {
        dispbottom l("You are hurt, and cannot use this.");
    }
    sshake();
    switch (@menu) {
        case 2:
            warp "017-1", 120, 89;
            TELEPORTER_TIME=loftel_time(35, .@x);
            EnterTown("LoF");
            @timer_navio_running=0;
            break;
        case 3:
            warp "003-1", 41, 49;
            TELEPORTER_TIME=loftel_time(35, .@x);
            EnterTown("Tulim");
            @timer_navio_running=0;
            break;
        case 4:
            warp "024-1", 155, 82;
            TELEPORTER_TIME=loftel_time(120, .@x);
            EnterTown("Frostia");
            @timer_navio_running=0;
            break;
        case 5:
            warp "009-1", 113, 91;
            TELEPORTER_TIME=loftel_time(120, .@x);
            EnterTown("Halin");
            @timer_navio_running=0;
            break;
        case 6:
            warp "018-5", 111, 53;
            TELEPORTER_TIME=loftel_time(150, .@x);
            EnterTown("Lilit");
            @timer_navio_running=0;
            break;
        case 7:
            TELEPORTER_TIME=loftel_time(30, .@x);
            //EnterTown("Save");
            teleporthome();
            @timer_navio_running=0;
            break;
        case 8:
            //atcommand("@block "+strcharinfo(0));
            // Reset your bank savings (temporary)
            #MerchantBank+=BankVault;
            BankVault=0;
            setq2 LoFQuest_EPISODE, 0;
            setq3 LoFQuest_EPISODE, 0;
            warp "032-1", 23, 25;
            TELEPORTER_TIME=loftel_time(360, .@x*2);
            @timer_navio_running=0;
            break;
    }
    closedialog;
    end;
}