PDA

Просмотр полной версии : [Вопрос] Вопрос по gettime()



pawno_Lyubitel
18.06.2016, 13:20
Уважаемые знатоки pro-pawn. Хочу разобраться с функцией gettime(), но не с получением времени, а для таких вещей, как /mute, /jail, /warn, /ban. Поэтому прощу обьяснить мне по поводу это функции.
Например возьмем например варн. Для снятия варна, нужно чтобы прошло ну к примеру 10 дней, в секундах получится "864000" и далее проверять вышло истекло ли указанно время так, в паблике типа:


forward unwarn(playerid);
public unwarn(playerid)
{
if(player_info[playerid][pWarn] < gettime())
{
// действия
}
}

так получается? ну это примерный код
А чтобы в /time показать сколько осталось, это от надо от массива вычитать gettime() ?


player_info[playerid][pWarn] - gettime())

- - - Добавлено - - -

Интересует как отсчитывается время.
gettime без параметров() получает unix время, а там отсчет с какого - то там года как я понял.

вот в паблике снятия допустим варна стоит проверка , если время указанное в массиве меньше чем gettime, то происходит снятие наказания, но ведь как не крути, gettime не может быть меньше чем время указанное в массиве, ведь в сравнении с полученными unix временем, то что указано в массиве player_info[playerid][pWarn] куда меньше чем то, что находится в gettime, или я чего - то не понимаю, может какие - то тонкости есть у этой функции?

ziggi
18.06.2016, 14:35
Можно написать простую функцию для нахождения оставшегося времени:

stock GetPlayerWarnRemainingTime(playerid)
{
return player_info[playerid][pWarn] - gettime();
}
И проверять так:

forward unwarn(playerid);
public unwarn(playerid)
{
if (GetPlayerWarnRemainingTime(playerid) <= 0)
{
// действия
}
}
Время в player_info[playerid][pWarn] записываешь так:

player_info[playerid][pWarn] = gettime() + 864000;