[CS: Source] Hud Adverts

Тема в разделе "Новые плагины", создана пользователем Smert413, 4 май 2014.

  1. Smert413

    Smert413

    Сообщения:
    9
    Симпатии:
    14
    Плагин для отображения рекламы справа на экране.

    [​IMG]

    sm_hud_adverts_reload - перезагрузка настроек (нужен флаг "i").

    Все настройки в файле "...\addons\sourcemod\configs\hud_adverts.ini".

    CVAR'ы ("...\cfg\sourcemod\hud_adverts.cfg"):

    "sm_hud_adverts_interval_update" - каждые n секунд отображать сообщение.
    "sm_hud_adverts_interval_next" - каждые n секунд переключаться на следующее сообщение.

    {q} - заменяется на двойные кавычки (").
    {n} - переход на новую строку.

    Максимальная длинна сообщения: 255.
     

    Вложения:

    • hud_adverts.smx
      Размер файла:
      5 КБ
      Просмотров:
      177
    • hud_adverts.sp
      Размер файла:
      3,5 КБ
      Просмотров:
      190
    • hud_adverts.ini
      Размер файла:
      355 байт
      Просмотров:
      214
    Последнее редактирование: 30 июн 2014
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.973
    Симпатии:
    2.980
    Smert413, Много памяти использует. Сделай по принципу advertisements. Каждый раз переходи на нужны ключ и выводи сообщение. Нет смысла хранить все сообщения в памяти.

    Сам подумай new String:g_sMessages[256][256];

    Здесь:
    PHP:
    g_hTimerUpdateHud CreateTimer(g_fIntervalUpdateHudTimerUpdateHud_,TIMER_REPEAT);
    И здесь
    PHP:
    g_hTimerNextMessage CreateTimer(g_fIntervalNextMessageTimerNextMessage_,TIMER_REPEAT);
    Ты не передаешь никаких данных "_".

    А в обратных вызовах у тебя берется клиент. Откуда?
    PHP:
    public Action:TimerUpdateHud(Handle:timerany:client)
    public 
    Action:TimerNextMessage(Handle:timerany:client)
    Должно быть так:
    PHP:
    public Action:TimerUpdateHud(Handle:timer)
    public 
    Action:TimerNextMessage(Handle:timer)

    А здесь выполняется двойная работа:
    PHP:
    ReplaceSpecials(String:sBuffer[])
    {
        if (
    StrContains(sBuffer"{n}") != -1)
        {
            
    ReplaceString(sBuffer255"{n}""\n");
        }
        if (
    StrContains(sBuffer"{q}") != -1)
        {
            
    ReplaceString(sBuffer255"{q}""\"");
        }
    }
    Зачем сначала искать, а затем снова искать и заменять?
    Сразу делай так:
    PHP:
    ReplaceSpecials(String:sBuffer[])
    {
        
    ReplaceString(sBuffer255"{n}""\n");
        
    ReplaceString(sBuffer255"{q}""\"");
    }
    Точно так же ищет и заменяет. Не нужно делать предварительный поиск.
     
    Smert413 нравится это.
  3. Smert413

    Smert413

    Сообщения:
    9
    Симпатии:
    14
    R1KO, все пофиксил.
     
  4. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.973
    Симпатии:
    2.980
    Smert413, первое замечание не учел.
     
  5. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    Зачем при каждом обновлении заново открывать файл? Один раз сделать при запуске FileToKeyValues и все, дальше с одним KV работаешь, и можно даже позицию не запоминать. + добавить команду перезагрузки файла.
    KeyHintText пропадают через ~6 секунд, лучше поставить интервал обновления скажем 4 секунды.
    Настройки постоянно считывать тоже не нужно.
    Путь можно прописать константой
     
    Smert413 и R1KO нравится это.
  6. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.973
    Симпатии:
    2.980
    KorDen, Я об этом и говорил.
     
  7. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    R1KO, он уже обновил, там теперь только текущее сообщение хранится уже распарсенное, но все еще недочеты есть.
     
    R1KO нравится это.
  8. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.973
    Симпатии:
    2.980
  9. Smert413

    Smert413

    Сообщения:
    9
    Симпатии:
    14
  10. Партизан

    Партизан

    Сообщения:
    114
    Симпатии:
    40
    Помогите профиксить для CSGO
    L 05/20/2014 - 16:49:34: SourceMod error session started
    L 05/20/2014 - 16:49:34: Info (map "surf_machine4_go_snf") (file "errors_20140520.log")
    L 05/20/2014 - 16:49:34: [SM] Plugin encountered error 21: Native is not bound
    L 05/20/2014 - 16:49:34: [SM] Native "BfWriteByte" reported:
    L 05/20/2014 - 16:49:34: [SM] Displaying call stack trace for plugin "hud_adverts.smx":
    L 05/20/2014 - 16:49:34: [SM] [0] Line 126, E:\steampipe_server\css\cstrike\_addons\sourcemod\scripting\hud_adverts.sp::TimerUpdateHud()
     
  11. SenatoR

    SenatoR Модератор

    Сообщения:
    714
    Симпатии:
    270
    В ксго нету KeyHintText'a, соответственно плагин в ксго работать не будет. Или альтернатива: сделать через Hud
     
    Партизан нравится это.
  12. zaigrovas

    zaigrovas

    Сообщения:
    52
    Симпатии:
    0
    L 05/30/2015 - 23:35:45: [SM] Native "StartMessage" reported: Invalid message name: "KeyHintText"
    L 05/30/2015 - 23:35:45: [SM] Displaying call stack trace for plugin "hud_adverts.smx":
    L 05/30/2015 - 23:35:45: [SM] [0] Line 201, C:\Users\Санек\Desktop\scripting\include\usermessages.inc::StartMessageOne()
    L 05/30/2015 - 23:35:45: [SM] [1] Line 125, C:\Users\Санек\Desktop\scripting\hud_adverts.sp::TimerUpdateHud()

    Как я понимаю версия соурцмода не катит!? Стоит 1.4.2 сервер V34
     
  13. AlmazON

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

    Сообщения:
    4.512
    Симпатии:
    1.964
    Плагин Message msay [CS:S & CS:GO]

    Не "катит" версия сервера.
    Нашёл свой плагин-альтернативу: [CS:GO/CS:S] Special Advertising Message v0.1.0 - почти то же самое, но сообщением слева.
     
    zaigrovas нравится это.
  14. -=AWP=-

    -=AWP=-

    Сообщения:
    43
    Симпатии:
    23
    Вот лучше так сделать, в этом плагине совмещены несколько, конструкт, и худинфо.
    Он переделан, в данный момент, появляется бегущая строка, + цвет + переливание.
    текст поменяйте на свой... можно установить рекламу, в любой угол или же куда захотите, через конструкт, просто поменяйте кординаты, кто плохо шарит в плагинах.
    Пользуйтесь на здоровье!


    #pragma semicolon 1
    #include <sourcemod>
    #include <clientprefs>
    #include <easy_hudmessage>

    new bool:hit_info[MAXPLAYERS+1];

    public Plugin:myinfo =
    {
    name = "HIT SERVER INFO",
    author = "css-rus.ru",
    description = "",
    version = "1.2",
    url = "http://css-rus.ru/"
    }

    public OnPluginStart()
    {
    RegConsoleCmd("sm_infо", Command_Info, "Единственный сервер в своем роде!");
    }

    public OnMapStart()
    {
    CreateTimer(1.0, UpdateHud, INVALID_HANDLE, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
    }

    public Action:Command_Info(client, args)
    {
    if (client > 0)
    {
    if (hit_info[client]) hit_info[client] = false;
    else hit_info[client] = true;
    }
    return Plugin_Handled;
    }

    public OnClientPostAdminCheck(client)
    {
    hit_info[client] = true;
    }

    public Action:UpdateHud(Handle:timer)
    {
    for (new i = 1; i <= MaxClients; i++)
    {
    if (IsClientInGame(i) && !IsFakeClient(i) && hit_info)
    {
    //Client_PrintKeyHintText(i, buf);
    //SendHudMessage(i, 3, -0.431998, -1.043999, 0xFF0000FF, 0x33FFFFFF, 2, 1.0, 1.0, 1.5, 1.0, buf);
    SendHudMessage(i, 2, -0.239998, 0.980002, 0x990000FF, 0x33FF00FF, 2, 0.1, 0.5, 1.0, 0.1, "████|:R:E:S:I:D:E:N:T:██:E:V:I:L:|████ 46.174.54.179:27015 Продается за 20.000 руб.");
    //SendHudMessage(i, 3, -0.431998, -1.043999, 0x00C1FFFF, 0xFFFFFFFF, 2, 1.0, 1.0, 1,5 5.0, buf);

    }
    }
    }
     
  15. AlmazON

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

    Сообщения:
    4.512
    Симпатии:
    1.964
    Александр Афанасьев, Оффтоп