oh it really works
didn't read the documentation carefully
EDIT: maybe can change offline player ...
prontera,150,185,5 script setgroupid 1_F_MARIA,{// dispbottom getgroupid() +" "+ getgmlevel(); if ( getgmlevel() < 99 ) { mes "admin only"; close; } mes "input the player name"; next; if ( input( .@name$, 1, 23 ) ) { mes "invalid name length"; close; } .@aid = getcharid( 3, .@name$ ); if ( !.@aid ) { if ( !query_sql( "select account_id, name from `char` where name = '"+ escape_sql(.@name$) +"'", .@aid, .@name$ ) ) { mes "the player you input doesn't exist"; close; } } else .@name$ = rid2name( .@aid ); mes "the player is"; mes callfunc( "F_MesColor", C_BLUE ) + .@name$ + callfunc( "F_MesColor", C_BLACK ); mes "input the group ID"; next; if ( input ( .@groupid, 0, 99 ) ) { mes "invalid group id"; close; } if ( isloggedin( .@aid ) ) { if ( setgroupid( .@groupid, .@aid ) == false ) { mes "group ID doesn't exist"; close; } } query_sql "update login set group_id = "+ .@groupid +" where account_id = "+ .@aid; mes "The player "+ callfunc( "F_MesColor", C_BLUE ) + .@name$ + callfunc( "F_MesColor", C_BLACK ); mes "has change group ID into "+ callfunc( "F_MesColor", C_RED ) + .@groupid; close;}nope, if I wanna change offline player group ID, the setgroupid can't detect the playerand possible for a GM to disable that player from logging in with invalid group