#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Blizz-ABS Controller for RMX-OS by Blizzard
# Version: 1.5
# Type: RMX-OS Add-on
# Date: 15.2.2010
# Date v1.01: 16.2.2010
# Date v1.02: 23.4.2010
# Date v1.1: 5.12.2010
# Date v1.19: 22.1.2011
# Date v1.2: 25.1.2011
# Date v1.3: 3.2.2011
# Date v1.31: 11.2.2011
# Date v1.32: 11.2.2011
# Date v1.33: 4.3.2011
# Date v1.34: 6.3.2011
# Date v1.4: 9.3.2011
# Date v1.5: 22.6.2012
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# This script is to be distributed under the same terms and conditions like
# the scripts it was created for: RMX-OS and Blizz-ABS.
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
# - Special Thanks to Ryex for providing the basecode for the fix for the
# controls conflict between Blizz-ABS and RMX-OS.
#
# Information:
#
# This script must be placed below RMX-OS and Blizz-ABS. It requires RMX-OS
# v1.18 or higher and Blizz-ABS 2.84 or higher to work properly. This script
# will allow the RMX-OS Server to assign a client the role of the processor
# (Global Master) and allow global processing Blizz-ABS AI behavior.
#
#
# What is different:
#
# - Map actor data will not be stored completely. Special states and effects
# that are related to Blizz-ABS (i.e. the data regarding the charging
# state) are not being saved.
# - RMX-OS was not intended to have Blizz-ABS allies! Players will not see
# other players' allies on the map if you add them and you are risking data
# corruption during saving! The same goes for summons!
# - Alignment groups are available, but dynamic change of alignment groups
# is mostly disabled for convenience.
# - Target selection is disabled. Every skill that has target selection will
# be executed immediately. If a selection skill targets only one target, a
# random target from all available targets will be chosen. Generally you
# should avoid single-target selection skills and items.
# - ABSEAL is disabled.
# - Processing takes place only on the Global Master client that is assigned
# dynamically by the server.
# - Killed enemy events that are set on Death trigger are run only on the
# Global Master client. It is recommended that killed enemies trigger
# global switches that run common events. For that you need a plugin for
# RMX-OS that allows you to have global switches.
# - Item / Gold Drops are disabled. The actor who killed the enemy will get
# the item reward. EXP and gold rewards are shared among party members
# where each party member adds a specific amount to the gained EXP.
# Remember that items can be traded so a shared item reward is unnecessary.
#
#
# Notes:
#
# - Keep in mind that adding and/or removing this script will corrupt the
# save data in the RMX-OS SQL database.
# - You shouldn't have any non-map scenes during the battle. This can disrupt
# the normal game flow. You should get a custom menu system on the map for
# the menu system specifically.
#
#
# If you find any bugs, please report them here:
# http://forum.chaos-project.com
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
if !$BlizzABS || BlizzABS::VERSION < 2.85
raise 'ERROR: The "Blizz-ABS Controller" requires Blizz-ABS 2.85 or higher.'
elsif !defined?(RMXOS) || RMXOS::VERSION < 1.18
raise 'ERROR: The "Blizz-ABS Controller" requires RMX-OS 1.18 or higher.'
end
$blizzabs_rmxos = 1.5
#==============================================================================
# module RMXOS
#==============================================================================
module RMXOS
#============================================================================
# module RMXOS::Options
#============================================================================
module Options
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# START Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# PvP active or not
PVP = false
# how much percent to the total EXP gain does each party member add
PARTY_EXP_BONUS = 20
# how much percent to the total gold gain does each party member add
PARTY_GOLD_BONUS = 20
# this should be only changed if necessary!
BATTLER_VARIABLES = ['@battler|@hp', '@battler|@sp',
'@battler|@states', '@battler|@states_turn', '@battler|@state_time',
'@battler|@states_turn', '@battler|@state_time', '@battler|@states',
'@ai|@positive', '@ai|@negative', '@ai|@neutral']
ACTOR_VARIABLES = ['@battler|@actor_id', '@battler|@class_id',
'@battler|@level', '@battler|@maxhp_plus', '@battler|@maxsp_plus',
'@battler|@str_plus', '@battler|@dex_plus', '@battler|@agi_plus',
'@battler|@int_plus', '@battler|@skills', '@battler|@weapon_id',
'@battler|@armor1_id', '@battler|@armor2_id', '@battler|@armor4_id',
'@battler|@armor3_id', '@battler|@character_name',
'@battler|@character_hue']
ENEMY_VARIABLES = ['@battler|@enemy_id', '@battler|@immortal',
'@ai|@altered_alignment', '@ai|@aggressive', '@ai|@view_range',
'@ai|@hearing_range_ratio']
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# END Configuration
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# because Game_Player was redefined
old_Game_Player = SAVE_DATA.keys.find_all {|key|
key.is_a?(Class) && key.name == 'Game_Player'}[0]
SAVE_DATA[Game_Player] = SAVE_DATA[old_Game_Player]
SAVE_DATA.delete(old_Game_Player)
# other additional save data
SAVE_DATA[Map_Actor] = SAVE_DATA[Game_Player].clone
SAVE_DATA[Game_System].concat(['@hud', '@hotkeys', '@minimap',
'@attack_button', '@defend_button', '@skill_button', '@item_button',
'@select_button', '@hud_button', '@hotkey_button', '@minimap_button',
'@turn_button', '@running_button', '@sneaking_button', '@jumping_button',
'@caterpillar', '@caterpillar_active'])
SAVE_DATA[Game_Actor].concat(['@skill', '@item', '@skill_hotkeys',
'@item_hotkeys', '@old_level', '@offensive', '@aggressive',
'@force_offensive', '@force_aggressive', '@state_time', '@triggers'])
SAVE_DATA[BlizzABS::Trigger] = ['@activator', '@condition', '@comparator',
'@value', '@action_type', '@action_data', '@target']
# new creation data
CREATION_DATA[Map_Actor] = '0'
end
#============================================================================
# module RMXOS::Data
#============================================================================
module Data
PartyAlreadyMember = 'Player is already a member of your party.'
PartyNone = 'You are not in a party.'
PartyNotLeader = 'You are not the leader of the party.'
PartyNotMember = 'Player is not a member of your party.'
PartyInfo = 'Party Leader: LEADER; Members: MEMBERS'
ColorParty = Color.new(0xFF, 0x7F, 0x1F)
end
#============================================================================
# module RMXOS::Documentation
#============================================================================
module Documentation
# Party commands
PARAMETERS['party'] = 'USERNAME'
PARAMETERS['premove'] = 'USERNAME'
PARAMETERS['pleave'] = 'none'
PARAMETERS['pmsg'] = 'MESSAGE'
PARAMETERS['pinfo'] = 'none'
DESCRIPTIONS['party'] = 'Invites a player into your party.'
DESCRIPTIONS['premove'] = 'Removes a player from your party.'
DESCRIPTIONS['pleave'] = 'Leaves the current party. Disbands the party if you are the party leader.'
DESCRIPTIONS['pmsg'] = 'Sends a message to all party members.'
DESCRIPTIONS['pinfo'] = 'Displays information about your party.'
end
def self.change_keys
controls = [Input::LEFT, Input::RIGHT, Input::UP, Input::DOWN, Input::B,
Input::C]
keys = []
replacements = ['Arrow Left', 'Arrow Right', 'Arrow Up', 'Arrow Down',
'Esc', 'Enter']
controls.each_index {|i|
keys[i] = controls[i].clone
controls[i].clear
controls[i].push(Input::Key[replacements[i]])
}
return keys
end
def self.restore_keys(keys)
controls = [Input::LEFT, Input::RIGHT, Input::UP, Input::DOWN, Input::B,
Input::C]
controls.each_index {|i|
controls[i].clear
keys[i].each {|key| controls[i].push(key)}
}
end
end
#==============================================================================
# module BlizzABS
#==============================================================================
module BlizzABS
#============================================================================
# module BlizzABS::Config
#============================================================================
module Config
ABSEAL_FACTOR = 485
GOLD_DROP = ''
ITEM_DROP = false
CORPSES = false
end
#============================================================================
# module BlizzABS::Alignments
#============================================================================
module Alignments
ONLINE_GROUP = 0
GROUPS.push(ONLINE_GROUP)
GROUPS.sort!
class << Alignments
alias neutral_blizzabsrmxos_later neutral
alias negative_blizzabsrmxos_later neutral
end
def self.negative(id)
result = negative_blizzabsrmxos_later(id)
case id
when ONLINE_GROUP
result = GROUPS.clone
result.delete(id)
result.delete(ACTOR_GROUP) if !RMXOS::Options::PVP
when ENEMY_GROUP
result.push(ONLINE_GROUP)
end
return result
end
def self.neutral(id)
result = neutral_blizzabsrmxos_later(id)
result |= [ONLINE_GROUP]
return result
end
end
#============================================================================
# BlizzABS::AI::Data_Enemy
#============================================================================
class AI::Data_Enemy
alias lifeless_blizzabsrmxos_later? lifeless?
def lifeless?
return (!$network.gmaster || lifeless_blizzabsrmxos_later?)
end
end
#============================================================================
# BlizzABS::Processor
#============================================================================
class Processor
def update_killed
deleted_killed = []
$game_system.killed.each_key {|key|
$game_system.killed[key] -= 1
if key.execute
key.update
elsif $game_system.killed[key] <= 0
$game_map.events.delete(key.id)
if !key.ai.lifeless_blizzabsrmxos_later? &&
($game_system.respawn_time > 0 || key.respawn_point != nil)
if $network.gmaster && !key.respawning
$network.send_enemy_respawn(key)
key.respawning = true
end
else
deleted_killed.push(key)
end
end}
deleted_killed.each {|key| $game_system.killed.delete(key)}
end
alias exp_result_blizzabsrmxos_later exp_result
def exp_result(enemy)
if enemy.last_targeter == $network.user_id ||
$network.party.include?(enemy.last_targeter)
return exp_result_blizzabsrmxos_later(enemy)
end
return 0
end
alias gold_result_blizzabsrmxos_later gold_result
def gold_result(enemy)
if enemy.last_targeter == $network.user_id ||
$network.party.include?(enemy.last_targeter)
return gold_result_blizzabsrmxos_later(enemy)
end
return 0
end
alias additional_result_blizzabsrmxos_later additional_result
def additional_result(enemy)
if enemy.last_targeter == $network.user_id
return additional_result_blizzabsrmxos_later(enemy)
end
end
alias drop_items_blizzabsrmxos_later drop_items
def drop_items(enemy)
if enemy.last_targeter == $network.user_id
return drop_items_blizzabsrmxos_later(enemy)
end
return []
end
alias remove_enemy_blizzabsrmxos_later remove_enemy
def remove_enemy(enemy)
$network.send_enemy_death(enemy) if $network.gmaster
end
end
#============================================================================
# BlizzABS::Controller
#============================================================================
class Controller
alias update_control_blizzabsrmxos_later update_control
def update_control
update_control_blizzabsrmxos_later if !$game_temp.chat_active
end
end
#============================================================================
# BlizzABS::Controls
#============================================================================
class Controls
alias update_blizzabsrmxos_later update
def update
update_blizzabsrmxos_later if !$game_temp.chat_active
end
end
#============================================================================
# BlizzABS::Utility
#============================================================================
class Utility
alias request_damage_sprite_blizzabsrmxos_later request_damage_sprite
def request_damage_sprite(char, damage = nil)
if $network.gmaster
variables = char.get_exchange_variables(['@battler|@damage',
'@battler|@hpdamage', '@battler|@spdamage', '@battler|@hp',
'@battler|@sp'])
char.send_exchange_variables(variables)
end
request_damage_sprite_blizzabsrmxos_later(char, damage)
end
end
end
$BlizzABS = BlizzABS::Processor.new
#==============================================================================
# RMXOS::Network
#==============================================================================
class RMXOS::Network
attr_reader :gmaster
attr_reader :party
attr_reader :partyleader
alias init_blizzabsrmxos_later initialize
def initialize
init_blizzabsrmxos_later
@gmaster = false
@respawning = {}
self.party_reset
end
alias reset_blizzabsrmxos_later reset
def reset
self.party_reset
reset_blizzabsrmxos_later
end
def party_reset
@partyleader = ''
@party = []
end
alias clear_map_players_blizzabsrmxos_later clear_map_players
def clear_map_players
clear_map_players_blizzabsrmxos_later
@respawning = {}
end
alias check_game_blizzabsrmxos_later check_game
def check_game(message)
case message
when /\AGMA\Z/ # global master activate
@gmaster = true
return true
when /\AGMD\Z/ # global master deactivate
@gmaster = false
return true
when /\AMEE(.+)\t(.+)/ # exchange variables for enemies
id = $1.to_i
variables = eval($2)
if $game_map != nil && $game_map.events != nil &&
$game_map.events.has_key?(id)
$game_map.events[id].evaluate(variables)
end
return true
when /\AMDR\Z/ # map data request
$game_map.battlers.each {|battler| battler.send_exchange_variables}
return true
when /\ABED(.+)\t(.+)/ # broadcast enemy death
id = $1.to_i
targeter_id = $2.to_i
if $game_map.events.has_key?(id)
enemy = $game_map.events[id]
enemy.last_targeter = targeter_id
$BlizzABS.remove_enemy_blizzabsrmxos_later(enemy)
tmp = $game_map.respawns.find_all {|event|
!event.erased && event.respawn_ids != nil &&
event.respawn_ids.include?(enemy.battler_id)}
if !enemy.ai.lifeless_blizzabsrmxos_later? &&
($game_system.respawn_time > 0 || tmp.size > 0)
@respawning[id] = enemy
end
end
when /\ABER(.+)/ # broadcast enemy respawn
id = $1.to_i
if @respawning.has_key?(id)
enemy = @respawning[id]
$game_map.events[id] = $BlizzABS.respawn_enemy(enemy)
@respawning.delete(enemy)
if $game_system.killed.has_key?(enemy)
$game_system.killed.delete(enemy)
end
end
return true
when /\APIN(.+)\t(.+)/ # party invite
@partyleader = $1
@party = eval($2).compact.sort
@party.delete(@username)
return true
when /\APRM\Z/ # party reset
self.party_reset
return true
when /\APRE(.+)/ # party remove
@party.delete($1)
return true
when /\AIRM(.+)/ # item remove
$game_party.lose_item($1.to_i)
return true
end
return check_game_blizzabsrmxos_later(message)
end
alias check_normal_commands_blizzabsrmxos_later check_normal_commands
def check_normal_commands(message)
case message
when /\A\/party (\S+)\Z/
command_party_invite($1)
return true
when /\A\/premove (\S+)\Z/
command_party_remove($1)
return true
when /\A\/pleave\Z/
command_party_leave
return true
when /\A\/pmsg (\S{1}.*)/
command_party_chat($1)
return true
when /\A\/pinfo\Z/
command_party_info
return true
end
return check_normal_commands_blizzabsrmxos_later(message)
end
def partyleader?
return (self.in_party? && @partyleader == @username)
end
def in_party?
return (@partyleader != '')
end
def check_partyleader_action
if !self.partyleader?
self.add_error(RMXOS::Data::PartyNotLeader)
return false
end
return true
end
def check_party_action
if !self.in_party?
self.add_error(RMXOS::Data::PartyNone)
return false
end
return true
end
def command_party_invite(username)
if !self.in_party? || self.check_partyleader_action
if @party.include?(username)
self.add_error(RMXOS::Data::PartyAlreadyMember)
else
self.send("PIN#{username}")
end
end
end
def command_party_remove(username)
if self.check_partyleader_action
if !@party.include?(username)
self.add_error(RMXOS::Data::PartyNotMember)
else
self.send("PRE#{username}")
end
end
end
def command_party_leave
if self.check_party_action
self.send('PLE')
end
end
def command_party_info
if self.check_party_action
text = RMXOS::Data::PartyInfo.sub('LEADER') {@partyleader}
text = text.sub('MEMBERS') {(@party - [@partyleader]).join(', ')}
self.add_info(text)
end
end
def command_party_chat(message)
if self.check_party_action
send_chat_message(message, RMXOS::Data::ColorParty, 'PME')
end
end
def try_deactivate_gmaster
self.send('GMD')
@gmaster = false
end
def send_enemy_exchange_variables(id, variables)
self.send("MEE#{id}\t#{variables.inspect}")
end
def send_item_remove(user_id, item_id)
self.send("IRM#{user_id}\t#{item_id}")
end
def send_enemy_death(enemy)
return if enemy.last_targeter == nil
if enemy.last_targeter == $game_player
id = $network.user_id
elsif enemy.last_targeter.is_a?(Map_OnlineBattler)
id = enemy.last_targeter.user_id
else
return
end
self.send("BED#{enemy.id}\t#{id}")
end
def send_enemy_respawn(enemy)
self.send("BER#{enemy.id}")
end
end
#==============================================================================
# Game_Enemy
#==============================================================================
class Game_Enemy
alias exp_blizzabs_rmxos_later exp
def exp
result = exp_blizzabs_rmxos_later
bonus = $network.party.size * RMXOS::Options::PARTY_EXP_BONUS
return (result * (100 + bonus) / 100 / ($network.party.size + 1))
end
alias gold_blizzabs_rmxos_later gold
def gold
result = gold_blizzabs_rmxos_later
bonus = $network.party.size * RMXOS::Options::PARTY_GOLD_BONUS
return (result * (100 + bonus) / 100 / ($network.party.size + 1))
end
end
#==============================================================================
# Spriteset_Map
#==============================================================================
class Spriteset_Map
alias init_blizzabsrmxos_later initialize
def initialize
init_blizzabsrmxos_later
$network.map_players.each_value {|character|
sprite = Sprite_Character.new(@viewport1, character)
sprite.update
@character_sprites.push(sprite)}
end
end
#==============================================================================
# Map_Battler
#==============================================================================
class Map_Battler
attr_accessor :last_targeter
def get_exchange_variable_names
return (RMXOS::Options::EXCHANGE_VARIABLES |
RMXOS::Options::BATTLER_VARIABLES)
end
alias use_attack_blizzabsrmxos_later use_attack
def use_attack
result = use_attack_blizzabsrmxos_later
if result && (self == $game_player || $network.gmaster)
variables = {}
variables['@ai|@act|@kind'] = BlizzABS::ACTAttack
self.send_exchange_variables(variables)
end
return result
end
alias use_skill_blizzabsrmxos_later use_skill
def use_skill(skill, forced = false)
result = use_skill_blizzabsrmxos_later(skill, forced)
if result && (self == $game_player || $network.gmaster)
variables = {}
variables['@ai|@act|@kind'] = BlizzABS::ACTSkill
variables['@ai|@act|@id'] = skill.id
self.send_exchange_variables(variables)
end
return result
end
alias use_item_blizzabsrmxos_later use_item
def use_item(item, forced = false)
result = use_item_blizzabsrmxos_later(item, forced)
if result && (self == $game_player || $network.gmaster)
variables = {}
variables['@ai|@act|@kind'] = BlizzABS::ACTItem
variables['@ai|@act|@id'] = item.id
self.send_exchange_variables(variables)
end
return result
end
def setup_damage_display
$BlizzABS.util.request_damage_sprite(self)
@battler.damage, @battler.hpdamage, @battler.spdamage = nil, 0, 0
end
def in_screen?
return true
end
end
#==============================================================================
# Map_Actor
#==============================================================================
class Map_Actor
alias update_blizzabsrmxos_later update
def update
update_blizzabsrmxos_later
if !$network.gmaster && self.valid? && @battler.damage != nil
setup_damage_display
end
end
def get_exchange_variable_names
return (super | RMXOS::Options::ACTOR_VARIABLES)
end
def update_exchange_variables
changed = self.get_exchange_variables_changes
if changed.size > 0
self.send_exchange_variables(changed)
self.store_exchange_variables(changed)
end
end
def send_exchange_variables(variables = nil)
variables = super(variables)
$network.send_exchange_variables(variables) if self == $game_player
return variables
end
alias attack_effect_blizzabsrmxos_later attack_effect
def attack_effect(character, _battler)
return false if !$network.gmaster
return attack_effect_blizzabsrmxos_later(character, _battler)
end
alias skill_effect_blizzabsrmxos_later skill_effect
def skill_effect(character, _battler, skill)
return false if !$network.gmaster
return skill_effect_blizzabsrmxos_later(character, _battler, skill)
end
alias item_effect_blizzabsrmxos_later item_effect
def item_effect(character, _battler, item)
return false if !$network.gmaster
return item_effect_blizzabsrmxos_later(character, _battler, item)
end
end
#==============================================================================
# Map_Enemy
#==============================================================================
class Map_Enemy
attr_accessor :respawning
alias update_blizzabsrmxos_later update
def update
update_blizzabsrmxos_later
if !$network.gmaster && self.valid? && @battler.damage != nil
setup_damage_display
end
end
def get_exchange_variable_names
return (super | RMXOS::Options::ENEMY_VARIABLES)
end
def update_exchange_variables
changed = self.get_exchange_variables_changes
if changed.size > 0
self.send_exchange_variables(changed)
self.store_exchange_variables(changed)
end
end
def send_exchange_variables(variables = nil)
variables = super(variables)
$network.send_enemy_exchange_variables(self.id, variables)
return variables
end
alias attack_effect_blizzabsrmxos_later attack_effect
def attack_effect(character, _battler)
return false if !$network.gmaster
@last_targeter = character
return attack_effect_blizzabsrmxos_later(character, _battler)
end
alias skill_effect_blizzabsrmxos_later skill_effect
def skill_effect(character, _battler, skill)
return false if !$network.gmaster
@last_targeter = character
return skill_effect_blizzabsrmxos_later(character, _battler, skill)
end
alias item_effect_blizzabsrmxos_later item_effect
def item_effect(character, _battler, item)
return false if !$network.gmaster
@last_targeter = character
return item_effect_blizzabsrmxos_later(character, _battler, item)
end
end
#==============================================================================
# Map_OnlineBattler
#==============================================================================
class Map_OnlineBattler < Map_Actor
attr_reader :user_id
attr_reader :username
attr_reader :usergroup
attr_accessor :map_id
def initialize
super(0)
@battler = Game_Actor.new(1)
@cindex = nil
@ai.setup_group(BlizzABS::Alignments::ONLINE_GROUP)
@normal_speed = BlizzABS::Config::NORMAL_SPEED
refresh
end
def update
if !$network.gmaster && self.valid? && @battler.damage != nil
setup_damage_display
end
refresh
super
@character_name = @character_name_org
sprite_animation_setup
check_action
end
def check_action
return if !self.valid? || !@ai.act.valid?
battlers = []
if @ai.target == nil
battlers = ($game_map.battlers + $BlizzABS.battlers).find_all {|b|
b.valid?}
battlers.compact!
end
$BlizzABS.AI.normal_action(self, battlers, battlers, @ai.act.basic?,
@ai.act.kind - 1, 0xFFFF, 0xFFFF, @ai.act.id, @ai.act.skill?)
@ai.act.delay = 0 if !@ai.act.defend?
$BlizzABS.AI.try_execute(self) if @ai.target != nil
self.reset_action
end
def update?
return false
end
def evaluate(variables, user_id, username, usergroup)
super(variables)
@user_id = user_id
@username = username
@usergroup = usergroup
refresh
end
def battler(override = false)
return @battler
end
def item_can_use?(id)
return true
end
def item_consumption(item)
$network.send_item_remove(@user_id, item.id) if item.consumable
end
def update_ci(ind = nil)
end
def update_buffer(move)
end
def turn_toward(character)
end
def moveto(x, y)
pix = $BlizzABS.pixel
super(x / pix, y / pix)
end
end
Game_OnlineCharacter = Map_OnlineBattler
#==============================================================================
# Game_Map
#==============================================================================
class Game_Map
alias battlers_blizzabsrmxos_later battlers
def battlers
return (battlers_blizzabsrmxos_later | $network.map_players.values)
end
end
#==============================================================================
# Frame_Text
#==============================================================================
class Frame_Text
alias update_input_blizzabsrmxos_later update_input
def update_input
keys = RMXOS.change_keys
update_input_blizzabsrmxos_later
RMXOS.restore_keys(keys)
end
end
#==============================================================================
# Scene_Login
#==============================================================================
class Scene_Login
alias update_blizzabsrmxos_later update
def update
keys = RMXOS.change_keys
update_blizzabsrmxos_later
RMXOS.restore_keys(keys)
end
end
#==============================================================================
# Scene_Register
#==============================================================================
class Scene_Register
alias update_blizzabsrmxos_later update
def update
keys = RMXOS.change_keys
update_blizzabsrmxos_later
RMXOS.restore_keys(keys)
end
end
#==============================================================================
# Scene_Map
#==============================================================================
class Scene_Map
alias main_blizzabsrmxos_later main
def main
main_blizzabsrmxos_later
$network.try_deactivate_gmaster
end
def initialize_selection
end
def process_selection
object, r, type, sprites = $game_temp.select_data
if $tons_version != nil && object.is_a?(RPG::Skill) &&
($tons_version >= 6.02 && $game_system.TARGET_EM_ALL &&
FULL_TARGET_IDS.include?(object.id))
targets = []
sprites.each {|sprite| targets.push(sprite.character)}
else
targets = [sprites[rand(sprites.size)].character]
end
return targets
end
def execute_selection(targets)
if targets.size > 0
$game_player.ai.target = targets[0]
case $game_temp.select_data[0]
when RPG::Skill then $game_player.use_skill($game_temp.select_data[0])
when RPG::Item then $game_player.use_item($game_temp.select_data[0])
end
end
$game_temp.select_data = nil
end
alias call_menu_blizzardrmxos_later call_menu
def call_menu
if $game_temp.chat_active
$game_temp.menu_calling = false
$game_temp.menu_beep = false
return
end
call_menu_blizzardrmxos_later
end
alias check_huds_blizzardrmxos_later check_huds
def check_huds
minimap_button = $game_system.minimap_button
hotkey_button = $game_system.hotkey_button
hud_button = $game_system.hud_button
if $game_temp.chat_active
$game_system.minimap_button = false
$game_system.hotkey_button = false
$game_system.hud_button = false
end
check_huds_blizzardrmxos_later
$game_system.minimap_button = minimap_button
$game_system.hotkey_button = hotkey_button
$game_system.hud_button = hud_button
end
alias update_hotkeys_blizzardrmxos_later update_hotkeys
def update_hotkeys
update_hotkeys_blizzardrmxos_later if !$game_temp.chat_active
end
end