CMD:createo(playerid, params[])
{
new i;
for(i=0; i < MAX_OBJECTS_PP; i++)
{
if(oData[playerid][objID][i] == -1) break;
if(i == ( MAX_OBJECTS_PP -1 ) ) return SendClientMessage(playerid, red, "You can't create more objects..");
}
new objectid;
if(sscanf(params, "i", objectid)) return SendClientMessage(playerid, -1, "USAGE: /createo [model id]");
new Float:pos[4];
oData[playerid][objID][i] = objectid;
oData[playerid][slotobjID] = i;
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
GetPlayerFacingAngle(playerid, pos[3]);
pos[0] += (3 * floatsin(-pos[3], degrees));
pos[1] += (3 * floatcos(-pos[3], degrees));
oObjectID[playerid][i] = CreateObject(objectid, pos[0], pos[1], pos[2], 0.0, 0.0, pos[3]);
format(ssstring, SOS, "-OBJECT- MODELID: %d, SLOT ID: %d, X:%0.2f,Y:%0.2f,Z:%0.2f", objectid, oData[playerid][slotobjID], pos[0], pos[1], pos[2]);
SendClientMessage(playerid, YELLOW, ssstring);
return 1;
}
CMD:deleteo(playerid, params[])
{
new slot;
oData[playerid][slotobjID] = slot;
if(sscanf(params, "i", slot)) return SendClientMessage(playerid, red, "USAGE: /deleteo [slot id]");
DestroyObject(oObjectID[playerid][slot]);
return 1;
enum oInfo
{
objID[MAX_OBJECTS_PP],
slotobjID
}
new oData[MAX_PLAYERS][oInfo];
new oObjectID[MAX_PLAYERS][MAX_OBJECTS_PP];
for(new i = 0; i < MAX_OBJECTS_PP; i++)
{
if(oObjectID[playerid][i] != 0)
{
oObjectID[playerid][i] = CreateObject(objectid, pos[0], pos[1], pos[2], 0.0, 0.0, pos[3]);
break;
}
}
for(new i = 0; i < MAX_OBJECTS_PP; i++)
{
if(oObjectID[playerid][i] != 0)
{
oObjectID[playerid][i] = CreateObject(objectid, pos[0], pos[1], pos[2], 0.0, 0.0, pos[3]);
break;
}
}
oObjectID[playerid][slot] = -1;
pos[0] += (3 * floatsin(-pos[3], degrees));
pos[1] += (3 * floatcos(-pos[3], degrees));
It should be after
pawn Код:
|
After you delete the object of course you will want to reset that object reference to -1 to be reused.
|
DestroyObject(oObjectID[playerid][slot]);
oObjectID[playerid][slot] = -1;
for(new i = 0; i < MAX_OBJECTS_PP; i++)
{
if(oObjectID[playerid][i] != -1)
{
oObjectID[playerid][i] = CreateObject(objectid, pos[0], pos[1], pos[2], 0.0, 0.0, pos[3]);
break;
}
}