BUILDIN(rand) { int range; int min; int max; if( script_hasdata(st,3) ) {// min,max min = script_getnum(st,2); max = script_getnum(st,3); if( max < min ) swap(min, max); range = max - min + 1; } else {// range min = 0; range = script_getnum(st,2); } if( range <= 1 ) script_pushint(st, min); else script_pushint(st, rnd()%range + min); return true; }