|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
Ищу плагинчик
|
|
tavot | Дата: Вторник, 24.11.2009, 12:13:02 | Сообщение # 16 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| ZETA, Да, ! я не обратил внимания. А диапазон получается что вобще не вычисляется. Он у тебя сравнивает ip вида 10,1,2,3 с диапазонами 10,0,0,0 - естествено совпадений нет. Правда вероятность большая что я не прав, так как в работе с файлами не силен.... но мне кажется именно так и есть. Добавлено (24.11.2009, 12:13:02) --------------------------------------------- Так давайте по буквам : Code public client_putinserver(id) { new authid[32],ip[32],text[65],line,num get_user_authid(id,authid,31) if(!containi(authid,"STEAM_0:")) { // если клиент не стим то get_user_ip(id,ip,sizeof(ip)-4,1) // получаем его ip for(line=0;read_file(rangeip,line,text,sizeof(text),num);line++) { //читаем файл if(num>0) { if(containi(text,ip)) return PLUGIN_HANDLED // Если соответствия есть то заканчиваем } } } else return PLUGIN_HANDLED ///если стим то заканчиваем set_task(10.0,"func_show_motd",id) // если соответсвие было в файле return PLUGIN_HANDLED } Верно?
Сообщение отредактировал tavot - Вторник, 24.11.2009, 12:13:35 |
|
| |
ZETA | Дата: Вторник, 24.11.2009, 12:37:26 | Сообщение # 17 |
Генерал-майор
Группа: Скриптеры
Сообщений: 369
Статус: Не в сети
| Quote (tavot) Он у тебя сравнивает ip вида 10,1,2,3 с диапазонами 10,0,0,0 - естествено совпадений нет. Моя идея такова: в диапазоне меняется только последний бит, поэтому IP жертвы берем без последнего бита, для этого я написал длину sizeof(ip)-4. Это конечно не совсем правильно, но я думал прокатит... Quote (tavot) set_task(10.0,"func_show_motd",id) // если соответсвие было в файле Если не было, в остальном правильно...
Говори что думаешь и думай что говоришь...
Сообщение отредактировал ZETA - Вторник, 24.11.2009, 12:40:06 |
|
| |
tavot | Дата: Вторник, 24.11.2009, 12:39:24 | Сообщение # 18 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| ZETA, Тоесть ip минус 4 символа в конце? получается: 192,168,168,168 - минус 4 символа 192,168,168 А вот другая стуация 10,1,2,3 - минус 4 символа 10,1 Думаю не катит.
|
|
| |
ZETA | Дата: Вторник, 24.11.2009, 12:41:15 | Сообщение # 19 |
Генерал-майор
Группа: Скриптеры
Сообщений: 369
Статус: Не в сети
| Quote (tavot) А вот другая стуация 10,1,2,3 - минус 4 символа 10,1 Думаю не катит. Поэтому-то и неправильно, вот тут биты по идее вычисляются правильно, но что-то о5 не работает. Code public client_putinserver(id) { new authid[32],ip[32],text[65],line,num new num1[4],num2[4],num3[4],showmotd=1 get_user_authid(id,authid,31) if(containi(authid,"VALVE_0:")) { get_user_ip(id,ip,sizeof(ip)-1,1) replace_all(ip, sizeof(ip)-1, ".", " ") parse(ip,num1,sizeof(num1),num2,sizeof(num2),num3,sizeof(num3)) format(ip,sizeof(ip),"%s.%s.%s",num1,num2,num3) for(line=0;read_file(rangeip,line,text,sizeof(text),num);line++) { if(num>0) { if(containi(text,ip)) showmotd=0 } }
if(showmotd==1) set_task(10.0,"func_show_motd",id) } }
Говори что думаешь и думай что говоришь...
|
|
| |
tavot | Дата: Вторник, 24.11.2009, 13:54:46 | Сообщение # 20 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| Повторяюсь: Вот когд из show_ip Code ip_to_num(const ip[]) { new n1[4], n2[4], n3[4], n4[4] new tmpStr[16] copy(tmpStr, sizeof(tmpStr)-1, ip) replace_all(tmpStr, sizeof(tmpStr)-1, ".", " ") if (parse(tmpStr, n1, sizeof(n1)-1, n2, sizeof(n2)-1, n3, sizeof(n3)-1, n4, sizeof(n4)-1) != 4) return -1 // wrong ip address return (str_to_num(n1) << SHIFT_24) + (str_to_num(n2) << SHIFT_16) + (str_to_num(n3) << SHIFT_8) + str_to_num(n4) } может поможет. Добавлено (24.11.2009, 13:54:46) --------------------------------------------- ZETA, format(ip,sizeof(ip),"%s.%s.%s",num1,num2,num3) будет ip 192.168.50 А надо ( в фалике то ip 192.168.50.0) format(ip,sizeof(ip),"%s.%s.%s.0",num1,num2,num3) Нов се равно что то не так.
|
|
| |
tavot | Дата: Вторник, 24.11.2009, 15:36:51 | Сообщение # 21 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| У меня вроде как заработало: Code /* PlayerKicker v0.2 */
#include <amxmodx> #include <amxmisc>
#define PLUGIN "PlayerKicker" #define VERSION "0.2" #define AUTHOR "ZETA [M|E|N]"
new rangeip[81]
public plugin_init() { register_plugin("PlayerKicker","0.2","ZETA [M|E|N] and tavot") }
public plugin_cfg() { get_configsdir(rangeip,81) format(rangeip,80,"%s/RangeIP.txt",rangeip) }
public client_putinserver(id) { new authid[32],ip[32],text[65],line,num new num1[4],num2[4],num3[4],showmotd=1 get_user_authid(id,authid,31) get_user_ip(id,ip,sizeof(ip)-1,1) server_print("Player ip %s", ip) if(!containi(authid,"VALVE_0:")) { server_print("authid VALVE 1") replace_all(ip, sizeof(ip)-1, ".", " ") parse(ip,num1,sizeof(num1),num2,sizeof(num2),num3,sizeof(num3)) format(ip,sizeof(ip),"%s.%s.%s.0",num1,num2,num3) s erver_print("Ip range ip %s.%s.%s.0",num1,num2,num3) for(line=0;read_file(rangeip,line,text,sizeof(text),num);line++) { if(num>0) { if(!containi(text,ip)) server_print(" Ip player = ip range ") }else{ server_print(" Ip player != ip range ") set_task(10.0,"func_show_motd",id) } } } } public func_show_motd(id) { show_motd(id,"You have no-steam version Counter-Strike","PlayerKicker") set_task(5.0,"func_disconnect",id) }
public func_disconnect(id) { client_cmd(id,"disconnect") return PLUGIN_HANDLED } Добавлено (24.11.2009, 14:42:37) --------------------------------------------- Только думается файлик будет огромный если так диапазоны проверять. Или сделать проверку и для a.b.C.d сети. из головы вылетиле как прально называется. Добавлено (24.11.2009, 15:36:51) --------------------------------------------- вот еще как можно: http://amxmodx.ucoz.ru/forum/9-3631-1
Сообщение отредактировал tavot - Вторник, 24.11.2009, 14:42:55 |
|
| |
Black-Elk | Дата: Вторник, 24.11.2009, 16:37:20 | Сообщение # 22 |
Сержант
Группа: Пользователи
Сообщений: 23
Статус: Не в сети
| tavot, покапайся лучше вот в этом
|
|
| |
tavot | Дата: Вторник, 24.11.2009, 16:47:54 | Сообщение # 23 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| Black-Elk, Ты првоерял то что я впрошлом своем посте выложил? Сейчас погляжу, что ты там выложил.
Сообщение отредактировал tavot - Вторник, 24.11.2009, 16:54:45 |
|
| |
Black-Elk | Дата: Вторник, 24.11.2009, 16:58:52 | Сообщение # 24 |
Сержант
Группа: Пользователи
Сообщений: 23
Статус: Не в сети
| оттуда как я понимаю можно вырвать куски кода проверки на принадлежность ip к подсети указананной в файлике + вы забыли про пожелание "имеющих в Access flags буковку t (например)" т.к. будет регалка для избранных
|
|
| |
tavot | Дата: Вторник, 24.11.2009, 18:56:16 | Сообщение # 25 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| Black-Elk, Я тебя про другое спрашивал ... работает или нет... ( давай на ТЫ ок?... я еще молодой ) Кусок кода да, можно, но думаю что проще будет свой код туда вставить, чем от туда вырывать Вобщем надо поглядеть.... Пока гляжу, может еще кто поглядит. ? Добавлено (24.11.2009, 18:26:56) --------------------------------------------- Black-Elk, Полгядел на плагин, для меня немного сложновато илил надо потратить кучу времени, которого у меня сейчас нету. Добавлено (24.11.2009, 18:34:37) --------------------------------------------- Втавитьтуда этот код не получится - так как там указываются диапазоны не которые нуджны тебе с приорететом, а обратные. А вдырать код у меня не получится. Добавлено (24.11.2009, 18:51:44) --------------------------------------------- Хотя.... если нервов хватит, то может все и получится ) Добавлено (24.11.2009, 18:56:16) --------------------------------------------- блин не туда опять ушел. сделал что бы проверялось на стим/нонстим те подсети которые есть в списке. а надо наоборот....
|
|
| |
tavot | Дата: Вторник, 24.11.2009, 19:24:20 | Сообщение # 26 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| Пипец мозг себе сломал, но вроде как заработало. оказалось не с того места я шел ) все просто как джвады два.Добавлено (24.11.2009, 19:24:20) --------------------------------------------- Просто для теста, без чистки от ненужного и тому подобное. Если у тебя все будет работать - можно будет подчистить...
|
|
| |
Black-Elk | Дата: Вторник, 24.11.2009, 22:46:57 | Сообщение # 27 |
Сержант
Группа: Пользователи
Сообщений: 23
Статус: Не в сети
| не работает вроде как. меня при пустом списке не кикает с но-стим клиентом
|
|
| |
tavot | Дата: Среда, 25.11.2009, 01:26:02 | Сообщение # 28 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| В общем я в конец запутался... Нужна помощь опытного скриптера. Котоырй помощет осуществить проверку ip по маске.
Сообщение отредактировал tavot - Среда, 25.11.2009, 02:21:25 |
|
| |
Black-Elk | Дата: Среда, 25.11.2009, 03:32:49 | Сообщение # 29 |
Сержант
Группа: Пользователи
Сообщений: 23
Статус: Не в сети
| подскажите почему не работает
|
|
| |
AnOrangeJuice | Дата: Среда, 25.11.2009, 08:36:01 | Сообщение # 30 |
Лейтенант
Группа: Пользователи
Сообщений: 62
Статус: Не в сети
| заменить на Code public client_putinserver(id)
|
|
| |
| AMX Mod X Russian Community © 2006-2025 | |
|
| |