kings forum
Ciao Benvenuto nel Kings Forum Very Happy

Se non sei registrato registrati subito

Spero che ti troverai bene nel Forum!

L'amministratore,

Vito

Image and video hosting by TinyPic Condividi

GTA San Andreas - Creare una missione Cleo

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

GTA San Andreas - Creare una missione Cleo

Messaggio  fedec96 il Ven Mag 21, 2010 12:36 am

In questa guida, spiegherò come creare delle semplici missioni, questa modalità è stata inserita nella mod BIGFOOT, del killer della moto sega e altri!
- Tool e programmi da usare:
• Sanny Buildier 3.0 --> http://gta-mod.blogspot.com/2009/05/sanny-builder.html
• Saper caricare modelli.
• Saper creare LABELS e THREAD.
• GTA San Andreas
- Iniziamo:
Apriamo SannyBuildier e creiamo un nuovo documento, all'inizio inseriamo la versione e il formato da compilare:
CODICE
{$VERSION 3.1.0027}
{$CLEO .cs}

Ora che abbiamo impostato il formato e la versione, creiamo un thread chiamato "MISSIONE":
CITAZIONE
thread 'MISSIONE'

Dentro questo thread, creiamo un label, questo label sarà la missione verà e propria, per questa missione "semplice" noi dobbiamo eseguire delle funzioni, controllare se il player è in un punto specifico, caricare i modelli e attori speciali, controllare se i modelli sono caricati, dare armi agli attori, creare segnalini sopra la loro testa e in fine impostare che loro ci vogliono uccidere.
CODICE
:MISSIONE
wait 1000
03A4: name_thread 'MISSIONE'
if and
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 2861.8618 -1887.3459 10.9339 radius 30.0 25.0 10.0
$ONMISSION == 0
else_jump @MISSIONE
023C: request_special_actor 'TENPEN' as 1
023C: request_special_actor 'SMOKEV' as 2
023C: request_special_actor 'BB' as 3
Model.Load(#AK47)
Model.Load(#COLT45)
Model.Load(#DESERT_EAGLE)
if and
Model.Available(#AK47)
Model.Available(#DESERT_EAGLE)
Model.Available(#COLT45)
023D: special_actor 1 loaded
023D: special_actor 2 loaded
023D: special_actor 3 loaded
wait 1000
009A: 1@ = create_actor 23 #SPECIAL01 at 2859.7527 -1917.4506 10.9324
009A: 2@ = create_actor 23 #SPECIAL02 at 2861.2815 -1917.2495 10.9335
009A: 3@ = create_actor 23 #SPECIAL03 at 2861.8311 -1915.5322 10.933
Actor.Angle(1@) = 272.1
Actor.Angle(2@) = 98.9
Actor.Angle(3@) = 169.0
4@ = Marker.CreateAboveActor(1@)
5@ = Marker.CreateAboveActor(2@)
6@ = Marker.CreateAboveActor(3@)
01B2: give_actor 1@ weapon 22 ammo 9999
01B2: give_actor 2@ weapon 30 ammo 9999
01B2: give_actor 3@ weapon 24 ammo 9999
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR
05E2: AS_actor 2@ kill_actor $PLAYER_ACTOR
05E2: AS_actor 3@ kill_actor $PLAYER_ACTOR
$ONMISSION = 1
Model.Destroy(#AK47)
Model.Destroy(#DESERT_EAGLE)
Model.Destroy(#COLT45)

Analizziamo il codice:
wait 1000 : Attendiamo 1 secondo prima di eseguire le operazioni riportate sotto.
03A4: name_thread 'MISSIONE' : Diamo un nome al thread.
if and : Controlliamo se più cose sono accadute.
00FE: actor $PLAYER_ACTOR sphere 0 in_sphere 2861.8618 -1887.3459 10.9339 radius 30.0 25.0 10.0 : Controlliamo se il player è nei paraggi della posizione 2861.8618 -1887.3459 10.9339.
$ONMISSION == 0 : Controlliamo che il player non è già in missione.
else_jump @MISSIONE : Se il player non è nella posizione 2861.8618 -1887.3459 10.9339 oppure è in missione ritorna al label MISSIONE senza proseguire.
023C: request_special_actor 'TENPEN' as 1 : Richiediamo l'attore speciale TENPENNY.
023C: request_special_actor 'SMOKEV' as 2 : Richiediamo l'attore speciale BIG SMOKE.
023C: request_special_actor 'BB' as 3 : Richiediamo l'attore speciale BIGBEAR.
Model.Load(#AK47) : Carichiamo il modello AK47.
Model.Load(#COLT45) : Carichiamo il modello delle 9MM.
Model.Load(#DESERT_EAGLE) : Carichiamo il modello della Deagle.
if and : Controlliamo se i modelli e gli attori sono stati caricati.
Model.Available(#AK47) : Controlla se il modello Ak47 è stato caricato.
Model.Available(#DESERT_EAGLE) : Controlla se il modello della Deagle è stato caricato.
Model.Available(#COLT45) : Controlla se il modello COLT45 è stato caricato.
023D: special_actor 1 loaded : Controlla se l'attore numero 1 (TENPENNY) è stato caricato.
023D: special_actor 2 loaded : Controlla se l'attore numero 2 (BIG SMOKE) è stato caricato.
023D: special_actor 3 loaded : Controlla se l'attore numero 3 (BIG BEAR) è stato caricato.
else_jump @MISSIONE : Se non sono caricati i modelli ritorna al label MISSIONE, per farli ricaricare senza proseguire.
wait 1000 : Attendiamo 1 secondo prima di eseguire le funzioni riportate sotto.
009A: 1@ = create_actor 23 #SPECIAL01 at 2859.7527 -1917.4506 10.9324 : Creiamo l'attore TENPENNY
009A: 2@ = create_actor 23 #SPECIAL02 at 2861.2815 -1917.2495 10.9335 : Creiamo l'attore BIG SMOKE
009A: 3@ = create_actor 23 #SPECIAL03 at 2861.8311 -1915.5322 10.933 : Creiamo l'attore BIG BEAR
Actor.Angle(1@) = 272.1 : Impostiamo l'angolo di TENPENNY a 272
Actor.Angle(2@) = 98.9 : Impostiamo l'angolo di BIG SMOKE a 98
Actor.Angle(3@) = 169.0 : Impostiamo l'angolo di BIG BEAR a 169
4@ = Marker.CreateAboveActor(1@) : Creiamo un marker sulla testa dell'attore e sulla mappa.
5@ = Marker.CreateAboveActor(2@) : Creiamo un marker sulla testa dell'attore e sulla mappa.
6@ = Marker.CreateAboveActor(3@) : Creiamo un marker sulla testa dell'attore e sulla mappa.
01B2: give_actor 1@ weapon 22 ammo 9999 : Diamo la 9MM a TENPENNY con 9999 colpi.
01B2: give_actor 2@ weapon 30 ammo 9999 : Diamo l'AK47 a BIG SMOKE.
01B2: give_actor 3@ weapon 24 ammo 9999 : Diamo la Deagle a BIG BEAR.
05E2: AS_actor 1@ kill_actor $PLAYER_ACTOR : Impostiamo che TENPENNY uccida CJ.
05E2: AS_actor 2@ kill_actor $PLAYER_ACTOR : Impostiamo che BIGSMOKE uccida CJ.
05E2: AS_actor 3@ kill_actor $PLAYER_ACTOR : Impostiamo che BIG BEAR uccida CJ.
Questa era la base, da qui potete modificare tutto la vita degli attori, l'armatura, le armi e molte altre cose, ora arriviamo al punto che quando uccidiamo un attore il segnalino scompaia.
Creiamo 3 labels ognuno per ogni attore e controlliamo se l'attore è morto, altrimenti andiamo al label orginale e ricontrolliamo, se invece è morto disabilitiamo il segnalino e rimuoviamo l'attore ( morto ) dal gioco:
CODICE
:MISSIONE_TENPENNY
wait 150
if
Actor.Dead(1@)
else_jump @MISSIONE_TENPENNY
Actor.RemoveReferences(1@)
Marker.Disable(4@)

:MISSIONE_BIGSMOKE
wait 150
if
Actor.Dead(2@)
else_jump @MISSIONE_TENPENNY
Actor.RemoveReferences(2@)
Marker.Disable(5@)

:MISSIONE_BIGBEAR
wait 150
if
Actor.Dead(3@)
else_jump @MISSIONE_BIGBEAR
Actor.RemoveReferences(3@)
Marker.Disable(6@)

Ora che abbiamo fatto ciò ci restano solo 2 labels, la missione superata e la missione non superata, per farli creiamo 2 labels e nel primo lo chiamiamo MISSIONE_COMPIUTA, mentre l'altro MISSIONE_FALLITA.
Ora, per far che CJ superi la missione dovremmo controllare se TUTTI gli attori sono morti, e dargli una somma di denaro, di rispetto e far apparire il messaggio MISSION PASSED! con suono:
CODICE
:MISSIONE_COMPIUTA
wait 150
if and
Actor.Dead(1@)
Actor.Dead(2@)
Actor.Dead(3@)
else_jump @MISSIONE_COMPIUTA
Actor.RemoveReferences(1@)
Actor.RemoveReferences(2@)
Actor.RemoveReferences(3@)
Marker.Disable(4@)
Marker.Disable(5@)
Marker.Disable(6@)
01E3: show_text_1number_styled GXT 'M_PASSR' number 6 time 5000 style 1 // MISSION PASSED!~n~~w~RESPECT +
Player.Money($PLAYER_CHAR) += 10000
$ONMISSION = 0
0998: add_respect 6

In MISSIONE FALLITA invece, dobbiamo controllare se CJ è MORTO o arrestato, usiamo wasted_or_busted per verificarlo:
CODICE
:MISSIONE_FALLITA
wait 150
if
wasted_or_busted
else_jump @MISSIONE_FALLITA
$ONMISSION = 0
00BA: show_text_styled GXT 'M_FAIL' time 5000 style 1 // ~r~MISSION FAILED!

Ecco qui, la missione è stata creata! Per testarla andate nella zona Playa De Seville ( vicino al mare dove c'è la missione SWEET GIRLS ).

Fonte: http://gta-mod.blogspot.com/2009/05/guida-...i-missioni.html
avatar
fedec96
Admin
Admin

Messaggi : 68
Punti : 115
Data d'iscrizione : 06.05.10
Età : 21
Località : Ferrara

Vedi il profilo dell'utente http://vgc.forumfree.it/

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto

- Argomenti simili

 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum