GTA-Expert Forum: [GUIDA] Includes || a_objects.inc - GTA-Expert Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[GUIDA] Includes || a_objects.inc

#1 L'utente è offline   OxiDe 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 2515
  • Iscritto il: 03/01/08
  • Provenienza:Imola
  • GTA Preferito:GTA: San Andreas

Inviato il 27 gennaio 2009 - 14:20

//============ 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 ==============
0

#2 L'utente è offline   g.tommys 

  • Criminale
  • Gruppo: Utenti
  • Messaggi: 833
  • Iscritto il: 19/10/08

Inviato il 22 febbraio 2009 - 10:00

L0l Bello l'attac object!
Bravo mi serviva cmq :rolleyes:
Immagine Postata
0

#3 L'utente è offline   zeroakahome 

  • Borsaiolo
  • Gruppo: Utenti
  • Messaggi: 85
  • Iscritto il: 22/02/09

Inviato il 27 febbraio 2009 - 14:47

una domanda, ma come faccio a trovare le coordinate e la rotazione per creare le rampe?

E poi a me MTA nn funziona :(
Immagine Postata
0

#4 L'utente è offline   OxiDe 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 2515
  • Iscritto il: 03/01/08
  • Provenienza:Imola
  • GTA Preferito:GTA: San Andreas

Inviato il 27 febbraio 2009 - 18:06

Atraverso un map editor, di solito si usa quello di mta:race oppure il medit.
0

#5 L'utente è offline   zeroakahome 

  • Borsaiolo
  • Gruppo: Utenti
  • Messaggi: 85
  • Iscritto il: 22/02/09

Inviato il 27 febbraio 2009 - 18:37

Quote

Originally posted by OxiDe@27/02/09 - 18:03
Atraverso un map editor, di solito si usa quello di mta:race oppure il medit.

o skarikato e installato med.

ma come si usa? c'è una guida?

EDIT:

Ho trovato qui in Gta-Expert ;)
Immagine Postata
0

#6 L'utente è offline   zeroakahome 

  • Borsaiolo
  • Gruppo: Utenti
  • Messaggi: 85
  • Iscritto il: 22/02/09

Inviato il 27 febbraio 2009 - 19:42

Ma dove va messo il CreateObject?

nella gm?

o ne a_object.inc?

Grazie
Immagine Postata
0

#7 L'utente è offline   OxiDe 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 2515
  • Iscritto il: 03/01/08
  • Provenienza:Imola
  • GTA Preferito:GTA: San Andreas

Inviato il 27 febbraio 2009 - 21:51

Nella GM, sotto ad OnGameModeInit
0

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

1 utenti stanno leggendo questa discussione
0 utenti, 1 ospiti, 0 utenti anonimi