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 "---";
// FIXME: maybe get skills from an array or `getskilllist;` <= would need a `getskillinfo()` buildin though
mes "NV_BASIC: " + getskilllv(NV_BASIC);
mes "---";
mes "";
mes l("Which skill do you wish to change?");
next;
menuint
"NV_BASIC", NV_BASIC,
rif(getarg(0,0), menuimage("actions/back", l("Return to Debug menu"))), -1;
switch (@menuret)
{
case -1: return;
}
modifySkill @menuret;
} while (1);
}
- script @sdebug 32767,{
end;
OnCall:
if (!debug && !is_admin())
{
end;
}
GlobalSkillDebug;
closedialog;
end;
OnInit:
bindatcmd "sdebug", "@sdebug::OnCall", 99, 99, 1;
}