GTA-Expert Forum: [GUIDA] Thread, labels e condizioni - GTA-Expert Forum

Salta al contenuto

  • (2 Pagine)
  • +
  • 1
  • 2
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[GUIDA] Thread, labels e condizioni

#1 L'utente è offline   ~>Snake95<~ 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1253
  • Iscritto il: 06/02/08
  • GTA Preferito:Sconosciuto

Inviato il 10 maggio 2009 - 16:06

I thread sono come una finestra di windows, non hanno bisogno di niente, perchè lavorano da soli, sono usati sopratutto per le missioni.
NB: In uno script non è possibile crearne più di uno.
Ora vediamo come si crea un thread:
- Thread.
004F: create_thread @label
004E: end_thread


Analizziamo il codice:
create_thread : crea un thread collegato a un label.
end_thread : chiudiamo il thread specificato sopra.
Ora, verrà la parte vera e propria del thread
:
:label
03A4: name_thread 'LABEL'

:LABEL_1
wait 250
if
0AB0: key_pressed 8
else_jump @LABEL_1
jump @LABEL_2

:LABEL2
wait 100
01E3: text_1number_styled 'M_PASSED' 0 5000 ms 1 // MISSION PASSED! 

Analizziamo il codice riportato sopra:

:label : Label del thread. ( vedi sotto le sue funzioni )
name_thread 'LABEL' : è il nome del thread, i label creati entro di esso verranno rinominati in LABEL_NUMEROSEQUENZA.
Le altre funzioni sono dei label, leggi sotto per la spiegazione.
Questo qui sopra è un thread, se io schiaccio il tasto 8 in game ( SPRINT ) mi comparirà la scritta MISSION PASSED!. Ora che vi ho fatto un esempio dei thread, passiamo a i label.
- Labels.
I Labels sono delle semplici FUNZIONI che vengono eseguite nel tempo che deciderete.
Esempio:
:LABEL1
wait 250
if
Pickup.Picked_up($PICKUP)
jump_if_false @LABEL1
Actor.Health($PLAYER_ACTOR) = 250

Analizziamo:
:LABEL1 : Nome del label, potete dargli qualsiasi nome basta solo che ricordate di cambiarlo nei jump, else_jump e etc.
wait 250 : attende 250 millescondi prima di eseguire le azioni di sotto, 1000 = un secondo, 10000 = dieci secondi, 60000 = 1 minuto.
if : Condizione spiegata sotto.
Pickup.Picked_up($PICKUP) : Controlla se la variabile $PICKUP pickup è stato raccolto.
jump_if_false @LABEL1 : Condizione spiegata sotto.
Actor.Health($PLAYER_ACTOR) = 250 : Dà all'attore $PLAYER_ACTOR ( CJ ) 250 HP di vita.
Questo label, controlla ogni 250 millesecondi se il giocatore ha preso il pickup $PICKUP e dà 250 HP se è stato preso, se non è stato preso ricontrolla andando di nuovo a LABEL1.
- Condizioni IF, IF AND, IF OR, JUMP e ELSE_JUMP.
Le condizioni sono molto importanti per chi crea mod, in quanto verificano delle cose.
IF: Determina se una sola cosa è accaduta, esempio controlla se il giocatore è morto:
if
Actor.Dead($PLAYER_ACTOR)

IF AND: Controlla se 2 o più cose sono accadute, esempio controlla se il player stà guidando e se il veicolo ha l'idraulica:
if and
Actor.Driving($PLAYER_ACTOR)
Car.HasHydraulics($AUTO)

IF OR: Controlla se più cose sono accadute, senza farci caso a quelle che non lo sono. Esempio controlla se le porte dei due garage sono aperti:
if or:
03B0: garage 'BODLAWN' door_open
03B0: garage 'BODLAST' door_open
jump_if_false: @LABEL1

IF NOT: controlla se una cosa non lo è, esempio controlla se il carattere del player non è aggressivo:
if
82E0: not is_char $PLAYER_ACTOR aggressive

NB: l'opzione not cambia l'opcodes iniziale: lo 0 con l'8, guarda sotto:
SENZA NOT:
02E0: is_char $PLAYER_ACTOR aggressive

CON NOT:
82E0: not is_char $PLAYER_ACTOR aggressive

Il parametro da cambiare è sempre il primo valore.
JUMP: Và subito a un label, esempio scrive MISSION PASSED se schiaccio SPRINT in modo veloce:
:LABEL1
wait 250
if 
0AB0: key_pressed: 8
jump_if_false @LABEL1
jump @LABEL2

