Implementing a Persona Type Battle System

Discussion in 'RPG Maker VX Ace' started by DankRat, Mar 1, 2019.

  1. DankRat

    DankRat Veteran Veteran

    Messages:
    79
    Likes Received:
    4
    First Language:
    English
    Primarily Uses:
    RMXP
    I haven't played any of the persona games [yet] however based on what I've seen I figured the battle system would be nice to use in my project, especially since it begins with the player having a "down the rabbit hole" moment like in Zelda Majora's Mask. However considering the complexity the battle system appears to have, what I'll need to know before I can get started is if it's plausible for one person alone to work on a project with such a system, and if it is then would there also be any additional scripts necessary to implement it.
     
    #1
    RachelTheSeeker likes this.
  2. TheoAllen

    TheoAllen Self-proclaimed jack of all trades Veteran

    Messages:
    4,278
    Likes Received:
    4,797
    Location:
    Riftverse
    First Language:
    Indonesian
    Primarily Uses:
    RMVXA
    And what exactly is "Persona Type Battle System"?
    And what exactly is "Moment like in Zelda Majora's Mask"?
     
    #2
  3. DankRat

    DankRat Veteran Veteran

    Messages:
    79
    Likes Received:
    4
    First Language:
    English
    Primarily Uses:
    RMXP
    The persona type battle system being the one in Persona 5 where you have a persona and its weak to some elements, strong against some, and null against the rest. As for the Majora's Mask moment, it's the point in the beginning of the game where Link falls into Termina
     
    #3
  4. RachelTheSeeker

    RachelTheSeeker Suddenly, a summer breeze... Veteran

    Messages:
    226
    Likes Received:
    189
    Location:
    Lockport, NY
    First Language:
    English
    Primarily Uses:
    RMVXA
    A Persona-style system as you've explained is possible. Using VX Ace's engine (or any RPG Maker for that matter), it's possible to create actors who have elemental qualities like weakness, resistance, etc. They're done in the same fashion as monsters, too, using the Traits function or whatever it's called.

    Making the persona actors into summon-able characters, however, will require either eventing or scripting. But I definitely know there's a summon actor script somewhere. Will edit when I find it.

    EDIT: Foooound one~♪ https://www.rpgmakercentral.com/topic/24089-pets-and-summons/

    EDIT 2: I'm just glad you haven't asked about the "One More" mechanic from Persona! I'm not sure if anyone's made an RGSS3 version, but it's technically doable without. Just... it's also a tedious pain in the butt, yet I imagine one could by having copied Stun statuses that are attached to each elemental spell, and making it so only enemies weak to that element are affected by that Stun variation?
     
    #4
  5. bgillisp

    bgillisp Global Moderators Global Mod

    Messages:
    11,891
    Likes Received:
    12,009
    Location:
    USA
    First Language:
    English
    Primarily Uses:
    RMVXA
    I did something like it in my game by giving enemies weaknesses to the 8 elements in my game, or resistances, or null, nad sometimes, even absorb. Actors have innate weaknesses and resistances like the characters in Persona 5 which join the party.

    The only thing I didn't do was the equippable personas as that didn't fit my game. So it's closer to a game where the party would be made of all the others who join your party in Persona except the MC.

    Edit: If you want to make equippable Personas, here is how I'd do it. Almost no scripting required.

    1) Create an equipment slot for them. Only those who can equip Personas can put something there.
    2) Create all personas as an equip of that spot. Personas would give you the skills and element resistances via the features tab.
    3) For fusion you can event it at a fixed point in the game (aka a version of the Velvet Room), or you can use a crafting script which takes 2 or 3 Personas and gives you one in return.
    4) For the compendium you could use a shop which only sells these.

    If you did this it would be very similar to how Persona 2 did things though, which would have some disadvantages:
    1) Personas would be unable to level up. I understand this is how the system used to work in the SMT games in the 90's or so.
    2) You could make it so that everyone can equip a Persona (Persona 2 did this).
    3) I don't think you could simulate Fusion failures this way, as the success rate of fusion would be 100%.
    4) Not sure if you could level restrict Personas with this.
    5) Personas would have fixed skills like in Persona2. You would not be able to inherit skills at all from the fusion, it's just here's your new Persona, and here are their skills.
     
    Last edited: Mar 1, 2019
    #5
    RachelTheSeeker likes this.
  6. alevel3mage

    alevel3mage Memelord Member

    Messages:
    5
    Likes Received:
    7
    First Language:
    English
    Primarily Uses:
    RMMV
    Im actually working on a persona fan game at the moment and I've got most things working.

    with regards to the battle system itself for the once more/knockdown/all-out attacks, I recently did a tutorial for it on Reddit


    For the persona's themselves, I have all of them in 4 places, an actor, an armour, a skill and a state. The actor is never used as an actor, instead, it's stats hold the skills that the persona knows. The armour grants the user the skill and the skill removes all persona states, then applies it's own. The state then grant's the user the skills based on its corresponding actor's stats.

    upload_2019-3-3_1-38-7.png

    upload_2019-3-3_1-38-36.png
    notetag
    <Instant>
    <Custom Execution>
    for(i=22; i<=253; i++){
    user.removeState(i);
    }
    var skillId = $gameActors.actor(1)._actions[0]._item._itemId;
    user.addState(skillId);
    </Custom Execution>

    upload_2019-3-3_1-39-25.png

    upload_2019-3-3_1-39-53.png
    Notetag
    <Custom Apply Effect>
    i = 0;
    for(j=22; j<=253; j++){
    if(user.isStateAffected(j)){
    i = j;
    }
    }
    $gameActors.actor(1).learnSkill($gameActors.actor(i).mhp);
    $gameActors.actor(1).learnSkill($gameActors.actor(i).mmp);
    $gameActors.actor(1).learnSkill($gameActors.actor(i).atk);
    $gameActors.actor(1).learnSkill($gameActors.actor(i).def);
    $gameActors.actor(1).learnSkill($gameActors.actor(i).mat);
    $gameActors.actor(1).learnSkill($gameActors.actor(i).mdf);
    $gameActors.actor(1).learnSkill($gameActors.actor(i).agi);
    $gameActors.actor(1).learnSkill($gameActors.actor(i).luk);
    </Custom Apply Effect>
    <Custom Remove Effect>
    for(i=22; i<=253; i++){
    $gameActors.actor(1).forgetSkill($gameActors.actor(i).mhp);
    $gameActors.actor(1).forgetSkill($gameActors.actor(i).mmp);
    $gameActors.actor(1).forgetSkill($gameActors.actor(i).atk);
    $gameActors.actor(1).forgetSkill($gameActors.actor(i).def);
    $gameActors.actor(1).forgetSkill($gameActors.actor(i).mat);
    $gameActors.actor(1).forgetSkill($gameActors.actor(i).mdf);
    $gameActors.actor(1).forgetSkill($gameActors.actor(i).agi);
    $gameActors.actor(1).forgetSkill($gameActors.actor(i).luk);
    }
    </Custom Remove Effect>


    Naturally, they all have to have the same index in the database for these to work, but this produces the persona switching.

    I had it so you could add skills with a common event that took the id of a persona and the Id of the skill you wanted to add then ran them through a bunch of scripts.
    upload_2019-3-3_1-43-47.png
    which, long story short, replaced the stat on the actor with the id of the skill you wanted.

    The one thing I still haven't gotten working is persona Leveling,
    I'm having trouble getting the amount of exp earned in a battle so I can add it to the appropriate actor which would handle it. If anyone knows how I can get my hands on that value it would be appreciated.


    This is using yanfly's skill core, base param control, equip core, instant casts, buffs and states core, auto passive state and passive auras. And for the skill changing, I used his message core and Himeworks large choices.
     
    #6
    Regino likes this.
  7. TheoAllen

    TheoAllen Self-proclaimed jack of all trades Veteran

    Messages:
    4,278
    Likes Received:
    4,797
    Location:
    Riftverse
    First Language:
    Indonesian
    Primarily Uses:
    RMVXA
    #7
  8. Daisetsu

    Daisetsu Veteran Veteran

    Messages:
    52
    Likes Received:
    9
    First Language:
    German,English
    Primarily Uses:
    RMMV
    So can someone make a Tutorial for MV then please?
     
    #8
  9. DankRat

    DankRat Veteran Veteran

    Messages:
    79
    Likes Received:
    4
    First Language:
    English
    Primarily Uses:
    RMXP
    Looks awesome. Definitely would like to try it out when it's complete
     
    #9

Share This Page