[Любая игра] [KDLP] [DEV] Adverts

Тема в разделе "Новые плагины", создана пользователем KorDen, 12 июн 2013.

  1. KorDen

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

    Сообщения:
    2.194
    Симпатии:
    1.398
    Это даже не бета. Это версия с моего сервера, которую я тестирую. В ней мало чего сделано на большую публику, но если вас устраивает то что есть, то смотрите..

    Взялся я и за рекламу...
    Этот плагин умеет выводить рекламу только в чат.
    Формат файла advertisements.txt:
    Код:
    "Advertisements"
    {
    	"1"
    	{
    		"text"      "#FF7F50Тортик %не &ложь!"
    	}
    	"2"
    	{
    		"text"      "#99CCFFСтоимость бомбы %${BUYC4_DCOST}"
    	}
    }
    Доступные служебные символы:
    # - код RGB-цвета, запись получается прямо как в HTML, например #FFFF00 - полный функционал MoreColors одной строчкой вместо огромной библиотеки
    % - стандартный зеленый цвет (GREEN, \x04)
    & - стандартный цвет (DEFAULT, \x01)
    \n - перевод строки
    {TIME} - время в 24ч формате
    {cvar} - значение переменной cvar
    {BOOL:cvar} - OFF или ON, для булевых переменных
    Переменные:
    sm_ads_interval - интервал вывода рекламы
    sm_ads_file - имя файла (в папке sourcemod/configs)
    Команды: sm_ads_reload - перезагрузка файла рекламы

    В планах:
    1) Реализовать возможность перевода рекламы <- перезагрузка файлов перевода происходит только после рестарта карты :(
    2) возможно {date}, {timeleft}, {currentmap}
    3) сомнительно, но возможно вывод в другие места
     

    Вложения:

    • kdlp-adv.sp
      Размер файла:
      3,7 КБ
      Просмотров:
      300
    Последнее редактирование: 13 июн 2013
    ALЬTAIR, Konstantin, FrozDark и 5 другим нравится это.
  2. HooLIGUN

    HooLIGUN

    Сообщения:
    748
    Симпатии:
    126
    В каком интервале выводится реклама?
     
  3. R1KO

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

    Сообщения:
    5.985
    Симпатии:
    2.983
    HooLIGUN, квар sm_ads_interval
    По дефолту 30 сек
     
    KorDen нравится это.
  4. Партизан

    Партизан

    Сообщения:
    114
    Симпатии:
    40
    Спасибо тебе за плагин,
    Можно ли с помощью твоего плагина раскрасить этот ?
     
  5. KorDen

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

    Сообщения:
    2.194
    Симпатии:
    1.398
    Андрей Панкратов, с помощью одного плагина раскрасить другой нельзя. Нужно изменять уже сам rankme, конкретные разы конкретными цвветами... И это уже оффтопик получается...
     
  6. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    делай в этом же файле, только вместо text:
    PHP:
    "en" "This is text"
    "ru" "Это текст"
    И перезагрузка файла переводы будут сразу работать без рестарта карты
     
  7. KorDen

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

    Сообщения:
    2.194
    Симпатии:
    1.398
    FrozDark, оно конечно хорошо но тогда что брать через KvGetString?
    В моем представлении пробегаться по языкам игроков, то есть брать язык игрока, получать инфу по номеру этого языка (т.е. название языка), пробовать брать строку, если не взялась - брать стандартный язык. Или есть более простой способ?
     
  8. wanted241

    wanted241 Real-Gamer.Ru

    Сообщения:
    783
    Симпатии:
    355
    1. Узнаешь язык.
    2. Если язык "ru", тогда KvGetString(kv, "ru", buffer, buffersize);..
     
    R1KO нравится это.
  9. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    наглядный пример из Shop Equipments
    PHP:
    public bool:OnCategoryDisplay(client, const String:category[], String:buffer[], maxlength)
    {
        
    decl String:lang[3];
        
    GetLanguageInfo(GetClientLanguage(client), langsizeof(lang));
        
        new 
    bool:result false;
        
    KvRewind(kv);
        if (
    KvJumpToKey(kvcategory))
        {
            
    KvGetString(kvlangbuffermaxlength);
            if (
    buffer[0])
            {
                
    result true;
            }
            else
            {
                
    result false;
            }
        }
        
    KvRewind(kv);
        return 
    result;
    }
    если buffer будет пустым, то берем серверный язык. По такому принципу и работает Sourcemod
     
    Серый™, KorDen и R1KO нравится это.
  10. wanted241

    wanted241 Real-Gamer.Ru

    Сообщения:
    783
    Симпатии:
    355
    Так проще
     
  11. KorDen

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

    Сообщения:
    2.194
    Симпатии:
    1.398
    Мдя.. Это же надо будет либо каждый раз (в цикле по игрокам) прогонять все проверки на цвет и переменные/коды ({date},...).. Как-то не оптимизированно... Буду думать, что бы придумать попроще..
     
  12. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    При входе игрока проверь язык, затем используй
     
  13. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    ну да, при входе возьми язык просто

    PHP:
    new String:sClientLang[MAXPLAYERS+1][4];

    public 
    OnClientPutInServer(client)
    {
         
    GetLanguageInfo(GetClientLanguage(client), sClientLang[client], sizeof(sClientLang[]));
    }
     
  14. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    Приведите пожалуйсто пример вот с этими вещами:
    {cvar} - значение переменной cvar
    {BOOL:cvar} - OFF или ON, для булевых переменных
     
  15. KorDen

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

    Сообщения:
    2.194
    Симпатии:
    1.398
    pihmih, это перенос функционала оригинального плагина, никаких изменений не делал, то есть если написать {sv_gravity} - выведет текущее значение переменной, например 800. А для скажем sv_alltalk можно написать {BOOL:sv_alltalk} и тогда не 0 или 1 будет а NO или YES
     
    pihmih нравится это.
  16. R1KO

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

    Сообщения:
    5.985
    Симпатии:
    2.983
    pihmih,
     
    pihmih нравится это.
  17. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    для de_ карт у меня реклама с файла advertisements.txt Для aim_ карт - advertisements_aim.txt Чтоб плагин подргузил нужный файл с рекламой нужно 2 раза карту сменить на нужную.
     
    KorDen нравится это.
  18. KorDen

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

    Сообщения:
    2.194
    Симпатии:
    1.398
    pihmih, проблему понял, исправлю чуток позже. Пока можно самому исправить, дописав после указания файла следующей стрчокой sm_ads_reload
     
  19. White Wolf

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

    Сообщения:
    1.191
    Симпатии:
    418
    Плагин ещё действителен?
     
  20. KorDen

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

    Сообщения:
    2.194
    Симпатии:
    1.398
    White Wolf, почему нет?