Ramza's State Workshop OPEN (current states: 26 LATEST: Overpower + Darkness Burst)

● ARCHIVED · READ-ONLY
Started by ramza 138 posts Page 7 of 7 View original ↗
  1. Mihe said:
    State Name:
    Haven't really thought of a name, but for now let's just call it "Summon".
    State Description:
    A skill that calls forth an actor or enemy to fight alongside with you in the current battle, lasting only a couple of turns.
    Plugin Requirement:
    Not too sure if this may require something.
    Required Compatibility:
    I'm currently using Yanfly's ctb
    I don't think it's something that can be coded so easily. I suggest you use SRD Summon Core though, it works like a charm mostly.
  2. Dankovsky said:
    I don't think it's something that can be coded so easily. I suggest you use SRD Summon Core though, it works like a charm mostly.
    Thank you, friend. :cutesmile:
  3. I actually had a summon state in here all the way back on page 3. It was linked in the OP, but the link doesn't seem to work anymore? Possibly due to the forum changing or something.

    Anyways, not sure what you can make of it, but SRD summon core is definitely the better option here... It didn't exist back then. Just in case though, I have quoted the original summon skill I made below:

    ramza said:
    I have a summon skill that calls an actor into the party. The actor is given a timed state that, once expired, removes him from the group. The actor also gives an aura buff, which is also removed when they are removed from the group. In the event of the summon dying, They are removed from the group at the end of the turn they died in. The state and aura are removed as well.


    The skill:


    View attachment 47916


    The action sequence for the skill:


    Code:
    <setup action>
    camera clamp on
    display action
    immortal: targets, true
    perform start
    zoom: 300%
    camera focus: user
    wait for zoom
    motion chant: user
    cast animation
    wait for animation
    </setup action>
    <target action>
    motion spell: user
    camera focus: target
    zoom: 250%
    wait for camera
    eval: $gameParty.addActor(5);
    wait: 15
    camera focus: character 5, 20
    wait: 20
    action animation: character 5
    animation wait: 10
    eval: $gameActors.actor(5).setBattlerImage('Actor2_6');
    wait for animation
    action effect: character 5
    </target action>
    <finish action>
    perform finish
    clear battle log
    immortal: targets, false
    reset camera
    reset zoom
    wait for camera
    camera clamp on
    </finish action>


    During this sequence, we change the battler graphic of actor 5, our summon. By default, this actor will have no battler graphic, to make the summon animation more... pretty.


    We are also going to prevent the caster from trying to summon the same summon more than once, so while the summon's aura state is active on the caster, we will prevent the use of that skill using the following tags:


    Code:
    <Custom Requirement>
     if (user.isStateAffected(25)) {
      value = false
     }else{
      value = true
     }
    </Custom Requirement>


    The summoned elf actor:


    View attachment 47917


    Note that the battler graphic is blank.


    Here's our timer state, applied to the battler as soon as it is summoned:


    View attachment 47918


    And here is the notetag code for this state:


    EDIT: I forgot to mention that this state requires yanfly's state categories plugin to function.


    Code:
    <Category: Bypass Death Removal>
    <Custom Apply Effect>
    for (i = 0; i < $gameParty.members().length; i++){
     $gameParty.members()[i].addState(25)
    }
    target.removeState(25)
    </Custom Apply Effect>
    <Custom Remove Effect>
    for (i = 0; i < $gameParty.members().length; i++){
     $gameParty.members()[i].removeState(25)
    }
      var extraFramesToWaitFor = 15;
      var animFrames = ($dataAnimations[102].frames.length * 4) + 1 + extraFramesToWaitFor;
      var waitSeconds = (animFrames/45) * 1000;
      target.startAnimation(102, false, 0);
      setTimeout(function () {
      $gameActors.actor(5).setBattlerImage('');
      }, waitSeconds);
      BattleManager._logWindow._waitCount += (animFrames + 30);
    $gameParty.removeActor(5);
    target.removeState(24)
    target.recoverAll()
    </Custom Remove Effect>
    <Custom Turn End Effect>
    if (this.isDead()) {
     this.removeState(24)
    }
    </Custom Turn End Effect>


    And lastly, here is our aura state - the buff provided to all other battlers when this summon is out:


    View attachment 47920


    How does it look?


    See for yourself :)
  4. State Name:
    Infected
    State Description:
    A state that can spread the infection if attacked, or when attacking (preferably melee), and every start of a turn, has a chance to apply infection to close by allies maybe 10-25% chance, as well as a 25% chance to attack allies too with a specific skill.
    Plugin Requirement:
    Basic Yanfly + Aura Effects
    Required Compatibility:
    Any Yanfly Battle Systems

    I was gonna use this with some other cool effects like someone burning, but i think infected makes a better name for it.. Hopefully this isnt too challenging, thanks in advance
  5. Dear friends, hello there!


    I'm just trying to make a DoT - damage over turn - and HoT - healing over turn - effects that can hit critically, using the critical chance and the critical modifier of the user (and critical resistance from target), but i have no idea where to start.

    State Name: DoT/Regen Critical!
    State Description: when the user use a bleed/poison/regen effect, the effect need a chance do critical hit in every DoT effect/turn. Like World of Warcraft and some other MMOs.
    Plugin Requirement: I'm think you will need the Battle Engine of Yanfly, the buffs and States Cores, Extended Damage over Time and Critical Control.
    Required Compatibility: I'm just using Yanfly's plugins, soo need compatibility with Yanfly plugins in Maker's default battle system.


    Anyone have some idea?
    Hugs.
  6. Recruit said:
    State Name:
    Infected
    State Description:
    A state that can spread the infection if attacked, or when attacking (preferably melee), and every start of a turn, has a chance to apply infection to close by allies maybe 10-25% chance, as well as a 25% chance to attack allies too with a specific skill.
    Plugin Requirement:
    Basic Yanfly + Aura Effects
    Required Compatibility:
    Any Yanfly Battle Systems

    I was gonna use this with some other cool effects like someone burning, but i think infected makes a better name for it.. Hopefully this isnt too challenging, thanks in advance
    Sorry it took so long to get back to you on this one. I'd hope by now you've found an answer to this, but if not, I will write up a brief explanation which you can modify a bit to fit into whatever state you want.

    So this state has multiple parts, so it will need to be handled in multiple lunatic codes. The first part, being attacked, will be handled in a <Custom React Effect> tag:

    Code:
    <Custom React Effect>
    if (this.isHpEffect() && this.isPhysical()){
     var rnd = VARIANCE VALUE HERE
     var formula = DAMAGE FORMULA HERE
     var total = MULTIPLY FORMULA BY RND
    user.gainHp(-total);
    user.startAnimation(x);
    user.startDamagePopup();
    if (user.isDead())
      {
         user.performCollapse();
      }
    }
    </Custom React Effect>
    Likewise, the section where it deals extra damage when the infected target makes a physical attack is handled through a <Custom Confirm Effect>
    Code:
    <Custom Confirm Effect>
    if (this.isHpEffect() && this.isPhysical()){
     var rnd = VARIANCE VALUE HERE
     var formula = DAMAGE FORMULA HERE
     var total = MULTIPLY FORMULA BY RND
    target.gainHp(-total);
    target.startAnimation(x);
    target.startDamagePopup();
    if (target.isDead())
      {
         target.performCollapse();
      }
    }
    </Custom Confirm Effect>
    The second half of your request needs to be on a <Custom Turn Start Effect>
    Code:
    <Custom Turn Start Effect>
    var units = user.friendsUnit().aliveMembers()
    for (var i = 0; i < units.length; i++){
     if (Math.randomInt(100) > 25){
     //this unit is infected now
     units[i].addState(stateId)
     units[i].startAnimation(x)
     }
    }
    </Custom Turn Start Effect>
    This checks all alive allies of the infected against a 25% check, and if it fails the check, inflicts them with the infected state, and plays an animation. In this section you could also force an action to use a specific skill on them, but the system doesn't play well with forced actions from inside a state, so showing an animation may be the best you can do here.


    Dobberman said:
    Dear friends, hello there!


    I'm just trying to make a DoT - damage over turn - and HoT - healing over turn - effects that can hit critically, using the critical chance and the critical modifier of the user (and critical resistance from target), but i have no idea where to start.

    State Name: DoT/Regen Critical!
    State Description: when the user use a bleed/poison/regen effect, the effect need a chance do critical hit in every DoT effect/turn. Like World of Warcraft and some other MMOs.
    Plugin Requirement: I'm think you will need the Battle Engine of Yanfly, the buffs and States Cores, Extended Damage over Time and Critical Control.
    Required Compatibility: I'm just using Yanfly's plugins, soo need compatibility with Yanfly plugins in Maker's default battle system.


    Anyone have some idea?
    Hugs.

    As above, I'm sorry it took so long to get to this request. YEP_X_ExtDot is sort of capable of this on it's own, and I can't think of a better way to pull this off without making an extension to that plugin (which I may do at some point though). Because the damage of the dot state is determined by the note tags on that state, the easiest way to do this is work the critical chance into the original damage formula. INstead of the following:
    Code:
    <Custom DoT Formula>
         value = Math.max(a.mat, a.atk)
         variance = 20;
         element = 10;
    </Custom Dot Formula>
    You would use something more like this:
    Code:
    <Custom DoT Formula>
    if (user.isStateAffected(x)){
        var critchance = Math.max(user.cri - target.cev, 0)
        var critmultiplier = 2.0
        if (Math.random() < critchance){
        //a crit has happened
        value = Math.max(a.mat, a.atk) * critmultiplier
        } else {
        //crit failed
        value = Math.max(a.mat, a.atk)
       }
    } else {
         value = Math.max(a.mat, a.atk)
    }
         variance = 20;
         element = 10;
    </Custom Dot Formula>
    Where the user is checked for the critically enabling dot state first, then his crit rate is checked against the target's cev rate, and then a random check is used to determine if this dot has critically hit, which doubles the damage of the tick.

    Like I said, this could be shorted dramatically by making a change to the actual ExtDot plugin, and I might make one at some point in the future.
  7. ramza said:
    Sorry it took so long to get back to you on this one. I'd hope by now you've found an answer to this, but if not, I will write up a brief explanation which you can modify a bit to fit into whatever state you want.
    [...]
    As above, I'm sorry it took so long to get to this request. YEP_X_ExtDot is sort of capable of this on it's own, and I can't think of a better way to pull this off without making an extension to that plugin (which I may do at some point though). Because the damage of the dot state is determined by the note tags on that state, the easiest way to do this is work the critical chance into the original damage formula. INstead of the following:
    Code:
    <Custom DoT Formula>
         value = Math.max(a.mat, a.atk)
         variance = 20;
         element = 10;
    </Custom Dot Formula>
    You would use something more like this:
    Code:
    <Custom DoT Formula>
    if (user.isStateAffected(x)){
        var critchance = Math.max(user.cri - target.cev, 0)
        var critmultiplier = 2.0
        if (Math.random() < critchance){
        //a crit has happened
        value = Math.max(a.mat, a.atk) * critmultiplier
        } else {
        //crit failed
        value = Math.max(a.mat, a.atk)
       }
    } else {
         value = Math.max(a.mat, a.atk)
    }
         variance = 20;
         element = 10;
    </Custom Dot Formula>
    Where the user is checked for the critically enabling dot state first, then his crit rate is checked against the target's cev rate, and then a random check is used to determine if this dot has critically hit, which doubles the damage of the tick.

    Like I said, this could be shorted dramatically by making a change to the actual ExtDot plugin, and I might make one at some point in the future.

    Thank you mate!

    With this formula i can made a critical damage occur in every situation, this was a tremendous help.
    But this is a "fake critical", right? because count only for damage proposities and don't count for "if(critical)" checks and another fancy things (colorful numbers, etc...).
    There's a way to make a FORCE CRITICAL like in the Yanfly Action Sequence?

    Anyway, thank you soo much!
    Hugs!
  8. That is correct, this is a 'fake' critical.
    Since it isn't an action causing the damage, tags like force critical that work on skills or action sequences have no effect here. I looked briefly at a way to reverse engineer the crit control plugin to see if I couldn't push that in there too, but it needs a bit more of a deep dive than I have time for. I was hoping for a function to call right before the damage popup that denoted a critical hit, which I didn't find.

    On the other hand, you must be using a different plugin entirely if you can change the color of the text of a critical hit, so there might still be a function that can be tweaked a little bit to at least cause the damage popup from these dot effects to look the same as a critical hit, even if it doesn't end up doing any of the other fancy effects.

    The main thing is that it won't work for other states that do effects on action results, like a state that restores your MP if you critically hit, because this isn't an action, and therefore can't trigger action effects. Also, changing it so that it could, would likely lead to causing an endless loop of state effects triggering off each other constantly.
  9. Hello,

    I'm looking for a lunatic code that will:
    - check if the user as the required tp
    - check if he has a stated applied
    If those conditions are meet, skill will add a (secondary) bonus effect

    For example, when I will attack an enemy with shield bash, it will apply stun only has a bonus effect only if the requirement above is triggered.
    Another example would be while using heal on an ally; it will also give a debuff to a random enemy like decrease atk but only if conditions are met.


    State Name: Trance
    State Description: enter a state if some condittions are meet if meet do X skill.
    Plugin Requirement: I'm using all yanflybattle plugins so do what you can.
  10. Chaos17 said:
    Hello,

    I'm looking for a lunatic code that will:
    - check if the user as the required tp
    - check if he has a stated applied
    If those conditions are meet, skill will add a (secondary) bonus effect

    For example, when I will attack an enemy with shield bash, it will apply stun only has a bonus effect only if the requirement above is triggered.
    Another example would be while using heal on an ally; it will also give a debuff to a random enemy like decrease atk but only if conditions are met.


    State Name: Trance
    State Description: enter a state if some condittions are meet if meet do X skill.
    Plugin Requirement: I'm using all yanflybattle plugins so do what you can.

    A <Custom Passive Condition> tag is what we'll need to do this, as you only want the trance state to be on the battler when their TP is above a certain level.

    So first we need a custom condition tag that will make the Trance state only active when the user's TP is above a certain amount:

    Code:
    <Custom Passive Condition>
    if (user._tp >= 75){
    condition = true
    } else {
    condition = false
    }
    </Custom Passive Condition>
    From here, all you need to do is make it so that the state is on all actors, using the plugin parameters for the AutoPassiveStates plugin.

    Next, there are a couple of ways we can set up skills that interact with it. The easiest way is via action sequences. For each skill that can be modified by this state, you simply use an if statement in the action sequence, and place the added effect into it.

    So your shield bash example might go something like this:

    Code:
    <Setup Action>
    clear battle log
    display action
    motion standby: user
    move user: target, front base, 20
    wait for move
    immortal: target, true
    </Setup Action>
    <Target Action>
    wait: 15
    motion attack: user
    wait: 3
    action effect: target
    if target.result().isHit()
     attack animation: target
    end
    if (user.isStateAffected(X))
    add state Y: target
    end
    wait for animation
    wait: 20
    </Target Action>
    <Finish Action>
    clear battle log
    perform finish
    wait: 10
    immortal: target, false
    </Finish Action>
    Where if the actor is affected by state X, it applies state Y to the target. This if section can be modified to do anything an action sequence can do, to add states, or extra damage, or whatever else you want. You can even use different action sequence targets to cause damage to enemies from your healing spell as well.
  11. Hello,

    Sorry for the late reply.
    I was able to test it today and it works like a charm.
    Thank you very much for your help.

    :kaojoy:
  12. State Name:
    Soul Link
    State Description:
    In a nutshell, I would like the actor that inflicts this state on an enemy to recover 25% of any damage that enemy takes while the state is active.
    Ex. Actor uses Soul Link skill (deals damage and inflicts the target with Soul Link)
    Any time the enemy takes damage from any source, the actor recovers 25% of the damage as HP until the state expires.
    Plugin Requirement:
    Shouldn't need one.
    Required Compatibility:
    Using Yanfly plugins (obviously, they're the best) so must be compatible.

    If you have a chance to work through this, thank you. Javascript is still not my strong suit.
  13. Johnboy said:
    State Name:
    Soul Link
    State Description:
    In a nutshell, I would like the actor that inflicts this state on an enemy to recover 25% of any damage that enemy takes while the state is active.
    Ex. Actor uses Soul Link skill (deals damage and inflicts the target with Soul Link)
    Any time the enemy takes damage from any source, the actor recovers 25% of the damage as HP until the state expires.
    Plugin Requirement:
    Shouldn't need one.
    Required Compatibility:
    Using Yanfly plugins (obviously, they're the best) so must be compatible.

    If you have a chance to work through this, thank you. Javascript is still not my strong suit.
    This is a great state suggestion, and surprisingly simple to make.

    For this state, we need only one state, the 'Soul Link' state that will be inflicted on the enemy target. Make the state do whatever you want from the normal database UI, including the turn duration.

    We're going to use a <Custom React Effect> to heal the origin of the state whenever the target of the state takes damage.
    Code:
    <Custom React Effect>
    if (this.isHpEffect() && value > 0){
     //will only have an effect if the target was hit by a damaging action
     var healamt = (Math.round(0.25 * value))
     origin.gainHp(healamt)
     origin.startDamagePopup()
     origin.clearResult()
    }
    </Custom React Effect>
    The 'origin' of a state is the battler that inflicted it. That means if this state is refreshed by a second ally, only the most recent ally to apply the state will be healed. We can see above, that the 'healamt' is the amount of healing that the actor will receive, and is 25% of the inflicted damage (from 'value'). <Custom React Effect>s happen whenever a battler is successfully hit by an action, we use the if condition at the beginning to filter out possible scenarios where this effect will have no effect,
  14. I didn't think it would be too difficult and I suspected it was through a react effect but I didn't know where else to go from there. Thanks @ramza
  15. Have another one for you @ramza:

    State Name:
    Float
    State Description:
    Similar to the Final Fantasy series, I would like the character to float in the air and all earth type damage misses the character.
    Ex. Actor has float cast on them. The enemy casts quake and it misses.
    Plugin Requirement:
    Shouldn't need one.
    Required Compatibility:
    Using Yanfly plugins (obviously, they're the best) so must be compatible.

    Note: I do have the float working for the battlers, just not sure how to get a specific element to have it's hit rate reduced to 0.
  16. State Name:
    Block
    State Description:
    Takes Damage for an ally. Also, while taking the damage for a friend, increase 1.4 DEF. Both effects will be last about 4 turns.
    Plugin Requirement:
    I do not think it shouldn't be one.
    Required Compatibility:
    Using Yanfly plugins

    Thank you and please take your time.
  17. Johnboy said:
    Have another one for you @ramza:

    State Name:
    Float
    State Description:
    Similar to the Final Fantasy series, I would like the character to float in the air and all earth type damage misses the character.
    Ex. Actor has float cast on them. The enemy casts quake and it misses.
    Plugin Requirement:
    Shouldn't need one.
    Required Compatibility:
    Using Yanfly plugins (obviously, they're the best) so must be compatible.

    Note: I do have the float working for the battlers, just not sure how to get a specific element to have it's hit rate reduced to 0.

    We can set the success rate of a skill to zero if it meets certain requirements. For your float state, you'd have something like the following:

    Code:
    <Custom Select Effect>
    var earth = 6;
    if (this.item() && this.isForOpponent()) {
      if (this.item().damage.elementId === earth){
        this._formerItemSuccessRate = this.item().successRate;
        this.item().successRate = 0;
      }
    }
    </Custom Select Effect>
    <Custom Deselect Effect>
    if (this._formerItemSuccessRate){
      this.item().successRate = this._formerItemSuccessRate
      this._formerItemSuccessRate = undefined
    }
    </Custom Deselect Effect>
    Change the number at the top to the correct elementID for the earth element. If the state detects an incoming attack that is earth element, it changes the successrate of the skill to zero, which will make it miss. It then returns the successrate to normal. We use a select effect to set this up, because the select effect happens before the damage is calculated. We use the deselect effect to reset it after, because that happens after damage has already been dealt.
  18. State Name:
    Eternal Flame
    State Description:
    Once set on an enemy, it will deal Fire damage to them at the beginning of their turn, and the state never expires. However, it can only be active on one enemy at a time. So, if Enemy A has Eternal Flame, and then the player casts it on Enemy B, the state would be removed from Enemy A.
    Plugin Requirement:
    Yanfly's DoT Extension plugin would probably come in handy for the elemental damage and whatnot, not sure what else this would need
    Required Compatibility:
    I'm using Yanfly's STB, if that has any impact at all

    I know it's pretty bland in itself, so if you think of something to make it more interesting, or to give it more strategic use, have at it. Really, what sticks out as the hard part to me is the "one enemy at a time" restriction. Thanks ahead of time!