Рекомендованные сообщения



9 posts in this topic

Всем доброе времени суток пользователям 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 а переходить на другую версию, иза одной только проблемы... Думаю это очень глупа. 

Edited by Покемон

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
2 минуты назад, DEST сказал:

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

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

 

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

Share this post


Link to post
Share on other sites

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

printf("%d", time);

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

Share this post


Link to post
Share on other sites
19 минут назад, DEST сказал:

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


printf("%d", time);

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Только что, DEST сказал:

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

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

Share this post


Link to post
Share on other sites

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

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;
}

 

Share this post


Link to post
Share on other sites

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

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

Edited by Покемон

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • glvde.
      By glvde.
      Хранение данных (версия MySQL): R39-5.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 59472.
      Анти-чит: Nex-AC (кривая адаптация под CRMP 0.3e, есть ложные кики).
       
      Автор данного мода: Feliks_Macalister.
      Автор данной доработки: glvde. (я).

      Увы, полный лог обновлений не остался.
      Что было сделано:

      Меня уже пинали за данный слив в блок, т.к не проверив, залил вирусы.
      Поэтому, прикрепляю ссылку на VirusTotal: *кликабельно*.
      Архив на VT: perfectzrp.zip, тут zrp,zip. Архив тот же, просто переименовал.

      Данный мод стоял на проекте Zentorno CRMP в 2019 году.
      Мод оригинальный, много доработок летает на ютубе.
      В команде /setcmd есть мой копирайт - Kevin_Way.
       
      Решение проблемы со слетом выданных команд (/setcmd):
       
      Не исключаю, что есть ещё баги.
      Спасибо за внимание.
       
      Не забывайте вступать в мою группу, а так же беседу, где все спойлеры по поводу обновлений - vk.link/way_dev.
    • glvde.
      By glvde.
      Zentorno RolePlay | Летняя версия
      Просмотр файла Хранение данных (версия MySQL): R39-5.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 59472.
      Анти-чит: Nex-AC (кривая адаптация под CRMP 0.3e, есть ложные кики).
       
      Автор данного мода: Feliks_Macalister.
      Автор данной доработки: glvde. (я).

      Увы, полный лог обновлений не остался.
      Что было сделано:

      Меня уже пинали за данный слив в блок, т.к не проверив, залил вирусы.
      Поэтому, прикрепляю ссылку на VirusTotal: *кликабельно*.
      Архив на VT: perfectzrp.zip, тут zrp,zip. Архив тот же, просто переименовал.

      Данный мод стоял на проекте Zentorno CRMP в 2019 году.
      Мод оригинальный, много доработок летает на ютубе.
      В команде /setcmd есть мой копирайт - Kevin_Way.
       
      Решение проблемы со слетом выданных команд (/setcmd):
       
      Не исключаю, что есть ещё баги.
      Спасибо за внимание.
       
      Не забывайте вступать в мою группу, а так же беседу, где все спойлеры по поводу обновлений - vk.link/way_dev.
      Добавил glvde. Добавлено 20.03.2021 Категория Моды Автор glvde.  
    • glvde.
      By glvde.
      Данный плагин предназначен для бонусников аризоны, которые используют лаунчер аризоны/сервер коннект
      С помощью данного плагина Вы сможете:
      - Включить стиль худ аризоны
      - Включить спидометр аризоны
      - Включить радар аризоны
      - Изменить шкалу еды худа аризоны
      - Изменить количество бензина
      Исходники: https://github.com/legendabrn/arzHUD

      Подключаем инклуд:
      #include <arz> В OnPlayerConnect:
      arz_Hud(playerid, 2); arz_Radar(playerid, 2); arz_Speed(playerid, 2);  
      Автор слива: legendabrn.
    • glvde.
      By glvde.
      arzHUD
      Просмотр файла Данный плагин предназначен для бонусников аризоны, которые используют лаунчер аризоны/сервер коннект
      С помощью данного плагина Вы сможете:
      - Включить стиль худ аризоны
      - Включить спидометр аризоны
      - Включить радар аризоны
      - Изменить шкалу еды худа аризоны
      - Изменить количество бензина
      Исходники: https://github.com/legendabrn/arzHUD

      Подключаем инклуд:
      #include <arz> В OnPlayerConnect:
      arz_Hud(playerid, 2); arz_Radar(playerid, 2); arz_Speed(playerid, 2);  
      Автор слива: legendabrn.
      Добавил glvde. Добавлено 16.06.2021 Категория Плагины / инклуды Автор legendabrn Совместимость с версией мультиплеера SA:MP 0.3.7  
    • glvde.
      By glvde.
      Хранение данных (версия MySQL): R39-6.
      Командный процессор: Pawn.CMD.
      Количество строк в моде (без маппинга): 65908.
      Анти-чит: Nexius-AC v1.9.55.
       
      Автор данного мода: неизвестно.
      Автор данной доработки: glvde. (я).

      На доработку мода ушло около двух недель.
      Тестовый сервер предоставляется по запросу покупателя.
       
       
       

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