OnPlayerEditAttachedObject DE
From SA-MP Wiki
Revision as of 09:32, 20 April 2014; view current revision
←Older revision | Newer revision→
←Older revision | Newer revision→
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 Edit-Modus für ein Attached-Objekt beendet.
(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
playerid | Die ID des Spielers. |
response | 0 wenn abgebrochen (ESC), oder 1 wenn gespeichert (über Icon). |
modelid | Das Model des bearbeiteten Objekts. |
boneid | The bone of the attached object that was edited |
Float:fOffsetX | X Offset des bearbeiteten Objekts. |
Float:fOffsetY | Y Offset des bearbeiteten Objekts. |
Float:fOffsetZ | 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. |
Float:fScaleX | X Scalefaktor des bearbeiteten Objekts. |
Float:fScaleY | Y Scalefaktor des bearbeiteten Objekts. |
Float:fScaleZ | Z Scalefaktor des bearbeiteten Objekts. |
Dieses Callback benutzt den Return-Wert nicht.
Hinweis | Egal ob abgebrochen oder gespeichert wurde, die Offset/Rotation/Scale-Parameter geben immer den Zustand des Objektes beim beenden des Edit-Modus an. |
enum attached_object_data { ao_model, ao_bone, Float:ao_x, Float:ao_y, Float:ao_z, Float:ao_rx, Float:ao_ry, Float:ao_rz, Float:ao_sx, Float:ao_sy, Float:ao_sz } new ao[MAX_PLAYERS][MAX_PLAYER_ATTACHED_OBJECTS][attached_object_data]; // Daten werden im oberen Array gespeichert, wenn das Objekt attacht wird public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ) { if(response) { SendClientMessage(playeird, COLOR_GREEN, "Attache Objekt gespeichert."); ao[playerid][index][ao_x] = fOffsetX; ao[playerid][index][ao_y] = fOffsetY; ao[playerid][index][ao_z] = fOffsetZ; ao[playerid][index][ao_rx] = fRotX; ao[playerid][index][ao_ry] = fRotY; ao[playerid][index][ao_rz] = fRotZ; ao[playerid][index][ao_sx] = fScaleX; ao[playerid][index][ao_sy] = fScaleY; ao[playerid][index][ao_sz] = fScaleZ; } else { SendClientMessage(playeird, COLOR_RED, "Attached Objekt nicht gespeichert."); new i = index; SetPlayerAttachedObject(playerid, index, modelid, boneid, ao[playerid][i][ao_x], ao[playerid][i][ao_y], ao[playerid][i][ao_z], ao[playerid][i][ao_rx], ao[playerid][i][ao_ry], ao[playerid][i][ao_rz], ao[playerid][i][ao_sx], ao[playerid][i][ao_sy], ao[playerid][i][ao_sz]); } return 1; }
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 EditAttachedObject ausgeführt wird. |
Verwandte Funktionen
Die folgenden Funktionen könnten interessant sein, da sie etwas mit dem Callback zu tun haben.
- EditAttachedObject: Lässt einen Spieler ein Attached-Objekt bearbeiten.
- SetPlayerAttachedObject: Befestigt ein Objekt an einem Spieler.