OnPlayerEditObject

Iš GTA-Online Wikipedia.
Peršokti į: navigaciją, paiešką

Aprašymas

Paskirtis:
Callback'as iškviečiamas, kai žaidėjas užbaigia objekto redagavimo rėžimą arba pasikeičia šio rėžimo būsena. Galimas būsenos:
ID Priskirta reikšmė Paaiškinimas
0 EDIT_RESPONSE_CANCEL Žaidėjas išjungė objekto redagavimo rėžimą.
1 EDIT_RESPONSE_FINAL Žaidėjas išjungė objekto redagavimo rėžimą, išsaugodamas atliktus pakeitimus.
2 EDIT_RESPONSE_UPDATE Žaidėjas pakeitė objekto poziciją, tačiau rėžimas nebuvo išjungtas.
Svarbu:
Naudojimas: Ši funkcija egzistuoja tik nuo SA-MP 0.3e versijos. Prieš tai buvusiose versijose jos naudoti negalėsite.

Sintaksė

Parametrai:
(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
Šis parametras yra privalomas.playerid Žaidėjo ID, kuris baigė objekto redagavimo rėžimą.
Šis parametras yra privalomas.playerobject Objekto tipas. Jei objektas globalus, reikšmė lygi 0, jei objektas yra matomas tik vienam žaidėjui - 1.
Šis parametras yra privalomas.objectid Redaguoto objekto ID.
Šis parametras yra privalomas.response Rėžimo baigimo būsena. Aprašymas aukščiau esančioje lentelėje.
Šis parametras yra privalomas.Float:fX Objekto padėties pasikeitimas X koordinačių ašyje.
Šis parametras yra privalomas.Float:fY Objekto padėties pasikeitimas Y koordinačių ašyje.
Šis parametras yra privalomas.Float:fZ Objekto padėties pasikeitimas Z koordinačių ašyje.
Šis parametras yra privalomas.Float:fRotX Objekto pasisukimo pasikeitimas X koordinačių ašyje.
Šis parametras yra privalomas.Float:fRotY Objekto pasisukimo pasikeitimas Y koordinačių ašyje.
Šis parametras yra privalomas.Float:fRotZ Objekto pasisukimo pasikeitimas Z koordinačių ašyje.

Grąžinama reikšmė:
Grąžinamąją reikšmę nustačius į 0 arba jos nenurodžius, serveris šio callback'o neiškvies kituose, vėliau užkrautuose skriptuose, 1 - callback'as bus iškviečiamas.

Pavyzdys

public OnPlayerEditObject(playerid, playerobject, objectid, response, Float:fX, Float:fY, Float:fZ, Float:fRotX, Float:fRotY, Float:fRotZ)
{
	if(!playerobject) // Tikrinama ar redaguotas objektas yra globalus
	{
		// Tikrinama ar redaguotas objektas neegzistuoja, jei taip - tolimesni veiksmai nutraukiami
		if(!IsValidObject(objectid)) return; 
 
		// Atnaujinama objekto padėtis, jog ją matytų ir kitų žaidėjui, t.y. ne tik tas, kuris redagavo objektą
		MoveObject(objectid, fX, fY, fZ, 10.0, fRotX, fRotY, fRotZ); 
	}
	if(response == EDIT_RESPONSE_FINAL || response == EDIT_RESPONSE_CANCEL)
	{
		// Papildomi veiksmai jei žaidėjas išsaugo pakeitimus arba juos nutraukia
	}
}

Rekomenduojama

Siūlome patikrinti žemiau išvardintas funkcijas, kurios susijusios su OnPlayerEditObject veikimu.

Globalūs objektai
  • CancelEdit: Nutraukti objekto redagavimo rėžimą.
  • EditObject: Leisti žaidėjui redaguoti globalų objektą.
  • GetObjectPos: Išgauti globalaus objekto pozicijos koordinates.
  • GetObjectRot: Išgauti globalaus objekto pasisukimo laipsnius.
  • MoveObject: Judinti globalų objektą į naują poziciją.
  • SetObjectRot: Nustatyti globalaus objekto pasisukimo laipsnius.
  • StopObject: Sustabdyti judantį globalų objektą.
Žaidėjų objektai

Serverio iškviečiamos funkcijos
  • OnObjectMoved: Iškviečiama globaliam objektui baigus judėti.
  • OnPlayerEditObject: Iškviečiama žaidėjui baigus objektų redagavimo rėžimą.
Asmeniniai įrankiai
San Andreas Multiplayer