AMX MOD X
Пятница, 26.04.2024, 23:46:38



Приветствую Вас Гость | RSS
[ Главная ] [ Ищу плагинчик - Страница 2 - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Модератор форума: AlMod, slogic  
AMX Mod X Форум » Плагины » Поиск плагинов » Ищу плагинчик
Ищу плагинчик
tavotДата: Вторник, 24.11.2009, 12:13:02 | Сообщение # 16
Генерал-майор
Группа: Пользователи
Сообщений: 256
Репутация: 3
Статус: Не в сети
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
Репутация: 21
Статус: Не в сети
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
Репутация: 3
Статус: Не в сети
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
Репутация: 21
Статус: Не в сети
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
Репутация: 3
Статус: Не в сети
Повторяюсь:
Вот когд из 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
Репутация: 3
Статус: Не в сети
У меня вроде как заработало:
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

Прикрепления: kicker.sma (1.6 Kb)


Сообщение отредактировал tavot - Вторник, 24.11.2009, 14:42:55
 
Black-ElkДата: Вторник, 24.11.2009, 16:37:20 | Сообщение # 22
Сержант
Группа: Пользователи
Сообщений: 23
Репутация: 0
Статус: Не в сети
tavot, покапайся лучше вот в этом :)
Прикрепления: bansub.rar (17.9 Kb)
 
tavotДата: Вторник, 24.11.2009, 16:47:54 | Сообщение # 23
Генерал-майор
Группа: Пользователи
Сообщений: 256
Репутация: 3
Статус: Не в сети
Black-Elk,
Ты првоерял то что я впрошлом своем посте выложил?
Сейчас погляжу, что ты там выложил.


Сообщение отредактировал tavot - Вторник, 24.11.2009, 16:54:45
 
Black-ElkДата: Вторник, 24.11.2009, 16:58:52 | Сообщение # 24
Сержант
Группа: Пользователи
Сообщений: 23
Репутация: 0
Статус: Не в сети
оттуда как я понимаю можно вырвать куски кода проверки на принадлежность ip к подсети указананной в файлике
+ вы забыли про пожелание "имеющих в Access flags буковку t (например)"
т.к. будет регалка для избранных :)
 
tavotДата: Вторник, 24.11.2009, 18:56:16 | Сообщение # 25
Генерал-майор
Группа: Пользователи
Сообщений: 256
Репутация: 3
Статус: Не в сети
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
Репутация: 3
Статус: Не в сети
Пипец мозг себе сломал, но вроде как заработало.
оказалось не с того места я шел )
все просто как джвады два.

Добавлено (24.11.2009, 19:24:20)
---------------------------------------------
Просто для теста, без чистки от ненужного и тому подобное.
Если у тебя все будет работать - можно будет подчистить...

Прикрепления: BanSubnets.sma (12.2 Kb)
 
Black-ElkДата: Вторник, 24.11.2009, 22:46:57 | Сообщение # 27
Сержант
Группа: Пользователи
Сообщений: 23
Репутация: 0
Статус: Не в сети
не работает вроде как.
меня при пустом списке не кикает с но-стим клиентом
 
tavotДата: Среда, 25.11.2009, 01:26:02 | Сообщение # 28
Генерал-майор
Группа: Пользователи
Сообщений: 256
Репутация: 3
Статус: Не в сети
В общем я в конец запутался...
Нужна помощь опытного скриптера.
Котоырй помощет осуществить проверку ip по маске.


Сообщение отредактировал tavot - Среда, 25.11.2009, 02:21:25
 
Black-ElkДата: Среда, 25.11.2009, 03:32:49 | Сообщение # 29
Сержант
Группа: Пользователи
Сообщений: 23
Репутация: 0
Статус: Не в сети
подскажите почему не работает :(
Прикрепления: nosteam.rar (1.8 Kb)
 
AnOrangeJuiceДата: Среда, 25.11.2009, 08:36:01 | Сообщение # 30
Лейтенант
Группа: Пользователи
Сообщений: 62
Репутация: 2
Статус: Не в сети
Code
action(id)

заменить на

Code
public client_putinserver(id)
 
AMX Mod X Форум » Плагины » Поиск плагинов » Ищу плагинчик
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

AMX Mod X Russian Community © 2006-2024