-
…Splash.
User deleted
Ciao Andryyyuu, benvenuto nella tua aula di scripting, io sarò il tuo prof di scripting, ma prima di iniziare, dato che hai scelto il grado PRO vorrei sapere esattamente cosa sai fare, per regolare cosa fare nelle lezioni, dato che è la prima aula in assoluto aperta su questo forum. . -
Andryyyuu.
User deleted
Io so fare script tutti i basilari (dialoghi, givegg givepokemon...)poi so fare i fadescreen i warp poi so un bel po' di flag da attivare e conoscevo già tutte le cose pubblicate nella guida: tutte le cose incluse qui https://pokemonhackromclub.forumcommunity.net/?f=8882075
Poi so fare tante altre cose, ma ora non ricordo
Edited by Andryyyuu - 11/12/2015, 22:44. -
…Splash.
User deleted
Okay allora senza troppa esitazione partiamo subitissimo, per prima cosa ti presento qualche comando che forse non conosci, che poi dovrai applicare come compito da consegnare entro una settimana.
Se avrai bisogno di chiarimenti potrai chiedere a me.
In questa aula miro ad insegnarti molti comandi sconosciuti di script sconosciuti, ma molto utili, fino ad arrivare a fare anche qualcosina di ASM.
Per prima cosa ti serve avere il programma XSE ed una rom di Ruby e Fire Red (servono tutte e due perchè alcuni comandi saranno specifici di un determinato gioco).
Detto questo cominciamo.
Come prima lezione andremo a vedere come donare un Pokèmon, ma attenzione, non come donarlo semplicemente con un givepokèmon ma come far si che il nostro Pokemon possa essere dato calcolando se c'è spazio nella squadra e dandogli un soprannome, premetto che questo script non è che l'insieme di molti comandi che analizzeremo in questa prima lezione.CODICE#dynamic 0x800000
#org @start
lock
faceplayer
checkflag 0x200
if 0x1 goto @ricevuto
msgbox @msg1 0x5
compare 0x800D 0x1
if 0x1 goto @si
msgbox @msg2 0x6
release
end
#org @si
countpokemon
compare 0x800D 0x6
if 0x1 goto @pieno
copyvar 0x8004 0x800D
givepokemon 0x4 0x5 0x0 0x0 0x0 0x0
fanfare 0x13E
msgbox @msg3 0x4
waitfanfare
closeonkeypress
msgbox @msg4 0x5
compare 0x800D 0x1
if 0x1 call @soprannome
setflag 0x200
release
end
#org @ricevuto
msgbox @msg5 0x6
release
end
#org @pieno
msgbox @msg6 0x6
release
end
#org @soprannome
special 0x9E
return
#org @msg1
= Vuoi il Pokemon?
#org @msg2
= Nope
#org @msg3
= [PLAYER] riceve il Pokemon
#org @msg4
= Vuoi dare un soprannome al pokemon?
#org @msg5
= Hai gia il pokemon
#org @msg6
= Non hai spazio nella squadra.
Il seguente script, non è altro che la domanda di donazione di un Pokèmon, calcolo se nella squadra c'è spazio per ricevere quel Pokèmon e soprannome del Pokemon.
Analizziamo questo script.
countpokemon
compare 0x800D 0x6
if 0x1 goto @pieno
Allora questo script conta quanti pokemon abbiamo in squadra e lo compara (compare 0x800D (ultimo risultato ottenuto) 0x6 (numero di Pokemon in squadra massimi).
In poche parole compara l'ultimo risultato ottenuto con il numero 6 (0x6).
Quindi andiamo a if 0x1 goto @pieno.
Come forse già saprai questo comando fa si che se è soddisfatta la condizione sopra posta (in questo caso compare...) lo script andrà al puntatore pieno.
0x1 infatti, come forse saprai, vuol dire sì oppure uguale a in questo caso uguale a.
Ovviamene possiamo utilizzare il countpokemon anche in altri modi, per esempio cambiando 0x6 con 0x1 e @pieno con @continua...hai presente le lotte nel parco lotta? Oppure la gara pigliamosche? Funziona più o meno con questo comando.
(se avremo un pokemon potremo continuare, se ne abbiamo di più no).
Bene analizziamo oraCODICEfanfare 0x13E
msgbox @msg3 0x3
waitfanfare
closeonkeypress
Qui le cose si complicano un pochettino...ma perchè?
Vediamolo insieme.
Fanfare è il comando che fa partire la musica (con 0x... si indica la musica che si vuole far partire in esadecimale) e fin qui ci siamo, funziona come un applymovement e necessita quindi dopo il waitfanfare.
in msgbox @msg3 andremo a mettere il "hai ricevuto pokemon" mentre la musica sta ancora suonando, motivo per il quale mettiamo waitfanfare dopo il msgbox e abbiamo utilizzato lo 0x4 come tipologia di messaggio (è quello che sta aperto durante lo script) per poi con il closeonkeypress farlo diventare un normale messaggio.
Facciamo tutto questo quando per esempio vogliamo dare tanti Pokemon/strumenti nello stesso script senza sovrapporre i suoni...comunque sei libero di non metterlo nello script, ma è carino usarloCODICEcountpokemon
----
copyvar 0x8004 0x800D
givepokemon 0x4 0x5 0x0 0x0 0x0 0x0
---
msgbox @msg 0x5
compare 0x800D 0x1
if 0x1 call @soprannome
#org @soprannome
special 0x9E
return
copyvar 0x8004 0x800D
Allora! Questa cosuccia qui è un po' complessa, perchè effettivamente...lo è.
Copyvar copia il risultato appena ottenuto (0x800D) nella variabile 0x8004.
Per far questo si ricorre alle variabili che immagino che tu sappia cosa siano, nel caso tu non lo sappia ti basti sapere che sono dei numeri scritti nella ram che rimangono sempre immutati qualsiasi cosa facciamo.
Questo comando è legato a countpokemon in quanto con countpokemon abbiamo "visto" se c'è spazio nella nostra squadra, se c'è si copia il risultato appena ottenuto e lo si scrive nella variabile 0x8004 (va sempre usata questa, non chiedermi il perchè...non lo so, ma basta sapere che è così ).
Dopo aver dato il pokemon con il comune givepokemon con il msg4 0x5 che ci chiederà (grazie al msg 0x5) se vogliamo dare un soprannome al Pokemon ottenuto, se risponderemo di no finirà lo script se invece risponderemo sì andremo allo special 0x9E che fa sì che appaia il menù di rinomina del pokemon ottenuto.
Fatto questo lo script finirà esso sfruttera il valore 0x8004 per rinominare il pokemon appena ottenuto.
Return ci riporterà alla fine dello script cioè al dirci, non hai spazio in squadra.
Bene, questa lezione è finita.
Di compito per questa prima lezione...non c'è niente, mi basta che tu abbia capito tutta questa serie di comandi perchè dalla prossima lezione dovrai saperli usare praticamente tutti
Se hai dubbi su qualche comando chiedi pure, sarò lieto di aiutarti.
Fammi sapere, poi potremo continuare con la seconda lezione!. -
Andryyyuu.
User deleted
Ok chiaro SPOILER (clicca per visualizzare)era abbastanza semplice però. -
Andryyyuu.
User deleted
Vogliamo andare avanti per favore? .