Перейти к содержанию
Авторизация  
АЛЕКСАНДР МАМАЕВ

неактивируеться промокод

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

АЛЕКСАНДР МАМАЕВ

Всем привет промокод создаёться заноситься в базу данных но при активации когда вводишь и жмёшь далее нечего непроисходит

     case 10:
                                        {
                                                new p_text[512];
 
                                                strcat(p_text, "{FFFFFF}В данном окне Вы сможете активировать промокод, полученный от администратора\n\n");
                                                strcat(p_text, "Получить промокод можно лишь от администратора сервера, или выигрыв в мероприятии\n");
                                                strcat(p_text, "После активации промокода, Вы сможете получить один из трех призов, а именно:\n\n");
                                                strcat(p_text, "{30C2F3}\t — VIP аккаунт\n");
                                                strcat(p_text, "\t — Донат-валюту\n");
                                                strcat(p_text, "\t — Игровую валюту\n\n");
                                                strcat(p_text, "{FFFFFF}Введите полученный код в поле ниже, и посмотрите, что же там!");
                                                ShowPlayerDialogFix(playerid, dialog_PACTIVATION, DIALOG_STYLE_INPUT, "{E9DB1A}Активация промокода", p_text, "Далее", "Назад");
                                        }
                                }
                        }
                }
 
 
        case dialog_PACTIVATION:
                {
                        if(!response) return open_mainmenu(playerid);
                        SetPVarString(playerid, "CODE", inputtext);
                        new query[150];
                        mysql_format(dbHandle, query, sizeof query , "SELECT * FROM `a_promocodes` WHERE `ac_id` = '%d' and `p_name` = '%s'", PLAYER_DATA[playerid][data_ID], inputtext);
                        mysql_function_query(dbHandle, query, true, "CheckPlayerPromocode", "i", playerid);
                }
 
forward CheckPlayerPromocode(playerid);
public CheckPlayerPromocode(playerid)
{
        new rows, fields;
        cache_get_data(rows, fields);
        if(rows) return SendClientMessage(playerid, COLOR_WARNING, "Вы уже активировали данный промокод, ждите другой");
        new query[80], code[24];
        GetPVarString(playerid, "CODE", code, sizeof code);
        mysql_format(dbHandle,query, sizeof(query), "SELECT * FROM `promocodes` WHERE `p_name` = '%s'", code);
        mysql_function_query(dbHandle, query, true, "ActivatePromo", "is", playerid, code);
        return true;
}
 
forward ActivatePromo(playerid, code[]);
public ActivatePromo(playerid, code[])
{
        new win_text[128],type_text[64], p_type, p_amount, p_activations, p_activate, temp[10], rows, fields;
        cache_get_data(rows, fields);
        if(!rows) return SendClientMessage(playerid, COLOR_WARNING, "Промокода не существует");
        else
        {
                cache_get_field_content(0, "p_type", temp), p_type = strval (temp);
                cache_get_field_content(0, "p_amount", temp), p_amount = strval (temp);
                cache_get_field_content(0, "p_activations", temp), p_activations = strval (temp);
                cache_get_field_content(0, "p_activate", temp), p_activate = strval (temp);
        }
 
        if(p_activate != 0) return SendClientMessage(playerid, COLOR_WARNING, "Количество активаций для данного промокода исчерпано");
        switch(p_type)
        {
        case 1: format(type_text, sizeof type_text, "VIP аккаунт, сроком на %d дней", p_amount), PLAYER_DATA[playerid][data_VIP] = 1, PLAYER_DATA[playerid][data_VIPTIME] += p_amount;
        case 2: format(type_text, sizeof type_text, "Донат-валюта, в количестве %d", p_amount), PLAYER_DATA[playerid][data_DONATE] += p_amount;
        case 3: format(type_text, sizeof type_text, "Игровая валюта, в количестве %d руб", p_amount), PLAYER_DATA[playerid][data_MONEY] += p_amount;
        }
        format(win_text, sizeof win_text, "Поздравляем! Вы активировали промокод! Промокод содержал: %s", type_text);
        SendClientMessage(playerid, COLOR_ORANGE, win_text);
        new string[256];
        mysql_format(dbHandle, string, sizeof(string), "INSERT INTO `a_promocodes` (`ac_id`, `p_name`) VALUES ('%d', '%s')", PLAYER_DATA[playerid][data_ID], code);
        mysql_function_query(dbHandle, string, false, "", "");
        p_activations --;
        new query[120];
        mysql_format(dbHandle, query, sizeof query, "UPDATE `promocodes` SET `p_activations` = '%d' WHERE `p_name` = '%s'", p_activations, code);
        mysql_function_query(dbHandle, query, false, "", "");
        if(p_activations == 0)
        {
                new querys[120];
                mysql_format(dbHandle, querys, sizeof querys, "UPDATE `promocodes` SET `p_activate` = '1' WHERE `p_name` = '%s'", code);
                mysql_function_query(dbHandle, querys, false, "", "");
                return true;
        }
        return true;
}

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


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

