Конект на полный сервер без резервного слота . |
Здравствуйте, гость Вход | Регистрация
Наши новости:
|
|
|
Конект на полный сервер без резервного слота . |
sambo
|
20.2.2014, 17:21
Сообщение
|
![]() |
Кто сможет подправить плагин не бесплатно естественно .
1 Подправить для админов по айпи и стим айди у которых админка прописана с паролем . "STEAM_0:0:айди" "пароль" "флаги" "ca" 2 Изменить выбор игрока для кика . - Имунитет для админов . - Кик с самым большим пингом.
slot_reserv_2_.sma ( 4,37 килобайт )
Кол-во скачиваний: 14sma Код // ================================================================================ ================ // // Plugin: Full Server Slot Reservation // Version: 0.2.1 // Authors: PomanoB & droper // // Copyright © 2011 - 2013 // // ================================================================================ ================ #include < amxmodx > #include < orpheu > // ================================================================================ ================ // // Макроконстанты // // ================================================================================ ================ #define PLUGIN "Full Server Slot Reservation" #define VERSION "0.2.1" #define AUTHOR "PomanoB & droper" // Проверять пароль _pw или нет #define PASSWORD_CHECK // Причина кика #define KICK_REASON "Slot reservation! You unluck player!" #if defined PASSWORD_CHECK // Строка должна быть такой же как и в кваре amx_password_field ( но \ в начале и конце обязательны ) new const g_passwordField[] = "\_pw\"; #endif // ================================================================================ ================ // // Глобальные переменные // // ================================================================================ ================ new g_maxplayers = 0; // ================================================================================ ================ // // plugin_precache () // // ================================================================================ ================ public plugin_precache ( ) { register_plugin ( PLUGIN, VERSION, AUTHOR ); OrpheuRegisterHook ( OrpheuGetFunction ( "SV_ConnectClient" ), "OnSV_ConnectClient" ); g_maxplayers = get_maxplayers ( ); } // ================================================================================ ================ // // OnSV_ConnectClient () // // ================================================================================ ================ public OrpheuHookReturn:OnSV_ConnectClient ( ) { static szInfo[512], szName[ 32 ], iPos, iCount, iFlags; read_args ( szInfo, charsmax( szInfo ) ); szInfo[ strlen ( szInfo ) - 1 ] = EOS; iPos = contain ( szInfo, "\name\" ); copyc ( szName, charsmax( szName ), szInfo[ iPos + 6 ], '\' ); #if defined PASSWORD_CHECK static szPassword[ 64 ]; iPos = contain ( szInfo, g_passwordField ); if ( iPos != -1 ) { copyc ( szPassword, charsmax( szPassword), szInfo[ iPos + charsmax( g_passwordField ) ], '\' ); } else { szPassword[ 0 ] = EOS; } #endif iCount = admins_num ( ); for ( iPos = 0; iPos < iCount; iPos++ ) { iFlags = admins_lookup ( iPos, AdminProp_Flags ); admins_lookup ( iPos, AdminProp_Auth, szInfo, charsmax( szInfo ) ); if ( iFlags & ( FLAG_AUTHID | FLAG_IP ) ) { continue; } if ( iFlags & FLAG_TAG ) { if ( iFlags & FLAG_CASE_SENSITIVE ) { if ( contain ( szName, szInfo ) != -1 ) { break; } } else if ( contain ( szName, szInfo ) != -1 ) { break; } } else { if ( iFlags & FLAG_CASE_SENSITIVE ) { if ( equal ( szInfo, szName ) ) { break; } } else { if ( equali ( szInfo, szName ) ) { break; } } } } if ( iPos == iCount ) { return OrpheuIgnored; } #if defined PASSWORD_CHECK if ( !( iFlags & FLAG_NOPASS ) ) { admins_lookup ( iPos, AdminProp_Password, szInfo, charsmax( szInfo ) ); if ( !equal ( szInfo, szPassword ) ) { return OrpheuIgnored; } } #endif iPos = findKickedPlayer ( ); if ( iPos ) { server_cmd ( "kick #%d ^"%s^"", get_user_userid ( iPos ), KICK_REASON ); server_exec ( ); } return OrpheuIgnored; } // ================================================================================ ================ // // findKickedPlayer () // // ================================================================================ ================ public findKickedPlayer() { static i, iUnluckPlayer, iPlayersNum; iUnluckPlayer = 0; iPlayersNum = 0; for ( i = 1; i <= g_maxplayers; i++ ) { if ( is_user_connected ( i ) ) { iPlayersNum++ if ( !iUnluckPlayer && !is_user_bot ( i ) ) { iUnluckPlayer = i; } } } if ( iUnluckPlayer && iPlayersNum == g_maxplayers ) { return iUnluckPlayer; } return 0; } Топик авторов тут <--- Кликабельно Написал автору но у него нет или времени или желания . К сожалению после связи с ним тема была редактирована и вырезаны несколько полезных коментов . Так что в коде нужно разбираться самим. Аналогов этому плагину нет к сожалению , новый его вариант был бы полезен всем .
Отредактировал: sambo, - 20.2.2014, 17:27
|
|
|
|
Vasabla
|
10.3.2014, 13:46
Сообщение
|
|
|
Кто сможет подправить плагин не бесплатно естественно . 1 Подправить для админов по айпи и стим айди у которых админка прописана с паролем . "STEAM_0:0:айди" "пароль" "флаги" "ca" 2 Изменить выбор игрока для кика . - Имунитет для админов . - Кик с самым большим пингом.
slot_reserv_2_.sma ( 4,37 килобайт )
Кол-во скачиваний: 14sma Код // ================================================================================ ================ // // Plugin: Full Server Slot Reservation // Version: 0.2.1 // Authors: PomanoB & droper // // Copyright © 2011 - 2013 // // ================================================================================ ================ #include < amxmodx > #include < orpheu > // ================================================================================ ================ // // Макроконстанты // // ================================================================================ ================ #define PLUGIN "Full Server Slot Reservation" #define VERSION "0.2.1" #define AUTHOR "PomanoB & droper" // Проверять пароль _pw или нет #define PASSWORD_CHECK // Причина кика #define KICK_REASON "Slot reservation! You unluck player!" #if defined PASSWORD_CHECK // Строка должна быть такой же как и в кваре amx_password_field ( но \ в начале и конце обязательны ) new const g_passwordField[] = "\_pw\"; #endif // ================================================================================ ================ // // Глобальные переменные // // ================================================================================ ================ new g_maxplayers = 0; // ================================================================================ ================ // // plugin_precache () // // ================================================================================ ================ public plugin_precache ( ) { register_plugin ( PLUGIN, VERSION, AUTHOR ); OrpheuRegisterHook ( OrpheuGetFunction ( "SV_ConnectClient" ), "OnSV_ConnectClient" ); g_maxplayers = get_maxplayers ( ); } // ================================================================================ ================ // // OnSV_ConnectClient () // // ================================================================================ ================ public OrpheuHookReturn:OnSV_ConnectClient ( ) { static szInfo[512], szName[ 32 ], iPos, iCount, iFlags; read_args ( szInfo, charsmax( szInfo ) ); szInfo[ strlen ( szInfo ) - 1 ] = EOS; iPos = contain ( szInfo, "\name\" ); copyc ( szName, charsmax( szName ), szInfo[ iPos + 6 ], '\' ); #if defined PASSWORD_CHECK static szPassword[ 64 ]; iPos = contain ( szInfo, g_passwordField ); if ( iPos != -1 ) { copyc ( szPassword, charsmax( szPassword), szInfo[ iPos + charsmax( g_passwordField ) ], '\' ); } else { szPassword[ 0 ] = EOS; } #endif iCount = admins_num ( ); for ( iPos = 0; iPos < iCount; iPos++ ) { iFlags = admins_lookup ( iPos, AdminProp_Flags ); admins_lookup ( iPos, AdminProp_Auth, szInfo, charsmax( szInfo ) ); if ( iFlags & ( FLAG_AUTHID | FLAG_IP ) ) { continue; } if ( iFlags & FLAG_TAG ) { if ( iFlags & FLAG_CASE_SENSITIVE ) { if ( contain ( szName, szInfo ) != -1 ) { break; } } else if ( contain ( szName, szInfo ) != -1 ) { break; } } else { if ( iFlags & FLAG_CASE_SENSITIVE ) { if ( equal ( szInfo, szName ) ) { break; } } else { if ( equali ( szInfo, szName ) ) { break; } } } } if ( iPos == iCount ) { return OrpheuIgnored; } #if defined PASSWORD_CHECK if ( !( iFlags & FLAG_NOPASS ) ) { admins_lookup ( iPos, AdminProp_Password, szInfo, charsmax( szInfo ) ); if ( !equal ( szInfo, szPassword ) ) { return OrpheuIgnored; } } #endif iPos = findKickedPlayer ( ); if ( iPos ) { server_cmd ( "kick #%d ^"%s^"", get_user_userid ( iPos ), KICK_REASON ); server_exec ( ); } return OrpheuIgnored; } // ================================================================================ ================ // // findKickedPlayer () // // ================================================================================ ================ public findKickedPlayer() { static i, iUnluckPlayer, iPlayersNum; iUnluckPlayer = 0; iPlayersNum = 0; for ( i = 1; i <= g_maxplayers; i++ ) { if ( is_user_connected ( i ) ) { iPlayersNum++ if ( !iUnluckPlayer && !is_user_bot ( i ) ) { iUnluckPlayer = i; } } } if ( iUnluckPlayer && iPlayersNum == g_maxplayers ) { return iUnluckPlayer; } return 0; } Топик авторов тут <--- Кликабельно Написал автору но у него нет или времени или желания . К сожалению после связи с ним тема была редактирована и вырезаны несколько полезных коментов . Так что в коде нужно разбираться самим. Аналогов этому плагину нет к сожалению , новый его вариант был бы полезен всем . 1. Это невозможно. (В 2х словах: SteamID входящего игрока доступен уже после проверки на заполненность сервера). |
|
|
|
![]() ![]() |