summaryrefslogblamecommitdiff
path: root/npc/commands/debug.txt
blob: 61088caf0fff5cdb5322ae516c5dd58de4272401 (plain) (tree)























































































































                                                                                                                          
                                                
                                           
























                                                  
                                                                                   
 
function	script	GlobalDebugMenu	{
    function	resetAll	{
        function	doReset	{
            resetstatus;
            resetskill;
            resetlvl 1;
            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;
                #MerchantBank = 0;
                getinventorylist;
                for (.@o = 0; .@o < @inventorylist_count; ++.@o)
                {
                    delitem @inventorylist_id[.@o], @inventorylist_amount[.@o];
                }
                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?");
        menuint
            menuimage("actions/abort", l("Abort")), 1,
            menuimage("actions/reset", l("Reset stats, skills, level")), 2,
            menuimage("actions/nuke", l("Reset EVERYTHING")), 3,
            menuimage("actions/back", l("Return to Debug menu")), 1,
            menuimage("actions/exit", l("Close")), 4;

            switch (@menuret)
            {
                case 2:
                case 3: doReset @menuret;
                case 1: return;
            }

        closedialog;
    }

    function	changeLevel	{
        clear;
        setnpcdialogtitle l("Debug - Change level");
        mes l("To change your base level, use this command:");
        mes "";
        mes "    " + col("@blvl <" + l("delta") + ">", 3);
        next;
        mes l("Example:");
        mes "@blvl 50";
        mes "    " + l("Raises your base level by 50");
        mes "@blvl -50";
        mes "    " + l("Reduces your base level by 50");
        next;
        mes l("To change your job level, use this command:");
        mes "";
        mes "    " + col("@jlvl <" + l("delta") + ">", 3);
        next;
        mes l("Example:");
        mes "@jlvl 50";
        mes "    " + l("Raises your job level by 50");
        mes "@jlvl -50";
        mes "    " + l("Reduces your job level by 50");
        next;
        return;
    }
    function	changeStats	{
        clear;
        setnpcdialogtitle l("Debug - Change stats");
        mes l("To change your stats, use these commands:");
        mes "";
        mes "    " + col("@str <" + l("delta") + ">", 3);
        mes "    " + col("@agi <" + l("delta") + ">", 3);
        mes "    " + col("@vit <" + l("delta") + ">", 3);
        mes "    " + col("@int <" + l("delta") + ">", 3);
        mes "    " + col("@dex <" + l("delta") + ">", 3);
        mes "    " + col("@luk <" + l("delta") + ">", 3);
        next;
        mes l("Example:");
        mes "@int 50";
        mes "    " + l("Raises your Int by 50");
        mes "@int -50";
        mes "    " + l("Reduces your Int by 50");
        next;
        mes l("If you simply wish to get 99 in all stats:");
        mes "";
        mes "    " + col("@allstats", 3);
        next;
        mes l("If you wish to reset your stats:");
        mes "";
        mes "    " + col("@streset", 3);
        next;
        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?");
        menuint
            menuimage("actions/manage", l("Change my level")), 1,
            menuimage("actions/manage", l("Change my stats")), 2,
            menuimage("actions/manage", l("Change my skills")), 3,
            menuimage("actions/manage", l("Change my appearance")), 4,
            menuimage("actions/edit", l("Change my quests")), 5,
            menuimage("actions/reset", l("Select a preset")), 6,
            menuimage("actions/nuke", l("Reset")), 7,
            rif(getarg(0,0), menuimage("actions/home", l("Return to Super Menu"))), 8,
            menuimage("actions/exit", l("Close")), 9;

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

        switch (@menuret)
        {
            case 1: changeLevel; break;
            case 2: changeStats; break;
            case 3: GlobalSkillDebug .@c; break;
            case 4: BarberDebug .@c; break;
            //case 5: changeQuests; break;
            //case 6: DebugPresets; break;
            case 7: resetAll; break;
            case 8: return;
            case 9: closedialog; end;
        }
    } while(1);
}



-	script	@debug	32767,{
    end;

OnCall:
    if (!debug && getgroupid() < 99)
    {
        end;
    }
    GlobalDebugMenu;
    closedialog;
    end;

OnInit:
    bindatcmd "debug", "@debug::OnCall", 0, 99, 0;
    // TODO / FIXME: add a @test command that opens the help window for test-server
}