I'm referencing this script:
http://www.rmxp.org/forums/index.php?topic=42178.0
It's Synthesize's Stand/Walk/Run Script for RMVX (it's outdated, so I can't post in the topic).
Note: In his demo, rename the '_walk' sprite to '_idle'.
It works fine, except when you run, then stop, your character sprite does not cycle automatically to idle. The script also seems to require that there be an _idle version of absolutely everything, even '_run' sprites, or else it crashes. How can I fix this so that it doesn't crash if there is no '_idle' at all?
Here's the version I edited (note: the stuff about run counts is edited because I don't want it.)
I was starting to learn RGSS, and now this RGSS2 stuff is killing me T_T
I appreciate any help I can get on this matter.
Thank you!!!
P.S., if you're wondering, no, I'm not giving up on my main project in RMXP, this is simply a side project so I can learn RMVX better. So far, not likin' it too much :/
http://www.rmxp.org/forums/index.php?topic=42178.0
It's Synthesize's Stand/Walk/Run Script for RMVX (it's outdated, so I can't post in the topic).
Note: In his demo, rename the '_walk' sprite to '_idle'.
It works fine, except when you run, then stop, your character sprite does not cycle automatically to idle. The script also seems to require that there be an _idle version of absolutely everything, even '_run' sprites, or else it crashes. How can I fix this so that it doesn't crash if there is no '_idle' at all?
Here's the version I edited (note: the stuff about run counts is edited because I don't want it.)
Code:
#===============================================================================
# Stand/Walk/Run Script --- RMVX Version
#===============================================================================
# Written by Synthesize
# Version 2.00
# January 26, 2008
# Revised: March 1, 2008
#===============================================================================
# Customization
#-------------------------------------------------------------------------------
module StandWalkRun
Use_run = false # Use Run Points?
Use_run_sprite = true # Use a Running sprite?
Run_sprite_suffix = '_run' # Running Sprite Suffix
Run_points = 0 # The maximum amount of Run Points
Run_points_restore = 0 # 1 Run Point is restored in X Frames
Restore_run_while_walking = false # Restore points while walking?
Use_idle_sprite = true # Use Idle Sprite?
Idle_sprite_suffix = '_idle' # idle Sprite Suffix
Use_anime = true # Animate your Idle Sprite?
Idle_time = 1 # Time before sprite is animated
end
#-------------------------------------------------------------------------------
# Scene_Map:: The main functions of the script are here
#-------------------------------------------------------------------------------
class Scene_Map < Scene_Base
# Aliases
alias syn_map_update update
alias syn_map_start start
#-----------------------------------------------------------------------------
# Initiate variables
#-----------------------------------------------------------------------------
def start
$game_player.old_character_name = $game_player.character_name
@wait_time = 0
@wait_time2 = 0
syn_map_start
end
#-----------------------------------------------------------------------------
# Rewrite Scene_Change to reset sprite
#-----------------------------------------------------------------------------
def update_scene_change
return if $game_player.moving?
case $game_temp.next_scene
when "battle"
call_idle($game_player.old_character_name, false)
call_battle
when "shop"
call_idle($game_player.old_character_name, false)
call_shop
when "name"
call_idle($game_player.old_character_name, false)
call_name
when "menu"
call_idle($game_player.old_character_name, false)
call_menu
when "save"
call_idle($game_player.old_character_name, false)
call_save
when "debug"
call_idle($game_player.old_character_name, false)
call_debug
when "gameover"
call_gameover
when "title"
call_title
else
$game_temp.next_scene = nil
end
end
#-----------------------------------------------------------------------------
# Update:: Update the scene
#-----------------------------------------------------------------------------
def update
syn_map_update
if Input.dir4 == 0
wait(1, false) if StandWalkRun::Use_idle_sprite
call_idle($game_player.character_name + StandWalkRun::Idle_sprite_suffix, StandWalkRun::Use_anime) if @wait_time == StandWalkRun::Idle_time
$game_temp.syn_state = "idle"
restore_run if StandWalkRun::Use_run
else
$game_temp.syn_state = ""
restore_run if StandWalkRun::Restore_run_while_walking
call_idle($game_player.old_character_name, false) if $game_player.character_name != $game_player.old_character_name
end
end
#-----------------------------------------------------------------------------
# Call_Idle:: Sets and animates the idle Sprite
#-----------------------------------------------------------------------------
def call_idle(sprite, anime)
$game_player.set_step_anime(anime)
$game_player.set_graphic(sprite, 0)
end
#-----------------------------------------------------------------------------
# Restore_Run: Restore Run Points
#-----------------------------------------------------------------------------
def restore_run
if $game_player.run_points < StandWalkRun::Run_points
wait(1, true)
$game_player.run_points += 1 if @wait_time2 == StandWalkRun::Run_points_restore
@wait_time2 = 0 if @wait_time2 == StandWalkRun::Run_points_restore
end
end
#-----------------------------------------------------------------------------
# Wait:: Allows Wait Times
#-----------------------------------------------------------------------------
def wait(duration, value)
for i in 0...duration
@wait_time += 1 if value == false
@wait_time2 += 1 if value
break if i >= duration / 2
end
end
end
#-------------------------------------------------------------------------------
# Game_Temp:: Create current state
#-------------------------------------------------------------------------------
class Game_Temp
attr_accessor :syn_state
alias syn_temp_init initialize
def initialize
@syn_state = ""
syn_temp_init
end
end
#-------------------------------------------------------------------------------
# Game_Character:: Create the Change_Sprite method
#-------------------------------------------------------------------------------
class Game_Character
# Attr(s)
attr_accessor :old_character_name
attr_accessor :run_points
alias syn_ch_init initialize
#-----------------------------------------------------------------------------
# Initialize Variables
#-----------------------------------------------------------------------------
def initialize
@run_points = StandWalkRun::Run_points
syn_ch_init
end
#-----------------------------------------------------------------------------
# Set Setp Animation
#-----------------------------------------------------------------------------
def set_step_anime(value)
@step_anime = value
return @step_anime
end
end
#-------------------------------------------------------------------------------
# Game_Player:: This handles the dash process
#-------------------------------------------------------------------------------
class Game_Player < Game_Character
alias syn_player_update update
alias syn_player_dash dash?
def dash?
return false if @run_points == 0 and StandWalkRun::Use_run
syn_player_dash
end
#-----------------------------------------------------------------------------
# Update:: Update the scene
#----------------------------------------------------------------------------
def update
if dash?
unless $game_temp.syn_state == "idle"
set_graphic(@character_name + StandWalkRun::Run_sprite_suffix, 0) if StandWalkRun::Use_run_sprite
@run_points -= 0
syn_player_update
end
else
changed = false
syn_player_update
end
end
end
#-------------------------------------------------------------------------------
# * This script is not compatible with RPG Maker XP *
#-------------------------------------------------------------------------------
# Written by Synthesize
# Version 2.00
# Requested by Cerulean Skye
#===============================================================================
# Stand/Walk/Run - RMVX Version
#===============================================================================
I was starting to learn RGSS, and now this RGSS2 stuff is killing me T_T
I appreciate any help I can get on this matter.
Thank you!!!
P.S., if you're wondering, no, I'm not giving up on my main project in RMXP, this is simply a side project so I can learn RMVX better. So far, not likin' it too much :/