:LABEL2
wait 100
01E3: text_1number_styled 'M_PASSED' 0 5000 ms 1 // MISSION PASSED! 

Così da un label si passa ad un altro.
JUMP_IF_FALSE: Se una cosa non lo è passa a un altro label, esempio dobbiamo caricare il modello #M4 e non lo è stato caricato:
:CARICA
wait 250
Model.Load(#M4)

:CONTROLLA
wait 250
if
Model.Available(#M4)
jump_if_false @CARICA
jump @DAIARMA

:DAIARMA 
wait 100
01B9: give_actor $ATTORE weapon 24 ammo 9999

Queste potete considerarle come basi per le vostre mods.
Se avete dubbi, rispondete a questo post.

Guida by. ~>Snake95<~ a.k.a _GriLLeX_P4E.
Immagine Postata
0

#2 L'utente è offline   Fabio206 

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

Inviato il 10 maggio 2009 - 16:09

Ottima guida, come l'altra. Peccato ci siano pochi scripter italiani in giro..

Metto importante ;)
0

#3 L'utente è offline   ~>Snake95<~ 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1253
  • Iscritto il: 06/02/08
  • GTA Preferito:Sconosciuto

Inviato il 10 maggio 2009 - 16:13

Hai ragione, se qualcuno stà iniziando a scriptare gli servirà :asd:
Immagine Postata
0

#4 L'utente è offline   VinCs El Pocho 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1110
  • Iscritto il: 29/03/09

Inviato il 11 maggio 2009 - 12:54

ma come faccio ad creare un thread inserendo create_thread @label?
CANCEL.LT

Visita il forum: http://paradisecityrp.tk/

Paradise City Roleplay:
Nome: Curtis_Smoke
Città: Los Santos
Fazione: Cosanostra
Rank: Padrino
Anni: 21
Lavoro: Drug Dealer
Veicoli: Sultan, ZR, Buffalo
Livello: 3
0

#5 L'utente è offline   ~>Snake95<~ 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1253
  • Iscritto il: 06/02/08
  • GTA Preferito:Sconosciuto

Inviato il 11 maggio 2009 - 13:16

Sopra il label:

Quote

004F: create_thread @label
004E: end_thread

Di sotto metti:

Quote

:label
03A4: name_thread 'LABEL'

:LABEL_1
wait 250
if
0AB0: key_pressed 8
else_jump @LABEL_1
jump @LABEL_2

:LABEL2
wait 100
01E3: text_1number_styled 'M_PASSED' 0 5000 ms 1 // MISSION PASSED!

Era spiegato sopra comunque...
Immagine Postata
0

#6 L'utente è offline   VinCs El Pocho 

  • Cacciatore di taglie
  • Gruppo: Utenti
  • Messaggi: 1110
  • Iscritto il: 29/03/09

Inviato il 11 maggio 2009 - 13:37

Non l'avevo capito cmq grazie
CANCEL.LT

Visita il forum: http://paradisecityrp.tk/

Paradise City Roleplay:
Nome: Curtis_Smoke
Città: Los Santos
Fazione: Cosanostra
Rank: Padrino
Anni: 21
Lavoro: Drug Dealer
Veicoli: Sultan, ZR, Buffalo
Livello: 3
0

#7 L'utente è offline   techno 

  • Vandalo
  • Gruppo: Utenti
  • Messaggi: 53
  • Iscritto il: 26/06/09

Inviato il 14 luglio 2009 - 20:43

scusa non ho capito bene il jump_if_false e tutte le altre condizioni IF, IF AND, IF OR, JUMP e ELSE_JUMP come funzionano?
grazie :blush:
0

#8 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1629
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 14 luglio 2009 - 23:43

Innanzitutto, quelli che hai elencato sono comandi, le condizioni, invece, sono quelle che vengono controllate da tali comandi. L'istruzione "if", che in italiano significa "se", indica se una condizione avverrà o meno. "if and" constata che se due o più condizioni sono false od entrambe vere, una falsa ed una vera o viceversa, avverrà una determinata cosa. "if or" determina che lo script continuerà se una delle due o più condizioni è, solo ed esclusivamente, vera (mi riferisco anche nel caso in cui se è vero che una condizione non è vera). "else jump" o "jump if false", salterà fino al label indicato se le condizioni si avvereranno o meno. "jump", invece, salta al label prestabilito indipendentemente da qualsiasi condizione.

Per essere false, è necessario che le condizioni siano precedute da "not". Per dichiarare il label verso cui saltare, utilizzare @label dopo "else jump" o jump".
Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

#9 L'utente è offline   _Zero_ 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 254
  • Iscritto il: 23/01/09
  • Provenienza:Puglia
  • GTA Preferito:GTA: San Andreas

Inviato il 10 settembre 2009 - 16:36

Ciao, qualcuno mi sa dire cosa significa il codice davanti ad ogni funzione e a cosa serve?

Quote

03A4: name_thread 'LABEL'

Immagine Postata

Storyline completate:
GTA II - GTA III - GTA Vice city - Gta San Andreas - Gta Libery City Stories
0

#10 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1629
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 10 settembre 2009 - 18:24

La parte essenziale di un opcode sono la coppia di 4 numeri ed i parametri che esso presenta. Le varie diciture che puoi riscontrare sono solo commenti per rendere chiaro quello che producono. :P
Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

#11 L'utente è offline   SteVePontis 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 554
  • Iscritto il: 27/09/09
  • GTA Preferito:GTA IV

Inviato il 30 settembre 2009 - 14:33

Scusate ma non ho capito niente. Mi rassegno... :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo: :noo:
Firma fuori dai limiti del regolamento.
0

#12 L'utente è offline   _Zero_ 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 254
  • Iscritto il: 23/01/09
  • Provenienza:Puglia
  • GTA Preferito:GTA: San Andreas

Inviato il 01 ottobre 2009 - 16:48

Steve potresti essere più chiaro così possiamo aiutarti? Comunque c'è un requisito per creare mod che non trovi scritto nelle guide...bisogna usare un minimo di logica. Adesso non è per fare il presuntuoso ma se sei ancora piccolo (e per piccolo intendo x<95') è difficile avere queste capacità logiche (ecco a cosa serve matematica). Ripeto, non prendetemi per presuntuoso :) ma è una cosa che viene constatata spesso e volentieri.

