Модуль плагина Time VIP 1.0.0

Выдача VIP-статуса в определенное время суток

  1. R1KO

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

    Сообщения:
    5.970
    Симпатии:
    2.977
    Пользователь R1KO разместил новый ресурс:

    Time VIP - Выдача VIP-статуса в определенное время суток

    Узнать больше об этом ресурсе...
     
    Godsend, bigbrain911 и san911 нравится это.
  2. MaEStro71

    MaEStro71

    Сообщения:
    164
    Симпатии:
    5
    Я так понял он всем выдается?
     
  3. pracc

    pracc

    Сообщения:
    479
    Симпатии:
    128
    Не понял суть данного модуля.
     
  4. Tonki_Ton

    Tonki_Ton

    Сообщения:
    317
    Симпатии:
    31
    В выбранное вами время все игроки на сервере получают вип статус.
     
  5. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.960
    В плагине есть недоработка - та же самая, о которой я предупреждал, когда делал нечто подобное для другого ядра VIP.
    Если время на сервере изменится в большую сторону (перевод "стрелок" на час вперёд), начальное время указывается до полуночи (00:00, например, 20:00), а конечное - после (например, те же 5:00), то плагин в этот день просто не сработает.
    Код:
    	//Текущее: 21 (21:00)  == Стартовое: 20 (20:00)
    	if(iCurrentTime[HOURS] == iStartTime[HOURS])
    	{
    		// 21 НЕ равно 20 - проверка провалилась, продолжаем...
    		if(iCurrentTime[MINUTES] > iStartTime[MINUTES])
    		{
    			g_bGive = true;
    			return Plugin_Continue;
    		}
    	}
    
    	//Текущее: 21 (21:00)  > Стартовое: 20 (20:00)
    	if(iCurrentTime[HOURS] > iStartTime[HOURS])
    	{
    		// 21 > 20 - правда, проверка пройдена успешно.
    		//Текущее: 21 (21:00)  < Конечное: 5 (5:00)
    		if(iCurrentTime[HOURS] < iEndTime[HOURS])
    		{
    			// 21 НЕ меньше 5 - проверка провалилась.
    			g_bGive = true;
    			return Plugin_Continue;
    		}
    		// 21 НЕ равно 5 - проверка провалилась.
    		else if(iCurrentTime[HOURS] == iEndTime[HOURS])
    		{			
    			if(iCurrentTime[MINUTES] < iStartTime[MINUTES])
    			{
    				g_bGive = true;
    				return Plugin_Continue;
    			}
    		}
    		// Действий нет - сбой плагина в эти сутки.
    	}
    Оффтоп
     
  6. MaEStro71

    MaEStro71

    Сообщения:
    164
    Симпатии:
    5
    Ну и как? Работает? У меня на 34-й не вышло. Правда я выставлял время начала 23.15, а время окончания 23.20.
    Может быть правильней было время начала 22.00, окончания 23.00?!
     
  7. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.960
    За эти 5 минут игрокам нужно перезайти - только тогда они получают VIP-статус.
     
  8. R1KO

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

    Сообщения:
    5.970
    Симпатии:
    2.977
    Даже если так - пару раз в году это не страшно.

    По окончанию времени випка не снимается, а просто перестает выдаваться и при перезаходе её уже не будет. Доработаю это
     
  9. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.960
    А если сервер запускают с таким же временем, которое больше текущего? Сразу пойдут жалобы, что есть баг. Оффтоп
     
  10. R1KO

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

    Сообщения:
    5.970
    Симпатии:
    2.977
    Дак какая разница, плагин работает по времени сервера. Даже если я с unix буду работать то он все ровно будет от времени сервера отталкиваться
     
  11. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.960
    Указано стартовое время - 20:00. VIP-ки выдывались, но вдруг сервер упал/перезапустили. Текущее время - 22:34... Всё, никаких больше VIP-статусов, сколько не перезапускай в эти сутки.
    К тому же, на серверах есть режим полного перезапуска плагинов при смене карты (OnPluginStart() выполняется каждую карту). Т.е., в таком случае, плагин вообще не будет стабильно работать по указанному времени.
     
  12. R1KO

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

    Сообщения:
    5.970
    Симпатии:
    2.977
    @AlmazON, почему?
    PHP:
    public OnMapStart()
    {
        
    g_bGive false;
       
        
    Timer_CheckTime(INVALID_HANDLE);

        
    CreateTimer(60.0Timer_CheckTime_TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
    }
    При старте карты сразу произойдет проверка времени.
     
  13. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.960
    TriggerTimer хуже?
    А толку то? Если текущий час больше указанного - проверки проходятся те же.
     
  14. R1KO

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

    Сообщения:
    5.970
    Симпатии:
    2.977
    Не вижу разницы.
    эм.. так в чем проблема? проверки же будут
     
  15. MaEStro71

    MaEStro71

    Сообщения:
    164
    Симпатии:
    5
    Так я на себе проверял. И перезаходить пробовал, но ни чего не выдало. Попытаюсь ночью еще раз провернуть это дело.
     
  16. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.960
    Конечно, каждую минуту. Но ведь час от этого не уменьшается, а увеличивается. Ситуация повторяется. Оффтоп
    А время точно было при этом серверное, а не местное? :ab:
    Это к автору, чего он там намутил. :biggrin: Я бы одним кваром сделал, через тире или пробел. Оффтоп
     
  17. MaEStro71

    MaEStro71

    Сообщения:
    164
    Симпатии:
    5
    Через thetime проверял
     
  18. andrey19992

    andrey19992

    Сообщения:
    301
    Симпатии:
    26
    Все работает, можно ли сделать такую функцию, у меня много групп випок. например игрок с випкой 2 уровня заходит ночью, ночью у всех 7 уровень випок, т.е. больше возможностей. а он на 2 остается
    Можно ли сделать пункт в меню что бы игрок мог выбрать, оставаться на своей випке или на той которая стоит в ночное время, естественно что бы когда время заканчивалось у TIME VIP, ему возвращалась его випка а не продолжалась випка которая указана в TIME VIP.
    Пункт в меню чтото типа. Включить TIME VIP? да нет
    Или даже не надо его автоматически переключать на его випку. т.е. TIME VIP закончилась, у него випка пропадает вообще, заходит в !vip и выключает TIME VIP.
    Вообщем как удобнее будет реализовать. сделай плз))))
     
    R1KO нравится это.
  19. AlmazON

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

    Сообщения:
    4.505
    Симпатии:
    1.960
    Поставь время старта, скажем, 23:59, а конечное - те же 5:00. Зайди на сервер не раньше полночи или позже - и, упс... Это самый значимый пробел плагина.
     
    R1KO нравится это.
  20. andrey19992

    andrey19992

    Сообщения:
    301
    Симпатии:
    26
    у мя 00:00 по 7:30 и все норм :-) SM 1.7.2 ВСЕ СУПППЕР на новый SM даже не думаю переходить :-)