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);