Активный
- Тема Автор
- #1
Идея и назначение
Игрок может создать личный тайник в определённой точке и хранить там деньги.
Подходит для выживания и криминальных RP серверов.
Суть реализации
1. Храним координаты тайника и сумму, спрятанную в нём.
2. Команда /makestash создаёт тайник в текущей позиции.
3. Команда /stash позволяет положить или забрать деньги.
Реализация
Дополнительные идеи
1. Давать возможность взлома чужих тайников.
2. Ограничить количество тайников на игрока.
3. Сохранять тайники в базе данных.
Игрок может создать личный тайник в определённой точке и хранить там деньги.
Подходит для выживания и криминальных RP серверов.
Суть реализации
1. Храним координаты тайника и сумму, спрятанную в нём.
2. Команда /makestash создаёт тайник в текущей позиции.
3. Команда /stash позволяет положить или забрать деньги.
Реализация
Код:
new bool:HasStash[MAX_PLAYERS];
new Float:StashX[MAX_PLAYERS], Float:StashY[MAX_PLAYERS], Float:StashZ[MAX_PLAYERS];
new StashMoney[MAX_PLAYERS];
CMD:makestash(playerid)
{
GetPlayerPos(playerid, StashX[playerid], StashY[playerid], StashZ[playerid]);
HasStash[playerid] = true;
SendClientMessage(playerid, -1, "Тайник создан в этой точке.");
return 1;
}
CMD:stash(playerid, params[])
{
if(!HasStash[playerid])
return SendClientMessage(playerid, -1, "У тебя нет тайника.");
new mode[8], amount;
if(sscanf(params, "s[8]i", mode, amount))
return SendClientMessage(playerid, -1, "Используй: /stash [put/take] [сумма].");
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
new Float:dx = x - StashX[playerid];
new Float:dy = y - StashY[playerid];
if(floatsqroot(dx * dx + dy * dy) > 3.0)
return SendClientMessage(playerid, -1, "Ты слишком далеко от своего тайника.");
if(!strcmp(mode, "put", true))
{
if(amount <= 0)
return SendClientMessage(playerid, -1, "Сумма должна быть больше нуля.");
if(GetPlayerMoney(playerid) < amount)
return SendClientMessage(playerid, -1, "Недостаточно денег.");
GivePlayerMoney(playerid, -amount);
StashMoney[playerid] += amount;
SendClientMessage(playerid, -1, "Ты положил деньги в тайник.");
}
else if(!strcmp(mode, "take", true))
{
if(amount <= 0 || amount > StashMoney[playerid])
return SendClientMessage(playerid, -1, "Неверная сумма для снятия.");
StashMoney[playerid] -= amount;
GivePlayerMoney(playerid, amount);
SendClientMessage(playerid, -1, "Ты забрал деньги из тайника.");
}
else
{
SendClientMessage(playerid, -1, "Неверный режим, используй put или take.");
}
return 1;
}
Дополнительные идеи
1. Давать возможность взлома чужих тайников.
2. Ограничить количество тайников на игрока.
3. Сохранять тайники в базе данных.