|
楼主 |
发表于 2005-10-19 23:06:02
|
显示全部楼层
来自 中国–广东–深圳
回复: 内网优先插件老踢内网!有截图
是啊,我这全是内网时也是满的。但很多时候都有5-6个一起挤,不停的挤,过一会就会有个内网的挤出来了,就如1楼的图提示了。关于yanexp 说的admin冲突我就有点不明白了,因为我用的admin是你提供下载的。
附上源码
#include <amxmod>
public client_connect(id){
new userip[17]
new ips[8]
new name[33]
new g_amx_netbarip[8]
get_user_ip(id,userip,16,1)
copy(ips,7,userip)
get_cvar_string("amx_netbarip",g_amx_netbarip,7)
get_user_name(id,name,32)
if (equali(ips,g_amx_netbarip)){
set_user_flags(id,read_flags("b"))
client_print(0,print_chat,"*内网玩家: %s (%s)",name,userip)
new maxplayers = get_maxplayers()
new players = get_playersnum( 1 )
new limit = maxplayers - 1
if( players > limit ){
kickhping()
}
}else{
client_print(0,print_chat,"*外网玩家: %s (%s)",name,userip)
}
//client_print(0,print_chat,"*test: %s |%s",ips,g_amx_netbarip)
return PLUGIN_CONTINUE
}
kickhping() {
new who = 0, ping, loss, worst = -1
new maxplayers = get_maxplayers()
for(new i = 1; i <= maxplayers; ++i) {
if ( !is_user_connected(i) && !is_user_connecting(i) )
continue // not used slot
if (get_user_flags(i)&ADMIN_RESERVATION)
continue // has reservation, skip him
get_user_ping(i,ping,loss) // get ping
if ( ping > worst ) {
worst = ping
who = i
}
}
if(who)
if ( is_user_bot(who) )
server_cmd("kick #%d", get_user_userid(who) )
else{
client_cmd(who,"echo ^"Dropped due to high ping to free slot for an admin^";disconnect")
client_print(0,print_chat,"*OP通道已踢出外网Ping高玩家!!!")
}
return who
}
public plugin_init() {
register_plugin("NetBar","0.2","YanOnline")
register_cvar("amx_netbarip","192.168")
return PLUGIN_CONTINUE
} |
|