Перейти к содержимому

Ice-Host


Добро пожаловать на пользовательский форум CR-MP.RU
Зарегистрируйтесь или авторизуйтесь на нашем форуме, чтобы получить доступ ко всем функциям.
Если у Вас уже имеется аккаунт, нажмите, чтобы войти.
Если у Вас нет аккаунта на нашем форуме, нажмите, чтобы перейти к регистрации. Возникли проблемы с регистрацией ? Обратитесь на почту admin@cr-mp.ru с вашей проблемой.
Фотография

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

- - - - - Проблема

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 12

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

Флудер


Репутация: 0

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

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


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

Флудер


Репутация: 0

up



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

Флудер


Репутация: 0

up



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

Флудер


Репутация: 0

up



#5
Exclusive

Black Lightning


Репутация: 43

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



#6
Elrmrnt-Kritik

Уважаемый


Репутация: 20

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



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

Флудер


Репутация: 0

Elrmrnt-Kritik,  [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;
}

Сообщение отредактировал АЛЕКСАНДР МАМАЕВ: 13 Август 2017 - 05:23


#8
Elrmrnt-Kritik

Уважаемый


Репутация: 20

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



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

Флудер


Репутация: 0

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

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


Сообщение отредактировал АЛЕКСАНДР МАМАЕВ: 14 Август 2017 - 06:50


#10
Elrmrnt-Kritik

Уважаемый


Репутация: 20

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


 

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

 

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



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

Флудер


Репутация: 0

Elrmrnt-Kritik, создал теперь вылезла ещё проблемка  создаю код он записываеться активирую ну активаций 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 


Сообщение отредактировал АЛЕКСАНДР МАМАЕВ: 14 Август 2017 - 10:51


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

Флудер


Репутация: 0

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



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

Флудер


Репутация: 0

up







Темы с аналогичным тегами Проблема

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных


Место свободно Место свободно