GTA-Expert Forum: [GUIDA]Come attaccare oggetti su un Player - GTA-Expert Forum

Salta al contenuto

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

[GUIDA]Come attaccare oggetti su un Player Una guida sull'uso di questa funzione con tanto di coordinate

#1 L'utente è offline   mitosking 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 582
  • Iscritto il: 10/11/10
  • GTA Preferito:GTA IV

Inviato il 14 febbraio 2011 - 19:31

Salve a tutti. Questa è la mia prima guida su gta-expert. Spero che possa esservi utile ;).

INTRODUZIONE

In questa guida verra spiegato l'uso del SetPlayerAttachedObject, RemovePlayerAttachedObject ed IsPlayerAttachedObjectSlotUsed. Queste tre funzioni fanno parte solo del sa-mp 0.3c. Per la versione 0.3b, cambiano il nome in SetPlayerHoldingObject eccetera (hanno sintassi diverse, quindi non usate la stessa sintassi degli AttachedObject).

INIZIO GUIDA

Prima di iniziare, dobbiamo conoscere la sintassi delle tre funzioni.

SetPlayerAttachedObject(playerid, index, modelid, bone, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)

playerid = Id del player a cui attaccare l'oggetto. Come voi sapete, playerid equivale al player che "compie l'azione".

index = L'index è una particolarità. Si tratta di uno "slot". Gli index sono 5: da 0 a 4. Spiegherò dopo.

modelid = E' l'id dell'oggetto da attaccare al nostro player. Ne parleremo in seguito.

bone = Bone è una particolarità. Si tratta della parte del corpo a cui attaccare l'object. Hanno un ID da 0 a 18, ne parleremo in seguito.

Tutto il resto sono le coordinate da prendere.

RemovePlayerAttachedObject(playerid, index)

playerid = La medesima cosa che ho detto per il SetPlayerAttachedObject

index = E', quindi, lo slot usato.

IsPlayerAttachedObjectSlotUsed(playerid, index)

playerid = Sempre la stessa cosa detta per SetPlayerAttachedObject e RemovePlayerAttachedObject

index = E', come ho detto con le precedenti funzioni, lo slot usato.


Bene, adesso che conosciamo la sintassi delle funzioni, possiamo cominciare a spiegare del loro uso. SetPlayerAttachedObject serve ad attaccare il nostro oggetto. Quindi, noi, dovremmo conoscere: ID dell'oggetto, Bone (che è la parte del corpo) e decidere quale slot usare. Per questo vi propongo un FS molto utile trovato su SA-MP.com. Premetto che l'autore non sono io! Il suo nome è Hold Studio ed è molto conosciuto da chi se ne intende di oggetti attaccati. Esso è in grado di trovare la ID oggetto, la Bone e le coordinate esatte per sistemare il vostro oggetto.

N.B: Ovviamente Pawn non vi da la vita facile. Se voi mettete come Bone la "Testa", l'oggetto verra messo in una posizione alquanto brutta e da sistemare. Tutto questo, senza Hold Studio (o altri FilterScript), dovrebbe essere fatto manualmente.

Hold Studio.pwn (Versione Testo)
Hold Studio.amx (Versione Download)

Il suo uso, all'inizio, può sembrare molto difficile. E' composto da diversi comandi:

/hshelp
/info
/saveinfo
/search
/hold
/stophold
/model
/bone
/x
/y
/z
/rx
/ry
/rz
/sx
/sy
/sz

Sembreranno molti, ma non ci servono tutti. I piu importanti sono:

/hshelp ~ Ti elenca tutti i comandi disponibili.
/saveinfo ~ Il comando piu importante: Salva le coordinate, spiegherò in seguito.
/search ~ Cerca l'ID dell'oggetto che vi serve (P.S: Bisogna conoscerne almeno il nome).
/hold ~ Serve ad attaccare l'oggetto al vostro corpo per sistemare Coordinate e tutto.
/stophold ~ Serve a togliere un oggetto attaccato.
/bone ~ Serve a decidere a quale parte del corpo attaccare l'oggetto.
/x, /y, /z, /rx, /ry, /rz ~ Sono le coordinate di posizione e di rotazione.

Il tutto è interattivo! Esempio: Se noi vogliamo cambiare la coordinata X, basterà digitare /x e, con Num4 e Num6 è possibile cambiarne la posizione. Così anche /y, /z, /rx, /ry ed /rz. I comandi /sx, /sy ed /sz sono per il "Size" (grandezza). Ma non risultano molto utili, visto che non cambiano quasi niente (questo non vi obbliga a non usarli).
Se tutto questo non vi è chiaro, vi faccio un esempio: Mettiamo caso che voglia mettere un M4 nella schiena. Basta fare questi passaggi.

