Активный
- Тема Автор
- #1
Идея и назначение
Игрок может иметь персональный процент скидки на покупки.
Подходит для поощрения донатеров, ветеранов и победителей ивентов.
Суть реализации
1. Храним процент скидки для игрока.
2. При покупке применяем формулу скидки к цене.
3. Команда /setdiscount задаёт скидку, /mydiscount показывает её.
Реализация
Дополнительные идеи
1. Делать временные скидки на праздники.
2. Привязать скидку к репутации игрока.
3. Показывать цену до и после скидки в диалогах.
Игрок может иметь персональный процент скидки на покупки.
Подходит для поощрения донатеров, ветеранов и победителей ивентов.
Суть реализации
1. Храним процент скидки для игрока.
2. При покупке применяем формулу скидки к цене.
3. Команда /setdiscount задаёт скидку, /mydiscount показывает её.
Реализация
Код:
new PlayerDiscount[MAX_PLAYERS];
CMD:setdiscount(playerid, params[])
{
new target, d;
if(sscanf(params, "ui", target, d))
return SendClientMessage(playerid, -1, "Используй: /setdiscount [id] [0-50].");
if(!IsPlayerConnected(target))
return SendClientMessage(playerid, -1, "Игрок не найден.");
if(d < 0) d = 0;
if(d > 50) d = 50;
PlayerDiscount[target] = d;
SendClientMessage(playerid, -1, "Скидка игроку установлена.");
return 1;
}
CMD:mydiscount(playerid)
{
new msg[64];
format(msg, sizeof msg, "Твоя персональная скидка: %d%%.", PlayerDiscount[playerid]);
SendClientMessage(playerid, -1, msg);
return 1;
}
stock GetDiscountedPrice(playerid, baseprice)
{
new d = PlayerDiscount[playerid];
if(d <= 0) return baseprice;
return baseprice - (baseprice * d / 100);
}
Дополнительные идеи
1. Делать временные скидки на праздники.
2. Привязать скидку к репутации игрока.
3. Показывать цену до и после скидки в диалогах.