Maxxwel
Дебютант
Приветствую всех! Столкнулся с такой проблемой, после рестарта, сносятся все проверки на ранее использованные промокоды, т.е до рестарта ты не можешь использовать промокод больше 1 раза, после рестарта опять таки, появляется возможность активировать промокод, создал ранее столбец в БД Аккаунтов под названием - pPromokodik, указал так же его в моде, где только возможно, при активации промокода поставил так, что бы к pPromokodik присваивалось значение - 1 и соответственно в диалогах сделал проверку, но после рестарта, проверка слетает, подскажите, в чем проблема?:au::au::au::bc::bc::bc::ao::bw::bw:
case
Сам диалог и проверка где я ввожу сам промокод.
Форвады и сток
В чем проблема, не пойму, помогите пожалуйста.
case
PHP:
case 2374:
{
if(!response) return true;
switch(listitem)
{
case 0: mysql_function_query(mysql, "SELECT * FROM `promo`", true, "mysql_PromoCodeShow", "i", playerid);
case 1: ShowPlayerDialogEx(playerid,2380,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Введите код для Промокода:","Далее","Отмена");
case 2: ShowPlayerDialogEx(playerid,2389,DIALOG_STYLE_INPUT,"{66CC00}Удаление Промокода","Введите код для Промокода:","Далее","Отмена");
}
}
case 2389:
{
if(!response) return 1;
if(!strlen(inputtext)) return ShowPlayerDialogEx(playerid, 2389, DIALOG_STYLE_INPUT, "{63BD4E}Удаление Промокода", "{FFFFFF}Введите Промокод который хотите удалить", "Далее", "Назад");
for(new i = strlen(inputtext); i != 0; --i)
{
switch(inputtext[i])
{
case 'А'..'Я', 'а'..'я', ' ':
{
SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Вы указали Промокод на русской раскладке");
ShowPlayerDialog(playerid, 2389, DIALOG_STYLE_INPUT, "{63BD4E}Удаление Промокода", "{FFFFFF}Введите Промокод который хотите удалить", "Далее", "Назад");
}
}
}
mysql_tquery(mysql, "SELECT * FROM promo", "@PromoCodeDelete", "is", playerid, inputtext);
}
case 2380:
{
if(!response) return true;
if(!strlen(inputtext)) return ShowPlayerDialogEx(playerid,2380,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Введите код для Промокода:\nИспользуйте от 3 до 16 символов","Далее","Отмена");
if(strlen(inputtext) < 3 || strlen(inputtext) > 16) return ShowPlayerDialogEx(playerid,2380,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Введите код для Промокода:\n{FF0000}Используйте от 3 до 16 символов","Далее","Отмена");
SetPVarString(playerid,"PROMONAME",inputtext);
ShowPlayerDialogEx(playerid,2381,DIALOG_STYLE_MSGBOX,"{66CC00}Создание Промокода","Вы хотите создать Промокод для кол-ва людей или кол-ва дней?","Дней","Людей");
}
case 2381:
{
if(response) ShowPlayerDialogEx(playerid,2382,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","На какое кол-во дней Вы хотите создать Промокод?\nВводите от 1 до 7 дней","Далее","Отмена");
else ShowPlayerDialogEx(playerid,2383,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","На сколько человек Вы хотите создать Промокод?\nВводите от 1 до 500","Далее","Отмена");
}
case 2382:
{
if(!response) return true;
if(!strlen(inputtext)) return ShowPlayerDialogEx(playerid,2382,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","На какое кол-во дней Вы хотите создать Промокод?\nВводите от 1 до 7 дней","Далее","Отмена");
if(strval(inputtext) < 1 || strval(inputtext) > 7) return ShowPlayerDialogEx(playerid,2382,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","На какое кол-во дней Вы хотите создать Промокод?\n{FF0000}Вводите от 1 до 7 дней","Далее","Отмена");
SetPVarInt(playerid,"PROMODAYS",strval(inputtext));
SetPVarInt(playerid,"PROMOLUD",0);
ShowPlayerDialogEx(playerid,2384,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Хотите что-бы при вводе этого Промокода выдавало VIP?\nЕсли не хотите,то вводите число равное 0\nЕсли хотите,то введите количество дней на которое будет выдано VIP","Ввести","Отмена");
}
case 2383:
{
if(!response) return true;
if(!strlen(inputtext)) return ShowPlayerDialogEx(playerid,2383,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","На какое кол-во людей Вы хотите создать Промокод?\nВводите от 1 до 500 людей","Далее","Отмена");
if(strval(inputtext) < 1 || strval(inputtext) > 500) return ShowPlayerDialogEx(playerid,2383,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","На какое кол-во людей Вы хотите создать Промокод?\n{FF0000}Вводите от 1 до 500 людей","Далее","Отмена");
SetPVarInt(playerid,"PROMOLUD",strval(inputtext));
SetPVarInt(playerid,"PROMODAYS",-1);
ShowPlayerDialogEx(playerid,2384,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Хотите что-бы при вводе этого Промокода выдавало VIP?\nЕсли не хотите,то вводите число равное 0\nЕсли хотите,то введите количество дней на которое будет выдано VIP","Ввести","Отмена");
}
case 2384:
{
if(!response) return true;
if(!strlen(inputtext)) return ShowPlayerDialogEx(playerid,2384,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Хотите что-бы при вводе этого Промокода выдавало VIP?\nЕсли не хотите,то вводите число равное 0\nЕсли хотите,то введите количество дней на которое будет выдано VIP","Ввести","Отмена");
if(strval(inputtext) < 0 || strval(inputtext) > 30) return ShowPlayerDialogEx(playerid,2384,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Хотите что-бы при вводе этого Промокода выдавало VIP?\n{FF0000}Если не хотите,то вводите число равное 0\nЕсли хотите,то введите количество дней на которое будет выдано VIP","Ввести","Отмена");
SetPVarInt(playerid,"PROMOVIP",strval(inputtext));
ShowPlayerDialogEx(playerid,2385,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Введите кол-во денег,которое будет выдано при вводе Промокода:\nИспользуйте до 10.000.000$","Ввести","Отмена");
}
case 2385:
{
if(!response) return true;
if(!strlen(inputtext)) return ShowPlayerDialogEx(playerid,2385,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Введите кол-во денег,которое будет выдано при вводе Промокода:\nИспользуйте 10.000.000$","Ввести","Отмена");
if(strval(inputtext) < 2000 || strval(inputtext) > 10000000) return ShowPlayerDialogEx(playerid,2385,DIALOG_STYLE_INPUT,"{66CC00}Создание Промокода","Введите кол-во денег,которое будет выдано при вводе Промокода:\n{FF0000}Используйте do 10kk","Ввести","Отмена");
SetPVarInt(playerid,"PROMOMONEY",strval(inputtext));
ShowPlayerDialogEx(playerid,2386,DIALOG_STYLE_MSGBOX,"{66CC00}Создание Промокода","Вы хотите чтобы выдавались деньги на донат счёт?(50 руб)","Да","Нет");
}
case 2386:
{
new promoname[16],string1[256];
GetPVarString(playerid, "PROMONAME", promoname, sizeof(promoname));
new promoday = GetPVarInt(playerid,"PROMODAYS");
new promolud = GetPVarInt(playerid,"PROMOLUD");
new promovip = GetPVarInt(playerid,"PROMOVIP");
new promomoney = GetPVarInt(playerid,"PROMOMONEY");
format(string1,sizeof(string1),"{FFFFFF}Вы хотите создать Промокод '%s'?\nВыдача VIP на %d дней\nВыдача денег: %d$\nВыдача 50 донат-рублей: Да\n\nПромокод действует на %d дн. или %d чел.",promoname,promovip,promomoney,promoday,promolud);
ShowPlayerDialogEx(playerid,2387,DIALOG_STYLE_MSGBOX,"{66CC00}Создание Промокода",string1,"Создать","Отмена");
}
case 2387:
{
if(!response) return true;
new qstring[128],promoname[16];
GetPVarString(playerid, "PROMONAME", promoname, sizeof(promoname));
format(qstring,sizeof(qstring), "SELECT * FROM `promo` WHERE `code`='%s'", promoname);
mysql_function_query(mysql, qstring, true, "mysql_PromoCreate", "is", playerid,promoname);
}
case 2388:
{
new qstring[128];
format(qstring,sizeof(qstring), "SELECT * FROM `promo` WHERE `code`='%s'", inputtext);
mysql_function_query(mysql, qstring, true, "mysql_PromoCheck", "is", playerid,inputtext);
}
Сам диалог и проверка где я ввожу сам промокод.
PHP:
case 10:
{
if(PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid,COLOR_GREY,"[Ошибка] Для активации промокода требуется 3 уровень.");
if(PlayerInfo[playerid][pPromokodik] == 1) return SendClientMessage(playerid,COLOR_GREY,"[Ошибка] {FFFFFF}Ранее вы уже активировали промокод!"); // Ранее пытался сделать [pPromokodik] > 0) Результат такой же.
return ShowPlayerDialogEx(playerid,2388,DIALOG_STYLE_INPUT,"{FFCC00}Ввод Промокода","{FFFFFF}Введите {e4a72b}Промокод{FFFFFF} пригласившего вас ютубера/стримера!","Ввод","Назад");
}
}
}
Форвады и сток
PHP:
forward mysql_PromoCheck(playerid,code[]);
public mysql_PromoCheck(playerid,code[])
{
new rows,fields;
cache_get_data(rows, fields);
if(!rows) return SendClientMessage(playerid, -1, "[Ошибка]{FFFFFF} Промокод не найден!");
new string[128];
//new vipka = cache_get_field_content_int(0, "vip");
new money = cache_get_field_content_int(0, "money");
//new license = cache_get_field_content_int(0, "lic");
new ludi = cache_get_field_content_int(0, "ludi");
SendClientMessage(playerid,COLOR_YANDEX,"Вы успешно активировали Промокод {FFFFFF}'%s'",code);
SendClientMessage(playerid,COLOR_YANDEX,"Промокод содержит:");
SendClientMessage(playerid,COLOR_YANDEX,"Деньги: {FFFFFF}150.000$");
SendClientMessage(playerid,COLOR_YANDEX,"10 Рублей | (/donate)");
SendClientMessage(playerid,COLOR_YANDEX,"Водительские права | Права на мотоциклы | (/showlic)");
SendClientMessage(playerid,COLOR_YANDEX,"Навыки владения оружием: Deagle,Shotgun | (/skill)");
SendClientMessage(playerid,COLOR_YANDEX,"3 Аптечки | (Использовать - /healme)");
SendClientMessage(playerid,COLOR_YANDEX,"3 Пачки Чипсов | (Использовать - /eat)");
SendClientMessage(playerid,COLOR_YANDEX,"5 Очков Опыта | (/stats)");
SendClientMessage(playerid,COLOR_YANDEX,"Улучшение для /gps | (/gps)");
GiveMoney(playerid,money);
PlayerInfo[playerid][pVirMoney]+=10;
PlayerInfo[playerid][pCarLic]=2;
PlayerInfo[playerid][pRoliki]=3;
PlayerInfo[playerid][pCheeps]=3;
PlayerInfo[playerid][pBikeLic]=2;
PlayerInfo[playerid][pUpgrade]=1;
PlayerInfo[playerid][pEagle_Skill]=10000;
PlayerInfo[playerid][pShotGun_Skill]=10000;
PlayerInfo[playerid][pExp]+=5;
PlayerInfo[playerid][pPromokodik]=1;
SaveAccount(playerid);
ludi --;
format(string,sizeof(string),"UPDATE `promo` SET `ludi` = '%d' WHERE `code` = '%s'",ludi,code);
mysql_function_query(mysql, string, false, "", "");
if(ludi == 0)
{
format(string,sizeof(string), "DELETE FROM `promo` WHERE `code`='%s'", code);
mysql_function_query(mysql, string, false, "", "");
}
if(gettime() >= cache_get_field_content_int(0, "data") && ludi == 0)
{
format(string,sizeof(string), "DELETE FROM `promo` WHERE `code`='%s'", code);
mysql_function_query(mysql, string, false, "", "");
}
return 1;
}
forward mysql_PromoCodeShow(playerid);
public mysql_PromoCodeShow(playerid)
{
new rows,fields;
cache_get_data(rows, fields);
if(!rows) return SendClientMessage(playerid, COLOR_GREY, "[A] Список Промокодов отсутствует");
new promolist[1256],code[32];
for(new i; i<rows; i++)
{
cache_get_field_content(i, "code", code, mysql);
//new vipka = cache_get_field_content_int(i, "vip");
new money = cache_get_field_content_int(i, "money");
//new license = cache_get_field_content_int(i, "lic");
format(promolist,sizeof(promolist),"%s%d. Название: %s | Деньги: %d$ | Рубли: 10 рублей\n", promolist, i+1,code,money);
}
ShowPlayerDialogEx(playerid, 999999, DIALOG_STYLE_LIST,"{09B3DE}Список Промокодов", promolist, "Закрыть", "");
return 1;
}
@PromoCodeDelete(playerid, code[]);
@PromoCodeDelete(playerid, code[])
{
new rows, fields;
cache_get_data(rows, fields);
if(!rows) return SendClientMessage(playerid, -1, "Промокод '%s' не обнаружен",code);
new string[256];
SendClientMessage(playerid, COLOR_GREY, "{FFFFFF}Промокод {FFFF00}'%s'{FFFFFF} успешно удалён",code);
format(string,sizeof(string),"DELETE FROM `promo` WHERE `code` = '%s'", code);
mysql_function_query(mysql, string, false, "", "");
return 1;
}
forward mysql_PromoCreate(playerid,code[]);
public mysql_PromoCreate(playerid,code[])
{
new rows,fields;
cache_get_data(rows, fields);
if(rows) return SendClientMessage(playerid, COLOR_GREY, "[A] Промокод '%s' уже есть в списке",code);
new string[256];
new promoday = GetPVarInt(playerid,"PROMODAYS");
new promolud = GetPVarInt(playerid,"PROMOLUD");
new promovip = GetPVarInt(playerid,"PROMOVIP");
new promomoney = GetPVarInt(playerid,"PROMOMONEY");
new promolic = GetPVarInt(playerid,"PROMOLIC");
format(string,sizeof(string),"INSERT INTO `promo` (`code`,`vip`,`money`,`lic`,`days`,`ludi`,`data`) VALUES ('%s','%d','%d','%d','%d','%d','%d')",code,promovip,promomoney,promolic,promoday,promolud,gettime()+promoday);
mysql_function_query(mysql, string, false, "", "");
format(string,sizeof(string),"{FFFFFF}Промокод '%s' успешно создан\nВыдача VIP\nВыдача денег на %d$\nВыдача донат рублей: 10\n\nПромокод действует на %d дн. или %d чел.",code,promomoney,promoday,promolud);
ShowPlayerDialogEx(playerid, 999999, DIALOG_STYLE_MSGBOX, "{66CC00}Создание Промокода", string, "Закрыть", "");
return DeletePVar(playerid,"PROMONAME"),DeletePVar(playerid,"PROMODAYS"),DeletePVar(playerid,"PROMOLUD"),DeletePVar(playerid,"PROMOVIP"),DeletePVar(playerid,"PROMOMONEY"),DeletePVar(playerid,"PROMOLIC");
}
В чем проблема, не пойму, помогите пожалуйста.