1) Digito /search;
2) Nella barra di testo, digito m4;
3) Mi comparirà l'oggetto interessato in lista con l'ID Object. Usciamo dal Menù;
4) Digitiamo /hold <idobject>;
5) A questo punto il nostro M4 verrà messo al centro del nostro corpo. Adesso digitate /bone e, sempre con Num4 e Num6, cambiare le parti del Corpo. Se non sapete i nomi, o siete un po' arrugginiti con l'inglese, ecco a voi:

0 - Questo ID non va usato. Causa: Crash del Server (non so il perché).
1 - Schena.
2 - Testa.
3 - Braccio Sinistro.
4 - Braccio Destro.
5 - Mano Sinistra.
6 - Mano Destra.
7 - Gamba Sinistra.
8 - Gamba Destra.
9 - Piede Sinistro.
10 - Piede Destro.
11 - Polpaccio Destro.
12 - Polpaccio Sinistro.
13 - Avambraccio Sinistro.
14 - Avambraccio Destro.
15 - Clavicola Sinistra.
16 - Clavicola Destra.
17 - Collo.
18 - Mandibola.


6)
Non vi resta che digitare i comandi delle coordinate (che non sto a ripetere) e sistemare l'object al posto giusto.
7) Appena sarete soddisfatti del vostro lavoro, digitate il comando /salvainfo e recatevi nella cartella scriptfiles presente nella cartella principale del server. Troverete un file chiamato hold-studio.pwn dove al suo interno ci sarà un codice formato da SetPlayerAttachedObject con le coordinate, Bone, ID Object e tutto quanto.

N.B: L'index verrà sempre settato a 0. Come ho già detto, l'index varia da 0 a 4. Ricordate che, se due object uguale o diversi usano uno stesso Index, fanno interferenza e vedrete solamente un object attaccato. Quindi, prima di applicarlo alla vostra GM, assicuratevi che, durante l'uso di un determinato object, non ci sia un altro object con suo stesso index.

Dopo una lunga guida sul SetPlayerAttachedObject, passiamo al RemovePlayerAttachedObject che è molto più semplice e spiegabile in poche parole. Come ho già detto, la sua sintassi è RemovePlayerAttachedObject(playerid, index). Per rimuovere, ad esempio, il nostro M4 dall'index "2", basterà scrivere RemovePlayerAttachedObject(playerid, 2).

IsPlayerAttachedObjectSlotUsed serve, invece, a verificare se in quell'index, è presente un oggetto attaccato. La sua sintassi, come già spiegato sopra, è IsPlayerAttachedObjectSlotUsed(playerid, index). Se, come il RemovePlayerAttachedObject, usiamo l'index "2", basterà utilizzare lo script IsPlayerAttachedObjectSlotUsed(playerid, 2).

Esempio sul suo uso:

if(IsPlayerAttachedObjectSlotUsed(playerid, 2)) return RemovePlayerAttachedObject(playerid, 2);



Con questo ho terminato la mia guida. Spero che sia stata chiara. So di essermi prolungato un po' troppo in certi parametri, ma credo che sia il miglior modo per far capire le cose in modo semplice, ma allo stesso tempo approfondito.


CREDITI


Guida interamente scritta da mitosking... Vietata la copia parziale o totale senza il mio permesso.

Si ringrazia Slice per l'FS Hold Studio e per la creazione del video sul suo uso.

Link Video -> Clicca qui per il Video

Messaggio modificato da mitosking il 24 febbraio 2011 - 21:08

Mitosking

Scripter dal 05/01/2011
0

#2 L'utente è offline   (Rocco91) 

  • Cleptomane
  • Gruppo: Utenti
  • Messaggi: 121
  • Iscritto il: 11/01/11
  • GTA Preferito:GTA: San Andreas

Inviato il 15 febbraio 2011 - 16:18

Molto bella complimenti!! :D
Firma fuori dai limiti del regolamento. Codice originale:

[IMG]http://img-s3-01.mytextgraphics.com/myrainbowtext/2011/03/19/5508278003eb1b6eaa05fd02d15250a0.gif[/IMG]
===========Programmi===================
[url="http://www.mediafire.com/?e48fuq1efv391ki"]SetPlayerAttachedObject[Programma] by Rocco aka TheRoccoNat[/url]
[url="http://www.mediafire.com/?m148641gvqbe5f5"]SetPlayerCheckpoint [Programma] by Rocco91[/url]
[url="http://www.mediafire.com/?6j223gedp6jptol"]AddPlayerClass [Programma] by Rocco91 and Farmy[/url]

[url="http://www.shareyouraim.com"][img]http://www.shareyouraim.com/at_7320535.png[/img][/url]                                                [img]http://www.shareyouraim.com/at_8530822.png[/img][url="http://www.shareyouraim.com"][img]http://www.shareyouraim.com/at_3599330.png[/img][/url][img]http://www.shareyouraim.com/at_8144596.png[/img][img]http://www.shareyouraim.com/at_6095090.png[/img][url="http://www.shareyouraim.com"][img]http://www.shareyouraim.com/at_7221197.png[/img][/url]

