Guys after a long time trying i did this:
Код:
public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
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 this is a global object, sync the position for other players
{
if(!IsValidObject(objectid)) return 1;
SetObjectPos(objectid, fX, fY, fZ);
SetObjectRot(objectid, fRotX, fRotY, fRotZ);
}
if(response == EDIT_RESPONSE_FINAL)
{
// The player clicked on the save icon
// Do anything here to save the updated object position (and rotation)
new string[128];
format(string, sizeof(string), "fX[%f] fY[%f] fZ[%f] fRotX[%f] fRotY[%f] fRotZ[%f]", fX, fY, fZ, fRotX, fRotY, fRotZ );
SendClientMessage(playerid, COLOR_GREY, string);
}
if(response == EDIT_RESPONSE_CANCEL)
{
//The player cancelled, so put the object back to it's old position
if(!playerobject) //Object is not a playerobject
{
SetObjectPos(objectid, oldX, oldY, oldZ);
SetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
}
else
{
SetPlayerObjectPos(playerid, objectid, oldX, oldY, oldZ);
SetPlayerObjectRot(playerid, objectid, oldRotX, oldRotY, oldRotZ);
}
}
return 1;
}
Код:
CMD:actorweapon(playerid, params[]) {
// https://sampwiki.blast.hk/wiki/EditAttachedObject ~ https://sampwiki.blast.hk/wiki/EditObjec...7.40690644 if(admin[playerid] < 1337) return 0;
new actorid;
if(sscanf(params,"i", actorid)) return SendClientMessage(playerid, -1, "Use: /actorweapon [actorid]");
if(IsValidActor(actorid)) {
new Float:x, Float:y, Float:z;
GetActorPos(actorid, x, y, z);
new string[128];
format(string, sizeof(string), "[ACTOR POS] x[%f] y[%f] z[%f] RotX[0] RotY[0] RotZ[0]", x, y, z);
SendClientMessage(playerid, COLOR_GREY, string);
new weaponobj = CreateObject(GetGunObjectID(25), x, y, z, 0.0, 0.0, 0.0);
EditObject(playerid, weaponobj);
}
return 1;
}
And in game i put the weapon on actor like in the IMG
So i did this math:
[ACTOR POS] x[207.732498] y[-98.704498] z[1005.257812] RotX[0] RotY[0] RotZ[0]
[WEAPO POS] X[207.578094] Y[-98.815635] Z[1005.568115] RotX[1.599998] RotY[-0.400000] RotZ[-66.699996]
[NEW POS] X[-0.154404] Y[-0.111137] Z[+-0.310303] RotX[+1.599998] RotY[-0.400000] RotZ[-66.699996]
And on createactors:
Код:
CreateActor(142, -28.9448,-186.8204,1003.5469, 0.0);
CreateActor(142, 1.9909,-30.7009,1003.5494, 357.6201);
CreateActor(223, 207.7325,-98.7045,1005.2578, 178.9347);
CreateActor(29, 203.6479,-40.7589,1001.8047, 181.8473);
CreateActor(141, 161.4051,-80.0589,1001.8047, 180.1522);
CreateActor(205, 375.6144,-65.7069,1001.5078, 140.8397);
CreateActor(85, 501.8527,-21.4871,1000.6797, 90.2779);
CreateActor(155, 373.9646,-117.2686,1001.4995, 180.2793);
new actstring[128];
for(new a; a< GetActorPoolSize()+1; ++a) {
if(IsValidActor(a)) {
SetActorVirtualWorld(a, 0);
SetActorInvulnerable(a, false);
SetActorHealth(a, 10);
new Float:x, Float:y, Float:z;
GetActorPos(a, x, y, z);
CreateObject(GetGunObjectID(25), x-0.154404, y-0.111137, z-0.310303, 1.599998, -0.400000, -66.699996);
}
}
But it's not beeing in the right position...
And i can not take a screenshot because i'm my GTA is crashing everytime i try to see this actors armeds