summaryrefslogblamecommitdiff
path: root/npc/commands/debug.txt
blob: 77ffe872748f807cfdf457d63def3e229cf89b3e (plain) (tree)
1
2
3
4
5
6
7
8
9


                         





                                         
                                                                        
                                        
                                   













                                                                                                                          


                                            
                                                                       
                                      
 
                        
                   
















                                                                      




               







                                                                   
                                      


                                                        




                                  



                                                









                               
                      

            
                      


                



















                                                                                    






                                                           


















                                                                              





                                             
       
                                                   



                                                       
                                                      
        
 
 
// Evol Script
// Author: Gumi, Monwarez

function	script	GlobalDebugMenu	{
    function resetAll {
        function doReset {
            resetstatus;
            resetskill;
            resetlvl 1;
            dispbottom b("ALL PERMANENT STATUS BOOSTS WERE ALSO RESET");
            dispbottom l("Reset done!");
            if (getarg(0,0) == 3) {
                closedialog;
                doevent "::OnGlobalQuestReset"; // executes in all quest npcs // FIXME: maybe have a `resetquest` buildin?
                Zeny = 0;
                BankVault = 0;
                clearitem;
                warp "000-0", 0, 0; // starting point
                end; // script must end for doevent to execute
            }
            return;
        }
        clear;
        setnpcdialogtitle l("Debug - Reset");
        mes l("What do you want to reset?");
        select
            l("Abort"),
            l("Reset stats, skills, level"),
            l("Reset EVERYTHING"),
            rif(is_admin() && debug && !@allperms, l("Set All Perms")),
            l("Return to Debug menu");

        switch (@menu) {
            case 2:
            case 3: doReset @menu; return;
            case 4:
                if (!debug) atcommand("@ban 1h "+strcharinfo(0));
                if (!is_admin()) atcommand("@ban 2h "+strcharinfo(0));
                atcommand("@addperm all_skill");
                atcommand("@addperm all_equipment");
                atcommand("@addperm skill_unconditional");
                atcommand("@addperm join_chat");
                atcommand("@addperm hide_session");
                atcommand("@addperm any_warp");
                atcommand("@addperm view_hpmeter");
                atcommand("@addperm view_equipment");
                atcommand("@addperm receive_requests");
                atcommand("@addperm can_trade_bound");
                atcommand("@addperm bypass_nostorage");
                @allperms=true;
                break;
        }

        return;
    }

    do
    {
        clear;
        setnpcdialogtitle l("Debug");
        mes l("This menu allows you to modify your account data.");
        mes "";
        mes l("What do you want to do?");
        select
            l("Change my appearance"),
            l("Change my quests"),
            l("Reset"),
            rif(getarg(0,0), l("Return to Super Menu"));

        .@c = getarg(0,0) ? 2 : 1;

        switch (@menu)
        {
            case 1: BarberDebug .@c; break;
            case 4: GlobalQuestDebug .@c; break;
            case 5: resetAll; break;
            case 6: return;
        }
    } while(1);
}



-	script	@debug	32767,{
    end;

OnCall:
    if (!is_admin()) {
        end;
    }
    GlobalDebugMenu();
    closedialog;
    end;

OnSetVar:
    if (getarraysize(.@atcmd_parameters$) != 3)
        Exception("Usage: @set-var VARIABLE INDEX VALUE", RB_DISPBOTTOM|RB_ISFATAL);

    .@cmd$=array_shift(.@atcmd_parameters$);
    .@idx=atoi(array_shift(.@atcmd_parameters$));
    if (charat(.@atcmd_parameters$[0],
               getstrlen(.@atcmd_parameters$[0])-1) == "$")
        .@str=true;

    if (.@str)
        .@val$=array_shift(.@atcmd_parameters$);
    else
        .@val=array_shift(.@atcmd_parameters$);

    if (.@str)
        setd(sprintf("%s[%d]", .@cmd$, .@idx), .@val$);
    else
        setd(sprintf("%s[%d]", .@cmd$, .@idx), .@val);

    .@msg$=sprintf("%s[%d] is now: %s", .@cmd$, .@idx,
                   getd(sprintf("%s[%d]", .@cmd$, .@idx)));

    if (!is_staff())
        atcommand("@request System Information: "+.@msg$);
    else
        dispbottom(.@msg$);
    end;

// If the char is not a staff member, it'll be sent to GM Log instead
OnGetVar:
    if (getarraysize(.@atcmd_parameters$) != 2)
        Exception("Usage: @get-var VARIABLE INDEX", RB_DISPBOTTOM|RB_ISFATAL);

    .@cmd$=array_shift(.@atcmd_parameters$);
    .@idx=atoi(array_shift(.@atcmd_parameters$));

    .@mg$=sprintf("%s[%d] == %s", .@cmd$, .@idx,
                      getd(sprintf("%s[%d]", .@cmd$, .@idx)));

    if (!is_staff())
        atcommand("@request System Information: "+.@mg$);
    else
        dispbottom(.@mg$);
    end;

OnSClear:
    sc_end SC_ALL;
    sc_end SC_DAILYSENDMAILCNT;
    dispbottom l("Status Condition Cleared");
    end;

OnInit:
    bindatcmd "debug", "@debug::OnCall", 99, 99, 1;
    bindatcmd "getvar", "@debug::OnGetVar", 99, 99, 1;
    bindatcmd "get-var", "@debug::OnGetVar", 99, 99, 1;
    bindatcmd "setvar", "@debug::OnSetVar", 99, 99, 1;
    bindatcmd "set-var", "@debug::OnSetVar", 99, 99, 1;
    bindatcmd "sclear", "@debug::OnSClear", 99, 99, 1;
    end;
}