19.10.2013, 13:56
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.
my english bad :P.
Код:
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; } }