diff options
Diffstat (limited to 'npc/commands/debug-skill.txt')
-rw-r--r-- | npc/commands/debug-skill.txt | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/npc/commands/debug-skill.txt b/npc/commands/debug-skill.txt new file mode 100644 index 00000000..2a3ef551 --- /dev/null +++ b/npc/commands/debug-skill.txt @@ -0,0 +1,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; +} |