Помогите исправить код плагина

Тема в разделе "Программирование / Скриптинг", создана пользователем Shadow Broker, 27 июн 2016.

  1. Shadow Broker

    Shadow Broker

    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте, помогите пожалуйста исправить плагин, так как мусора от него в логах ошибок дофига и больше
    Текст ошибки:
     

    Вложения:

    • death_sound.sp
      Размер файла:
      1,2 КБ
      Просмотров:
      8
  2. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.190
    Симпатии:
    413
    Исправлена ошибка.
     

    Вложения:

    • death_sound.sp
      Размер файла:
      1,2 КБ
      Просмотров:
      6
    • death_sound.smx
      Размер файла:
      5,1 КБ
      Просмотров:
      2
    Shadow Broker нравится это.
  3. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.515
    Симпатии:
    1.969
    Не нужно там client проверять, да и все IsClientInGame стоило убрать - они бесполезны.
    PHP:
    #include <sourcemod>
    #include <sdktools>


    #define MAX_FILE_LEN 80
    new Handle:g_CvarSoundName;
    new 
    String:g_soundName[MAX_FILE_LEN];

    public 
    Plugin:myinfo 
    {
        
    name "Death Sound",
        
    author "Marcus"// Thanks to R-Hehl for some source code.
        
    description "Plays a sound when a player dies.",
        
    version "0.0.1e",
        
    url "http://www.sourcemod.net"
    };
    public 
    OnPluginStart()
    {
        
    g_CvarSoundName CreateConVar("sm_death_sound""death_sound/kill.mp3""The sound emitted when a player dies.");
        
    HookEvent("player_death"Event_Death);
    }
    public 
    OnAutoConfigsBuffered()
    {
        
    GetConVarString(g_CvarSoundNameg_soundNameMAX_FILE_LEN);
        
    decl String:buffer[MAX_FILE_LEN 6];
        
    PrecacheSound(g_soundNametrue);
        
    FormatEx(buffersizeof(buffer), "sound/%s"g_soundName);
        
    AddFileToDownloadsTable(buffer);
    }
    public 
    Event_Death(Handle:event, const String:name[], bool:dontBroadcast)
    {
        
    decl attacker[1];
        if ((
    attacker[0] = GetClientOfUserId(GetEventInt(event"attacker")))) // Thanks Mitch
        
    {
            
    EmitSound(attacker1g_soundName);
        }
    }
     
    666FoX666 и Shadow Broker нравится это.
  4. Shadow Broker

    Shadow Broker

    Сообщения:
    6
    Симпатии:
    0
    Всем спасибо)) буду тестировать
     
  5. MaEStro71

    MaEStro71

    Сообщения:
    165
    Симпатии:
    5
    Плагин запрещает писать админам через !msay. Плагин рабочий, в текстовом файле можно указывать Steam ID админов, которым разрешено писать через !msay . Но он не создается. Помогите!
    Sm 1.6.3

    #include <sourcemod>

    new String:SteaM[MAXPLAYERS+1][20];
    new Handle:kv;

    public OnPluginStart()
    {
    kv = CreateKeyValues("msay");
    FileToKeyValues(kv, "cfg/msay.txt");
    RegConsoleCmd("msay", block);
    }

    public Action:block(i, args)
    {
    GetClientAuthString(i, SteaM, 20);
    if(KvJumpToKey(kv, SteaM))
    {
    return Plugin_Continue;
    }
    else
    {
    return Plugin_Handled;
    }
    }
     
  6. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.515
    Симпатии:
    1.969
    В каком месте? Чистый самопис, он даже не компилится.
    И не должен, зачем? Плагин только считывает данные с файла, запрещая/разрешая команду, но о записи в файл речи и не могло быть.
     
  7. MaEStro71

    MaEStro71

    Сообщения:
    165
    Симпатии:
    5
    Я в скриптах ноль. Но у меня компилится на 1.6.3, через !msay не получается писать по крайней мере. Проверено. Мне нужно сделать так, чтобы на стим айди указанные в файле, не распостранялось данное ограничение
     
  8. MaEStro71

    MaEStro71

    Сообщения:
    165
    Симпатии:
    5
    Вообще ни кого не блочит теперь
     
  9. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.515
    Симпатии:
    1.969
    Значит, не только у меня...
    PHP:
    #include <sourcemod>

    new Handle:kv;

    public 
    OnPluginStart()
    {
        if (!
    FileToKeyValues((kv CreateKeyValues("msay""STEAM""_")), "cfg/msay.txt")) KeyValuesToFile(kv"cfg/msay.txt");
        
    RegConsoleCmd("msay"block);
    }

    public 
    Action:block(iargs)
    {
        if (
    i)
        {
            
    decl String:buffer[30];
            
    GetClientAuthId(iAuthId_Steam2buffersizeof(buffer), false);
            
    KvRewind(kv);
            if (!
    KvJumpToKey(kvbuffer)) return Plugin_Handled;
        }
        return 
    Plugin_Continue;
    }
    Код:
    "msay"
    {
        "STEAM"        "_"
        "STEAM_0:0:12345678"    ""
        "STEAM_0:0:12345699"    ""
    }
    
     
  10. MaEStro71

    MaEStro71

    Сообщения:
    165
    Симпатии:
    5
    А что в кавычках писать? Флаг, нижнее подчеркивание или оставить пустыми
     
  11. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.515
    Симпатии:
    1.969
    Образец выше. Просто без вторых кавычек ломается структура KV, а так - без разницы. Лучше оставлять пустыми, чтобы мусор не грузить.
     
  12. MaEStro71

    MaEStro71

    Сообщения:
    165
    Симпатии:
    5
    :ac: Увы. Но нет. Белый список не работает. Блочит всех. Ошибок не вижу. Пробовал и с нижним подчёркиванием и без.
     
  13. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.515
    Симпатии:
    1.969
    А проверить, какой СТИМ получает сам плагин в момент блока? У меня там новый получился, как ни странно. Оффтоп
     
  14. MaEStro71

    MaEStro71

    Сообщения:
    165
    Симпатии:
    5
    А как проверить?
     
  15. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.515
    Симпатии:
    1.969
    В общем, проверил - всегда блокирует при RegConsoleCmd, хоть и правильно код работает. А при AddCommandListener не блокирует вовсе.