Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Баг с ID или что ?

Статус
В этой теме нельзя размещать новые ответы.

# Woody

Умник
Суть выписываю штраф.. Все нормально, только когда человек оплачивает штраф тот который я выписал, деньги забирает у меня, хотя должно у того кому выписали, проверку на ид сделал.

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
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу