- script modstats -1,{ OnInit: .at_lvl = 40; // Atcommand level .ch_lvl = 80; // Charcommand level .max_param = 99; // Max parameter allowed // Command names setarray .command$[0], "str", "agi", "vit", "dex", "int", "luk"; // Stats setarray .stats[0], bStr, bAgi, bVit, bDex, bInt, bLuk; // Bind commands for (.@i = 0; .@i < getarraysize(.command$); .@i++) { bindatcmd .command$[.@i], strnpcinfo(3) +"::OnCommand", .at_lvl, .ch_lvl; } end; // Syntax: checkparam(<param>, <stat name>

function checkparam { // Loop through all parameters for (.@i = 0; .@i < getarraysize(.command$); .@i++) { // Check if max parameter has been reached if (getarg(1) == .command$[.@i] && getarg(0) - readparam(.stats[.@i]) <= .max_param) { return true; } } return false; } OnCommand: // Save invoking GM name .@gm_name$ = strcharinfo(0); // Charcommand issued if (.@atcmd_numparameters == 2 && checkparam(atoi(.atcmd_parameters$[1]), replacestr(.@atcmd_command$, "@", ""))) { attachrid getcharid(3, .atcmd_parameters$[0]); atcommand .@atcmd_command$ +" "+ atoi(.atcmd_parameters$[1]); // Atcommand issued } else if (.@atcmd_numparameters == 1 && atoi(.atcmd_parameters$[0]) <= .max_param) { atcommand .@atcmd_command$ +" "+ atoi(.atcmd_parameters$[0]); // Invalid parameters } else { message .@gm_name$, "Invalid parameters (syntax: "+ .@atcmd_command$ +" <0 - "+ .max_param +">"; message .@gm_name$, .@atcmd_command$ +" failed."; } end;}