Super Simple Vehicle System - Enhanced - DerVVulfman - 03-05-2008
Super Simple Vehicle System - Enhanced
Ver 10.8
Introduction
"This is a vehicle system that is similar to the Final Fantasy system. In this system, you get vehicles (a canoe, ship, and dragon), the world tileset for Aveyond 2 (free to use in freeware games), and some autotiles." - Lambchop (creator of Aveyond)
From Lambchop:
"Lol, you seem to have a talent for taking tools and making them extraordinary. :)"
We've been keeping in touch. :D
Features
Can make more than one vehicle.
Can have vehicles on various maps, not limited to just one world map.
Disable encounters for certain vehicles
Prevent vehicles from 'landing/dismounting' on certain terrain types
Mobile HQ system capacity
Different speeds for different vehicles
Custom music for vehicles
Custom background sound FX for vehicles
Multiple terrains per vehicle
More options available for vehicles
Configurable board/exit & HQ buttons.
Compatible with 'Enhanced Squad Movement'.
Compatible with MGC's Mode7 and my edit of MGC's Mode7.
Compatible with Big Maps.
Uses either "Permanent Event Erase" (supplied) or a compatible Dynamic Maps script.
Screenshots
Am older screenshot courtesy of Lambchop. The map is kinda the same
Taken in a project with 'Big Maps', 'Enhanced Squad' and Mode7' combined
Demo Right here
To board a boat, ship or dragon, press the [Shift] key to board or exit a vehicle.
To enter a Mobile Headquarters (the dragon), press the [Esc] key.
Keys are programmable from the script.
Instructions
This version is different from Lambchop's version as the actual editing of the script is in a configuration section at the top. I'm good with arrays it seems.
Also, there is less to add to the actual 'vehicle' map events than hers.
Mind you, the script has most of the instructions you really need. Or I am too lazy right now. Downloading the demo is the best way to learn.
Submitted Patches for...
Just a little further down is a section for 'script patches' that allow compatability with other systems or enhances to the Vehicle system. This will hopefully be a growing section.
FAQ
When riding a vehicle, you do not have access to either the Field Menu or Save menu options. However if you are using a Mobile Headquarters (a Final Fantasy-styled feature), you can enter the field and/or save menu while in the Headquarters.
The system is basically in a 'final version' stage... merely accessing any possible bugs. No other features will be added, however new features may be added through external add-on scripts. Conflicts with other scripts will require external patches or edits as I cannot guarantee them working with other systems.
Credits and Thanks
To Lambchop... DUH! And to SephirothSpawn who inspired and showed her how to make the first version of this script. Thanks to Regimos and Monk for detecting a minor (yet stubborn) bug that occurs when landing next to a map event (now fixed). Another thank to Regimos for detecting a glitch where the main menu was accidentally re-enabled in a regular vehicle. To Alistor and mephisto for supplying the code for animating vehicles in motion, and again to Alistor for discovering the ability to accidentally debark a vehicle when exiting a mobile HQ. And to shannon who suggested terrain tags that may not be 'landable', even if they are passable. Also, thanks goes to Regimos for noting that 'landed' vehicles permitted other vehicles to pass across/into impassable terrains. Finally, thanks to Primetime as he noticed that only the first actor in the database changed and not the 'lead' member in the party (if the 1st actor isn't the lead anymore). Thanks goes to yamina-chan who noted how characters moving quickly may shift vehicles off their designated terrains, & discovering that the use of the Add Event fix was needed. Thanks to Habs11 for finding fault in an unneeded save_data method. Also to Sujabes467 who noted an issue where vehicles passed through solid events. Then thanks to Geminil who noted an issue where vehicles disappeared when the player leaves the game map. And finally, thanks to Nathylia who requested that certain events could be animated after landing/disembarking.
Terms and Conditions
The system is designed for royalty-free usage in private, shareware and commercial games. The only requirement is due credit to myself, Lambchop, SephirothSpawn, and everyone else in the Credits and Thanks section.
The world tileset for "Aveyond 2" is free to use in freeware games, and are the accompanying autotiles.
Image has link to Enterbrain's Download Page
Super Simple Vehicle System - Enhanced - DerVVulfman - 03-05-2008
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
Super Simple Vehicle System - Enhanced - habs11 - 07-10-2009
Hey DerVVulfman. This is a great script and I just had a question about it. Is there a way to transport you character from a map directly into a vehicle?
For example, let's say your character is rescuing a fellow party member from a castle and the escape plan is to meet up with his ship next to the ocean where the castle is located. The character escapes on his ship, etc, etc. The next scene would be you riding on your ship on the world map somewhere close to the castle, where you have complete control as though you boarded your ship from a beach or what not. Is this possible? I've seen this effect in some of the FF games and thought it would be worth a shot to try. Thanks for your time.
Habs11
Super Simple Vehicle System - Enhanced - DerVVulfman - 07-11-2009
Now THAT... is an interesting option.
I never thought about script calls to transfer players to/from a vehicle in such a manner. It does warrant looking into.
Super Simple Vehicle System - Enhanced - habs11 - 07-11-2009
Much appreciated. Please let me know if you come up with anything. If it's too much work and time consuming, don't worry about it. I'll make due no problem. Thanks again.
Habs11
Super Simple Vehicle System - Enhanced - DerVVulfman - 07-14-2009
Well, in the works right now. However, transfers will only occur to vehicles in the same map. That is the one 'limitation' ya got so far. DerVVulfman goes off to posting stuff.
Super Simple Vehicle System - Enhanced - habs11 - 07-15-2009
Hey no problem. That will be easy. I can hide the screen, transport to world map, then transport to the vehicle. Easy money. Thanks for the look into it.
Habs11
Super Simple Vehicle System - Enhanced - zakfoss - 08-27-2009
Can this work on Rpg maker vx???
Super Simple Vehicle System - Enhanced - DerVVulfman - 08-28-2009
Designed for RPGMaker XP. RMVX already has its own vehicle system, though it is more limited than mine.
Super Simple Vehicle System - Enhanced - Jeea - 12-20-2009
HelP! I like the script because it has lots of advantages than the original one, but the landing part, i did followed the terrain part, but why doesn't it land???