Jump to content
Rpg²S Forum

IL LABORATORIO (tips and tricks di Yanfly da Mv a Mz e trucchi vari)


Ischenderun
 Share

Recommended Posts

Inizio questa nuova rubrica con il passaggio di alcuni tips and tricks di Yanfly da mv ad mz(quelli funzionanti con i core a contributo libero) , visto che i tag di codice sono leggermente cambiati . Ma qui non troverete solo questo , sono infatte tante le personalizzazioni ed esperimenti che ho fatto per creare nuovi effetti per abilità ,oggetti ecc....
Vi inserirò in codice le spiegazioni necessarie per capirne l'uso e padroneggiare questo per i vostri esperimenti futuri , se avete domande , dubbi , perplessità scrivete pure , se sarò in grado di rispondere alla vostra richiesta sarò ben felice di aiutarvi
Attenzione : l' aggiornamento di questa rubrica potrebbe non essere regolare nel tempo .

Autore originale : Yanfly
Fonte : Thornmail (MV Plugin Tips & Tricks)
Requisiti : Engine core, state core, battle core di Visustella plugin
Credits : Visustella , Yanfly , Kadokawa , Degica

Effetto Armatura : se ricevete del danno derivante da attacchi fisici restituirete all'attaccante un danno pari al 50% del danno causato a voi + un ulteriore danno bonus pari al 25% del valore DIFESA del personaggio.Ovviamente il codice è personalizzabile come volete .

1) Database -> Armature : "agganciate" l'armatura con lo stato che ospita il codice dell'effetto scrivendo in nota
<Passive State: nome_dello_stato>
in questo esempio io ho dato lo stesso nome ad armatura e stato per poterlo reperire facilmente . Lo stato che avrà il pg quando indossa quest'armatura è uno stato passivo , questo significa che l'effetto è attivi fintanto che l'oggetto è equipaggiato. Io non ho dato nessun altro valore ,voi potete personalizzarla come vi pare
2hTRIbh.png

2) Database -> Stati : andiamo a creare il nostro stato passivo tramite codice javascript . Non toccate le opzioni , agiremo solo sulla casella nota dello stato andando ad inserire il codice che troverete dopo l'immagine di esempio . Tutto ciò che segue // è un commento con spiegazione del codice , io vi consiglio di eliminarlo se fate copia/incolla
gBdY1YK.png

Spiegazione del Codice (dopo la spiegazione troverete il codice "pulito" da copiare e incollare) :
<JS Pre-Damage as Target>
// Controlla se esiste un valore
maggiore di 0 (dunque un danno valido).
// controlla se è un attacco fisico
if (value > 0 && this.isPhysical()) {
// Imposta un valore percentuale del
50% usato per il danno di ritorno ,
tale valore va espresso con la
virgola.
// se volessi ad esempio un danno di
ritorno del 70% metterei nella
variabile rate un valore di 0.7
var rate = 0.5;
// Determina il calcolo della
percentuale del danno impostato nella
riga precedente
// in relazione al danno fisico
ricevuto
var recoil = value * rate;
// Imposta un valore che verrà usato
per causare danni bonus(vedi prossima
riga)
var rate = 0.25;
// Determina i danni bonus pari al 25%
del valore DIFESA
var bonus = target.def * rate;
// Somma e arrotonda i danni
complessivi.
var dmg = Math.ceil(bonus + recoil);
// Causa il danno all'attaccante.
user.gainHp(-1 * dmg);
// Controlla se l'attaccante è morto
// e se è morto (0 pv) lo elimina dalla
battaglia
if (user.isDead()) {
user.performCollapse();
}
}
</JS Pre-Damage as Target>

<JS Pre-Damage as Target>
if (value > 0 && this.isPhysical()) {
 var rate = 0.5;
 var recoil = value * rate;
 var rate = 0.25;
 var bonus = target.def * rate;
 var dmg = Math.ceil(bonus + recoil);
 user.gainHp(-1 * dmg);
  
 if (user.isDead()) {
    user.performCollapse(); 
 }
}
</JS Pre-Damage as Target>

Varianti :

- Abilità di supporto : se invece che ad un'oggetto preferite attribuire l'effetto ad un'abilità inserite il codice all'interno delle note dell'abilità .

All'interno della finestra effetti inserite : aggiungi stato "nome_dello_stato"

2) Database -> Stati : visto che l'effetto ora è legato ad una abilità occorre selezionare "rimuovi dopo scontro" e impostare la durata in turni .

 

- Restituzione danno contro attacchi magici : sostituite "this.isPhysical()" con "this.isMagical()"

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

  • 3 weeks later...