[size="3"]SAMP Server:  [/size]
[size="3"]HOST1 RP: 93.190.143.129:9999 {Password} [/size]
[size="3"]HOST2 DM: 93.190.143.129:2455 {Chiuso}[/size]
[size="3"]HOST3 STUNT: 81.30.152.27:8832 {Chiuso}
Forum: [url="http://italianroleplay.forumcommunity.net/"]http://italianrolepl...mcommunity.net/[/url][/size]
=====================================
0

#3 L'utente è offline   mitosking 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 582
  • Iscritto il: 10/11/10
  • GTA Preferito:GTA IV

Inviato il 15 febbraio 2011 - 16:45

Grazie :D
Mitosking

Scripter dal 05/01/2011
0

#4 L'utente è offline   Peppinux aka Peppe_Stasu 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 2056
  • Iscritto il: 16/04/10
  • GTA Preferito:GTA: San Andreas

Inviato il 15 febbraio 2011 - 16:46

Bella
0

#5 L'utente è offline   (Rocco91) 

  • Cleptomane
  • Gruppo: Utenti
  • Messaggi: 121
  • Iscritto il: 11/01/11
  • GTA Preferito:GTA: San Andreas

Inviato il 15 febbraio 2011 - 19:52

Almeno non sparlo io mitosking xD!!! Quando il lavoro è fatto bene lo dico !!
Firma fuori dai limiti del regolamento. Codice originale:

[IMG]http://img-s3-01.mytextgraphics.com/myrainbowtext/2011/03/19/5508278003eb1b6eaa05fd02d15250a0.gif[/IMG]
===========Programmi===================
[url="http://www.mediafire.com/?e48fuq1efv391ki"]SetPlayerAttachedObject[Programma] by Rocco aka TheRoccoNat[/url]
[url="http://www.mediafire.com/?m148641gvqbe5f5"]SetPlayerCheckpoint [Programma] by Rocco91[/url]
[url="http://www.mediafire.com/?6j223gedp6jptol"]AddPlayerClass [Programma] by Rocco91 and Farmy[/url]

[url="http://www.shareyouraim.com"][img]http://www.shareyouraim.com/at_7320535.png[/img][/url]                                                [img]http://www.shareyouraim.com/at_8530822.png[/img][url="http://www.shareyouraim.com"][img]http://www.shareyouraim.com/at_3599330.png[/img][/url][img]http://www.shareyouraim.com/at_8144596.png[/img][img]http://www.shareyouraim.com/at_6095090.png[/img][url="http://www.shareyouraim.com"][img]http://www.shareyouraim.com/at_7221197.png[/img][/url]

[size="3"]SAMP Server:  [/size]
[size="3"]HOST1 RP: 93.190.143.129:9999 {Password} [/size]
[size="3"]HOST2 DM: 93.190.143.129:2455 {Chiuso}[/size]
[size="3"]HOST3 STUNT: 81.30.152.27:8832 {Chiuso}
Forum: [url="http://italianroleplay.forumcommunity.net/"]http://italianrolepl...mcommunity.net/[/url][/size]
=====================================
0

#6 L'utente è offline   Fabio206 

  • Padrino
  • Gruppo: Admin
  • Messaggi: 72430
  • Iscritto il: 05/12/05
  • GTA Preferito:GTA III

Inviato il 15 febbraio 2011 - 19:53

Visualizza Messaggi(Rocco91), il 15 febbraio 2011 - 19:52 ha detto:

Almeno non sparlo io mitosking xD!!! Quando il lavoro è fatto bene lo dico !!


Sì ma basta con questa storia. E nel pm mi sembrava di essere stato chiaro.
0

#7 L'utente è offline   Crazy.Man 

  • Vandalo
  • Gruppo: Utenti
  • Messaggi: 73
  • Iscritto il: 26/02/11
  • GTA Preferito:GTA: San Andreas

Inviato il 21 marzo 2011 - 13:42

Visualizza MessaggiFabio206, il 15 febbraio 2011 - 19:53 ha detto:

Visualizza Messaggi(Rocco91), il 15 febbraio 2011 - 19:52 ha detto:

Almeno non sparlo io mitosking xD!!! Quando il lavoro è fatto bene lo dico !!


Sì ma basta con questa storia. E nel pm mi sembrava di essere stato chiaro.



OT: Ti sei dimenticato di dire ... Non rispondete a questo OT con un altro messaggio OT xD Immagine PostataImmagine Postata Immagine Postata

Messaggio modificato da Crazy.Man il 21 marzo 2011 - 13:42

Non ho un bel ----- da dire! :\
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