Strafe Script Snippet
Author: Xzygon
Release Date: 12/20/10
Introduction
Hey, I'm Xzygon, and this is my first released Script Snippet. Basically, what this does, is, while you're holding down a certain
key, you "strafe", or move without changing directions. It was made mainly for ABS systems, so you could move back and forth around
a certain monster or run away while attacking.
Features
-Strafe.
Script
#===============================================================================
# [VX] Strafing Script Snippet
# Plug & Play
#-------------------------------------------------------------------------------
# by Xzygon [hisserdelema@hotmail.com]
# Credit: Vladislaus, for his VTP script, which I based this off of,
# and for his weapon strafing which will eventually be released.
#-------------------------------------------------------------------------------
# Basically, what this snippet does, is if you hold down a specific button,
# You can "strafe", or move without changing directions.
# Used best with ABS systems and ranged skills or weapons.
#-------------------------------------------------------------------------------
# This is practically my first snippet, so sorry if it's not compatible
# with other scripts. (It should be compatible with most)
#-------------------------------------------------------------------------------
# If you're going to use this, credit is not necessary, but it'd be nice.
# And yes, I know this section is longer than the actual snippet, but it's
# not actually used in gameplay, so it's fine.
#===============================================================================
Strafe_Key = Input::Z #Change this to whatever button you want to strafe.
class Game_Player < Game_Character
alias xzy_move move_by_input
def move_by_input
if @actor != nil and (Input.press?(Strafe_Key))
@old_dir_fix = @direction_fix if @old_dir_fix == nil
@direction_fix = true
else
@direction_fix = @old_dir_fix if @old_dir_fix != nil
@old_dir_fix = nil
end
xzy_move
end
end
Customization
Change the button on line 22 to what button you want to press to strafe.
Compatibility
Should be compatible with most scripts.
Screenshot
Can't exactly take a screenshot of this.
Installation
Just Plug & Play. If you have an ABS system, such as VTP, put this script above.
Also, if you're planning
FAQ
Q: ZOMG IZ NOT WORKING!!@!?!
A: I can't exactly help you if you don't call down and give me more info.
Q: I'm using it with VTP or another battle system, but it's not working!
A: Put this script above VTP or other battle system, but below the Kernal/Keyboard. If that doesn't work, I don't know at this time.
Q: Wait, I have another question!
A: Just ask me below, or PM me.
Q: Can't you just event this?
A: Probably.
Terms and Conditions
Credits would be nice, but are not necessary.
Credits
-Xzygon
-Vladislaus, for his VTP script, which I based this off of.
No, well, it's good to have it - it just wasn't good to freeze it.
I haven't looked at move_by_input, so I am relying on your original structure, but something like the following would be good:
alias xzy_move move_by_input
def move_by_input
if Input.press? (Strafe_Key)
@old_dir_fix = @direction_fix if !@old_dir_fix
@direction_fix = true
elsif @old_dir_fix
@direction_fix = @old_dir_fix
@old_dir_fix = nil
end
xzy_move
end
I only disliked the original because it never reset @old_dir_fix to nil, which meant that once it was defined, it was never redefined. Because of that, @direction_fix was set to @old_dir_fix everytime move_by_input was called and not pressing Strafe, which meant the user could never effectively change the direction fix of the player under any circumstances when relying on player input.
The idea itself, to reset @direction_fix to normal everytime not pressing strafing, is good.