AMX MOD X
Понедельник, 29.04.2024, 04:42:51



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

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

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Обсуждение сторонних плагинов » уважаемые need help.( anti_say плаг )
уважаемые need help.( anti_say плаг )
mozartДата: Понедельник, 17.11.2008, 02:00:00 | Сообщение # 1
Лейтенант
Группа: Пользователи
Сообщений: 46
Репутация: 0
Статус: Не в сети
не идет у меня на версии 1.8.0 . 1.8.1
при компилировании исходника все впорядке оши6ок нет
при 3пуске - run time error .. при включении debug ука3ало на 44 строку кажется.очень хо4еться что6 он ра6отал а вот 3нание pawn у меня никакого для ....
Code

#include <amxmodx>
#include <amxmisc>

new cheater_banned = 0

stock const CheatReports[128][128]    

public plugin_init()
{
     register_plugin("Cheat Messages Ban","1.4","dr.aft")

     register_clcmd("say", "CheckCheatReport")
     register_clcmd("say_team", "CheckCheatReport")

     register_cvar("anti_say_bantime", "99999999") // 5 Days BAN (7200 minutes)
     register_cvar("anti_say_bantype", "1") // 3 - Kicking only 2 - AMXBANS, 1 - IP, 0 - SteamID

     set_task(1.0, "EnableAntiCheat")
}

new antisaylog[64]

public EnableAntiCheat()
{
    new antisayconfig[64]
    get_configsdir(antisayconfig, 64)
    format(antisaylog, 63, "%s/antisay.log", antisayconfig)
       
           format(antisayconfig, 63, "%s/antisay.ini", antisayconfig)
       
    new line = 0
    new textsize = 0
    new text[128]
    new tempstr[128]
    new i = 0

           if (file_exists(antisayconfig))
           {
                   while(read_file(antisayconfig,line,text,255,textsize))
                   {
                           f  ormat(tempstr,128,"%s",text)
                           CheatReports[i++]=tempstr    // ВОТ ЕТО
                           line++
                   }
           }
}

public Ban(id)
{
    new cheatername[32], ip[32], authid[32]
    get_user_name(id, cheatername, 31)    
    get_user_ip(id, ip, 31, 1)    
    get_user_authid(id, authid, 31)

    client_print(0, print_chat, "[eXtreme ANTICHEAT] - Player '%s' - Cheat 'MultiHack'", cheatername, get_cvar_num("anti_say_bantime"))
    switch(get_cvar_num("anti_say_bantype"))
    {
     case 0:
     server_cmd("banid %d #%d Multihack; writeid", get_cvar_num("anti_say_bantime"), get_user_userid(id))     
     case 1:
     server_cmd("addip %d %s; writeip", get_cvar_num("anti_say_bantime"), ip)     
     case 3:
     client_cmd(id, "quit")
     default:
     server_cmd("amx_ban %d #%d Multihack", get_cvar_num("anti_say_bantime"), get_user_userid(id))     
        
    }
    log_to_file(antisaylog, "^"%s^" <%s> - [%s] - Multihack", cheatername, ip, authid)
    cheater_banned = 1
}

public CheckCheatReport(id)
{
    new said[192]
    cheater_banned = 0
    new i, j
    new cheatername[32]
    get_user_name(id, cheatername, 32)
    read_args(said, 192)
    for(i = 0 ; i < sizeof (CheatReports) ; i++)
    {
      if(containi(said, CheatReports[i][j]) != -1)
     {
      if(cheater_banned == 0)
      {
       Ban(id)         
      }
     }
    }     

}

то есть "I" есть а вот 3а4ем там i++ я ето не 3наю )
то есть у меня 6ыла RHLG еще но. гру3ило с 4мя -5ю серверами комп сильнее
счас у6рал - воо6ще не лагает а вот 3а мессаги не 6анит = хо4ется 3нач старый до6рый плагин ()

Сообщение отредактировал mozart - Понедельник, 17.11.2008, 02:05:22
 
HatebreederДата: Понедельник, 17.11.2008, 08:58:04 | Сообщение # 2
Подполковник
Группа: Пользователи
Сообщений: 120
Репутация: 0
Статус: Не в сети
покажи 44 строку
 
F4RR3LLДата: Понедельник, 17.11.2008, 14:33:11 | Сообщение # 3
Полковник
Группа: Скриптеры
Сообщений: 153
Репутация: 2
Статус: Не в сети
Где то тут .. Только что тебе это даст? :)
Quote

{
while(read_file(antisayconfig,line,text,255,textsize))
{
f ormat(tempstr,128,"%s",text)
CheatReports[i++]=tempstr
line++
}
}

Quote (mozart)
не идет у меня на версии 1.8.0 . 1.8.1

Странно .. У меня прекрасно работает на 1.8.1 ....


=\
 
DaTaДата: Понедельник, 17.11.2008, 16:22:21 | Сообщение # 4
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
амхх тут непричем, или исправь размермассива CheatReports[][]
Code
stock const CheatReports[128][128]

Code
Например на
stock CheatReports[512][128]

