Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Проверка на использование промо.

Статус
В этой теме нельзя размещать новые ответы.

Maxxwel

Дебютант
Приветствую всех! Столкнулся с такой проблемой, после рестарта, сносятся все проверки на ранее использованные промокоды, т.е до рестарта ты не можешь использовать промокод больше 1 раза, после рестарта опять таки, появляется возможность активировать промокод, создал ранее столбец в БД Аккаунтов под названием - pPromokodik, указал так же его в моде, где только возможно, при активации промокода поставил так, что бы к pPromokodik присваивалось значение - 1 и соответственно в диалогах сделал проверку, но после рестарта, проверка слетает, подскажите, в чем проблема?:au::au::au::bc::bc::bc::ao::bw::bw:

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

В чем проблема, не пойму, помогите пожалуйста.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу