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 Edit-Modus für ein Attached-Objekt beendet.
Parameter:(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 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 EditAttachedObject ausgeführt wird.
|
Verwandte Funktionen
Die folgenden Funktionen könnten interessant sein, da sie etwas mit dem Callback zu tun haben.