Aula di Andryyyuu (SCRIPTING PRO)- Prof. ...Splash

« Older   Newer »
 
  Share  
.
  1. …Splash
        +1   Top   Dislike
     
    .

    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.
     
    Top
    .
  2. Andryyyuu
        Top   Dislike
     
    .

    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
     
    Top
    .
  3. …Splash
        +1   Top   Dislike
     
    .

    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 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 ora
    CODICE
    fanfare 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 usarlo ;)

    CODICE
    countpokemon
    ----
    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!
     
    Top
    .
  4. Andryyyuu
        Top   Dislike
     
    .

    User deleted


    Ok chiaro
    era abbastanza semplice però :(
     
    Top
    .
  5. Andryyyuu
        Top   Dislike
     
    .

    User deleted


    Vogliamo andare avanti per favore? :ohnoo:
     
    Top
    .
4 replies since 11/12/2015, 17:16   147 views
  Share  
.
Top