Witamy w Nieoficjalnym polskim support'cie AMX Mod X
Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
|
Rezerwacja slotu dla Admina
#1
Napisano 09.12.2009 09:02
Szukam pluginu na serwer który, zarezerwuje jeden slot dla admina czyli będzie 16+1 ale w momencie gdy admin gra bądź wejdzie do gry plugin się wyłącza czyli będzie 17 pełnych slotów
Grafika na szkle jest idealnym pomysłem na odświeżenie swojego domu. Szkło z grafika dzięki swojej elastyczności można zamontować w każdym pomieszczeniu bez jakichkolwiek obaw! Np. do kuchni.
W swoim asortymencie posiadamy kilka produktów, aby w pełni zadowolićo czekiwania naszego klienta. Oprócz dużych grafik na szkle, firma GlassDekor zajmuję się produkcją obrazów.
Jako jedyni w swoim rejonie posiadamy drukarkę, która umożliwia druk UV na każdym płaskim materiale! Zapraszamy do kontaktu:
#3
Napisano 09.12.2009 09:07
#4
Napisano 09.12.2009 14:18
amx_reservation 0 zmień na amx_reservation 1 w amxx.cfg ( sloty ile ma być zarezerwowanych)
amx_hideslots 0 zmień na amx_hideslots 1 w amxxx.cfg (ukryte sloty)
I w server.cfg dopisz linijkę
sv_visiblemaxplayers 16
Lub o to:
Cvary
// 0 = disabled // 1 = rezerwuje slota w taki sposób 18/19 slotów to full serwer, admin na 19 może wejść. // 2 = wyrzuca graczy z pełnego serwera jak admin chce wejść np 19/19 slotów. rslot_on <0|1|2> //Liczba rezerwowych slotów rslot_slots <# of slots> //Schowaj slota //(np. 21 maksymalna ilość gracza pokazuje 20/20 ) rslot_hideslots <0|1> //włącz redirect (działa to na zasadzie, że gdy serwer jest pełny, to przekierowuje graczy na inny serwer. Admini mogą wejść. rslot_redirect <0|1> //IP i port serwera (IP i port wpisujemy w cytat "XXXXXXX:XXXXX" rslot_ip "ip:port" //Wpisz jeśli serwer na który mają być przeniesieni ma hasło. rslot_pw "none"
Plugin .sma :
#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","0") cvar_reservedslots = register_cvar("rslot_slots","1") cvar_hideslots = register_cvar("rslot_hideslots", "0") cvar_redirect = register_cvar("rslot_redirect","0") cvar_redirectip = register_cvar("rslot_ip","127.0.0.1") 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) }
Tylko gdy chcesz wejść wchodz przez connect!
Użytkownicy przeglądający ten temat: 0
0 użytkowników, 0 gości, 0 anonimowych