Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для _lizard
    Пользователь

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±

    mysql | события/phpmyadmin

    Создал событие на уменьшение времени мута каждые 60 секунд, но почему-то оно не убавляет секунды (игроки удовлетворяют условиям WHERE). Может я не понимаю как они работают?
      Открыть/закрыть

    Где зачёркнуто - написано database@%




    mute_time остаётся 1200.
    Последний раз редактировалось _lizard; 18.02.2017 в 17:05.

  2. #2
    Аватар для ziggi
    Проверенный

    Статус
    Оффлайн
    Регистрация
    14.05.2015
    Сообщений
    1,181
    Репутация:
    790 ±
    Какой тип поля?

    И да, система не надёжная, лучше запоминать время окончания мута в виде timestamp, тогда никакие таймеры не понадобятся и ничего вычитать не придётся.

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

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от ziggi Посмотреть сообщение
    Какой тип поля?
    Int

    Цитата Сообщение от ziggi Посмотреть сообщение
    И да, система не надёжная, лучше запоминать время окончания мута в виде timestamp, тогда никакие таймеры не понадобятся и ничего вычитать не придётся.
    Так игрок может же и оффнуться, при повторном входе ему надо будет выдать оставшееся время
    upd: догнал, что можно просто вычесть

  4. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от _lizard Посмотреть сообщение
    Так игрок может же и оффнуться, при повторном входе ему надо будет выдать оставшееся время
    upd: догнал, что можно просто вычесть
    Эмм, Ziggi говорит про такой вариант:
    PHP код:
    //При выдаче мута
    pInfo[playerid][pMuteTime] = gettime()+60;//Даём мут, например, на 60 секунд

    //OnPlayerText
    if(pInfo[playerid][pMuteTime] > gettime)
    {
        
    SendClientMessage(playerid, -1"У вас мут");
        return 
    0;

    И ничего вычитать не нужно будет. Просто записываешь значение pMuteTime в таблицу и оттуда же выгружаешь при входе. Больше никаких действий не нужно
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    11.02.2016
    Адрес
    Геленджик
    Сообщений
    193
    Репутация:
    26 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Эмм, Ziggi говорит про такой вариант:
    PHP код:
    //При выдаче мута
    pInfo[playerid][pMuteTime] = gettime()+60;//Даём мут, например, на 60 секунд

    //OnPlayerText
    if(pInfo[playerid][pMuteTime] > gettime)
    {
        
    SendClientMessage(playerid, -1"У вас мут");
        return 
    0;

    И ничего вычитать не нужно будет. Просто записываешь значение pMuteTime в таблицу и оттуда же выгружаешь при входе. Больше никаких действий не нужно
    Так игрок может просто оффнуться и мут у него будет "убывать" когда его не будет в игре. А мне надо, чтоб секунды убавлялись только в онлайне

  6. #6
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от _lizard Посмотреть сообщение
    Так игрок может просто оффнуться и мут у него будет "убывать" когда его не будет в игре. А мне надо, чтоб секунды убавлялись только в онлайне
    Если у тебя есть столбец, куда записывается время выхода, то переводишь его в UnixTime, отнимаешь его от нового времени входа и прибавляешь это время к времени мута
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

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

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

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

Ваши права

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