[ROZWIĄZANE] simple_redirect i wyjątek dla...
Best Answer byCZUS 15.01.2014 18:37
Prościej się chyba nie da.. ip widać gdzie zmienić:
#include < amxmodx > #define IP "193.33.177.19:27126" public plugin_init( ) { register_plugin( "...", "1.0", "byCZEK" ); } public client_authorized( id ) { if( ( get_maxplayers( ) - get_playersnum( 1 ) ) == 0 && !( get_user_flags( id ) & ADMIN_RESERVATION ) ) client_cmd( id, "Connect %s", IP ); }
Plugin przerzuca graczy np. przy ilości 26/27.
Go to the full post
revoolution
14.01.2014
Witam,
plugin jest przerobiony - przekierowuje graczy przy konkretnej ilości na serwerze.
Mam natomiast inny problem, co w kodzie jest skopane, że adminów i osoby z flagą "b", czyli rezerwacją, również przenosi ?
Chciałbym, aby redirect działał tylko na osoby bez zarezerwowanego slota.
/* AMXX Mod Script * * Simple Redirection Plugin for AMXX * Orginal Code by Sonic ([email protected]) * Modified and Made for AMXX by BigBaller * * Place following cvars in server.cfg * * amx_rd_maxplayers <x> // - begin redirection when more the x ppl connected ( 0 = redirect all players ) * amx_rd_server <ip> // - redirect to this server * amx_rd_serverport <port> // - redirect server port * amx_rd_serverpw <password> // - password for the amx_rd_server (if needed) * * * To Disable this plugin set amx_rd_maxppl to 33 or remove from plugins.ini */ #include <amxmodx> #include <amxmisc> public plugin_init() { register_plugin("Simple Redirect","1.0","BigBaller") register_cvar("amx_rd_maxplayers","0") register_cvar("amx_rd_server","") register_cvar("amx_rd_serverport","") register_cvar("amx_rd_serverpw","") } public client_connect(id){ new rd_maxplayers = get_cvar_num("amx_rd_maxplayers") new rd_serverport = get_cvar_num("amx_rd_serverport") new rd_server[64], rd_serverpw[32] get_cvar_string("amx_rd_server",rd_server,63) get_cvar_string("amx_rd_serverpw",rd_serverpw,31) if ( get_playersnum() >= rd_maxplayers && !access(id,ADMIN_RESERVATION)) { if ( !equal(rd_serverpw,"") ) client_cmd(id,"echo ^"Simple Redirection - Set Password to %s^";^"password^" %s",rd_serverpw,rd_serverpw) client_cmd(id,"echo ^"Simple Redirection - Redirecting to %s:%d^";^"Connect^" %s:%d",rd_server,rd_serverport,rd_server,rd_serverport) } return PLUGIN_CONTINUE } /* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE *{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1045\\ f0\\ fs16 \n\\ par } */
MAGNET
14.01.2014
#include <amxmodx> public plugin_init() { register_plugin("Simple Redirect","1.0","BigBaller") } public client_connect(id){ if(get_user_flags(id) & ADMIN_RESERVATION || get_user_flags(id) & ADMIN_BAN) return PLUGIN_HANDLED; if ( get_playersnum() >= 23) { client_cmd(id,"echo ^"^";^"Connect^" 193.33.177.36:27096") } return PLUGIN_CONTINUE; }
MAGNET
14.01.2014
Tak. Zgrałem z mojego serwera.
if ( get_playersnum() >= 23) {
23 sobie zmieniasz od ilu graczy ma przekierowywać
revoolution
14.01.2014
U mnie niestety dalej nie działa
przy amx_reservation 1 wywala "kicked due slot reservation", a przy amx_reservation 0 każdy może wejść nawet powyżej 28/29 ech
Edited by revoolution, 14.01.2014 19:14.
revoolution
14.01.2014
Nie mogę edytować wiadomości powyżej?
Dobra sprawa wygląda tak :
- serwer 29 sloty
- w pluginie który podał MAGNET ustawiłem getsplayersnum >= 27
w amxx.cfg :
- amx_reservation 1
- amx_hideslots 1
Co się dzieje ? Przy stanie 27/28 nikt nie wejdzie na serwer, ani admin ani zwykły gracz (zostaje przekierowany .. ) A fizycznie dostępne są jeszcze 2 sloty !
Edited by revoolution, 14.01.2014 21:23.
CsBoost 14.01.2014
Weź spróbuj w ten sposób:
#include <amxmodx> public plugin_init() { register_plugin("New Plug-In","1.0","author") } public client_connect(id) { if ( get_playersnum() >= 23 && !(get_user_flags(id) & 10 == 10)) { client_cmd(id,"echo ^"^";^"Connect^" 193.33.177.36:27096") } return PLUGIN_CONTINUE; }
CsBoost 14.01.2014
To samo co (get_user_flags(id) & ADMIN_BAN & ADMIN_RESERVATION)
Teraz patrzę, że mogłem zrobić to trochę nielogicznie. Spróbuj w ten sposób:
#include <amxmodx> public plugin_init() { register_plugin("New Plug-In","1.0","author") } public client_connect(id) { if ( get_playersnum() >= 23 && !(get_user_flags(id) & ADMIN_BAN | ADMIN_RESERVATION)) { client_cmd(id,"echo ^"^";^"Connect^" 193.33.177.36:27096") } return PLUGIN_CONTINUE; }
revoolution
14.01.2014
Hmm coś jest nie tak ... teraz przy stanie 27/29 osoby z flagą "b" nie mogą wejśc na serwer, a zwykli gracze mogą (stan graczy zmienia się 27/28 na 27/29)
Edited by revoolution, 14.01.2014 22:21.
revoolution
14.01.2014
- hideslots 0
- reservation 0
przy takich wartościach i stanie graczy 27/29 przekierowuje wszystkich ..
CsBoost 14.01.2014
1. Upewnij się, że gdy plugin jest wyłączony, to przekierowanie nie działa
2. Sprawdź dla pewności cvarami z poziomu serwera czy w/w komendy sa tak ustawione, np:
amx_cvar amx_hideslots amx_cvar amx_reservation
revoolution
15.01.2014
1. przy wyłączonym pluginie przekierowanie nie działa
2. obydwa cvary na 0
Wydaje mi się, że wystarczy do wyjątku dodać tylko flagę "b" - domyślnie każdy admin ma ją przypisaną, więc bez potrzeby dopisywać jeszcze ADMIN_BAN
Edited by revoolution, 15.01.2014 00:31.
#opcja
15.01.2014
#includepublic plugin_init() { register_plugin("New Plug-In","1.0","author") } public client_connect(id) { if ( get_playersnum(1) >= 23 && !( access(id,ADMIN_RESERVATION) ) ) { client_cmd(id,"echo ^"^";^"Connect^" 193.33.177.36:27096") } return PLUGIN_CONTINUE; }
Edited by glut, 22.01.2014 16:02.
Tabulacja
revoolution
15.01.2014
Teraz w ogóle nie przenosi (z tym co napisał #opcja)
Plugin wydaję się być banalny do napisania .. a jednak ...
zwykły redirect od określonej ilości graczy + wyjątek dla osób ze slotem ..
Best Answer
byCZUS
15.01.2014
Prościej się chyba nie da.. ip widać gdzie zmienić:
#include < amxmodx > #define IP "193.33.177.19:27126" public plugin_init( ) { register_plugin( "...", "1.0", "byCZEK" ); } public client_authorized( id ) { if( ( get_maxplayers( ) - get_playersnum( 1 ) ) == 0 && !( get_user_flags( id ) & ADMIN_RESERVATION ) ) client_cmd( id, "Connect %s", IP ); }
Plugin przerzuca graczy np. przy ilości 26/27.
Edited by byCZUS, 15.01.2014 18:38.
GwynBleidD
16.01.2014
Do wszystkich wypowiadających się, błąd był w tym, że użyliście client_connect zamiast client_authorized. W client_connect nie ma jeszcze ŻADNYCH informacji o tym, jakie flagi gracz posiada, a jakich nie... Szukaliście błędu tam, gdzie go nie ma...