[SOLVED]Adding state info to Libra skill

MikaTeapot

Villager
Member
Joined
Mar 25, 2019
Messages
26
Reaction score
4
First Language
English
Primarily Uses
RMMV
Hello, I wonder if anyone can help me with upgrading Yanflys Libra. At present I have this;
JavaScript:
<Before Eval>

if (target.isEnemy()) {

  var id = target._enemyId;

  var evatot = target.eva * 100

  var critot = target.cri * 100

  var hittot = target.hit * 100

  var text = target.name() + '\n';

  text += '\\px[100]\\c[4]M.Hp:\\c[0] ' + target.hp;

  text += '/' + target.mhp;

  text += '\\px[400]\\c[4]M.Mp:\\c[0] ' + target.mp;

  text += '/' + target.mmp;

  text += '\\px[700]\\c[4]TP:\\c[0] ' + target.tp;

  text += '\n';

  text += '\\px[100]\\c[4]Atk:\\c[0] ' + target.atk;

  text += '\\px[400]\\c[4]M.Atk:\\c[0] ' + target.mat;

  text += '\\px[700]\\c[4]Agi:\\c[0] ' + target.agi;

  text += '\n';

  text += '\\px[100]\\c[4]Def:\\c[0] ' + target.def;

  text += '\\px[400]\\c[4]M.Def:\\c[0] ' + target.mdf;

  text += '\\px[700]\\c[4]Luk:\\c[0] ' + target.luk;

  text += '\n';

  text += '\\px[100]\\c[4]Eva:\\c[0] ' + evatot.toFixed(2) + '%';

  text += '\\px[400]\\c[4]Crit:\\c[0] ' + critot.toFixed(2) + '%';

  text += '\\px[700]\\c[4]Hit:\\c[0] ' + hittot.toFixed(2) + '%';

  $gameSystem._messageRows = 5;

  $gameMessage.setBackground(1);

  $gameMessage.setPositionType(1);

  $gameMessage.add(text);



  var weakness = '';

  var resist = '';

  var immune = '';

  var absorb = '';

  var elements = $dataSystem.elements;

  for (var i = 1; i < elements.length; ++i) {

    var name = elements;

    var rate = target.elementRate(i);

    if (rate > 1) {

      weakness += name + ' ';

    } else if (rate < 0) {

      absorb += name + ' ';

    } else if (rate === 0) {

      immune += name + ' ';

    } else if (rate < 1) {

      resist += name + ' ';

    }

  }

  if (weakness === '') weakness = 'None';

  if (resist === '') resist = 'None';

  if (immune === '') immune = 'None';

  if (absorb === '') absorb = 'None';

  weakness = '\\c[4]Weakness:\\c[0] ' + weakness + '\n';

  resist = '\\c[4]Resist:\\c[0] ' + resist + '\n';

  immune = '\\c[4]Immune:\\c[0] ' + immune + '\n';

  absorb = '\\c[4]Absorb:\\c[0] ' + absorb;

  text = weakness + resist + immune + absorb;

  $gameMessage.add(text);

}

</Before Eval>

<After Eval>

  $gameSystem._messageRows = 4;

</After Eval>
I have 2 questions;
1 - I want the messageRows to be 5 for the skill (so it all fits nicely) and back to 4 after (so the rest of my games messages look right) but my method above (setting to 4 in after eval) doesn't work (and if I set it to 5 and leave it, the rest of the game has 5 rows), what should I do?

2. I'd love to extend the elemental resistances section to also include state resistances, and % chances/resistances for elements/ states, how can I go about doing that?
 

MikaTeapot

Villager
Member
Joined
Mar 25, 2019
Messages
26
Reaction score
4
First Language
English
Primarily Uses
RMMV
Is bumping allowed >.>
 

MikaTeapot

Villager
Member
Joined
Mar 25, 2019
Messages
26
Reaction score
4
First Language
English
Primarily Uses
RMMV
Still haven't managed to figure this out! :(
 

Trihan

Speedy Scripter
Veteran
Joined
Apr 12, 2012
Messages
2,604
Reaction score
1,961
First Language
English
Primarily Uses
RMMV
The problem is that After Eval effects process before the message displays, so it's setting _messageRows back to 4.

As I said to you on Discord, the best solution I can think of is a passive state on an actor that has a Custom Action End Effect which sets $gameSystem._messageRows back to 4.

