OnPlayerEditAttachedObject

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

Aprašymas

Paskirtis:
Callback'as iškviečiamas, kai žaidėjas užbaigia prilipdyto objekto redagavimo rėžimą.
Svarbu:
Naudojimas: Ši funkcija egzistuoja tik nuo SA-MP 0.3e versijos. Prieš tai buvusiose versijose jos naudoti negalėsite.

Sintaksė

Parametrai:
(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
Šis parametras yra privalomas.playerid Žaidėjo ID, kuris baigė prilipdyto objekto redagavimo rėžimą.
Šis parametras yra privalomas.response Rėžimo baigimo būsena. Reikšmė lygi 0 žaidėjui nutraukus redagavimą, 1 - išsaugojus pakeitimus.
Šis parametras yra privalomas.index Prilipdyto objekto prilipdymo vietos ID.
Šis parametras yra privalomas.modelid Redaguoto objekto modelio ID.
Šis parametras yra privalomas.boneid Kūno dalis, prie kurios prilipdytas redaguotas objektas.
Šis parametras yra privalomas.Float:fOffsetX Objekto padėties pasikeitimas X koordinačių ašyje.
Šis parametras yra privalomas.Float:fOffsetY Objekto padėties pasikeitimas Y koordinačių ašyje.
Šis parametras yra privalomas.Float:fOffsetZ 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.
Šis parametras yra privalomas.Float:fScaleX Objekto matmenų pasikeitimas X koordinačių ašyje.
Šis parametras yra privalomas.Float:fScaleY Objekto matmenų pasikeitimas Y koordinačių ašyje.
Šis parametras yra privalomas.Float:fScaleZ Objekto matmenų 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

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];
 
// Masyvas skirtas saugoti kiekvieno žaidėjo prilipdytų objekto informacijai.
 
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) // Tikrinama objekto pakeitimai išsaugoti
	{
		SendClientMessage(playerid, 0xFFFFFFFF, "Pakeitimai išsaugoti.");
 
		// Išsaugome pakeitimus į masyvą
		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 // Priešingu atveju, t.y. jei objekto pakeitimai buvo atšaukti
	{
		SendClientMessage(playerid, 0xFFFFFFFF, "Pakeitimai nebuvo išsaugoti.");
 
		// Grąžiname visus objekto pozicijos, pasisukimo bei matmenų parametrus į buvusius
		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;
}

Rekomenduojama

Siūlome patikrinti žemiau išvardintas funkcijas, kurios susijusios su OnPlayerEditAttachedObject 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.
  • OnPlayerEditAttachedObject: Iškviečiama žaidėjui baigus prilipdytų objektų redagavimo rėžimą.
Asmeniniai įrankiai
San Andreas Multiplayer