OnPlayerEditObject
Deskripcija
Ovaj callback je pozvan kada igrač dovrši uređivanje objekta (EditObject/EditPlayerObject).
Ime | Deskripcija |
---|---|
playerid | ID igrača koji je uredi objekat |
playerobject | 0 ako je globalni objekat 1 ako je playerobject. |
objectid | ID uređenog objekta |
EDIT_RESPONSE:response | Tip odgovora |
Float:fX | Ofset X prikvačenog objekta koji je editovan |
Float:fY | Ofset Y prikvačenog objekta koji je editovan |
Float:fZ | Ofset Z prikvačenog objekta koji je editovan |
Float:fRotX | Rotacija X prikvačenog objekta koji je editovan |
Float:fRotY | Rotacija Y prikvačenog objekta koji je editovan |
Float:fRotZ | Rotacija Z prikvačenog objekta koji je editovan |
Returns
1 - Spriječiti će da druge skripte primaju ovaj callback.
0 - Označava da će ovaj callback biti proslijeđen narednoj skripti.
Uvijek je pozvana prva u filterskripti.
Primjeri
public OnPlayerEditObject(playerid, playerobject, objectid, EDIT_RESPONSE: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) // Ako je ovo globalni objekat, azurirati poziciju objekta za sve igrace
{
if (!IsValidObject(objectid))
{
return 1;
}
SetObjectPos(objectid, fX, fY, fZ);
SetObjectRot(objectid, fRotX, fRotY, fRotZ);
}
switch (response)
{
case EDIT_RESPONSE_FINAL:
{
// Igrac je kliknuo na save dugme
// Uradite bilo sta ovdje da sacuvate azuriranu poziciju i rotaciju objekta
}
case EDIT_RESPONSE_CANCEL:
{
// Igrac je odustao promjene, vracamo objekat u staru poziciju (prije edita)
if (!playerobject) // Objekat nije "privatni objekat" (aka player object)
{
SetObjectPos(objectid, oldX, oldY, oldZ);
SetObjectRot(objectid, oldRotX, oldRotY, oldRotZ);
}
else
{
SetPlayerObjectPos(playerid, objectid, oldX, oldY, oldZ);
SetPlayerObjectRot(playerid, objectid, oldRotX, oldRotY, oldRotZ);
}
}
}
return 1;
}
Zabilješke
warning
Kada koristite 'EDIT_RESPONSE_UPDATE' budite svjesni da ovaj callback neče biti pozvan kada se uređivanje pušta u progres što rezultuje da posljednje ažuriranje 'EDIT_RESPONSE_UPDATE' ne bude usklađen sa trenutnom pozicijom objekata.
Srodne Funkcije
- EditObject: UrRedi objekat.
- CreateObject: Kreiraj objekat.
- DestroyObject: Uništi objekat.
- MoveObject: Pomjeri objekat.