-
Posts
327 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Posts posted by TheVillAngel
-
-
Bella la schermata, complimenti! Purtroppo non so aiutarti con gli script, sorry.
-
Frenate un secondo... se non ricordo male su rpgmaker funzionava il tutto anche se era dentro lo stesso processo parallelo! ^ ^
Mmh quando fai muovi immagine c'è qualche opzione che dice tipo attendi la fine del movimento oppure aspetta tot secondi o qualcosa del genere? Cosa sono quei 120? ^ ^
Io uso Xp e l'opzione di cui parli dovrebbe essere per i movimenti dell'eroe o degli eventi, non delle picture. Non so se per VX sia diverso.
-
Azzardo, se il codice è in UN SOLO evento parallelo, è normale che esegua i comandi in ordine, devi usare un evento per ogni immagine.
Se non è questo il caso, dobbiamo vedere l'evento.
-
Più che altro mi preoccupano le proporzioni del palazzo rispetto al lago, ma non è un problema mio :-p
Ops doppio post incolpevole
-
Provato, sarà uno di quei passatempi che mi faranno incazzare come una bestia e che quindi mi piacciono tanto ^_^
-
Lo stavo guardando ora, devo pulire la mia bava :-Q____
-
Ah non avevo visto le rtp nel primo post, ma ci sono aggiunte in quelle che ho postato? non ho notato
-
Ti potrei dire 2-3 giorni, ma dipenderà da come starò messo quando finiscono loro e dalla complessità dell'unione delle mappe, se son terreni molto diversi, anche se me la cavicchio con le transizioni, mi preoccupa solo il 15x15, una transizione convincente avrebbe bisogno di un po' di spazio, ma penso di poter ovviare creando una mappa più grande e poi tagliando solo la parte che mi serve
-
Prenoto l'11, mi dovrò prendere la responsabilità di unire 7 e 10 ^_^
-
Per comodità lascio qui il tileset all in one delle rtp di XP (esterni soltanto, suppongo che si faccia una mappa esterna)
http://img202.imageshack.us/img202/4224/rpgmakerxpmegatilesetby.png
-
Certo, ma non ho ancora scelto lo slot.
Io comunque non gli darei un termine, pensa cosa potrebbe diventare negli anni *_*
-
Sembra fighissimo, ma non si dovrebbe scegliere almeno un tema?
E poi, farlo 15x15 non potrebbe creare qualche problema dato che le dimensioni minime della mappa sno 20x15, mi sbaglio?
-
Ovviamente ero ironico, rispetto i pareri di tutti.Per carità, qua nessuno è incontentabile, sono solo pareri e suggerimenti.
-
Certo che siete incontentabili, prima vi lamentate per le classi classiche e poi gridate allo scandalo per il mago con lo scudo XD. Chi vieta a un mago di tenersi in forma fisicamente? A me piace l'idea di classi poco rigide e con più varianti di gameplay, un mago che possa scegliere se allenare di più il corpo o lo spirito o comunque mantenerli equilibrati mi alletta
-
Mi hai scambiato per il topic starter :D. Sono così anonimo??? No dai, potevo sembrarlo in effetti, mi piace infilarmi in queste discussioni teoriche.Esatto, stavo per proporlo io... Però ricordo di aver usato un altro modo una volta... BOH! Ero un genio XD e ora non lo sono più D: ricordati di mettergli che il totale non può però essere inferiore a 1, se no sai, fortuna = 0... Eh si, ce l' ho col valore minimo... ù.ù vabbè dai, alla fine fai il cazzo che ti pare, però vedi che già ti è venuto in mente qualcosa? Ci sono tanti metodi per aggirare la "stupidità" del tool, bisogna solo ingegnarsi un pochino :3 Meglio che non esca il "divided by 0" però, li si sarebbero cazzi! XD
Ritornando IT pure sto metodo ha i suoi limiti, per valori bassi di fortuna si rischia che esca sempre 1
-
Si ma è luuuungo... Invece ora ho pensato ad un altro modo, si potrebbe creare un ciclo che sottragga alla variabile fortuna 1 da una a N volte, dove N è il valore massimo in assoluto che la variabile fortuna può assumere. Per valori di fortuna inferiori ad N si mette una condizione di fine ciclo per cui se fortuna (ridotta) minore di 1, poni fortuna uguale a 1, rompi ciclo. Ovviamente ci sarà una variabile contatore che aumenterà di 1 ad ogni sottrazione in modo che quando la variabile contatore sarà uguale al valore uscito dall'estrazione 1-N si rompa il ciclo. Non so se sono stato chiaro.
-
Volevo utilizzare anch'io una cosa del genere, non ricordo per cosa, ma mi pare che, perlomeno in xp, non ci sia la possibilità di estrarre un valore tra un numero e il valore di una variabile, sbaglio?Ti do' un prototipo di formula versatile che ho in mente da tempo, poi potrai metterci le opportune modifiche. Serve avere una stat che abbia l' utilità di "fortuna", o casualità:
(Attacco + Danno arma + numero a caso tra 1 e valore max della stat "fortuna") - difesa del nemico; con la condizionale di danno minimo inflitto di 1 punto (in modo che un nemico supercorazzato -che non abbia una resistenza o immunità specifica- non subisca sempre 0 punti di danno, ma almeno 1, a me personalmente da molto fastidio, si si).
-
Io solitamente utilizzo le percentuali, cioè un tot di punti in una stat aumentano il danno delle abilità, che hanno comunque un danno base, di x%, mentre la difesa diminuisce il danno subito sempre in percentuale, questo per evitare che, affrontando scontri magari di livello troppo basso si arrivi a valori di danno nulli o negativi.
-
Giusto un consiglio preliminare, metti i file in pdf che è un formato free, alcuni potrebbero non avere word. Appena avrò il tempo di leggere tutto commenterò il resto, comunque è una cosa utile e interessante.
-
Ricevuto l'mp?
-
Commento anch'io.
La storia mi sembra molto originale e ben pensata e mi ispira molto, anche se fondamentalmente c'entra poco mi ricorda molto hunter x hunter.
L'importanza che do alla grafica è davvero marginale, penso che basti un mapping ben curato per dare il piacere di giocarci, anche perché io in primis sono negatissimo in campo grafico.
Lato gameplay c'è poco da commentare e, a quanto ho capito, hai le idee poco chiare per quanto riguarda questo punto, mi permetto quindi di darti qualche suggerimento che mi è venuto nel frattempo. Naturalmente sono suggerimenti, che sei libera di accettare oppure no, son gusti ovviamente. Data la natura del gioco e la meta da raggiungere mi concentrerei molto su puzzle da risolvere lungo il percorso.
Un'idea un po' più strutturata invece mi é venuta per quanto riguarda il bs:
Il gioco fa perno sui sogni dei personaggi e sulle abilità che da essi derivano ai personaggi, per questo pensavo, perché non strutturare il bs proprio sull'attinenza ai sogni delle azioni dei pg in battaglia? Io farei un bs a turni su mappa, ogni pg ha a disposizione un determinato numero di abilità, alcune attinenti al suo sogno, altre meno. In base a quelle che decide di usare avrá una barra che andrà da bonus a malus, più si avvicinerá a bonus più abilità legate al sogno sbloccherà, più si avvicinerá a malus meno abilità del sogno avrà da usare fino al caso limite del blocco per qualche turno. Poi non inserirei un albero delle abilità, ma lascerei invece la possibilità di utilizzare tutte le abilità giá dall'inizio con, ovviamente, lo spostamento sulla barra più lento a livelli bassi e con uno sviluppo strutturato in questo modo:
Ogni livello puoi scegliere se assegnare un punto alle abilità legate al sogno o alle altre, nel primo caso aumenterà lo spostamento sulla barra ogni volta che ne userai una, nel secondo caso invece diminuirà lo spostamento verso il malus nel caso di uso di un'abilità non legata al sogno.
Ovviamente per funzionare un sistema del genere ha bisogno di battaglia strutturate in modo da essere affrontate in modi diversi, ad esempio lo speziale cura e buffa, ma, quale speziale, è, ad esempio, anche bravo con i veleni, abilità che però si allontanano dal suo sogmo, nel caso quindi di un nemico con una forza d'attacco elevata, si può decidere di adottare una strategia di resistenza, con lo speziale che cura e gli altri che attaccano, oppure di controllo e danno, con il nemico che viene bloccato e buttato giù con il veleno. La seconda strategia sarà magari più redditizia a breve termine perché si subiranno meno danni dal nemico bloccato, ma a lungo andare si rischia di perdere un pg per qualche turno. La seconda sarà invece difficoltosa all'inizio, con le piccole cure a disposizione, mentre efficace a lungo termine, con le cure forti sbloccate. Insomma avrai varietà di gameplay.
Ora so che non sei brava nella programmazione, ma non è un bs difficilissimo da programmare, quindi potrei anche aiutarti, con 2 premesse però: la prima è che non ho molto tempo a disposizione e quindi non so in quanto tempo sarei in grado di farlo, la seconda è che ho a disposizione solo l'xp e che quindi lo svilupperei su quello e tu dovresti riportarlo sul tuo progetto.
Se vuoi parlarne contattami per mp. Seguirò comunque il progetto che mi piace molto.
-
Potresti aprirlo in parlando del making (od avevi già fatto una cosa del genere? Mi par ci fosse! ^ ^) chiedendo specificatamente quali eventi chiedere e linkando i tuoi tutorial come esempio! ^ ^
Io no, se l'ha fatto qualcun altro me lo son perso, ci vado a dare un'occhiata, nel caso lo apro io. Prima però posto il prossimo tutorial di cui sono orgogliosissimo, perchè mi ha fatto penare, anche se sarà lunghetto da scrivere :(
-
Lunghetto! Per ora non posso provare, ma sicuramente interessante ed utile, soprattutto per la distanza action tra due pg :D :D
^ ^
Di questi tutorial c'è bisogno! ^ ^
E' più lunga la spiegazione che tutto il procedimento in realtà, alla fine son tre eventini, mi sono concentrato molto sulo spiegare la logica perchè alla fine è quella che aiuta i maker a crescere e a capire le potenzialità del tool.
Comunque sono cose belle e stimolanti da fare, mi piacerebbe che ci fosse un topic dove si possano porre delle questioni da tradurre in eventi che esulino dalle quelle classiche riproposte troppo spesso, perchè alla fine i miei tutorial vengono fuori dalle mie esigenze, con le esigenze di tutti può venire fuori tanta roba utile se si collabora.
Interessante e banale, ma molto utile per chi non se la cava con gli eventi.
Ricordo di averlo fatto in C++ su console. Feci un banale programmino, che facevano inserire all'utente le coordinate x,y del primo punto, e le coordinate x,y del secondo. Alla fine ho costruito un triangolo rettangolo sfruttando la distanza tra i due punti come l'ipotenusa di tale triangolo. Alla fine conoscendo l'altezza e la base, la quale si ricavava con una sottrazione delle due coordinate x e y, applicavo il teorema di pitagora. Sfizioso come cosa xD
Concordo, molte volte cose che possono sembrare difficili possono essere risolte in modo banale, e il bello della programmazione (anche se con rpg maker) sta proprio lì.
-
1. Introduzione
Per: RPG Maker XP/VX/Ace
Autore: TheVillAngel
Descrizione: Salve a tutti ragazzi, I'm back, questioni lavorative e universitarie mi hanno tenuto quasi un anno lontano dal making e dal mio progetto, ma questo non mi ha impedito, nei momenti morti, di utilizzare rpg maker per elaborare delle piccole aggiunte che serviranno al prosieguo del mio lavoro e spero possano aiutare anche voi.Il primo dei due tutorial che vi andrò a proporre tratta, come da titolo, l'implementazione dell'algoritmo per il calcolo della radice quadrata in rpg maker e un esempio del suo utilizzo, ossia il calcolo della distanza tra due punti, che nell'economia di rpg maker è utile per definire cosa succede quando due eventi, oppure l'eroe ed un evento, sono ad una certa distanza l'uno dall'altro, un esempio banale può essere la definizione del range di aggro di un npc ostile.
Per questioni legate all'utilizzo di numeri decimali, purtroppo, questo metodo è utilizzabile solo dall'XP in su, poichè attraverso una piccola modifica via script, che per l'XP troverete QUI, sarà possibile utilizzare i decimali soltanto su questi tools, o almeno credo, se qualcuno è in grado di smentirmi ne sarei felice.
Il prossimo tutorial invece tratterà un metodo di Pathfinding sempre ad eventi, di cui in un certo senso questo sarà propedeutico, ma non necessariamente, in quanto con altri metodi sarà possibile utilizzarlo comunque e, cosa più importante, su tutti i tools, il che è un'ottima cosa a mio avviso, data l'assenza di script su 2k e 2k3.
Detto questo, possiamo iniziare.
2. Tutorial
2.1 Teoria
Partiamo con un po' di teoria, utile a capire la logica che c'è dietro le operazioni che faremo, ma non necessaria, quindi, se volete, saltate al punto 2.2
Tra i diversi algoritmi esistenti per il calcolo della radice quadrata, il migliore e più facilmente applicabile al nostro Rpg Maker, nonchè quello usato anche da qualsiasi calcolatrice, è senza dubbio il Metodo di Erone, poichè è l'unico che, solo attraverso le 4 operazioni principali, (le uniche che il tool ci mette a disposizione) ci permette di estrarre la radice quadrata di un numero.
Il metodo di Erone parte dal presupposto che, dato un numero X e costruendo un rettangolo di con lati che misurino L1=X e L2=1, si possa arrivare, con approssimazioni successive, ad un quadrato di lato √X
Per fare ciò dovremo dunque calcolarci prima la media aritmetica dei due lati, per ottenere il primo lato del secondo rettangolo che si avicinerà al quadrato, in questo modo:
L1' = (L1+L2)/2
Per ottenere, invece, il secondo lato, dovremo dividere il lato originario L1 (che corrisponde ovviamente all'area del rettangolo, poichè L1 x L2= L1 x 1 = L1) per il nuovo lato L1', quindi avremo che
L2' = L1/L1'
questa operazione andrebbe ripetuta finchè L1n non sia uguale a L2n, ossia finchè i lati del quadrato siano uguali e corrispondano, quindi, alla radice quadrata del primo lato che era anche area del rettangolo, ma, per un'approssimazione già ottimale, basterà ripetere l'operazione circa 9 volte.
Confusi?
Facciamo un esempio numerico: troviamo la √4
ora sappiamo che L1 = 4 e L2 =1, quindi facciamo:
L1' = (4 + 1) / 2 = 5/2 = 2,5
L2'= 4/2,5 = 1,6
continuiamo
L1'' = (2,5 + 1,6) / 2 = 4,1/2 = 2,05
L2'' = 4/2,05 = 1,95
ancora
L1''' = (2,05 + 1,95) / 2 = 2
L2''' = 4/2 = 2
abbiamo trovato la radice quadrata di 4, cioè 2, allora perchè andare avanti, e soprattutto, cosa succede se andiamo avanti?
Per numeri più grandi, le 3 approssimazioni non sono sufficenti, ma continuare ad approssimare non avrà alcun effetto sulla radice già trovata, vediamo perchè:
L1'''' = (2 + 2) /2 = 2
L2'''' = 4/2 = 2
questa operazione dovrà essere quindi svolta 9 volte.
2.2 Implementazione
Passiamo all'implementazione via codice
avremo bisogno di un solo piccolo evento e di alcune variabili:
poniamo la variabile L2 = 1
la variabile L1 invece assumerà il valore del numero del quale vogliamo trovare la radice (chiamiamolo X)
L1 = X
creiamo poi la variabile contatore, inizializzandola uguale a 0. Questa ci servirà a sapere quante volte è stata fatta l'operazione di approssimazione e quindi quando il ciclo dovrà fermarsi.
contatore = 0
Ciclo
Aggiungiamo 1 alla variabile 'contatore'
contatore + 1
Poniamo la variabile L1' uguale alla variabile X, poichè X ci serve integro, utilizzeremo L1' per le operazioni
L1' = X
Sommiamo L1 ad L2 e dividiamo per 2 per ottenere il primo lato
L1+L2
L1/2
Dividiamo L1' per L1 per ottenere il secondo lato
L1'/L1
Poniamo L2 uguale a L1' per memorizzare il secondo lato
L2 = L1'
Ora diciamo al programma che se l'operazione è stata fatta 9 volte, può rompere il ciclo.
If contatore = 8
rompi ciclo
fine
2.3 Evento
ricapitolando, l'evento sarà
var L2 = 1
var L1 = X
var contatore = 0
loop
var contatore + 1
var L1' = X
var L1+ var L2
var L1 / 2
var L1'/ var L1
var L2 = var L1'
If var contatore = 8
break loop
end
2.4 Distanza tra due punti
Ora che abbiamo la nostra funzione per il calcolo della radice quadrata, l'implementazione della formula della distanza tra 2 punti sarà un giochetto da ragazzi, supponiamo di voler calcolare tale distanza tra il nostro eroe e l'evento 1
avremo bisogno di :
2.4.1 Evento su mappa
un evento su mappa in processo parallelo che rilevi le coordinate dell'eroe e dell'evento, quindi
var x = hero x
var y = hero y
var EV x = Ev001 x
var EV y = Ev002 y
2.4.2 Evento Comune
un evento comune in processo parallelo in cui impostare la nostra formula, che sappiamo essere √[(x2-x1)^2 + (y2-y1)^2]
dove
x2 = var x
x1 = var EV x
y2 = var y
y1 = var EV y
Ora, dato che, come sempre, i valori ci servono integri e non modificati dalle varie operazioni, eguaglieremo due nuove variabili (var distX e var distY) a var x e var y
var distX = var x
var distY = var y
successivamente faremo x2 - x1
var distX - var EV x
al quadrato
var distX * var distX
e y2 - y1
var distY - var EV y
al quadrato
var distY * var distY
ed ora l'addizione
var distX + var distY.
A questo punto ci basterà richiamare la funzione radice quadrata e sostituire a 'var L1 = X', 'var L1= var dist X'
common event: radice quadrata
2.4.3 Ricapitolando
gli eventi saranno quindi
Evento su mappa, processo parallelo
var x = hero x
var y = hero y
var EV x = Ev001 x
var EV y = Ev002 y
Evento comune in processo parallelo
var distX = var x
var distY = var y
var distX - var EV x
var distX * var distX
var distY - var EV y
var distY * var distY
var distX + var distY.
common event: radice quadrata
Evento radice quadrata modificato in questo modo
var L2 = 1
var L1 = var dist X
var contatore = 0
loop
var contatore + 1
var L1' = var dist X
var L1+ var L2
var L1 / 2
var L1'/ var L1
var L2 = var L1'
If var contatore = 8
break loop
end
ora nella variabile L1 avrete la vostra distanza tra i due eventi, con cui potrete fare quello che volete, ad esempio far si che se la distanza è minore di 5 tile, e quindi di 5, l'evento si avvicini all'eroe o viceversa, che si senta un determinato suono, ecc.
Bene, questa è la fine, sempre disponibile per qualsiasi domanda e a presto col nuovo tutorial.

RTP Mapping Collab. #1
in Contest
Posted
Ci sono ci sono, solo che al momento non so quanto tempo io riesca a dedicarci, quindi è probabile che io ci possa mettere più dei 3 giorni previsti, mi metto all'opera comunque!