amnezija Posted June 17, 2008 Report Share Posted June 17, 2008 Tātad, šis plugins savu darbu veic teicami tikai ir nelieli gļuki. Respektīvi, kad serveris ir pilns un slēdzoties tam klāt kādam kam nav slots tas tiktu pārmests uz citu serveri, jeb otru norādīto IP adresi. Ja slēdzas caur consoli vai jeb kā savādāk viņš pārmet, bet ja slēdzas caur Favourites klāt, tad viņš nepārmet. Vienkārši uzmetās tas logs, ka serveris ir pilns un viss. Kāpēc tā? Itkā būt jāstrādā esmu šo pluginu iedevis pāris srkipteriem, bet visi kā viens teica, ka tas strādājot korekti pēc kodējuma, bet kā redzams nestrādā. Reku pats plugins: #include <amxmodx> //comment to not use #define KILLS #define PLAYEDTIME //List size of remembered players who were booted, //to prevent the same players getting booted again so quickly. #define LAST_KICKED 15 /*--------------------- DO NOT TOUCH BELOW HERE OR JACK BAUER WILL HUNT YOU DOWN ---------------*/ /*--------------------- DO NOT TOUCH BELOW HERE OR GABEN WILL TOUCH YOU ---------------*/ new maxplayers new cvar_rsloton new cvar_reservedslots new cvar_hideslots new cvar_redirect new cvar_redirectip new cvar_redirectpw #if defined KILLS new cvar_kills #endif #if defined PLAYEDTIME new cvar_playedtime #endif new lastkicked[LAST_KICKED][32] new kickcount public plugin_init() { register_plugin("Ultimate RSlots","1.0","OneEyed") register_cvar("ultimate_rslots", "1.0",FCVAR_SERVER) register_dictionary("ultimate_rslot.txt") cvar_rsloton = register_cvar("rslot_on","1") cvar_reservedslots = register_cvar("rslot_slots","1") cvar_hideslots = register_cvar("rslot_hideslots", "1") cvar_redirect = register_cvar("rslot_redirect","1") cvar_redirectip = register_cvar("rslot_ip","XXXXX") cvar_redirectpw = register_cvar("rslot_pw","none") #if defined KILLS cvar_kills = register_cvar("rslot_kills", "35") #endif #if defined PLAYEDTIME cvar_playedtime = register_cvar("rslot_playedtime", "60") #endif maxplayers = get_maxplayers() } public plugin_cfg() if(get_pcvar_num(cvar_hideslots)) set_cvar_num("sv_visiblemaxplayers", maxplayers-get_pcvar_num(cvar_reservedslots)) public client_authorized(id) { if(is_user_bot(id)) return PLUGIN_CONTINUE new rslots_on = get_pcvar_num(cvar_rsloton) new players = get_playersnum(1) new limit = maxplayers - get_pcvar_num(cvar_reservedslots) if(players > limit) { switch(rslots_on) { case 1: { if( !(get_user_flags(id) & ADMIN_RESERVATION) ) if(get_pcvar_num(cvar_redirect) == 1) redirect_player(id) else { new lReason[128] format(lReason, 127, "%L", id, "CANT_JOIN_REASON") server_cmd("kick #%d %s", get_user_userid(id), lReason) } } case 2: { new sucker = id if(get_user_flags(id) & ADMIN_RESERVATION) sucker = player_to_kick() if(get_pcvar_num(cvar_redirect) == 1) redirect_player(sucker) else { new player[32], admin[32], authid[32] get_user_authid(id,authid,31) get_user_name(id,admin,31) get_user_name(sucker,player,31) if(sucker != id) { format(lastkicked[kickcount++], 31, "%s", authid) if(kickcount >= LAST_KICKED) kickcount = 0 new lReason[128] format(lReason, 127, "%L", sucker, "KICKED_REASON") server_cmd("kick #%d %s", get_user_userid(sucker), lReason) } else { new lReason[128] format(lReason, 127, "%L", id, "CANT_JOIN_REASON") server_cmd("kick #%d %s", get_user_userid(id), lReason) } } } } } return PLUGIN_CONTINUE } stock player_to_kick() { new players[33], count, authid[32], x, id, played_time for(id = 1; id <= maxplayers; id++) { if (!is_user_connected(id) || is_user_connecting(id) || is_user_bot(id)) continue if (get_user_flags(id) & ADMIN_RESERVATION) continue #if defined KILLS new kills = get_pcvar_num(cvar_kills) if(kills && get_user_frags(id) >= kills) continue #endif #if defined PLAYEDTIME new pltime = get_pcvar_num(cvar_playedtime) played_time = get_user_time(id, 1) / 60 if(pltime && played_time >= pltime) continue #endif get_user_authid(id,authid,31) for(x=0;x<LAST_KICKED;x++) if(equal(lastkicked[x], authid)) continue players[count++] = id } return players[random_num(0,(count-1))] } stock redirect_player(id) { new redirectip[64], redirectpw[32] get_pcvar_string(cvar_redirectip,redirectip,63) get_pcvar_string(cvar_redirectpw,redirectpw,31) if(!equal(redirectpw, "none")) client_cmd(id,"setinfo password %s",redirectpw) client_cmd(id,"disconnect; connect %s",redirectip) } Orģināl plugina links! Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now