Flying Battlers
Authors: game_guy
Version: 1.11
Type: Adds Realism
Key Term: Battle Add-on
IntroductionScript was created completely from inspiration.
Flying Enemies adds some realism to your game. It basically gives the appearance and feel that enemies are floating off the ground. Only weapons with the "flying" element can attack enemies that aren't on the ground. e.g. a gun or a bow. A guy with a sword couldn't very well jump 20 feet and kill something could they? (maybe, it is just a game)
Features
- Flying Enemies
- Any battler can fly now with states
- Specific Spells and Weapons can hurt
- Floating animation for enemies
Screenshots
DemoN/A
Script
#===============================================================================
# Flying Battlers
# Version 1.11
# Author game_guy
# Edit KK20
#-------------------------------------------------------------------------------
# Intro:
# Flying battlers adds a tad bit of realism to the game.
#
# Features:
# -Flying Enemies
# -Flying Actors for like a "Float" effect
# -Specific Spells and Weapons can hurt
# -Floating animation for enemies
#
# Instructions:
# -Go to the config, set the following data there. To make a weapon hit a flying
# enemy, you must give it the flying element you specified below. The same for
# skills, except some skills get exceptions. Read Notes.
#
# Notes:
# -Only weapons marked with the Flying_Element can hit a flying enemy.
# -Skills with a higher INT F then ATK F will hit a flying enemy since these
# skills are considered "Magic". (Think Fire over Double Slash or something)
# -Skills with a higher ATK F will need to be marked with the Flying Element in
# order to hit a flying enemy.
#
# Compatibility:
# -Not tested with SDK.
# -Not tested with any custom battle systems.
# -Attacking flying enemies (and missing) will most likely work throughout all
# custom battle systems.
# -Animating enemy up and down may or may not work in any custom battle system.
#
# Credits:
# -game_guy ~ For creating it.
# -Final Fantasy X ~ Started playing this game again and Tidus was unable to
# hit any flying enemies. ;_; Hence inspiration. :3
#===============================================================================
module GG_Fly
#---------------------------------------------
# Weapons and skill must have this element
# in order to attack flying enemies.
#---------------------------------------------
Flying_Element = 17
#---------------------------------------------
# States that give enemies or actors the
# "flying" effect.
#---------------------------------------------
Flying_States = [17, 18]
#---------------------------------------------
# Place enemy ids in the array below to mark
# them as flying enemies.
#---------------------------------------------
Flying_Enemies = [1, 2]
#---------------------------------------------
# The 'miss' message displayed when an out of
# reach attacker attempts to hit a flying
# enemy.
#---------------------------------------------
Miss_Message = "Out of reach!"
#---------------------------------------------
# Moves flying enemies up and down to give
# the "floating" feeling.
#---------------------------------------------
Animate_Enemy = true
end
class Game_Battler
def flying?
return ((self.is_a?(Game_Enemy) && GG_Fly::Flying_Enemies.include?(self.id)) || @states.any? {|id| GG_Fly::Flying_States.include?(id)})
end
alias gg_fly_attack_effect_lat attack_effect
def attack_effect(attacker)
if self.flying? && !attacker.element_set.include?(GG_Fly::Flying_Element)
self.damage = GG_Fly::Miss_Message
return true
end
return gg_fly_attack_effect_lat(attacker)
end
alias gg_fly_skill_effect_lat skill_effect
def skill_effect(user, skill)
if self.flying? && !skill.element_set.include?(GG_Fly::Flying_Element)
if skill.atk_f >= skill.int_f
self.damage = GG_Fly::Miss_Message
return true
end
end
return gg_fly_skill_effect_lat(user, skill)
end
end
class Sprite_Battler < RPG::Sprite
alias gg_init_flying_enemy_lat initialize
def initialize(viewport, battler = nil)
gg_init_flying_enemy_lat(viewport, battler)
if battler != nil
@update_frame = 0
@speed = 2
@new_y = battler.screen_y
end
end
def battler=(bat)
@battler = bat
return if bat == nil
@update_frame = 0
@speed = 2
@new_y = @battler.screen_y
end
alias gg_animate_flying_enemy_lat update
def update
gg_animate_flying_enemy_lat
return if @battler.nil?
if GG_Fly::Animate_Enemy && @battler.flying?
@update_frame += 1
if @update_frame == 2
@update_frame = 0
@new_y += @speed
if @new_y == @battler.screen_y
@speed = 1
elsif @new_y == @battler.screen_y + 16
@speed = -1
end
end
self.y = @new_y
end
end
end
InstructionsIn the script. In fact there is even a small notes section you should read. In fact, here are the notes visually explained.
Skills with a higher INT F then ATK F are considered "Magic" skills. So therefore skills like these will hit flying enemies regardless if they have the Flying element or not. Any skill that does not meet this condition must have the Flying element in order to attack Flying enemies. However, all weapons
Note how fire does not have the flying element, it can still hit flying enemies since in a sense its magic and you don't need to be next to the enemyThis is a skill used by a hunter with his bow. In a sense it should be able to hit flying enemies, but since its not "magic" it needs to have the flying element.Any weapon you want to hit flying enemies with must have the Flying element.
Compatibility- Not tested with SDK.
- Not tested with any custom battle systems.
- Attacking flying enemies (and missing) will most likely work throughout all custom battle systems.
- Animating enemy up and down may or may not work in any custom battle system.
Credits and Thanks
- game_guy ~ For creating it.
- Final Fantasy X ~ Started playing this game again and Tidus was unable to hit any flying enemies. ;_; Hence inspiration. :3
- KK20 ~ For fixing bugs in my absence.
Author's NotesEnjoy!