up

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


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

up

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


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

up

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


Ссылка на сообщение
Поделиться на другие сайты
Exclusive

А что за основа мода?

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


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@АЛЕКСАНДР МАМАЕВmysql_log.txt покажите.

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


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

,  [05:26:20] [ERROR] CMySQLQuery::Execute[CheckPlayerPromocode] - (error #1146) Table 'srv64549.a_promocodes' doesn't exist вот создание промокода:

forward CreatePromocode(playerid, code[]);
public CreatePromocode(playerid, code[])
{
	new
	promocode_prize,
	promocode_amount,
	promocode_activate;
	promocode_prize = GetPVarInt(playerid, "P_TYPE");
	promocode_amount = GetPVarInt(playerid, "P_AMOUNT");
	promocode_activate = GetPVarInt(playerid, "P_ACTIVATE");
	new string[256];
	mysql_format(dbHandle, string, sizeof(string), "INSERT INTO `promocodes` (`p_name`, `p_type`, `p_amount`, `p_activations`) VALUES ('%s', '%d', '%d', '%d')", code, promocode_prize, promocode_amount, promocode_activate);
	mysql_function_query(dbHandle, string, false, "", "");
	SendClientMessage(playerid, COLOR_LBLUE, "\n-----------------------------------------------------------------------------------------------------------");
	if(promocode_prize > 1) format(string, 128, "Промокод %s успешно создан. Кодовый тип приза: %d | Количество выигрыша: %d | Количество активаций: %d", code, promocode_prize, promocode_amount, promocode_activate);
	else format(string, 128, "Промокод %s успешно создан. Кодовый тип приза: %d | Количество активаций: %d", code, promocode_prize, promocode_activate);
	SendClientMessage(playerid, COLOR_GREEN, string);
	SendClientMessage(playerid, COLOR_LBLUE, "-----------------------------------------------------------------------------------------------------------\n");
	return true;
}
Изменено пользователем АЛЕКСАНДР МАМАЕВ

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


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@АЛЕКСАНДР МАМАЕВ, таблица promocodes есть у Вас в базе данных?

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


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

, да конешно есть промокод создаёться 

таблица  promocodes а при активации таблица a_promocodes изменил в двух местах на promocodes но теперь другая ошибка [06:54:52] [ERROR] CMySQLQuery::Execute[CheckPlayerPromocode] - (error #1054) Unknown column 'ac_id' in 'where clause'

Изменено пользователем АЛЕКСАНДР МАМАЕВ

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


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@АЛЕКСАНДР МАМАЕВ

 

(ошибка #1054) Неизвестный столбец 'ac_id'

 

Создайте этот столбец.

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


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

, создал теперь вылезла ещё проблемка  создаю код он записываеться активирую ну активаций 2 поставил и создаёться 2 строчка и такк пробывал не раз сначало ac_id 0

 

ac_id 0

p_name Q6MD-2V3I-4Z0L-5PXN 

 

p_type  3

p_amount 100

p_activavations 2
 

а когда создаёться второй там 2:

и p_activavations меняеться в обоих строчках на 1

ac_id 2

 

p_name Q6MD-2V3I-4Z0L-5PXN 

 

p_amount 0

 

p_type  0

p_activavations 1

 

а во второй строчке на 0 значение ставяться

p_amount

 

p_type 

Изменено пользователем АЛЕКСАНДР МАМАЕВ

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


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

, а нет всё нормально я просто сразу непонел так и должно быть создаёться с 0 ид а потом когда активируют ниже кто активировал а самый верхний остаток там но есть по кодам ещё проблемка тут точно проблемка неработает ограничитель при 0 значение уходит в минус -1  if(p_activate != 0) return SendClientMessage(playerid, COLOR_WARNING, "Количество активаций для данного промокода исчерпано");

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


Ссылка на сообщение
Поделиться на другие сайты
АЛЕКСАНДР МАМАЕВ

up

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


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

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.