Вопросы

Всем доброе времени суток пользователям pawno-rus, я не так давно начал изучать mysql, и уже столкнулся с такой проблема :(
Хочу сделать вип по дням, но почему-то не загружается дата вип аккаунта. Получается всегда захожу на сервер а пишет что у меня нет вип, хотя дни вип аккаунта не закончились. Хотел бы у вас узнать где тут моя ошибка!?
И пожалуйста, если не трудно то с объяснениями так как хочу в будущим не допускать таких ошибок!

Выдача вип аккаунта:

Спойлер

if(!(1 < days < 365)) return SendClientMessage(playerid, COLOR_LIGHTRED, "Не больше 365 и не меньше 1 дня(ей)!");
PlayerInfo[playerid][pDonate] -= days*VipCost;
PlayerInfo[playerid][pVip] = 1;
format(stringEA,sizeof(stringEA),"INSERT INTO `vips` (`Nick`, `UnVipDate`, `VipDate`, ) VALUES ('%s',NOW() + INTERVAL %d DAY, NOW())",PlayerInfo[playerid][pName],days);
mysql_tquery(mysql_connection, stringEA, "","");

В авторизацию сделал так:

Спойлер

format(stringEA, sizeof(stringEA), "SELECT (UNIX_TIMESTAMP(`UnVipDate`)) AS `time` FROM `vips` WHERE `Nick` = '%s'", PlayerInfo[playerid][pName]);
mysql_tquery(mysql_connection, stringEA, "CheckVip", "d", playerid);

И проверка вот так:

Спойлер

public CheckVip(playerid)
{
new stringEA[200];
new time;
if(time-gettime() < 0)
{
format(stringEA, sizeof(stringEA), "DELETE FROM `vips` WHERE `Nick` = '%s'",PlayerInfo[playerid][pName]);
mysql_tquery(mysql_connection, stringEA, "","");
PlayerInfo[playerid][pVip] = 0;
ShowPlayerDialog(playerid,11111,DIALOG_STYLE_MSGBO X,"{FFFFFF}Внимание!","{FFFFFF}Время вашего VIP аккаунта истекло!\nВипка была снята!","Хорошо","");
return true;
}
else
{
format(stringEA, sizeof(stringEA), "\
{FFFFFF}Добро пожаловать VIP игрок!\n\
Дата выдачи VIP: %s\n\
Дата снятия VIP: %s");
ShowPlayerDialog(playerid,11111,DIALOG_STYLE_MSGBO X,"{FFFFFF}Внимание!",stringEA,"Хорошо","");
}
return true;
}

В интернете искал, но не чего не нашёл про mysql r41-2 а переходить на другую версию, иза одной только проблемы... Думаю это очень глупа. 

Отредактировано пользователем Покемон

Поделиться сообщением


Ссылка на сообщение

8 ответов на этот вопрос

  • 0

Проблема решена, была проблема  в запросе. Решил переписал бд сделал новый запрос, сделал новый паблик checkvip и тд... За место проверки на дату точнее UnVipDate, сделал Таймер gettime() + (60*60*24*days)  и все это сохранил. 

Использовал для проверки работы printf("%d", time);
 

Отредактировано пользователем Покемон

Поделиться сообщением


Ссылка на сообщение
  • 0

@Покемон Не знаю где вы такой замороченный код достали, если не понимаете, лучше делать полегче. 

Выводите значение переменной time через printf.

Поделиться сообщением


Ссылка на сообщение
  • 0
2 минуты назад, DEST сказал:

@Покемон Не знаю где вы такой замороченный код достали, если не понимаете, лучше делать полегче. 

Выводите значение переменной time через printf.

 

У меня та же проблема. Не получилось сделать. Может где то на вашем форуме есть такой скрипт?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Сергей Князев скрипт чего? Клавиатуры? Нужно в паблике CheckVip 4 строкой добавить:
 

printf("%d", time);

После вызвать этот код заходом в игру и скинуть логи. 

Поделиться сообщением


Ссылка на сообщение
  • 0
19 минут назад, DEST сказал:

@Сергей Князев скрипт чего? Клавиатуры? Нужно в паблике CheckVip 4 строкой добавить:
 


printf("%d", time);

После вызвать этот код заходом в игру и скинуть логи. 

По пробовал, не чего не написало не загружается, скорее всего в запросе допустил ошибку. Можешь помочь её решить?
Я просто не знаю как использовать загрузку даты в Mysql. ( 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Покемон значит смотри в mysql_log.txt и проверяй в базе данных, изменяется значение при выдаче випки

Поделиться сообщением


Ссылка на сообщение
  • 0
Только что, DEST сказал:

@Покемон значит смотри в mysql_log.txt и проверяй в базе данных, изменяется значение при выдаче випки

Там все правильно, в том то и  дело что при загрузки вип аккаунта проблемы ( 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Покемон значит попробуй заменить запрос:

format(stringEA, sizeof(stringEA), "SELECT * FROM `vips` WHERE `Nick` = '%s'", PlayerInfo[playerid][pName]);

И паблик заменить: 

public CheckVip(playerid)
{
  new stringEA[200];
  new time = cache_get_field_content_int(0, "UnVipDate");
  new vipdate = cache_get_field_content_int(0, "VipDate"); 
  if(time-gettime() < 0)
  {
    format(stringEA, sizeof(stringEA), "DELETE FROM `vips` WHERE `Nick` = '%s'",PlayerInfo[playerid][pName]);
    mysql_tquery(mysql_connection, stringEA, "","");
    PlayerInfo[playerid][pVip] = 0;
    ShowPlayerDialog(playerid,11111,DIALOG_STYLE_MSGBO X,"{FFFFFF}Внимание!","{FFFFFF}Время вашего VIP аккаунта истекло!\nВипка была снята!","Хорошо","");
    return true;
  }
  else
  {
    format(stringEA, sizeof(stringEA), "\
    {FFFFFF}Добро пожаловать VIP игрок!\n\
    Дата выдачи VIP: %s\n\
    Дата снятия VIP: %s", date("dd.mm.yyyy, %hh:%ii:%ss", vipdate), date("dd.mm.yyyy, %hh:%ii:%ss", time));
    ShowPlayerDialog(playerid,11111,DIALOG_STYLE_MSGBO X,"{FFFFFF}Внимание!",stringEA,"Хорошо","");
  }
  return true;
}

 

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Узбек
      От Узбек
      Всем добрый вечер ребят! 
      Я начинающий, сегодня я вам сливаю команду 2(шт) на технические работы
      Ловите 
       
    • nazpol9
      От nazpol9
      Привет всем.

      У меня имеется мод для самп сервера и VPS с Ubuntu, на котором я пытаюсь его запустить.

      В чем суть проблемы: при запуске samp03svr, сервер запускается, но на версии 0.3.DL R-1. Когда я пытаюсь запустить этот же мод локально на Windows, сервер работает на версии 0.3.7 и я могу зайти на него без клиента 0.3.DL.

      Для решения этой проблемы я уже пробовал заменять инклуды и исполнительные файлы теми, что есть в архивах на официальном сайте сампа, перекомпилировал мод, и ничего не изменилось.
       
      #include <a_samp> #include <a_mysql> #include <foreach> #include <Pawn.RakNet> #include <streamer> #include <sscanf2> #include <float2> #include <crashdetect> #include <fmt> #include <a_http> #include <Pawn.CMD> #include <Pawn.Regex> #include <requests> #include <callbacks> #include <MD5> #include <mxdate> #include <TOTP> #include <gvar> #include <md-sort> #include <nex-ac> #include <weapon-config> #include <discord-connector> #include <3DTryg> #include <textdraw-streamer>  
      plugins crashdetect.so streamer.so textdraw-streamer.so sscanf.so pawnraknet.so pawncmd.so mysql.so requests.so profiler.so pawnregex.so TOTP.so gvar.so discord-connector.so

      Если у кого-то будут какие-либо догадки, прошу ими поделиться, если понадобится больше информации - я постараюсь её предоставить.