22.07.2015, 13:28
PHP код:
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;
GetDynamicObjectPos(objectid, oldX, oldY, oldZ);
GetDynamicObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
if(!playerobject) // If this is a global object, sync the position for other players
{
if(response == EDIT_RESPONSE_FINAL)
{
for(new i=0;i<MAX_OBJ;i++)
{
if(objectid==gobject[i][oid])
{
GetDynamicObjectPos(objectid, fX, fY, fZ);
GetDynamicObjectRot(objectid, fRotX, fRotY, fRotZ);
gobject[i][posx]=fX;
gobject[i][posy]=fY;
gobject[i][posz]=fZ;
gobject[i][rotx]=fRotX;
gobject[i][roty]=fRotY;
gobject[i][rotz]=fRotZ;
printf("=====================\n");
printf("Object Edited ID: %d\n",i);
printf("Model: %d\n",gobject[i][model]);
printf("New POS X: %f\n",gobject[i][posx]);
printf("New POS Y: %f\n",gobject[i][posy]);
printf("New POS Z: %f\n",gobject[i][posz]);
printf("New ROT X: %f\n",gobject[i][rotx]);
printf("New ROT Y: %f\n",gobject[i][roty]);
printf("New ROT Z: %f\n",gobject[i][rotz]);
printf("=====================");
}
}
}
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
{
for(new i=0;i<MAX_OBJ;i++)
{
if(objectid==gobject[i][oid])
{
GetDynamicObjectPos(objectid, fX, fY, fZ);
GetDynamicObjectRot(objectid, fRotX, fRotY, fRotZ);
gobject[i][posx]=fX;
gobject[i][posy]=fY;
gobject[i][posz]=fZ;
gobject[i][rotx]=fRotX;
gobject[i][roty]=fRotY;
gobject[i][rotz]=fRotZ;
printf("=====================\n");
printf("Object Edited ID: %d\n",i);
printf("Model: %d\n",gobject[i][model]);
printf("New POS X: %f\n",gobject[i][posx]);
printf("New POS Y: %f\n",gobject[i][posy]);
printf("New POS Z: %f\n",gobject[i][posz]);
printf("New ROT X: %f\n",gobject[i][rotx]);
printf("New ROT Y: %f\n",gobject[i][roty]);
printf("New ROT Z: %f\n",gobject[i][rotz]);
printf("=====================");
}
}
}
}
}
}
Here's code on player create object:
PHP код:
CMD:createobject(playerid,params[])
{
new modelid;
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, COLOR_RED,"Sorry but you are not authorised to use this command");
if(sscanf(params, "i" ,modelid)) return SendClientMessage(playerid, COLOR_YELLOW,"Usage: /createobject <Model ID>");
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
for(new i=0; i<MAX_OBJ;i++)
{
if(gobject[i][model]==0)
{
gobject[i][oid]=CreateDynamicObject(modelid,x+2,y,z,0,0,0);
new str[128];
format(str,sizeof(str),"You have created object(ID:%d) with Model ID:%d",i,modelid);
SendClientMessage(playerid, COLOR_BLUE,str);
GetDynamicObjectPos(gobject[i][oid],gobject[i][posx],gobject[i][posy],gobject[i][posz]);
GetDynamicObjectRot(gobject[i][oid],gobject[i][rotx],gobject[i][roty],gobject[i][rotz]);
gobject[i][model]=modelid;
new INI:file = INI_Open(SavePath(i));
INI_WriteInt(file,"model",gobject[i][model]);
INI_WriteFloat(file,"posx",gobject[i][posx]);
INI_WriteFloat(file,"posy",gobject[i][posy]);
INI_WriteFloat(file,"posz",gobject[i][posz]);
INI_WriteFloat(file,"rotx",gobject[i][rotx]);
INI_WriteFloat(file,"roty",gobject[i][roty]);
INI_WriteFloat(file,"rotz",gobject[i][rotz]);
INI_Close(file);
break;
}
}
return 1;
}