Русское сообщество по скриптингу

[AMXX] Displaying debug trace

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

[AMXX] Displaying debug trace

Сообщение makc121 » 12 ноя 2009, 23:27

Парни помогите исправить ошибку
L 11/12/2009 - 11:39:50: [AMXX] Run time error 4 (plugin "anti_reklama_NIK.amxx") - debug not enabled!
L 11/12/2009 - 11:39:50: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).
если не прописано anti_reklama_NIK.amxx debug

L 11/12/2009 - 11:39:41: [AMXX] Run time error 4: index out of bounds
L 11/12/2009 - 11:39:41: [AMXX] [0] anti_reklama_NIK.sma::client_infochanged (line 41)
L 11/12/2009 - 11:39:41: [AMXX] Displaying debug trace (plugin "anti_reklama_NIK.amxx")

если прописано anti_reklama_NIK.amxx debug

побскажите что делать !??? и что это вообще за ошибка ??
Аватара пользователя
makc121
 
Сообщения: 116
Зарегистрирован: 13 окт 2009, 22:18
Благодарил (а): 24 раз.
Поблагодарили: 5 раз.

Re: [AMXX] Displaying debug trace

Сообщение makc121 » 06 янв 2010, 14:41

теперь вообще серв этот плагин не видет !! (((
Аватара пользователя
makc121
 
Сообщения: 116
Зарегистрирован: 13 окт 2009, 22:18
Благодарил (а): 24 раз.
Поблагодарили: 5 раз.

Re: [AMXX] Displaying debug trace

Сообщение DJ_WEST » 06 янв 2010, 15:38

теперь вообще серв этот плагин не видет !! (((

Что значит не видет? Не загружается или что?
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: [AMXX] Displaying debug trace

Сообщение makc121 » 06 янв 2010, 18:08

Вы должны зарегистрироваться, чтобы видеть ссылки. ... 406823.jpg
вот короче и он вообще не работает
Аватара пользователя
makc121
 
Сообщения: 116
Зарегистрирован: 13 окт 2009, 22:18
Благодарил (а): 24 раз.
Поблагодарили: 5 раз.

Re: [AMXX] Displaying debug trace

Сообщение DJ_WEST » 06 янв 2010, 19:30

вот короче и он вообще не работает

При компиляции ошибки были? В логах ошибки смотри и amxx plugins набери и смотри.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: [AMXX] Displaying debug trace

Сообщение makc121 » 06 янв 2010, 22:18

При компиляции ошибки были? нет небыло
В логах ошибки смотри чисто нету
amxx plugins набери и смотри наберал смотрел показывает что активен
Аватара пользователя
makc121
 
Сообщения: 116
Зарегистрирован: 13 окт 2009, 22:18
Благодарил (а): 24 раз.
Поблагодарили: 5 раз.

Re: [AMXX] Displaying debug trace

Сообщение DJ_WEST » 07 янв 2010, 02:18

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Block Names"
#define VERSION "1.1"
#define AUTHOR "DJ_WEST"

#define MAX_NAMES 200
#define KICK_REASON "This name is forbidden!"

new g_BlockNames[MAX_NAMES][32], g_Count

public plugin_init()
    
register_plugin(PLUGINVERSIONAUTHOR)

public 
plugin_cfg()
{
    static 
s_File[128], i_Files_Line[32]
    
get_configsdir(s_Filecharsmax(s_File))
    
format(s_Filecharsmax(s_File),"%s/BlockNames.ini"s_File)
    
    
i_File fopen(s_File"rt")
    
    while (!
feof(i_File))
    {
        
fgets(i_Files_Linecharsmax(s_Line))
        
        if (
s_Line[0])
        {
            
s_Line[strlen(s_Line)-1] = 0
            g_BlockNames
[g_Count] = s_Line
            g_Count
++
        }
    }
}

public 
client_connect(id)
{
    static 
s_Name[32]
    
get_user_name(ids_Namecharsmax(s_Name))
    
    
Check_Name(ids_Name)
}

public 
client_infochanged(id)
{
    if (!
is_user_connected(id))
    return 
PLUGIN_CONTINUE
    
    
static s_Name[32]
    
get_user_info(id"name"s_Namecharsmax(s_Name)) 
    
    
Check_Name(ids_Name)
    
    return 
PLUGIN_CONTINUE


public 
Check_Name(id, const s_Name[])
{
    static 
i_UserID
    i_UserID 
get_user_userid(id)
    
    for (new 
0g_Counti++)
        if (
containi(s_Nameg_BlockNames[i]) != -1)
        {
            
server_cmd("kick #%d %s"i_UserIDKICK_REASON)
            break
        }

Проверял, работает.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: [AMXX] Displaying debug trace

Сообщение makc121 » 07 янв 2010, 13:34

Все отличьно работает :thumbs_up тебе большое спалибо !!!!!!!! все тема закрыта ! :-)
Аватара пользователя
makc121
 
Сообщения: 116
Зарегистрирован: 13 окт 2009, 22:18
Благодарил (а): 24 раз.
Поблагодарили: 5 раз.

Re: [AMXX] Displaying debug trace

Сообщение Илья » 13 фев 2010, 19:56

помогите с плагином antimat.amxx
логи ошибки без debug
L 02/13/2010 - 00:00:13: [AMXX] Run time error 4 (plugin "antimat.amxx") - debug not enabled!
L 02/13/2010 - 00:00:13: [AMXX] To enable debug mode, add "debug" after the plugin name in plugins.ini (without quotes).

логи ошибки с debug
L 02/13/2010 - 18:37:32: [AMXX] Displaying debug trace (plugin "antimat.amxx")
L 02/13/2010 - 18:37:32: [AMXX] Run time error 4: index out of bounds
L 02/13/2010 - 18:37:32: [AMXX] [0] antimat.sma::client_connect (line 340)

L 02/13/2010 - 18:38:33: [AMXX] Displaying debug trace (plugin "antimat.amxx")
L 02/13/2010 - 18:38:33: [AMXX] Run time error 4: index out of bounds
L 02/13/2010 - 18:38:33: [AMXX] [0] antimat.sma::mat_filter (line 127)

L 02/13/2010 - 18:39:21: [AMXX] Displaying debug trace (plugin "antimat.amxx")
L 02/13/2010 - 18:39:21: [AMXX] Run time error 4: index out of bounds
L 02/13/2010 - 18:39:21: [AMXX] [0] antimat.sma::mat_filter_team (line 185)

L 02/13/2010 - 18:41:03: [AMXX] Displaying debug trace (plugin "antimat.amxx")
L 02/13/2010 - 18:41:03: [AMXX] Run time error 4: index out of bounds
L 02/13/2010 - 18:41:03: [AMXX] [0] antimat.sma::client_infochanged (line 376)
Аватара пользователя
Илья
 
Сообщения: 8
Зарегистрирован: 19 дек 2009, 02:35
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: [AMXX] Displaying debug trace

Сообщение makc121 » 14 фев 2010, 12:37

на вот 100% нету ошибок
Код: Выделить всё
/* AMXMODX script.
*
* (c) Copyright 2004, =NoNaMe= ([email protected])
* This file is provided as is (no warranties).
*
*  = AntiMat System by NoNaMe v 0.98 optimized =
*
* Что уже было и есть сейчас:
*  0.98optJJ - (Версия от JohnJ) Позволил себе изменить некоторые вещи:
*             - Заменяется не сам мат а всё сообщение (это даёт возможность
*            найти мат используя меньше вариантов в матлисте, да и анализ
            фразы более быстр)
*             - Наказания, по-моему, в таком случае становятся не нужны,
*            поэтому по умолчанию они все отключены
*             - Теперь антимат может слапать не отнимая здоровья (c повреждением 0)
*             - Исправлено сравнение с исключениями (например если матом
*            в матлисте являются все слова, содержащие "e6", то исключением
*            будет "xle6" и т.п. (т.е. начинаются слова с разных позиций
*            в строке)
*  1.00RC1-Изменения: - добавлен новый алгоритм поиска ругательств (подстановка
*                       пробелов, подмена букв)
*                     - добавлен cvar antimat_old <0:1> по умолчанию 0 для испо-
*                       льзования старого метода поиска матов (для слабых машин)
*                     - antimat_menu - добавлено меню для упращения настройки
*                       AntiMat-a
*  0.98 optimized - оптимизированная версия (текущая):
*                     - antimat_update теперь - обновление базы данных проводится
*                       вручную (авто убрано для снижения аппаратных затрат)
*                     - amx_matlist заменено на antimat_matlist и больше не пере-
*                       гружает базу
*                     - Добавлено предупреждение о включённой защите чистоты
*                       языка, за это отвечает cvar antimat_logo <0:1> по умолча-
*                       нию 0
*
*  0.96 -  Изменения: - добавлен antimat_say <1:0> (по умолчанию 1) - вкл/выкл
*                                команды say
*
*  0.95 -  Изменения: - добалены cvar-ы:
*                              - antimat_cor <1:0> (по умолчанию 1) - вкл/выкл
*                                наказания
*                              - antimat_ip <1:0> (по умолчанию 1) - вкл/выкл
*                                показ IP при конекте игрока
*                              - antimat_name <1:0> (по умолчанию 1) - вкл/выкл
*                                проверку имени игрока на плохие слова
*                     - больше не нужен стороний плагин one_name.amx, работает
*                       самостоятельно 
*
*  0.8  -  Изменения: - добавлена проверка имени игрока на ругань
*                     - Анонс входа игрока с показанием его IP - адреса
*
*  0.6  -  Изменения: - добавлен словарь исключение, база исключений обновляется
*                       без перезагрузки сервера
*                     - добавлен CVAR antimat_dmoney < money > - отнимает деньги
*                       за каждый мат у мёртвых
*
*  0.4  -  Изменения: - убран глюк с заеданием слэпа!
*                     - убран глюк с отниманием денег у мёртвых! теперь отнимает
*                       беспроблемно
*
*  0.3  -  Изменения: - добавлен штраф за ругательства
*                   - мёртвые тоже наказываются
*                   - antimat_slap < healths > - отимает за каждый мат
*                     здоровье ( по умолчанию 20 )
*                   - antimat_money < money > - отнимает деньги за мат,
*                     у мёртвых в четырёх кратном размере ( по умолчанию 500$ )
*
*  0.1  -  Первый релиз : - замена ругательств маской
*                         - возможность обновлять базу не перегружая плагин
*                           или сервер
*/

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

#define MAX_WORDS 200

new PLUGIN[]="AHTuMAT"
new AUTHOR[]="=NoNaMe= | JohnJ"
new VERSION[]="0.98optJJ"

// Файлы: маты с их фильтрами и исключения
new mat_base[127] = "addons/amxmodx/configs/antimat_matlist.ini"
new iskl_base[127] = "addons/amxmodx/configs/antimat_iskluch.ini"

// переменные в которых хранятся маты, фильтры, исключения и их количество
new mat[MAX_WORDS][32]
new mask[MAX_WORDS][32]
new iskl[MAX_WORDS][32]
new num_words = 0
new num_iskl = 0
new iskl_flag = 0
new bool:dontcheck[33]

// сравнение с исключениями
comp_iskl( text[], pos )
{
  iskl_flag = 0
  new k,len,i,isk[32]
  for (k=0; k<=num_iskl; k++)
  {
    len=strlen(iskl[k])
    i=containi(text, iskl[k])
    isk=iskl[k]
    if ((i>=0) && (i<=pos) && (i+len>=pos))
    {
     iskl_flag = 1
    }
  }
}

// фильтр базара для команды say
public mat_filter(id)
{
  if (get_cvar_num("antimat_say")==1)
  {
   new said[128], my_money, pos
   new money = get_cvar_num("antimat_money")
   new dmoney = get_cvar_num("antimat_dmoney")
   new slap = get_cvar_num("antimat_slap")
   read_args(said,128)
   new name[32]
   get_user_name(id,name,31)

   for (new i=0; i<=num_words; i++)
   {
       pos = containi(said,mat[i])
       if (pos != -1)
       {
         comp_iskl(said, pos)
         if ( iskl_flag != 1)
         {
           replace(said, 128, said, mask[i])
           if (!is_user_alive(id))
           {
             if (get_cvar_num("antimat_cor")==1)
             {
               my_money = cs_get_user_money(id)
               if (my_money>=dmoney)
                 cs_set_user_money(id, (my_money-dmoney), 1)
               else
                 cs_set_user_money(id, 0, 1)
             }
             client_cmd(id,"say %s",said)
             return PLUGIN_HANDLED
           }
           else
           {
             if (get_cvar_num("antimat_cor")==1)
             {
               my_money = cs_get_user_money(id)
               if (my_money>=money)
                 cs_set_user_money(id, (my_money-money), 1)
               else
                 cs_set_user_money(id, 0, 1)
               if (slap>=0)
               {
                 user_slap(id, slap)
                 client_print(0,print_chat,"** %s 6bIJI oTCJIanaH 3a MaTbI!", name)
               }
             }
             client_cmd(id,"say %s",said)
             return PLUGIN_HANDLED
           }
         }
       }
   }
  }
  return PLUGIN_CONTINUE
}

// фильтр базара для команды say_team
public mat_filter_team(id)
{
   new said[128], my_money
   new money = get_cvar_num("antimat_money")
   new dmoney = get_cvar_num("antimat_dmoney")
   new slap = get_cvar_num("antimat_slap")
   read_args(said,128)
   new name[32]
   get_user_name(id,name,31)

   for (new i=0; i<=num_words; i++)
   {
       new pos = containi(said,mat[i])
       if (pos != -1)
       {
         comp_iskl(said, pos)
         if ( iskl_flag != 1)
         {
           replace(said, 128, said, mask[i])
           if (!is_user_alive(id))
           {
             if (get_cvar_num("antimat_cor")==1)
             {
               my_money = cs_get_user_money(id)
               if (my_money>=dmoney)
                 cs_set_user_money(id, (my_money-dmoney), 1)
               else
                 cs_set_user_money(id, 0, 1)
             }
             client_cmd(id,"say_team %s",said)
             return PLUGIN_HANDLED
           }
           else
           {
             if (get_cvar_num("antimat_cor")==1)
             {
               my_money = cs_get_user_money(id)
               if (my_money>=money)
                 cs_set_user_money(id, (my_money-money), 1)
               else
                 cs_set_user_money(id, 0, 1)
               if (slap!=0)
               {
                 user_slap(id, slap)
                 client_print(0,print_chat,"** %s 6bIJI oTCJIanaH 3a MaTbI!", name)
               }
             }
             client_cmd(id,"say_team %s",said)
             return PLUGIN_HANDLED
           }
         }
       }
   }
   return PLUGIN_CONTINUE
}

// Поиск по новому алгоритму (исключения невидоизменяются!!!)
public search_bad_words(text[])
{
//  new string_word[128]
  // Цикл по мату
//  for (new i=0; i<=num_words; i++)
//  {

//  }
}

// чтение файлов с занесением содержимого в переменные
// ( flag = 0 - читаем исключения, flag >0 - читаем маты с фильтрами )
read_list(filename[], flag)
{
    if (flag > 0)
    {
      // чтение матов и их фильтров
      num_words = 0
      if (file_exists(filename))
      {
        new readdata[64], len, pos = 0
        while (num_words < MAX_WORDS && read_file(filename,pos++,readdata,63,len))
        {
          parse(readdata, mat[num_words], 31, mask[num_words], 31)
          ++num_words
        }
      }
      else log_message("[AntiMat] He Mory Hau*Tu *I*au*JI Co CnucKoM MaToB")
    }
    else
    {
      // чтение слов исключений
      num_iskl = 0
      if (file_exists(filename))
      {
        new readdata[32], len, pos = 0
        while (num_iskl < MAX_WORDS && read_file(filename,pos++,readdata,32,len))
        {
          iskl[num_iskl] = readdata
          ++num_iskl
        }
      }
      else log_message("[AntiMat] He Mory Hau*Tu *I*au*JI Co CnucKoM ucKJII04eHuu*")
    }
    return PLUGIN_CONTINUE
}

// обновление базы
public antimat_update(id,level,cid)
{
    if (!cmd_access(id,level,cid,1))
        return PLUGIN_HANDLED
    read_list(mat_base, 1)
    read_list(iskl_base, 0)
    return PLUGIN_CONTINUE
}

// просмотр фильтруемых слов из консоли сервера
public antimat_matlist(id,level,cid)
{
    if (!cmd_access(id,level,cid,1))
        return PLUGIN_HANDLED
    console_print(id,"Mat/Filter Database^n%-32s %s","Mat","Filter")
    for(new a=0; a<num_words; ++a)
        console_print(id,"%-32s %s", mat[a], mask[a])
    console_print(id,"Total %d",num_words)
   
    console_print(id,"^n%s","Isklucheniay")
    for(new a=0; a<num_iskl; ++a)
        console_print(id,"%s ", iskl[a])
    return PLUGIN_HANDLED
}

public client_putinserver(id)
{
  if (get_cvar_num("antimat_logo")==1)
  {
    set_task(10.0,"dispLogo",id)
  }
  return PLUGIN_CONTINUE
}

public dispLogo(id)
{
  if (get_cvar_num("antimat_logo")==1)
  {
    new name[32], userip[16]
    get_user_name(id,name,31)
    get_user_ip(id,userip,15,1)
    set_hudmessage(140, 0, 0, 0.05, 0.40, 2, 0.1, 4.0, 0.02, 0.02, 2)
    show_hudmessage(id,"[AntiMat] npuBeT %s (%s)", name, userip)
    set_hudmessage(140, 0, 0, 0.05, 0.42, 2, 0.1, 4.0, 0.02, 0.02, 3)
    show_hudmessage(id,"[AntiMat] Ha cepBepe cTouT AHTuMaT")
    set_hudmessage(140, 0, 0, 0.05, 0.44, 2, 0.1, 4.0, 0.02, 0.02, 4)
    show_hudmessage(id,"[AntiMat] HeKoToPbIe MaTbI 3anpeLLjeHbI!")
  }
}

// Проверка имени на плохие слова
public client_connect(id)
{
  if (get_cvar_num("antimat_name")==1)
  {
    new name[32], userip[16]
    get_user_name(id,name,31)
    get_user_ip(id,userip,15,1)
    if (get_cvar_num("antimat_ip")==1)
      client_print(0,print_chat,"** %s (%s) npuKoHHeKTuJIC9! **", name, userip)
    for (new i=0; i<=num_words; i++)
    {
       new pos = containi(name,mat[i])
       if (pos != -1)
       {
         comp_iskl(name, pos)
         if ( iskl_flag != 1)
         {
           if (get_cvar_num("antimat_ip")==1)
             client_print(0,print_chat,"** %s (%s) 6bIJI oTKJII04eH! MaTepLLIuHHoe uM9! **", name, userip)
           client_cmd(id,"echo ** 3anpeLLjeHbI MaTbI B HuKax! **; disconnect")
           return PLUGIN_HANDLED
         }
       }
    }
  }
  return PLUGIN_CONTINUE
}

// запрет смены имени во время игры
public client_infochanged(id)
{
  if (get_cvar_num("antimat_name")==1)
  {
        if (dontcheck[id])
        {
                dontcheck[id] = false
        }
        else if (is_user_connected(id)){
                new newname[32], oldname[32]
                get_user_info(id, "name", newname,31)
                get_user_name(id,oldname,31)
       
                if (!equal(oldname,newname))
                {
                        dontcheck[id] = true
                        for (new i=0; i<=num_words; i++)
                        {
                          new pos = containi(newname,mat[i])
                          if (pos != -1)
                          {
                            comp_iskl(newname, pos)
                            if ( iskl_flag != 1)
                            {
                              client_cmd(id,"echo ** 3anpeLLjeHbI MaTbI B HuKax! **")
                              set_user_info(id,"name",oldname)
                              return PLUGIN_HANDLED
                            }
                          }
                        }
                }
        }
  }
  return PLUGIN_CONTINUE
}

// инициализация плагина и регистрация глобальных CVAR-ов и команд
public plugin_init()
{
    register_plugin(PLUGIN,VERSION,AUTHOR)
    register_clcmd("say","mat_filter")
    register_clcmd("say_team","mat_filter_team")
    register_concmd("antimat_matlist","antimat_matlist",ADMIN_LEVEL_A,"- show mat/filter file")
    register_concmd("antimat_update","antimat_update",ADMIN_LEVEL_A,"- update mat/filter file")
    register_cvar("antimat_money","0")
    register_cvar("antimat_dmoney","0")
    register_cvar("antimat_slap","-1")
    register_cvar("antimat_ip","1")
    register_cvar("antimat_cor","0")
    register_cvar("antimat_name","1")
    register_cvar("antimat_say","1")
    register_cvar("antimat_logo","0")
//    register_cvar("antimat_old","1")
    read_list(mat_base, 1)
    read_list(iskl_base, 0)
}
Аватара пользователя
makc121
 
Сообщения: 116
Зарегистрирован: 13 окт 2009, 22:18
Благодарил (а): 24 раз.
Поблагодарили: 5 раз.

Re: [AMXX] Displaying debug trace

Сообщение Илья » 14 фев 2010, 18:04

makc121, твой плагин, ошибки такие же...или в твоём надо включить debug?
Аватара пользователя
Илья
 
Сообщения: 8
Зарегистрирован: 19 дек 2009, 02:35
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Пред.След.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 12