mechanic /repair
#1

hey guys iv been trying to do a /repair command for the mechanic. I cant do it though and need someone to take a look at what im doing wrong please!
Код:
CMD:repair(playerid, params[])
{
	
	new string[128], playerb, price;
   	if(!IsPlayerLoggedIn(playerid)) return SendClientMessage(playerid, COLOR_GREY, "You need to login first before using any command.");
	if(PlayerInfo[playerid][pJob] != JOB_MECHANIC && PlayerInfo[playerid][pVIPJob] != JOB_MECHANIC) return SendClientMessage(playerid, COLOR_GREY, "You are not a mechanic.");
	if(sscanf(params, "uii", playerb, price)) return SendClientMessage(playerid, COLOR_GREY, "USAGE: /repair [playerid] [price]");
	if(!IsPlayerLoggedIn(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Invalid player id.");
	if(playerid == playerb) return SendClientMessage(playerid, COLOR_GREY, "You can't offer a repair to yourself.");
	if(IsPlayerNearPlayer(playerid, playerb, 2 && IsPlayerInAnyVehicle(playerb) && IsPlayerInAnyVehicle(playerid)))
	{
		
		
		//if(!IsPlayerInAnyVehicle(playerb)) return SendClientMessage(playerid, COLOR_GREY, "Player is not in a vehicle.");
		//if(!IsPlayerInAnyVehicle(playerid) && (vehicleid == playerb)) return SendClientMessage(playerid, COLOR_GREY, "You are not in the same vehicle.");
		
		//if(!IsPlayerNearPlayer(playerid, playerb, 2)) return SendClientMessage(playerid, COLOR_GREY, "You are too far away from that player.");
		
		if(SellRepairTo[playerid] == playerb) return SendClientMessage(playerid, COLOR_GREY, "You have already offered that player to repair their vehicle.");
		if(price <= 0) return SendClientMessage(playerid, COLOR_GREY, "Invalid repair price.");
		// Clearing old buyer
		foreach(Player, i)
		{
			if(IsPlayerLoggedIn(i))
			{
				if(SellRepairTo[playerid] == i && BuyRepairFrom[i] == playerid)
				{
					BuyRepairFrom[i] = -1; BuyRepairPrice[i] = 0; BeenOfferedRepair[i] = 0;
				}
			}
		}
		// New buyer
		SellRepairTo[playerid] = playerb;
		BuyRepairFrom[playerb] = playerid;
		BuyRepairPrice[playerb] = price;
		BeenOfferedRepair[playerb] = 1;
		format(string, sizeof(string), " You have offered %s to repair their vehicle for $%d.", RPN(playerb), price);
		SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
		format(string, sizeof(string), " %s has offered to repair your vehicle for $%d. (/accept repair) (/cancel repair)", RPN(playerid), price);
		SendClientMessage(playerb, COLOR_LIGHTBLUE, string);
		return 1;
	}
	else
	{
		SendClientMessage(playerid, COLOR_GREY, "You are too far away from that player.");
	}
}
I want it so The mechanic will only be able to offer a repair if they are in the same vehicle as the person they are offering and if they arent in a vehicle then it wont do anything and same as player. Im getting confuzed :/
Reply
#2

pawn Код:
if (GetPlayerVehicleID(playerid) == GetPlayerVehicleID(playerb))
{
    //Repair
}
else return SendClientMessage(playerid,-1,"You are not in same vehicle");
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)