• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Перевод на новую версию MySQL

Frend Williams

Умник
Такая проблема взял мануал по созданию промокодов. У меня используется версия MySQL R39-6. Но..У автора более новая.. Не могу понять как переделать
Код:
mysql_function_query(dbHandle, "SELECT * FROM `promo`", true, "mysql_PromoCodeShow", "i", playerid);
Потому что в данный момент промокод тупо не создается. Косяк с отправление запроса в БД. Так же есть лог
C#:
[18:14:56] [mysql] 1064, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{FFFFFF}Вы хотите создать промокод '#TEST'?
Выдача ' at line 1, mysql_PromoCreate, {FFFFFF}Вы хотите создать промокод '#TEST'?
Выдача VIP на 0 дней
Выдача денег на 30000$
Выдача вод.прав: Нет
Полностью система.
C#:
CMD:aediter(playerid, params[])
{
    if(PlayerInfo[playerid][pAdmin] < 14) return SendClientMessage(playerid,COLOR_GRAD2,"У Вас недостаточно полномочий для использования этой команды."); // Проверка на админку. У Вас другая.
    ShowPlayerDialog(playerid,2374,DIALOG_STYLE_LIST,"{66CC00}Панель управления","1. Список промкодов\n2. Создать промокод","Выбрать","Закрыть");
    return true;
}

CMD:promo(playerid) return ShowPlayerDialog(playerid,2388,DIALOG_STYLE_INPUT,"{FFCC00}Ввод промокода","{FFFFFF}Введите промо-код,который Вам был выдан:","Закрыть","");
C#:
case 2374:
            {
                if(!response) return true;
                switch(listitem)
                {
                    case 0:
                    {
                        mysql_format(1, string, sizeof string, "SELECT * FROM `promo`", true, "mysql_PromoCodeShow", "i", playerid);
                        mysql_query(1, string, true);
                    }
                    case 1: ShowPlayerDialog(playerid,2380,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Введите код для промо-кода:","Далее","Отмена");
                }
            }
            case 2380:
            {
                if(!response) return true;
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2380,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Введите код для промо-кода:\nИспользуйте от 3 до 16 символов","Далее","Отмена");
                if(strlen(inputtext) < 3 || strlen(inputtext) > 16) return ShowPlayerDialog(playerid,2380,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Введите код для промо-кода:\n{FF0000}Используйте от 3 до 16 символов","Далее","Отмена");
                SetPVarString(playerid,"PROMONAME",inputtext);
                ShowPlayerDialog(playerid,2381,DIALOG_STYLE_MSGBOX,"{66CC00}Создание промокода","Вы хотите создать промокод для кол-ва людей или кол-ва дней?","Дней","Людей");
            }
            case 2381:
            {
                if(response) ShowPlayerDialog(playerid,2382,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","На какое кол-во дней Вы хотите создать промокод?\nВводите от 1 до 7 дней","Далее","Отмена");
                else ShowPlayerDialog(playerid,2383,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","На сколько человек Вы хотите создать промокод?\nВводите от 1 до 500","Далее","Отмена");
            }
            case 2382:
            {
                if(!response) return true;
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2382,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","На какое кол-во дней Вы хотите создать промокод?\nВводите от 1 до 7 дней","Далее","Отмена");
                if(strval(inputtext) < 1 || strval(inputtext) > 7) return ShowPlayerDialog(playerid,2382,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","На какое кол-во дней Вы хотите создать промокод?\n{FF0000}Вводите от 1 до 7 дней","Далее","Отмена");
                SetPVarInt(playerid,"PROMODAYS",strval(inputtext));
                SetPVarInt(playerid,"PROMOLUD",0);
                ShowPlayerDialog(playerid,2384,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Хотите что-бы при вводе этого промокода выдавало VIP?\nЕсли не хотите,то вводите число равное 0\nЕсли хотите,то введите количество дней на которое будет выдано VIP","Ввести","Отмена");
            }
            case 2383:
            {
                if(!response) return true;
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2383,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","На какое кол-во людей Вы хотите создать промокод?\nВводите от 1 до 500 дней","Далее","Отмена");
                if(strval(inputtext) < 1 || strval(inputtext) > 500) return ShowPlayerDialog(playerid,2383,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","На какое кол-во людей Вы хотите создать промокод?\n{FF0000}Вводите от 1 до 500 дней","Далее","Отмена");
                SetPVarInt(playerid,"PROMOLUD",strval(inputtext));
                SetPVarInt(playerid,"PROMODAYS",-1);
                ShowPlayerDialog(playerid,2384,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Хотите что-бы при вводе этого промокода выдавало VIP?\nЕсли не хотите,то вводите число равное 0\nЕсли хотите,то введите количество дней на которое будет выдано VIP","Ввести","Отмена");
            }
            case 2384:
            {
                if(!response) return true;
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2384,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Хотите что-бы при вводе этого промокода выдавало VIP?\nЕсли не хотите,то вводите число равное 0\nЕсли хотите,то введите количество дней на которое будет выдано VIP","Ввести","Отмена");
                if(strval(inputtext) < 0 || strval(inputtext) > 30) return ShowPlayerDialog(playerid,2384,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Хотите что-бы при вводе этого промокода выдавало VIP?\n{FF0000}Если не хотите,то вводите число равное 0\nЕсли хотите,то введите количество дней на которое будет выдано VIP","Ввести","Отмена");
                SetPVarInt(playerid,"PROMOVIP",strval(inputtext));
                ShowPlayerDialog(playerid,2385,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Введите кол-во денег,которое будет выдано при вводе промокода:\nИспользуйте от 2.000$ до 30.000$","Ввести","Отмена");
            }
            case 2385:
            {
                if(!response) return true;
                if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2385,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Введите кол-во денег,которое будет выдано при вводе промокода:\nИспользуйте от 2.000$ до 30.000$","Ввести","Отмена");
                if(strval(inputtext) < 2000 || strval(inputtext) > 30000) return ShowPlayerDialog(playerid,2385,DIALOG_STYLE_INPUT,"{66CC00}Создание промокода","Введите кол-во денег,которое будет выдано при вводе промокода:\n{FF0000}Используйте от 2.000$ до 30.000$","Ввести","Отмена");
                SetPVarInt(playerid,"PROMOMONEY",strval(inputtext));
                ShowPlayerDialog(playerid,2386,DIALOG_STYLE_MSGBOX,"{66CC00}Создание промокода","Вы хотите что бы при вводе этого промокода выдавались водительские права?","Да","Нет");
            }
            case 2386:
            {
                new promoname[16];
            //    new string[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");
                if(response)
                {
                    format(string,sizeof(string),"{FFFFFF}Вы хотите создать промокод '%s'?\nВыдача VIP на %d дней\nВыдача денег на %d$\nВыдача вод.прав: Да\n\nПромокод действует на %d дн. или %d чел.",promoname,promovip,promomoney,promoday,promolud);
                    ShowPlayerDialog(playerid,2387,DIALOG_STYLE_MSGBOX,"{66CC00}Создание промокода",string,"Создать","Отмена"),SetPVarInt(playerid,"PROMOLIC",1);
                }
                else
                {
                    format(string,sizeof(string),"{FFFFFF}Вы хотите создать промокод '%s'?\nВыдача VIP на %d дней\nВыдача денег на %d$\nВыдача вод.прав: Нет\n\nПромокод действует на %d дн. или %d чел.",promoname,promovip,promomoney,promoday,promolud);
                    ShowPlayerDialog(playerid,2387,DIALOG_STYLE_MSGBOX,"{66CC00}Создание промокода",string,"Создать","Отмена"),SetPVarInt(playerid,"PROMOLIC",0);
                }
            }
            case 2387:
            {
                if(!response) return true;
                new qstring[128],promoname[16];
                GetPVarString(playerid, "PROMONAME", promoname, sizeof(promoname));
               // format(string, 512, "SELECT * FROM `promo` WHERE `code`='%s'", promoname);
            //    mysql_query(1, string, true);
                format(qstring,sizeof(qstring), "SELECT * FROM `promo` WHERE `code`='%s'", promoname);
                   mysql_tquery(1,string, "mysql_PromoCreate", "is", playerid,promoname);
            //    mysql_tquery(1, string, "mysql_PromoCreate", "is", playerid,promoname);
            }
            case 2388:
            {
            if(PlayerInfo[playerid][pLevel] >= 3)
            {
                new qstring[128];
               // new query[512];
                {
                    format(qstring,sizeof(qstring), "SELECT * FROM `promo` WHERE `code`='%s'", inputtext);
                    mysql_format(1,string, sizeof(string), "mysql_PromoCheck", "is", playerid,inputtext);
                }
            }
            else SendClientMessage(playerid, 1,"Активация Промо-Кода доступна с 3 уровня");
        }
C#:
forward mysql_PromoCheck(playerid,code[]);
public mysql_PromoCheck(playerid,code[])
{
    new rows,fields;
    cache_get_data(rows, fields);
    if(!rows)
     {
        format(stringer, sizeof(stringer), "Промокод '%s' не обнаружен",code);
        SendClientMessage(playerid, 0x63CB00ff, stringer);
    }
//    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_GREEN,"Промокод '%s' содержит:",code);
    if(vipka >= 1)
     {
 //    SendClientMessage(playerid,COLOR_GREEN,"VIP на %d дн.",vipka),pData[playerid][pVIP] = vipka;
         format(stringer, sizeof(stringer), "VIP на %d дн.",vipka),PlayerInfo[playerid][pDRInections] = vipka;
        SendClientMessage(playerid, 0x63CB00ff, stringer);
     }
    if(license >= 1)
     {
         format(stringer, sizeof(stringer), "Водительские права"),PlayerInfo[playerid][pLicenses] = 1;
        SendClientMessage(playerid, 0x63CB00ff, stringer);
     //    SendClientMessage(playerid,COLOR_GREEN,"Водительские права"),pData[playerid][pLicDrive] = 1;
    }
    format(stringer, sizeof(stringer),"Деньги  %d$",money),PlayerInfo[playerid][pCash] += money;
    SendClientMessage(playerid, 0x63CB00ff, stringer);

    ludi --;
    format(string,sizeof(string),"UPDATE `promo` SET `ludi` = '%d' WHERE `code` = '%s'",ludi,code);
    mysql_format(1,string, false, "", "");
    if(ludi == 0)
    {
        format(string,sizeof(string), "DELETE FROM `promo` WHERE `code`='%s'", code);
        mysql_format(1,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_format(1,string, false, "", "");
    }
    return 1;
}

forward mysql_PromoCreate(playerid,code[]);
public mysql_PromoCreate(playerid,code[])
{
    new rows,fields;
    cache_get_data(rows, fields);
    if(rows)
    {
        format(stringer, sizeof(stringer), "[A] Промокод '%s' уже есть в списке",code);
        SendClientMessage(playerid, 0x63CB00ff, stringer);
    }
 //SendMes(playerid, COLOR_GRAD1, "[A] Промокод '%s' уже есть в списке",code);

    new licname[12];
    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_format(1,string, false, "", "");

    switch(promolic)
    {
        case 0: licname = "Нет";
        case 1: licname = "Да";
    }
    format(string,sizeof(string),"{FFFFFF}Промокод '%s' успешно создан\nВыдача VIP на %d дней\nВыдача денег на %d$\nВыдача вод.прав: %s\n\nПромокод действует на %d дн. или %d чел.",code,promovip,promomoney,licname,promoday,promolud);
    ShowPlayerDialog(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");
}

forward mysql_PromoCodeShow(playerid);
public mysql_PromoCodeShow(playerid)
{
    new rows,fields;
    cache_get_data(rows, fields);
    if(!rows) return SendClientMessage(playerid, COLOR_GRAD1, "[A] Список промокодов отсутствует");
    new promolist[1256],code[32],licname[12];
    for(new i; i<rows; i++)
    {
        cache_get_field_content(i, "code", code);
        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");
        new dayss = cache_get_field_content_int(i, "days");
        new ludi = cache_get_field_content_int(i, "ludi");
        switch(license)
        {
            case 0: licname = "Нет";
            case 1: licname = "Да";
        }
        format(promolist,sizeof(promolist),"%s%d. Название: %s | VIP: %d дн. | Деньги: %d$ | Лицензии: %s | %d дн. или %d люд\n", promolist, i+1,code,vipka,money,licname,dayss,ludi);
    }
    ShowPlayerDialog(playerid, 999999, DIALOG_STYLE_LIST,"{66CC00}Список промокодов", promolist, "Закрыть", "");
    return 1;
}
 
Последнее редактирование:
Сверху Снизу