Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 19
  1. #1
    Аватар для PawnCoder
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2016
    Сообщений
    6
    Репутация:
    1 ±

    вычисление времени unix

    Доброго времени суток пользователи.
    Возник вопрос, решение которому сам пока не нашел.

    Приведу пример:

    Выдаю бан игроку, время храню в unix.
    В информации , вывожу дату , когда игрок будет разбанен.
    НО, в планах сделать не дату, а просто количество дней до авто. разбана.

    Но к сожалению нет идей для данной реализации, может кто что подсказать?

  2. #2
    Аватар для Sp1ke
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Цитата Сообщение от PawnCoder Посмотреть сообщение
    Доброго времени суток пользователи.
    Возник вопрос, решение которому сам пока не нашел.

    Приведу пример:

    Выдаю бан игроку, время храню в unix.
    В информации , вывожу дату , когда игрок будет разбанен.
    НО, в планах сделать не дату, а просто количество дней до авто. разбана.

    Но к сожалению нет идей для данной реализации, может кто что подсказать?
    Узнать текущее unix время, вычесть его из времени разбана и поделить на кол-во секунд в одних сутках, как-то так и должно работать

  3. #3
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Имхо, почему бы не сделать систему бана по дням. И в определённое время всем аккаунтам каждый день уменьшать дни бана на единицу?

  4. #4
    Аватар для PawnCoder
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2016
    Сообщений
    6
    Репутация:
    1 ±
    Цитата Сообщение от Sp1ke Посмотреть сообщение
    Узнать текущее unix время, вычесть его из времени разбана и поделить на кол-во секунд в одних сутках, как-то так и должно работать
    Пробовал, выводит число, которого будет снят бан, но не остаток до него.

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

    Цитата Сообщение от _lizard Посмотреть сообщение
    Имхо, почему бы не сделать систему бана по дням. И в определённое время всем аккаунтам каждый день уменьшать дни бана на единицу?
    И теперь представим , проверить все аккаунты, на наличие бана и после этого снять от туда 1 день, глупо.
    Это будет реальным на сервере , если там аккаунтов 20-30 зарегистрировано, но никак не для сервера с тысячами аккаунтов.

  5. #5
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от PawnCoder Посмотреть сообщение
    Пробовал, выводит число, которого будет снят бан, но не остаток до него.
    Код покажи как ты делал кривую проверку))
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

  6. #6
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от PawnCoder Посмотреть сообщение
    Пробовал, выводит число, которого будет снят бан, но не остаток до него.

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



    И теперь представим , проверить все аккаунты, на наличие бана и после этого снять от туда 1 день, глупо.
    Это будет реальным на сервере , если там аккаунтов 20-30 зарегистрировано, но никак не для сервера с тысячами аккаунтов.
    MySQL?

    Если да, то в чём проблема?
    PHP код:
    UPDATE `accountsSET `ban` = `ban`-1 WHERE `ban` != // Возможна ошибка синтаксиса, не проверял 

  7. #7
    Аватар для PawnCoder
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2016
    Сообщений
    6
    Репутация:
    1 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    Код покажи как ты делал кривую проверку))
    PHP код:

            
    new test = (pData[playerid][pUnBanDate]-gettime())/86400;
            
    format(messagessizeof(messages), "Осталось: %s"date("%d"test)) 
    - - - Добавлено - - -

    Цитата Сообщение от _lizard Посмотреть сообщение
    MySQL?

    Если да, то в чём проблема?
    PHP код:
    UPDATE `accountsSET `ban` = `ban`-1 WHERE `ban` != // Возможна ошибка синтаксиса, не проверял 
    да, MySQL.
    Но в данной ситуации уже хочется разобраться даже ради личного интереса.
    И понятия на будущее.

  8. #8
    Аватар для Sp1ke
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    PHP код:
    main()                                                            
    {
        new 
    unban gettime()+86400*7;
        
    printf("Разбан через %d дней", (unban-gettime())/86400);

    Консоль:
    PHP код:
    [22:52:09Разбан через 7 дней 

  9. #9
    Аватар для PawnCoder
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.08.2016
    Сообщений
    6
    Репутация:
    1 ±
    Цитата Сообщение от Sp1ke Посмотреть сообщение
    PHP код:
    main()                                                            
    {
        new 
    unban gettime()+86400*7;
        
    printf("Разбан через %d дней", (unban-gettime())/86400);

    Консоль:
    PHP код:
    [22:52:09Разбан через 7 дней 
    Даю бан на 10 дней, выводит: Разбан через 9.
    Хотя код, аналогичен твоему.

  10. #10
    Аватар для Sp1ke
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.03.2015
    Сообщений
    245
    Репутация:
    55 ±
    Цитата Сообщение от PawnCoder Посмотреть сообщение
    Даю бан на 10 дней, выводит: Разбан через 9.
    Хотя код, аналогичен твоему.
    Скинь полный код выдачи бана, скрины с бд и расчет дней до снятия
    UP: если прошла хоть одна секунда след. суток - будет на день меньше
    UPx2: решается добавлением еще одних суток к времени бана и потом проверкой, если осталось меньше суток - разбан, вроде как должно работать
    Последний раз редактировалось Sp1ke; 27.08.2016 в 00:17.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •