03.07.2014, 10:38
I made a roadblock system for police, everything is working fine but when player use /delrb, its not deleting the created roadblock object. It says "No Roadblocks found near you" even if the player is near the object.
pawn Код:
#define MAX_ROADBLOCK 2
enum RoadblockData
{
RBObject,
Float:RBX,
Float:RBY,
Float:RBZ
}
new
RoadBlock[MAX_ROADBLOCK][RoadblockData];
CMD:rb(playerid, params[])
{
SendAdminText(playerid, "/RB", params);
if (pInfo[playerid][Class] != POLICE)
return 0;
if(RankInfo[playerid][PoliceRank] < 2)
return SendClientMessage(playerid, RED, "You need to be Police Rank 2+ to use this command!");
if (GetPlayerVehicleSeat(playerid) == -1)
RoadBlock_Create(playerid);
else
SendClientMessage(playerid, RED, "You must be on foot to create a RoadBlock.");
return 1;
}
CMD:delrb(playerid, params[])
{
SendAdminText(playerid, "/DELRB", params);
if(pInfo[playerid][Class] != POLICE)
return 0;
if(RankInfo[playerid][PoliceRank] < 2)
return SendClientMessage(playerid, RED, "You need to be Police Rank 2+ to use this command!");
if (GetPlayerVehicleSeat(playerid) == 0)
return SendClientMessage(playerid, RED, "You cannot use this command while you are inside a vehicle!");
for(new i = 1; i<MAX_ROADBLOCK; i++)
{
if(IsPlayerInRangeOfPoint(playerid, 5.5, RoadBlock[i][RBX], RoadBlock[i][RBY], RoadBlock[i][RBZ]))
{
DestroyObject(RoadBlock[i][RBObject]);
SendClientMessage(playerid, BLUE, "Roadblock has been deleted.");
}
else
SendClientMessage(playerid, RED, "No Roadblocks found around you!");
}
return 1;
}
stock RoadBlock_Create(playerid)
{
new
RBIndex = -1,
Float:x,
Float:y,
Float:z,
Float:rot;
for (new i; i < MAX_ROADBLOCK; i++)
{
RBIndex = i;
break;
}
if (RBIndex != -1)
{
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, rot);
RoadBlock[RBIndex][RBObject] = CreateObject(981, x, y, z, 0.0, 0.0, rot);
RoadBlock[RBIndex][RBX] = x;
RoadBlock[RBIndex][RBY] = y;
RoadBlock[RBIndex][RBZ] = z;
SetPlayerPos(playerid, x,y,z+3.0);
SetPlayerFacingAngle(playerid, rot);
SendClientMessage(playerid, BLUE, "Roadblock has been created!");
SendClientMessage(playerid, GRAY, "Use /delrb to remove the Roadblock.");
}
else
SendClientMessage(playerid, RED, "The maximum number of Roadblocks has been reached!");
}