summaryrefslogtreecommitdiff
path: root/npc/commands/debug.txt
blob: 8cc1f1cdd0bd7a779a28d29a412591e421cce414 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
function	script	GlobalDebugMenu	{
    function resetAll {
        function doReset {
            resetstatus;
            resetskill;
            resetlvl 1;
            dispbottom l("Reset done!");
            if (getarg(0,0) == 3)
            {
                closeclientdialog;
                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
            menuimage("actions/abort", l("Abort")),
            menuimage("actions/reset", l("Reset stats, skills, level")),
            menuimage("actions/nuke", l("Reset EVERYTHING")),
            menuimage("actions/back", l("Return to Debug menu"));

        switch (@menu)
        {
            case 2:
            case 3: doReset @menu;
        }

        return;
    }

    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?");
        select
            menuimage("actions/manage", l("Change my level")),
            menuimage("actions/manage", l("Change my stats")),
            menuimage("actions/manage", l("Change my skills")),
            menuimage("actions/manage", l("Change my appearance")),
            menuimage("actions/add", l("Create items")),
            menuimage("actions/add", l("Get money")),
            menuimage("actions/edit", l("Change my quests")),
            rif(debug, menuimage("actions/reset", l("Set Legacy Account"))),
            menuimage("actions/reset", l("Reset")),
            rif(getarg(0,0), menuimage("actions/home", l("Return to Super Menu")));

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

        switch (@menu)
        {
            case 1: changeLevel; break;
            case 2: changeStats; break;
            case 3: GlobalSkillDebug .@c; break;
            case 4: BarberDebug .@c; break;
            case 5: closeclientdialog; clientcommand "createitems"; end;
            case 6: Zeny = 0x7FFFFFFE; break;
            case 7: GlobalQuestDebug .@c; break;
            case 8: setfakelegacyaccount(); break;
            case 9: resetAll; break;
            case 10: return;
        }
    } while(1);
}



-	script	@debug	32767,{
    end;

OnCall:
    if (!debug && !is_admin())
    {
        end;
    }
    GlobalDebugMenu;
    closeclientdialog;
    end;

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