Плагин рекламы, какой лучше использовать?

Тема в разделе "Counter-Strike: Source", создана пользователем pokypka20, 31 июл 2014.

  1. pokypka20

    pokypka20

    Сообщения:
    250
    Симпатии:
    30
    Очень долгое время пользовался advertiresement, потом нашол отличную замену: Adwerts от wS, мне нравилось что он сохранял позицию окончания рекламы после смены карты, перезагружался без смены карты всего одной командой и многое другое.
    Недавно заметил интерестную вещь на иностранных серверах реклама шла не обычно, тоесть она посстоянна шла в разброс и через несколько секунд после чата повторялась по центру экрана. Я постарался поискать на alliedmods что то похожее, но ничего не нашол.. Так вот кто знает этот плагин, или отличную замену плагина adverts подскажите.

    Много написал, если в кратце прочитайте название темы :)
     
  2. Черная вдова

    Черная вдова

    Сообщения:
    1.621
    Симпатии:
    234

    Вложения:

    • advert.txt
      Размер файла:
      531 байт
      Просмотров:
      32
    pokypka20 нравится это.
  3. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Рандом не надо использовать, т.к. может одно и то же повторяться 100 раз.
    И 100 операторов условия не надо) Лучше switch
    PHP:
    new pos 0;
    public 
    OnConfigsExecuted() 
        
    CreateTimer(30.0Advert_TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
    public 
    Action:Advert(Handle:timer)
        switch(++
    pos)
        {
            case 
    1:PrintToChatAll("Бла бла");    
            case 
    2:PrintToChatAll("Бла бла");
            case 
    3:PrintToChatAll("Бла бла");
            default:
            {
                
    pos 0;
                
    CreateTimer(0.0Advert);
            }
        }
     
    Последнее редактирование: 31 июл 2014
    pokypka20 нравится это.
  4. AlmazON

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

    Сообщения:
    4.579
    Симпатии:
    1.989
    И что ж вы вечно один флаг и знаете... Реклама во время загрузки карты? Сервер пусть читает, точно)
    Естественно, таймер тоже переместить на запуск.
     
  5. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    я по его шаблону чиркал)
     
  6. pokypka20

    pokypka20

    Сообщения:
    250
    Симпатии:
    30
    TolikCorp, вопрос реклама будет случайная показываться? я поэтому и от отказался что посстоянно он показывал одну и туже рекламу в начале карты, и иногда последнее строки даже не доходили.
     
  7. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Будут по порядку показываться. Должно стартовать с прежнего места. Проверь - сделай реклам 7, посмотри рекламы 2-3, смени карту и снова посмотри рекламу.
     
  8. AlmazON

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

    Сообщения:
    4.579
    Симпатии:
    1.989
    Привыкай ставить OnConfigsExecuted(). До этого на сервер всё равно ещё не зайдут, а нагрузка уменьшится для переходных серверных процессов.
    Добавить переменную запоминания последней позиции и не давать функции снова повторяться (pos != last_pos).
     
  9. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    Оффтоп
     
  10. AlmazON

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

    Сообщения:
    4.579
    Симпатии:
    1.989
    TolikCorp, можно придумать чего-нибудь, например, рандом лишь из непоказанных позиций рекламы.
     
  11. TolikCorp

    TolikCorp

    Сообщения:
    855
    Симпатии:
    271
    И записывать это в массив? И еще цикл? Лучше не надо)
     
  12. AlmazON

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

    Сообщения:
    4.579
    Симпатии:
    1.989
    Красота требует жертв. В любом случае, кода больше.
     
  13. AlmazON

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

    Сообщения:
    4.579
    Симпатии:
    1.989
    Простой, улучшенный плагин рекламы:
    PHP:
    #define NUM_ADVERT 5

    new String:advert[][] = {"",
    "\x05Добро пожаловать на сервер!",
    "Реклама 2",
    "Реклама 3",
    "Реклама 4",
    "Реклама 5"};

    public 
    OnConfigsExecuted()
    {
        for (new 
    1<= NUM_ADVERTi++) CTA(i);
    }

    public 
    Action:Show(Handle:tany:i)
    {
        
    PrintToChatAll("\x01%s"advert[i]);
        
    CTA(i);
    }

    CTA(iCreateTimer(GetRandomFloat(30.090.0), ShowiTIMER_FLAG_NO_MAPCHANGE);
    Где NUM_ADVERT 5 - ставьте цифру строчек рекламы (1 реклама в кавычках - 1 строчка).

    Самое главное: любая реклама будет показана одинаковое количество раз.
    Повторов рекламы, как таковых, нет (смотрим выше).
    Показ не только случайной рекламы, но и по случайному времени.
    Фактор случайности регулируется в таймере: 30.0, 90.0 - минимум и максимум времени в секундах. Чем больше диапазон этих значений, тем выше "шанс" случайности.
    Также, код растёт (почти) лишь от вашего количества/слов рекламы.
     
    pokypka20 нравится это.