//============ www.gta-expert.it ==============
Andiamo ad analizzare l'include "a_objects.inc", ovvero l'include che si occupa delle funzioni relative all'editing degli oggetti:
//a_objects.inc
CreateObject(modelid,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz);
Crea un oggetto nel punto specificato.
modelid : Modello dell'object, ogni oggetto presente in GTA:SA ha un suo ID di riconoscimento. Il metodo più veloce per sapere l'ID di un determinato oggetto è installare MTA Race, dove sarà presente un utilissimo Map Editor con il quale poter trovare facilmente gli ID e creare mappe.
Float:x : Coordinata X dell'oggetto da creare
Float:y : Coordinata Y dell'oggetto da creare
Float:z : Coordinata Z dell'oggetto da creare
Float:rx : Rotazione X dell'oggetto da creare
Float:ry : Rotazione Y dell'oggetto da creare
Float:rz : Rotazione Z dell'oggetto da creare
Esempio:
CreateObject(1634,175.399627,2512.739990,19.018697,732.000000,720.000000,448.000000);
Crea una rampa ( perchè la rampa ha come ID: 1634 ) di coordinate X: 175.399627, coordinate Y: 2512.739990,coordinate Z: 19.018697, rotazione X: 732.000000, rotazione Y: 720.000000, rotazione Z: 448.000000
SetObjectPos(objectid,Float:x,Float:y,Float:z);
Setta la posizione dell'oggetto nel punto specificato solo dopo averlo creato.
objectid : L'ID dell'oggetto nella gamemode, per trovare facilmente l'objectid si consiglia di cercare nel pawno con la funzione "edit/find" il primo CreateObject: quello sarà il vostro ID 1, successivamente ID 2, ID 3 ecc.
Di norma per maggiore chiarezza si tende a creare l'oggetto tramite new nomeoggetto = CreateObject(ecc ecc); in modo da avere l'objectid = nomeoggetto. (chiaramente è molto più semplice e intuitivo rispetto al contare ogni singolo ID)
Float:x : Coordinata X dell'oggetto da creare
Float:y : Coordinata Y dell'oggetto da creare
Float:z : Coordinata Z dell'oggetto da creare
Esempio:
new rampa = CreateObject(1634,175.399627,2512.739990,19.018697,732.000000,720.000000,448.000000);
SetObjectPos(rampa,179.525698,2596.254796,54.631234);
Sposta la rampa dalla posizione (175.399627,2512.739990,19.018697) alla posizione (179.525698,2596.254796,54.631234)
GetObjectPos(objectid,Float:x,Float:y,Float:z);
Ritorna le coordinate dove è situato l'oggetto con determinato ID
objectid : Leggi sopra
Float:x : Coordinata X dell'oggetto da creare
Float:y : Coordinata Y dell'oggetto da creare
Float:z : Coordinata Z dell'oggetto da creare
Esempio:
new string[256];
new Float: fx,fy,fz;
new rampa = CreateObject(1634,175.399627,2512.739990,19.018697,732.000000,720.000000,448.000000);
GetObjectPos(rampa,fx,fy,fz);
format(string,256,"Coordinata X: %f, Coordinata Y: %f, Coordinata Z: %f",fx,fy,fz);
SendClientMessage(playerid,COLOR_RED,string);
Ritorna le coordinate dell'oggetto rampa e le salva in "fx","fy" e "fz", successivamente manda un messaggio al playerid con le coordinate dell'oggetto
SetObjectRot(objectid,Float:rx,Float:ry,Float:rz);
Setta la rotazione dell'oggetto parallelamente rispetto al terreno
objectid : Leggi sopra
Float:rx : Rotazione X dell'oggetto da creare
Float:ry : Rotazione Y dell'oggetto da creare
Float:rz : Rotazione Z dell'oggetto da creare
Esempio:
new rampa = CreateObject(1634,175.399627,2512.739990,19.018697,732.000000,720.000000,448.000000);
SetObjectRot(rampa,784.000000,726.000000,520.000000);
Setta le rotazioni dell'oggetto "rampa" in: Rotazione X: 784.000000, Rotazione Y: 726.000000, Rotazione Z: 520.000000
GetObjectRot(objectid,Float:rx,Float:ry,Float:rz);
Ritorna la coordinata di rotazione dell'oggetto parallelamente rispetto al terreno
objectid : Leggi sopra
Float:rx : Rotazione X dell'oggetto da creare
Float:ry : Rotazione Y dell'oggetto da creare
Float:rz : Rotazione Z dell'oggetto da creare
Esempio:
new Float: rx,ry,rz;
new rampa = CreateObject(1634,175.399627,2512.739990,19.018697,732.000000,720.000000,448.000000);
GetObjectRot(rampa,rx,ry,rz);
format(string,256,"Rotazione X: %f, Rotazione Y: %f, Rotazione Z: %f",fx,fy,fz);
SendClientMessage(playerid,COLOR_RED,string);
Ritorna le rotazioni dell'oggetto rampa e le salva in "rx","ry" e "rz", successivamente manda un messaggio al playerid con le rotazioni dell'oggetto
IsValidObject(objectid);
Determina se un oggetto è valido, ovvero se è presente nella GM
objectid : Leggi sopra
Esempio:
CreateObject(1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000); // id 1
CreateObject(1634,176.399627,2582.739990,19.018697,792.000000,720.000000,458.000000); // id 2
CreateObject(1634,177.399627,2592.739990,19.018697,732.000000,720.000000,428.000000); // id 3
if(IsValidObject(4))
{
SendClientMessage(playerid,COLOR_RED,"L'oggetto con ID = 4 esiste");
return 1;
}
In questo caso lo script verifica se esiste l'oggetto con ID = 4, se esiste manda al playerid un messaggio di conferma; in questo caso non lo manda poichè gli ID si fermano a 3
DestroyObject(objectid);
Distrugge l'oggetto con determinato objectid
objectid : Leggi sopra
Esempio:
new rampa = CreateObject(1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
DestroyObject(rampa);
Distrugge l'oggetto "rampa"
MoveObject(objectid,Float:x,Float:y,Float:z,Float:speed);
Muove l'oggetto da una posizione ad un altra, non è prevista la rotazione durante lo spostamento.
objectid : Leggi sopra
Float:x : Coordinata X dell'oggetto da creare
Float:y : Coordinata Y dell'oggetto da creare
Float:z : Coordinata Z dell'oggetto da creare
Float:speed : Velocità con la quale muovere l'oggetto. Iniziate con una velocità pari a 3.0 per poi portarla ad un valore più alto per una velocità maggiore, più basso per una velocità minore
Esempio:
new rampa = CreateObject(1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000); // id 1
MoveObject(rampa,176.399627,2852.739990,35.018697,4.0);
Sposta l'oggetto "rampa" dalla posizione (175.399627,2552.739990,19.018697) alla posizione (176.399627,2852.739990,35.018697) a velocità: 4.0.
StopObject(objectid);
Ferma lo spostamento dell'oggetto attivato tramite MoveObject.
objectid : Leggi sopra
Esempio:
new rampa = CreateObject(1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000); // id 1
MoveObject(rampa,176.399627,2852.739990,35.018697,4.0);
SetTimer("STOP",3000,false);
forward STOP();
public STOP()
{
StopObject(rampa);
}
Dopo aver creato la rampa con new rampa = Create ecc.. muovo la rampa nella posizione (176.399627,2852.739990,35.018697) a velocità: 4.0, attivo il Timer "STOP" e dopo 3 secondi (3000 millisecondi) si attiva la funzione STOP, che permette di stoppare il movimento dell'Object
CreatePlayerObject(playerid,modelid,Float:x,Float:y,Float:z,Float:rx,Float:ry,Float:rz);
Crea un oggetto visibile solo per il determinato player, definito dal playerid
modelid : Leggi sopra
Float:x : Coordinata X dell'oggetto da creare
Float:y : Coordinata Y dell'oggetto da creare
Float:z : Coordinata Z dell'oggetto da creare
Float:rx : Rotazione X dell'oggetto da creare
Float:ry : Rotazione Y dell'oggetto da creare
Float:rz : Rotazione Z dell'oggetto da creare
Esempio:
CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
Crea una rampa visibile solo al playerid
SetPlayerObjectPos(playerid,objectid,Float:x,Float:y,Float:z);
Setta la posizione del determinato oggetto creato per il determinato giocatore
playerid : l'ID del player al quale verrà creato l'oggetto
objectid : Leggi sopra
Float:x : Coordinata X dell'oggetto da creare
Float:y : Coordinata Y dell'oggetto da creare
Float:z : Coordinata Z dell'oggetto da creare
Esempio:
new rampa = CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
SetPlayerObjectPos(playerid,rampa,132.399627,5204.739990,410.018697);
Sposta la rampa visibile solo al playerid dalle coordinate (175.399627,2552.739990,19.018697) alle coordinate (132.399627,5204.739990,410.018697)
GetPlayerObjectPos(playerid,objectid,Float:x,Float:y,Float:z);
Ritorna le coordinate dell'oggetto visibile solo ad un determinato ID
objectid : Leggi sopra
Float:x : Coordinata X dell'oggetto da creare
Float:y : Coordinata Y dell'oggetto da creare
Float:z : Coordinata Z dell'oggetto da creare
Esempio:
new Float: fx,fy,fz;
new rampa = CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
GetPlayerObjectPos(playerid,rampa,fx,fy,fz);
format(string,256,"Coordinata X: %f, Coordinata Y: %f, Coordinata Z: %f",fx,fy,fz);
SendClientMessage(playerid,COLOR_RED,string);
Ritorna le coordinate dell'oggetto rampa visibile solo al playerid e le salva in "fx","fy" e "fz", successivamente manda un messaggio al playerid con le coordinate dell'oggetto
SetPlayerObjectRot(playerid,objectid,Float:rx,Float:ry,Float:rz);
Setta le coordinate di rotazione parallele al terreno dell'oggetto visibile solo ad un determinato ID
objectid : Leggi sopra
Float:rx : Rotazione X dell'oggetto da creare
Float:ry : Rotazione Y dell'oggetto da creare
Float:rz : Rotazione Z dell'oggetto da creare
Esempio:
new rampa = CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
SetPlayerObjectRot(playerid,rampa,725.000000,785.000000,950.000000);
Setta la rotazione orizzontale dell'oggetto visibile solo al playerid da (742.000000,720.000000,498.000000) a (725.000000,785.000000,950.000000)
GetPlayerObjectRot(playerid,objectid,Float:rx,Float:ry,Float:rz);
Ritorna le coordinate di rotazione parallele al terreno dell'oggetto visibile solo ad un determinato ID
playerid : l'ID del player al quale è stato creato l'oggetto
objectid : Leggi sopra
Float:rx : Rotazione X dell'oggetto da creare
Float:ry : Rotazione Y dell'oggetto da creare
Float:rz : Rotazione Z dell'oggetto da creare
Esempio:
new Float: rx,ry,rz;
new rampa = CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
GetPlayerObjectPos(playerid,rampa,rx,ry,rz);
format(string,256,"Rotazione X: %f, Rotazione Y: %f, Rotazione Z: %f",rx,ry,rz);
SendClientMessage(playerid,COLOR_RED,string);
Ritorna le rotazioni dell'oggetto rampa visibile solo al playerid e le salva in "rx","ry" e "rz", successivamente manda un messaggio al playerid con le rotazioni dell'oggetto
IsValidPlayerObject(playerid,objectid);
Determina se un oggetto è valido, ovvero se è presente nella GM per il playerid
playerid : l'ID del player al quale è stato creato l'oggetto
objectid : Leggi sopra
Esempio:
CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000); // id 1
CreatePlayerObject(playerid,1634,176.399627,2582.739990,19.018697,792.000000,720.000000,458.000000); // id 2
CreatePlayerObject(playerid,1634,177.399627,2592.739990,19.018697,732.000000,720.000000,428.000000); // id 3
if(IsValidPlayerObject(playerid,4))
{
new string[256];
format(string,256,"L'oggetto con ID = 4 esiste per il player con ID = %s",playerid);
SendClientMessageToAll(,COLOR_RED,string);
return 1;
}
In questo caso lo script verifica se esiste l'oggetto con ID = 4 per il playerid, se esiste manda a tutti un messaggio di conferma; in questo caso non lo manda poichè gli ID per il playerid si fermano a 3
DestroyPlayerObject(playerid,objectid);
Distrugge l'oggetto, il quale è stato creato al playerid
playerid : l'ID del player al quale è stato creato l'oggetto
objectid : Leggi sopra
Esempio:
new rampa = CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
DestroyPlayerObject(playerid,rampa);
Distrugge l'oggetto "rampa" visibile solo al playerid
MovePlayerObject(playerid,objectid,Float:x,Float:y,Float:z,Float:speed);
Muove l'oggetto da una posizione ad un altra per il determinato playerid, non è prevista la rotazione durante lo spostamento.
playerid : l'ID del player al quale è stato creato l'oggetto
objectid : Leggi sopra
Float:x : Coordinata X dell'oggetto da creare
Float:y : Coordinata Y dell'oggetto da creare
Float:z : Coordinata Z dell'oggetto da creare
Float:speed : Leggi sopra
Esempio:
new rampa = CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
MovePlayerObject(playerid,rampa,952.399627,520.739990,63.018697,5.0);
Sposta l'oggetto "rampa" visibile solo al playerid dalla posizione (175.399627,2552.739990,19.018697) alla posizione (952.399627,520.739990,63.018697) a velocità: 5.0.
StopPlayerObject(playerid,objectid);
Ferma lo spostamento dell'oggetto attivato tramite MoveObject per il playerid.
playerid : l'ID del player al quale è stato creato l'oggetto
objectid : Leggi sopra
Esempio:
new rampa = CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
MovePlayerObject(playerid,rampa,952.399627,520.739990,63.018697,5.0);
SetTimer("STOP",5000,false);
forward STOP();
public STOP()
{
StopPlayerObject(playerid,rampa);
}
Dopo aver creato la rampa con new rampa = CreatePlayerObject ecc.. muovo la rampa solo per il playerid nella posizione (952.399627,520.739990,63.018697) a velocità: 5.0, attivo il Timer "STOP" e dopo 5 secondi (5000 millisecondi) si attiva la funzione STOP, che permette di stoppare il movimento dell'Object
AttachObjectToPlayer(objectid,playerid,Float:offsetx,Float:offsety,Float:offsetz,Float:rx,Float:ry,Float:rz);
Attacca letteralmente un oggetto al determinato playerid
objectid : Leggi sopra
playerid : ID del player che avrà attccato l'oggetto a sè
Float:offsetx : Distanza tra il playerid e l'oggetto secondo la coordinata X
Float:offsety : Distanza tra il playerid e l'oggetto secondo la coordinata Y
Float:offsetz : Distanza tra il playerid e l'oggetto secondo la coordinata Z
Float:rx : Rotazione X tra il playerid e l'oggetto
Float:ry : Rotazione Y tra il playerid e l'oggetto
Float:rz : Rotazione Z tra il playerid e l'oggetto
Esempio:
new rampa = CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
AttachObjectToPlayer(rampa,playerid,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000);
Crea una rampa sopra al player (1 metro sopra al PG) e ogni volta che il playerid si sposta la rampa lo segue restando sempre a +10 rispetto alla sua Coordinata Z
AttachPlayerObjectToPlayer(objectplayer,objectid,attachplayer,Float:offsety,Float:offsetz,Float:rx,Float:ry,Float:rz);
Attacca letteralmente un oggetto creato ad un determinato playerid(objectplayer), all'attachplayer.
objectplayer : L'ID del player al quale è stato creato l'oggetto
objectid : Leggi sopra
attachplayer : L'ID del player al quale si vuol attaccare l'oggetto
Float:offsetx : Distanza tra il playerid e l'oggetto secondo la coordinata X
Float:offsety : Distanza tra il playerid e l'oggetto secondo la coordinata Y
Float:offsetz : Distanza tra il playerid e l'oggetto secondo la coordinata Z
Float:rx : Rotazione X tra il playerid e l'oggetto
Float:ry : Rotazione Y tra il playerid e l'oggetto
Float:rz : Rotazione Z tra il playerid e l'oggetto
Esempio:
new rampa = CreatePlayerObject(playerid,1634,175.399627,2552.739990,19.018697,742.000000,720.000000,498.000000);
AttachPlayerObjectToPlayer(3,rampa,8,0.000000,0.000000,1.000000,0.000000,0.000000,0.000000);
Crea una rampa visibile solo dall'ID 3 sopra all'ID 8 (1 metro sopra al PG) e ogni volta che l'ID 8 si sposta, l'ID 3 vede la rampa che segue l'ID 8 a +10 rispetto alla coordinate Z dell'ID 8.
VIETATA LA COPIA PARZIALE O TOTALE DELLA GUIDA SENZA L'ESPLICITO PERMESSO DEL CREATORE || OxiDe
//============ www.gta-expert.it ==============
Pagina 1 di 1
[GUIDA] Includes || a_objects.inc
Pagina 1 di 1