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!