summaryrefslogtreecommitdiff
path: root/npc/commands/debug-skill.txt
blob: 2a3ef5519c2061b21ac3e4572f5dd4c0606a2225 (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
function	script	GlobalSkillDebug	{

    function modifySkill {

        function setSkill {
            clear;
            mes l("Enter desired skill level:");
            input .@y;
            skill getarg(0,1), max(0, min(10, .@y)), 0;
            return;
        }

        setnpcdialogtitle l("Skill Debug - Modify Skill");
        .@k = getarg(0,1);
        .@v = getskilllv(.@k);
        select
            menuimage("actions/abort", l("Abort")),
            rif(.@v > 0, menuimage("actions/remove", l("Remove this skill"))),
            rif(.@v < 10, menuimage("actions/raise", l("Raise this skill"))),
            rif(.@v > 0, menuimage("actions/lower", l("Lower this skill"))),
            menuimage("actions/edit", l("Set the level manually")),
            menuimage("actions/back", l("Return to skill debug menu"));

        switch (@menu)
        {
            case 2: skill .@k, 0, 0; break;
            case 3: skill .@k, min(10, .@v + 1), 0; break;
            case 4: skill .@k, max(0, .@v - 1), 0; break;
            case 5: setSkill .@k; break;
        }

        return;
    }

    do
    {
        clear;
        setnpcdialogtitle l("Skill Debug");
        mes l("This menu allows you to change your skills.");
        mes "";

        mes "---";

        .@size = getarraysize(getvariableofnpc(.debug_skills$, "@sdebug"));

        for (.@s = 0; .@s < .@size; ++.@s) {
            .@skill$ = getvariableofnpc(.debug_skills$[.@s], "@sdebug");
            mesf("%s: %d", .@skill$, getskilllv(string_to_data(.@skill$)));
        }

        mes "---";

        mes "";
        mes l("Which skill do you wish to change?");
        next;

        .@select$ = implode(getvariableofnpc(.debug_skills$, "@sdebug"), ":");

        if (getarg(0, 0)) {
            .@select$ += ":" + menuimage("actions/back", l("Return to Debug menu"));
        }

        select(.@select$);

        if (--@menu == .@size) {
            return;
        } else {
            .@skill$ = getvariableofnpc(.debug_skills$[@menu], "@sdebug");
            modifySkill(string_to_data(.@skill$));
        }
    } while (1);
}



-	script	@sdebug	32767,{
    end;

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

OnInit:
    setarray(.debug_skills$,
        "NV_BASIC",
        "EVOL_CRAFTING");

    bindatcmd "sdebug", "@sdebug::OnCall", 0, 99, 0;
}