Just wondering if anyone could help me with this problem. I'd like the "cast/attacker" and "target" animations for skills and weapons to play at the same time. As it stands the delay between the two is making some of my skills look a bit wrong. ie: attacker animation shows the character swinging their sword > [delay] > target animation plays the "slashing" effect over the enemy. I want the "slash" to coincide with the sword swing.
For anyone willing to do this, you need to modify the methods "update_phase4_step3" and "update_phase4_step4" in Scene_Battle 4. Also, you might want to decide which skills (and/or weapons and items) should have instant animations by making arrays of IDs and checking them. You can determine what the active battler is doing (attacking, using skill or using item) by referring to "@active_battler.current_action".
This is fairly simple, so Good luck :)
Still need a fix? If so, I'll try it for you.
Seox out.
Nope, nobody's taken it up yet. So thanks.
*levels up Seox* Good Luck :)
good luck? this will take two seconds you just had to combine the "update_phase4_step3" and "update_phase4_step4" in Scene_Battle 4 in to "update_phase4_step3" lol I I had scene this I would have done it. but scene Seox has taken the request I won't steal his thunder.
No problem, working on it now. Should be done soon ^_^
Thanks for the powerup, Fantasist, and thank you for respecting my attempts, Ryex! ^_^
Cid, do you want it to be configurable? IE Do you want certain attacks to work like they normally did?
EDIT: Also, I assume you want it for certain enemies? I'll make it configurable based on enemy ID (their ATTACKS, skills ALWAYS play instant if you configure them to do so. IE if Cid uses "fart" and Seox uses "fart" and "fart" is set to play both animations simultaneously, then both will play simultaneously, for both of us. However, if we attack, and you are configured to play both at once and I am not, then that's how it'll work for attacking. ^_^)
Which would you prefer the default to be, simultaneous or not? That way there's less config.
EDIT AGAIN:
Tell me if this isn't what you wanted. :)
module Seox
# DON'T TOUCH THIS!
INSTANT_ANIMATION_WEAPONS = []
INSTANT_ANIMATION_ENEMIES = []
INSTANT_ANIMATION_SKILLS = []
# DON'T TOUCH ANYTHING ABOVE THIS!
#--------------------------------------------------------------------------
# * BEGIN CONFIGURATION
#--------------------------------------------------------------------------
# Pretty easy. Firstly, know that the names are very misleading. Anything that
# you put in here will NOT animate instantly. Anything else will, automatically.
# Actor attacks are decided by the weapon, enemy attacks are based on the enemy.
# Skills are the same for both.
# Put the ID of weapons which DO NOT HAVE INSTANT ANIMATIONS inside of the
# brackets, like this: INSTANT_ANIMATION_WEAPONS = [1, 15, 67], seperating
# multiple entries with commas.
INSTANT_ANIMATION_WEAPONS = []
# Put the ID of enemies which DO NOT HAVE INSTANT ANIMATIONS inside of the
# brackets, like this: INSTANT_ANIMATION_enemies = [1, 15, 67], seperating
# multiple entries with commas.
INSTANT_ANIMATION_ENEMIES = []
# Put the ID of skills which DO NOT HAVE INSTANT ANIMATIONS inside of the
# brackets, like this: INSTANT_ANIMATION_SKILLS = [1, 15, 67], seperating
# multiple entries with commas.
INSTANT_ANIMATION_SKILLS = []
#--------------------------------------------------------------------------
# * END CONFIGURATION
#--------------------------------------------------------------------------
end
class Scene_Battle
#--------------------------------------------------------------------------
# * Frame Update (main phase step 3 : animation for action performer)
#--------------------------------------------------------------------------
def update_phase4_step3
# Animation for action performer (if ID is 0, then white flash)
if @active_battler.current_action.kind == 0
if @active_battler.is_a?(Game_Actor)
if !Seox::INSTANT_ANIMATION_WEAPONS.include?(@active_battler.weapon_id)
@skip = true
end
else
if !Seox::INSTANT_ANIMATION_ENEMIES.include?(@active_battler.id)
@skip = true
end
end
elsif @active_battler.current_action.kind == 1
if (!Seox::INSTANT_ANIMATION_SKILLS.include?(@active_battler.current_action.skill_id))
@skip = true
end
end
if !@skip
if @animation1_id == 0
@active_battler.white_flash = true
else
@active_battler.animation_id = @animation1_id
@active_battler.animation_hit = true
end
else
if @animation1_id == 0
@active_battler.white_flash = true
else
@active_battler.animation_id = @animation1_id
@active_battler.animation_hit = true
end
for target in @target_battlers
target.animation_id = @animation2_id
target.animation_hit = (target.damage != "Miss")
end
end
# Shift to step 4
@phase4_step = 4
end
#--------------------------------------------------------------------------
# * Frame Update (main phase step 4 : animation for target)
#--------------------------------------------------------------------------
def update_phase4_step4
# Animation for target
if !@skip
for target in @target_battlers
target.animation_id = @animation2_id
target.animation_hit = (target.damage != "Miss")
end
end
# Animation has at least 8 frames, regardless of its length
@wait_count = 8
# Shift to step 5
@phase4_step = 5
end
end
Put it in above main, and below any script that messes with the battle system. Optimally, put it JUST ABOVE MAIN.
Yep, that's exactly what I was after. Making some attacks work normally is a welcome addition, but I'll probably just have every attack function like this, so I'm glad the script requires you to enter only the IDs of attacks you don't want to animate simultaneously. :^_^':
I've only had time to test it on a weapon this morning, so if I have any problems down the line I'll just post here. Cheers for your help.
@Seox: That's cause I appreciate you helping the community while I'm not :)
@Ryex: Hey, I just wished him luck, what's wrong with that? :P
Ah, one small problem. Can I disable this for items? I'm using Minkoff's Animated Battlers, and this script is overriding the "item use" animation.
edit: actually, it's also blocking the "struck" animation for some reason.
Quote from: Cid on July 24, 2009, 08:10:37 am
Ah, one small problem. Can I disable this for items? I'm using Minkoff's Animated Battlers, and this script is overriding the "item use" animation.
edit: actually, it's also blocking the "struck" animation for some reason.
Easily. I'm sorry for the trouble. What do you mean by the item use and struck animations? I need a bit more info. Sounds like an easy fix. Meanwhile, I'll guess mah way through and try to do this based on what I THINK the issue is.
Yeah, I figured you'd want it to simultaneously play more often than not, so I just went ahead and made it easier to configure ^_^
Don't EVER feel even SLIGHTLY bad about requesting help with something that I've taken up. If I've accepted the request, it means I'm with you til the end. If it's not what you want, I will make it so, as, otherwise, both our time has been wasted, and that's not cool. XD. But yeah, I'd be glad to fix it. I'm gonna test some potential fixes atm.
Thanks again, Fantasist!
EDIT: Ok, I see what you mean, and I also see why. I left out one line >.>. But yeah, I can't get the "use item" animation to play if another actor has made an instant animation action before the item's use. That's why - I forgot to reset the value of skipping >.>. Easy fix. Testing.
module Seox
# DON'T TOUCH THIS!
NORMAL_ANIMATION_WEAPONS = []
NORMAL_ANIMATION_ENEMIES = []
NORMAL_ANIMATION_SKILLS = []
# DON'T TOUCH ANYTHING ABOVE THIS!
#--------------------------------------------------------------------------
# * BEGIN CONFIGURATION
#--------------------------------------------------------------------------
# Pretty easy. Firstly, anything that
# you put in here will NOT animate instantly. Anything else will, automatically.
# Actor attacks are decided by the weapon, enemy attacks are based on the enemy.
# Skills are the same for both actors and enemies.
# Put the ID of weapons which DO NOT HAVE INSTANT ANIMATIONS inside of the
# brackets, like this: NORMAL_ANIMATION_WEAPONS = [1, 15, 67], seperating
# multiple entries with commas.
NORMAL_ANIMATION_WEAPONS = [1]
# Put the ID of enemies which DO NOT HAVE INSTANT ANIMATIONS inside of the
# brackets, like this: NORMAL_ANIMATION_enemies = [1, 15, 67], seperating
# multiple entries with commas.
NORMAL_ANIMATION_ENEMIES = []
# Put the ID of skills which DO NOT HAVE INSTANT ANIMATIONS inside of the
# brackets, like this: NORMAL_ANIMATION_SKILLS = [1, 15, 67], seperating
# multiple entries with commas.
NORMAL_ANIMATION_SKILLS = []
#--------------------------------------------------------------------------
# * END CONFIGURATION
#--------------------------------------------------------------------------
end
class Scene_Battle
#--------------------------------------------------------------------------
# * Frame Update (main phase step 3 : animation for action performer)
#--------------------------------------------------------------------------
def update_phase4_step3
@skip = false
# Animation for action performer (if ID is 0, then white flash)
if @active_battler.current_action.kind == 0
if @active_battler.is_a?(Game_Actor)
if !Seox::NORMAL_ANIMATION_WEAPONS.include?(@active_battler.weapon_id)
@skip = true
end
else
if !Seox::NORMAL_ANIMATION_ENEMIES.include?(@active_battler.id)
@skip = true
end
end
elsif @active_battler.current_action.kind == 1
if (!Seox::NORMAL_ANIMATION_SKILLS.include?(@active_battler.current_action.skill_id))
@skip = true
end
end
if !@skip
if @animation1_id == 0
@active_battler.white_flash = true
else
@active_battler.animation_id = @animation1_id
@active_battler.animation_hit = true
end
else
if @animation1_id == 0
@active_battler.white_flash = true
else
@active_battler.animation_id = @animation1_id
@active_battler.animation_hit = true
end
for target in @target_battlers
target.animation_id = @animation2_id
target.animation_hit = (target.damage != "Miss")
end
end
# Shift to step 4
@phase4_step = 4
end
#--------------------------------------------------------------------------
# * Frame Update (main phase step 4 : animation for target)
#--------------------------------------------------------------------------
def update_phase4_step4
# Animation for target
if !@skip
for target in @target_battlers
target.animation_id = @animation2_id
target.animation_hit = (target.damage != "Miss")
end
end
# Animation has at least 8 frames, regardless of its length
@wait_count = 8
# Shift to step 5
@phase4_step = 5
end
end
Better? :haha:
Lemme know if there's ANYTHING ELSE I can do for you! Thank you all for your support and cheesecake!
I could go for some of that about now. Or some key lime pie. Haven't had that in YEARS....
That hasn't solved either problem. :^_^':
By "use item" and "struck" I mean the animations used in Minkoff's Animated Battlers, not animations from the database. When a character uses an item their battle sprite will animate, and the same goes for when they're hit by an attack. But neither work with this script. Their sprites just remain static.
All the other MAB animations are working fine, so it's just these two.
Quote from: Cid on July 24, 2009, 12:19:19 pm
That hasn't solved either problem. :^_^':
By "use item" and "struck" I mean the animations used in Minkoff's Animated Battlers, not animations from the database. When a character uses an item their battle sprite will animate, and the same goes for when they're hit by an attack. But neither work with this script. Their sprites just remain static.
All the other MAB animations are working fine, so it's just these two.
Hmmmm.....is there any particular way that you could get me minkoff's scripts? It'd make it easier to fix ^_^
Also, you could try putting this script above Minkoff's animated battlers. If Mink's script aliases the methods involved, it will probably work, but if the methods are written, you'll have to tweak the script.
Quote from: Fantasist on July 25, 2009, 07:21:34 am
Also, you could try putting this script above Minkoff's animated battlers. If Mink's script aliases the methods involved, it will probably work, but if the methods are written, you'll have to tweak the script.
Good thinking. That eluded me.
Try that, Cid, and let me know if it works, or, if not, the error.
Thanks, Fantasist!
Ah, that seems to have done the trick. Thanks. 8)
Quote from: Cid on July 26, 2009, 02:38:49 am
Ah, that seems to have done the trick. Thanks. 8)
So, problem solved? No other errors? I'm glad!
Thanks again, Fantasist. Couldn't have done it without you!