# Woody
Умник
Суть выписываю штраф.. Все нормально, только когда человек оплачивает штраф тот который я выписал, деньги забирает у меня, хотя должно у того кому выписали, проверку на ид сделал.
---------- Post added at 18:59 ---------- Previous post was at 18:46 ----------
Все решил проблему....
Сделал 2 переменных с записью ида, 1 игрока и 2.. Так же удалял деньги.
И такую функцию.
---------- Post added at 19:01 ---------- Previous post was at 18:59 ----------
DELETE
PHP:
new pdproverkafine; // ПД проверка fine запоминаем ид кто выписал штраф
new pdcheck[MAX_PLAYERS]; // ПД проверка fine если уже выписали штраф
pFine, // Штраф
pPdproverka // проверка fine
if(strcmp(cmd, "/fine", true) == 0)
{
if(pdcheck[playerid] == 1)
{
SendClientMessage(playerid, -1, "Вы уже выписали штраф игроку");
}
if(IsPlayerConnected(playerid))
{
if(Player[playerid][pOrganization] != 4) return SendClientMessage(playerid, -1, "Вы не полицейский!");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Введите: /fine [id] [цена] [причина]");
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, -1, "Введите: /fine [id] [цена] [причина]");
new moneys = strval(tmp);
if(moneys < 1 || moneys > 2000) { SendClientMessage(playerid, -1, "Нельзя меньше 1 и больше 20000 $"); return true; }
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
//if(Player[giveplayerid][pMoney] < 2000) return SendClientMessage(playerid, -1, "У игрока недостаточно денег");
//if(giveplayerid == playerid) { SendClientMessage(playerid, -1, "Вы указали свой ID"); return true; }
new giveplayer[MAX_PLAYER_NAME];
new sendername[MAX_PLAYER_NAME];
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[256];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, -1, "Введите: /fine [id] [цена] [причина]");
return true;
}
Player[giveplayerid][pPdproverka] = 1;
moneys = Player[giveplayerid][pFine] = moneys;
pdproverkafine = playerid;
format(string, sizeof(string), "* Вы выписали штраф в размере "W"("W""W"%d$"W")"W". Причина: %s",Player[giveplayerid][pFine], (result));
SendClientMessage(playerid, 0x6495EDFF, string);
format(string, sizeof(string), "* Офицер %s выписал вам штраф в размере "W"("W""W"%d$"W")"W". Причина: %s", sendername, Player[giveplayerid][pFine], (result));
SendClientMessage(giveplayerid, 0x6495EDFF, string);
SendClientMessage(giveplayerid, -1, "((Введите: /afine, чтобы оплатить штраф))");
return true;
}
}
}
else return SendClientMessage(playerid, -1, "Игрок не найден");
return true;
}
CMD:afine(playerid, params[])
{
if(Player[playerid][pPdproverka] == 1)
{
SendClientMessage(playerid, 0x0091FFFF, "Вы оплатили штраф");
GivePlayerMoney(pdproverkafine, -Player[playerid][pFine]); // Дадим деньги тот кто прописал команду.
Player[playerid][pFine] = 0;
SavePlayer(playerid);
}
if(Player[playerid][pPdproverka] == 0)
{
SendClientMessage(playerid, 0x0091FFFF, "Вам не выдавали штраф!");
}
return 1;
}
---------- Post added at 18:59 ---------- Previous post was at 18:46 ----------
Все решил проблему....
Сделал 2 переменных с записью ида, 1 игрока и 2.. Так же удалял деньги.
И такую функцию.
PHP:
Player[pdproverkafine][pMoney] += Player[pdproverkafine2][pFine];
Player[pdproverkafine2][pMoney] -= Player[playerid][pFine];
ResetPlayerMoney(pdproverkafine); // Спишим деньги
ResetPlayerMoney(pdproverkafine2); // Спишим деньги
GivePlayerMoney(pdproverkafine, Player[pdproverkafine][pMoney]); // Дадим деньги тот кто прописал команду.
GivePlayerMoney(pdproverkafine2, Player[pdproverkafine2][pMoney]); // Дадим деньги тот кто прописал команду.
---------- Post added at 19:01 ---------- Previous post was at 18:59 ----------
DELETE
