OnPlayerEditAttachedObject

Z Ferdova wikina
Verze z 1. 6. 2012, 15:49, kterou vytvořil Lurk (diskuse | příspěvky)
(rozdíl) ← Starší verze | zobrazit aktuální verzi (rozdíl) | Novější verze → (rozdíl)
Skočit na navigaci Skočit na vyhledávání

Tato funkce byla přidána ve verzi 0.3e. Nedoporučuje se používat starší verze!


Tento callback je vyvolán, když hráč ukončí úpravu objektu.

Parametry

(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY,
Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
playerid
ID hráče
response
0 pokud zruší (ESC) nebo, 1 pokud klikne na ikonu Uložit.
modelid
Model připojené objektu, který byl upravován
boneid
The bone připojeného objektu, který byl upravován
Float:fOffsetX/Y/Z
Pozice X/Y/Z pro připojený objekt, který byl upravován
Float:fRotX/Y/Z
Rotace X/Y/Z pro připojený objekt, který byl upravován
Float:fScaleX/Y/Z
Velikost X/Y/Z pro připojený objekt, který byl upravován


Tento CallBack nevrací žádnou hodnotu



enum attached_object_data
{
ao_model,
ao_bone,
Float:ao_x,
Float:ao_y,
Float:ao_z,
Float:ao_rx,
Float:ao_ry,
Float:ar_rz,
Float:as_sx,
Float:ao_sy,
Float:ao_sz
}
 
new ao[MAX_PLAYERS][MAX_PLAYER_ATTACHED_OBJECTS][attached_object_data];
 
//Tyto údaje by měly být uloženy ve výše uvedeném poli, když jsou připojeny objekty.
 
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, 0xFFFFFF00, "Připojený objekt byl uložen");
 
        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, 0xFFFFFF00, "Připojený objekt nebyl uložen");
 
        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;
}

Důležitá poznámka Editace by měla být zlikvidována, pokud odpověď byla 0(zrušeno). Musí být provedeno ukládání offsety atd. v poli před použitím EditAttachedObject

Autor: Lurk(Luděk)