// getarg(0) = map name // getarg(1) = bg id // getarg(2) = array aid // getarg(3) = npc name // getarg(4) = waitingroom name // getarg(5) = trigger event name function script bg_recheck__ { set .@origin, playerattached(); set .@size, getarraysize( getarg(2) ); for ( set .@i, 0; .@i < .@size; set .@i, .@i +1 ) { if ( isloggedin( getelementofarray( getarg(2), .@i ) ) ) { getmapxy .@map$, .@x, .@y, 0, rid2name( getelementofarray( getarg(2), .@i ) ); if ( .@map$ == getarg(0) && getcharid(4) == getarg(1) ) continue; attachrid getelementofarray( getarg(2), .@i ); bg_leave; } deletearray getelementofarray( getarg(2), .@i ), 1; set .@size, .@size -1; set .@i, .@i -1; } if ( .@origin ) attachrid .@origin; if ( getarg( 3, "" ) != "" ) { delwaitingroom getarg(3); waitingroom getarg(4) +" ["+ .@size +"/30]", 1, getarg(5), 1, getarg(2); } return .@size; } prontera,158,185,5 script aaa 100,0,0,{ dispbottom set( .@size, callfunc( "bg_recheck__", "prontera", .team, .team1aid, strnpcinfo(0), "test", strnpcinfo(0) +"::Onaaa2" ) ) +" "+ bg_get_data(.team, 0); for ( set .@i, 0; .@i < .@size; set .@i, .@i +1 ) dispbottom ( .@i +1 )+". "+ rid2name(.team1aid[.@i]); end; OnInit: set .join2start, 1; waitingroom "test [0/30]", .join2start, strnpcinfo(0)+"::Onaaa", .join2start; for ( set .@i, 2000000; .@i <= 2000010; set .@i, .@i +1 ) // reset on @reloadscript if ( attachrid(.@i) ) bg_leave; getmapxy .map$, .x, .y, 1; end; Onaaa: set .team, waitingroom2bg( .map$, .x, .y, strnpcinfo(0)+"::Onquit", "" ); bg_warp .team, .map$, .x, .y; delwaitingroom; waitingroom "test ["+ bg_get_data(.team,0) +"/30]", 1, strnpcinfo(0)+"::Onaaa2", 1; end; Onaaa2: waitingroom2bg_single .team, .map$, .x, .y, strnpcinfo(0); delwaitingroom; if ( bg_get_data(.team,0) < 30 ) waitingroom "test ["+ bg_get_data(.team,0) +"/30]", 1, strnpcinfo(0)+"::Onaaa2", 1; else waitingroom "FULL [30/30]",0; end; Onquit: set .@size, getarraysize(.team1aid); for ( set .@i, 0; .@i < .@size; set .@i, .@i +1 ) if ( .team1aid[.@i] == getcharid(3) ) deletearray .team1aid[.@i], 1; delwaitingroom; waitingroom "test ["+ ( .@size -1 ) +"/30]", 1, strnpcinfo(0)+"::Onaaa2", 1; announce strcharinfo(0) +" has left team "+ getcharid(4), 0; end; OnTouch: set .@size, getarraysize(.team1aid); for ( set .@i, 0; .@i < .@size; set .@i, .@i +1 ) if ( .team1aid[.@i] == getcharid(3) ) end; set .team1aid[.@size], getcharid(3); announce strcharinfo(0) +" has join team "+ getcharid(4), 0; end; }