PDA

Просмотр полной версии : [Вопрос] /money



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;

}




Проблема решена

gangzone.ini
07.01.2015, 02:33
if(GetPlayerMoney(playerid) < money || money < 0) return SendClientMessage(playerid, -1,"У Вас нету столько денег");
if(money < 1 || money > 99999) return SendClientMessage(playerid, -1, "Не меньше 1, не больше 99999");

$continue$
07.01.2015, 02:51
Пробуй не уверен что скомпилируеться без проблем)


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 *then return SendClientMessage(playerid, -1, "У вас не достаточно бабла :D");
if money < 1 || money > 99999 *then return SendClientMessage(playerid, -1, "Не меньше 1, не больше 99999");
if(pInfo[playerid][pMoney] >= money) // Если денег у игрока больше передаваемой суммы, то
{
pInfo[targetid][pMoney] = money; // Изменяется переменная передаваемому игроку
GivePlayerMoney(targetid, money); // Изменяется денежный показатель цели
pInfo[playerid][pMoney] -= money; // Изменяется переменная того кто передаёт деньги
GivePlayerMoney(playerid, -money); // Изменяется денежный показатель того кто передаёт деньги
SendClientMessage(playerid, 0xAA3333AA, "Деньги переданы");
}
return 1;
}