Legame di cura

 

Autore originale : Yanfly
Fonte : Healing link (MV Plugin Tips & Tricks)
Requisiti : Engine core, state core, battle core di Visustella plugin
Credits : Visustella , Yanfly , Kadokawa , Degica

 

Effetto Abilità di supporto : quando l'alleato sotto l'effetto di legame di cura riceve cure da incantesimi (oggetti esclusi) chi ha lanciato l'incantesimo recupera il 50% della cura ricevuta dall'alleato.

 

link al video dimostrativo di Yanfly:

 

 

procedura:

1) Stato: create uno stato impostando durata e flaggando rimuovi dopo scontro.
sulla finestra note copiate ed incollate il seguente codice:

<JS Post-Damage as Target>
if (value < 0) {
  var heal = Math.floor(value * 0.5);
  origin.gainHp(-heal);
  origin.startDamagePopup();
  origin.clearResult();
}
</JS Post-Damage as Target>

spiegazione:

// se il valore del danno è negativo,cioè che il bersaglio non riceve danno ma cure

if (value < 0) {
// salviamo in una variabile il valore arrotondato di metà delle cure ricevute dall'alleato

var heal = Math.floor(value * 0.5);

// colui che ha dato origine all'effetto riceve lo stesso ammontare di cure dell'alleato - la percentuale impostata nella variabile "heal"

origin.gainHp(-heal);

// effetto visivo su chi ha generato l'incantesimo

origin.startDamagePopup();
origin.clearResult();

 

Potete decidere la percentuale che riceve colui che ha dato origine all'effetto manipolando lo 0.5 che trovate dentro la variabile "heal" . es. 0.25 per ricevere il 25% del valore ecc....

 

2) abilità : in EFFETTI mettete aggiungi stato legame di cura 100% .

 

Fine

☆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

  • 3 weeks later...

Livello di difficoltà : BASSO

E rieccomi qua!, stavolta con un TRICK personale tirato fuori sempre dai plugin visustella (dovevo metterlo millenni fa , dimenticato :P) .

Sicuramente vi sarà capitato di chiedervi : " come posso fare per mostrare valore corrente e massimo degli HP ed MP su menu e battaglia ?" .
Andiamolo a scoprire!

Requisiti : plugin core di Visustella ( noi agiremo sullo SkillsStatesCore).

Entrate dentro il plugin dello SkillsStateCore e seguite il percorso mostrato in immagine:
SkillsStatesCore/Skill Cost Types/HP setting
iotHc2h.png

Troverete un listone di cose già impostate , non toccate nulla !!!!. Andate sull'ultimo punto trattato qui , quello nominato
// Draw Value (tutta questa parte tratta ed imposta il testo visualizzato per gli hp , dunque è quello che ci interessa ).
Andate sull' ultima riga
bitmap.drawText (currentValue, 0, 0, vw, vh, "right");
ed modificatela come segue (potete copiare ed incollare) :

bitmap.drawText(currentValue + '/' + user.mhp, 0, 0, vw, vh, "right");

Cosa stiamo facendo?
stiamo (gentilmente) chiedendo alla parte che si occupa di scrivere il testo legato ai numeri per gli hp di aggiungere il valore massimo degli hp .
Quel: user.mhp serve a questo , prende il valore degli hp massimi.

CwPX1Hu.png

Final result :

Prima e dopo :
8dcFSMn.png

Per gli Mp la pricedura è la stessa : andate sulla parte che tratta gli mp e sostituite l'ultima riga (come già visto in precedenza) con :

bitmap.drawText(currentValue + '/' + user.mmp, 0, 0, vw, vh, "right");

Ma vi aggiungo di più .

vedete quel "right" messo tutto a destra?, bene, modificandolo in "left" avrete il testo per hp/mp a sinistra . Mentre con "center" avrete le scritte al centro .

Ovviamente potreste cambiare anche altro come altezza , colore ecc. ma lascio a voi questi esperimenti , in tal caso vi consiglio di sperimentare in modalità mirror , ovvero creare un nuovo progetto e pasticciare li' in modo che il vostro progetto originale non venga compromesso da eventuali errori e bug in cui potreste incappare .


Buon divertimento

TGuvHMm.png

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

  • 11 months later...

Fonte: Doom da trip and tricks di yanfly per la versione mv

 

-- DOOM --

Quando il bersaglio è affetto dallo stato Doom questo morirà quando il contatore dello stato arriva a zero

 

Codice da inserire sullo stato :

<JS On Erase State>

const deathState = user.deathStateId();

