Albert
06.01.2015, 15:20
У меня вродибы всё работает, только игрок может передать отрицательный результат денег, и, тем самым, увеличить свой баланс. Как сделать чтобы можно было передавать только положительную сумму?
CMD:pay(playerid, params[]) // Передача денег
{
new
targetid,
money;
if(sscanf(params, "ii", targetid, money))
return SendClientMessage(playerid, -1, "Используйте: /pay [targetid] [money]");
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, -1, "Указанного игрока нет на сервере.");
if(pInfo[playerid][pMoney] >= money) // Если денег у игрока больше передаваемой суммы, то
{
pInfo[targetid][pMoney] = money; // Изменяется переменная передаваемому игроку
GivePlayerMoney(targetid, money); // Изменяется денежный показатель цели
pInfo[playerid][pMoney] -= money; // Изменяется переменная того кто передаёт деньги
GivePlayerMoney(playerid, -money); // Изменяется денежный показатель того кто передаёт деньги
SendClientMessage(playerid, 0xAA3333AA, "Деньги переданы");
}
else // иначе
{
SendClientMessage(playerid, 0xAA3333AA, "У Вас нет столько денег");
}
return 1;
}
Проблема решена
CMD:pay(playerid, params[]) // Передача денег
{
new
targetid,
money;
if(sscanf(params, "ii", targetid, money))
return SendClientMessage(playerid, -1, "Используйте: /pay [targetid] [money]");
if(!IsPlayerConnected(targetid))
return SendClientMessage(playerid, -1, "Указанного игрока нет на сервере.");
if(pInfo[playerid][pMoney] >= money) // Если денег у игрока больше передаваемой суммы, то
{
pInfo[targetid][pMoney] = money; // Изменяется переменная передаваемому игроку
GivePlayerMoney(targetid, money); // Изменяется денежный показатель цели
pInfo[playerid][pMoney] -= money; // Изменяется переменная того кто передаёт деньги
GivePlayerMoney(playerid, -money); // Изменяется денежный показатель того кто передаёт деньги
SendClientMessage(playerid, 0xAA3333AA, "Деньги переданы");
}
else // иначе
{
SendClientMessage(playerid, 0xAA3333AA, "У Вас нет столько денег");
}
return 1;
}
Проблема решена