How can i make SV actor move down in action sequence (or anything else really)?

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
I'm composing the action sequence for my SV actor attack and i want to make him move DOWN while he does the attack motion (it's supposed to make him easy into the next pose).
I've looked into yanfly's action sequence showcase, but didnt find no action sequence to move down, i've seen float/jump, and moving forward or backwards, but nothing that goes below character's ground. There's the 'move target' sequence, but the parameter is X and Y and what i want is the actor to move down in relation to its current position.

Is there any way to do it in Yanfly's action sequences that i'm not aware or any kind of work around? Or should i go to the java request thread?
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
I believe the only way is
but it's paid.

EDIT: Actually the sequence page says you can put offset, swear it didn't exist a few months ago but here it is
Code:
=============================================================================
MOVE target: args
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MOVE target1: HOME, (frames)
MOVE target1: RETURN, (frames)
MOVE target1: FORWARD, (distance), (frames)
MOVE target1: BACKWARD, (distance), (frames)
MOVE target1: POINT, x coordinate, y coordinate, (frames)
MOVE target1: target2, BASE, (frames), (offset)
MOVE target1: target2, CENTER, (frames), (offset)
MOVE target1: target2, HEAD, (frames), (offset)
MOVE target1: target2, FRONT BASE, (frames), (offset)
MOVE target1: target2, FRONT CENTER, (frames), (offset)
MOVE target1: target2, FRONT HEAD, (frames), (offset)
MOVE target1: target2, BACK BASE, (frames), (offset)
MOVE target1: target2, BACK CENTER, (frames), (offset)
MOVE target1: target2, BACK HEAD, (frames), (offset)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is a move command. Arguments can be used in the above formats. This
action sequence command will move target1 to any of those locations listed
in the arguments. If it's towards target2, you must include what location
relative to target2 for target1 to travel to.
Note: Moving only works with Sideview.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
You may be curious about the optional (offset) argument there for some of
the entries. You can insert any of the below arguments in place of (offset):

  offset x +100
  offset x -200
  offset y +300
  offset y -400

This will allow you to offset the distance to the destination by a flat
amount. Positive numbers would indicate forward while negative numbers will
indicate backward.

  auto offset x +500
  auto offset x -600

However, if you use either of the above, depending on if the user is an
actor or enemy and depending on the target (if there is one) is an actor or
an enemy, it will move them into position accordingly.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Usage Example: move user: home, 20
               move target: forward, 48, 12
               move enemy 1: point, 400, 300
               move enemy 2: point, 500, 250, offset x -50, offset y -50
               move actor 3: target, front base, 20
               move user: target, front base, 20, auto offset x -100
======================================================================
 
Last edited:

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
I believe the only way is
but it's paid.

EDIT: Actually the sequence page says you can put offset, swear it didn't exist a few months ago but here it is
Code:
=============================================================================
MOVE target: args
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MOVE target1: HOME, (frames)
MOVE target1: RETURN, (frames)
MOVE target1: FORWARD, (distance), (frames)
MOVE target1: BACKWARD, (distance), (frames)
MOVE target1: POINT, x coordinate, y coordinate, (frames)
MOVE target1: target2, BASE, (frames), (offset)
MOVE target1: target2, CENTER, (frames), (offset)
MOVE target1: target2, HEAD, (frames), (offset)
MOVE target1: target2, FRONT BASE, (frames), (offset)
MOVE target1: target2, FRONT CENTER, (frames), (offset)
MOVE target1: target2, FRONT HEAD, (frames), (offset)
MOVE target1: target2, BACK BASE, (frames), (offset)
MOVE target1: target2, BACK CENTER, (frames), (offset)
MOVE target1: target2, BACK HEAD, (frames), (offset)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
This is a move command. Arguments can be used in the above formats. This
action sequence command will move target1 to any of those locations listed
in the arguments. If it's towards target2, you must include what location
relative to target2 for target1 to travel to.
Note: Moving only works with Sideview.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
You may be curious about the optional (offset) argument there for some of
the entries. You can insert any of the below arguments in place of (offset):

  offset x +100
  offset x -200
  offset y +300
  offset y -400

This will allow you to offset the distance to the destination by a flat
amount. Positive numbers would indicate forward while negative numbers will
indicate backward.

  auto offset x +500
  auto offset x -600