Also here's how you'd do it with the state rates (it puts them on a new page so you don't end up with the first line joined up to the element rates)

Code:
<Before Eval>
if (target.isEnemy()) {
  var id = target._enemyId;
  var evatot = target.eva * 100
  var critot = target.cri * 100
  var hittot = target.hit * 100
  var text = target.name() + '\n';
  text += '\\px[100]\\c[4]M.Hp:\\c[0] ' + target.hp;
  text += '/' + target.mhp;
  text += '\\px[400]\\c[4]M.Mp:\\c[0] ' + target.mp;
  text += '/' + target.mmp;
  text += '\\px[700]\\c[4]TP:\\c[0] ' + target.tp;
  text += '\n';
  text += '\\px[100]\\c[4]Atk:\\c[0] ' + target.atk;
  text += '\\px[400]\\c[4]M.Atk:\\c[0] ' + target.mat;
  text += '\\px[700]\\c[4]Agi:\\c[0] ' + target.agi;
  text += '\n';
  text += '\\px[100]\\c[4]Def:\\c[0] ' + target.def;
  text += '\\px[400]\\c[4]M.Def:\\c[0] ' + target.mdf;
  text += '\\px[700]\\c[4]Luk:\\c[0] ' + target.luk;
  text += '\n';
  text += '\\px[100]\\c[4]Eva:\\c[0] ' + evatot.toFixed(2) + '%';
  text += '\\px[400]\\c[4]Crit:\\c[0] ' + critot.toFixed(2) + '%';
  text += '\\px[700]\\c[4]Hit:\\c[0] ' + hittot.toFixed(2) + '%';
  $gameSystem._messageRows = 5;
  $gameMessage.setBackground(1);
  $gameMessage.setPositionType(1);
  $gameMessage.add(text);
  var weakness = '';
  var resist = '';
  var immune = '';
  var absorb = '';
  var elements = $dataSystem.elements;
  for (var i = 1; i < elements.length; ++i) {
    var name = elements[i];
    var rate = target.elementRate(i);
    if (rate > 1) {
      weakness += name + ' ';
    } else if (rate < 0) {
      absorb += name + ' ';
    } else if (rate === 0) {
      immune += name + ' ';
    } else if (rate < 1) {
      resist += name + ' ';
    }
  }
  if (weakness === '') weakness = 'None';
  if (resist === '') resist = 'None';
  if (immune === '') immune = 'None';
  if (absorb === '') absorb = 'None';
  weakness = '\\c[4]Weakness:\\c[0] ' + weakness + '\n';
  resist = '\\c[4]Resist:\\c[0] ' + resist + '\n';
  immune = '\\c[4]Immune:\\c[0] ' + immune + '\n';
  absorb = '\\c[4]Absorb:\\c[0] ' + absorb;
  text = weakness + resist + immune + absorb;
  $gameMessage.add(text);
  weakness = '';
  resist = '';
  immune = '';
  var states = $dataStates;
  for (var i = 1; i < states.length; ++i) {
    var name = states[i].name;
    var rate = target.stateRate(i);
    if (rate > 1) {
      weakness += name + ' ';
    } else if (rate === 0) {
      immune += name + ' ';
    } else if (rate < 1) {
      resist += name + ' ';
    }
  }
  if (weakness === '') weakness = 'None';
  if (resist === '') resist = 'None';
  if (immune === '') immune = 'None';
  weakness = '\\c[4]State Weakness:\\c[0] ' + weakness + '\n';
  resist = '\\c[4]State Resist:\\c[0] ' + resist + '\n';
  immune = '\\c[4]State Immune:\\c[0] ' + immune + '\n';
  text = weakness + resist + immune;
  $gameMessage.newPage();
  $gameMessage.add(text);
}
</Before Eval>
 
Last edited:

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

Our latest feature is an interview with... me?!

People4_2 (Capelet off and on) added!

Just beat the last of us 2 last night and starting jedi: fallen order right now, both use unreal engine & when I say i knew 80% of jedi's buttons right away because they were the same buttons as TLOU2 its ridiculous, even the same narrow hallway crawl and barely-made-it jump they do. Unreal Engine is just big budget RPG Maker the way they make games nearly identical at its core lol.
Can someone recommend some fun story-heavy RPGs to me? Coming up with good gameplay is a nightmare! I was thinking of making some gameplay platforming-based, but that doesn't work well in RPG form*. I also was thinking of removing battles, but that would be too much like OneShot. I don't even know how to make good puzzles!
one bad plugin combo later and one of my followers is moonwalking off the screen on his own... I didn't even more yet on the new map lol.

Forum statistics

Threads
106,035
Messages
1,018,455
Members
137,821
Latest member
Capterson
Top