//crea il file BerserkMode.js e salvalo nella cartella ./js/plugins del tuo progetto
var Imported = Imported || {};
Imported.Berserk_Mode = true;
var Berserk_Mode = BerserkMode || {};
//creiamo una variabile che tenga traccia della % degli Hp del personaggio:
var HPxCent = 0;
//creiamo una variabile che tenga traccia del limite del danno massimo:
var berserkLimit = 0.5;
//calcoliamo la % di Hp del personaggio:
function calcoloHPxCent() {
HPxCent = this._hp / this.mhp;
};
//gestiamo i danni del personaggio:
Game_Actor.prototype.gainHp = function(value){
this.hp += value;
if (this._hp > this.mhp){
this._hp = this.mhp;
}
calcoloHPxCent();
//verifichiamo se la % di HP sia inferiore al 25%:
if (HPxCent <= 0.25){
//assegna lo stato Berserk:
this.addState(berserkStateId);
}
};
//
Game_Actor.prototype.loseHp = function(value){
this._hp -= value;
if (this._hp < 0){
this._hp = 0;
}
calcoloHPxCent();
//verifichiamo se la % di HP sia inferiore al 25%:
if (HPxCent <= 0.25){
//assegna lo stato Berserk:
this.addState(berserkStateId);
}
};
//Rimozione Berserk:
Game_Actor.prototype.removeBerserk = function(){
this.removeState(berserkStateId)
//OPZIONALE: ripristina le statistiche originarie del Personaggio
//this._atk = this._originalAtk;
//this._def = this._originalDef;
//this._spd = this._originalSpd;
//ecc...
};
Spiegazione:
CI SONO 4 FUNZIONI PRINCIPALI nel Plugin che ti sto proponendo:
1.Determinare la % di hp del personaggio.
2.Gestire i danni che subisce.
3.Assegnargli lo status Berserk al raggiungimento di una certa %.
4.Rimuovere lo status terminata la battaglia.
(OPZIONALE)
5.recupera le caratteristiche originali terminato lo status.
Adesso occorre recarsi in rpg_manager.js riga 2679.
In pratica occorre modificare questa parte di codice:
BattleManager.endBattle = function(result) {
this._phase = 'battleEnd';
if (this._eventCallback) {
this._eventCallback(result);
}
if (result === 0) {
$gameSystem.onBattleWin();
} else if (this._escaped) {
$gameSystem.onBattleEscape();
}
};
Ottenendo quest'altro risultato:
BattleManager.endBattle = function(result) {
this._phase = 'battleEnd';
if (this._eventCallback) {
this._eventCallback(result);
}
if (result === 0) {
$gameSystem.onBattleWin();
} else if (this._escaped) {
$gameSystem.onBattleEscape();
}
this.allBattleMembers().forEach(function(battler) {
battler.removeBerserk();
}, this);
};
Come vedi abbiamo aggiunto questa porzioncina di qua:
this.allBattleMembers().forEach(function(battler) {
battler.removeBerserk();
}, this);