I am using a vehicle system and I'm in need of a manipulation in the script. It calls for the actor's graphic to be saved and restored when the vehicle is exited. I wanted a way to change it so that it will save the actor who is in the first party slott as opposed to a single specific actor. Here is the script:
class Game_Character
def passable?(x, y, d)
# Get new coordinates
new_x = x + (d == 6 ? 1 : d == 4 ? -1 : 0)
new_y = y + (d == 2 ? 1 : d == 8 ? -1 : 0)
# If coordinates are outside of map
unless $game_map.valid?(new_x, new_y)
return false
end
# If through is ON
if @through
return true
end
# If unable to leave first move tile in designated direction
unless $game_map.passable?(x, y, d, self)
return false
end
# If unable to enter move tile in designated direction
unless $game_map.passable?(new_x, new_y, 10 - d)
return false
end
#check terrain for vehicle
check_terrain(new_x, new_y)
# Loop all events
for event in $game_map.events.values
# If event coordinates are consistent with move destination
if event.x == new_x and event.y == new_y
@state = true
# If through is OFF
unless event.through
# If self is event
if self != $game_player
return false
end
# With self as the player and partner graphic as character
if event.character_name != ""
return false
end
end
end
end
if @state == false
return false
end
# If player coordinates are consistent with move destination
if $game_player.x == new_x and $game_player.y == new_y
# If through is OFF
unless $game_player.through
# If your own graphic is the character
if @character_name != ""
return false
end
end
end
return true
end
#--------------------------------------------------------------------------
# * Check the terrain for the vehicle
# @terrain (0=none, 1=river, 2=ocean, 3=air, 4=ground)
# @vehicle (0=foot, 1=canoe, 2=boat, 3=dragon)
# @state (true=passable tile, false=unpassable tile)
#--------------------------------------------------------------------------
def check_terrain(new_x, new_y)
@state = false
@terrain = $game_map.terrain_tag(new_x, new_y)
@vehicle = $game_variables[1]
@state = true if @vehicle == 0 && @terrain == 4 #foot & ground
@state = true if @vehicle == 0 && @terrain == 5
@state = true if @vehicle == 0 && @terrain == 6
@state = true if @vehicle == 1 && @terrain == 4 #canoe & river
@state = true if @vehicle == 2 && @terrain == 2 #boat & ocean
@state = true if @vehicle == 3 #dragon
@state = true if @terrain == 0
end
end
class Game_Player < Game_Character
alias in_vehicle_alias update
#--------------------------------------------------------------------------
# * Memorize actor graphic
#--------------------------------------------------------------------------
def actor_memorize
@actor_name = $game_actors[1].character_name
@actor_hue = $game_actors[1].character_hue
@battler_name = $game_actors[1].battler_name
@battler_hue = $game_actors[1].battler_hue
return true
end
#--------------------------------------------------------------------------
# * Restore actor graphic
#--------------------------------------------------------------------------
def actor_restore
actor = $game_actors[1]
actor.set_graphic(@actor_name.to_s, @actor_hue, @battler_name.to_s, @battler_hue)
$game_player.refresh
return true
end
#--------------------------------------------------------------------------
# * Enter a vehicle
#--------------------------------------------------------------------------
def enter_vehicle(type)
$game_system.menu_disabled = true
$game_system.save_disabled = true
if type != "dragon"
@through = true
move_forward
@through = false
end
actor_memorize
actor = $game_actors[1]
actor.set_graphic(type, @actor_hue, @battler_name.to_s, @battler_hue)
$game_switches[1] = false #Canoe Off
$game_switches[2] = false #Boat Off
$game_switches[3] = false #Dragon Off
if type == "Caravan"
$game_variables[1] = 1 #set terrian
$game_switches[1] = true #Canoe On
Audio.bgm_play("Audio/BGM/047-Positive05", 100, 100) #play canoe music
elsif type == "boat"
$game_variables[1] = 2 #set terrian
$game_switches[2] = true #Boat On
Audio.bgm_play("Audio/BGM/Crvantes", 100, 100) #play ship music
elsif type == "dragon"
$game_variables[1] = 3 #set terrian
$game_switches[3] = true #Dragon On
Audio.bgm_play("Audio/BGM/045-Positive03", 100, 100) #play dragon music
end
$game_player.refresh
$game_map.refresh
return true
end
#--------------------------------------------------------------------------
# * Enter a vehicle
#--------------------------------------------------------------------------
def exit_vehicle
$game_system.menu_disabled = true
$game_system.save_disabled = true
if @terrain == 4
if $game_switches[1] == true #getting off canoe
canoe = $game_map.events[2] #get canoe event
canoe.moveto(x, y) #move to player's x, y coords
$game_switches[1] = false #Canoe Off
$game_variables[4] = x #set canoe x coord
$game_variables[5] = y #set canoe y coord
@through = true
move_forward
@through = false
elsif $game_switches[2] == true #getting off boat
boat = $game_map.events[8] #get boat event
boat.moveto(x, y) #move to player's x, y coords
$game_switches[2] = false #Boat Off
$game_variables[2] = x #set boat x coord
$game_variables[3] = y #set boate y coord
@through = true
move_forward
@through = false
elsif $game_switches[3] == true #getting off dragon
dragon = $game_map.events[2] #get dragon event
dragon.moveto(x, y) #move to player's x, y coords
$game_switches[3] = false #Dragon Off
$game_variables[6] = x #set dragon x coord
$game_variables[7] = y #set dragon y coord
end
# get off vehicle
actor_restore
# reset terrain
$game_variables[1] = 0
# play walking music
Audio.bgm_play("Audio/BGM/044-Positive02", 100, 100) #play music
$game_player.refresh
$game_map.refresh
end
end
#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update
in_vehicle_alias
# if not on ground terrain, check for boat exit
if $game_variables[1] != 0
if Input.trigger?(Input::C)
exit_vehicle
end
end
end
end
The issue lies in lines 95 - 114:
#--------------------------------------------------------------------------
# * Memorize actor graphic
#--------------------------------------------------------------------------
def actor_memorize
@actor_name = $game_actors[1].character_name
@actor_hue = $game_actors[1].character_hue
@battler_name = $game_actors[1].battler_name
@battler_hue = $game_actors[1].battler_hue
return true
end
#--------------------------------------------------------------------------
# * Restore actor graphic
#--------------------------------------------------------------------------
def actor_restore
actor = $game_actors[1]
actor.set_graphic(@actor_name.to_s, @actor_hue, @battler_name.to_s, @battler_hue)
$game_player.refresh
return true
end