OnPlayerEditAttachedObject 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 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)
playeridDie ID des Spielers.
response0 wenn abgebrochen (ESC), oder 1 wenn gespeichert (über Icon).
modelidDas Model des bearbeiteten Objekts.
boneidThe bone of the attached object that was edited
Float:fOffsetXX Offset des bearbeiteten Objekts.
Float:fOffsetYY Offset des bearbeiteten Objekts.
Float:fOffsetZZ Offset des bearbeiteten Objekts.
Float:fRotXX Rotation des bearbeiteten Objekts.
Float:fRotYY Rotation des bearbeiteten Objekts.
Float:fRotZZ Rotation des bearbeiteten Objekts.
Float:fScaleXX Scalefaktor des bearbeiteten Objekts.
Float:fScaleYY Scalefaktor des bearbeiteten Objekts.
Float:fScaleZZ Scalefaktor 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/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;
}
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 EditAttachedObject ausgeführt wird.


Verwandte Funktionen

Die folgenden Funktionen könnten interessant sein, da sie etwas mit dem Callback zu tun haben.

Personal tools
Navigation
Toolbox
In other languages