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
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: 2
0 użytkowników, 2 gości, 0 anonimowych


Dodatki SourceMod



Temat jest zamknięty









