TheVillAngel Posted March 15, 2012 Share Posted March 15, 2012 (edited) SCACCHIERA STILE LICENSE BOARD DI FFXII Per: Rpg Maker XP, ma applicabile anche agli altriAutore: TheVillAngelDescrizione: Dopo un consulto con Guardian ho deciso di postare un mio vecchio tutorial già pubblicato in un altro forum. Purtroppo l'immagine del metodo di settaggio dei valori è andata persa e sinceramente non ho il tempo di rifarla, vedrò di farne una più in piccolo per sostituirla. Comunque il tutto dovrebbe essere ugualmente abbastanza chiaro. Prendendo una pausa dalla programmazione ho deciso di fare un tutorial su come creare una scacchiera stile FFXII.Per chi non sapesse cosa sia è una scacchiera in cui, spendendo dei punti che potete chiamare come vi pare (AP,LP,Ca**iinCu*o),potrete apprendere delle abilità o migliorare i parametri dei vostri personaggi.Per farvi capire meglio il funzionamento di tale scacchiera vi posto un paio (7 XD) di screen.http://img28.imageshack.us/img28/1258/screen1ud.jpg http://img442.imageshack.us/img442/5986/screen2ac.jpghttp://img408.imageshack.us/img408/4308/screen3rh.jpg http://img535.imageshack.us/img535/6958/screen4r.jpghttp://img696.imageshack.us/img696/6494/screen5pm.jpg http://img189.imageshack.us/img189/3043/screen6ab.jpghttp://img175.imageshack.us/img175/8229/screen7d.jpg Bene, ora che abbiamo (spero) tutti capito di cosa si tratta passiamo ai fatti.Ci tengo a precisare che per programmare una cosa di questo tipo ci vuole moooolta pazienza.Tenete conto che in un sistema di apprendimento di questo tipo è necessario dare la totale libertà di sviluppo del personaggio al giocatore,quindi, OGNI singolo Tile deve poter essere attivato da TUTTI quelli adiacenti. Cosa significa questo?Significa che sono necessarie molte operazioni con le variabili. Tali operazioni non sono di grandedifficoltà, ma richiedno tempo, molto tempo.Prego quindi chi non avesse il dono della pazienza di lasciare al più presto questo topic e di non procedere oltre XD.Ora che ho finito il preambolo passiamo all'occorrente:-Un Tileset di una scacchiera, potete anche farvelo da soli, basta un quadrato bianco e uno nero, niente di più facile XD.Poi ovviamente se volete metterci qualche rifinitura l'effetto risulterebbe migliore, ma potete fare a vostro gusto.Se proprio non ne avete voglia potete fare anche uno screen al mitico Chess Titans e prendervi i pezzi che vi servono.Fatto? Bbbbbene XD-Competenza nell'uso di variabili e switch, se non sapete cosa siano queste spaventose creature fate un giro tra le FAQ nella sezioneRichieste d'aiuto del vostro Forumprima di iniziare questa nuova avventura di programmazione.-Delle pictures di numeri da 0 a 9, potete farvele anche con WordArt.-Un charset di un cursore, anche questo potrete facilmente farvelo da soli.-Come dicevo prima, molta, molta pazienza.Se possedete questi requisiti possiamo anche cominciare, altrimenti vi consiglio di non andare oltre perchè potreste soltanto confondervi le idee. FASE 1: CREAZIONE DELLA SCACCHIERA Fate la vostra scacchiera su mappa, datele la forma che volete. Vi consiglio di non esagerare nelle dimensioni,il mio suggerimento è di usare una mappa standard 20x15 che comunque non dovrebbe essere completamente riempita dagli amati(ma che poi odierete) quadratini bianchi e neri. Giusto per portarvi un esempio la mia scacchiera è formata da ben 177 quadratini.Tenete bene a mente questo numero perchè poi capirete cosa vuol dire avere 177 quadratini.Lasciate poi un po' di spazio per mettere il nome del personaggio e l'ammontare dei suoi punti.Ah ricordatevi anche di fare un punto d'accesso alla vostra mappa, questo deve rimanere vuoto. FASE 2: CREAZIONE PUNTI ABILITA'Nulla di più semplice, o almeno credo. Inizializzate una variabile e datele il nome dei vostri punti, io per comodità la chiamerò AP Variable Operation > Specific Variable: 0001:AP > set 0 Nella creazione dei mostri non dovrete far altro che aggiungere, in monster group, i punti abilità che il mostro o il gruppo di mostrivi deve dare a fine battaglia.Ovviamente in frequency dovrete mettere battle, altrimenti ogni turno, o ogni istante,vi darà quei punti per tutta la durata della battaglia. Variable Operation > Specific Variable: 0001:AP > +x dove x appartiene a N con N che va da 0 a +infinito XD N comunque non va all'infinito perchè RPG maker xp lavora se non sbaglio con cifre a 16 bit, giusto per essere precisi, ma vi basterà.Consiglio infatti di mettere il limite massimo di AP a 9999, capirete il perchè anche di questo e vi spiegherò come fare.Se volete mettere altre opzioni di battaglia basterà mettere uno switch locale e cambiare pagina. FASE 3: PREPARAZIONE DELLA MAPPAQuesta parte è un po' più complicata da spiegare ma nulla di difficile da attuare. Per comodità dividerò questa fase in altre sottofasi.1. Create un evento con 2 pagine, una da lasciare vuota, l'altra da attivare con uno switch che chiamerò per comodità Conti, perchè questo evento altro non fa che dei conti. Questa seconda pagina deve essere messa in processo parallelo.2. Create un secondo evento sempre in processo parallelo che attivi lo switch conti e dopo metteteci un erase event, questo permetterà all'evento di ricomparire ogni volta che si rientra nella mappa. Ora capirete perchè.3. Nella seconda pagina dell'evento, che chiamerò anch'esso Conti per comodità, dobbiamo settare delle variabili. Ora a cosa servono queste variabili? Ritornando al discorso di prima, è arrivato il momento di decidere il limite di AP, questo perchè dobbiamo richiamarci il valore della variabile AP attraverso delle pictures. Per fare ciò abbiamo bisogno di scomporre la variabile AP in parti. Nel caso del limite di 9999, la dovremo scomporre in migliaia, centinaia, decine e unità. Come fare? Processo lungo ma semplice che si divide anch'esso in fasi: a.Limitiamo la variabile AP a 9999 If var migliaia > 9999 set var migliaia == 9999 b.Settiamo quattro variabili che chiameremo ovviamente migliaia, centinaia, decine e unità. c.Eguagliamo queste variabili alla variabile AP Variable: [0002:Migliaia] = Variable [0001:AP] Variable: [0003:Centinaia] = Variabile [0001:AP] ... d.Ora viene fatta la scomposizione If var Migliaia >= 9000 show picture 1 (numero 9) var Centinaia - 9000 #Questo è necessario per isolare il numero che viene dopo le migliaia var Decine - 9000 var unità -9000 else If var Migliaia >= 8000 show picture 2 (numero 8) var Centinaia -8000 var Decine -8000 var Unità -8000 else if var Migliaia >= 7000 ecc. ecc. fino a var Migliaia >= 1000 else show picture 10 (numero 0) If var Centinaia >= 900 show picture 11 (numero 9) #Notare che ho cambiato il numero della picture nonostante sia sempre il numero 9, infatti mettendo lo stesso numero var decine -900 #il programma la riconoscerebbe come un'unica figura e quindi se ci fosse un numero con due 9 mostrerebbe solo il primo var unità -900 #nel caso di 9901 mostrerebbe 9 01 NOTA: Segnatevi i numeri che mettete alle pictures, se sono in ordine, almeno il primo e l'ultimo. else ecc. ecc. fino a var centinaia >= 100 else show picure 20 (numero 0) Continuare con il procedimento per decine e unità !IMPORTANTE : COME SETTARE LE COORDINATE DELLE PICTURES? La mappa di RPG maker è come un asse cartesiano capovolto, cioè con l'asse y che va verso il basso. Una mappa standard di 20x15 ha dimensioni 640x480 pixel, ne consegue che ogni Tile (quadratino) è di 32X x 32Y pixel e le coordinate sono misurate in pixel. Fate i vostri conti. e.Settiamo la switch conti OFF f.Fatto ciò torniamo su e mettiamo un Erase Picture per ognuna delle picture che abbiamo fatto. Questo prima di tutto il resto. L'operazione in questione è necessaria dal momento che altrimenti, ogni volta che la variabile AP viene riportata, i numeri si sovrapporrebbero.4.Ora ci tocca creare un evento che ci porti fuori da questa mappa, scegliamo il punto di entrata e uscita e creiamo un evento. Vuoi uscire da [comecavololavoletechiamare]? Si #Nel caso del si dobbiamo nuovamente fare l'operazione di cancellare tutte le pictures, altrimenti ce le porteremo dietro per tutte le altre mappe. Inoltre dobbiamo ritrasformare il nostro eroe da cursore alla forma originale. Come fare? Change Hero Graphic. Subito dopo impostiamo il teleport. Domanda: Dove ci porterà il teletrasporto? Ma avete tralasciato una cosa ancora più importante: Come arrivo nella scacchiera? La cosa più facile da fare è arrivare tramite un oggetto che chiameremo Scacchiera: Facciamo un evento comune che collegheremo poi all'oggetto in questione dal Database Dobbiamo creare in questo evento 3 variabili, una per memorizzare il Map ID, le altre 2 per le coordinate x e y del nostro eroe. Dopodichè possiamo usare il teleport che ci porterà all'ingresso della nostra scacchiera. Var 0006:Map ID = Map ID #Si trova nelle variable operation in Other Var 0007:Hero x = Player x coordinate Var 0008:Hero y = Player y coordinate #Si trovano nelle variable operation in Sprite > Player Teleport (Mappa scacchiera, punto d'ingresso) Fine Evento Comune Fatto ciò, grazie a queste coordinate basta fare un Teleport dalla scacchiera con coordinate le variabili: In map Id mettiamo la variabile map id, le altre rispettivamente in x e y. FASE 4 SETTARE LA SCACCHIERACredevate di aver visto tutto? Vi sbagliavate. Ora arriva il bello. L'ultima fatica d'ercole, la più tosta.E' arrivato infatti il momento di settare i vari tile con le abilità che i nostri eroi devono imparare.E che sarà mai? Invece sta proprio qui il bello. Come vi dicevo all'inizio, dovete tener conto che il giocatore deve avere libero arbitrio sulla scelta dello sviluppodel personaggio. In questa scacchiera ogni abilità che viene appresa attiva quelle adiacenti. E quindi? Quindi ragazzi miei dovete considerare che ogni abilità ha dalle 2alle 4 possibilità di essere attivata in base alla posizione in cui si trova. Se si trova all'angolo le possibilità sono 2, 3 se si trova sui lati e 4 se si trova el centro. Ma andiamo per gradi. Innanzitutto noi non vogliamo che il cursore si muova dove non può giusto? Non si può andare sulle caselle non attivate.Per far si che questo accada basta settare una tile trasparente come non attraversabile.Ora creiamo un evento per ogni tile che compone la nostra scacchiera e gli diamo come grafica il suddetto tile trasparente.Facciamo l'eccezione per il Tile appena adiacente all'entrata nella scacchiera che sarà la prima abilità da apprendere. Diamole la grafica che vogliamo. Di una spada seè un abilità d'attacco magari, e di uno scudo se è di difesa.Settiamo questo primo evento.Decidiamo innanzi tutto quanti AP devono essere spesi per l'abilità in questione (numero x).Dopodichè chiediamo: Pagina 1Grafica dell'abilità da apprendere.Vuoi imparare questa abilità?SiIf var AP >= x #Controlla se hai abbastanza APVar AP - x #Toglie gli AP usatiSwitch Conti ON #Così da aggiornare il numero di punti posseduti su mappaVar scacchiera = 1 #Parleremo tra poco di questa variabileLocal Switch A ON #Chiude l'eventoelseNon hai abbastanza APendNoNiente. Pagina 2Condizione di attivazione: Local Switch ALasciamo la pagina vuota o, più consigliabile, mettiamo la grafica dell'abilità appresa. Ora questo Evento va ripetuto per tutti gli eventi presenti nella scacchiera con la variabile scacchiera che però deve assumere un valore diverso ogni volta.Vi sembra già troppo? Aspettate.Negli altri eventi oltre a queste 2 pagine bisogna aggiungere un'altra che metteremo prima di queste dove abbiamo messo la grafica del tile trasparente.In questa pagina ci sono le condizioni di attivazione di quegli eventi.Come settare queste condizioni? Bene, Tenete conto che, a parte i tile adiacenti alla prima abilità che possono essere attivati solo dalla stessa, gli altri possonoessere attivati da TUTTE quelle adiacenti ad esse, e, come sappiamo, ad ogni attivazione di un'abilità corrisponde un valore della variabile scacchiera diverso.Cosa vuol dire questo? Che, In base alla posizione, le abilità possono essere attivate da un minimo di 2 ad un massimo di 4 valori. COME FARE?Condizioni se. Evento in PROCESSO PARALLELO.Prendiamo in considerazione il caso più difficile, cioè quello in cui il tile si trovi al centro.Abbiamo in questo caso 4 tile che lo circondano. Ognuno di essi, se attivato, fa assumere alla variabile un valore diverso.Ammettiamo che questi valori siano 3,5,6,7. Pagina 1If var scacchiera ==3Local switch A onelseIf var scacchiera ==5Local switch A onelseIf var scacchiera ==6Local swich A onelseIf var scacchiera ==7Local switch A onelse#Lasciamo vuoto Pagina 2Condizione di attivazione Local switch AGrafica dell'abilità da apprendere.Vuoi imparare questa abilità?SiIf var AP >= x #Controlla se hai abbastanza APVar AP - x #Toglie gli AP usatiSwitch Conti ON #Così da aggiornare il numero di punti posseduti su mappaVar scacchiera = 4 #EsempioLocal Switch B ON #Chiude l'evento. Notare che si tratta del Local switch B, non più dell'AelseNon hai abbastanza APendNoNiente. Pagina 2Condizione di attivazione: Local Switch BLasciamo la pagina vuota o, più consigliabile, mettiamo la grafica dell'abilità appresa. Questo procedimento va fatto per OGNI Tile della scacchiera. Capito ora perchè vi ho detto di non esagerare con le dimensioni?Capite cosa vuol dire fare questo per 177 Tiles? Capite ora il discorso della pazienza? FASE 5 METODO DI SETTAGGIO DEI VALORI (OPZIONALE)Qui di seguito vi posto il metodo che ho usato per non impazzire tra la miriade di numeri che sarete costretti a gestire.Vi consiglio di utilizzare Excell e costruirvi una griglia delle stesse dimensioni della vostra scacchiera. Per ogni casella, che corrisponderà al vostro Tile,scrivetevi i valori della variabile per cui la casella viene attivata e il valore che assume la variabile dopo l'apprendimento dell'abilità.Vi posto l'immane lavoro che ho dovuto fare io. http://img692.imageshack.us/img692/7550/screen9v.jpg Tra parentesi è indicato il valore che assume la variabile dopo l'apprendimento dell'abilità, mentre gli altri numeri sono i valori per cui la casella viene attivata.La tabella contiene degli errori che ho poi corretto successivamente dopo averla stampata. Non avevo voglia di correggerla, e poi, non vi potevo mica dare tutto già pronto.L'immagine è da leggersi dalla A alla Q e la prima riga in basso corrisponde alla prima riga della scacchiera. Lo 0 è il punto di partenza.Cercate di correggerli voi i vari errori magari, già sarebbe una gran fatica in preparazione. Questa è la fine del Tutorial. Ore 6:47AM del 26\2\2010.Spero vi possa servire, ho deciso di postarlo perchè aiutare gli altri fa sempre bene, è lo spirito di ogni RPG infondo no? Qualcuno mi risponderà non di tutti, è vero.L'altro motivo è che non so se il mio progetto vedrà mai la luce, quindi volevo condividere con voi questa mia creazione in modo che una parte del mio gioco viva anche neivostri XD. Come sono romantico oggi...Ciancio alle bande, potete migliorare il tutto con animazioni ed effetti sonori, credo che lo farò più in là, molto più in là. Inoltre vi avverto che il gioco tenderà a laggare un po' con tutti questi eventi in una sola mappa. E' uno dei limiti di RPG Maker purtroppo.Per concludere: a chi tenterà quest'impresa: buona fortuna. A chi ha letto solo per curiosità, grazie per avermi ascoltato, ti potrà anche essere utile magari un giorno.A chi si è stancato alle prime due righe lette: hai la mia comprensione. A chiunque abbia anche solo dato uno sguardo a questo Topic: buona vita. Cordiali saluti. TheVillAngel Edited March 15, 2012 by TheVillAngel premi(o XD)http://rpg2s.net/gif/SCContest1Oct.gifProgetto in corso: Light and DecaySI CERCA UN COLLABORATORE http://img42.imageshack.us/img42/4391/margot.jpgMy hysterical dog is watching you Link to comment Share on other sites More sharing options...
Keroro Posted March 15, 2012 Share Posted March 15, 2012 Dove prendo il chipset per la scacchiera? I Miei Script:Salva Schermata (3 Aprile 2012)Attacco Personalizzabile (2 Aprile 2012)Keyboard Input (Porting) (17 Marzo 2012)Continua... Link to comment Share on other sites More sharing options...
TheVillAngel Posted March 15, 2012 Author Share Posted March 15, 2012 Io me l'ero creato da solo, ma si tratta di un paio d'anni fa ed è andato perso purtroppo. Comunque era una composizione di un paio di tileset e i quadratini marroncini e neri li feci con paint, non è difficilissimo da fare. premi(o XD)http://rpg2s.net/gif/SCContest1Oct.gifProgetto in corso: Light and DecaySI CERCA UN COLLABORATORE http://img42.imageshack.us/img42/4391/margot.jpgMy hysterical dog is watching you Link to comment Share on other sites More sharing options...
giver Posted March 16, 2012 Share Posted March 16, 2012 Potrebbe servire a quelli del VX Ace, visto che per XP e VX esiste l'ottimo script di Sleeping Leonhart, con tanto di editor integrato . . . Personalmente, comunque, io sono contro il "copiare" un sistema famoso nelle proprie opere . . . SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]http://www.rpg2s.net/forum/index.php/topic/21892-vintagevisualsrewrite-enhanced-revised-victory-screen-v-35-da-autori-vari-a-giver/ http://www.rpg2s.net/forum/index.php/topic/21868-eventing-utility-simple-last-battle-events-fix-v-30-by-giver/ http://www.rpg2s.net/forum/index.php/topic/21853-vintagerewrite-constance-menu-per-4-personaggi-da-team-constance-a-giver/ http://www.rpg2s.net/forum/index.php/topic/22126-vintagedoveroso-necroedit-dummy-title-22u-update-per-crearlo-ad-eventi-su-mappa-by-giver/ http://www.rpg2s.net/forum/index.php/topic/22127-vintagevisuals-tale-chapters-save-system-20-by-giver/ Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !! http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gifNon riesco a smettere di essere affascinato da immagini come questa . . .http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpgAlcuni wallpapers che faccio ruotare sul mio vecchio PC . . .http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpghttp://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpghttp://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpghttp://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . . BBCode TestingTypeface & Size Link to comment Share on other sites More sharing options...
TheVillAngel Posted March 16, 2012 Author Share Posted March 16, 2012 non avevo idea dell'esistenza dello script. Comunque si, concordo fondamentalmente, infatti era del mio vecchio progetto abbandonato da tempo. Però penso che oltre che vederlo nel complesso, da un tutorial si possano estrapolare anche parti utili per fare altro. premi(o XD)http://rpg2s.net/gif/SCContest1Oct.gifProgetto in corso: Light and DecaySI CERCA UN COLLABORATORE http://img42.imageshack.us/img42/4391/margot.jpgMy hysterical dog is watching you Link to comment Share on other sites More sharing options...
giver Posted March 17, 2012 Share Posted March 17, 2012 Concordo sul fatto che si possa andare oltre a quanto direttamente spiegato in un tutorial, anche se, per esperienza personale, credo che tu sia un po' troppo ottimista sull'intraprendenza generale di chi "segue" un tutorial, soprattutto se abbastanza "complesso" . . . Insomma, per quanto "inutile", bel lavoro, comunque . . . SCRIPT RGSS (RPG Maker XP) VINTAGE LIBRARY [2018+]http://www.rpg2s.net/forum/index.php/topic/21892-vintagevisualsrewrite-enhanced-revised-victory-screen-v-35-da-autori-vari-a-giver/ http://www.rpg2s.net/forum/index.php/topic/21868-eventing-utility-simple-last-battle-events-fix-v-30-by-giver/ http://www.rpg2s.net/forum/index.php/topic/21853-vintagerewrite-constance-menu-per-4-personaggi-da-team-constance-a-giver/ http://www.rpg2s.net/forum/index.php/topic/22126-vintagedoveroso-necroedit-dummy-title-22u-update-per-crearlo-ad-eventi-su-mappa-by-giver/ http://www.rpg2s.net/forum/index.php/topic/22127-vintagevisuals-tale-chapters-save-system-20-by-giver/ Breaking (in ogni senso) News: "Treno deraglia per via del seno di Sakurai Aoi . . ." - Info nello spoiler !! http://afantasymachine.altervista.org/_altervista_ht/NOOOOOOOOOilMIOtreninooooo_500.gifNon riesco a smettere di essere affascinato da immagini come questa . . .http://anime.vl-vostok.ru/art/photos2011/17/78049800/wall_VladAnime_WWA_1885-1680x1050.jpgAlcuni wallpapers che faccio ruotare sul mio vecchio PC . . .http://afantasymachine.altervista.org/_altervista_ht/gits_window.jpghttp://afantasymachine.altervista.org/_altervista_ht/madoka_group01.jpghttp://afantasymachine.altervista.org/_altervista_ht/arisu_picipici_01.jpghttp://afantasymachine.altervista.org/_altervista_ht/phantom_wp01_einzwei.jpg La parte più spassosa della mia vita è quando gli altri cercano di spiegarmi i miei pensieri . . . BBCode TestingTypeface & Size Link to comment Share on other sites More sharing options...
TheVillAngel Posted March 17, 2012 Author Share Posted March 17, 2012 Beh se non si confidasse in un minimo di intraprendenza altrui che senso avrebbe stare in una community, sicuramente tu avrai visto più di me, ma dal mio canto dico che io ho imparato tanto dai lavori altrui, e poi la forza di un maker sta proprio nel fare proprie le cose che impara, non sarà da tutti, come per tutte le cose al mondo, ma magari qualcuno ci sarà. Con questo non voglio dire che io mi senta migliore di altri o mi senta un maestro, cerco solo di trasmettere la mia seppur limitata esperienza. Chiudo la digressione perché sto andando OT, Però è bello anche parlare di queste cose :-). Ti ringrazio per i complimenti. premi(o XD)http://rpg2s.net/gif/SCContest1Oct.gifProgetto in corso: Light and DecaySI CERCA UN COLLABORATORE http://img42.imageshack.us/img42/4391/margot.jpgMy hysterical dog is watching you Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now