Another script i found on google not very descriptive
Main site:http://www.rpgmakerbrasil.com/forum/f43/rmvx-caterpillar-script-231.html (http://www.rpgmakerbrasil.com/forum/f43/rmvx-caterpillar-script-231.html)
[spoiler]class Game_Player
#--------------------------------------------------------------------------
# * Move Down
# turn_enabled : a flag permits direction change on that spot
#--------------------------------------------------------------------------
def move_down(turn_enabled = true)
super(turn_enabled)
end
#--------------------------------------------------------------------------
# * Move Left
# turn_enabled : a flag permits direction change on that spot
#--------------------------------------------------------------------------
def move_left(turn_enabled = true)
super(turn_enabled)
end
#--------------------------------------------------------------------------
# * Move Right
# turn_enabled : a flag permits direction change on that spot
#--------------------------------------------------------------------------
def move_right(turn_enabled = true)
super(turn_enabled)
end
#--------------------------------------------------------------------------
# * Move up
# turn_enabled : a flag permits direction change on that spot
#--------------------------------------------------------------------------
def move_up(turn_enabled = true)
super(turn_enabled)
end
#--------------------------------------------------------------------------
# * Move Lower Left
#--------------------------------------------------------------------------
def move_lower_left
super
end
#--------------------------------------------------------------------------
# * Move Lower Right
#--------------------------------------------------------------------------
def move_lower_right
super
end
#--------------------------------------------------------------------------
# * Move Upper Left
#--------------------------------------------------------------------------
def move_upper_left
super
end
#--------------------------------------------------------------------------
# * Move Upper Right
#--------------------------------------------------------------------------
def move_upper_right
super
end
end
class Game_Follower < Game_Character
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :actor
attr_accessor :move_speed
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(actor)
super()
@through = true
@actor = actor
end
#--------------------------------------------------------------------------
# * Set Actor
#--------------------------------------------------------------------------
def actor=(actor)
@actor = actor
setup
end
#--------------------------------------------------------------------------
# * Setup
#--------------------------------------------------------------------------
def setup
if @actor != nil
@character_name = $game_actors[@actor].character_name
@character_index = $game_actors[@actor].character_index
else
@character_name = ""
@character_index = 0
end
@opacity = 255
@blend_type = 0
@priority_type = 0
end
#--------------------------------------------------------------------------
# * Screen Z
#--------------------------------------------------------------------------
def screen_z
if $game_player.x == @x and $game_player.y == @y
return $game_player.screen_z - 1
end
super
end
#--------------------------------------------------------------------------
# * Same Position Starting Determinant (Disabled)
#--------------------------------------------------------------------------
def check_event_trigger_here(triggers)
result = false
return result
end
#--------------------------------------------------------------------------
# * Front Envent Starting Determinant (Disabled)
#--------------------------------------------------------------------------
def check_event_trigger_there(triggers)
result = false
return result
end
#--------------------------------------------------------------------------
# * Touch Event Starting Determinant (Disabled)
#--------------------------------------------------------------------------
def check_event_trigger_touch(x, y)
result = false
return result
end
end
class Spriteset_Map
alias_method :spriteset_map_create_characters, :create_characters
def create_characters
spriteset_map_create_characters
$game_party.followers.each do |char|
@character_sprites << Sprite_Character.new(@viewport1, char)
end
end
end
class Game_Party
#--------------------------------------------------------------------------
# * Constants
#--------------------------------------------------------------------------
MAX_SIZE = 8
CATERPILLAR = 2
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :followers
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_party_initialize, :initialize
def initialize
trick_caterpillar_party_initialize
@followers = Array.new(MAX_SIZE - 1) {Game_Follower.new(nil)}
@move_list = []
end
#--------------------------------------------------------------------------
# * Update Followers
#--------------------------------------------------------------------------
def update_followers
flag = $game_player.transparent || $game_switches[CATERPILLAR]
@followers.each_with_index do |char, i|
char.actor = @actors[i + 1]
char.move_speed = $game_player.move_speed
if $game_player.dash?
char.move_speed += 1
end
char.update
char.transparent = flag
end
end
#--------------------------------------------------------------------------
# * Move To Party
#--------------------------------------------------------------------------
def moveto_party(x, y)
@followers.each {|char| char.moveto(x, y)}
@move_list.clear
end
#--------------------------------------------------------------------------
# * Move Party
#--------------------------------------------------------------------------
def move_party
@move_list.each_index do |i|
if @followers[i] == nil
@move_list[i...@move_list.size] = nil
next
end
case @move_list[i].type
when 2
@followers[i].move_down(*@move_list[i].args)
when 4
@followers[i].move_left(*@move_list[i].args)
when 6
@followers[i].move_right(*@move_list[i].args)
when 8
@followers[i].move_up(*@move_list[i].args)
when j
@followers[i].move_lower_left
when 3
@followers[i].move_lower_right
when 7
@followers[i].move_upper_left
when 9
@followers[i].move_upper_right
when 5
@followers[i].jump(*@move_list[i].args)
end
end
end
#--------------------------------------------------------------------------
# * Add Move List
#--------------------------------------------------------------------------
def update_move(type, *args)
move_party
@move_list.unshift(Game_MoveListElement.new(type, args))
end
end
class Game_MoveListElement
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize(type, args)
@type = type
@args = args
end
#--------------------------------------------------------------------------
# * Type
#--------------------------------------------------------------------------
def type
return @type
end
#--------------------------------------------------------------------------
# * Args
#--------------------------------------------------------------------------
def args
return @args
end
end
class Game_Player
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :move_speed
#--------------------------------------------------------------------------
# * Update
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_update, :update
def update
$game_party.update_followers
trick_caterpillar_player_update
end
#--------------------------------------------------------------------------
# * Moveto
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_moveto, :moveto
def moveto(x, y)
$game_party.moveto_party(x, y)
trick_caterpillar_player_moveto(x, y)
end
#--------------------------------------------------------------------------
# * Move Down
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_move_down, :move_down
def move_down(turn_enabled = true)
if passable?(@x, @y+1)
$game_party.update_move(2, turn_enabled)
end
trick_caterpillar_player_move_down(turn_enabled)
end
#--------------------------------------------------------------------------
# * Move Left
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_move_left, :move_left
def move_left(turn_enabled = true)
if passable?(@x-1, @y)
$game_party.update_move(4, turn_enabled)
end
trick_caterpillar_player_move_left(turn_enabled)
end
#--------------------------------------------------------------------------
# * Move Right
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_move_right, :move_right
def move_right(turn_enabled = true)
if passable?(@x+1, @y)
$game_party.update_move(6, turn_enabled)
end
trick_caterpillar_player_move_right(turn_enabled)
end
#--------------------------------------------------------------------------
# * Move Up
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_move_up, :move_up
def move_up(turn_enabled = true)
if passable?(@x, @y-1)
$game_party.update_move(8, turn_enabled)
end
trick_caterpillar_player_move_up(turn_enabled)
end
#--------------------------------------------------------------------------
# * Move Lower Left
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_move_lower_left, :move_lower_left
def move_lower_left
if passable?(@x - 1, @y) and passable?(@x, @y + 1)
$game_party.update_move(1)
end
trick_caterpillar_player_move_lower_left
end
#--------------------------------------------------------------------------
# * Move Lower Right
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_move_lower_right, :move_lower_right
def move_lower_right
if passable?(@x + 1, @y) and passable?(@x, @y + 1)
$game_party.update_move(3)
end
trick_caterpillar_player_move_lower_right
end
#--------------------------------------------------------------------------
# * Move Upper Left
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_move_upper_left, :move_upper_left
def move_upper_left
if passable?(@x - 1, @y) and passable?(@x, @y - 1)
$game_party.update_move(7)
end
trick_caterpillar_player_move_upper_left
end
#--------------------------------------------------------------------------
# * Move Upper Right
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_move_upper_right, :move_upper_right
def move_upper_right
if passable?(@x + 1, @y) and passable?(@x, @y - 1)
$game_party.update_move(9)
end
trick_caterpillar_player_move_upper_right
end
#--------------------------------------------------------------------------
# * Jump
#--------------------------------------------------------------------------
alias_method :trick_caterpillar_player_jump, :jump
def jump(x_plus, y_plus)
new_x = @x + x_plus
new_y = @y + y_plus
if (x_plus == 0 and y_plus == 0) or passable?(new_x, new_y)
$game_party.update_move(5, x_plus, y_plus)
end
trick_caterpillar_player_jump(x_plus, y_plus)
end
end###########
###########
###########[/spoiler]
I'm pretty sure this made by Trickster and ported to VX by Diedrupo.
I remembered screenshot and script without header. ;)
Man, this script is so frigging short! To think how long the one for XP is... great find by the way, I was just looking for that!
EDIT:
QuoteMan, this script is so frigging short! To think how long the one for XP is...
Okay, I might've been wrong theree, I didn't excactly take a look at the line numbers, and it seemed it took less time to select the script than usual, that's why...
anyway to make this compatible with this script??
[spoiler]#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/ ? Adjustable Speed & 8-Way Directional Movement - KGC_Dash_8DirMove ? VX ?
#_/ ? Last Update: 2008/05/29 ?
#_/ ? Translation and Updates by by Mr. Anonymous ?
#_/-----------------------------------------------------------------------------
#_/ This script adds 8-way-directional movement and speed adjustment settings.
#_/ Note: Still need to finish documentation concerning 8DIR_ANIMATION
#_/=============================================================================
#_/ Install: Insert below KGC_TilesetExtension.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#==============================================================================#
# ? Customization ? #
#==============================================================================#
module KGC
module Dash_8DirMove
# ? 8-Way Directional Movement ?
# true = Enables the character to move in diagonal directions.
# false = Disable diagonal movement, restricting the player to the default
# movement system of up, down, left, and right.
ENABLE_8DIR = true
# ? 8-Way Directional Animation ?
# I believe this toggle is to allow the system to use 8-way directional
# animations for charactersets who have the additional cells to do so.
# By default an image with the additional frames should be suffixed with a #
ENABLE_8DIR_ANIMATION = false
# ? Walk Speed ?
# Allows you to change the default rate of speed the actor walks.
# A DEFAULT_WALK_SPEED of 4 is the default RMVX walk speed.
DEFAULT_WALK_SPEED = 4
# ? Dash Speed ?
# Allows you to change the default rate of speed the actor dashes.
# A DASH_SPEED_RATE of 3 is the default RMVX dash speed.
DASH_SPEED_RATE = 3
end
end
#------------------------------------------------------------------------------#
$imported = {} if $imported == nil
$imported["Dash_8DirMove"] = true
module KGC::Dash_8DirMove
# Image Suffix
SLANT_SUFFIX = "#"
end
#==============================================================================
# ? KGC::Commands
#==============================================================================
module KGC::Commands
module_function
#--------------------------------------------------------------------------
# ? Reset Walk Speed
#--------------------------------------------------------------------------
def reset_walk_speed
$game_player.reset_move_speed
end
#--------------------------------------------------------------------------
# ? Set Walk Speed
#--------------------------------------------------------------------------
def set_walk_speed(value)
$game_system.temp_walk_speed = value
end
#--------------------------------------------------------------------------
# ? Set Dash Speed
#--------------------------------------------------------------------------
def set_dash_speed(value)
$game_system.temp_dash_speed = value
end
end
class Game_Interpreter
include KGC::Commands
end
#==============================================================================
# ? Game_System
# * Added by Mr. Anonymous 5/29/08
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ? Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :temp_dash_speed # Temporary Dash Speed
attr_accessor :temp_walk_speed # Temporary Walk Speed
#--------------------------------------------------------------------------
# ? Initialize
#--------------------------------------------------------------------------
alias initialize_KGC_Dash_8DirMove initialize
def initialize
initialize_KGC_Dash_8DirMove
@temp_dash_speed = nil
@temp_walk_speed = nil
end
end
#==============================================================================
# ? Game_Party
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ? Decrease Steps
#--------------------------------------------------------------------------
def decrease_steps
@steps -= 1
end
end
#==============================================================================
# ? Game_Character
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ? Direction (?-Way Movement)
#--------------------------------------------------------------------------
def direction_8dir
return @direction
end
#--------------------------------------------------------------------------
# ? Set Direction
# direction : Directions
#--------------------------------------------------------------------------
alias set_direction_KGC_Dash_8DirMove set_direction
def set_direction(direction)
last_dir = @direction
set_direction_KGC_Dash_8DirMove(direction)
if !@direction_fix && direction != 0
@direction_8dir = direction
end
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
alias move_lower_left_KGC_Dash_8DirMove move_lower_left
def move_lower_left
move_lower_left_KGC_Dash_8DirMove
@direction_8dir = 1 unless @direction_fix
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
alias move_lower_right_KGC_Dash_8DirMove move_lower_right
def move_lower_right
move_lower_right_KGC_Dash_8DirMove
@direction_8dir = 3 unless @direction_fix
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
alias move_upper_left_KGC_Dash_8DirMove move_upper_left
def move_upper_left
move_upper_left_KGC_Dash_8DirMove
@direction_8dir = 7 unless @direction_fix
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
alias move_upper_right_KGC_Dash_8DirMove move_upper_right
def move_upper_right
move_upper_right_KGC_Dash_8DirMove
@direction_8dir = 9 unless @direction_fix
end
end
#==============================================================================
# ? Game_Player
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias initialize_KGC_Dash_8DirMove initialize
def initialize
initialize_KGC_Dash_8DirMove
reset_move_speed
end
#--------------------------------------------------------------------------
# ? ?? (????)
#--------------------------------------------------------------------------
def direction_8dir
@direction_8dir = @direction if @direction_8dir == nil
return @direction_8dir
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def reset_move_speed
@move_speed = KGC::Dash_8DirMove::DEFAULT_WALK_SPEED
$game_system.temp_dash_speed = nil
$game_system.temp_walk_speed = nil
end
if KGC::Dash_8DirMove::ENABLE_8DIR
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
def move_by_input
return unless movable?
return if $game_map.interpreter.running?
last_steps = $game_party.steps
case Input.dir8
when 1; move_down; move_left; @direction = 2
when 2; move_down
when 3; move_down; move_right; @direction = 6
when 4; move_left
when 6; move_right
when 7; move_up; move_left; @direction = 4
when 8; move_up
when 9; move_up; move_right; @direction = 8
else; return
end
@direction_8dir = Input.dir8
# ????????????
if $game_party.steps - last_steps == 2
$game_party.decrease_steps
end
end
end # ENABLE_8DIR
#--------------------------------------------------------------------------
# ? Upate Movement
#--------------------------------------------------------------------------
def update_move
distance = 2 ** @move_speed # ?????????????
if dash? # ????????????
distance *= KGC::Dash_8DirMove::DASH_SPEED_RATE
#--------------------------------------------------------------------
# ? Process Temp Walk/Dash Speed
# * Added by Mr. Anonymous 5/29/08
#--------------------------------------------------------------------
if $game_system.temp_dash_speed == nil
@move_speed = KGC::Dash_8DirMove::DASH_SPEED_RATE
else
@move_speed = $game_system.temp_dash_speed
end
else
if $game_system.temp_walk_speed == nil
@move_speed = KGC::Dash_8DirMove::DEFAULT_WALK_SPEED
else
@move_speed = $game_system.temp_walk_speed
# Automatically adjust move frequency to move speed.
=begin
if $game_system.temp_walk_speed <= 4
@move_frequency = 6
elsif $game_system.temp_walk_speed == 3
@move_frequency = 5
elsif $game_system.temp_walk_speed == 2
@move_frequency = 3
elsif $game_system.temp_walk_speed == 1
@move_frequency = 3
end
=end
end
#--- End 5/29/08 Update
end
distance = Integer(distance)
@real_x = [@real_x - distance, @x * 256].max if @x * 256 < @real_x
@real_x = [@real_x + distance, @x * 256].min if @x * 256 > @real_x
@real_y = [@real_y - distance, @y * 256].max if @y * 256 < @real_y
@real_y = [@real_y + distance, @y * 256].min if @y * 256 > @real_y
update_bush_depth unless moving?
if @walk_anime
@anime_count += 1.5
elsif @step_anime
@anime_count += 1
end
end
end
#==============================================================================
# ? Sprite_Character
#==============================================================================
if KGC::Dash_8DirMove::ENABLE_8DIR_ANIMATION
class Sprite_Character < Sprite_Base
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
SLANT_ANIME_TABLE = { 1=>2, 3=>6, 7=>4, 9=>8 }
#--------------------------------------------------------------------------
# ? ????????????
#--------------------------------------------------------------------------
alias update_bitmap_KGC_Dash_8DirMove update_bitmap
def update_bitmap
name_changed = (@character_name != @character.character_name)
update_bitmap_KGC_Dash_8DirMove
if @tile_id > 0 # ???????
@enable_slant = false
return
end
return unless name_changed # ???????
# ???????????
@enable_slant = true
begin
@character_name_slant = @character_name + KGC::Dash_8DirMove::SLANT_SUFFIX
Cache.character(@character_name_slant)
rescue
@enable_slant = false
end
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
alias update_src_rect_KGC_Dash_8DirMove update_src_rect
def update_src_rect
return if @tile_id > 0 # ?????
if @enable_slant
update_src_rect_for_slant
else
update_src_rect_KGC_Dash_8DirMove
end
end
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
def update_src_rect_for_slant
index = @character.character_index
pattern = @character.pattern < 3 ? @character.pattern : 1
sx = (index % 4 * 3 + pattern) * @cw
dir = @character.direction_8dir
case dir % 2
when 0 # ????
if @last_slant
self.bitmap = Cache.character(@character_name)
@last_slant = false
end
else # ??
unless @last_slant
self.bitmap = Cache.character(@character_name_slant)
@last_slant = true
end
# Convert 1, 3, 7, 9 ? 2, 6, 4, 8
dir = SLANT_ANIME_TABLE[dir]
end
sy = (index / 4 * 4 + (dir - 2) / 2) * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
end
end # ENABLE_8DIR_ANIMATION
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/ The original untranslated version of this script can be found here:
# http://f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/php/tech.php?tool=VX&cat=tech_vx/map&tech=dash_8dir_move
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_[/spoiler]
if possible appreciated
i think its even mergable for an experienced scripter, maybe an idea???
I like this SCRIPT :(
Like a song :blizj:
Quote from: Black Olrac on October 31, 2008, 04:24:11 AM
anyway to make this compatible with this script??
[spoiler]#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/ ? Adjustable Speed & 8-Way Directional Movement - KGC_Dash_8DirMove ? VX ?
#_/ ? Last Update: 2008/05/29 ?
#_/ ? Translation and Updates by by Mr. Anonymous ?
#_/-----------------------------------------------------------------------------
#_/ This script adds 8-way-directional movement and speed adjustment settings.
#_/ Note: Still need to finish documentation concerning 8DIR_ANIMATION
#_/=============================================================================
#_/ Install: Insert below KGC_TilesetExtension.
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#==============================================================================#
# ? Customization ? #
#==============================================================================#
module KGC
module Dash_8DirMove
# ? 8-Way Directional Movement ?
# true = Enables the character to move in diagonal directions.
# false = Disable diagonal movement, restricting the player to the default
# movement system of up, down, left, and right.
ENABLE_8DIR = true
# ? 8-Way Directional Animation ?
# I believe this toggle is to allow the system to use 8-way directional
# animations for charactersets who have the additional cells to do so.
# By default an image with the additional frames should be suffixed with a #
ENABLE_8DIR_ANIMATION = false
# ? Walk Speed ?
# Allows you to change the default rate of speed the actor walks.
# A DEFAULT_WALK_SPEED of 4 is the default RMVX walk speed.
DEFAULT_WALK_SPEED = 4
# ? Dash Speed ?
# Allows you to change the default rate of speed the actor dashes.
# A DASH_SPEED_RATE of 3 is the default RMVX dash speed.
DASH_SPEED_RATE = 3
end
end
#------------------------------------------------------------------------------#
$imported = {} if $imported == nil
$imported["Dash_8DirMove"] = true
module KGC::Dash_8DirMove
# Image Suffix
SLANT_SUFFIX = "#"
end
#==============================================================================
# ? KGC::Commands
#==============================================================================
module KGC::Commands
module_function
#--------------------------------------------------------------------------
# ? Reset Walk Speed
#--------------------------------------------------------------------------
def reset_walk_speed
$game_player.reset_move_speed
end
#--------------------------------------------------------------------------
# ? Set Walk Speed
#--------------------------------------------------------------------------
def set_walk_speed(value)
$game_system.temp_walk_speed = value
end
#--------------------------------------------------------------------------
# ? Set Dash Speed
#--------------------------------------------------------------------------
def set_dash_speed(value)
$game_system.temp_dash_speed = value
end
end
class Game_Interpreter
include KGC::Commands
end
#==============================================================================
# ? Game_System
# * Added by Mr. Anonymous 5/29/08
#==============================================================================
class Game_System
#--------------------------------------------------------------------------
# ? Public Instance Variables
#--------------------------------------------------------------------------
attr_accessor :temp_dash_speed # Temporary Dash Speed
attr_accessor :temp_walk_speed # Temporary Walk Speed
#--------------------------------------------------------------------------
# ? Initialize
#--------------------------------------------------------------------------
alias initialize_KGC_Dash_8DirMove initialize
def initialize
initialize_KGC_Dash_8DirMove
@temp_dash_speed = nil
@temp_walk_speed = nil
end
end
#==============================================================================
# ? Game_Party
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ? Decrease Steps
#--------------------------------------------------------------------------
def decrease_steps
@steps -= 1
end
end
#==============================================================================
# ? Game_Character
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ? Direction (?-Way Movement)
#--------------------------------------------------------------------------
def direction_8dir
return @direction
end
#--------------------------------------------------------------------------
# ? Set Direction
# direction : Directions
#--------------------------------------------------------------------------
alias set_direction_KGC_Dash_8DirMove set_direction
def set_direction(direction)
last_dir = @direction
set_direction_KGC_Dash_8DirMove(direction)
if !@direction_fix && direction != 0
@direction_8dir = direction
end
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
alias move_lower_left_KGC_Dash_8DirMove move_lower_left
def move_lower_left
move_lower_left_KGC_Dash_8DirMove
@direction_8dir = 1 unless @direction_fix
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
alias move_lower_right_KGC_Dash_8DirMove move_lower_right
def move_lower_right
move_lower_right_KGC_Dash_8DirMove
@direction_8dir = 3 unless @direction_fix
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
alias move_upper_left_KGC_Dash_8DirMove move_upper_left
def move_upper_left
move_upper_left_KGC_Dash_8DirMove
@direction_8dir = 7 unless @direction_fix
end
#--------------------------------------------------------------------------
# ? ?????
#--------------------------------------------------------------------------
alias move_upper_right_KGC_Dash_8DirMove move_upper_right
def move_upper_right
move_upper_right_KGC_Dash_8DirMove
@direction_8dir = 9 unless @direction_fix
end
end
#==============================================================================
# ? Game_Player
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
alias initialize_KGC_Dash_8DirMove initialize
def initialize
initialize_KGC_Dash_8DirMove
reset_move_speed
end
#--------------------------------------------------------------------------
# ? ?? (????)
#--------------------------------------------------------------------------
def direction_8dir
@direction_8dir = @direction if @direction_8dir == nil
return @direction_8dir
end
#--------------------------------------------------------------------------
# ? ?????????
#--------------------------------------------------------------------------
def reset_move_speed
@move_speed = KGC::Dash_8DirMove::DEFAULT_WALK_SPEED
$game_system.temp_dash_speed = nil
$game_system.temp_walk_speed = nil
end
if KGC::Dash_8DirMove::ENABLE_8DIR
#--------------------------------------------------------------------------
# ? ??????????????
#--------------------------------------------------------------------------
def move_by_input
return unless movable?
return if $game_map.interpreter.running?
last_steps = $game_party.steps
case Input.dir8
when 1; move_down; move_left; @direction = 2
when 2; move_down
when 3; move_down; move_right; @direction = 6
when 4; move_left
when 6; move_right
when 7; move_up; move_left; @direction = 4
when 8; move_up
when 9; move_up; move_right; @direction = 8
else; return
end
@direction_8dir = Input.dir8
# ????????????
if $game_party.steps - last_steps == 2
$game_party.decrease_steps
end
end
end # ENABLE_8DIR
#--------------------------------------------------------------------------
# ? Upate Movement
#--------------------------------------------------------------------------
def update_move
distance = 2 ** @move_speed # ?????????????
if dash? # ????????????
distance *= KGC::Dash_8DirMove::DASH_SPEED_RATE
#--------------------------------------------------------------------
# ? Process Temp Walk/Dash Speed
# * Added by Mr. Anonymous 5/29/08
#--------------------------------------------------------------------
if $game_system.temp_dash_speed == nil
@move_speed = KGC::Dash_8DirMove::DASH_SPEED_RATE
else
@move_speed = $game_system.temp_dash_speed
end
else
if $game_system.temp_walk_speed == nil
@move_speed = KGC::Dash_8DirMove::DEFAULT_WALK_SPEED
else
@move_speed = $game_system.temp_walk_speed
# Automatically adjust move frequency to move speed.
=begin
if $game_system.temp_walk_speed <= 4
@move_frequency = 6
elsif $game_system.temp_walk_speed == 3
@move_frequency = 5
elsif $game_system.temp_walk_speed == 2
@move_frequency = 3
elsif $game_system.temp_walk_speed == 1
@move_frequency = 3
end
=end
end
#--- End 5/29/08 Update
end
distance = Integer(distance)
@real_x = [@real_x - distance, @x * 256].max if @x * 256 < @real_x
@real_x = [@real_x + distance, @x * 256].min if @x * 256 > @real_x
@real_y = [@real_y - distance, @y * 256].max if @y * 256 < @real_y
@real_y = [@real_y + distance, @y * 256].min if @y * 256 > @real_y
update_bush_depth unless moving?
if @walk_anime
@anime_count += 1.5
elsif @step_anime
@anime_count += 1
end
end
end
#==============================================================================
# ? Sprite_Character
#==============================================================================
if KGC::Dash_8DirMove::ENABLE_8DIR_ANIMATION
class Sprite_Character < Sprite_Base
#--------------------------------------------------------------------------
# ? ??
#--------------------------------------------------------------------------
SLANT_ANIME_TABLE = { 1=>2, 3=>6, 7=>4, 9=>8 }
#--------------------------------------------------------------------------
# ? ????????????
#--------------------------------------------------------------------------
alias update_bitmap_KGC_Dash_8DirMove update_bitmap
def update_bitmap
name_changed = (@character_name != @character.character_name)
update_bitmap_KGC_Dash_8DirMove
if @tile_id > 0 # ???????
@enable_slant = false
return
end
return unless name_changed # ???????
# ???????????
@enable_slant = true
begin
@character_name_slant = @character_name + KGC::Dash_8DirMove::SLANT_SUFFIX
Cache.character(@character_name_slant)
rescue
@enable_slant = false
end
end
#--------------------------------------------------------------------------
# ? ????????
#--------------------------------------------------------------------------
alias update_src_rect_KGC_Dash_8DirMove update_src_rect
def update_src_rect
return if @tile_id > 0 # ?????
if @enable_slant
update_src_rect_for_slant
else
update_src_rect_KGC_Dash_8DirMove
end
end
#--------------------------------------------------------------------------
# ? ?????????????
#--------------------------------------------------------------------------
def update_src_rect_for_slant
index = @character.character_index
pattern = @character.pattern < 3 ? @character.pattern : 1
sx = (index % 4 * 3 + pattern) * @cw
dir = @character.direction_8dir
case dir % 2
when 0 # ????
if @last_slant
self.bitmap = Cache.character(@character_name)
@last_slant = false
end
else # ??
unless @last_slant
self.bitmap = Cache.character(@character_name_slant)
@last_slant = true
end
# Convert 1, 3, 7, 9 ? 2, 6, 4, 8
dir = SLANT_ANIME_TABLE[dir]
end
sy = (index / 4 * 4 + (dir - 2) / 2) * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
end
end # ENABLE_8DIR_ANIMATION
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_
#_/ The original untranslated version of this script can be found here:
# http://f44.aaa.livedoor.jp/~ytomy/tkool/rpgtech/php/tech.php?tool=VX&cat=tech_vx/map&tech=dash_8dir_move
#_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_[/spoiler]
if possible appreciated
i think its even mergable for an experienced scripter, maybe an idea???
1. this script is awesome
2. Black Olrac KGC has a caterpillar script that works with it, tell me if u want a link