OnPlayerEditObject DE

From SA-MP Wiki

Jump to: navigation, search



Dies wurde in SA:MP 0.3e   hinzugefügt 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.


Parameter:
(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
playeridDie ID des Spielers.
playerobject0 wenn das bearbeitete Objekt global ist, 1 wenn es ein Player-Objekt ist.
objectidDie ID des bearbeiteten Objekts.
responseDer Typ der Antwort
Float:fXX Offset des bearbeiteten Objekts.
Float:fYY Offset des bearbeiteten Objekts.
Float:fZZ Offset des bearbeiteten Objekts.
Float:fRotXX Rotation des bearbeiteten Objekts.
Float:fRotYY Rotation des bearbeiteten Objekts.
Float:fRotZZ Rotation des bearbeiteten Objekts.


Dieses Callback benutzt den Return-Wert nicht.


Image:32px-Ambox_warning_orange.png

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);
		}
	}
}


Image:32px-Circle-style-warning.png

Wichtiger
Hinweis

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.
Personal tools
Navigation
Toolbox
In other languages