However, if you use either of the above, depending on if the user is an
actor or enemy and depending on the target (if there is one) is an actor or
an enemy, it will move them into position accordingly.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Usage Example: move user: home, 20
               move target: forward, 48, 12
               move enemy 1: point, 400, 300
               move enemy 2: point, 500, 250, offset x -50, offset y -50
               move actor 3: target, front base, 20
               move user: target, front base, 20, auto offset x -100
======================================================================

Look at that! Maybe its new, bc is not in his 2015 videos. But the offset it says only when moving towards a target/point, but i want my character to offset after he already moved towards the enemy, while he is attacking (i'm actually using the frame selection plugin which you also helped me out earlier this week), i dont see how he cant auto offset without having to move away
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
Look at that! Maybe its new, bc is not in his 2015 videos. But the offset it says only when moving towards a target/point, but i want my character to offset after he already moved towards the enemy, while he is attacking (i'm actually using the frame selection plugin which you also helped me out earlier this week), i dont see how he cant auto offset without having to move away
Well say your previous movement was
move user: target, front base, 20
you can when you want to
move user: target, front base, 20, offset y -100
That should move it only -100 y, it should work, haven't tried it myself.

EDIT: Tested it myself and it works perfectly, just it turns around first, easily solved with
move user: targets, front, 20
motion standby: user
wait for movement
wait: 30
move user: targets, front, 20, offset y -100
face user: target
wait for movement

+100 if you want it to go down rather than up.
 
Last edited:

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
But if i do that my character will offset right at the time he gets to the enemie's position, right?

Here's what my action sequence's target action looks like and what i want to do (i also made a gameplay gif that you can see here):

if user.attackMotion() !== 'missile'
move user: targets, front, 20 (this is him moving)
else
perform start
end
wait for movement
motion attack: user
eval: user.battler().setFrame("attack", 0); (this him juping anticipating the hit)
wait: 18
animation 123: user, mirror (weapon smear animation)
animation 124: user, mirror (hat dropping animation)
wait: 1
(i make it wait 1 frame bc for some reason animations have 1 frame buffer before they start)
eval: user.battler().setFrame("attack", 1); (this is the actor hitting while in air)
attack animation: target
wait: 20
***AUTO OFFSET y -50 *** (i want him to offset just a tiny bit to ease him in into the next pose)
eval: user.battler().setFrame("attack", 2); (this is the landing pose)
animation 122: user
wait: 4
Eval: user.battler().removeMaxFrame()

action effect
death break
</target action>
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
So at the offset do as above
move user: targets, front, 20, auto offset y +50
face user: target
eval: user.battler().setFrame("attack", 2);

Change the time of movement and offset amount as you want. Also if you are using the setFrame thing for specific motion frames you don't need to do any motions prior to set it with motion attack: user.
 

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
So at the offset do as above
move user: targets, front, 20, auto offset y +50
face user: target
eval: user.battler().setFrame("attack", 2);

Change the time of movement and offset amount as you want. Also if you are using the setFrame thing for specific motion frames you don't need to do any motions prior to set it with motion attack: user.
It actually worked! I uploaded a video in case you wanna check out how it looks now (the sound effect is out of sync for some reason though), its very sutil, but it makes the animation look a lot better, the type of thing you cant see but you can feel. Also, i used auto offset +30 to make him get closer the enemy.
Also, why the character mirrors when you make him move again at the same position? is it a bug or something? i see that you put the 'face user: target' to fix this, i just dont understand why that happens in the first place.

Also if you are using the setFrame thing for specific motion frames you don't need to do any motions prior to set it with motion attack: user.
I'm dont know if i understand what you meant here, are you saying that i dont need to insert 'motion attack: user' since i'm using setFrame ?

Thanks a bunch for the help dude!
 
Last edited:

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
It actually worked! I uploaded a video in case you wanna check out how it looks now, its very sutil, but it makes the animation look a lot better, the type of thing you cant see but you can feel. Also, i used auto offset +30 to make him get closer the enemy.
Also, why the character mirrors when you make him move again at the same position? is it a bug or something? i see that you put the 'face user: target' to fix this, i just dont understand why that happens in the first place.


I'm dont know if i understand what you meant here, are you saying that i dont need to insert 'motion attack: user' since i'm using setFrame ?

Thanks a bunch for the help dude!
No idea why it happens, but the face user: target fixes it so no point in thinking, you don't need the motion attack: user, setFrame sets it to whatever, so you can link it from eval: user.battler().setFrame("attack", 2); and then next frame could be eval: user.battler().setFrame("guard", 1);.
 

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
No idea why it happens, but the face user: target fixes it so no point in thinking, you don't need the motion attack: user, setFrame sets it to whatever, so you can link it from eval: user.battler().setFrame("attack", 2); and then next frame could be eval: user.battler().setFrame("guard", 1);.
yea, i just tried removing it and it works fine. Thanks!
 

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
@glaphen

I was just messing with the action sequence and i moved the action effect up right after the hit lands, and then make it wait: 42, and then do the move offset thing, but for some reason, the characters jolts foward, instead just dropping normally. But, if i put the action effect after the wait: 42, he doesnt bug, but the action effect dont look right, bc the enemy would make the damage motion at the right timing
Here's a video (you can go frame by frame with < and > ):
also here's my target action sequence:
Code:
<target action>
if user.attackMotion() !== 'missile'
move user: targets, front, 15, auto offset x +30
else
perform start
end
wait for movement
eval: user.battler().setFrame("attack", 0);
move user: targets, front, 1, auto offset y -3, auto offset x +30
face user: target
wait: 18
animation 123: user, mirror
animation 124: user, mirror
wait: 1
eval: user.battler().setFrame("attack", 1);
action effect
wait: 42
move user: targets, front, 2, auto offset y +3, auto offset x +30
face user: target
animation 122: user, mirror
wait: 1
eval: user.battler().setFrame("attack", 2);
wait: 4
Eval: user.battler().removeMaxFrame()

death break
</target action>
Do you know why that happens? Is it just a bug?
If its not something that i can control, i thought working around it by moving the action effect after the wait: 42, but then i would have to make the game not play the damage motion with the action effect, instead i would manually input that in the action sequence with motion damage: target, but idk how that would go
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
Not sure what you mean, that jolt looks like it is the offset, you have it set to 2, so it moves 30 x and 3 y in 2 frames duration, then 1 frame after setting it, it does the attack 2 motion. If you don't want it to jolt increase the duration of the movement or put it before the wait with increased duration, pretty sure it will be overwritten by next movement command so you can do whatever speed you want.

Actually looking at the code again you have multiple offsets of the same thing put, so it's only moving 6 y on the 3rd one, -3 y on 2nd.
 
Last edited:

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
Not sure what you mean, that jolt looks like it is the offset, you have it set to 2, so it moves 28 x and 3 y in 2 frames duration, then 1 frame after setting it, it does the attack 2 motion. If you don't want it to jolt increase the duration of the movement or put it before the wait with increased duration, pretty sure it will be overwritten by next movement command so you can do whatever speed you want.
Maybe didnt express myself clearly: the problem is that he jolts foward, when i just want him to drop down vertically. The offset x 30 is actually just to compensate when i made him offset x 30 where he first moves towards the enemy. If i dont entry again that offset x with the offset y, the game will juat refresh him to his regular position and then make the offset Y there, so that offset X is supposed to be null movement, in that line all i want is the Y movement.
As i said, everything goes well (no jolt foward, only Y movement) when the action effect comes before the offset line, for some reason it only happens when the wait comes before the offset movment, this os why i was wondering if thats a bug.

Does that make sense?
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
Maybe didnt express myself clearly: the problem is that he jolts foward, when i just want him to drop down vertically. The offset x 30 is actually just to compensate when i made him offset x 30 where he first moves towards the enemy. If i dont entry again that offset x with the offset y, the game will juat refresh him to his regular position and then make the offset Y there, so that offset X is supposed to be null movement, in that line all i want is the Y movement.
As i said, everything goes well (no jolt foward, only Y movement) when the action effect comes before the offset line, for some reason it only happens when the wait comes before the offset movment, this os why i was wondering if thats a bug.

Does that make sense?
Trying it myself it only was happening to the enemies, seems to do it because of auto, changing last line to
Code:
move user: targets, front, 2, offset y +3, auto offset x +30
seems to have solved it for me, so if it happens again try playing with adding and removing auto to each.
Code:
BattleManager.actionMoveOffsetX = function(actionArgs, user, target) {
  if (actionArgs && actionArgs.length > 0) {
    var length = actionArgs.length;
    for (var i = 0; i < length; ++i) {
      var line = actionArgs[i];
      if (line.match(/AUTO OFFSET X[ ]([\+\-]\d+)/i)) {
        var value = parseInt(RegExp.$1);
        if (user.isActor() && !target) {
          return value * -1;
        } else if (user.isEnemy() && !target) {
          return value;
        } else if (user.isActor() && target.isActor()) {
          return value;
        } else if (user.isActor() && target.isEnemy()) {
          return value * -1;
        } else if (user.isEnemy() && target.isEnemy()) {
          return value * -1;
        } else if (user.isEnemy() && target.isActor()) {
          return value;
        }
      } else if (line.match(/OFFSET X[ ]([\+\-]\d+)/i)) {
        return parseInt(RegExp.$1);
      }
    }
  }
  return 0;
};

BattleManager.actionMoveOffsetY = function(actionArgs, user, target) {
  if (actionArgs && actionArgs.length > 0) {
    var length = actionArgs.length;
    for (var i = 0; i < length; ++i) {
      var line = actionArgs[i];
      if (line.match(/AUTO OFFSET Y[ ]([\+\-]\d+)/i)) {
        return parseInt(RegExp.$1);
      } else if (line.match(/OFFSET Y[ ]([\+\-]\d+)/i)) {
        return parseInt(RegExp.$1);
      }
    }
  }
  return 0;
};
Seems to be the code that does involved offset, seems to be auto y, don't even think it does anything really? Returns the exact same as without it. Then again auto y doesn't really need to exist anyway since there is no enemies on top or bottom of map.
 

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
Trying it myself it only was happening to the enemies, seems to do it because of auto, changing last line to
Code:
move user: targets, front, 2, offset y +3, auto offset x +30
seems to have solved it for me, so if it happens again try playing with adding and removing auto to each.
Code:
BattleManager.actionMoveOffsetX = function(actionArgs, user, target) {
  if (actionArgs && actionArgs.length > 0) {
    var length = actionArgs.length;
    for (var i = 0; i < length; ++i) {
      var line = actionArgs[i];
      if (line.match(/AUTO OFFSET X[ ]([\+\-]\d+)/i)) {
        var value = parseInt(RegExp.$1);
        if (user.isActor() && !target) {
          return value * -1;
        } else if (user.isEnemy() && !target) {
          return value;
        } else if (user.isActor() && target.isActor()) {
          return value;
        } else if (user.isActor() && target.isEnemy()) {
          return value * -1;
        } else if (user.isEnemy() && target.isEnemy()) {
          return value * -1;
        } else if (user.isEnemy() && target.isActor()) {
          return value;
        }
      } else if (line.match(/OFFSET X[ ]([\+\-]\d+)/i)) {
        return parseInt(RegExp.$1);
      }
    }
  }
  return 0;
};

BattleManager.actionMoveOffsetY = function(actionArgs, user, target) {
  if (actionArgs && actionArgs.length > 0) {
    var length = actionArgs.length;
    for (var i = 0; i < length; ++i) {
      var line = actionArgs[i];
      if (line.match(/AUTO OFFSET Y[ ]([\+\-]\d+)/i)) {
        return parseInt(RegExp.$1);
      } else if (line.match(/OFFSET Y[ ]([\+\-]\d+)/i)) {
        return parseInt(RegExp.$1);
      }
    }
  }
  return 0;
};
Seems to be the code that does involved offset, seems to be auto y, don't even think it does anything really? Returns the exact same as without it. Then again auto y doesn't really need to exist anyway since there is no enemies on top or bottom of map.
Didnt realy worked for me, i tried removing all Auto from offset Y, removing from one of the lines, than the other line, but i get the same result. I even tried removing auto from offset X, which just make him go back to his regular position. So idk, maybe is just beyond my control?

Is there a way to make the game NOT play the motion damage from the action effect so i can input it manually?
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
If you want to control the motion it's easy enough.
Code:
Yanfly.SVE.Game_Enemy_performDamage = Game_Enemy.prototype.performDamage;
Game_Enemy.prototype.performDamage = function() {
    if (!this.hasSVBattler()) {
      return Yanfly.SVE.Game_Enemy_performDamage.call(this);
    }
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(1)) {
    if (this.isSpriteVisible()) {
      this.requestMotion(this.damageMotion());
    } else {
      $gameScreen.startShake(5, 5, 10);
    }
    }
    SoundManager.playEnemyDamage();
};

Game_Actor.prototype.performDamage = function() {
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(1)) {
    if (this.isSpriteVisible()) {
        this.requestMotion('damage');
    } else {
        $gameScreen.startShake(5, 5, 10);
    }
    }
    SoundManager.playActorDamage();
};
With that as long as switch 1 is on they won't play it when they take damage, can change to whatever switch you want, then just
change switch 1: on
before action effect and
change switch 1: off
after when you want that skill to be controlled.
motion damage: target
when you want to play it.

