New account registration is temporarily disabled.

WINGBLADE48'S PROFILE

Gift of the Goddess (DEM...
Do you have what it takes to find the Gift?

Search

Filter

[RMVX ACE] Small problem with Victor Sant's Character Control script


That is so much far from what I explained... I specifically stated "overworld/map". I did not say anything concerning the battle system whatsoever.

[RMVX ACE] Small problem with Victor Sant's Character Control script


Ok... What I need are scripts that allows me to do the following:

1) Multi Frame - Have my character's spriteset to have more animation frames for each direction than the standard 3 frames. This is to make my characters have smooth animations in the overworld/map.

2) Character Control - Have different animation for my characters when they're idle (not moving), walking and running (g.e. when idle, you can see the character breathing). Also, this script has to be compatible with a Multi Frame script.

Either two separate scripts or one script with both functions will do fine.

As for requiring Victor's core... uhhh.... With all due respect, duh...

[RMVX ACE] Small problem with Victor Sant's Character Control script



As I mentioned, nothing changes even if I remove any other non-Victor scripts (in case, just Crystal's Party Leader script).

If my problem is that I'm using Victor's script, do you happen to know any scripts that functions the same as Victor's Multi Frame and Character Control scripts.

Thank you!

[RMVX ACE] Small problem with Victor Sant's Character Control script

The script works fine except for one small detail that I don't know how to fix. Before I get to explaining my problem, note that I'm also using Victor's Multi Frame script and Cystal Engine's Party Leader script (but the problem is still there even if I remove these extra scripts).

Whenever I'm moving my actor, the animation for walk and run works fine. But whenever I'm NOT moving my actor, he just stands there lifeless despite the animated sprites I made for his main character set. Here the names of each images (each having 6 frames per direction):


(I made the last one cause I thought it might work. Unfortunately, it didn't)

I tried using the comment calls, but, still no dice.

Here is Victor's Character Control script:

#==============================================================================
# ** Victor Engine - Character Control
#------------------------------------------------------------------------------
# Author : Victor Sant
#
# Version History:
# v 1.00 - 2012.01.04 > First release
# v 1.01 - 2012.01.07 > Added Compatibility with Visual Equipment
# v 1.02 - 2012.01.14 > Fixed the positive sign on some Regular Expressions
# v 1.03 - 2012.01.15 > Fixed the Regular Expressions problem with "" and 灯
# v 1.04 - 2012.07.25 > Fixed Compatibility with Visual Equipment and
# > Diagonal Movement
# v 1.05 - 2012.08.02 > Compatibility with Basic Module 1.27
#------------------------------------------------------------------------------
# This script allows to control character chaset animations. You can set
# different graphis for walking, dashing and jumping, also you can display
# pose animations with simple comment call. This allows to animate characters
# on the map without the need of long Move Route event commands.
#------------------------------------------------------------------------------
# Compatibility
# Requires the script 'Victor Engine - Basic Module' v 1.27 or higher
# If used with 'Victor Engine - Multi Frames' place this bellow it.
# If used with 'Victor Engine - Visual Equip' place this bellow it.
# If used with 'Victor Engine - Diagonal Movement' place this bellow it.
#
# * Overwrite methods
# class Game_CharacterBase
# def update_animation
#
# * Alias methods
# class Game_CharacterBase
# def update_animation
# def init_public_members
# def init_private_members
# def update_anime_count
# def update_anime_pattern
# def move_straight(d, turn_ok = true)
# def move_diagonal(horz, vert)
# def update_move
# def update_jump
# def update_stop
#
# class Game_Interpreter
# def comment_call
#
# class Sprite_Character < Sprite_Base
# def graphic_changed?
# def update_character_info
# def set_bitmap_name
# def set_bitmap_position
#
#------------------------------------------------------------------------------
# Comment calls note tags:
# Tags to be used in events comment box, works like a script call.
#
# <actor change pose> <event change pose>
# settings settings
# </actor change pose> </event change pose>
# Display a custom pose, the pose overide any other pose being currently
# played, add the following values to the settings. The ID must be added,
# other values are optional.
# id: x : actor index or event ID
# name: "x" : pose sufix name. ("sufix")
# loop : pose animation loop, if added the pose will repeat.
# lock : position lock, can't move while playing the pose.
# walk : walking pose, if not set the pose will stop if walk.
# speed: x : pose animation speed, higher values makes the animation slow.
# frame: x : number of frams, can't exceed the max frames of the charset.
#
# <actor add pose> <event add pose>
# settings settings
# </actor add pose> </event add pose>
# Display a custom pose, the pose won't be displayed immediately, if there is
# another pose being displayed, it will wait it finish before, you can
# add multiple poses at once to make a long animation, add the following
# values to the settings. The ID must be added, other values are optional.
# id: x : actor index or event ID
# name: "x" : pose sufix name. ("sufix")
# loop : pose animation loop, if added the pose will repeat.
# lock : position lock, can't move while playing the pose.
# walk : walking pose, if not set the pose will stop if walk.
# speed: x : pose animation speed, higher values makes the animation slow.
# frame: x : number of frams, can't exceed the max frames of the charset.
#
# <actor idle stance i: "x"> <event idle stance i: "x">
# <actor walk stance i: "x"> <event walk stance i: "x">
# <actor dash stance i: "x"> <event dash stance i: "x">
# <actor jump stance i: "x"> <event jump stance i: "x">
# Change the stance for one of the default pose for the actor or event.
# i : actor index or event ID
# x : pose sufix name ("sufix")
#
# <actor clear stances: i> <event clear stances: i>
# Clear all changed stances for the actor or event
# i : actor index or event ID
#
# <actor clear pose: i> <event clear pose: i>
# Clear halts the current pose exhibition and clear all pose waiting to be
# played.
# i : actor index or event ID
#
#------------------------------------------------------------------------------
# Additional instructions:
#
# To properly display the poses you will need a character with the poses.
# You will need to make a new charset, with the same filename + the sufix.
#
# So if you have a chaset named "Actor1", you will need a charset named
# "Actor1" (or whatever you set as the Walk sufix) if you want
# a custom walking pose.
#
# If a pose graphic don't exist, it will use the default graphic.
#
# If you make a pose loops, it will be displayed continuously until something
# force it to stop. It may be a movement (only if the settings doesn't include
# the 'walk' option), a pose change, or clear pose.
#
# Due to the animated frame, the charset may be off the tile center, you
# can solve that by adding or to the filename, where * is a number
# positive or negative,that way the position will be adjusted. it must be
# added before any other sufix
#
# if used with 'Victor Engine - Diagonal Movement' the diagonal movement
# sufix must come before the pose sufix.
#
# The general order for the sufixes is: filename
#
#==============================================================================

#==============================================================================
# ** Victor Engine
#------------------------------------------------------------------------------
# Setting module for the Victor Engine
#==============================================================================

module Victor_Engine
#--------------------------------------------------------------------------
# * Default waling pose sufix
#--------------------------------------------------------------------------
VE_DEFAULT_WALK_SUFIX = ""
#--------------------------------------------------------------------------
# * Default dashing pose sufix
#--------------------------------------------------------------------------
VE_DEFAULT_DASH_SUFIX = ""
#--------------------------------------------------------------------------
# * Default jumping pose sufix
#--------------------------------------------------------------------------
VE_DEFAULT_JUMP_SUFIX = ""
#--------------------------------------------------------------------------
# * required
# This method checks for the existance of the basic module and other
# VE scripts required for this script to work, don't edit this
#--------------------------------------------------------------------------
def self.required(name, req, version, type = nil)
if !$imported
msg = "The script '%s' requires the script\n"
msg += "'VE - Basic Module' v%s or higher above it to work properly\n"
msg += "Go to http://victorscripts.wordpress.com/ to download this script."
msgbox(sprintf(msg, self.script_name(name), version))
exit
else
self.required_script(name, req, version, type)
end
end
#--------------------------------------------------------------------------
# * script_name
# Get the script name base on the imported value, don't edit this
#--------------------------------------------------------------------------
def self.script_name(name, ext = "VE")
name = name.to_s.gsub("_", " ").upcase.split
name.collect! {|char| char == ext ? "#{char} -" : char.capitalize }
name.join(" ")
end
end

$imported ||= {}
$imported = 1.05
Victor_Engine.required(:ve_character_control, :ve_basic_module, 1.27, :above)

#==============================================================================
# ** Game_CharacterBase
#------------------------------------------------------------------------------
# This class deals with characters. Common to all characters, stores basic
# data, such as coordinates and graphics. It's used as a superclass of the
# Game_Character class.
#==============================================================================

class Game_CharacterBase
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :pose_sufix
attr_accessor :pose_list
attr_accessor :idle_stance
attr_accessor :walk_stance
attr_accessor :dash_stance
attr_accessor :jump_stance
#--------------------------------------------------------------------------
# * Overwrite method: update_animation
#--------------------------------------------------------------------------
def update_animation
update_anime_count
if (@pose_speed != 0 && @anime_count > @pose_speed) ||
(@pose_speed == 0 && @anime_count > 18 - real_move_speed * 2)
update_anime_pattern
@anime_count = 0
change_pose(idle_stance) if @pattern == 0 && @playing_pose && !@pose_loop
end
end
#--------------------------------------------------------------------------
# * Alias method: init_public_members
#--------------------------------------------------------------------------
alias :init_public_members_ve_character_control :init_public_members
def init_public_members
init_public_members_ve_character_control
@pose_list =
@pose_sufix = ""
clear_stances
end
#--------------------------------------------------------------------------
# * Alias method: init_private_members
#--------------------------------------------------------------------------
alias :init_private_members_ve_character_control :init_private_members
def init_private_members
init_private_members_ve_character_control
change_pose(idle_stance)
end
#--------------------------------------------------------------------------
# * Alias method: update_anime_count
#--------------------------------------------------------------------------
alias :update_anime_count_ve_character_control :update_anime_count
def update_anime_count
if @playing_pose
@anime_count += 1.5
else
update_anime_count_ve_character_control
end
end
#--------------------------------------------------------------------------
# * Alias method: update_anime_pattern
#--------------------------------------------------------------------------
alias :update_anime_pattern_ve_character_control :update_anime_pattern
def update_anime_pattern
if @playing_pose
@pattern = (@pattern + 1) % .min
else
update_anime_pattern_ve_character_control
end
end
#--------------------------------------------------------------------------
# * Alias method: move_straight
#--------------------------------------------------------------------------
alias :move_straight_ve_character_control :move_straight
def move_straight(d, turn_ok = true)
return if @pose_lock
move_straight_ve_character_control(d, turn_ok)
set_fixed_direction if @pose_direction
end
#--------------------------------------------------------------------------
# * Alias method: move_diagonal
#--------------------------------------------------------------------------
alias :move_diagonal_ve_character_control :move_diagonal
def move_diagonal(horz, vert)
return if @pose_lock
move_diagonal_ve_character_control(horz, vert)
set_fixed_direction if @pose_direction
end
#--------------------------------------------------------------------------
# * Alias method: update_move
#--------------------------------------------------------------------------
alias :update_move_ve_character_control :update_move
def update_move
moving_pose
update_move_ve_character_control
end
#--------------------------------------------------------------------------
# * Alias method: update_jump
#--------------------------------------------------------------------------
alias :update_jump_ve_character_control :update_jump
def update_jump
jumping_pose
update_jump_ve_character_control
end
#--------------------------------------------------------------------------
# * Alias method: update_stop
#--------------------------------------------------------------------------
alias :update_stop_ve_character_control :update_stop
def update_stop
update_stop_ve_character_control
resting_pose
end
#--------------------------------------------------------------------------
# * New method: resting_pose
#--------------------------------------------------------------------------
def resting_pose
return if @stop_count <= 1 || @playing_pose
change_pose(idle_stance) if pose_sufix != idle_stance
end
#--------------------------------------------------------------------------
# * New method: jumping_pose
#--------------------------------------------------------------------------
def jumping_pose
return if @pose_lock || @pose_walk
change_pose(jump_stance) if pose_sufix != jump_stance
end
#--------------------------------------------------------------------------
# * New method: moving_pose
#--------------------------------------------------------------------------
def moving_pose
return if @pose_lock || @pose_walk
@pose_list.clear
change_pose(walk_stance) if pose_sufix != walk_stance && !dash?
change_pose(dash_stance) if pose_sufix != dash_stance && dash?
end
#--------------------------------------------------------------------------
# * New method: change_pose
#--------------------------------------------------------------------------
def change_pose(sufix)
@playing_pose = false
reset_fixed_pose if @pose_direction
value = {sufix: sufix, anim: 0, speed: 0, frame: frames}
update_pose(value)
end
#--------------------------------------------------------------------------
# * New method: reset_pose_index
#--------------------------------------------------------------------------
def reset_pose_index
@character_index = @real_index
@pose_index = nil
end
#--------------------------------------------------------------------------
# * New method: reset_fixed_pose
#--------------------------------------------------------------------------
def reset_fixed_pose
@direction = @real_direction
@diagonal = @real_diagonal if $imported
@current_direction = @direction - 2 if $imported
@final_direction = @direction - 2 if $imported
update_direction if $imported
@pose_direction = nil
end
#--------------------------------------------------------------------------
# * New method: update_pose
#--------------------------------------------------------------------------
def update_pose(pose = default_pose.dup)
pose = get_next_pose(pose)
@pose_sufix = pose
@pose_speed = pose
@pose_frame = pose
@pose_walk = pose
@pose_loop = pose
@pose_lock = pose && @playing_pose
@pose_direction = pose * 2 if pose
@real_direction = @direction
@real_diagonal = @diagonal if $imported
@anime_count = 0 unless move_pose?
@pattern = @playing_pose ? 0 : @original_pattern
set_fixed_direction if @pose_direction
end
#--------------------------------------------------------------------------
# * New method: set_fixed_direction
#--------------------------------------------------------------------------
def set_fixed_direction
@direction = @pose_direction
@diagonal = 0 if $imported
@current_direction = @direction - 2 if $imported
@final_direction = @direction - 2 if $imported
end
#--------------------------------------------------------------------------
# * New method: get_next_pose
#--------------------------------------------------------------------------
def get_next_pose(pose)
if pose == default_pose && !@pose_list.empty?
pose = @pose_list.shift
@playing_pose = true
end
pose
end
#--------------------------------------------------------------------------
# * New method: move_pose?
#--------------------------------------------------------------------------
def move_pose?
.include?(pose_sufix)
end
#--------------------------------------------------------------------------
# * New method: default_pose
#--------------------------------------------------------------------------
def default_pose
{sufix: @idle_stance, anim: 0, speed: 0, frame: frames}
end
#--------------------------------------------------------------------------
# * New method: start_pose
#--------------------------------------------------------------------------
def start_pose(pose)
clear_poses
@pose_list.push(pose)
update_pose
end
#--------------------------------------------------------------------------
# * New method: add_pose
#--------------------------------------------------------------------------
def add_pose(pose)
@pose_list.push(pose)
update_pose unless @playing_pose
end
#--------------------------------------------------------------------------
# * New method: clear_poses
#--------------------------------------------------------------------------
def clear_poses
@pose_list.clear
change_pose(idle_stance)
end
#--------------------------------------------------------------------------
# * New method: clear_stances
#--------------------------------------------------------------------------
def clear_stances
@idle_stance = ""
@walk_stance = VE_DEFAULT_WALK_SUFIX
@dash_stance = VE_DEFAULT_DASH_SUFIX
@jump_stance = VE_DEFAULT_JUMP_SUFIX
end
end

#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
# An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================

class Game_Interpreter
#--------------------------------------------------------------------------
# * Alias method: comment_call
#--------------------------------------------------------------------------
alias :comment_call_ve_character_control :comment_call
def comment_call
call_clear_pose("EVENT")
call_clear_pose("ACTOR")
call_change_stance("EVENT")
call_change_stance("ACTOR")
call_change_pose("EVENT", "ADD POSE")
call_change_pose("ACTOR", "ADD POSE")
call_change_pose("EVENT", "CHANGE POSE")
call_change_pose("ACTOR", "CHANGE POSE")
comment_call_ve_character_control
end
#--------------------------------------------------------------------------
# * New method: call_clear_pose
#--------------------------------------------------------------------------
def call_clear_pose(type)
note.scan(/<#{type} CLEAR POSE: (\d+)>/i) do
subject = $game_map.events if type == "EVENT"
subject = $game_map.actors if type == "ACTOR"
next unless subject
subject.clear_poses
end
end
#--------------------------------------------------------------------------
# * New method: call_clear_stances
#--------------------------------------------------------------------------
def call_clear_stances(type)
note.scan(/<#{type} CLEAR STANCES: (\d+)>/i) do
subject = $game_map.events if type == "EVENT"
subject = $game_map.actors if type == "ACTOR"
next unless subject
subject.clear_stances
end
end
#--------------------------------------------------------------------------
# * New method: call_change_stance
#--------------------------------------------------------------------------
def call_change_stance(type)
regexp = /<#{type} (\w+) STANCE (\d+): #{get_filename}>/i
note.scan(regexp) do |move, id, value|
subject = $game_map.events if type == "EVENT"
subject = $game_map.actors if type == "ACTOR"
next unless subject
subject.idle_stance = value if move.upcase == "IDLE"
subject.walk_stance = value if move.upcase == "WALK"
subject.dash_stance = value if move.upcase == "DASH"
subject.jump_stance = value if move.upcase == "JUMP"
end
end
#--------------------------------------------------------------------------
# * New method: call_change_pose
#--------------------------------------------------------------------------
def call_change_pose(type, add)
note.scan(get_all_values("#{type} #{add}")) do
value = $1.dup
if value =~ /ID: (\d+)/i
subject = $game_map.events if type == "EVENT"
subject = $game_map.actors if type == "ACTOR"
next unless subject
stance = subject.idle_stance
pose = {}
pose = value =~ /NAME: #{get_filename}/i ? $1 : stance
pose = value =~ /LOOP/i
pose = value =~ /LOCK/i
pose = value =~ /WALK/i
pose = value =~ /SPEED: (\d+)/i ? $1.to_i : 0
pose = value =~ /LINE: ()/i ? $1.to_i : nil
pose = value =~ /FRAMES: (\d+)/i ? $1.to_i : subject.frames
subject.start_pose(pose) if add.upcase == "CHANGE POSE"
subject.add_pose(pose) if add.upcase == "ADD POSE"
end
end
end
end

#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
# This sprite is used to display characters. It observes a instance of the
# Game_Character class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Character < Sprite_Base
#--------------------------------------------------------------------------
# * Alias method: graphic_changed?
#--------------------------------------------------------------------------
alias :graphic_changed_ve_character_control? :graphic_changed?
def graphic_changed?
graphic_changed_ve_character_control? ||
@pose_sufix != @character.pose_sufix
end
#--------------------------------------------------------------------------
# * Alias method: update_character_info
#--------------------------------------------------------------------------
alias :update_character_info_ve_character_control :update_character_info
def update_character_info
update_character_info_ve_character_control
@pose_sufix = @character.pose_sufix
end
#--------------------------------------------------------------------------
# * Alias method: set_bitmap_name
#--------------------------------------------------------------------------
alias :set_bitmap_name_ve_character_control :set_bitmap_name
def set_bitmap_name
sufix = ($imported ? diagonal_sufix : "") + @pose_sufix
if $imported
return set_bitmap_name_ve_character_control
elsif character_exist?(@character_name + sufix)
return @character_name + sufix
elsif character_exist?(@character_name + @pose_sufix)
return @character_name + @pose_sufix
else
return set_bitmap_name_ve_character_control
end
end
#--------------------------------------------------------------------------
# * Alias method: set_bitmap_position
#--------------------------------------------------------------------------
alias :set_bitmap_position_ve_character_control :set_bitmap_position
def set_bitmap_position
set_bitmap_position_ve_character_control
self.ox -= (@character_name[/\[x(?\d+)\]/i] ? $1.to_i : 0)
self.oy -= (@character_name[/\[y(?\d+)\]/i] ? $1.to_i : 0)
end
end

#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
# This is a superclass of all windows in the game.
#==============================================================================

class Window_Base < Window
#--------------------------------------------------------------------------
# * Alias method: draw_character
#--------------------------------------------------------------------------
alias :draw_character_ve_character_control :draw_character
def draw_character(character_name, character_index, x, y, parts = nil)
return unless character_name
x += (character_name[/\[x(?\d+)\]/i] ? $1.to_i : 0)
y += (character_name[/\[y(?\d+)\]/i] ? $1.to_i : 0)
args =
args.push(parts) if $imported
draw_character_ve_character_control(*args)
end
end


Thank you in advance for the help!

[RMVX ACE] Small problem with Victor Sant's Character Control script


The script works fine except for one small detail that I don't know how to fix. Before I get to explaining my problem, note that I'm also using Victor's Multi Frame script and Cystal Engine's Party Leader script (but the problem is still there even if I remove these extra scripts).

Whenever I'm moving my actor, the animation for walk and run works fine. But whenever I'm NOT moving my actor, he just stands there lifeless despite the animated sprites I made for his main character set. Here the names of each images (each having 6 frames per direction):

$Mamoru.png
$Mamoru.png
$Mamoru.png
$Mamoru.png (I made this cause I thought it might work. Unfortunately, it didn't)

I tried using the comment calls, but, still no dice.

Here is Victor's Character Control script:
Victor Engine - Action States.txt6/21/14Victor Sant
Victor Engine - Action Strenghten.txt6/21/14Victor Sant
Victor Engine - Active Time Battle.txt6/21/14Victor Sant
Victor Engine - Actor Events.txt6/21/14Victor Sant
Victor Engine - Actors Battlers.txt6/21/14Victor Sant
Victor Engine - Animated Battle.txt6/21/14Victor Sant
Victor Engine - Animations Settings.txt6/21/14Victor Sant
Victor Engine - Anti Lag.txt6/21/14Victor Sant
Victor Engine - Arrow Cursor.txt6/21/14Victor Sant
Victor Engine - Automatic Battlers.txt6/21/14Victor Sant
Victor Engine - Basic Module.txt6/21/14Victor Sant
Victor Engine - Cast Animations.txt6/21/14Victor Sant
Victor Engine - Character Control.txt6/21/14Victor Sant
Victor Engine - Character Effects.txt6/21/14Victor Sant
Victor Engine - Command Replace.txt6/21/14Victor Sant
Victor Engine - Control Codes.txt6/21/14Victor Sant
Victor Engine - Control Text.txt6/21/14Victor Sant
Victor Engine - Cooperation Skills.txt6/21/14Victor Sant
Victor Engine - Counter Options.txt6/21/14Victor Sant
Victor Engine - Critical Hit Effects.txt6/21/14Victor Sant
Victor Engine - Custom Basic Actions.txt6/21/14Victor Sant
Victor Engine - Custom Collapse.txt6/21/14Victor Sant
Victor Engine - Custom Description.txt6/21/14Victor Sant
Victor Engine - Custom Hit Formula.txt6/21/14Victor Sant
Victor Engine - Custom Slip Effect.txt6/21/14Victor Sant
Victor Engine - Custom Vehicle.txt6/21/14Victor Sant
Victor Engine - Damage Limit.txt6/21/14Victor Sant
Victor Engine - Damage Popup.txt6/21/14Victor Sant
Victor Engine - Diagonal Movement.txt6/21/14Victor Sant
Victor Engine - Direct Commands.txt6/21/14Victor Sant
Victor Engine - Element Counter.txt6/21/14Victor Sant
Victor Engine - Element Dodge.txt6/21/14Victor Sant
Victor Engine - Element Reflect.txt6/21/14Victor Sant
Victor Engine - Element Set.txt6/21/14Victor Sant
Victor Engine - Element States.txt6/21/14Victor Sant
Victor Engine - Element Strenghten.txt6/21/14Victor Sant
Victor Engine - Encounter Rates Mod.txt6/21/14Victor Sant
Victor Engine - Enemy Action Conditions.txt6/21/14Victor Sant
Victor Engine - Events Conditions.txt6/21/14Victor Sant
Victor Engine - Fixed Parallax.txt6/21/14Victor Sant
Victor Engine - Fog and Overlay.txt6/21/14Victor Sant
Victor Engine - Followers Control.txt6/21/14Victor Sant
Victor Engine - Followers Options.txt6/21/14Victor Sant
Victor Engine - Free Jump.txt6/21/14Victor Sant
Victor Engine - Incapacitate States.txt6/21/14Victor Sant
Victor Engine - Item Command.txt6/21/14Victor Sant
Victor Engine - Leap Attack.txt6/21/14Victor Sant
Victor Engine - Light Effects.txt6/21/14Victor Sant
Victor Engine - Loop Animation.txt6/21/14Victor Sant
Victor Engine - Map Turn Battle.txt6/21/14Victor Sant
Victor Engine - Materia System.txt6/21/14Victor Sant
Victor Engine - Moving Platform.txt6/21/14Victor Sant
Victor Engine - MP Levels.txt6/21/14Victor Sant
Victor Engine - Multi Frames.txt6/21/14Victor Sant
Victor Engine - Multiple Troops.txt6/21/14Victor Sant
Victor Engine - Passive States.txt6/21/14Victor Sant
Victor Engine - Patch YEA.txt6/21/14Victor Sant
Victor Engine - Patch YSA.txt6/21/14Victor Sant
Victor Engine - Pixel Movement.txt6/21/14Victor Sant
Victor Engine - Progressive Timer.txt6/21/14Victor Sant
Victor Engine - Retaliation Damage.txt6/21/14Victor Sant
Victor Engine - Rotational Turning.txt6/21/14Victor Sant
Victor Engine - SFonts.txt6/21/14Victor Sant
Victor Engine - Skip Battle Log.txt6/21/14Victor Sant
Victor Engine - Sprite in Windows.txt6/21/14Victor Sant
Victor Engine - State Aura.txt6/21/14Victor Sant
Victor Engine - State Auto Apply.txt6/21/14Victor Sant
Victor Engine - State Cancel.txt6/21/14Victor Sant
Victor Engine - State Change Anim.txt6/21/14Victor Sant
Victor Engine - State Graphics.txt6/21/14Victor Sant
Victor Engine - State Toggle.txt6/21/14Victor Sant
Victor Engine - Step Sound.txt6/21/14Victor Sant
Victor Engine - Target Arrow.txt6/21/14Victor Sant
Victor Engine - Tech Points.txt6/21/14Victor Sant
Victor Engine - Terrain States.txt6/21/14Victor Sant
Victor Engine - Toggle Target.txt6/21/14Victor Sant
Victor Engine - Trait Control.txt6/21/14Victor Sant
Victor Engine - Visual Equip.txtMay 24Unknown user

#==============================================================================
# ** Victor Engine - Character Control
#------------------------------------------------------------------------------
# Author : Victor Sant
#
# Version History:
# v 1.00 - 2012.01.04 > First release
# v 1.01 - 2012.01.07 > Added Compatibility with Visual Equipment
# v 1.02 - 2012.01.14 > Fixed the positive sign on some Regular Expressions
# v 1.03 - 2012.01.15 > Fixed the Regular Expressions problem with "" and 灯
# v 1.04 - 2012.07.25 > Fixed Compatibility with Visual Equipment and
# > Diagonal Movement
# v 1.05 - 2012.08.02 > Compatibility with Basic Module 1.27
#------------------------------------------------------------------------------
# This script allows to control character chaset animations. You can set
# different graphis for walking, dashing and jumping, also you can display
# pose animations with simple comment call. This allows to animate characters
# on the map without the need of long Move Route event commands.
#------------------------------------------------------------------------------
# Compatibility
# Requires the script 'Victor Engine - Basic Module' v 1.27 or higher
# If used with 'Victor Engine - Multi Frames' place this bellow it.
# If used with 'Victor Engine - Visual Equip' place this bellow it.
# If used with 'Victor Engine - Diagonal Movement' place this bellow it.
#
# * Overwrite methods
# class Game_CharacterBase
# def update_animation
#
# * Alias methods
# class Game_CharacterBase
# def update_animation
# def init_public_members
# def init_private_members
# def update_anime_count
# def update_anime_pattern
# def move_straight(d, turn_ok = true)
# def move_diagonal(horz, vert)
# def update_move
# def update_jump
# def update_stop
#
# class Game_Interpreter
# def comment_call
#
# class Sprite_Character < Sprite_Base
# def graphic_changed?
# def update_character_info
# def set_bitmap_name
# def set_bitmap_position
#
#------------------------------------------------------------------------------
# Comment calls note tags:
# Tags to be used in events comment box, works like a script call.
#
# <actor change pose> <event change pose>
# settings settings
# </actor change pose> </event change pose>
# Display a custom pose, the pose overide any other pose being currently
# played, add the following values to the settings. The ID must be added,
# other values are optional.
# id: x : actor index or event ID
# name: "x" : pose sufix name. ("sufix")
# loop : pose animation loop, if added the pose will repeat.
# lock : position lock, can't move while playing the pose.
# walk : walking pose, if not set the pose will stop if walk.
# speed: x : pose animation speed, higher values makes the animation slow.
# frame: x : number of frams, can't exceed the max frames of the charset.
#
# <actor add pose> <event add pose>
# settings settings
# </actor add pose> </event add pose>
# Display a custom pose, the pose won't be displayed immediately, if there is
# another pose being displayed, it will wait it finish before, you can
# add multiple poses at once to make a long animation, add the following
# values to the settings. The ID must be added, other values are optional.
# id: x : actor index or event ID
# name: "x" : pose sufix name. ("sufix")
# loop : pose animation loop, if added the pose will repeat.
# lock : position lock, can't move while playing the pose.
# walk : walking pose, if not set the pose will stop if walk.
# speed: x : pose animation speed, higher values makes the animation slow.
# frame: x : number of frams, can't exceed the max frames of the charset.
#
# <actor idle stance i: "x"> <event idle stance i: "x">
# <actor walk stance i: "x"> <event walk stance i: "x">
# <actor dash stance i: "x"> <event dash stance i: "x">
# <actor jump stance i: "x"> <event jump stance i: "x">
# Change the stance for one of the default pose for the actor or event.
# i : actor index or event ID
# x : pose sufix name ("sufix")
#
# <actor clear stances: i> <event clear stances: i>
# Clear all changed stances for the actor or event
# i : actor index or event ID
#
# <actor clear pose: i> <event clear pose: i>
# Clear halts the current pose exhibition and clear all pose waiting to be
# played.
# i : actor index or event ID
#
#------------------------------------------------------------------------------
# Additional instructions:
#
# To properly display the poses you will need a character with the poses.
# You will need to make a new charset, with the same filename + the sufix.
#
# So if you have a chaset named "Actor1", you will need a charset named
# "Actor1" (or whatever you set as the Walk sufix) if you want
# a custom walking pose.
#
# If a pose graphic don't exist, it will use the default graphic.
#
# If you make a pose loops, it will be displayed continuously until something
# force it to stop. It may be a movement (only if the settings doesn't include
# the 'walk' option), a pose change, or clear pose.
#
# Due to the animated frame, the charset may be off the tile center, you
# can solve that by adding or to the filename, where * is a number
# positive or negative,that way the position will be adjusted. it must be
# added before any other sufix
#
# if used with 'Victor Engine - Diagonal Movement' the diagonal movement
# sufix must come before the pose sufix.
#
# The general order for the sufixes is: filename
#
#==============================================================================

#==============================================================================
# ** Victor Engine
#------------------------------------------------------------------------------
# Setting module for the Victor Engine
#==============================================================================

module Victor_Engine
#--------------------------------------------------------------------------
# * Default waling pose sufix
#--------------------------------------------------------------------------
VE_DEFAULT_WALK_SUFIX = ""
#--------------------------------------------------------------------------
# * Default dashing pose sufix
#--------------------------------------------------------------------------
VE_DEFAULT_DASH_SUFIX = ""
#--------------------------------------------------------------------------
# * Default jumping pose sufix
#--------------------------------------------------------------------------
VE_DEFAULT_JUMP_SUFIX = ""
#--------------------------------------------------------------------------
# * required
# This method checks for the existance of the basic module and other
# VE scripts required for this script to work, don't edit this
#--------------------------------------------------------------------------
def self.required(name, req, version, type = nil)
if !$imported
msg = "The script '%s' requires the script\n"
msg += "'VE - Basic Module' v%s or higher above it to work properly\n"
msg += "Go to http://victorscripts.wordpress.com/ to download this script."
msgbox(sprintf(msg, self.script_name(name), version))
exit
else
self.required_script(name, req, version, type)
end
end
#--------------------------------------------------------------------------
# * script_name
# Get the script name base on the imported value, don't edit this
#--------------------------------------------------------------------------
def self.script_name(name, ext = "VE")
name = name.to_s.gsub("_", " ").upcase.split
name.collect! {|char| char == ext ? "#{char} -" : char.capitalize }
name.join(" ")
end
end

$imported ||= {}
$imported = 1.05
Victor_Engine.required(:ve_character_control, :ve_basic_module, 1.27, :above)

#==============================================================================
# ** Game_CharacterBase
#------------------------------------------------------------------------------
# This class deals with characters. Common to all characters, stores basic
# data, such as coordinates and graphics. It's used as a superclass of the
# Game_Character class.
#==============================================================================

class Game_CharacterBase
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :pose_sufix
attr_accessor :pose_list
attr_accessor :idle_stance
attr_accessor :walk_stance
attr_accessor :dash_stance
attr_accessor :jump_stance
#--------------------------------------------------------------------------
# * Overwrite method: update_animation
#--------------------------------------------------------------------------
def update_animation
update_anime_count
if (@pose_speed != 0 && @anime_count > @pose_speed) ||
(@pose_speed == 0 && @anime_count > 18 - real_move_speed * 2)
update_anime_pattern
@anime_count = 0
change_pose(idle_stance) if @pattern == 0 && @playing_pose && !@pose_loop
end
end
#--------------------------------------------------------------------------
# * Alias method: init_public_members
#--------------------------------------------------------------------------
alias :init_public_members_ve_character_control :init_public_members
def init_public_members
init_public_members_ve_character_control
@pose_list =
@pose_sufix = ""
clear_stances
end
#--------------------------------------------------------------------------
# * Alias method: init_private_members
#--------------------------------------------------------------------------
alias :init_private_members_ve_character_control :init_private_members
def init_private_members
init_private_members_ve_character_control
change_pose(idle_stance)
end
#--------------------------------------------------------------------------
# * Alias method: update_anime_count
#--------------------------------------------------------------------------
alias :update_anime_count_ve_character_control :update_anime_count
def update_anime_count
if @playing_pose
@anime_count += 1.5
else
update_anime_count_ve_character_control
end
end
#--------------------------------------------------------------------------
# * Alias method: update_anime_pattern
#--------------------------------------------------------------------------
alias :update_anime_pattern_ve_character_control :update_anime_pattern
def update_anime_pattern
if @playing_pose
@pattern = (@pattern + 1) % .min
else
update_anime_pattern_ve_character_control
end
end
#--------------------------------------------------------------------------
# * Alias method: move_straight
#--------------------------------------------------------------------------
alias :move_straight_ve_character_control :move_straight
def move_straight(d, turn_ok = true)
return if @pose_lock
move_straight_ve_character_control(d, turn_ok)
set_fixed_direction if @pose_direction
end
#--------------------------------------------------------------------------
# * Alias method: move_diagonal
#--------------------------------------------------------------------------
alias :move_diagonal_ve_character_control :move_diagonal
def move_diagonal(horz, vert)
return if @pose_lock
move_diagonal_ve_character_control(horz, vert)
set_fixed_direction if @pose_direction
end
#--------------------------------------------------------------------------
# * Alias method: update_move
#--------------------------------------------------------------------------
alias :update_move_ve_character_control :update_move
def update_move
moving_pose
update_move_ve_character_control
end
#--------------------------------------------------------------------------
# * Alias method: update_jump
#--------------------------------------------------------------------------
alias :update_jump_ve_character_control :update_jump
def update_jump
jumping_pose
update_jump_ve_character_control
end
#--------------------------------------------------------------------------
# * Alias method: update_stop
#--------------------------------------------------------------------------
alias :update_stop_ve_character_control :update_stop
def update_stop
update_stop_ve_character_control
resting_pose
end
#--------------------------------------------------------------------------
# * New method: resting_pose
#--------------------------------------------------------------------------
def resting_pose
return if @stop_count <= 1 || @playing_pose
change_pose(idle_stance) if pose_sufix != idle_stance
end
#--------------------------------------------------------------------------
# * New method: jumping_pose
#--------------------------------------------------------------------------
def jumping_pose
return if @pose_lock || @pose_walk
change_pose(jump_stance) if pose_sufix != jump_stance
end
#--------------------------------------------------------------------------
# * New method: moving_pose
#--------------------------------------------------------------------------
def moving_pose
return if @pose_lock || @pose_walk
@pose_list.clear
change_pose(walk_stance) if pose_sufix != walk_stance && !dash?
change_pose(dash_stance) if pose_sufix != dash_stance && dash?
end
#--------------------------------------------------------------------------
# * New method: change_pose
#--------------------------------------------------------------------------
def change_pose(sufix)
@playing_pose = false
reset_fixed_pose if @pose_direction
value = {sufix: sufix, anim: 0, speed: 0, frame: frames}
update_pose(value)
end
#--------------------------------------------------------------------------
# * New method: reset_pose_index
#--------------------------------------------------------------------------
def reset_pose_index
@character_index = @real_index
@pose_index = nil
end
#--------------------------------------------------------------------------
# * New method: reset_fixed_pose
#--------------------------------------------------------------------------
def reset_fixed_pose
@direction = @real_direction
@diagonal = @real_diagonal if $imported
@current_direction = @direction - 2 if $imported
@final_direction = @direction - 2 if $imported
update_direction if $imported
@pose_direction = nil
end
#--------------------------------------------------------------------------
# * New method: update_pose
#--------------------------------------------------------------------------
def update_pose(pose = default_pose.dup)
pose = get_next_pose(pose)
@pose_sufix = pose
@pose_speed = pose
@pose_frame = pose
@pose_walk = pose
@pose_loop = pose
@pose_lock = pose && @playing_pose
@pose_direction = pose * 2 if pose
@real_direction = @direction
@real_diagonal = @diagonal if $imported
@anime_count = 0 unless move_pose?
@pattern = @playing_pose ? 0 : @original_pattern
set_fixed_direction if @pose_direction
end
#--------------------------------------------------------------------------
# * New method: set_fixed_direction
#--------------------------------------------------------------------------
def set_fixed_direction
@direction = @pose_direction
@diagonal = 0 if $imported
@current_direction = @direction - 2 if $imported
@final_direction = @direction - 2 if $imported
end
#--------------------------------------------------------------------------
# * New method: get_next_pose
#--------------------------------------------------------------------------
def get_next_pose(pose)
if pose == default_pose && !@pose_list.empty?
pose = @pose_list.shift
@playing_pose = true
end
pose
end
#--------------------------------------------------------------------------
# * New method: move_pose?
#--------------------------------------------------------------------------
def move_pose?
.include?(pose_sufix)
end
#--------------------------------------------------------------------------
# * New method: default_pose
#--------------------------------------------------------------------------
def default_pose
{sufix: @idle_stance, anim: 0, speed: 0, frame: frames}
end
#--------------------------------------------------------------------------
# * New method: start_pose
#--------------------------------------------------------------------------
def start_pose(pose)
clear_poses
@pose_list.push(pose)
update_pose
end
#--------------------------------------------------------------------------
# * New method: add_pose
#--------------------------------------------------------------------------
def add_pose(pose)
@pose_list.push(pose)
update_pose unless @playing_pose
end
#--------------------------------------------------------------------------
# * New method: clear_poses
#--------------------------------------------------------------------------
def clear_poses
@pose_list.clear
change_pose(idle_stance)
end
#--------------------------------------------------------------------------
# * New method: clear_stances
#--------------------------------------------------------------------------
def clear_stances
@idle_stance = ""
@walk_stance = VE_DEFAULT_WALK_SUFIX
@dash_stance = VE_DEFAULT_DASH_SUFIX
@jump_stance = VE_DEFAULT_JUMP_SUFIX
end
end

#==============================================================================
# ** Game_Interpreter
#------------------------------------------------------------------------------
# An interpreter for executing event commands. This class is used within the
# Game_Map, Game_Troop, and Game_Event classes.
#==============================================================================

class Game_Interpreter
#--------------------------------------------------------------------------
# * Alias method: comment_call
#--------------------------------------------------------------------------
alias :comment_call_ve_character_control :comment_call
def comment_call
call_clear_pose("EVENT")
call_clear_pose("ACTOR")
call_change_stance("EVENT")
call_change_stance("ACTOR")
call_change_pose("EVENT", "ADD POSE")
call_change_pose("ACTOR", "ADD POSE")
call_change_pose("EVENT", "CHANGE POSE")
call_change_pose("ACTOR", "CHANGE POSE")
comment_call_ve_character_control
end
#--------------------------------------------------------------------------
# * New method: call_clear_pose
#--------------------------------------------------------------------------
def call_clear_pose(type)
note.scan(/<#{type} CLEAR POSE: (\d+)>/i) do
subject = $game_map.events if type == "EVENT"
subject = $game_map.actors if type == "ACTOR"
next unless subject
subject.clear_poses
end
end
#--------------------------------------------------------------------------
# * New method: call_clear_stances
#--------------------------------------------------------------------------
def call_clear_stances(type)
note.scan(/<#{type} CLEAR STANCES: (\d+)>/i) do
subject = $game_map.events if type == "EVENT"
subject = $game_map.actors if type == "ACTOR"
next unless subject
subject.clear_stances
end
end
#--------------------------------------------------------------------------
# * New method: call_change_stance
#--------------------------------------------------------------------------
def call_change_stance(type)
regexp = /<#{type} (\w+) STANCE (\d+): #{get_filename}>/i
note.scan(regexp) do |move, id, value|
subject = $game_map.events if type == "EVENT"
subject = $game_map.actors if type == "ACTOR"
next unless subject
subject.idle_stance = value if move.upcase == "IDLE"
subject.walk_stance = value if move.upcase == "WALK"
subject.dash_stance = value if move.upcase == "DASH"
subject.jump_stance = value if move.upcase == "JUMP"
end
end
#--------------------------------------------------------------------------
# * New method: call_change_pose
#--------------------------------------------------------------------------
def call_change_pose(type, add)
note.scan(get_all_values("#{type} #{add}")) do
value = $1.dup
if value =~ /ID: (\d+)/i
subject = $game_map.events if type == "EVENT"
subject = $game_map.actors if type == "ACTOR"
next unless subject
stance = subject.idle_stance
pose = {}
pose = value =~ /NAME: #{get_filename}/i ? $1 : stance
pose = value =~ /LOOP/i
pose = value =~ /LOCK/i
pose = value =~ /WALK/i
pose = value =~ /SPEED: (\d+)/i ? $1.to_i : 0
pose = value =~ /LINE: ()/i ? $1.to_i : nil
pose = value =~ /FRAMES: (\d+)/i ? $1.to_i : subject.frames
subject.start_pose(pose) if add.upcase == "CHANGE POSE"
subject.add_pose(pose) if add.upcase == "ADD POSE"
end
end
end
end

#==============================================================================
# ** Sprite_Character
#------------------------------------------------------------------------------
# This sprite is used to display characters. It observes a instance of the
# Game_Character class and automatically changes sprite conditions.
#==============================================================================

class Sprite_Character < Sprite_Base
#--------------------------------------------------------------------------
# * Alias method: graphic_changed?
#--------------------------------------------------------------------------
alias :graphic_changed_ve_character_control? :graphic_changed?
def graphic_changed?
graphic_changed_ve_character_control? ||
@pose_sufix != @character.pose_sufix
end
#--------------------------------------------------------------------------
# * Alias method: update_character_info
#--------------------------------------------------------------------------
alias :update_character_info_ve_character_control :update_character_info
def update_character_info
update_character_info_ve_character_control
@pose_sufix = @character.pose_sufix
end
#--------------------------------------------------------------------------
# * Alias method: set_bitmap_name
#--------------------------------------------------------------------------
alias :set_bitmap_name_ve_character_control :set_bitmap_name
def set_bitmap_name
sufix = ($imported ? diagonal_sufix : "") + @pose_sufix
if $imported
return set_bitmap_name_ve_character_control
elsif character_exist?(@character_name + sufix)
return @character_name + sufix
elsif character_exist?(@character_name + @pose_sufix)
return @character_name + @pose_sufix
else
return set_bitmap_name_ve_character_control
end
end
#--------------------------------------------------------------------------
# * Alias method: set_bitmap_position
#--------------------------------------------------------------------------
alias :set_bitmap_position_ve_character_control :set_bitmap_position
def set_bitmap_position
set_bitmap_position_ve_character_control
self.ox -= (@character_name[/\[x(?\d+)\]/i] ? $1.to_i : 0)
self.oy -= (@character_name[/\[y(?\d+)\]/i] ? $1.to_i : 0)
end
end

#==============================================================================
# ** Window_Base
#------------------------------------------------------------------------------
# This is a superclass of all windows in the game.
#==============================================================================

class Window_Base < Window
#--------------------------------------------------------------------------
# * Alias method: draw_character
#--------------------------------------------------------------------------
alias :draw_character_ve_character_control :draw_character
def draw_character(character_name, character_index, x, y, parts = nil)
return unless character_name
x += (character_name[/\[x(?\d+)\]/i] ? $1.to_i : 0)
y += (character_name[/\[y(?\d+)\]/i] ? $1.to_i : 0)
args =
args.push(parts) if $imported
draw_character_ve_character_control(*args)
end
end


Thank you in advance for the help!

Question about the XAS Hero Edition (VX ACE) Overdrive System


Thanks... But I watch the trailer in that first link you gave and noticed that he didn't use the Overdrive System... Plus, he uses Unity and not RPG Maker VX Ace which I think uses different scripts (at least I think so)...

As for the second link... It has no information about the Overdrive System whatsoever...

I pretty much understand everything in the script except for the Overdrive System and that's what I'm going for...

Question about the XAS Hero Edition (VX ACE) Overdrive System

Question about the XAS Hero Edition (VX ACE) Overdrive System


First I would like to apologize if I'm posting in the wrong section or if I'm violating any rules in this forum. I'm a newbie in asking in forums. So, again, I apologize.

Now. In the XAS Hero Edition, we can give a character access to Overdrive. Overdrives are special skills that can only be used when your Overdrive gauge is up to a certain level. You can set which skill will be used on each level and can set how many total levels there can be. Now, what I want is change the Overdrive level to just one.

My problem is that the skills set cannot be edited in-game or maybe they can I just don't know how. Is there any way or option to change the Overdrive skill in-game?

Gift of the Goddess (DEMO)

@Noel_Kreiss

Hmm....
  • For the REALLY REALLY large number of abilities and for the Holy Lance being obtained early... Those are for Demo purposes. Though what you say makes a lot of sense.
  • For Virdant's victory pose... I'm working on that. It's hard making sprites specially frame by frame...
  • For the female playable character... As I stated, the story is based on LOVELESS in which case never pointed out a female save for the Goddess (who I plan will have a temporary playable moment) and that woman that the "Prisoner" met... I did, however, have the idea to add a "Guest Party" script. So with that, I can add more characters in the roster.
  • For the Scan thing... If I'm correct, the elemental vulnerabilities is shown at the upper left corner of the Scan Screen. Note that in the demo, only the Cockatrice and the Bomb have elemental weaknesses.
  • For the level reset thing... I've gotta check on that. Did not saw that...
  • For the other thing you mentions, again I'll see what I can do...

Thanks for the thorough observations and for playing... This really helps a lot... I'll update as soon as my personal businesses are taken care of!

Gift of the Goddess (DEMO)

@WCouillard

I apologize for that... Yes, I used some of your Icons for mine such as the power up and down icons and the keyboard icons. I will change that. But I would like to ask is, can I still use the red and blue frames?

Thank you for the heads up... I will fix that...
Pages: first 12 next last