Hi, i have create one system if use OnPlayerEditObject, and unfortunately, all it's okey except the callback if use for save object. She is in my Gamemoge, i don't see the problem.
Код:
Objet[playerid] = CreateObject(Etape[playerid][0],X,Y,Z,0.0,0.0,0.0,1.5);
SaveEtape[playerid] = 0;
EditObject(playerid,Objet[playerid]);
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
printf("Sa marche le dit objet");
new Float:oldX, Float:oldY, Float:oldZ,
Float:oldRotX, Float:oldRotY, Float:oldRotZ;
GetObjectPos(objectid, oldX, oldY, oldZ);
GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
if(!playerobject)
{
if(!IsValidObject(objectid)) return;
MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ);
}
if(response == EDIT_RESPONSE_FINAL)
{
if(SaveEtape[playerid] == 0)
{
SendPlayerMessage(playerid, "{9DEB00}Move-Object", "Veuillez mettre зa position quand il sera ouvert");
SaveEtape[playerid] = 1;
ObjetPos[playerid][0] = fX;
ObjetPos[playerid][1] = fY;
ObjetPos[playerid][2] = fZ;
ObjetPos[playerid][3] = fRotX;
ObjetPos[playerid][4] = fRotY;
ObjetPos[playerid][5] = fRotZ;
EditObject(playerid,Objet[playerid]);
}
if(SaveEtape[playerid] == 1)
{
new fichier[250];
Ouverture[ObjectCreer][ObjetID] = objectid;
Ouverture[ObjectCreer][PosXO] = fX;
Ouverture[ObjectCreer][PosYO] = fY;
Ouverture[ObjectCreer][PosZO] = fZ;
Ouverture[ObjectCreer][PosRXF] = fRotX;
Ouverture[ObjectCreer][PosRYF] = fRotY;
Ouverture[ObjectCreer][PosRZF] = fRotZ;
Ouverture[ObjectCreer][PosXF] = ObjetPos[playerid][0];
Ouverture[ObjectCreer][PosYF] = ObjetPos[playerid][1];
Ouverture[ObjectCreer][PosZF] = ObjetPos[playerid][2];
Ouverture[ObjectCreer][PosRXF] = ObjetPos[playerid][3];
Ouverture[ObjectCreer][PosRYF] = ObjetPos[playerid][4];
Ouverture[ObjectCreer][PosRZF] = ObjetPos[playerid][5];
Ouverture[ObjectCreer][Faction] = Etape[playerid][1];
format(fichier, 250, "_object/%d.ini", ObjectCreer);
if(!fexist(fichier))
{
dini_Create(fichier);
dini_IntSet(fichier, "ObjetID", objectid);
dini_FloatSet(fichier, "PosXO", Ouverture[ObjectCreer][PosXO]);
dini_FloatSet(fichier, "PosYO", Ouverture[ObjectCreer][PosYO]);
dini_FloatSet(fichier, "PosZO", Ouverture[ObjectCreer][PosZO]);
dini_FloatSet(fichier, "PosRXO", Ouverture[ObjectCreer][PosRXO]);
dini_FloatSet(fichier, "PosRYO", Ouverture[ObjectCreer][PosRYO]);
dini_FloatSet(fichier, "PosRZO", Ouverture[ObjectCreer][PosRZO]);
dini_FloatSet(fichier, "PosXF", Ouverture[ObjectCreer][PosXF]);
dini_FloatSet(fichier, "PosYF", Ouverture[ObjectCreer][PosYF]);
dini_FloatSet(fichier, "PosZF", Ouverture[ObjectCreer][PosZF]);
dini_FloatSet(fichier, "PosRXF", Ouverture[ObjectCreer][PosRXF]);
dini_FloatSet(fichier, "PosRYF", Ouverture[ObjectCreer][PosRYF]);
dini_FloatSet(fichier, "PosRZF", Ouverture[ObjectCreer][PosRZF]);
dini_IntSet(fichier, "Faction", Ouverture[ObjectCreer][Faction]);
}
ObjectCreer++;
SaveEtape[playerid] = -1;
Etape[playerid][0] = -1;
Etape[playerid][1] = -1;
}
}
if(response == EDIT_RESPONSE_CANCEL)
{
DestroyObject(Objet[playerid]);
SaveEtape[playerid] = -1;
}
}