@program rpset.muf 1 1000 d i $include $lib/rp $include $lib/alynna lvar target lvar stat lvar value : main var logstat var posneg "=" explode pop dup match dup ok? not if pop .pmatch dup player? not if pop "Invalid target" .tell exit then else swap pop then target ! stat ! value ! command @ "+rp" stringcmp not if target @ stat @ value @ dup "+" instring 1 = over "-" instring 1 = or if 1 strcut swap "+" instring if 1 posneg ! else -1 posneg ! then atoi posneg @ * target @ stat @ getstatint + then toint dup value ! setstat then command @ "+rpi" stringcmp not if target @ stat @ value @ dup "+" instring 1 = over "-" instring 1 = or if 1 strcut swap "+" instring if 1 posneg ! else -1 posneg ! then atoi posneg @ * target @ stat @ getstatint + then toint dup value ! setstat then command @ "+rps" stringcmp not if target @ stat @ value @ tostr dup value ! setstat then command @ "+rpf" stringcmp not if target @ stat @ value @ dup "+" instring 1 = over "-" instring 1 = or if 1 strcut swap "+" instring if 1 posneg ! else -1 posneg ! then strtof posneg @ * target @ stat @ getstatfloat + then tofloat dup value ! setstat then command @ "+rpd" stringcmp not if target @ stat @ value @ todbref dup value ! setstat then command @ "+rpo" stringcmp not if target @ stat @ value @ todbref dup value ! setstat then str "[RP/+set] " me @ unparseobj " set RP stat [" stat @ "] on " target @ unparseobj " to: " value @ cat dup tellme logstatus ; . c q