Advance Moving script
- Can Run (pres Z button)
- Can moving to diagonal pozitioin
Dash ver. 1.2[/b][/font]
[spoiler]
#==============================================================================
#Advance Moving script - Dash ver. 1.2
#Script by Kurama
#http://www.anime.tym.sk/
#------------------------------------------------------------------------------
# Graphics/Characters
# Scene_Dash
# 001-Fighter01_dash
#==============================================================================
class Game_Player < Game_Character
SPEED_DASH = 5 # ??????????
SPEED_NORMAL = 4 # ???????
# ?????????????????Input::(hotkey)
#??????????????????????????
KEY_DASH = Input::A
# "_dash"??????????????????????? true:?? / false:??? ?
NO_FILE_DASH = true
# ????????????????? true:????? / false:???? ?
CHANGE_IN_MOVING = false
# ??????????????ID
# ?????????????????????????????ON???????
# ???????????????
NO_DASH_SWITCH = 999
end
#==============================================================================
# ? Game_Player
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias dash_update update
def update
# ?????????????????
# ???????????????????????
unless $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
if !($game_switches[NO_DASH_SWITCH])
# ????
if Input.press?(KEY_DASH) and (CHANGE_IN_MOVING == false or Input.dir8 != 0)
if (dash_graphic_exist?($game_party.actors[0]) or NO_FILE_DASH)
# ??????????????
if @move_speed != SPEED_DASH
@move_speed = SPEED_DASH
@dash_on = true
$game_player.refresh
end
end
elsif @dash_on == nil or @dash_on
@move_speed = SPEED_NORMAL
@dash_on = nil
$game_player.refresh
end
end
end
dash_update
end
#--------------------------------------------------------------------------
# ? ??????????????????
#--------------------------------------------------------------------------
def dash_graphic_exist?(actor)
# ???????
begin
RPG::Cache.character(actor.character_name.to_s + "_dash", actor.character_hue)
rescue
return false
end
return true
end
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias dash_refresh refresh
def refresh
dash_refresh
# ??????? 0 ??????
if $game_party.actors.size != 0
actor = $game_party.actors[0]
# ??????????????????
if @dash_on and dash_graphic_exist?(actor)
fileplus = "_dash"
else
fileplus = ""
end
@character_name = actor.character_name + fileplus
@character_hue = actor.character_hue
end
end
end
[/spoiler]
Quarter ver.1.0[spoiler]
#==============================================================================
#Advance Moving script - Quarter ver. 1.0
#Script by Kurama
#http://www.anime.tym.sk/
#------------------------------------------------------------------------------
# Graphics/Characters
# Scene_Quarter
# 001-Fighter01_quarter
#==============================================================================
#==============================================================================
# ? Game_Player
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias update_para_quarter update
def update
update_para_quarter
unless moving? or $game_system.map_interpreter.running? or
@move_route_forcing or $game_temp.message_window_showing
# ???????????????????????????
case Input.dir8
when 1 # ?????
move_lower_left
when 3 # ?????
move_lower_right
when 7 # ?????
move_upper_left
when 9 # ?????
move_upper_right
end
end
end
end
#==============================================================================
# ? Sprite_Character
#==============================================================================
class Sprite_Character < RPG::Sprite
#--------------------------------------------------------------------------
# ? ??????
#--------------------------------------------------------------------------
alias update_para_quarter update
def update
update_para_quarter
if @tile_id == 0
if (@character.direction - 2) % 2 == 1
# ????????????
if quarter_graphic_exist?(@character)
# ????????
if character.dash_on and dash_quarter_graphic_exist?(@character)
@character_name = @character.character_name + "_dash_quarter"
else
@character_name = @character.character_name + "_quarter"
end
self.bitmap = RPG::Cache.character(@character_name,
@character.character_hue)
# ?????
case @character.direction
when 1
n = 0
when 3
n = 2
when 7
n = 1
when 9
n = 3
end
else
@character.direction = @character.sub_direction
# ???????????????
n = (@character.direction - 2) / 2
end
# ?????????
sx = @character.pattern * @cw
sy = n * @ch
self.src_rect.set(sx, sy, @cw, @ch)
else
self.bitmap = RPG::Cache.character(@character.character_name,
@character.character_hue)
# ?????????
sx = @character.pattern * @cw
sy = (@character.direction - 2) / 2 * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
end
end
#--------------------------------------------------------------------------
# ? ????????????
#--------------------------------------------------------------------------
def quarter_graphic_exist?(character)
# ???????
begin
RPG::Cache.character(character.character_name.to_s + "_quarter", character.character_hue)
rescue
return false
end
return true
end
#--------------------------------------------------------------------------
# ? ????????????????
#--------------------------------------------------------------------------
def dash_quarter_graphic_exist?(character)
# ???????
begin
RPG::Cache.character(character.character_name.to_s + "_dash_quarter", character.character_hue)
rescue
return false
end
return true
end
end
#==============================================================================
# ? Game_Character
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ? ??????????
#--------------------------------------------------------------------------
attr_accessor :direction # ??
attr_accessor :sub_direction # ???????????????
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def move_lower_left
# ?????????
unless @direction_fix
@sub_direction = @direction
@direction = 1
# ?????????????????????????
@sub_direction = (@sub_direction == 6 ? 4 : @sub_direction == 8 ? 2 : @sub_direction)
end
# ??????? ?????????????????
if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 4)) or
(passable?(@x, @y, 4) and passable?(@x - 1, @y, 2))
# ?????
@x -= 1
@y += 1
# ????
increase_steps
end
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def move_lower_right
# ?????????
unless @direction_fix
@sub_direction = @direction
@direction = 3
# ?????????????????????????
@sub_direction = (@sub_direction == 4 ? 6 : @sub_direction == 8 ? 2 : @sub_direction)
end
# ??????? ?????????????????
if (passable?(@x, @y, 2) and passable?(@x, @y + 1, 6)) or
(passable?(@x, @y, 6) and passable?(@x + 1, @y, 2))
# ?????
@x += 1
@y += 1
# ????
increase_steps
end
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def move_upper_left
# ?????????
unless @direction_fix
@sub_direction = @direction
@direction = 7
# ?????????????????????????
@sub_direction = (@sub_direction == 6 ? 4 : @sub_direction == 2 ? 8 : @sub_direction)
end
# ??????? ?????????????????
if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 4)) or
(passable?(@x, @y, 4) and passable?(@x - 1, @y, 8))
# ?????
@x -= 1
@y -= 1
# ????
increase_steps
end
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
def move_upper_right
# ?????????
unless @direction_fix
@sub_direction = @direction
@direction = 9
# ?????????????????????????
@sub_direction = (@sub_direction == 4 ? 6 : @sub_direction == 2 ? 8 : @sub_direction)
end
# ??????? ?????????????????
if (passable?(@x, @y, 8) and passable?(@x, @y - 1, 6)) or
(passable?(@x, @y, 6) and passable?(@x + 1, @y, 8))
# ?????
@x += 1
@y -= 1
# ????
increase_steps
end
end
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
def dash_on
if @dash_on != nil
return @dash_on
else
return false
end
end
end
[/spoiler]
Demo: http://anime.tym.sk/subori/Advance%20Moving%20script.zipDash:(https://rmrk.net/proxy.php?request=http%3A%2F%2Fimg73.imageshack.us%2Fimg73%2F3402%2F001fighter01dashuu3.png&hash=78174058c560096969d75dbf2460d61095a3aee6)
Quarter:(https://rmrk.net/proxy.php?request=http%3A%2F%2Fimg73.imageshack.us%2Fimg73%2F3817%2F001fighter01quarteruj2.png&hash=bd0ab67af19295f678efa36c6a9d32f53b5431d0)
Use [ code ] tags next time, otherwise the code can get corrupted.
cool, did you make this?
my hero's graphic doesn't change. I uploaded the dash sprite.
Sweet thanx
I uploaded the dash and quarter images but my character doesn't change when I'm running or walking diagonally, is there anything I can do to fix this?
Look at the beginning of the script and look what the (Example): "001-Fighter01_quarter" says and rename the character file to that. It worked for me.
Would you happen to have some dash and Quarter sprites for Fighter04?