Oh and just put that as a plugin somewhere below animated sv enemies.

EDIT: If you also want to play the SE manually you can use
Code:
Yanfly.SVE.Game_Enemy_performDamage = Game_Enemy.prototype.performDamage;
Game_Enemy.prototype.performDamage = function() {
    if (!this.hasSVBattler()) {
      return Yanfly.SVE.Game_Enemy_performDamage.call(this);
    }
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(1)) {
    if (this.isSpriteVisible()) {
      this.requestMotion(this.damageMotion());
    } else {
      $gameScreen.startShake(5, 5, 10);
    }
    SoundManager.playEnemyDamage();
}
};

Game_Actor.prototype.performDamage = function() {
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(1)) {
    if (this.isSpriteVisible()) {
        this.requestMotion('damage');
    } else {
        $gameScreen.startShake(5, 5, 10);
    }
    SoundManager.playActorDamage();
}
};
and then after the motion damage: target put
if user.isActor()
se: play enemy damage
else
se: play actor damage
end
 
Last edited:

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
With that as long as switch 1 is on they won't play it when they take damage, can change to whatever switch you want, then just
change switch 1: on
before action effect and
change switch 1: off
after when you want that skill to be controlled.
motion damage: target
when you want to play it.
Nice! But that 'change switch 1: on' has anything to do with the switches interruptors in rpg maker eventing? Or is it something else?

