21.09.2015, 14:00
guys i have dynamic gate script in my gamemode means admins can create gates on any place and with /gate command it will open and close the gate the problem is when i am not near any gate its showing nothing like you must be near to any gate to use this command if i add any function for the message then i am near any gate it will open the gate with command but still showing you must be near to any gate so check this command give any solution
pawn Код:
CMD:gate(playerid, params[])
{
new pass[24], Float: x, Float: y, Float: z, string[128];
for(new i = 0; i < MAX_DOBJECTS; i++)
{
if(IsPlayerInRangeOfPoint(playerid, DynamicObjects[i][doObject_Range], DynamicObjects[i][doObject_PosX], DynamicObjects[i][doObject_PosY], DynamicObjects[i][doObject_PosZ]) || IsPlayerInRangeOfPoint(playerid, DynamicObjects[i][doObject_Range], DynamicObjects[i][doObject_PosXM], DynamicObjects[i][doObject_PosYM], DynamicObjects[i][doObject_PosZM]))
{
if(DynamicObjects[i][doObject_Movable] == 0) return 1;
GetDynamicObjectPos(DynamicObjects[i][doObject_ID], x, y, z);
if(strlen(DynamicObjects[i][doObject_Pass]) > 0)
{
if(sscanf(params, "s[24]", pass)) return SendClientMessage(playerid, COLOR_WHITE, "Usage: /gate [pass]");
if(strcmp(pass, DynamicObjects[i][doObject_Pass], false) == 0)
{
if(x == DynamicObjects[i][doObject_PosX] && y == DynamicObjects[i][doObject_PosY] && z == DynamicObjects[i][doObject_PosZ])
{
MoveDynamicObject(DynamicObjects[i][doObject_ID], DynamicObjects[i][doObject_PosXM], DynamicObjects[i][doObject_PosYM], DynamicObjects[i][doObject_PosZM], DynamicObjects[i][doObject_Speed], DynamicObjects[i][doObject_RotXM], DynamicObjects[i][doObject_RotYM], DynamicObjects[i][doObject_RotZM]);
if(DynamicObjects[i][doObject_AutoMove] == 1)
{
SetTimerEx("ReturnObject", DynamicObjects[i][doObject_ReturnInterval]*1000, false, "i", i);
format(string, sizeof(string), "This gate will return to it's normal position in %d second(s).", DynamicObjects[i][doObject_ReturnInterval]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "Use /gate to return the gate back to it's normal position.");
}
}
else
{
MoveDynamicObject(DynamicObjects[i][doObject_ID], DynamicObjects[i][doObject_PosX], DynamicObjects[i][doObject_PosY], DynamicObjects[i][doObject_PosZ], DynamicObjects[i][doObject_Speed], DynamicObjects[i][doObject_RotX], DynamicObjects[i][doObject_RotY], DynamicObjects[i][doObject_RotZ]);
}
}
}
else
{
if(x == DynamicObjects[i][doObject_PosX] && y == DynamicObjects[i][doObject_PosY] && z == DynamicObjects[i][doObject_PosZ])
{
MoveDynamicObject(DynamicObjects[i][doObject_ID], DynamicObjects[i][doObject_PosXM], DynamicObjects[i][doObject_PosYM], DynamicObjects[i][doObject_PosZM], DynamicObjects[i][doObject_Speed], DynamicObjects[i][doObject_RotXM], DynamicObjects[i][doObject_RotYM], DynamicObjects[i][doObject_RotZM]);
if(DynamicObjects[i][doObject_AutoMove] == 1)
{
SetTimerEx("ReturnObject", DynamicObjects[i][doObject_ReturnInterval]*1000, false, "i", i);
format(string, sizeof(string), "This gate will return to it's normal position in %d second(s).", DynamicObjects[i][doObject_ReturnInterval]);
SendClientMessage(playerid, COLOR_YELLOW, string);
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, "Use /gate to return the object back to it's normal position.");
}
}
else
{
MoveDynamicObject(DynamicObjects[i][doObject_ID], DynamicObjects[i][doObject_PosX], DynamicObjects[i][doObject_PosY], DynamicObjects[i][doObject_PosZ], DynamicObjects[i][doObject_Speed], DynamicObjects[i][doObject_RotX], DynamicObjects[i][doObject_RotY], DynamicObjects[i][doObject_RotZ]);
}
}
}
}
return 1;
}