Soprannominare un Pokemon e Far vedere un pokemon nel Pokedex [GBA]

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

    User deleted


    Salve a tutti Hackers and oggi siamo qui in a new guida by ...Splash
    Volevo farvi vedere come soprannominare un Pokemon appena dato e far sì che il Pokemon dato venga letto nel Pokèdex.
    Vediamo prima lo script completo.

    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 sfrutterà il valore 0x8004 per rinominare il pokemon appena ottenuto.

    Return ci riporterà alla fine dello script cioè al dirci, non hai spazio in squadra.

    Ecco, questo era come soprannominare e dare un Pokemon...
    Ora vedremo come far vedere che abbiamo visto un Pokemon...questo può essere legato a qualsiasi givepokemon, oppure se mostriamo l'immagine di un pokemon (stile safari di rosso fuoco o casa di Bill) e vogliamo far vedere sul Pokedex di aver visto (che giuoco di parole) il Pokemon.

    E' un semplice comando.
    CODICE
    setvar 0x8004 0x?
    special 0x163

    Al posto di 0x? mettiamo il numero del Pokemon in Hex che vogliamo mostrare come visto nel Pokedex.
    Lo special 0x163 farà si che ciò accada.
    Semplice no?

    Bene la guida è finita e se avete domande fatele pure!

    Buona giornata.

    Edited by WhiskyDog - 14/1/2016, 22:49
     
    Top
    .
  2.     Top   Dislike
     
    .
    Avatar

    Advanced Member

    Group
    Administrator
    Posts
    4,511
    Reputazione
    +240

    Status
    Anonymous
    Grazie anche per questa guida! :-)
     
    Top
    .
  3. Andryyyuu
        Top   Dislike
     
    .

    User deleted


    Questo si trova anche nella mi aula scripting
     
    Top
    .
2 replies since 20/12/2015, 12:18   75 views
  Share  
.
Top