No demo yet – will add one later.
#------------------------------------------------------------------------------#
# Galv's Vehicle Riders
#------------------------------------------------------------------------------#
# For: RPGMAKER VX ACE
# Version 1.1
#------------------------------------------------------------------------------#
# 2013-02-08 - Version 1.1 - fixed bug with single character filesheets
# 2013-02-07 - Version 1.0 - release
#------------------------------------------------------------------------------#
# Allows you to make the player mount certain vehicles.
#
# Instructions:
# Place under Materials and above Main
#------------------------------------------------------------------------------#
($imported ||= {})["Galv_Riders"] = true
module Galv_Riders
#------------------------------------------------------------------------------#
# SETUP OPTIONS
#------------------------------------------------------------------------------#
MOUNTS = [:boat,:ship] # Which vehicles you want to be mountable only these
# vehicles will use mounts, others will not
#------------------------------------------------------------------------------#
POS = {} # Don't touch this
#------------------------------------------------------------------------------#
# Below is to specify positioning of the rider graphic for each vehicle and
# to specify if it uses a different charactersheet or not. These options are:
# [x offset, y offset, charactersheet extension, horse]
POS[:boat] = [6,-12,"", true]
POS[:ship] = [0,-9,"_ship", false]
POS[:airship] = [0,0,"",false]
#------------------------------------------------------------------------------#
# EXPLANATION
#------------------------------------------------------------------------------#
# x offset - will offset the rider horizontally that many pixels
# y offset - will offset the rider vertically that many pixels
# charactersheet extension - To use a different charactersheet for the rider.
# If this is set to "_rider" and the group leader uses "Actor4" charset
# then it will look for "Actor4_rider" charset to use when mounted on
# that vehicle. Leave this option as "" to use the actor's charset.
# horse - when facing down, the actor's graphic will appear under the vehicle
# this was made with the horse from the "animal" charset in mind.
#------------------------------------------------------------------------------#
# END SETUP OPTIONS
#------------------------------------------------------------------------------#
end
class Game_Vehicle < Game_Character
attr_reader :type
end # Game_Vehicle < Game_Character
class Spriteset_Map
alias galv_riders_sm_create_characters create_characters
def create_characters
galv_riders_sm_create_characters
@riders_sprites = []
$game_map.vehicles.each do |v|
if Galv_Riders::MOUNTS.include?(v.type)
@riders_sprites.push(Sprite_riders.new(@viewport1, v))
end
end
end
alias galv_riders_sm_update update
def update
galv_riders_sm_update
@riders_sprites.each {|s| s.update}
end
alias galv_riders_sm_dispose_characters dispose_characters
def dispose_characters
galv_riders_sm_dispose_characters
@riders_sprites.each {|s| s.dispose}
end
end # Spriteset_Map
class Sprite_riders < Sprite_Character
def initialize(viewport, character = nil)
super(viewport, character)
@character = character
update
end
def update
update_bitmap
update_src_rect
update_position
update_other
end
def set_character_bitmap
self.bitmap = Cache.character($game_party.leader.character_name +
Galv_Riders::POS[@character.type][2]) rescue Cache.character($game_party.leader.character_name)
sign = $game_party.leader.character_name[/^[\!\$]./]
if sign && sign.include?('$')
@cw = bitmap.width / 3
@ch = bitmap.height / 4
else
@cw = bitmap.width / 12
@ch = bitmap.height / 8
end
self.ox = @cw / 2
self.oy = @ch
end
def update_src_rect
if @tile_id == 0
index = $game_party.leader.character_index
pattern = @character.pattern < 3 ? @character.pattern : 1
sx = (index % 4 * 3 + pattern) * @cw
sy = (index / 4 * 4 + (@character.direction - 2) / 2) * @ch
self.src_rect.set(sx, sy, @cw, @ch)
end
end
def update_position
self.x = @character.screen_x
self.y = @character.screen_y + Galv_Riders::POS[@character.type][1]
self.z = 150
case $game_player.direction
when 2; self.z = 100 if Galv_Riders::POS[@character.type][3]
when 4; self.x += Galv_Riders::POS[@character.type][0]
when 6; self.x -= Galv_Riders::POS[@character.type][0]
end
end
def update_other
@character.driving ? self.opacity = 255 : self.opacity = 0
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
self.visible = !@character.transparent
end
end # Sprite_riders < Sprite_Character
Sorry to bother yourself Galv,it is posible to dissable the actor walking? The poor chocobo/dragon are suffering because three is a moron waliking in their backs. :P Excuse me for my bad english and thanks you very much for this great script.
PD: i understand you are busy,you dont have to fullfill my request if you dont want to.
Unfortunately I am busy – if there’s no setting for it then someone would have to add it via script
You can probably just create a switch that would control if the character animation is on/off while he rides. You have to create a way for your player to get on/off anyways.