Jump to content
Rpg²S Forum

Formule dal danno e suoi molteplici usi


Ischenderun
 Share

Recommended Posts

Alle volte capitano quesiti a cui può rispondere la formula del danno. Non sempre questa strada può essere una via praticabile però.

Per questo, oltre a mostrarvi solo alcune dei suoi possibili usi, vi inserirò un articolo di Yanfly sul perchè sconsiglia tale pratica.

 

Note sulle condizioni:
Una condizione nella sua forma più comune viene rappresentata con:
If(condizione)
{ *codice da sviluppare nel caso la condizione sia vera
}else{
*codice da sviluppare nel caso la condizione NON sia vera
}

Ma noi abbiamo solo una riga pre inserire il codice quindi abbiamo 2 vie praticabili:
1) scrivere la condizione if tutta su un unica linea
2) usare l'operatore ternario che ci semplifica la scrittura della condizione
Operatore ternario:
b.isStateAffected(10) ? 10000 : 1;

tutto ciò che viene prima del "?" è la nostra condizione (l'if che abbiamo usato prima)
quello che viene dopo il "?" è il codice che si attiva se la condizione è soddisfatta.
i ":" rappresentano l nostro else.
Quindi se la condizione non è soddisfatta si attiva il codice che si trova dopo i ":"

- Obiettivo:
- la a si riferisce sempre a chi compie l'azione
- la b si riferisce al bersaglio dell'azione

- Cambiare HP/MP/TP
gainHp(value) - ristora HP del valore indicato (valori negativi vanno in sottrazione)
gainMp(value) - ristora MP del valore indicato (valori negativi vanno in sottrazione)
gainTp(value) - ristora TP del valore indicato (valori negativi vanno in sottrazione)
es. a.gainHp(32)


setHp(hp) - setta HP al valore indicato
setMp(mp) - setta MP al valore indicato
setTp(tp) - setta TP al valore indicato
E.g. a.setHp(a.mhp)
E.g. a.setHp(a.hp + 100)

clearTp() - setta i TP a 0


- Stati e controllo

isStateAffected(stateId) - controlla se attaccante o difensore sono affetti dallo stato con un determinato ID
Es. b.isStateAffected(10) ? 10000 : 1;

isDeathStateAffected() - controlla se attaccante o difensore sono affetti dallo stato morte.
Es b.isDeathStateAffected() ? 10000 : 1;

resetStateCounts(stateId) - resetta i turni per uno stato in corso ad un determinato valore.
if (b.isStateAffected(10)) b.resetStateCounts(10); 100


addState(stateId) - aggiunge lo stato ad attaccante o difensore
if (!b.isStateAffected(10)) b.addState(10); 100


removeState(stateId) - rimuove lo stato ad attaccante o difensore
if (a.isStateAffected(10)) a.removeState(10); 0


- Buff e debuff:
addBuff(paramId, turns) - aggiunge il buff
a.addBuff(0, 3); b.def*10

addDebuff(paramId, turns) - aggiunge il debuff
b.addDebuff(2, 10); 9999

removeBuff(paramId) - rimuove il buff
removeAllBuffs() - rimuove il debuff

ID Parametri :

0 - Max HP
1 - Max MP
2 - Attack
3 - Defence
4 - Magic Attack
5 - Magic Defence
6 - Agility
7 - Luck

Codice veloce:

die() - uccide il bersaglio
b.die(); 0

revive() - rianima il bersaglio
a.revive(); 1000

paramBase(paramId) - prende il parametro base
a.paramBase(3)*10 - b.def*2


paramMax(paramId) - prende il massimo valore per il parametro
b.paramMax(0)

isStateResist(stateId) - controlla se il bersaglio resiste ad uno stato
es. c=0; b.isStateResist(10) ? c+=2000 : b.addState(10); c

 

Oggetti:

consumeItem(item) - consuma oggetti
a.consumeItem($dataItems[15]); 100



Solo Attori:
currentExp() - EXP correnti
currentLevelExp() - EXP needed for current level
nextLevelExp() - EXP needed for next level
nextRequiredExp() - EXP left until next level
maxLevel() - max level of actor
isMaxlevel() - is actor max level (true/false)
hasWeapon() - is actor wielding a weapon (true/false)
hasArmor() - is actor wearing any armor (true/false)
clearEquipments() - unequip everything actor is wearing
isClass(gameClass) - checks if actor is of a class (gameClass - $dataClasses[iD])
hasNoWeapons() - checks if actor doesn't have any weapons
levelUp() - levels actor up
levelDown() - level actor down
gainExp(exp) - gives actor exp
learnSkill(skillId) - makes actor learn a skill
forgetSkill(skillId) - makes actor forget a skill
isLearnedSkill(skillId) - checks if actor has a skill learned
actorId() - returns Actor's ID


Solo nemici:
enemyId() - returns Enemy's ID

Formule:
Math.random() - ritorna un valore numerico pseudocasuale compreso tra 0 e 1 (0 <= n < 1)
Ma esiste anche
Math.randomInt()- ritorna un valore numerico intero pseudocasuale compreso tra 0 e 1

Per ottenere quindi un valore casuale compreso tra 1 e ad esempio 20 faremo:
Math.randomInt(20)+1

Math.round(number) - Arrotonda un valore numerico all'intero più vicino
Math.ceil(number) - Arrotonda un valore numerico all'intero in eccesso
Math.floor(number) - Arrotonda un valore numerico all'intero in difetto

 

Articolo di Yanfly che ne sconsiglia l'uso per alcune dinemiche:

http://www.yanfly.moe/wiki/Stop_Putting_Mechanics_in_Damage_Formulas

 

Quindi dosate bene questa possibilità e valutate sempre se una formula più complessa può fare al caso vostro oppure no.

Buon making a tutti!

Edited by Ischenderun

☆Polvere di Stelle☆ ora anche su itch.io: https://ischenderun.itch.io/polvere-di-stelle

 

Non ho particolari talenti, sono soltanto appassionatamente curioso.
Siate affamati, siate folli, perché solo coloro che sono abbastanza folli da pensare di poter cambiare il mondo lo cambiano davvero.

Ad maiora semper


HUks2tu.gif

 

Contatto Facebook : https://www.facebook.com/Ischenderun/

Pagina Facebook: https://www.facebook.com/Rpg-Maker-Mv-ed-Mz-100937052104281

 

4753.png

Link to comment
Share on other sites

Ottimo elenco di formule, tradotto poi, quindi più che comodo averlo qui.

^ ^

 

 

Mi è sfuggito un po' il punto iniziale, però! XD

All'inizio dici che non è sempre una via praticabile, ma fai solo l'esempio dell'if con l'operatore ternario, e poi c'è un elenco di formule utili da utilizzare, in quali casi sarebbe sconsigliata la cosa? Solo se diventa troppo lunga? ^ ^

(\_/)
(^ ^) <----coniglietto rosso, me!
(> <)


Il mio Tumblr dove seguire i miei progetti, i progetti della Reverie : : Project ^ ^

http://i.imgur.com/KdUDtQt.png disponibile su Google Play, qui i dettagli! ^ ^

http://i.imgur.com/FwnGMI3.png completo! Giocabile online, qui i dettagli! ^ ^

REVERIE : : RENDEZVOUS (In allenamento per apprendere le buone arti prima di cominciarlo per bene ^ ^) Trovate i dettagli qui insieme alla mia intervista (non utilizzerò più rpgmaker) ^ ^

 

SUWOnzB.jpg 🖤
http://www.rpg2s.net/dax_games/r2s_regali2s.png E:3 http://www.rpg2s.net/dax_games/xmas/gifnatale123.gif
http://i.imgur.com/FfvHCGG.png by Testament (notare dettaglio in basso a destra)! E:3
http://i.imgur.com/MpaUphY.jpg by Idriu E:3

Membro Onorario, Ambasciatore dei Coniglietti (Membro n.44)

http://i.imgur.com/PgUqHPm.png
Ufficiale
"Ad opera della sua onestà e del suo completo appoggio alla causa dei Panda, Guardian Of Irael viene ufficialmente considerato un Membro portante del Partito, e Ambasciatore del suo Popolo presso di noi"


http://i.imgur.com/TbRr4iS.png<- Grazie Testament E:3
Ricorda...se rivolgi il tuo sguardo ^ ^ a Guardian anche Guardian volge il suo sguardo ^ ^ a te ^ ^
http://i.imgur.com/u8UJ4Vm.gifby Flame ^ ^
http://i.imgur.com/VbggEKS.gifhttp://i.imgur.com/2tJmjFJ.gifhttp://projectste.altervista.org/Our_Hero_adotta/ado2.png
Grazie Testament XD Fan n°1 ufficiale di PQ! :D

Viva
il Rhaxen! <- Folletto te lo avevo detto (fa pure rima) che non
avevo programmi di grafica per fare un banner su questo pc XD (ora ho di
nuovo il mio PC veramente :D)

Rosso Guardiano della
http://i.imgur.com/Os5rvhx.png

Rpg2s RPG BY FORUM:

Nome: Darth Reveal

 

PV totali 2
PA totali 16

Descrizione: ragazzo dai lunghi capelli rossi ed occhi dello stesso colore. Indossa una elegante giacca rossa sopra ad una maglietta nera. Porta pantaloni rossi larghi, una cintura nera e degli stivali dello stesso colore. E' solito trasportare lo spadone dietro la schiena in un fodero apposito. Ha un pendente al collo e tiene ben legato un pezzo di stoffa (che gli sta particolarmente a cuore) intorno al braccio sinistro sotto la giacca, copre una cicatrice.
Bozze vesti non definitive qui.

Equipaggiamento:
Indossa:
60$ e 59$ divisi in due tasche interne
Levaitan

Spada a due mani elsa lunga

Guanti del Defender (2PA)
Anello del linguaggio animale (diventato del Richiamo)

Scrinieri da lanciere (2 PA)

Elmo del Leone (5 PA)

Corazza del Leone in Ferro Corrazzato (7 PA)

ZAINO (20) contenente:
Portamonete in pelle di cinghiale contenente: 100$
Scatola Sanitaria Sigillata (può contenere e tenere al sicuro fino a 4 oggetti curativi) (contiene Benda di pronto soccorso x3, Pozione di cura)
Corda
Bottiglia di idromele
Forma di formaggio
Torcia (serve ad illuminare, dura tre settori)

Fiasca di ceramica con Giglio Amaro (Dona +1PN e Velocità all'utilizzatore)
Ampolla Bianca

Semi di Balissa

 

CAVALLO NORMALE + SELLA (30 +2 armi) contentente:
66$
Benda di pronto soccorso x3
Spada a due mani

Fagotto per Adara (fazzoletto ricamato)


 

Link to comment
Share on other sites

No, è in base a quello che Yanfly cita nel suo articolo. Ho modificato il post in modo che sia più intuitivo ;)

☆Polvere di Stelle☆ ora anche su itch.io: https://ischenderun.itch.io/polvere-di-stelle

 

Non ho particolari talenti, sono soltanto appassionatamente curioso.
Siate affamati, siate folli, perché solo coloro che sono abbastanza folli da pensare di poter cambiare il mondo lo cambiano davvero.

Ad maiora semper


HUks2tu.gif

 

Contatto Facebook : https://www.facebook.com/Ischenderun/

Pagina Facebook: https://www.facebook.com/Rpg-Maker-Mv-ed-Mz-100937052104281

 

4753.png

Link to comment
Share on other sites

Molto utile! Io le formule con if al momento le sto scrivendo per intero ma effettivamente la seconda alternativa è molto più snella!

Grazie per le info Ische, mi torneranno utilissime.

<< In FF8 Irvine conosce tutti ma non lo dice fino al 2° CD >>


Segui i miei vari lavoretti in queste pagine:

 

GAME DEV (Attualmente in lavorazione: 5th ERA)

https://missingseven.itch.io/ - https://gamejolt.com/@MissingSeven - https://twitter.com/missing_seven

 

DISEGNI

https://www.instagram.com/lollob_art/ - https://www.deviantart.com/lbillustrator

 

FAI IL BRAVO E GIOCA A THEIA!

http://www.theiarpg.com

Link to comment
Share on other sites

Molto utile! Io le formule con if al momento le sto scrivendo per intero ma effettivamente la seconda alternativa è molto più snella!

Grazie per le info Ische, mi torneranno utilissime.

Dai un occhio anche alle dritte di Yanfly, a me è capitata una cosa simile a quella descritta da Yanfly. Comunque per le abilità non troppo complesse va benissimo 😉

☆Polvere di Stelle☆ ora anche su itch.io: https://ischenderun.itch.io/polvere-di-stelle

 

Non ho particolari talenti, sono soltanto appassionatamente curioso.
Siate affamati, siate folli, perché solo coloro che sono abbastanza folli da pensare di poter cambiare il mondo lo cambiano davvero.

Ad maiora semper


HUks2tu.gif

 

Contatto Facebook : https://www.facebook.com/Ischenderun/

Pagina Facebook: https://www.facebook.com/Rpg-Maker-Mv-ed-Mz-100937052104281

 

4753.png

Link to comment
Share on other sites

Io principalmente le cambio per le condizioni sugli status. Le cose più complesse le gestisco direttamente dalle Action Sequence/Eventi Comuni XD

<< In FF8 Irvine conosce tutti ma non lo dice fino al 2° CD >>


Segui i miei vari lavoretti in queste pagine:

 

GAME DEV (Attualmente in lavorazione: 5th ERA)

https://missingseven.itch.io/ - https://gamejolt.com/@MissingSeven - https://twitter.com/missing_seven

 

DISEGNI

https://www.instagram.com/lollob_art/ - https://www.deviantart.com/lbillustrator

 

FAI IL BRAVO E GIOCA A THEIA!

http://www.theiarpg.com

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...