警告
此回调是在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 - 表示此回调将传递给下一个脚本。 它总是在过滤器脚本中首先被调用。例子
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);
}
switch (response)
{
case EDIT_RESPONSE_FINAL:
{
// The player clicked on the save icon
// Do anything here to save the updated object position (and rotation)
}
case 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;
}