警告
回调是在SA-MP 0.3e中添加的,在早期版本中不起作用!

描述

当玩家完成编辑对象(EditObject / EditPlayerObject)时调用此回调。
姓名 描述
playerid 编辑对象的玩家的ID
playerobject 如果它是全局对象,则为 0;如果它是玩家对象,则为 1。
objectid 编辑对象的ID
response 响应
类型
Float:fX 已编辑对象的 X 偏移
Float:fY 已编辑对象的 Y 偏移
Float:fZ 已编辑对象的 Z 偏移
Float:fRotX 已编辑对象的 X 旋转
Float:fRotY 已编辑对象的 Y 旋转
Float:fRotZ 已编辑对象的 Z 旋转

返回

1 - 将阻止其他脚本接收此回调。 0 - 表示此回调将传递给下一个脚本。 它总是在过滤器脚本中首先被调用。

例子

  1. public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
  2. {
  3. new
  4. Float: oldX,
  5. Float: oldY,
  6. Float: oldZ,
  7. Float: oldRotX,
  8. Float: oldRotY,
  9. Float: oldRotZ;
  10. GetObjectPos(objectid, oldX, oldY, oldZ);
  11. GetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
  12. if (!playerobject) // If this is a global object, sync the position for other players
  13. {
  14. if (!IsValidObject(objectid))
  15. {
  16. return 1;
  17. }
  18. SetObjectPos(objectid, fX, fY, fZ);
  19. SetObjectRot(objectid, fRotX, fRotY, fRotZ);
  20. }
  21. switch (response)
  22. {
  23. case EDIT_RESPONSE_FINAL:
  24. {
  25. // The player clicked on the save icon
  26. // Do anything here to save the updated object position (and rotation)
  27. }
  28. case EDIT_RESPONSE_CANCEL:
  29. {
  30. //The player cancelled, so put the object back to it's old position
  31. if (!playerobject) //Object is not a playerobject
  32. {
  33. SetObjectPos(objectid, oldX, oldY, oldZ);
  34. SetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
  35. }
  36. else
  37. {
  38. SetPlayerObjectPos(playerid, objectid, oldX, oldY, oldZ);
  39. SetPlayerObjectRot(playerid, objectid, oldRotX, oldRotY, oldRotZ);
  40. }
  41. }
  42. }
  43. return 1;
  44. }

笔记

警告
使用“EDIT_RESPONSE_UPDATE”时请注意,在释放正在进行的编辑时不会调用此回调,从而导致“EDIT_RESPONSE_UPDATE”的最后更新与对象当前位置不同步。