Also, are those two codes you pasted different plugins?
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
Nice! But that 'change switch 1: on' has anything to do with the switches interruptors in rpg maker eventing? Or is it something else?

Also, are those two codes you pasted different plugins?
Not sure what a switches interruptors is but it's the same switches in RPG Maker eventing, change the
if (!$gameSwitches.value()) to the switch number you want to use inside both codes (), then use
change switch that number to change it mid action sequence. The 2 codes are different, first plays sound effect like normal, 2nd lets you control sound effect too, choose one or the other.
 

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
Not sure what a switches interruptors is but it's the same switches in RPG Maker eventing, change the
if (!$gameSwitches.value()) to the switch number you want to use inside both codes (), then use
change switch that number to change it mid action sequence. The 2 codes are different, first plays sound effect like normal, 2nd lets you control sound effect too, choose one or the other.
yea, that kind of switch i meant, the regular one! So if i want to choose another switch number i have to alter the original plugin code right?

And i see what you meant, one code is just a more complete version of the other
 

glaphen

Veteran
Veteran
Joined
Jan 13, 2019
Messages
326
Reaction score
120
First Language
English
Primarily Uses
RMMV
yea, that kind of switch i meant, the regular one! So if i want to choose another switch number i have to alter the original plugin code right?

And i see what you meant, one code is just a more complete version of the other
Yes if you wanted to change it switch 4523 you would change it like this
Code:
Yanfly.SVE.Game_Enemy_performDamage = Game_Enemy.prototype.performDamage;
Game_Enemy.prototype.performDamage = function() {
    if (!this.hasSVBattler()) {
      return Yanfly.SVE.Game_Enemy_performDamage.call(this);
    }
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(4523)) {
    if (this.isSpriteVisible()) {
      this.requestMotion(this.damageMotion());
    } else {
      $gameScreen.startShake(5, 5, 10);
    }
    SoundManager.playEnemyDamage();
}
};

