Manipulating Parameter and Element Rate without using traits or states

● ARCHIVED · READ-ONLY
Started by KimiRaven 20 posts View original ↗
  1. Hello there! I am working in something that allow the player to choose a buff during game start, i have done successfully for the ex and sp parameter, but getting stuck on the normal parameter (MaxHP, Agility, so on...) and element rate. Thing is, I want to make them dynamically change as in at level 1, 100 hp will get 20% buff so it goes 120 and level 2, 200 hp will goes 240 hp. For element rate, choosing which element the player will get damage reduction it.

    I know I can place a states but is there any other way without using it?

    Please and thank you..
  2. Well you can get a dynamic 20% HP buff just by giving them a Max HP - 120% trait. But are you saying you want the player to choose what the trait is so that's why you can't put it in the database directly?
  3. Trihan said:
    Well you can get a dynamic 20% HP buff just by giving them a Max HP - 120% trait. But are you saying you want the player to choose what the trait is so that's why you can't put it in the database directly?

    Yes, that's the plan. I am getting stuck on this for few hours. If I am out of option might as well place the buff, but if there's any idea how to do without it i be grateful
  4. If you want to add a trait to a given actor:

    Code:
    $gameActors.actor(ACTOR ID).actor().traits.push({code: CODE, dataId: ID, value: VALUE})

    If you want to add one to the actor's class:

    Code:
    $gameActors.actor(ACTOR ID).currentClass().traits.push({code: CODE, dataId: ID, value: VALUE})

    If you want to add one to the party leader:

    Code:
    $gameParty.leader().actor().traits.push({code: CODE, dataId: ID, value: VALUE})

    Or party leader's class:

    Code:
    $gameParty.leader().currentClass().traits.push({code: CODE, dataId: ID, value: VALUE})

    Where CODE, ID and VALUE are determined as follows:

    Element rate = 11 (ID starts at 1 for "physical", increasing by 1 for each element ID you've defined)
    Debuff rate = 12 (ID start at 0 - Max HP, Max MP, Attack, Defence, M Attack, M Defence, Agility, Luck)
    State rate = 13 (ID starts at 1 for "death", increasing by 1 for each state you've defined)
    State resist = 14 (ID starts at 1 for "death" increasing by 1 for each state you've defined)
    Param = 21 (ID starts at 0 - Max HP, Max MP, Attack, Defence, M Attack, M Defence, Agility, Luck)
    Ex-Param = 22 (ID starts at 0 - Hit Rate, Evasion Rate, Critical Rate, Critical Evasion, Magic Evasion, Magic Reflection, Counter Attack, HP Regeneration, MP Regeneration, TP Regeneration)
    Sp-Param = 23 (ID starts at 0 - Target Rate, Guard Effect, Recovery Effect, Pharmacology, MP Cost Rate, TP Charge Rate, Physical Damage, Magical Damage, Floor Damage, Experience)
    Attack element = 31 (ID starts at 1 for "physical", increasing by 1 for each element ID you've defined)
    Attack state = 32 (ID starts at 1 for "death", increasing by 1 for each state you've defined)
    Attack speed = 33 (ID will always be 0)
    Attack times = 34 (ID will always be 0)
    Add skill type = 41 (ID starts at 1, increasing by 1 for each skill type defined)
    Seal skill type = 42 (ID starts at 1, increasing by 1 for each skill type defined)
    Add skill = 43 (ID starts at 1, increasing by 1 for each skill defined)
    Seal skill = 44 (ID starts at 1, increasing by 1 for each skill defined)
    Add weapon type = 51 (ID starts at 1, +1 for each weapon)
    Add armour type = 52 (ID starts at 1, +1 for each armour)
    Lock equip = 53 (ID starts at 1, +1 for each equip slot)
    Seal equip = 54 (ID starts at 1, +1 for each equip slot
    Slot type = 55 (ID will always be 0)
    Action+ = 61 (ID will always be 0)
    Special flag = 62 (ID starts at 0 - Auto Battle, Guard, Substitute, Preserve TP)
    Collapse type = 63 (ID starts at 0 - Normal, Boss, Instant, No Disappear)
    Party ability = 64 (ID starts at 0 - Encounter Half, Encounter None, Cancel Surprise, Raise Preemptive, Gold Double, Item Drop Double)

    For percentage-based traits (Element rate, debuff rate etc.) VALUE is a percentage expressed as a fraction, 1 being 100%. So for 50% you'd put 0.5, for 150% you'd put 1.5, and so on.

    For flat rate traits like attack speed, the VALUE is the amount you want to raise/lower it by. So if you wanted +5 attack speed, you'd just put 5. For -5 attack speed, you'd put -5.

    For traits that add skill types, skills, flags etc. VALUE will always be 1.
  5. Trihan said:
    If you want to add a trait to a given actor:

    Code:
    $gameActors.actor(ACTOR ID).actor().traits.push({code: CODE, dataId: ID, value: VALUE})

    If you want to add one to the actor's class:

    Code:
    $gameActors.actor(ACTOR ID).currentClass().traits.push({code: CODE, dataId: ID, value: VALUE})

    If you want to add one to the party leader:

    Code:
    $gameParty.leader().actor().traits.push({code: CODE, dataId: ID, value: VALUE})

    Or party leader's class:

    Code:
    $gameParty.leader().currentClass().traits.push({code: CODE, dataId: ID, value: VALUE})

    Where CODE, ID and VALUE are determined as follows:

    Element rate = 11 (ID starts at 1 for "physical", increasing by 1 for each element ID you've defined)
    Debuff rate = 12 (ID start at 0 - Max HP, Max MP, Attack, Defence, M Attack, M Defence, Agility, Luck)
    State rate = 13 (ID starts at 1 for "death", increasing by 1 for each state you've defined)
    State resist = 14 (ID starts at 1 for "death" increasing by 1 for each state you've defined)
    Param = 21 (ID starts at 0 - Max HP, Max MP, Attack, Defence, M Attack, M Defence, Agility, Luck)
    Ex-Param = 22 (ID starts at 0 - Hit Rate, Evasion Rate, Critical Rate, Critical Evasion, Magic Evasion, Magic Reflection, Counter Attack, HP Regeneration, MP Regeneration, TP Regeneration)
    Sp-Param = 23 (ID starts at 0 - Target Rate, Guard Effect, Recovery Effect, Pharmacology, MP Cost Rate, TP Charge Rate, Physical Damage, Magical Damage, Floor Damage, Experience)
    Attack element = 31 (ID starts at 1 for "physical", increasing by 1 for each element ID you've defined)
    Attack state = 32 (ID starts at 1 for "death", increasing by 1 for each state you've defined)
    Attack speed = 33 (ID will always be 0)
    Attack times = 34 (ID will always be 0)
    Add skill type = 41 (ID starts at 1, increasing by 1 for each skill type defined)
    Seal skill type = 42 (ID starts at 1, increasing by 1 for each skill type defined)
    Add skill = 43 (ID starts at 1, increasing by 1 for each skill defined)
    Seal skill = 44 (ID starts at 1, increasing by 1 for each skill defined)
    Add weapon type = 51 (ID starts at 1, +1 for each weapon)
    Add armour type = 52 (ID starts at 1, +1 for each armour)
    Lock equip = 53 (ID starts at 1, +1 for each equip slot)
    Seal equip = 54 (ID starts at 1, +1 for each equip slot
    Slot type = 55 (ID will always be 0)
    Action+ = 61 (ID will always be 0)
    Special flag = 62 (ID starts at 0 - Auto Battle, Guard, Substitute, Preserve TP)
    Collapse type = 63 (ID starts at 0 - Normal, Boss, Instant, No Disappear)
    Party ability = 64 (ID starts at 0 - Encounter Half, Encounter None, Cancel Surprise, Raise Preemptive, Gold Double, Item Drop Double)

    For percentage-based traits (Element rate, debuff rate etc.) VALUE is a percentage expressed as a fraction, 1 being 100%. So for 50% you'd put 0.5, for 150% you'd put 1.5, and so on.

    For flat rate traits like attack speed, the VALUE is the amount you want to raise/lower it by. So if you wanted +5 attack speed, you'd just put 5. For -5 attack speed, you'd put -5.

    For traits that add skill types, skills, flags etc. VALUE will always be 1.

    Wao thanks man, this is clearly defined and will seriously help me.. thank you
  6. I'm considering posting a more in-depth version of this as a tutorial in its own right, what do you think?
  7. Trihan said:
    I'm considering posting a more in-depth version of this as a tutorial in its own right, what do you think?

    I think this will help plenty of people with their game, go for it. :)
  8. Oh, forgot to mention: because this is modifying the $data___ variables, which initially get their data from the database values, the new traits won't persist when loading a saved game. I'll cover this in the tutorial about it.
  9. Trihan said:
    Oh, forgot to mention: because this is modifying the $data___ variables, which initially get their data from the database values, the new traits won't persist when loading a saved game. I'll cover this in the tutorial about it.

    So the data need to be recalled again during game load? Won't the data stick to what it being saved?
  10. No, because the traits aren't actually saved anywhere; the game just grabs them from the database fields. You can change them during play, but then when you reload a save it'll be like "Okay, for traits I need to look at the database. There they are." and overwrite your changes.
  11. Trihan said:
    No, because the traits aren't actually saved anywhere; the game just grabs them from the database fields. You can change them during play, but then when you reload a save it'll be like "Okay, for traits I need to look at the database. There they are." and overwrite your changes.

    ah, that's too bad.. Will creating a plugin help store the data? Maybe through reverse engineering the game javascript.. or creating some function. I don't know.. I am consider amateur in the world of javascript. Just learning bits by bits whenever I have the time..
  12. I will explain how to do this to you, I just haven't had the time yet. XD
  13. 2.PNG 1.PNG
    By the way, I finally have time to test the code.. It somehow didn't work.. Did I wrongly input the code.. or am i missing something :p
  14. If you did it with the menu open, you'll have to close/reopen the menu to see the change.
  15. Trihan said:
    If you did it with the menu open, you'll have to close/reopen the menu to see the change.

    Nevermind, it collide with Yanfly Base Parameter. So turning it off make it functional. :p
    and yes you are correct, loading the game after you close the game (e.g. taking rest from game) reset the value to normal.
  16. Excuse me, but what about getting the actor's extra or special params? I just need a code which returns the current value of one extra or special param of an actor (like return actor 1's HIT) for later use, so what should i write?
  17. JamesRyan said:
    Excuse me, but what about getting the actor's extra or special params? I just need a code which returns the current value of one extra or special param of an actor (like return actor 1's HIT) for later use, so what should i write?

    I use Yanfly plugins to add or reduce it through script if that's what you asking. :)
  18. KimiRaven said:
    I use Yanfly plugins to add or reduce it through script if that's what you asking. :)

    I also use the Ex and Sp params control plugins to add and reduce those params. However, i just need a script code to get the current value of one of those params to display for players in a text message somewhere else. I know this is a bit off-topic, but it is also quite related.
  19. Trihan said:
    I'm considering posting a more in-depth version of this as a tutorial in its own right, Yes !!!!!PPPPPPPPpPPpLLLLEEEEAAASSSSEEEEE!!!!!
  20. I have figured out how to return actor's extra or special params. It turns out to be so easy like this (I hope it is right because i know next to nothing about Javascript):
    - If i want to return HIT value of a specific actor: $gameActors.actor(actor id).hit (did a try and it did return me the value)

    The param codes should be in the list below. Change hit to whatever you need:
    Params: (All flat numbers, e.g.: 1337, 7331, 156)
    mhp - max hp
    mmp - max MP
    atk - attack
    def - defence
    mat - magic attack
    mdf - magic defence
    agi - agility
    luk - luck

    XParams: (All decimal numbers symbolizing percent, e.g. 1.0, 0.5, 0.75, 2.44 would be 100%, 50%, 75%, 244%)
    hit - Hit rate
    eva - Evasion rate
    cri - Critical rate
    cev - Critical evasion rate
    mev - Magic evasion rate
    mrf - Magic reflection rate
    cnt - Counter attack rate
    hrg - HP regeneration rate
    mrg - MP regeneration rate
    trg - TP regeneration rate

    SParams: (All decimal numbers symbolizing percent, e.g. 1.0, 0.5, 0.75, 2.44 would be 100%, 50%, 75%, 244%)
    tgr - Target Rate
    grd - Guard effect rate
    rec - Recovery effect rate
    pha - Pharmacology
    mcr - MP Cost rate
    tcr - TP Charge rate
    pdr - Physical damage rate
    mdr - Magical damage rate
    fdr - Floor damage rate
    exr - Experience rate