Sziasztok! Az lenne a problémám ,hogy van egy parancsom melyben a létrehozott actort lehet törölni, a skint módosítani, illetve a pozíciót módosítani. Azonban mikor törlöm az actort illetve módosítom a pozíciót minden rendben működik és törlődik a \"régi\" actor, de mikor a skint módosítom ott hagyja az eredetit és arra pozícióra létrehoz még egyet a az új skinnel.
Parancs:
CMD:actoredit(playerid, params[])
{
new id, type[24], string[128], Float:ActorPos[4], world, skin;
if(sscanf(params, \"ds[24]S()[128]\", id, type, string)) return SendClientMessage(playerid, COLOR_FEHER, \"Használat: /actoredit [ActorID] [Módosítás]\"), SendClientMessage(playerid, COLOR_FEHER, \"Módosítások: pozicio, skin, torles\");
if (!strcmp(type, \"pozicio\", true))
{
if(ActorInfo[id][aSkin] == 0) return SendClientMessage(playerid, COLOR_FEHER, \"Hibás ID\");
if(IsValidActor(id))
DestroyActor(id);
GetPlayerPos(playerid, ActorPos[0], ActorPos[1], ActorPos[2]);
GetPlayerFacingAngle(playerid, ActorPos[3]);
world = GetPlayerVirtualWorld(playerid);
ActorInfo[id][aPozX] = ActorPos[0];
ActorInfo[id][aPozY] = ActorPos[1];
ActorInfo[id][aPozZ] = ActorPos[2];
ActorInfo[id][aVirtualWorld] = world;
SaveActor(id);
SetPlayerPos(playerid, ActorPos[0], ActorPos[1], ActorPos[2]);
CreateActor(ActorInfo[id][aSkin], ActorPos[0], ActorPos[1], ActorPos[2], ActorPos[3]);
SendClientMessage(playerid, COLOR_FEHER, \"A módosítás sikeresen végrehajtva!\");
}
else if (!strcmp(type, \"skin\", true))
{
if(sscanf(string, \"d\", skin)) return SendClientMessage(playerid, COLOR_FEHER, \"Használat: /actoredit [ActorID] [skinID]\");
if(ActorInfo[id][aSkin] == 0) return SendClientMessage(playerid, COLOR_FEHER, \"Hibás ID\");
if(IsValidActor(id))
DestroyActor(id);
ActorInfo[id][aSkin] = skin;
SaveActor(id);
CreateActor(skin, ActorInfo[id][aPozX], ActorInfo[id][aPozY], ActorInfo[id][aPozZ], ActorInfo[id][aPozA]);
SetActorVirtualWorld(id, ActorInfo[id][aVirtualWorld]);
SendClientMessage(playerid, COLOR_FEHER, \"A módosítás sikeresen végrehajtva!\");
}
else if (!strcmp(type, \"torles\", true))
{
if(ActorInfo[id][aSkin] == 0) return SendClientMessage(playerid, COLOR_FEHER, \"Hibás ID\");
if(IsValidActor(id))
DestroyActor(id);
format(string, sizeof(string), ActorPath, id);
fremove(string);
SendClientMessage(playerid, COLOR_FEHER, \"A módosítás sikeresen végrehajtva!\");
}
return 1;
}
Mi lehet a probléma? A válaszokat előre is köszönöm!