Сайт восстановлен из веб архива. Сейчас он доступен только для чтения, скачивание материалов также недоступно. Если у вас до сих пор есть какие-то вопросы по разработке серверов CRMP, вы можете перейти на актуальный портал: https://pawno-rus.com

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

Уважаемый гость, если у Вас возникли проблемы с регистрацией, просьба обратиться в тех.поддержку или на почту admin@pawno-crmp.ru

Для полного доступа ко всем функциям форума, Вам необходимо зарегистрироваться и авторизоваться.

Фотография

Как сделать промо код?


Лучший Ответ 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, сделал уже как "Первый" сказал) Ну, промокод этот администратор же дает? И использовать его нужно в меню? 

Перейти к сообщению »


  • Закрытая тема Тема закрыта
Сообщений в теме: 5

#1
offline   Artifakt5059

Artifakt5059
  • 2
    • Сообщений: 91
    • Регистрация: 29.10.16

Как сделать промо код? как на Radmir RP



#2
offline   Elrmrnt-Kritik

Elrmrnt-Kritik
  • 770
    • Сообщений: 3 116
    • Регистрация: 19.07.15

Уверен, что даже треть там не играет и не знает о чем идет речь. Конкретизируйте что Вам нужно, какова суть промокода...


  • 0

#3
offline   Artifakt5059

Artifakt5059
  • 2
    • Сообщений: 91
    • Регистрация: 29.10.16

Ну например 
В меню /mm есть строка ПРОМО КОД
Вводишь слово и получаешь например 50 000



#4
online   Первый

Первый
  • 54
    • Сообщений: 200
    • Регистрация: 09.08.16

Elrmrnt-Kritik, по типу : Написал /promo Kritik и дали бонус,тоже бы хотел узнать как это сделать. 
____________________________________________________________UPD 
Или при написании команды /promo выбивало диалог "Напишите ваш промокод"


Сообщение отредактировал Первый: 07 Апрель 2017 - 14:38

  • 0

#5
offline   Artifakt5059

Artifakt5059
  • 2
    • Сообщений: 91
    • Регистрация: 29.10.16

НЕТ!
Заходишь в главное меню где помощь по командам статистика персонажа и т.д
и добавить строчку Промо код.



#6
offline   Elrmrnt-Kritik

Elrmrnt-Kritik
  • 770
    • Сообщений: 3 116
    • Регистрация: 19.07.15
✓  Лучший Ответ

В массив для игрока (обычно pInfo) добавьте (в середину куда-нибудь):

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Добавьте две команды:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

В OnDialogResponse:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

DIALOG_ID везде меняем на свободный ID диалога. PlayerInfo тоже меняем на свое. По поводу сохранения, либо проделайте сами на основе пароля от аккаунта (обычно pPassword, pPass), либо скажите какой у Вас способ сохранения. P.s. чтобы перевести команды на стандартный командный процессор, просто замените шапку на:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

А также перед sscanf добавьте: 

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

+ params[0] везде меняем на giveplayerid, params[1] меняем на params.

Аналогично с переводом диалогов на диалоговый процессор, просто замените шапку на:

Пожалуйста войдите или зарегистрируйтесь чтобы увидить ссылку.

Дополнение к сообщению:


Artifakt5059, сделал уже как "Первый" сказал) Ну, промокод этот администратор же дает? И использовать его нужно в меню? 


Сообщение отредактировал Elrmrnt-Kritik: 07 Апрель 2017 - 15:49

  • 4


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

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


Данную тему посетили 77 пользователей