new testobject[3];
CMD:test(playerid,params[]) {
new Float:X, Float:Y, Float:Z;
for(new i = 0; i < sizeof(TestObject); i++) {
if(IsValidDynamicObject(TestObject[i])) {
GetDynamicObjectPos(TestObject[i], X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 5, X, Y, Z)) {
printf("in range of the object");
}
}
}
return true;
}
for(new i = 0; i < sizeof(TestObject); i++) {
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
if(IsPlayerInRangeOfPoint(playerid, 5, X, Y, Z)) {
DestroyDynamicObject(TestObject[i]);
}
}
Its later on destroyed simply
PHP код:
|
new testobject[3] = {INVALID_OBJECT_ID, ...};
CMD:test(playerid, params[])
{
new Float:X, Float:Y, Float:Z;
for(new i = 0; i < sizeof(TestObject); i++)
{
if(TestObject[i] != INVALID_OBJECT_ID)
{
GetDynamicObjectPos(TestObject[i], X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, 5, X, Y, Z))
{
print("in range of the object");
}
}
}
return true;
}
for(new i = 0; i < sizeof(TestObject); i++)
{
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
if(IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z) && TestObject[i] != INVALID_OBJECT_ID)
{
DestroyDynamicObject(TestObject[i]);
TestObject[i] = INVALID_OBJECT_ID;
}
}
I knew it. You have to reset the value of TestObject and you should be good to go, also add a detection if TestObject = invalid_object_id then cancel the process.
|