Jump to content
GTA-Series.com Forums
Oltremare

[GUIDA] Base SCM

Recommended Posts

GUIDA BASE SCM
Benvenuti nella guida base dell'SCM, linguaggio di programmazione che si usa nei GTA dell'era 3D (da III a VCS).
1.0 Programmi
1.1 Introduzione Sanny Builder
2.0 Cominciamo
2.1 Stripped Main
2.2 If, If or, If And.
2.3 Variabili
2.4 Loop
2.5 Opcode
2.6 Differenze tra III,VC e SA
2.7 Analiziamo uno script
1.0 Programmi
Per programmare, ci servirà un programma: SANNY BUILDER, scaricabile da qui http://sannybuilder.com/ potremmo usare anche il mission builder, ma è più difficile da usare rispetto a SB3.
1.1 Introduzione a Sanny Builder
Appena apriamo il programma, in basso a destra, vedermo l'icona di GTA SA, cliccate e selezionate il gioco che dovete modificare.
Clicchiamo su apri, ci chiederà la directory, selezionate la directory del gioco, poi ricliccate su apri, e cambiato, sotto il nome, l'estensione, da .TXT a SCM, CS,CM, e selezioniamo il MAIN.SCM, ci saranno moltissime righe, si inizia con DEFINE OGGETTO, che definisce un qualcosa, per esempio, DEFINE MISSION (NUMERO MISSIONI), definisce il numero delle missioni, se ne creiamo una nuova, dovremmo aggiungere un numero..
Poi c'è MISSION 0, che su SA, è il primo millisecondo, definisce le macchine che vanno parcheggiate ecc. MISSION 1 è l'intro del gioco, e così via.
Noterete il tasto compila, più il tasto compila e copia. Servono per salvare le modifiche, il primo, compila il file e basta, in qualsiasi posto si trovi, il secondo lo compila e lo mette nella directory selezionata.
Ci sono gli strumenti IDE, che servono per aiutare, la ricerca Opcode (Che vedremo poi) e il manager di coordinate.
2.0 Cominciamo
2.1 Stripped Main
C'è un limite nello script più lungo, nella missione più lunga ecc. Per fare uno script lungo, o una storyline nuova, vi servirà un main senza missioni, che crea solo il giocatore, il traffico e le cose per il FREE-ROAM. Lo si trova nella cartella di SB, o si può scaricare.
2.2 If, If or, If And,
Per determinare alcune cose, il gioco si serve di: IF, IF OR, e IF AND. In italiano: se, se o, se e.
IF controlla se UNA condizione è positiva, IF AND controlla se tutte sono positive, IF OR controlla se UNA è positiva.
Vi posto un esempio:
if and
01F4: car $1483 flipped
01C1: car $1483 stopped
else_jump @MEAT1_905
00BC: text_highpriority 'UPSIDE' 5000 ms 1 // ~r~You flipped your wheels!
Lo script dice: Se E, la macchina $1483 (È una variabile globale, che vedremo poi) si capovolge e si ferma, fai vdere il testo 'UPSIDE' (Ciò che è dopo // Non è necessario e non viene letto), altrimenti salta alla variabile normale @MEAT1_905
Un esempio di IF OR
if or
0119: car $CHECK_CAR wrecked
02BF: car $CHECK_CAR sunk
else_jump @NONAME_1_3366
01C3: remove_references_to_car $CHECK_CAR // Like turning a car into any random car
Lo script dice: Se l'auto è distrutta (Wrecked), o affondata ( Sunk ), rimuovi le referenze alla macchina $CHECK_CAR.
2.3 Variabili
Ci sono due tipi di variabili, quelle "normali" 1@. 2@ ecc. e le globali: $VARIABILE.
Le prime, sono fino a 33@, le altre sono infinite. Vi chiederete, qual'è la differenza?
Le normali si possono usare solo in un thread, le globali si usano in tutto il file, io uso le globali, sono più semplici da ricordare.
2.4 Loop
Un esempio
:mythread
if
0256: player $PLAYER_CHAR defined
else_jump @mythread
Se il giocatore è definito, va bene, altrimenti salta al thread @mythread, e questo controlla se il giocatore è definito, e così via, si chiama LOOP
2.5 Opcode
Gli opcode sono indispensabili.
Un esempio di Opcode è
0109: player $PLAYER_CHAR money += $JUMP_BONUS
Aggiunge dei soldi al giocatore usando una variabile globale già definita, ma se vogliamo aggiungere una quantità diversa, al posto della variabile globale mettiamo il numero di soldi che vogliamo. Gli opcode possono essere modificati, come in questo caso. Però, un opcode che toglie la vità ad un attore/NPC, non può essere modificato per togliere la vita al giocatore, per quello ci sono opcode appositi. Attenzione, ci sono OPCODE per il $PLAYER_CHAR e per il $PLAYER_ACTOR, il primo è il giocatore in termini di soldi, vita ecc. (Cioè la vita che ha, i soldi che ha ecc.), il secondo è il personaggio vero e proprio, il modello 3D, le animazioni ecc.
2.6 Differenze tra III,VC e SA.
Ovviamente tutto migliora con il tempo, la grafica, i modelli ecc. I codici non sono un'eccezione, su VC e SA, ci sono opcode diversi, o nuovi che agevolano il tutto.
2.7 Analiziamo uno script
:LUIGI2
thread 'LUIGI2'
gosub @LUIGI2_46
if
wasted_or_busted
else_jump @LUIGI2_37
gosub @LUIGI2_3489
:LUIGI2_37
gosub @LUIGI2_3572
end_thread
:LUGI2 è il thread, gosub sarebbe, SALTA al thread @LUIGI2_46
if
Wasted_Or_Busted controlla se il giocatore è stato arrestato o ucciso
Else_Jump @Luigi2_37, dice: Altrimenti salta al thread @Luigi2_37
:LUIGI2_37 è il thread sopra indicato
end_thread mette termine al thread.
Avete ora imparato le basi, persto farò una nuova guida.

Condividi questo messaggio


Collegamento al messaggio
Condividi su altri siti

Crea un account o effettua il login per commentare

Devi essere un utente registrato per poter lasciare un commento

Registrati

Registra un nuovo account nella nostra community. È facile!

Registra un nuovo account

Login

Hai già un account? Effettua il login qui.

Effettua il Login

  • Visitatori Recenti   0 utenti

    Nessun utente registrato sta visualizzando questa pagina

×