Aller au contenu principal

OnPlayerEditObject

Paramètres

Cette callback est appelée quand un joueur a fini d'éditer un objet (EditObject/EditPlayerObject).

NomDescription
int playeridID du joueur qui a édité l'objet
int playerobject0 si c'est un global object, 1 si c'est un playerobject
int objectidID de l'objet édité
int EDIT_RESPONSE:responseLe type de réponse
float Float:fXOffset X de l'objet qui a été édité
float Float:fYOffset Y de l'objet qui a été édité
float Float:fZOffset Z de l'objet qui a été édité
float Float:fRotXRotation X de l'objet qui a été édité
float Float:fRotYRotation Y de l'objet qui a été édité
float Float:fRotZRotation Z de l'objet qui a été édité

Valeur de retour

1 - Autorise la callback à être appelée par un autre script.

0 - Refuser que la callback soit appelée ailleurs.

Exemple

public OnPlayerEditObject(playerid, playerobject, objectid, EDIT_RESPONSE: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) // Si c'est un global object = synchronise la position pour les autres joueurs
{
if (!IsValidObject(objectid))
{
return 1;
}
SetObjectPos(objectid, fX, fY, fZ);
SetObjectRot(objectid, fRotX, fRotY, fRotZ);
}

switch (response)
{
case EDIT_RESPONSE_FINAL:
{
// Le joueur clique sur l'icône de sauvegarde
// C'est ici que vous sauvegardez, par exemple, la nouvelle Rotation, etc.
}

case EDIT_RESPONSE_CANCEL:
{
// Le joueur a abandonné, donc l'objet regagne sa position d'avant l'édition.
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;
}

Astuces

attention

Lorsque vous utilisez 'EDIT_RESPONSE_UPDATE', sachez que la callback ne sera pas appelée lors de la publication d'une édition en cours entraînant une désynchronisation de la dernière édition de 'EDIT_RESPONSE_UPDATE' par rapport à la position actuelle des objets.

Fonctions connexes