OnPlayerEditObject DE
From SA-MP Wiki
Diese Funktion/Dieses Callback wurde erstmals in SA:MP 0.3e hinzugefügt und funktioniert nicht in älteren Versionen! |
Description:
Dieses Callback wird aufgerufen, wenn ein Spieler den Objekt-Bearbeitungs-Modus beendet, oder ein Objekt bewegt.
(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
playerid | Die ID des Spielers. |
playerobject | 0 wenn das bearbeitete Objekt global ist, 1 wenn es ein Player-Objekt ist. |
objectid | Die ID des bearbeiteten Objekts. |
response | Der Typ der Antwort |
Float:fX | X Offset des bearbeiteten Objekts. |
Float:fY | Y Offset des bearbeiteten Objekts. |
Float:fZ | Z Offset des bearbeiteten Objekts. |
Float:fRotX | X Rotation des bearbeiteten Objekts. |
Float:fRotY | Y Rotation des bearbeiteten Objekts. |
Float:fRotZ | Z Rotation des bearbeiteten Objekts. |
Dieses Callback benutzt den Return-Wert nicht.
Hinweis | Egal ob abgebrochen oder gespeichert wurde, die Offset/Rotation-Parameter geben immer den Zustand des Objektes beim beenden des Edit-Modus an. |
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, move it for other players { if(!IsValidObject(objectid)) return; MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ); } if(response == EDIT_RESPONSE_FINAL) { // Spieler speichert die Veränderung // Speichere die Updates des Objekts hier } if(response == EDIT_RESPONSE_CANCEL) { // Spieler hat abgebrochen if(!playerobject) // Objekt ist kein Player-Objekt { SetObjectPos(objectid, oldX, oldY, oldZ); SetObjectRot(objectid, oldRotX, oldRotY, oldRotZ); } else { SetPlayerObjectPos(playerid, objectid, oldX, oldY, oldZ); SetPlayerObjectRot(playerid, objectid, oldRotX, oldRotY, oldRotZ); } } }
Wichtiger | Die Veränderungen müssen manuell rückgängig gemacht werden, wenn response '0' ist (abgebrochen wurde). Dazu müssen die alten Daten des Objekts zwischengespeichert werden, bevor EditObject ausgeführt wird. |
Verwandte Funktionen
Die folgenden Funktionen könnten interessant sein, da sie etwas mit dem Callback zu tun haben.
- EditObject: Lässt einen Spieler ein Objekt bearbeiten.
- CreateObject: Erstellt ein Object.
- DestroyObject: Löscht ein Objekt.
- MoveObject: Bewegt ein Objekt.