if (user.stateRate(deathState) > 0.01 && !user.isStateResist(deathState)) {

$gameTemp.requestAnimation([user], 65);

user.setHp(0);

}

</JS On Erase State>

☆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

Allora non sono solo io a cui piace vedere HP E MP in orizzontale :D Infatti quando nei combattimenti vedi solo gli HP o gli MP senza vedere gli MP massimi non mi piace mai.

L'armatura di spine custom sembra molto utile, con una leggera modifica si potrebbe fare come in Doom dove se gli MP fossero l'Armor di turno invece di tankare danni con gli MP si divide il danno tra HP e MP in percentuali diverse, l'Healing Link sembra decisamente OP e non so quando potresti usarlo nel gioco. Doom è uno status iconico che hai fatto bene a ricreare!

Dovrei smanettare molto di più con Javascript su RPG Maker (attualmente uso MV) e stavo cercando proprio delle guide! :D Bravissimo e ottima idea (anche se adesso mi sento in colpa di averti rovinato lo streak di messaggi D: ) :) Buona giornata!

Link to comment
Share on other sites

Allora non sono solo io a cui piace vedere HP E MP in orizzontale :D Infatti quando nei combattimenti vedi solo gli HP o gli MP senza vedere gli MP massimi non mi piace mai.

 

L'armatura di spine custom sembra molto utile, con una leggera modifica si potrebbe fare come in Doom dove se gli MP fossero l'Armor di turno invece di tankare danni con gli MP si divide il danno tra HP e MP in percentuali diverse, l'Healing Link sembra decisamente OP e non so quando potresti usarlo nel gioco. Doom è uno status iconico che hai fatto bene a ricreare!

 

Dovrei smanettare molto di più con Javascript su RPG Maker (attualmente uso MV) e stavo cercando proprio delle guide! :D Bravissimo e ottima idea (anche se adesso mi sento in colpa di averti rovinato lo streak di messaggi D: ) :) Buona giornata!

Hai fatto benissimo invece, tutto ciò che posto è aperto e ampliabile da tutti quelli che hanno voglia di dare un valore aggiunto. I tip trattati non sono miei, provengono dalla sezione di tip and trick di Yanfly per mv ma le personalizzazione che aprono sono diverse. Per adesso mi limito a farne il porting per la versione Mz quando possibile e con qualche variante (quando possibile). Doom mi piace come abilità legata a qualche boss particolarmente ostico ma potrebbe anche essere usato per concedere potenziamenti particolarmente forti dopo un lasso di tempo. Le varianti che si possono creare sono svariate, ti consiglio uno sguardo a quella sezione di Yanfly, è illuminante 😉

 

Quello che hai proposto per l'armatura esiste già come trick, agisce distribuendo parte dei danni agli mp, personalizzabile anche in modo che i danni siano causati ai soli mp (fintanto che siano >di 0). Appena possibile inserisco il porting e una mia variante dove puoi attivare e disattivare questo stato a piacimento

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

@MichaelPrimo

Se ho capito bene, lo stato che suggerivi provoca danni all'attaccante in base agli attuali mp del bersaglio. Danni che si dividono tra hp ed mp in percentuali diverse. Se è corretto ciò che ho capito il codice, da inserire nelle note dello stato, sarebbe questo (sotto trovi i tag per la versione mv):

 

<JS Pre-Damage as Target>

if (value > 0) {

var dmgHp = Math.ceil(target.mp * 0.5);

var dmgMp = Math.ceil(target.mp * 0.25);

user.gainHp(-1 * dmgHp);

user.gainMp(-1 * dmgMp);

 

if (user.isDead()) {

user.performCollapse();

}

}

</JS Pre-Damage as Target>

 

 

Tag per la versione mv.

Requisiti : plugin core yanfly

<Custom React Effect>

Code

</Custom React Effect>

 

Sentiti libero di scrivere il codice corretto nel caso io avessi capito male 👍

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

  • 3 weeks later...

Skill che usa tutti i tp attuali per fare danni bonus, i danni bonus sono basati sui tp spesi.

Con qualche modifica può anche essere usata come danno bonus percentuale.

Sulla barra della formula inserire v[id_variabile] ......

<JS Pre-Start Action>
var x = user.tp;
$gameVariables.setValue(id_variabile,x)
user.gainTp(-user.tp);
target.startDamagePopup();
</JS Pre-Start Action>

la versione per mv è la stessa con tag <Before Eval>

 

Per entrambe le versioni serve almeno il plugin skill core

☆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

Skill che usa tutti i tp attuali per fare danni bonus, i danni bonus sono basati sui tp spesi.

