Как сделать промо код? как на Radmir RP
Для полного доступа ко всем функциям форума, Вам необходимо зарегистрироваться и авторизоваться.
Как сделать промо код?
Лучший Ответ Elrmrnt-Kritik , 07 Апрель 2017 - 15:32
В массив для игрока (обычно pInfo) добавьте (в середину куда-нибудь):
pPromoKey[16],
Добавьте две команды:
CMD:givepromokey(playerid, params[])
{
//все необходимые проверки (например, на администратора) сюда добавьте
if(sscanf(params, "us[16]", params[0], params[1])) return SendClientMessage(playerid, 0xFF0000FF, "Введите /givepromokey [playerid] [promokey]");
if(!IsPlayerConnected(params[0])) return SendClientMessage(playerid, 0xFF0000FF, "Игрок оффлайн");
if(strlen(params[1] > 16)) return SendClientMessage(playerid, 0xFF0000FF, "Длина промокода должна составлять 1-16 символов");
format(PlayerInfo[params[0]][pPromokey], 16, params[1]));
static const fmt_str[] = "%s выдал(а) вам промокод %s";
new str[sizeof(fmt_str)+(-2+MAX_PLAYER_NAME)+(-2+16)], sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(str, sizeof(str), fmt_str, sendername, params[1]);
SendClientMessage(params[1], 0xFF0000FF, str);
return true;
}
CMD:promokey(playerid)
{
ShowPlayerDialog(playerid, DIALOG_ID, DIALOG_STYLE_INPUT, "Промокод", "Введите свой промокод в окошко ниже", "Готово", "Закрыть");
return true;
}
В OnDialogResponse:
if(dialogid == DIALOG_ID)
{
if(!response) return true;
if(!strlen(inputtext) || strlen(inputtext) < 16) return ShowPlayerDialog(playerid, DIALOG_ID, DIALOG_STYLE_INPUT, "Промокод", "Введите свой промокод в окошко ниже", "Готово", "Закрыть");
if(strcmp(PlayerInfo[playerid][pPromokey], inputtext, false)) return SendClientMessage(playerid, 0xFF0000FF, "Вы ввели неправильный промокод");
//Если промокод правильный, добавляем сюда функцию. Например, выдачу денег:
GivePlayerMoney(playerid, 1000);
return true;
}
DIALOG_ID везде меняем на свободный ID диалога. PlayerInfo тоже меняем на свое. По поводу сохранения, либо проделайте сами на основе пароля от аккаунта (обычно pPassword, pPass), либо скажите какой у Вас способ сохранения. P.s. чтобы перевести команды на стандартный командный процессор, просто замените шапку на:
if(!strcmp(cmdtext, "/команда", true))
А также перед sscanf добавьте:
new params[16], giveplayerid;
+ params[0] везде меняем на giveplayerid, params[1] меняем на params.
Аналогично с переводом диалогов на диалоговый процессор, просто замените шапку на:
DLG:DIALOG_ID(playerid, response, listitem, inputtext[])
Дополнение к сообщению:
Artifakt5059, сделал уже как "Первый" сказал) Ну, промокод этот администратор же дает? И использовать его нужно в меню?
Перейти к сообщению »
#1
offline
Отправлено 06 Апрель 2017 - 21:21
offline
#2
offline
Отправлено 06 Апрель 2017 - 21:22
offline
Уверен, что даже треть там не играет и не знает о чем идет речь. Конкретизируйте что Вам нужно, какова суть промокода...
#3
offline
Отправлено 07 Апрель 2017 - 14:21
offline
Ну например
В меню /mm есть строка ПРОМО КОД
Вводишь слово и получаешь например 50 000
#4
online
Отправлено 07 Апрель 2017 - 14:37
online
Elrmrnt-Kritik, по типу : Написал /promo Kritik и дали бонус,тоже бы хотел узнать как это сделать.
____________________________________________________________UPD
Или при написании команды /promo выбивало диалог "Напишите ваш промокод"
Сообщение отредактировал Первый: 07 Апрель 2017 - 14:38
#5
offline
Отправлено 07 Апрель 2017 - 15:22
offline
НЕТ!
Заходишь в главное меню где помощь по командам статистика персонажа и т.д
и добавить строчку Промо код.
#6
offline
Отправлено 07 Апрель 2017 - 15:32
offline
В массив для игрока (обычно pInfo) добавьте (в середину куда-нибудь):
Добавьте две команды:
В OnDialogResponse:
DIALOG_ID везде меняем на свободный ID диалога. PlayerInfo тоже меняем на свое. По поводу сохранения, либо проделайте сами на основе пароля от аккаунта (обычно pPassword, pPass), либо скажите какой у Вас способ сохранения. P.s. чтобы перевести команды на стандартный командный процессор, просто замените шапку на:
А также перед sscanf добавьте:
+ params[0] везде меняем на giveplayerid, params[1] меняем на params.
Аналогично с переводом диалогов на диалоговый процессор, просто замените шапку на:
Дополнение к сообщению:
Artifakt5059, сделал уже как "Первый" сказал) Ну, промокод этот администратор же дает? И использовать его нужно в меню?
Сообщение отредактировал Elrmrnt-Kritik: 07 Апрель 2017 - 15:49
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных


Тема закрыта
Сообщений: 91
Регистрация:
Skype: v.l.a.d.65