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

pokypka20

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

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

Черная вдова

Участник
Сообщения
2,795
Реакции
670

Вложения

  • advert.txt
    531 байт · Просмотры: 36

TolikCorp

Участник
Сообщения
874
Реакции
334
Рандом не надо использовать, т.к. может одно и то же повторяться 100 раз.
И 100 операторов условия не надо) Лучше switch
PHP:
new pos = 0;
public OnConfigsExecuted() 
    CreateTimer(30.0, Advert, _, 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.0, Advert);
        }
    }
 
Последнее редактирование:

pokypka20

Участник
Сообщения
244
Реакции
31
TolikCorp, вопрос реклама будет случайная показываться? я поэтому и от отказался что посстоянно он показывал одну и туже рекламу в начале карты, и иногда последнее строки даже не доходили.
 

TolikCorp

Участник
Сообщения
874
Реакции
334
Будут по порядку показываться. Должно стартовать с прежнего места. Проверь - сделай реклам 7, посмотри рекламы 2-3, смени карту и снова посмотри рекламу.
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756
Привыкай ставить OnConfigsExecuted(). До этого на сервер всё равно ещё не зайдут, а нагрузка уменьшится для переходных серверных процессов.
Рандом не надо использовать, т.к. может одно и то же повторяться 100 раз
Добавить переменную запоминания последней позиции и не давать функции снова повторяться (pos != last_pos).
 

TolikCorp

Участник
Сообщения
874
Реакции
334
Добавить переменную запоминания последней позиции и не давать функции снова повторяться.
Оффтоп
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756
TolikCorp, можно придумать чего-нибудь, например, рандом лишь из непоказанных позиций рекламы.
 

TolikCorp

Участник
Сообщения
874
Реакции
334
И записывать это в массив? И еще цикл? Лучше не надо)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756
Простой, улучшенный плагин рекламы:
PHP:
#define NUM_ADVERT 5

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

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

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

CTA(i) CreateTimer(GetRandomFloat(30.0, 90.0), Show, i, TIMER_FLAG_NO_MAPCHANGE);
Где NUM_ADVERT 5 - ставьте цифру строчек рекламы (1 реклама в кавычках - 1 строчка).

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