:) Saluti.
Immagine Postata

Storyline completate:
GTA II - GTA III - GTA Vice city - Gta San Andreas - Gta Libery City Stories
0

#13 L'utente è offline   Wesser 

  • Sicario
  • Gruppo: Utenti
  • Messaggi: 1629
  • Iscritto il: 24/11/07
  • ID PSN:Wesser92
  • ID Social Club:Temutocle
  • Provenienza:Matera, Basilicata, Italia Meridionale, Europa Occidentale, Pianeta Terra, Sistema Solare, Via Lattea, Universo?
  • GTA Preferito:GTA: San Andreas

Inviato il 01 ottobre 2009 - 17:28

Ben detto, ma devo discostarmi un po' dal tuo discorso. L'importante è crederci, la matematica, per le basi del coding, non è un requisito richiesto. Magari viene usata quando davvero bisogna svolgere dei calcoli con un intreccio di opcode matematici, ma ad essi possiamo concedere tempo. ;)

Come base, intendo che è necessario comprendere almeno la struttura senza mangiarsi le dita ed affrontare l'argomento con calma. Il programmatere vero e proprio, DEVE averla per esercitare la sua professione. :P

L'età è molto relativa. :embè:
Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

#14 L'utente è offline   _Zero_ 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 254
  • Iscritto il: 23/01/09
  • Provenienza:Puglia
  • GTA Preferito:GTA: San Andreas

Inviato il 01 ottobre 2009 - 18:14

Intendevo che la matematica serve a sviluppare la logica, la vera matematica si incomincia alle superiori (specialmente in 3°, geometria analitica o.o per esperienza :asd: ).
Immagine Postata

Storyline completate:
GTA II - GTA III - GTA Vice city - Gta San Andreas - Gta Libery City Stories
0

#15 L'utente è offline   SteVePontis 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 554
  • Iscritto il: 27/09/09
  • GTA Preferito:GTA IV

Inviato il 06 novembre 2009 - 15:54

snake hai dimenticato la condizione jf! ti prego, aiutami almeno in questo, perkè ogni volta faccio gli script bene ma poi l'unica cosa ke mi incasina sono i jump vari!!!
Firma fuori dai limiti del regolamento.
0

#16 L'utente è offline   Saint Jake 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 10887
  • Iscritto il: 30/03/09
  • Provenienza:The Glitch City
  • GTA Preferito:GTA: San Andreas