Game_Actor.prototype.performDamage = function() {
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(4523)) {
    if (this.isSpriteVisible()) {
        this.requestMotion('damage');
    } else {
        $gameScreen.startShake(5, 5, 10);
    }
    SoundManager.playActorDamage();
}
};
then in action sequences
change switch 4523: on
action effect
change switch 4523: off
 

matgraz

Veteran
Veteran
Joined
Feb 4, 2018
Messages
66
Reaction score
4
First Language
Portuguese
Primarily Uses
RMMV
If you want to control the motion it's easy enough.
Code:
Yanfly.SVE.Game_Enemy_performDamage = Game_Enemy.prototype.performDamage;
Game_Enemy.prototype.performDamage = function() {
    if (!this.hasSVBattler()) {
      return Yanfly.SVE.Game_Enemy_performDamage.call(this);
    }
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(1)) {
    if (this.isSpriteVisible()) {
      this.requestMotion(this.damageMotion());
    } else {
      $gameScreen.startShake(5, 5, 10);
    }
    }
    SoundManager.playEnemyDamage();
};

Game_Actor.prototype.performDamage = function() {
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(1)) {
    if (this.isSpriteVisible()) {
        this.requestMotion('damage');
    } else {
        $gameScreen.startShake(5, 5, 10);
    }
    }
    SoundManager.playActorDamage();
};
With that as long as switch 1 is on they won't play it when they take damage, can change to whatever switch you want, then just
change switch 1: on
before action effect and
change switch 1: off
after when you want that skill to be controlled.
motion damage: target
when you want to play it.

