03-05-2008, 07:35 AM
(This post was last modified: 05-28-2020, 05:22 PM by DerVVulfman.
Edit Reason: Behemoth Metroid Patch added
)
Submitted Patches for...
It's a given that this custom map/movement system will probably conflict with some other map and/or movement script. So this post is to hold patches that make the other system work with this one.
The Lycan ABS / Vehicles Patch
Code:
#==============================================================================
# ** The Lycan ABS / Vehicles v 10.0+ patch
#------------------------------------------------------------------------------
# version 1.1
# by DerVVulfman
# 01-02-2018 (MM/DD/YYYY)
# RGSS / RPGMaker XP
#==============================================================================
#
# Paste the Vehicles script below the Lycan ABS, and this script below them
# both. Companions will vanish from the field when you board a vehicle, and
# reappear when you leave one or appear in a Headquarters map.
#
# You will use the movment speed of the vehicles as all player ABS features
# will be disabled. You will not be able to hit an enemy, however they can
# not hit you either.
#
#==============================================================================
#==============================================================================
# ** Game_ABS
#------------------------------------------------------------------------------
# This class deals with the Action Battle System and controls all Player,
# Enemy and Companion Actions on the map.
#==============================================================================
class Game_ABS
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias vehicle_reset_move_states reset_move_states
alias vehicle_update_enemy_attack update_enemy_attack
alias vehicle_update_enemy_behavior update_enemy_behavior
alias vehicle_update_player update_player
alias vehicle_update_dash update_dash
alias vehicle_update_sneak update_sneak
#--------------------------------------------------------------------------
# * Frame Update ( Repair Movement States )
#--------------------------------------------------------------------------
def reset_move_states
return unless $game_system.vehicle_current.nil?
vehicle_reset_move_states
end
#--------------------------------------------------------------------------
# * Frame Update ( for enemy - Enemy Attack Control)
# enemy : enemy object
#--------------------------------------------------------------------------
def update_enemy_attack(enemy)
return unless $game_system.vehicle_current.nil?
vehicle_update_enemy_attack(enemy)
end
#--------------------------------------------------------------------------
# * Frame Update ( for enemy - Basic Enemy Behavior )
# enemy : enemy object
#--------------------------------------------------------------------------
def update_enemy_behavior(enemy)
return unless $game_system.vehicle_current.nil?
vehicle_update_enemy_behavior(enemy)
end
#--------------------------------------------------------------------------
# * Frame Update ( for player - Basic Player Control)
#--------------------------------------------------------------------------
def update_player
return unless $game_system.vehicle_current.nil?
vehicle_update_player
end
#--------------------------------------------------------------------------
# * Update Dash
#--------------------------------------------------------------------------
def update_dash
return unless $game_system.vehicle_current.nil?
vehicle_update_dash
end
#--------------------------------------------------------------------------
# * Update Sneak
#--------------------------------------------------------------------------
def update_sneak
return unless $game_system.vehicle_current.nil?
vehicle_update_sneak
end
end
#==============================================================================
# ** Game_ABS_Companion
#------------------------------------------------------------------------------
# This class handles the ABS Companions mirroring the Game_Party members in
# the ABS system. Refer to "$game_companions" for the instance of this class.
#==============================================================================
class Game_ABS_Companion < Game_Character
alias vehicle_update update
def update
unless $game_system.vehicle_current.nil?
return if @wait_command == false and @map_id == $game_map.map_id and @dead == false
end
# The original call
vehicle_update
end
end
#==============================================================================
# ** Game_Player
#------------------------------------------------------------------------------
# This class handles the player. Its functions include event starting
# determinants and map scrolling. Refer to "$game_player" for the one
# instance of this class.
#==============================================================================
class Game_Player < Game_Character
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
alias lycan_update_disembark update_disembark
alias lycan_update_board_completion update_board_completion
alias lycan_update_hq_entry update_hq_entry
alias lycan_hq_exit hq_exit
#--------------------------------------------------------------------------
# * Disembark Vehicle
#--------------------------------------------------------------------------
def update_disembark
# Perform the original call
effective = lycan_vehicle_disembark
# Exit method if false/disabled
return false unless effective == true
# And if there are companions...
if Lycan::COMPANIONS_ON
# Cycle through the companions
for companion in $game_companions.values
next if companion.nil?
# If the companions are still active
if companion.wait_command == false and companion.dead == false
# if companion.map_id is the same as the player's and current map
if companion.map_id = $game_map.map_id
# Move the companions to the player's location
companion.moveto(@x, @y)
end
end
end
# Finally, pop em visible
$ABS.show_companions
end
# End Method
return true
end
#--------------------------------------------------------------------------
# * Board Vehicle Completed
#--------------------------------------------------------------------------
def update_board_completion
# And if there are companions...
if Lycan::COMPANIONS_ON
# Hide the suckers
$ABS.hide_companions
end
lycan_update_board_completion
end
#--------------------------------------------------------------------------
# * Enter the HQ Map
#--------------------------------------------------------------------------
def update_hq_entry
# Exit if not using HQ Entry input
return unless Input.trigger?(Vehicles::HQ_INPUT)
# And if there are companions...
if Lycan::COMPANIONS_ON
# Cycle through the companions
for companion in $game_companions.values
next if companion.nil?
# If the companions are still active
if companion.wait_command == false and companion.dead == false
# if companion.map_id is the same as the player's and current map
if companion.map_id = $game_map.map_id
# Move the companions to the player's location
companion.moveto(@x, @y)
end
end
end
# Finally, pop em visible
$ABS.show_companions
end
# Perform the original call
lycan_update_hq_entry
end
#--------------------------------------------------------------------------
# * Exit the HQ Map
#--------------------------------------------------------------------------
def hq_exit(key=nil)
effective = lycan_hq_exit(key)
if effective == true
# And if there are companions...
if Lycan::COMPANIONS_ON
# Hide the suckers
$ABS.hide_companions
end
end
end
end
The Behemoth Metroid / Vehicles Patch
Code:
#==============================================================================
# ** The Vehicles Patch for Behemoth's Metroid Game Game System
#------------------------------------------------------------------------------
# by DerVVulfman
# version 1.0
# 05-28-2020 (MM/YY/DDDD)
# RGSS / RPGMaker XP
# * Requires Behemoth's Metroid Game
# * Requires Super Simple Vehicle System - Enhanced
#==============================================================================
#
#
# USAGE:
# ======
#
# Place this script below Behemoth's Metroid Game scripts, typically below
# Scene_Debug as most copies have his scripts integrated within the default
# scripts themselves.
#
# FUNCTION:
# =========
#
# It runs a test within Behemoth's custom 'check_event_extras' method which
# causes issues with other scripts relying upon the 'name' of an event. This
# patch allows the name to be checked against the naming formula used by the
# 'Vehicles' system, and exits before the conflict occurrs.
#
#
#==============================================================================
#==============================================================================
# ** Game_Event
#------------------------------------------------------------------------------
# This class deals with events. It handles functions including event page
# switching via condition determinants, and running parallel process events.
# It's used within the Game_Map class.
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# * Alias Listings
#--------------------------------------------------------------------------
behemoth_dervv_check_event_extras_fix check_event_extras
#--------------------------------------------------------------------------
# * Check event extras
#--------------------------------------------------------------------------
def check_event_extras
# Exit method if the event is likely a vehicle instead
return if @event.name =~ Vehicles::VEHICLE_FORMULA
# Perform the original call
behemoth_dervv_check_event_extras_fix
end
end