GTA-Expert Forum: [GUIDA] Alcuni opcodes delle CLEO - GTA-Expert Forum

Salta al contenuto

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

[GUIDA] Alcuni opcodes delle CLEO

#1 L'utente è offline   SteVePontis 

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

Inviato il 24 ottobre 2009 - 17:10

Ciao ragazzi. Voglio chiarire che so benissimo di non essere bravo e di essere semplicemente NIENTE, ma vorrei fare una pikkola guida su alcuni opcode di Sanny Builder sconosciuti. Non è una guida ke insegna a fare CLEO, è una guida che permette opzioni agiguntive ai propri SCRIPT.
Iniziamo dalle funzioni 'AS_actor'.
Di funzioni così ne esistono moltissime, vi spiegherò le più utili.

Ricordate che usati nelle vostre missioni, vanno inseriti nel secondo thread, quindi qua:
:MISSIONE_105
wait 0 
if and
   Model.Available(#SPECIAL01)
   Model.Available(#FLAME)
jf @MISSIONE_105 
1@ = Actor.Create(Special, #SPECIAL01, 1926.841, -1399.506, 13.57031)
Actor.Angle(1@) = 289.7
4@ = Marker.CreateAboveActor(1@)
Actor.Health(1@) = 5000
04D8: set_actor 1@ drowns_in_water 1 
0446: set_actor 1@ immune_to_headshots 0 
Actor.SetImmunities(1@, 0, 0, 1, 1, 0)
01B2: give_actor 1@ weapon 23 ammo 25 // Load the weapon model before using this 
Actor.WeaponAccuracy(1@) = 80


Proprio dopo Actor.WeaponAccuracy. Potete metterne molti di AS_actor!

0850: AS_actor 95@ follow_actor $PLAYER_ACTOR

imposta che l'attore 95@ cerchi e insegui a $PLAYER_ACTOR, ossia CJ.

05E2: AS_actor 95@ kill_actor $PLAYER_ACTOR

imposta che l'attore 95@ uccida a CJ.

07E1: AS_actor @95 swim_to X Y Z

Imposta che l'attore 95@ nuoti sino ai punti che avete "registrato" con SA coords finder o col gestore coordinate di Sanny Builder (strumenti-->strumenti IDE-->gestione coordinate)


04EB: AS_actor 95@ crouch 1

imposta che l'attore 95@ si ranicchi. RIcordate che quando alla fine di un opcode vedete o 1 o 0, vale
una "regola". Infatti in alcuni opcode questa funzione serve tipo da interruttore: 1 è acceso (quindi la funzione dell'opcode parte) e 0 è spento (la funzione rimane disattivata).

0655: AS_actor 95@ look_at_object 82@ 1000 ms 

imposta che l'attore 95@ guardi l'oggetto @82 per un secondo.

05BA: AS_actor 95@ move_mouth -1 ms 

imposta che l'attore 95@ muova la bocca, ossia parli.

0729: AS_actor $PLAYER_ACTOR hold_cellphone 1

imposta che CJ parli al telefono.

05CB: AS_actor 95@ enter_car 41@ as_driver 10000 ms

imposta che l'attore 95@ entri nell'auto 41@ e guidi per 10 secondi.

05D1: AS_actor 95@ drive_car 148@ to X Y Z speed 15.0 0 model #NULL 0

imposta che l'attore 95@ guidi l'auto 148@ sino alle coordinate scelte con l'handling impostato su #NULL, ossia quello predefinito, e che il suo comportamento alla guida sia impostato a 0. Per questo tipo di parametro sul comportamento alla guida, chiamato anche 'traffic behaviour', esiste un opcodes specifico:

00AE: set_car 1@ traffic_behaviour_to 3

che imposta, in questo caso, che l'auto abbia un traffic behaviour a 3.

0633: AS_actor 95@ exit_car

imposta che l'attore 95@ esca dall'auto.


Ora passiamo ai comandi "give_actor", che, va detto, ce ne uno solo!!!
01B2: give_actor 95@ weapon 28 ammo 60

che sicuramente conoscete tutti. Dà all'attore 95 l'arma n°28 con 60 colpi. Molti non sanno i numeri delle armi. Li potete trovare nella guida di Sanny Builder.

Vediamo gli opcodes che hanno 'actor'.
00DB:   actor $PLAYER_ACTOR in_car 22@ 

controlla che cj sia nell'auto 22.

00DD:   actor $PLAYER_ACTOR driving_car_with_model #AMBULAN

controlla che cj guidi il modello di macchina #AMBULAN.

00DF:   actor $PLAYER_ACTOR driving

controlla che cj guidi.

00F2:   actor 95@ near_actor $PLAYER_ACTOR radius 20.0 20.0 45.0

controlla che l'attore 95@ sia vicino a cj in un raggio di 20 metri in X, 20 metri in Y e 45 metri in Z.

00F3:   actor $PLAYER_ACTOR near_actor 95@ radius 20.0 20.0 45.0 on_foot

controlla che cj sia vicino all'attore 95@ a piedi.

00F4:   actor $PLAYER_ACTOR near_actor 95@ radius 6.0 6.0 23.0 in_car

controlla che cj sia vicino all'attore 95@ in auto.

00FE:   actor $PLAYER_ACTOR sphere 0 in_sphere 658.0068 -1866.313 4.4537 radius 15.0 15.0 15.0

controlla che cj sia nelle coordinate 658.0068 -1866.313 4.4537 nel raggio di 15 metri in X, Y e Z.

0118:   actor 95@ dead

controlla che l'attore 95@ sia morto.

Ora vi mostrerò i più usati opcodes con 'set_car':

00A8: set_car 44@ to_psycho_driver

imposta che l'auto 44@ guidi 'male'. Questa funzione esiste anche con il trucco 'PGGOMOY', e imposta che l'auto abbia una pessima tenuta di strada.

00A9: set_car 44@ to_normal_driver 

questo opcode è tutto il contrario dell'opcode che abbiamo appena visto. Setta l'handling dell'auto 44@ a normale.

00AD: set_car 44@ max_speed_to 100.0

imposta che l'auto 44@ possa raggiungere la velocità massima di 100, misurato in KM orari.

07FF: set_car 44@ hydraulics 1

imposta che l'auto 44@ abbia l'idraulica.

0338: set_car 59@ visibility 0 

imposta che l'auto 59@ sia invisibile.

0175: set_car 22@ Z_angle_to 315.0

imposta che l'auto 22@ abbia un'angolazione a 315°.

00AE: set_car 71@ traffic_behaviour_to 3

l'opcode che abbiamo visto a inizio guida.

0506: set_vehicle_model #PONY next_variation 0 0

permette di variare il modello #PONY con, magari, diverse pubblicità
o pezzi aggiuntivi. I codici a riguardo potete trovarli nella guida di Sanny Builder in:
SCM documentation-->GTA SA-->Car Variations

0224: set_car 34@ health_to 1000

non molti sanno che pure le auto hanno una 'vita' in San Andreas. In questo opcode impostiamo che l'auto 34@ abbia la vita a 1000, che può andare ad abbassarsi con le cadute e gli incidenti. Tenete presente che, anche la vita dei modelli ha un valore composto fra
0-->9999



Ora analizziamo gli opcodes che vanno messi a fine codice. I più usati sono tre:
0A93: end_custom_thread

Chiude temporaneamente lo script, ma se avete funzioni nella vostra cleo come
[CLEO]0AB0: key_pressed 49[/CODE]
(che permette di attivare le funzioni di una parte di codice solo alla pressione di un certo tasto) allora non vale.

0ABA: end_custom_thread_named 'MISSIONE'

Chiude un determinato thread, purchè nella riga iniziale per il thread abbiate inserito l'esadecimale:
03A4


0051: return

permette di ricominciare lo script, o, in termini più specifici:
Permette di terminare un gosub e continuare con la lettura del codice che segue ad esso.




Non è granchè, ma ci ho messo impegno per farla. Se avete problemi, commentate pure. Ringrazio tanto Wesser per le correzioni. Ciao a tutti!
Firma fuori dai limiti del regolamento.
0

#2 L'utente è offline   Fabio206 

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

Inviato il 24 ottobre 2009 - 17:11

Sposto
bel lavoro ;)
0

#3 L'utente è offline   SteVePontis 

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

Inviato il 24 ottobre 2009 - 17:13

ops sezione sbagliata spostatelo se fa....dovevo mettere in modding!
Firma fuori dai limiti del regolamento.
0

#4 L'utente è offline   Fabio206 

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

Inviato il 24 ottobre 2009 - 17:15

Ho spostato nella sezione giusta tranquillo.
A Saint e Wesser l'onore di controllare che le informazioni siano giuste e specificare magari punti non chiari e/o qualcos'altro ;)
0

#5 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 24 ottobre 2009 - 21:35

Onore è una parola grossa, sono del sud ma non sono siciliano (non c'entra proprio nulla). :rotfl:

Quote

Originally posted by SteVePontis+24/10/09 - 18:10

Quote

(SteVePontis @ 24/10/09 - 18:10)
Proprio dopo Actor.WeaponAccuracy(), potete metterne molti di AS_actor, ma ragionando sull'ordine.[/b]

Il punto esatto non fa differenza ma di quale ordine parli?

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
Imposta che l'attore 95 nuoti sino alle coordnate scelte che imposterete dopo.

Le coordinate devono essere impostate inequivocabilmente prima, altrimenti il loro valore (per quanto concerne tale opcode) sarà uguale a 0 perchè viene letto, anche se pur subito, dopo. Per correttezza, il pedone è 95@ e non @95 o semplicemente 95, perchè indicano rispettivamente il label di un jump ed un valore intero. Ti invito di correggere. :sese:

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
0655: AS_actor 95@ look_at_object 82@ 1000 ms

Correggi anche quì l'handle dell'oggetto, da @82 a 82@.

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
Imposta che l'attore 95 guidi sino alle coordinate che imposterete a una velocità di 15 km\h con il modello NULL. In questo c'è lo 0 e quindi è disattivata come funzione.

Purtroppo ogni opcode è diverso da un altro e non sempre vale la stessa regola:
  • La velocità non è in km\h ma credo che sia convenzionale (da 0.0 a 60.0).

  • In questo caso, #NULL indica l'handling del modello del veicolo impostato.

  • L'ultimo parametro impostato a 0, non determina la non-lettura dell'opcode, ma probabilmente si riferisce al traffic behaviour (comportamento guidatore).

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
Chiude lo script.

Termina temporaneamente solo uno script CLEO. Utilizza lo "004E" per il main.scm.

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
Chiude un determinato thread.

Termina un determinato script CLEO purchè il nome impostato sia stato precedentemente attribuito con lo "03A4". Utilizza lo "0459" per il main.scm.
-SteVePontis
@24/10/09 - 18:10
Permette di ricominciare lo script.

Permette di terminare un gosub e continuare con la lettura del codice che segue ad esso.

Delle volte hai utilizzato la dicitura "n°41" e "n°28". Cambiale in handle 41@ ed ID 28.

Spero che non mi sia sfuggiuto nulla. :)
Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

#6 L'utente è offline   SteVePontis 

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

Inviato il 24 ottobre 2009 - 22:13

Quote

Originally posted by Wesser+24/10/09 - 22:35

Quote

(Wesser @ 24/10/09 - 22:35)
Onore è una parola grossa, sono del sud ma non sono siciliano (non c'entra proprio nulla). :rotfl:

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
Proprio dopo Actor.WeaponAccuracy(), potete metterne molti di AS_actor, ma ragionando sull'ordine.

Il punto esatto non fa differenza ma di quale ordine parli?

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
Imposta che l'attore 95 nuoti sino alle coordnate scelte che imposterete dopo.

Le coordinate devono essere impostate inequivocabilmente prima, altrimenti il loro valore (per quanto concerne tale opcode) sarà uguale a 0 perchè viene letto, anche se pur subito, dopo. Per correttezza, il pedone è 95@ e non @95 o semplicemente 95, perchè indicano rispettivamente il label di un jump ed un valore intero. Ti invito di correggere. :sese:

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
0655: AS_actor 95@ look_at_object 82@ 1000 ms

Correggi anche quì l'handle dell'oggetto, da @82 a 82@.

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
Imposta che l'attore 95 guidi sino alle coordinate che imposterete a una velocità di 15 km\h con il modello NULL. In questo c'è lo 0 e quindi è disattivata come funzione.

Purtroppo ogni opcode è diverso da un altro e non sempre vale la stessa regola:
  • La velocità non è in km\h ma credo che sia convenzionale (da 0.0 a 60.0).


  • In questo caso, #NULL indica l'handling del modello del veicolo impostato.


  • L'ultimo parametro impostato a 0, non determina la non-lettura dell'opcode, ma probabilmente si riferisce al traffic behaviour (comportamento guidatore).

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
Chiude lo script.

Termina temporaneamente solo uno script CLEO. Utilizza lo "004E" per il main.scm.

Quote

Originally posted by SteVePontis@24/10/09 - 18:10
Chiude un determinato thread.

Termina un determinato script CLEO purchè il nome impostato sia stato precedentemente attribuito con lo "03A4". Utilizza lo "0459" per il main.scm.
-SteVePontis
@24/10/09 - 18:10
Permette di ricominciare lo script.

Permette di terminare un gosub e continuare con la lettura del codice che segue ad esso.

Delle volte hai utilizzato la dicitura "n°41" e "n°28". Cambiale in handle 41@ ed ID 28.

Spero che non mi sia sfuggiuto nulla. :) [/b]

si...anche se ora ho fatto brutta figura... :( :( :( :( :(
Firma fuori dai limiti del regolamento.
0

#7 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 25 ottobre 2009 - 09:15

Brutta figura? Da quando ci si da tanta importanza in questo forum? -_-
Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

#8 L'utente è offline   SteVePontis 

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

Inviato il 28 ottobre 2009 - 15:03

Quote

Originally posted by Wesser@25/10/09 - 09:15
Brutta figura? Da quando ci si da tanta importanza in questo forum? -_-

mi scuso, wesser..io non mi credo affatto. Prometto comunque di essere umile ancora di +..nn è una presa in giro, nn sn bastardo
Firma fuori dai limiti del regolamento.
0

#9 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 28 ottobre 2009 - 20:20

Non preoccuparti! Io parlo in generale e non verso i singoli. Che sia d'esempio! ;)
Notice: Undefined variable: Fabio in /home/gta-expert/index.php on line 206
0

#10 L'utente è offline   SteVePontis 

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

Inviato il 29 ottobre 2009 - 17:18

wesser ho modificato la guida e ho aggiunto anche un pezzo sugli opcodes con 'set_car', dimmi se va bene :P
Firma fuori dai limiti del regolamento.
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