Inviato il 06 novembre 2009 - 15:58

Quote

Originally posted by SteVePontis@06/11/09 - 15:54
snake hai dimenticato la condizione jf! ti prego, aiutami almeno in questo, perkè ogni volta faccio gli script bene ma poi l'unica cosa ke mi incasina sono i jump vari!!!

Jf @ ---> Jump If False
Se la/le condizione/i sopracitate non sono vere, allora la lettura del codice si sposta nel label indicato dal "jf", altrimenti prosegue normalmente sotto di esso.

Se ti incasini con i Jumps, mi pare ovvio che non li fai poi così bene gli script :rotfl:
Basta ragionare eh: i Jump mandano la lettura del codice in un punto, e la lettura andrà avanti da lì.
Quindi a seconda di ciò che deve fare il codice, dovrai fagli leggere determinati comandi.
E' più semplice a farsi che a spiegarsi: basta usare un minimo di logica :sese:
/
"Alme Sol, curru nitido diem qui promis et celas aliusque et idem nasceris, possis nihil urbe Roma visere maius"

/
0

#17 L'utente è offline   SteVePontis 

  • Ladro
  • Gruppo: Utenti
  • Messaggi: 554
  • Iscritto il: 27/09/09
  • GTA Preferito:GTA IV

Inviato il 06 novembre 2009 - 16:02

Quote

Originally posted by _Zero_@01/10/09 - 18:14
Intendevo che la matematica serve a sviluppare la logica, la vera matematica si incomincia alle superiori (specialmente in 3°, geometria analitica o.o per esperienza :asd: ).

zero cmq io sono del 96 e ormai ho capito tutto stò ambaradan. solo ke snake nn ha messo la guida per la condizione jf ed else_jump
Firma fuori dai limiti del regolamento.
0

#18 L'utente è offline   Saint Jake 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 10887
  • Iscritto il: 30/03/09
  • Provenienza:The Glitch City
  • GTA Preferito:GTA: San Andreas

Inviato il 06 novembre 2009 - 16:10

Quote

Originally posted by SteVePontis+06/11/09 - 16:02

Quote

(SteVePontis @ 06/11/09 - 16:02)
-_Zero_
@01/10/09 - 18:14
Intendevo che la matematica serve a sviluppare la logica, la vera matematica si incomincia alle superiori (specialmente in 3°, geometria analitica o.o per esperienza :asd: ).

zero cmq io sono del 96 e ormai ho capito tutto stò ambaradan. solo ke snake nn ha messo la guida per la condizione jf ed else_jump [/b]

La struttura di jumps e labels è la cosa + importante: se non sai usare i Jumps, non direi che hai capito tutto l'ambaradan :embè:
/
"Alme Sol, curru nitido diem qui promis et celas aliusque et idem nasceris, possis nihil urbe Roma visere maius"

/
0

#19 L'utente è offline   _Zero_ 

  • Teppista
  • Gruppo: Utenti
  • Messaggi: 254
  • Iscritto il: 23/01/09
  • Provenienza:Puglia
  • GTA Preferito:GTA: San Andreas

Inviato il 06 novembre 2009 - 18:08

Saint il jf e l'else jump non hanno molta differenza o sbaglio? Visto che comunque entrambi conducono a un label nel caso la condizione sopra di esse non si avverino...
Immagine Postata

Storyline completate:
GTA II - GTA III - GTA Vice city - Gta San Andreas - Gta Libery City Stories
0

#20 L'utente è offline   Saint Jake 

  • Boss
  • Gruppo: Moderatori
  • Messaggi: 10887
  • Iscritto il: 30/03/09
  • Provenienza:The Glitch City
  • GTA Preferito:GTA: San Andreas

Inviato il 06 novembre 2009 - 18:12

Quote

Originally posted by _Zero_@06/11/09 - 18:08
Saint il jf e l'else jump non hanno molta differenza o sbaglio? Visto che comunque entrambi conducono a un label nel caso la condizione sopra di esse non si avverino...

In teoria fanno la stessa cosa :sese:
Beh, io uso JF perchè è più veloce da scrivere :rotfl:
/
"Alme Sol, curru nitido diem qui promis et celas aliusque et idem nasceris, possis nihil urbe Roma visere maius"

/
0

  • (2 Pagine)
  • +
  • 1
  • 2
  • 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