Oh and just put that as a plugin somewhere below animated sv enemies.

EDIT: If you also want to play the SE manually you can use
Code:
Yanfly.SVE.Game_Enemy_performDamage = Game_Enemy.prototype.performDamage;
Game_Enemy.prototype.performDamage = function() {
    if (!this.hasSVBattler()) {
      return Yanfly.SVE.Game_Enemy_performDamage.call(this);
    }
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(1)) {
    if (this.isSpriteVisible()) {
      this.requestMotion(this.damageMotion());
    } else {
      $gameScreen.startShake(5, 5, 10);
    }
    SoundManager.playEnemyDamage();
}
};

Game_Actor.prototype.performDamage = function() {
    Game_Battler.prototype.performDamage.call(this);
    if (!$gameSwitches.value(1)) {
    if (this.isSpriteVisible()) {
        this.requestMotion('damage');
    } else {
        $gameScreen.startShake(5, 5, 10);
    }
    SoundManager.playActorDamage();
}
};
and then after the motion damage: target put
if user.isActor()
se: play enemy damage
else
se: play actor damage
end
I dont think it worked , still playing the same damage and sound when action effect is played, regularly. I put the plugin right beneath the SV_enemies

here's how i put it:
JavaScript:
<target action>
if user.attackMotion() !== 'missile'
move user: targets, front, 15, auto offset x +30
else
perform start
end
wait for movement
eval: user.battler().setFrame("attack", 0);
move user: targets, front, 1, auto offset y -3, auto offset x +30
face user: target
wait: 18
animation 123: user, mirror
animation 124: user, mirror
wait: 1
eval: user.battler().setFrame("attack", 1);
motion damage: target
wait: 42
change switch 1: on
action effect
change switch 1: off
move user: targets, front, 2, auto offset y +3, auto offset x +30
face user: target
animation 122: user, mirror
wait: 1
eval: user.battler().setFrame("attack", 2);
wait: 4
Eval: user.battler().removeMaxFrame()

death break
</target action>
Am i missing any setup? I left it for switch 1 like you did, its not being used for anything besides that, so idk whats going wrong

EDIT:
For some reason, as i was testing the action sequence, adding the push back that also comes with the action effect (btw, is there a way to also remove that push back so i can input it manually?), but when i add

move target: backward, 15, 3
face target: forward
motion damage: target

then i get back to jolting again, the actor drops forward. I guess is a bug that is going on with the move lines, i have no idea why
 
Last edited:

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

Latest Threads

Latest Profile Posts

Don't forget, aspiring writers: Personality isn't what your characters do, it is WHY they do it.
Hello! I would like to know if there are any pluggings or any way to customize how battles look?
I was thinking that when you start the battle for it to appear the eyes of your characters and opponents sorta like Ace Attorney.
Sadly I don't know how that would be possible so I would be needing help! If you can help me in any way I would really apreciate it!
The biggest debate we need to complete on which is better, Waffles or Pancakes?
rux
How is it going? :D
Day 9 of giveaways! 8 prizes today :D

Forum statistics

Threads
106,051
Messages
1,018,549
Members
137,836
Latest member
T62352536256t362
Top