CMD:flares(playerid, params[])
{
new rank = arrFaction[playerid][p_iMember] > -1 && arrFaction[playerid][g_iFactionType] == 1;
if(rank < 0) return SendClientMessage(playerid, COLOR_WHITE, "You are not authorized to use this command.");
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreateObject(18728, x,y,z, 0.0, 0.0, 96.0);
}
return 1;
}
|
hi guys i created a cmd to create flare when ever a cop uses /flares. it worked correctly but my problem is that flare is created in air i want it to create on ground.
here's my cmd: Код:
CMD:flares(playerid, params[])
{
new rank = arrFaction[playerid][p_iMember] > -1 && arrFaction[playerid][g_iFactionType] == 1;
if(rank < 0) return SendClientMessage(playerid, COLOR_WHITE, "You are not authorized to use this command.");
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreateObject(18728, x,y,z, 0.0, 0.0, 96.0);
}
return 1;
}
|
#define MAX_FLARES [amount you want]
enum flInfo
{
flCreated,
Float:flX,
Float:flY,
Float:flZ,
flObject,
};
new FlareInfo[MAX_FLARES][flInfo];
stock CreateFlare(Float:x,Float:y,Float:z,Float:Angle)
{
for(new i = 0; i < sizeof(FlareInfo); i++)
{
if(FlareInfo[i][flCreated] == 0)
{
FlareInfo[i][flCreated]=1;
FlareInfo[i][flX]=x;
FlareInfo[i][flY]=y;
FlareInfo[i][flZ]=z-2.2;
FlareInfo[i][flObject] = CreateDynamicObject(18728, x, y, z-2.2, 0, 0, Angle-0);
return 1;
}
}
return 0;
}
stock DeleteAllFlare()
{
for(new i = 0; i < sizeof(FlareInfo); i++)
{
if(FlareInfo[i][flCreated] == 1)
{
FlareInfo[i][flCreated]=0;
FlareInfo[i][flX]=0.0;
FlareInfo[i][flY]=0.0;
FlareInfo[i][flZ]=0.0;
DestroyDynamicObject(FlareInfo[i][flObject]);
}
}
return 0;
}
stock DeleteClosestFlare(playerid)
{
for(new i = 0; i < sizeof(FlareInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 4.0, FlareInfo[i][flX], FlareInfo[i][flY], FlareInfo[i][flZ]))
{
if(FlareInfo[i][flCreated] == 1)
{
format(string, sizeof(string), " You have deleted a flare. ", PlayerRPName(playerid));
SendClientMessage(playerid, COLOR_[insert color here], string);
FlareInfo[i][flCreated]=0;
FlareInfo[i][flX]=0.0;
FlareInfo[i][flY]=0.0;
FlareInfo[i][flZ]=0.0;
DestroyDynamicObject(FlareInfo[i][flObject]);
return 1;
}
}
}
return 0;
}
|
Originally Posted by JaydenJason
Originally Posted by GTLS View Post
hi guys i created a cmd to create flare when ever a cop uses /flares. it worked correctly but my problem is that flare is created in air i want it to create on ground. here's my cmd: Код:
CMD:flares(playerid, params[])
{
new rank = arrFaction[playerid][p_iMember] > -1 && arrFaction[playerid][g_iFactionType] == 1;
if(rank < 0) return SendClientMessage(playerid, COLOR_WHITE, "You are not authorized to use this command.");
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
CreateObject(18728, x,y,z, 0.0, 0.0, 96.0);
}
return 1;
}
Код:
#define MAX_FLARES [amount you want] Код:
enum flInfo
{
flCreated,
Float:flX,
Float:flY,
Float:flZ,
flObject,
};
new FlareInfo[MAX_FLARES][flInfo];
Код:
stock CreateFlare(Float:x,Float:y,Float:z,Float:Angle)
{
for(new i = 0; i < sizeof(FlareInfo); i++)
{
if(FlareInfo[i][flCreated] == 0)
{
FlareInfo[i][flCreated]=1;
FlareInfo[i][flX]=x;
FlareInfo[i][flY]=y;
FlareInfo[i][flZ]=z-2.2;
FlareInfo[i][flObject] = CreateDynamicObject(18728, x, y, z-2.2, 0, 0, Angle-0);
return 1;
}
}
return 0;
}
stock DeleteAllFlare()
{
for(new i = 0; i < sizeof(FlareInfo); i++)
{
if(FlareInfo[i][flCreated] == 1)
{
FlareInfo[i][flCreated]=0;
FlareInfo[i][flX]=0.0;
FlareInfo[i][flY]=0.0;
FlareInfo[i][flZ]=0.0;
DestroyDynamicObject(FlareInfo[i][flObject]);
}
}
return 0;
}
stock DeleteClosestFlare(playerid)
{
for(new i = 0; i < sizeof(FlareInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 4.0, FlareInfo[i][flX], FlareInfo[i][flY], FlareInfo[i][flZ]))
{
if(FlareInfo[i][flCreated] == 1)
{
format(string, sizeof(string), " You have deleted a flare. ", PlayerRPName(playerid));
SendClientMessage(playerid, COLOR_[insert color here], string);
FlareInfo[i][flCreated]=0;
FlareInfo[i][flX]=0.0;
FlareInfo[i][flY]=0.0;
FlareInfo[i][flZ]=0.0;
DestroyDynamicObject(FlareInfo[i][flObject]);
return 1;
}
}
}
return 0;
}
rest is up to you |
|
-2.2?
Skin models are usually centered at 0.5 and are mostly ~1.0 in height. |
new Float:angle, Float:x, Float:y, Float:z; GetPlayerPos(x, y, z); GetPlayerFacingAngle(playerid, angle); Createflare(x, y, z-2.2, angle);