Con qualche modifica può anche essere usata come danno bonus percentuale.

Sulla barra della formula inserire v[id_variabile] ......

<JS Pre-Start Action>
var x = user.tp;
$gameVariables.setValue(id_variabile,x)
user.gainTp(-user.tp);
target.startDamagePopup();
</JS Pre-Start Action>

la versione per mv è la stessa con tag <Before Eval>

 

Per entrambe le versioni serve almeno il plugin skill core

 

Mi piace molto! Bisognerebbe inventare delle skill simili anche per gli MP, come l'Esplosione di MP di Dragon Quest (usi tutti gli MP per fare un danno ingente e più MP hai e meglio è) oppure skill che ricaricano il 50% di MP e simili. Keep going, stai realizzando script utilissimi! :)

Link to comment
Share on other sites

Mi piace molto! Bisognerebbe inventare delle skill simili anche per gli MP, come l'Esplosione di MP di Dragon Quest (usi tutti gli MP per fare un danno ingente e più MP hai e meglio è) oppure skill che ricaricano il 50% di MP e simili. Keep going, stai realizzando script utilissimi! :)

Ti ringrazio, sono piccoli script che ogni tanto mi vengono in mente per variegare le abilità.

Esplosione di mp: si può usare il codice che ho scritto, basta sostituire la dicitura tp con mp e aggiungere una variabile per la personalizzazione dei dani bonus (moltiplicatori, percentuali ecc.).

 

Skill ricarica: usa tutti i tp accumulati per risanare dello stesso ammontare gli mp di un bersaglio

<JS Pre-Start Action>
target.gainMp(user.tp);
user.gainTp(-user.tp);
target.startDamagePopup();
</JS Pre-Start Action>

ricarica in percentuale : i tp spesi determinano la percentuale di ricarica (in questo caso si spendono sempre tutti)

<JS Pre-Start Action>
let percentuale = user.tp/100;
let recupero = Math.round(target.mhp * percentuale);
target.gainMp(recupero);
user.gainTp(-user.tp);
target.startDamagePopup();
</JS Pre-Start Action>

(la variante mv usa sempre i tag <before eval>)

 

 

☆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

  • 1 year later...

Nota: lo script è valido anche per la versione Mv

 

Scriptino per tramutare oggetti dell'inventario in moneta sonante (ma anche se non suona va bene lo stesso).

 

Esempio di utilizzo: un npc vi propone 5 Gold per ogni pietra del "vattelapesca" che gli portate.

 

Come usare:

Richiamate il comando evento "script" e mettete dentro il seguente codice.

 

// Item ID: id oggetto in database 
const itemID = 3;

// Gold x item:quanto ottenete per singolo oggetto 

const goldItem = 5;

// check num item: controllo numero oggetti nell'inventario 

let itemCount = $gameParty.numItems($dataItems[itemID]);

// check item and add gold: calcolo 
if (itemCount > 0) {
  // Add gold
  $gameParty.gainGold(itemCount*goldItem);

  // lose item: sottrae tutti gli oggetti interessati
$gameParty.loseItem($dataItems[itemID], itemCount);
};
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

Nota: lo script è valido anche per la versione Mv.

 

Ottenere come ricompensa un oggetto casuale.

 

Esempio : dentro uno scrigno facciamo trovare al giocatore un oggetto casuale.

Lo so, questa è una dinamica che è possibile creare tramite i comandi evento, ma se vogliamo avere una scelta di oggetti casuali molto ampia diventerebbe un delirio scrivere i vari controlli e aggiungere gli oggetti.

 

Dove deve essere messo il codice : create un comando evento script dentro l'evento della cassa oppure, se questa dinamica viene richiamata da ogni cassa, inserite lo script su un evento comune per poi richiamarlo su ogni evento mappa della vostra cassa del tesoro.

 

// ID degli oggetti per la pesca casuale
var inventario = [6, 2, 10, 8, 5];
// valore casuale per la pesca
var casuale = Math.randomInt(inventario.length);
// estrapoliamo l'id dell'oggetto casuale
var oggettoId = inventario[casuale];
var item = $dataItems[oggettoId];
// aggiungiamo l'oggetto al party (solo uno in questo caso)
$gameParty.gainItem(item, 1);
// estrapoliamo nome e icona oggetto
var itemName = item.name;
var itemIcon = item.iconIndex;
// creiamo un messaggio di testo con icona e nome (posizione inferiore)
$gameMessage.add('Trovi : ' + '\\i[' + itemIcon + ']' + itemName);
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

  • 1 year later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...