и поставь проверку на переполнение массива
Code
                   while(read_file(antisayconfig,line,text,255,textsize) && i < sizeof(CheatReports))
                     {
                             format(tempstr,128,"%s",text)
                             CheatRe ports[i++]=tempstr    // ВОТ ЕТО
 
mozartДата: Понедельник, 17.11.2008, 16:46:25 | Сообщение # 5
Лейтенант
Группа: Пользователи
Сообщений: 46
Репутация: 0
Статус: Не в сети
спс
а то действительно вдруг у меня в ини 6олее 128 строк.. я не считал )
 
pikeДата: Суббота, 27.12.2008, 09:27:26 | Сообщение # 6
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Quote (F4RR3LL)
У меня прекрасно работает на 1.8.1 ....

У меня так же.
Хочу немного изменить , сделать чтение из .ini вида "Название чита" "Текстовое сообщение",
только не знаю как blush
 
draftДата: Суббота, 27.12.2008, 10:21:46 | Сообщение # 7
Полковник
Группа: Пользователи
Сообщений: 225
Репутация: 3
Статус: Не в сети
Пользуйся лучше бета-версией ZETA, в неё уже включён antisay.ini (притом на 300 строчек, а могу и больше сделать)
 
pikeДата: Суббота, 27.12.2008, 12:03:07 | Сообщение # 8
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Quote (draft)
включён antisay.ini (притом на 300 строчек, а могу и больше сделать)

Спасибо, у меня на 500 только не знаю как прикрутить чтение "Название чита" "Текстовое сообщение"
 
draftДата: Суббота, 27.12.2008, 14:32:28 | Сообщение # 9
Полковник
Группа: Пользователи
Сообщений: 225
Репутация: 3
Статус: Не в сети
У тебя свой плагин? Используй обычный парсер строки и два двумерных массива - один с названиями чита, другой с чит-строкой. Трёхмерный массив использовать я бы не рекомендовал - слишком много памяти жрёт.
 
pikeДата: Суббота, 27.12.2008, 18:23:04 | Сообщение # 10
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Quote (draft)
У тебя свой плагин?

Немного измененный anti_say
Quote (draft)
Используй обычный парсер строки и два двумерных массива

Можно пример, я с терминами не разобрался blush
 
draftДата: Воскресенье, 28.12.2008, 04:38:08 | Сообщение # 11
Полковник
Группа: Пользователи
Сообщений: 225
Репутация: 3
Статус: Не в сети
http://www.amxmodx.org/funcwiki.php?go=func&id=58

А вместо одномерных используешь двумерные массивы.

 
pikeДата: Воскресенье, 28.12.2008, 17:53:40 | Сообщение # 12
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
draft, если не затруднит,можете выложить нужные строки ?
 
ZHosTikДата: Среда, 11.02.2009, 15:41:25 | Сообщение # 13
Сержант
Группа: Пользователи
Сообщений: 20
Репутация: 0
Статус: Не в сети
Quote (pike)
Хочу немного изменить , сделать чтение из .ini вида "Название чита" "Текстовое сообщение",

не помню как было раньше но я исправил так
log_to_file("antisaylog.txt", " %s | %s | Ban 4itera: %s ^n", ip, cheatername, said)
пишет в лог - папку амх, так как я в сетке, то оставил тока айпи
 
pikeДата: Вторник, 08.09.2009, 06:38:09 | Сообщение # 14
Полковник
Группа: Пользователи
Сообщений: 207
Репутация: 4
Статус: Не в сети
Quote (draft)
Используй обычный парсер строки и два двумерных массива - один с названиями чита, другой с чит-строкой

Изменил так, "Текст в чате" читает
форма в ini
Code
"Название чита" "Текст в чате"

Code
public EnableAntiCheat()
{
        new antisayconfig[64]
        get_configsdir(antisayconfig, 64)
        format(antisaylog, 63, "addons/logs/cheatmessage.txt", antisayconfig)
               
               format(antisayconfig, 63, "addons/config/message.cfg", antisayconfig)
               
        new line = 0
        new textsize = 0
        new text[128]
        new cheat[128]
        new chat_text[128]
        new i = 0

               if (file_exists(antisayconfig))
               {
                       while(read_file(antisayconfig,line,text,255,textsize))
                       {      
          p   arse(text, cheat, 128, chat_text, 128)
                     CheatReports[i++]=chat_text
                     line++

Как оптимальнее занести "Название чита" при бане ?

http://forums.alliedmods.net/showthread.php?t=59328&highlight=anti_say

Добавлено (07.09.2009, 18:56:51)
---------------------------------------------
Название чита в причине берется из самой нижней строки ini файла

Добавлено (08.09.2009, 06:38:09)
---------------------------------------------
Разобрался

Code
            parse(text, cheat, 128, chat_text, 128)
                      CheatNames[i] =cheat
                      CheatReports[i++]=chat_text
                      line++


Сообщение отредактировал pike - Понедельник, 07.09.2009, 21:10:59
 
AMX Mod X Форум » Плагины » Обсуждение сторонних плагинов » уважаемые need help.( anti_say плаг )
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024