|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
MAX Players per IP [v0.4.2]
|
|
Argus | Дата: Вторник, 27.05.2008, 18:54:27 | Сообщение # 1 |
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Статус: Не в сети
| MAX Players per IP [v0.4.2] Суть: Плагин ограничивает максимальное количество игроков способных зайти с одного IP адреса на сервер. Создавался с целью ограничить доступ на сервер игрокам играющим с одного компьютерного зала, с одного модема и т.д. Описание: Устанавливаем максимально допустимое значение игроков с одного IP адреса. При превышении этого значения "лишний" игрок при коннекте будет кикнут. Метод работы: При коннекте игрока его IP сравнивается с IP игроков находящихся на сервере. При достижении максимально разрешенного количества совпадений "коннектящийся" игрок кикается. Требования: * CS 1.6 * AMXMODX v1.76d (или другой версии) Установка: * скачайте плагин. разархивируйте. * расположите playersperip.amxx в .../cstrike/addons/amxmodx/plugins * разместите строку "playersperip.amxx" в файле .../cstrike/addons/amxmodx/configs/plugins.ini Переменные: amx_perip <0|1> (по-умолчанию=1) - выкл|вкл функциональность плагина. amx_perip_max <количество игроков> (по-умолчанию=2) - максимально допустимое количество игроков с одного IP адреса. Исходники: Code //amx_perip 0/1 - enable/disable plugin //amx_perip_max 1-... - how many players are acceptable from one ip //http://amxmodx.ucoz.ru/forum/4-1822-1
#include <amxmodx> #include <amxmisc>
#define PLUGIN "MAX Players Per IP" #define VERSION "0.4.2" #define AUTHOR "Argus & DaTa"
#define IP_SIZE 16 #define MAXPLAYERS 32
new const g_szKickString[] = "kick #%d ^"Sorry, there are too many players from your IP address^"" new g_aszIp[MAXPLAYERS+1][IP_SIZE] new g_maxplayers new g_pcvar_amx_perip, g_pcvar_amx_perip_max
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) g_pcvar_amx_perip = register_cvar("amx_perip", "1") g_pcvar_amx_perip_max = register_cvar("amx_perip_max", "2") g_maxplayers = get_maxplayers() }
public client_putinserver(id) { if( !get_pcvar_num(g_pcvar_amx_perip) ) return PLUGIN_CONTINUE
if (access(id, ADMIN_RESERVATION)) { return PLUGIN_CONTINUE }
get_user_ip(id, g_aszIp[id], IP_SIZE - 1, 1) static i, iCounter iCounter = 1 //Connecter Player for(i = 1; i <= g_maxplayers; i++) { if( !is_user_connected(i) || i == id ) continue if( equal(g_aszIp[id], g_aszIp[i]) ) iCounter++ } if( iCounter > get_pcvar_num(g_pcvar_amx_perip_max) ) server_cmd(g_szKickString, get_user_userid(id)) return PLUGIN_CONTINUE } Скачать плагин и исходник
Правила форума Поиск плагинов Последние сообщения форума
|
|
| |
Joker | Дата: Вторник, 27.05.2008, 19:25:58 | Сообщение # 2 |
Генерал-майор
Группа: Пользователи
Сообщений: 375
Статус: Не в сети
| Сильно ли будет этот плагин нагружать сервер? Это самое сравнивание IP адресов не будет влиять на работу сервера (при максимально количестве игрково)?
One death is a Tragedy One million is a Statistic...
|
|
| |
DaTa | Дата: Вторник, 27.05.2008, 19:54:22 | Сообщение # 3 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote for (i = 0; i <= maxpl; ++i) { get_user_ip(i,AuthIP,16,1) player = find_player("d",AuthIP) if (player) { if (equal(ip,AuthIP)) count++ }//if (player) }//for этот код не подсчитает в переменную count сколько игроков с таким же айпи уже играют на сервере, советую реорганизовать его ------------------ используй pcvar, так как client_connect довольно часто вызывается
|
|
| |
VEN | Дата: Вторник, 27.05.2008, 20:24:53 | Сообщение # 4 |
AMXX-Скриптинг-Эксперт
Группа: Админы
Сообщений: 1892
Статус: Не в сети
| Quote Сильно ли будет этот плагин нагружать сервер? Это самое сравнивание IP адресов не будет влиять на работу сервера (при максимально количестве игрково)? Это не "тяжелый" плагин, так что беспокойства излишни, однако, я бы рекомендовал автору кэшировать IP-адрес клиента в специально отведенный массив адресов единожды (например, при входе на сервер), т.к. получение неизменных данных более одного раза не является рациональным.
|
|
| |
DaTa | Дата: Вторник, 27.05.2008, 22:59:34 | Сообщение # 5 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| вот тебе возможный вариант решения, но я не проверял работает ли он
|
|
| |
Argus | Дата: Четверг, 02.10.2008, 01:09:24 | Сообщение # 6 |
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Статус: Не в сети
| Quote (DaTa) вот тебе возможный вариант решения, но я не проверял работает ли он во, спасибо, DaTa! + твой вариант намного удачнее. потестил - всё ок. утверждаю его. Добавлено (2008-10-02, 1:09 Am) --------------------------------------------- 02.10.2008 release v0.4.2 - добавлен иммунитет для игроков с флагом "b".
Правила форума Поиск плагинов Последние сообщения форума
|
|
| |
max_rip | Дата: Четверг, 02.10.2008, 12:39:10 | Сообщение # 7 |
Подполковник
Группа: Пользователи
Сообщений: 147
Статус: Не в сети
| если правильно подумать, то неплохобы еще вайт лист добавить. #ip количество разрешенных коннектов 192.168.0.1 20 а еще если добавить масоки под сетей, то вообще круто было бы).
|
|
| |
Argus | Дата: Четверг, 02.10.2008, 13:09:41 | Сообщение # 8 |
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Статус: Не в сети
| Quote (max_rip) если правильно подумать, то неплохобы еще вайт лист добавить. #ip количество разрешенных коннектов 192.168.0.1 20 а еще если добавить масоки под сетей, то вообще круто было бы). - дело в том, что вайт лист реализовывается таким образом, что привилегированным игрокам выдаётся флаг "b", ибо другими методами его никак не отличишь от других непривилегированных игроков играющих с этого же IP. поэтому, логичный вопрос - какие идентификаторы должен содержать этот самый "вайт лист"? непонятно. + на счёт "ip количество разрешенных коннектов" - тут нужно конфиг создавать, в котором должны находится ip, для которых общая граница max количества устанавливается индивидуально. + маски подсетей тоже хорошая идея.
Правила форума Поиск плагинов Последние сообщения форума
|
|
| |
max_rip | Дата: Пятница, 03.10.2008, 02:36:35 | Сообщение # 9 |
Подполковник
Группа: Пользователи
Сообщений: 147
Статус: Не в сети
| Quote (Argus) - дело в том, что вайт лист реализовывается таким образом, что привилегированным игрокам выдаётся флаг "b", ибо другими методами его никак не отличишь от других непривилегированных игроков играющих с этого же IP. поэтому, логичный вопрос - какие идентификаторы должен содержать этот самый "вайт лист"? непонятно. + на счёт "ip количество разрешённых коннектов" - тут нужно конфиг создавать, в котором должны находится ip, для которых общая граница max количества устанавливается индивидуально. э, не совсем вы меня правильно поняли+). Это один пункт такой +). Я его просто вайт листом обозвал +). убиваем одним конфигом всех зайцев. при 192,168,1,0 0 #в этой сети нет ограничений 192,168,2,0 10 #в этой сети максимум 10 ну еще маски дописать. Но мне кажется, лучше по умолчанию всех пускать, а в конфиге писать только те сети которые надо блочить. М.б. даже сделать два режима, работы: -использовать какой-то общий лимит, и остальных по списку конфига уточнять -все подключаются спокойно, кроме тех кто содержится в списке.
|
|
| |
mozart | Дата: Воскресенье, 16.11.2008, 13:35:17 | Сообщение # 10 |
Лейтенант
Группа: Пользователи
Сообщений: 46
Статус: Не в сети
| супер ! такое как ра3 искал !!!!
|
|
| |
F4RR3LL | Дата: Воскресенье, 16.11.2008, 13:37:33 | Сообщение # 11 |
Полковник
Группа: Скриптеры
Сообщений: 153
Статус: Не в сети
| Quote (Argus) Суть: Плагин ограничивает максимальное количество игроков способных зайти с одного IP адреса на сервер. Создавался с целью ограничить доступ на сервер игрокам играющим с одного компьютерного зала, с одного модема и т.д. Возможно я чегото недопонимаю, но для чего это?
=\
|
|
| |
mozart | Дата: Воскресенье, 16.11.2008, 15:01:33 | Сообщение # 12 |
Лейтенант
Группа: Пользователи
Сообщений: 46
Статус: Не в сети
| 6лин я ищу такой плагин который 6ы ограни4ивал по маске подсети !!! то есть 92.112 92.113 если кто может .. ( .ini )
|
|
| |
Argus | Дата: Понедельник, 17.11.2008, 01:23:44 | Сообщение # 13 |
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Статус: Не в сети
| Quote (F4RR3LL) Возможно я чегото недопонимаю, но для чего это? объясняю. у тебя есть локальный сервер, и на нём играют люди с разных адресов, каждый со своего подключения, каждый платил за свое подключение отдельно. но некая группа людей X решила скинуться, и приобрести одно подключение на всю группу, тем самым заплатив за 1-го, а играют все вместе. почему каждый платит за себя, а эти играют зайцами? где справедливость? и это при условии того, что сервер забит 20/20 постоянно, мест на всех не хватает. + ещё приобретают подключение для компьютерного зала и играет весь зал, мониторят - это не есть хорошо. по поводу маски, хорошая идея, ещё max_rip предлагал, но, к сожалению, у меня нету времени её реализовать
Правила форума Поиск плагинов Последние сообщения форума
|
|
| |
mozart | Дата: Понедельник, 17.11.2008, 02:06:35 | Сообщение # 14 |
Лейтенант
Группа: Пользователи
Сообщений: 46
Статус: Не в сети
| 6уду ждать с нетерпением ... или просить админов vbiosa поделится
|
|
| |
| AMX Mod X Russian Community © 2006-2024 | |
|
| |