Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Xim

1
Hey everybody for some reason the hotkey assignment menu cuts off the last couple of icons. I don't know how this happened, but I want to know how to fix this. Or what at least is causing this to happen.

Here's a screen shot of the effect, and of the scripts I am using. I tried editing the highlighted line of code (I don't know what I'm doing) and literately nothing happened so I put it back the way I found it.

Spoiler: ShowHide




2
I have a script that automatically gives you an item after using another item, so I can have it so you obtain an empty potion container afterwards. But it's not compatible with Stormtronics CMS by Blizzard. I guess I could use another item system, but I really feel like my game needs to have the "quest items" organization available. So even if I had a simple item script that allowed me to configure "quest items" that I could use with Stormtronics and allow me to use this pre-existing script that'd be awesome. I'll at least try not to be too picky. :^_^':

Here is my script it was made by a guy with the appropriate screen name "Brewmeister" on RPG Revolution (when it was still a website).
#=====================================================================
# ** Scene_Item
#------------------------------------------------------------------------------
#  This class performs item screen processing.
#
#  Modified to replace "IN_VIAL" items with an empty vial (VIAL_ITEM)
#  Or "IN_MUG" items with an empty vial (MUG_ITEM)
#  Or "IN_BOWL" items with an empty vial (BOWL_ITEM)
#==============================================================================

class Scene_Item
 IN_VIAL = [1,2,3,4,5,6,7,8,11] # ID's for Items that give you an empty vial
 VIAL_ITEM = 35 # The vial item ID
 IN_MUG = [] # ID's for Items that give you an empty mug
 MUG_ITEM = 36 # The mug item ID
 IN_BOWL = [] # ID's for Items that give you an empty bowl
 BOWL_ITEM = 37 # The bowl item ID
 #--------------------------------------------------------------------------
 # * Frame Update (when target window is active)
 #--------------------------------------------------------------------------
 def update_target
# If B button was pressed
if Input.trigger?(Input::B)
 # Play cancel SE
 $game_system.se_play($data_system.cancel_se)
 # If unable to use because items ran out
 unless $game_party.item_can_use?(@item.id)
# Remake item window contents
@item_window.refresh
 end
 # Erase target window
 @item_window.active = true
 @target_window.visible = false
 @target_window.active = false
 return
end
# If C button was pressed
if Input.trigger?(Input::C)
 # If items are used up
 if $game_party.item_number(@item.id) == 0
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
return
 end
 # If target is all
 if @target_window.index == -1
# Apply item effects to entire party
used = false
for i in $game_party.actors
 used |= i.item_effect(@item)
end
 end
 # If single target
 if @target_window.index >= 0
# Apply item use effects to target actor
target = $game_party.actors[@target_window.index]
used = target.item_effect(@item)
 end
 # If an item was used
 if used
# Play item use SE
$game_system.se_play(@item.menu_se)
# If consumable
if @item.consumable
 # Decrease used items by 1
 $game_party.lose_item(@item.id, 1)
     if IN_VIAL.include?(@item.id) # ADDED
$game_party.gain_item(VIAL_ITEM, 1) # ADDED
@item_window.refresh # ADDED
   else  # ADDED
         if IN_MUG.include?(@item.id) # ADDED
         $game_party.gain_item(MUG_ITEM, 1) # ADDED
         @item_window.refresh # ADDED
         else  # ADDED
             if IN_BOWL.include?(@item.id) # ADDED
             $game_party.gain_item(BOWL_ITEM, 1) # ADDED
             @item_window.refresh # ADDED
             else  # ADDED
             # Redraw item window item   # Indented
             @item_window.draw_item(@item_window.index)  # Indented
             end
         # Redraw item window item   # Indented
         @item_window.draw_item(@item_window.index)  # Indented
         end
# Redraw item window item   # Indented
@item_window.draw_item(@item_window.index)  # Indented
 end   # ADDED
end
# Remake target window contents
@target_window.refresh
# If all party members are dead
if $game_party.all_dead?
 # Switch to game over screen
 $scene = Scene_Gameover.new
 return
end
# If common event ID is valid
if @item.common_event_id > 0
 # Common event call reservation
 $game_temp.common_event_id = @item.common_event_id
 # Switch to map screen
 $scene = Scene_Map.new
 return
end
 end
 # If item wasn't used
 unless used
# Play buzzer SE
$game_system.se_play($data_system.buzzer_se)
 end
 return
end
 end
end


Thanks in advance!
3
I keep getting a Script error that says this:

Script 'Blizz-ABS 2.84 Part 2' line 5627: EOFError occurred

End of files reached


This happens after I do a few updates to Part 1 in the editor. I've had to remake Part 1 several times because of this and its chair-throwingly frustrating.

Here is my most recent Part 1 of the script.
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Blizz-ABS by Blizzard and winkio
# Version: 2.84
# Auto-Generated Configuration Script
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
#
#                                    PART 1
#
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
# Copy-paste this auto-generated script into the script slot instead of Part 1
# of the default Blizz-ABS script.
#
# If you find any bugs, please report them here:
# http://forum.chaos-project.com
#:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=

#==============================================================================
# BlizzABS
#------------------------------------------------------------------------------
#  This is the master control, configuration, utility and battle process
#  module for Blizz-ABS.
#==============================================================================

module BlizzABS
 
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 # BlizzABS::Control
 #----------------------------------------------------------------------------
 #  This module provides in-game control configurations.
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 module Control
   
   CUSTOM_CONTROLS = true
   DISABLE_DEFAULT = true
   UP = "Key['Arrow Up']"
   LEFT = "Key['Arrow Left']"
   DOWN = "Key['Arrow Down']"
   RIGHT = "Key['Arrow Right']"
   PREVPAGE = "Key[',']"
   NEXTPAGE = "Key['.']"
   CONFIRM = "Key['C'], Key['Enter']"
   CANCEL = "Key['X'], Key['Esc']"
   ATTACK = "Key['S']"
   DEFEND = "Key['D']"
   SKILL = "Key['F'], Key['A']"
   ITEM = "Key['W']"
   SELECT = "Key['Q']"
   HUD = "Key['H']"
   HOTKEY = "Key['N']"
   MINIMAP = "Key['M']"
   RUN = "Key['R']"
   SNEAK = "Key['Shift']"
   JUMP = "Key['Space']"
   TURN = "Key['Ctrl']"
   
 end
 
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 # BlizzABS::Config
 #----------------------------------------------------------------------------
 #  This module provides Blizz-ABS configurations.
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 module Config
   
   # 2.1. # Basic Configuration
   MAX_PARTY = 4
   MAX_PETS = 4
   MAX_MONSTERS = 4
   MAX_SUMMONS = 4
   CATERPILLAR = true
   CORPSES = false
   EMPTY_CORPSES = false
   RECOVER_ON_LEVEL_UP = true
   FULL_DEFEND = true
   DIRECT_HOTKEYS = false
   AUTO_GAMEOVER = true
   DROP_AMMO = true
   MENU_COLOR_TINT = 0
   DISABLE_ABS_MODE = 3
   ITEM_DROP = true
   ITEM_PICKUP_SOUND_FILE = RPG::AudioFile.new('005-System05', 80, 100)
   GOLD_DROP = 'coins'
   GOLD_PICKUP_SOUND_FILE = RPG::AudioFile.new('006-System06', 80, 100)
   DROP_TIME = 30
   EVENT_LOCK = 40
   ANIMATED_IDS = [15, 16]
   
   # 2.2. # Movement Configuration
   PIXEL_MOVEMENT_RATE = 0
   REPAIR_MOVEMENT = true
   EIGHT_WAY_MOVEMENT = false
   SNEAK_ON_CHARGE = true
   NORMAL_SPEED = 4
   RUN_SPEED = 5
   SNEAK_SPEED = 3
   JUMPING = 2
   NO_JUMP_TAGS = [1]
   ALLOW_JUMP_TAGS = []
   NO_FLOOR_TAGS = [3, 6, 7]
   
   # 2.3. # Lag Prevention Configuration
   INTELLIGENT_PASSABILITY = true
   ABSEAL_AUTOKILL = true
   ABSEAL_FACTOR = 1
   DISABLE_ANTILAG_IDS = []
   
   # 2.4. # Game Info Configuration
   HUD_ENABLED = true
   HUD_POSITION = 0
   HUD_TYPE = 0
   MINIMAP = true
   HOTKEYS = true
   ENEMY_HEALTH_BARS = 0
   ENEMY_HEALTH_BARS_MATCH_WIDTH = false
   BOUNCING_DAMAGE = true
   WEAPON_DATA_MODE = [2, 2]
   SKILL_DATA_MODE = [2, 2, 2]
   ITEM_DATA_MODE = [0, 0, 0]
   
   # 2.5. # Enemy Behavior Configuration
   AI_DEFAULT_ATTRIBUTES = '00000000'
   AI_DELAY_TIME = 40
   VIEW_RANGE = 5
   HEARING_RANGE_RATIO = 40
   RESPAWN_TIME = 0
   WALL_TAGS = [1]
   NO_ENEMY_TAGS = []
   EXP_MODE = 0
   KNOCKBACK_MODE = 2
   
   # 2.6. # Animation Configuration
   ANIMATIONS = true
   SMALL_ANIMATIONS = true
   DISPLAY_LEVEL_UP = true
   LEVEL_UP_ANIMATION_ID = 1
   FLEE_ANIMATION_ID = 98
   CALL_HELP_ANIMATION_ID = 97
   DEFEND_ANIMATION_ID = 137
   UNSUMMON_ANIMATION_ID = 0
   
   # 2.7. # Sprite Control Configuration
   A_ACTION_SPRITES = false
   A_WEAPON_SPRITES = false
   A_DEFEND_SPRITES = false
   A_SKILL_SPRITES = false
   A_ITEM_SPRITES = false
   A_IDLE_SPRITES = false
   A_CHARGE_SPRITES = false
   A_CHARGE_WEAPON_SPRITES = false
   A_CHARGE_SKILL_SPRITES = false
   A_CHARGE_ITEM_SPRITES = false
   E_ACTION_SPRITES = false
   E_SKILL_SPRITES = false
   E_IDLE_SPRITES = false
   E_CHARGE_SPRITES = false
   E_CHARGE_SKILL_SPRITES = false
   RUNNING_SPRITES = false
   SNEAKING_SPRITES = false
   JUMPING_SPRITES = false
   
 end
 
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 # BlizzABS::Alignments
 #----------------------------------------------------------------------------
 #  This module provides alignment configurations.
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 module Alignments
   
   GROUPS = [1, 2, 3, 4, 5, 6, 7, 8]
   LIFELESS_GROUPS = [4]
   LINKED_GROUPS = [5, 6]
   PERMANENT_GROUPS = [5, 6]
   ACTOR_GROUP = 1
   ENEMY_GROUP = 2
   
   def self.enemies(id)
     case id
     when 1 then return [2, 7]
     when 2 then return [1, 3, 5, 6]
     when 5 then return [2, 7]
     when 7 then return [1, 2, 3, 5, 6]
     when 8 then return [2, 7]
     end
     return []
   end
   
   def self.allies(id)
     case id
     when 1 then return [1]
     when 2 then return [2]
     when 5 then return [5, 6]
     when 6 then return [5, 6]
     when 7 then return [7]
     when 8 then return [1, 5, 6]
     end
     return []
   end
   
   def self.neutral(id)
     return []
   end
   
 end
 
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 # BlizzABS::Weapons
 #----------------------------------------------------------------------------
 #  This module provides weapon configurations.
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 module Weapons
   
   def self.type(id)
     case id
     when 5 then return SPEAR # Hunting Spear
     when 6 then return SPEAR # Bronze Spear
     when 7 then return SPEAR # Battle Spear
     when 8 then return SPEAR # Trident
     when 17 then return BOW # Longbow
     when 18 then return BOW # Fire Arrows
     when 19 then return BOW # Poison Arrows
     when 20 then return BOW # Silver Arrows
     when 21 then return BOW # Boxing Glove Arrows
     when 22 then return BOW # Shortbow
     when 23 then return BOW # Crossbow
     when 24 then return BOW # Boomerang
     when 29 then return SPEAR # Old Staff
     when 30 then return SPEAR # Magic Staff
     when 31 then return SPEAR # Power Staff
     when 38 then return FLAIL # Sledge Hammar
     when 39 then return FLAIL # Flail Mace
     when 40 then return BOW # Staff of Thunder
     when 44 then return SPEAR # Snibee Spear
     when 45 then return BOW_ARROW # Ancient Gun
     when 48 then return SHURIKEN # Monk Star
     end
     return SWORD
   end
   
   def self.combo(id)
     return 0
   end
   
   def self.projectile_speed(id)
     case id
     when 22 then return 6 # Shortbow
     when 23 then return 6 # Crossbow
     when 24 then return 4 # Boomerang
     when 40 then return 6 # Staff of Thunder
     when 48 then return 4 # Monk Star
     end
     return 5
   end
   
   def self.knockback(id)
     case id
     when 5 then return 0 # Hunting Spear
     when 6 then return 0 # Bronze Spear
     when 7 then return 0 # Battle Spear
     when 8 then return 0 # Trident
     when 13 then return 0 # Knife
     when 14 then return 0 # Poison Knife
     when 15 then return 0 # Tribal Knife
     when 16 then return 0 # Throwing Knife
     when 27 then return 0 # Speedy Knuckle
     when 28 then return 2 # Heavy Knuckle
     when 38 then return 3 # Sledge Hammar
     when 39 then return 3 # Flail Mace
     when 40 then return 0 # Staff of Thunder
     when 48 then return 0 # Monk Star
     end
     return 1
   end
   
   def self.range(id)
     case id
     when 5 then return 2.5 # Hunting Spear
     when 6 then return 2.5 # Bronze Spear
     when 7 then return 2.5 # Battle Spear
     when 8 then return 2.5 # Trident
     when 17 then return 6.5 # Longbow
     when 18 then return 6.5 # Fire Arrows
     when 19 then return 6.5 # Poison Arrows
     when 20 then return 6.5 # Silver Arrows
     when 21 then return 6.5 # Boxing Glove Arrows
     when 22 then return 4.5 # Shortbow
     when 23 then return 12.5 # Crossbow
     when 24 then return 4.5 # Boomerang
     when 38 then return 2.5 # Sledge Hammar
     when 39 then return 2.5 # Flail Mace
     when 40 then return 4.5 # Staff of Thunder
     when 48 then return 7.5 # Monk Star
     end
     return 1.5
   end
   
   def self.penalty(id)
     case id
     when 9 then return 24 # Pickaxe
     when 10 then return 24 # Wood Axe
     when 11 then return 24 # Battle Axe
     when 12 then return 24 # Pick Hammar
     when 13 then return 8 # Knife
     when 14 then return 8 # Poison Knife
     when 15 then return 8 # Tribal Knife
     when 16 then return 8 # Throwing Knife
     when 23 then return 34 # Crossbow
     when 27 then return 8 # Speedy Knuckle
     when 28 then return 28 # Heavy Knuckle
     when 38 then return 25 # Sledge Hammar
     when 39 then return 25 # Flail Mace
     end
     return 16
   end
   
   def self.frames(id)
     return [3, 3, 3, 3]
   end
   
   def self.charge(id)
     case id
     when 23 then return [CHARGEFreeze, 24] # Crossbow
     end
     return [CHARGENone, 0]
   end
   
   def self.charge_frames(id)
     return [3, 3, 3, 3]
   end
   
   def self.consume(id)
     case id
     when 45 then return [82] # Ancient Gun
     end
     return []
   end
   
 end
 
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 # BlizzABS::Skills
 #----------------------------------------------------------------------------
 #  This module provides skill configurations.
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 module Skills
   
   def self.type(id)
     case id
     when 7 then return [SHOOT, EXPLNone] # Fire Ball
     when 8 then return [SHOOT, EXPLNone] # Flame Thrower
     when 9 then return [DIRECT, EXPLTarget, 1.0, 27] # Wall of Flame
     when 10 then return [SHOOT, EXPLNone] # Ice Shard
     when 11 then return [BEAM, EXPLNone] # Freeze Beam
     when 14 then return [DIRECT, EXPLTarget, 1.0, 33] # Lightning Bolt
     when 15 then return [DIRECT, EXPLTarget, 1.0, 33] # Thunder Blast
     when 19 then return [HOMING, EXPLNone] # Boulder
     when 25 then return [HOMING, EXPLNone] # Light Ball
     when 26 then return [BEAM, EXPLNone] # Light Beam
     when 28 then return [HOMING, EXPLNone] # Shadow Ball
     when 29 then return [HOMING, EXPLNone] # Lost Soul
     when 57 then return [SHOOT, EXPLNone] # Heavy Strike
     when 58 then return [SHOOT, EXPLNone] # Stunning Strike
     when 59 then return [SHOOT, EXPLNone] # Dragon Slayer
     when 60 then return [SHOOT, EXPLNone] # Blade Flourish
     when 61 then return [HOMING, EXPLNone] # Precision Jab
     when 62 then return [SHOOT, EXPLNone] # Power Kick
     when 63 then return [SHOOT, EXPLNone] # Frozen Strike
     when 64 then return [HOMING, EXPLNone] # Tiger Punch
     when 65 then return [SHOOT, EXPLNone] # Wild Pounding
     when 66 then return [SHOOT, EXPLNone] # Silver Knuckle
     when 67 then return [SHOOT, EXPLNone] # Deadly Smash
     when 70 then return [SHOOT, EXPLNone] # Brutal Chop
     when 73 then return [SHOOT, EXPLNone] # Leg Shot
     when 74 then return [SHOOT, EXPLNone] # Arm Shot
     when 75 then return [SHOOT, EXPLNone] # Head Shot
     when 76 then return [SHOOT, EXPLNone] # Eye Shot
     when 77 then return [SHOOT, EXPLNone] # Kill Shot
     when 78 then return [SHOOT, EXPLNone] # Double Arrow
     when 79 then return [SHOOT, EXPLNone] # Triple Arrow
     when 80 then return [SHOOT, EXPLNone] # Arrow Storm
     when 81 then return [SHOOT, EXPLNone] # Frenzy
     when 82 then return [SUMMON, EXPLNone] # Snibee Call
     when 83 then return [SUMMON, EXPLNone] # Hunting Raven
     when 85 then return [SHOOT, EXPLNone] # Lightning Stab
     when 86 then return [TRAP, EXPLNone] # Animal Trap
     when 91 then return [SHOOT, EXPLNone] # Rock Throw
     when 92 then return [SHOOT, EXPLNone] # Head Bash
     when 109 then return [SHOOT, EXPLTarget, 1.0, 27] # Pyro Beam
     when 118 then return [SUMMON, EXPLNone] # Summon Undead
     end
     return [DIRECT, EXPLNone]
   end
   
   def self.combo(id)
     return 0
   end
   
   def self.projectile_speed(id)
     case id
     when 57 then return 6 # Heavy Strike
     when 58 then return 6 # Stunning Strike
     when 59 then return 6 # Dragon Slayer
     when 60 then return 6 # Blade Flourish
     when 61 then return 6 # Precision Jab
     when 62 then return 6 # Power Kick
     when 63 then return 6 # Frozen Strike
     when 64 then return 6 # Tiger Punch
     when 65 then return 6 # Wild Pounding
     when 66 then return 6 # Silver Knuckle
     when 67 then return 6 # Deadly Smash
     when 78 then return 6 # Double Arrow
     when 79 then return 6 # Triple Arrow
     when 80 then return 6 # Arrow Storm
     when 91 then return 4 # Rock Throw
     when 109 then return 6 # Pyro Beam
     end
     return 5
   end
   
   def self.knockback(id)
     case id
     when 1 then return 0 # First Aid
     when 2 then return 0 # Magic Heal
     when 3 then return 0 # Mass Heal
     when 4 then return 0 # Remedy
     when 5 then return 0 # Greater Remedy
     when 6 then return 0 # Raise
     when 13 then return 0 # Electroshock
     when 14 then return 0 # Lightning Bolt
     when 15 then return 0 # Thunder Blast
     when 17 then return 2 # Geyser
     when 18 then return 5 # Tidal Wave
     when 19 then return 2 # Boulder
     when 21 then return 5 # Earthquake
     when 22 then return 3 # Gust
     when 24 then return 5 # Hurricane
     when 33 then return 0 # Venom
     when 34 then return 0 # Venomous Gas
     when 35 then return 0 # Blind
     when 36 then return 0 # Dazzling Cloud
     when 37 then return 0 # Mute
     when 38 then return 0 # Mute Gas
     when 41 then return 0 # Sleep
     when 42 then return 0 # Sleep Dust
     when 43 then return 0 # Paralyze
     when 44 then return 0 # Paralyze Wave
     when 45 then return 0 # Weaken
     when 46 then return 0 # Mass Weaken
     when 49 then return 0 # Delay
     when 50 then return 0 # Mass Delay
     when 51 then return 0 # Feeble
     when 52 then return 0 # Mass Feeble
     when 53 then return 0 # Sharp
     when 54 then return 0 # Barrier
     when 55 then return 0 # Resist
     when 71 then return 2 # Winding Punch
     when 72 then return 4 # Tornado Kick
     when 82 then return 0 # Snibee Call
     when 83 then return 0 # Hunting Raven
     when 86 then return 0 # Animal Trap
     when 97 then return 0 # Snibee Heal Call
     when 98 then return 0 # Buldge
     when 118 then return 0 # Summon Undead
     end
     return 1
   end
   
   def self.range(id)
     case id
     when 2 then return 5.5 # Magic Heal
     when 3 then return 10.0 # Mass Heal
     when 4 then return 5.5 # Remedy
     when 5 then return 4.0 # Greater Remedy
     when 6 then return 5.5 # Raise
     when 7 then return 5.5 # Fire Ball
     when 8 then return 5.5 # Flame Thrower
     when 9 then return 8.0 # Wall of Flame
     when 10 then return 5.5 # Ice Shard
     when 11 then return 5.5 # Freeze Beam
     when 12 then return 8.0 # Blizzard
     when 13 then return 5.5 # Electroshock
     when 14 then return 10.0 # Lightning Bolt
     when 15 then return 8.0 # Thunder Blast
     when 16 then return 5.5 # Hard Rain
     when 17 then return 8.0 # Geyser
     when 18 then return 8.0 # Tidal Wave
     when 19 then return 5.5 # Boulder
     when 20 then return 8.0 # Sandstorm
     when 21 then return 8.0 # Earthquake
     when 22 then return 5.5 # Gust
     when 23 then return 10.0 # Tornado
     when 24 then return 8.0 # Hurricane
     when 25 then return 5.5 # Light Ball
     when 26 then return 5.5 # Light Beam
     when 27 then return 8.0 # Beam of Judgment
     when 28 then return 5.5 # Shadow Ball
     when 29 then return 5.5 # Lost Soul
     when 30 then return 8.5 # Void
     when 31 then return 5.5 # Fear
     when 32 then return 5.5 # Frightning Roar
     when 33 then return 5.5 # Venom
     when 34 then return 5.5 # Venomous Gas
     when 35 then return 5.5 # Blind
     when 36 then return 5.5 # Dazzling Cloud
     when 37 then return 5.5 # Mute
     when 38 then return 5.5 # Mute Gas
     when 39 then return 5.5 # Confuse
     when 40 then return 5.5 # Confuse Wave
     when 41 then return 5.5 # Sleep
     when 42 then return 5.5 # Sleep Dust
     when 43 then return 5.5 # Paralyze
     when 44 then return 5.5 # Paralyze Wave
     when 45 then return 5.5 # Weaken
     when 46 then return 5.5 # Mass Weaken
     when 47 then return 5.5 # Clumsy
     when 48 then return 5.5 # Mass Clumsy
     when 49 then return 5.5 # Delay
     when 50 then return 5.5 # Mass Delay
     when 51 then return 5.5 # Feeble
     when 52 then return 5.5 # Mass Feeble
     when 53 then return 5.5 # Sharp
     when 54 then return 5.5 # Barrier
     when 55 then return 5.5 # Resist
     when 56 then return 5.5 # Blink
     when 57 then return 2.5 # Heavy Strike
     when 58 then return 2.5 # Stunning Strike
     when 59 then return 2.5 # Dragon Slayer
     when 60 then return 2.5 # Blade Flourish
     when 62 then return 2.5 # Power Kick
     when 63 then return 2.5 # Frozen Strike
     when 64 then return 2.5 # Tiger Punch
     when 70 then return 2.5 # Brutal Chop
     when 72 then return 2.5 # Tornado Kick
     when 73 then return 7.0 # Leg Shot
     when 74 then return 7.0 # Arm Shot
     when 75 then return 7.0 # Head Shot
     when 76 then return 7.0 # Eye Shot
     when 77 then return 7.0 # Kill Shot
     when 78 then return 6.5 # Double Arrow
     when 79 then return 6.5 # Triple Arrow
     when 80 then return 6.5 # Arrow Storm
     when 87 then return 5.5 # Vine Wrap
     when 88 then return 5.5 # Poison Pineneedle
     when 89 then return 5.5 # Solar Blast
     when 90 then return 5.5 # Pine Bomb
     when 91 then return 5.5 # Rock Throw
     when 93 then return 10.0 # Snibee Attack Call
     when 94 then return 10.0 # Snibee Poison Call
     when 95 then return 10.0 # Fribee Attack Call
     when 96 then return 10.0 # Fribee Napalm Call
     when 100 then return 5.5 # Snowball Blast
     when 101 then return 5.5 # Combust
     when 102 then return 10.0 # Dark Lightning
     when 103 then return 7.0 # Dark Spores
     when 104 then return 7.0 # Heinium Bullet
     when 105 then return 7.0 # Burst
     when 106 then return 7.0 # Radiate
     when 108 then return 10.0 # Vortext
     when 109 then return 10.0 # Pyro Beam
     when 110 then return 10.0 # Void
     when 111 then return 7.0 # Snowy Mist
     end
     return 1.0
   end
   
   def self.penalty(id)
     return 24
   end
   
   def self.frames(id)
     return [3, 3, 3, 3]
   end
   
   def self.charge(id)
     return [CHARGENone, 0]
   end
   
   def self.charge_frames(id)
     return [3, 3, 3, 3]
   end
   
   def self.trap(id)
     case id
     when 86 then return 60 # Animal Trap
     end
     return 10
   end
   
   def self.summon(id)
     case id
     when 82 then return [SUMMONPet, 15, 10] # Snibee Call : Snibee
     when 83 then return [SUMMONPet, 16, 10] # Hunting Raven : Raven
     when 118 then return [SUMMONPet, 14, 10] # Summon Undead : Undead
     end
     return [SUMMONPet, 0, 0]
   end
   
 end
 
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 # BlizzABS::Items
 #----------------------------------------------------------------------------
 #  This module provides item configurations.
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 module Items
   
   def self.type(id)
     return [DIRECT, EXPLNone]
   end
   
   def self.combo(id)
     return 0
   end
   
   def self.projectile_speed(id)
     return 5
   end
   
   def self.knockback(id)
     return 1
   end
   
   def self.range(id)
     return 5.5
   end
   
   def self.penalty(id)
     return 24
   end
   
   def self.frames(id)
     return [3, 3, 3, 3]
   end
   
   def self.charge(id)
     return [CHARGENone, 0]
   end
   
   def self.charge_frames(id)
     return [3, 3, 3, 3]
   end
   
   def self.trap(id)
     return 10
   end
   
   def self.summon(id)
     return [SUMMONPet, 0, 0]
   end
   
   def self.drop_sprite(id)
     return false
   end
   
 end
 
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 # BlizzABS::Enemies
 #----------------------------------------------------------------------------
 #  This module provides enemy configurations.
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 module Enemies
   
   def self.type(id)
     case id
     when 1 then return SPEAR # Lesser Bither
     when 2 then return SPEAR # Bither
     when 4 then return SPEAR # Snibee
     when 12 then return BOW # Blood Ghost
     when 15 then return BOW # Treemage
     when 17 then return BOW # Squngus
     when 18 then return FLAIL # Squngus Tentacle
     when 19 then return BOW # Deccapied
     when 21 then return SPEAR # Snibee Larva
     when 22 then return BOOMERANG # Snibee Queen
     when 27 then return SPEAR # Vermon
     when 28 then return SPEAR # Polar Bither
     when 31 then return SPEAR # Mountain Savage
     when 36 then return BOW # Bandit Archer
     when 38 then return SPEAR # Sand Bither
     when 42 then return SPEAR # Tribal Savage
     when 43 then return BOW # Fwuzo Rider
     when 58 then return BOW # Frost
     when 60 then return BOW # The Ice King
     when 65 then return SPEAR # Spike
     when 69 then return BOW # Sinbad
     when 72 then return BOW # Archer
     when 74 then return BOW # Le Cannon
     end
     return SWORD
   end
   
   def self.combo(id)
     return 0
   end
   
   def self.projectile_speed(id)
     case id
     when 43 then return 4 # Fwuzo Rider
     end
     return 5
   end
   
   def self.knockback(id)
     case id
     when 8 then return 2 # Greater Bither
     when 13 then return 2 # Bither Queen
     when 22 then return 0 # Snibee Queen
     when 43 then return 2 # Fwuzo Rider
     when 58 then return 0 # Frost
     when 66 then return 0 # Spike
     when 68 then return 3 # Riff
     when 73 then return 2 # Boswine
     end
     return 1
   end
   
   def self.range(id)
     case id
     when 12 then return 5.0 # Blood Ghost
     when 15 then return 5.5 # Treemage
     when 17 then return 10.0 # Squngus
     when 18 then return 3.0 # Squngus Tentacle
     when 19 then return 5.5 # Deccapied
     when 22 then return 5.5 # Snibee Queen
     when 31 then return 2.5 # Mountain Savage
     when 36 then return 6.0 # Bandit Archer
     when 42 then return 2.5 # Tribal Savage
     when 43 then return 4.5 # Fwuzo Rider
     when 58 then return 5.5 # Frost
     when 66 then return 2.5 # Spike
     when 68 then return 3.0 # Riff
     when 72 then return 6.0 # Archer
     when 74 then return 10.0 # Le Cannon
     end
     return 1.5
   end
   
   def self.penalty(id)
     case id
     when 60 then return 10 # The Ice King
     end
     return 16
   end
   
   def self.frames(id)
     return [3, 3, 3, 3]
   end
   
   def self.charge(id)
     return [CHARGENone, 0]
   end
   
   def self.charge_frames(id)
     return [3, 3, 3, 3]
   end
   
   def self.delay(id)
     case id
     when 22 then return 28 # Snibee Queen
     when 60 then return 28 # The Ice King
     end
     return nil
   end
   
   def self.perception(id)
     case id
     when 16 then return [2, 100] # Snibee Drone
     when 22 then return [10, 100] # Snibee Queen
     when 26 then return [2, 90] # Vembat
     when 27 then return [2, 90] # Vermon
     when 60 then return [8, 60] # The Ice King
     end
     return nil
   end
   
   def self.ai(id)
     case id
     when 4 then return '00000100' # Snibee
     when 5 then return '01000000' # Mugger
     when 8 then return '00000001' # Greater Bither
     when 9 then return '00000001' # Fwuzo
     when 10 then return '01000000' # Mugger
     when 13 then return '00000001' # Bither Queen
     when 14 then return '01000000' # Treeman
     when 15 then return '01000000' # Treemage
     when 16 then return '00000010' # Snibee Drone
     when 17 then return '01001010' # Squngus
     when 21 then return '10000100' # Snibee Larva
     when 22 then return '00101110' # Snibee Queen
     when 23 then return '01000000' # Necro Warrior
     when 30 then return '01000000' # Ice Warrior
     when 31 then return '01000000' # Mountain Savage
     when 32 then return '01001000' # Dire Penguin
     when 33 then return '01000001' # Sasquatch
     when 34 then return '01010000' # Snowmancer
     when 35 then return '01000000' # Bandit Raider
     when 36 then return '01000000' # Bandit Archer
     when 39 then return '01000000' # Oasis Knight
     when 40 then return '01000000' # Trained Bither
     when 41 then return '00000001' # Tropical Fwuzo
     when 42 then return '01000000' # Tribal Savage
     when 43 then return '01000000' # Fwuzo Rider
     when 58 then return '01001000' # Frost
     when 59 then return '01000000' # Bite
     when 60 then return '01001000' # The Ice King
     when 61 then return '01000001' # Abdul
     when 62 then return '01101110' # Prince Oasis
     when 63 then return '01101010' # Dark
     when 64 then return '01101010' # Dark
     when 65 then return '01000001' # Spike
     when 66 then return '01000001' # Spike
     when 67 then return '01000001' # Riff
     when 68 then return '01000001' # Riff
     when 69 then return '01000000' # Sinbad
     when 70 then return '01111010' # Froster
     when 71 then return '01110000' # Guard
     when 72 then return '01110000' # Archer
     when 73 then return '10100001' # Boswine
     when 75 then return '01001000' # Pierre
     when 76 then return '01000000' # Jacques
     when 77 then return '01000000' # Phillip
     when 78 then return '01000000' # Tibble
     when 79 then return '01000000' # Body Builder
     when 81 then return '01110000' # Patrol Guard
     when 82 then return '01000000' # Hoodlum
     when 83 then return '01000000' # Murderer
     when 84 then return '01000000' # Viking
     when 85 then return '01000000' # Bitie
     when 87 then return '01001000' # The Heretic
     when 88 then return '10000000' # Bither Infant
     when 89 then return '10000000' # Tree
     when 90 then return '10000000' # Rare Tree
     when 91 then return '10000000' # Rock
     when 92 then return '10000000' # Punching Bag
     when 95 then return '10000000' # Rock
     when 96 then return '10000000' # Rock
     end
     return nil
   end
   
   def self.destruct(id)
     case id
     when 60 then return 32 # The Ice King : Ice 3
     end
     return 0
   end
   
   def self.respawn(id)
     return 0
   end
   
 end
 
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 # BlizzABS::Combos
 #----------------------------------------------------------------------------
 #  This module provides combo configurations.
 #:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=:=
 
 module Combos
   
   def self.total_actions(com)
     return 1
   end
   
   def self.commands(com)
     return []
   end
   
   def self.anim_data(com)
     return [0, [3, 3, 3, 3], '', false]
   end
   
 end
 
end


If anyone can explain why this keeps happening so I can avoid having to re-do my entire configuration every time I'd love them forever, or at least give them a hardy internet handshake of some sort. :P

EDIT: I think it has something to do with the "Intelligent Passability System" because I disabled it and it started working again.
4
Hi, I'm using Scrolling Message System EX for my game. I've tried a few other message systems but they don't work for some reason but this one seem to work better than most. I asked the author for help but he was understandably busy but he gave me permission to ask for help over here.

#==============================================================
# ** Scrolling Message System EX
#------------------------------------------------------------------------------
# Slipknot (http://www.creationasylum.net/)
# Version 1.2x (edited by LiTTleDRAgo)
# May 13, 2007
#==============================================================
# Features
#
# Default in RTP
#
# Color: \c[ID]
# Actor Name: \n[ActorID]
# Show Gold Window: \g
# Variable: \v[ID]
# -
# Default in SMS
#
# Letter by Letter: the characters are drawed one by one.
# Scrolling: the text lines are scrolled, the time of this can be changed.
# Stop: the message window can be stopped until the player press a key. \!
# Autoclose: the message will close without the player input. \%
# Choices: the choices are showed in a different window, they are also scrolled
#           when are more than two.
# The choice window is shown inside the window like Default Message System
# Height: The height of lines can be changed, everything is adjusted to this.
# Above Events: You can draw the window above an event. \p[event]
# Bold and Italic: \b and \i
# Face: A small graphic is shown inside the message \face[file]
# Name Box: Text is shown in a small window above message \name[text]
# -
# Added Features in EX Version
#
# Furigana: Insert small text above a sentence \r[sentence,furigana]
# Font change: Change the font name or font size
#    1. \font[fontname] Change the font name
#    2. \font[fontsize] Change the font size (Integer)
#    3. \font[fontname,fontsize]  Change both the font name or font size
# Conditional Text: Show the text if condition is met (for advanced user
#    1. \if[condition,text] Will show the text if condition is met
#                           (else nothing shown)
#    2. \unless[condition,text] Will show the text if condition is not met
#                               (else nothing shown)
# Game Related: Show Information related to the game
#    1. display name of current map \map
#    2. display name of item, weapon, armor or skill
#        2a. \N[In] = display name of item with id n (note the "I")
#        2b. \N[Wn] = display name of weapon with id n (note the "W")
#        2c. \N[An] = display name of armor with id n (note the "A")
#        2d. \N[Sn] = display name of skill with id n (note the "S")
#        2e. \N[En] = display name of enemies with id n (note the "E")
#        2f. \N[Pn] = display name of event with id n (note the "P")
#    3. display icon of item, weapon, armor or skill
#        3a. \I[In] = display icon of item with id n (note the "I")
#        3b. \I[Wn] = display icon of weapon with id n (note the "W")
#        3c. \I[An] = display icon of armor with id n (note the "A")
#        3d. \I[Sn] = display icon of skill with id n (note the "S")
#    4. display icon and name of item, weapon, armor or skill
#        4a. \I&N[In] = display icon and name of item with id n (note the "I")
#        4b. \I&N[Wn] = display icon and name of weapon with id n (note the "W")
#        4c. \I&N[An] = display icon and name of armor with id n (note the "A")
#        4d. \I&N[Sn] = display icon and name of skill with id n (note the "S)

$scrolling_message_system = true

module Message
  #--------------------------------------------------------------------------
  # * Settings
  #--------------------------------------------------------------------------
  # ~ Font
  FontName = Font.default_name
  FontSize = Font.default_size
  # ~ Size
  Width = 520
  Height = 32
  # ~ Delay
  TextDelay = 1
  Scroll = 30
  Autoclose = 16
  #--------------------------------------------------------------------------
  # * Font
  #--------------------------------------------------------------------------
  def self.font
    Font.new(FontName, FontSize)
  end
end

if $scrolling_message_system

class Game_Temp
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_accessor :input_type
end



class Interpreter
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias slipknot_sms_command_101 command_101
  alias slipknot_sms_command_102 command_102
  alias slipknot_sms_command_103 command_103
  #--------------------------------------------------------------------------
  # * Show Text
  #--------------------------------------------------------------------------
  def command_101
    if false
      return slipknot_sms_command_101
    end
    return false if (temp = $game_temp).message_text
    @message_waiting = true
    temp.message_proc = Proc.new { @message_waiting = false }
    temp.message_text = @list.at(@index).parameters.at(0) + "\n"
    loop do
      com = @list.at(@index + 1)
      if com.code == 401 || com.code == 101
        temp.message_text += com.parameters.at(0) + "\n"
      else
        if com.code == 102
          temp.message_text += "\n\n"
          slipknot_sms_set_choice(com.parameters)
          current_indent = com.indent
          temp.choice_proc = Proc.new { |n| @branch[current_indent] = n }
          @index += 1
        elsif com.code == 103
          @index += 1
          temp.message_text += "\n"
          slipknot_sms_set_inputnumber(com.parameters)
        end
        return true
      end
      @index += 1
    end
  end
  #--------------------------------------------------------------------------
  # * slipknot_sms_set_choice
  #--------------------------------------------------------------------------
  def slipknot_sms_set_choice(parameters)
    if !$choice.nil? && $choice.is_a?(Array)
      parameters[0] = $choice
    end
    $game_temp.choice_max = parameters.at(0).size
    $game_temp.instance_variable_set(:@mes_choices, parameters.at(0))
    $game_temp.choice_cancel_type = parameters.at(1)
  end
  #--------------------------------------------------------------------------
  # * slipknot_sms_set_inputnumber
  #--------------------------------------------------------------------------
  def slipknot_sms_set_inputnumber(parameters)
    $game_temp.num_input_variable_id = parameters.at(0)
    $game_temp.num_input_digits_max = parameters.at(1)
  end
  #--------------------------------------------------------------------------
  # * Show Choices
  #--------------------------------------------------------------------------
  def command_102()  end
  #--------------------------------------------------------------------------
  # * Input Number
  #--------------------------------------------------------------------------
  def command_103()  end
end


class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias slipknot_sms_init initialize
  alias slipknot_sms_refresh refresh
  alias slipknot_sms_update update
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize
    slipknot_sms_init
    @original_height = self.height
    @row_max = 4
    self.height = Message::Height * @row_max + 32
    self.back_opacity = 160
    self.windowskin = windowskin.clone
    self.windowskin.fill_rect(144, 16, 32, 32, Color.new(0, 0, 0, 0))
    @ey = 1.0
    @y = 0
  end
  #--------------------------------------------------------------------------
  # * Opacity
  #--------------------------------------------------------------------------
  def opacity=(val)
    super
    @choices.opacity = val if @choices
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    contents.font = Message.font
    self.height = Message::Height * @row_max + 32
    @x = @y = @ex = @ey = 0
    return if ! (@text = (temp = $game_temp).message_text)
    replace_code
    gold_win |= @text.gsub!(/\\[Gg]/, '')
    if fit |= @text[/\\[Pp]/]
      if @text.sub!(/\\[Pp]\[([-1,-2,-3,-4,0-9]+)\]/, '')
        @event = $1.to_i
        self.height = Message::Height * 2 + 32
      elsif @text.gsub!(/\\[Pp]/, '')
        @event = ev_ac
        self.height = Message::Height * 2 + 32
      end
    end
    lines_size = [0]
    save, @lines = @text.clone, 0
    while @c = @text.slice!(/./m)
      if @c == "\n"
        @lines += 1
        lines_size << 0
        next
      end
      lines_size[@lines] += eval_text(self.contents, true)
    end
    if temp.choice_max > 0
      @c_data = [Bitmap.new(640 - Message::Width/4, Message::Height *
        temp.choice_max), Array.new(temp.choice_max, 0)]
      @c_data.at(0).font = Message.font
      mes_choices = temp.instance_variable_get(:@mes_choices)||['']
      @cond = mes_choices.collect {|s| s.is_a?(Array) ? s[1] : nil }
      @text = mes_choices.collect {|s| s.is_a?(Array) ? s[0] : s }
      @text.each_with_index {|s,i|
        if !@cond.nil? && !@cond[i].nil? && !@cond[i] &&
          mes_choices[i].is_a?(Array) && mes_choices[i][2]
          @text[i] = mes_choices[i][2]
        end}
      @text = @text.join("\n")
      replace_basic_code
      @y = 0
      while @c = @text.slice!(/./m)
        @c_data.at(0).font.color.alpha=!@cond[@y].nil?&&!@cond[@y] ? 100 : 255
        @c_data.at(1)[@y] += eval_text(@c_data.at(0))
      end
      @c_data[1] = @c_data.at(1).max + 8
      @x = @y = 0
    end
    @text = save
    twidth = temp.choice_max > 0 ? @c_data.at(1) + 32 : 0
    #self.width = fit ? lines_size.max + 40 + @ex : Message::Width - twidth
    self.width = [lines_size.max,twidth].max + 40 + @ex if @event
    self.width = Message::Width if !@event
    twidth += self.width
    self.contents = Bitmap.new(self.width - 32, @lines * Message::Height)
    contents.font = Message.font
    if !@event #|| in_battle?
      h2 = self.height / 2
      self.y = in_battle? ? 96 - h2 :
        case $game_system.message_position
        when 0 then 96 - h2
        when 1 then 240 - h2
        when 2 then 384 - h2
        end
      self.x = 320 - self.width / 2
    else
      if in_battle?
        if @event > 0
          spr = spriteset.instance_variable_get(:@enemy_sprites)[@event-1]
        elsif @event < 0
          spr = spriteset.instance_variable_get(:actor_sprites)[(-@event)-1]
        end
        return terminate_message if spr == nil
        sprite = spr
        char_height = sprite.height
        char_width = sprite.width
        fx = sprite.x
        fy = sprite.y - char_height/2
      else
        c = @event > 0 ? $game_map.events[@event] : $game_player
        sprite = RPG::Cache.character(c.character_name,0)
        mx, my = 636 - twidth, 476 - self.height
        ch = [sprite.height / 4 + 4, 48].max
        fx = [[c.screen_x - self.width / 2, 4].max, mx].min
        fy = [[c.screen_y - (ch + self.height), 4].max, my].min
      end
      self.x, self.y = fx, fy
      self.x = [[fx,0].max,640-self.width].min
      self.y = [[fy,0].max,480-self.height].min
    end
    self.opacity = $game_system.message_frame == 0 ? 255 : 0
    if gold_win
      @gold_window = Window_Gold.new
      @gold_window.x = 560 - @gold_window.width
      @gold_window.z = self.z
      if in_battle?
        @gold_window.y = 192
      else
        @gold_window.y = self.y >= 128 ? 32 : 384
      end
      @gold_window.opacity = self.opacity
    end
    if temp.choice_max > 0
      row_max = ((self.height - 32) / Message::Height) - 1
      ch = [row_max - 2,0].max
      x = self.x
      y = self.y + Message::Height * ch + 32
      y = self.y + Message::Height if @lines == 3
      y = self.y if @event
      size = 2
      size = 3 if @lines == 3
      @choices = Window_MesChoices.new(x, y, @c_data,size)
      #@choices.x = self.width/2 - @choices.width/2
      @choices.z = self.z
      @choices.back_opacity = 0
      @choices.opacity = 0
      @choices.visible = false
    end
    return
    if temp.choice_max > 0
      @choices = Window_MesChoices.new(self.x + self.width, self.y, @c_data)
      @choices.z = self.z
      @choices.back_opacity = self.back_opacity
    end
  end
  #--------------------------------------------------------------------------
  # * In Battle?
  #--------------------------------------------------------------------------
  def in_battle?
    return false if $scene.is_a?(Scene_Map)
    return true if $scene.is_a?(Scene_Battle)
  end
  #--------------------------------------------------------------------------
  # * Replace Code
  #--------------------------------------------------------------------------
  def replace_code
    replace_basic_code
    @text.gsub!('\!') { "\003" }
    @text.gsub!('\.') { "\004" }
    @text.gsub!(/\\\%\[(\d+)\]/) { "\011[#$1]" }
    @text.gsub!('\%') { "\011" }
    @text.gsub!("\\#\n") { "" }
  end
  def replace_basic_code
    @text.gsub!(/\\\\/) { "\000" }
    @text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
    @text.gsub!('\$') { $game_party.gold.to_s }
    @text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
       $game_actors[$1.to_i] ? $game_actors[$1.to_i].name : ''
    end
    @text.gsub!(/\\[Cc]\[([0-9]+?)\]/) { "\001[#$1]" }
  end
  #--------------------------------------------------------------------------
  # * Evaluate Text
  #--------------------------------------------------------------------------
  def eval_text(bitmap, read = false)
    case @c
    when "\000"
      @c = '\\'
    when "\001"
      @text.sub!(/\[(\d+)\]/, '')
      return 0 if read
      bitmap.font.color = text_color($1.to_i)
      return 0
    when "\002"
      @text.sub!(/\[(.*?)\]/, '')
      return 24 if read
      y = Message::Height * @y
      bitmap.blt(@ex + @x + 4, y, RPG::Cache.icon($1.to_s),Rect.new(0,0,24,24))
      @x += 24
      return 0
    when "\003"
      return 0 if read
      @stop = true
      return 0
    when "\004"
      return 0 if read
      @wait_count += 10
      return 0
    when "\011"
      @text.sub!(/\[(\d+)\]/, '')
      return 0 if read || $game_temp.num_input_variable_id > 0 ||
                  $game_temp.choice_max > 0
      @autoclose = $1 ? $1.to_i : Message::Autoclose
      return 0
    end
    eval_extra(bitmap)
    return 0 if @c == '' || @c == nil
    if @c == "\n"
      @y += 1
      @x = 0
      return 0
    end
    w = bitmap.text_size(@c).width
    unless read
      y1 = Message::Height
      bitmap.draw_text(@ex + @x + 4, y1 * @y, w, Message::Height, @c)
      @x += w
    end
    return w
  end
  def eval_extra(bitmap)  end
  #--------------------------------------------------------------------------
  # * Variables
  #--------------------------------------------------------------------------
  def ev_ac()  interpreter.instance_variable_get(:@event_id)  end
  def spriteset()  $scene.instance_variable_get(:@spriteset) end
  def interpreter()
    return $game_system.map_interpreter    if !in_battle?
    return $game_system.battle_interpreter if in_battle?
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    if @contents_showing
      super
      y1 = ((self.height - 32) / Message::Height) - 1
      scroll = self.oy < (@y - y1) * Message::Height && @y < @lines
      if scroll
        @ey += Message::Height / Message::Scroll.to_f
        ey = @ey - @ey.floor
        self.oy += @ey.floor
        @ey = ey
      end
      if @text
        if Input.trigger?(Input::C) && @stop
          self.pause = @stop = false
          return
        elsif @stop
          return
        elsif @wait_count > 0
          @wait_count -= 1
          return
        end
        @wait_count = 0
        return if scroll
        if (@c = @text.slice!(/./m))
          eval_text(contents)
          if @stop
            self.pause = true
            return
          end
          @wait_count += Input.press?(Input::C) ? 0 : Message::TextDelay
          @wait_count = 0 if Input.press?(Input::CTRL)
        else
          @text = nil
        end
        return if @text || @autoclose != -1
        if $game_temp.num_input_variable_id > 0
          digits_max = $game_temp.num_input_digits_max
          ch = [y1 - 1,0].max
          x = self.x
          y = self.y + Message::Height * ch + 32
          y = self.y + Message::Height * (@lines-2) + 32 if @lines == 3
          if self.height == Message::Height * 2 + 32 || @lines == 2
            y = self.y + Message::Height * 1
          end
          @input_number_window = Window_InputNumber.new(digits_max)
          @input_number_window.number =
             $game_variables[$game_temp.num_input_variable_id]
          @input_number_window.x = x
          @input_number_window.y = y
          @input_number_window.z = self.z + 10
          @y -= 1
          @ey -= 1.0
        end
        @choices.index, @choices.active,@choices.visible = 0,true,true if @choices
        return
      else
        if @autoclose > 0
          @autoclose -= 1
          return
        elsif @autoclose == 0
          terminate_message
          @autoclose = -1
          return
        end
      end
      if @input_number_window
        @input_number_window.update
        if Input.trigger?(Input::C)
          $game_system.se_play($data_system.decision_se)
          $game_variables[$game_temp.num_input_variable_id] =
                       @input_number_window.number
          $game_map.need_refresh = true
          @input_number_window.dispose
          @input_number_window = nil
          terminate_message
        end
        return
      elsif @choices
        @choices.update
      end
      self.pause = true
      if Input.trigger?(Input::B)
        if $game_temp.choice_max > 0 && $game_temp.choice_cancel_type > 0
          result = $game_temp.choice_cancel_type - 1
          if !@cond.nil? && !@cond[result].nil? && !@cond[result]
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          $game_system.se_play($data_system.cancel_se)
          @choices.visible = false
          if !$choice.nil?
            $choice_result = result
            $choice = nil
          end
          $game_temp.choice_proc.call(result)
          terminate_message
        end
      end
      if Input.trigger?(Input::C)
        if $game_temp.choice_max > 0
          result = @choices.index
          if !@cond.nil? && !@cond[result].nil? && !@cond[result]
            $game_system.se_play($data_system.buzzer_se)
            return
          end
          $game_system.se_play($data_system.decision_se)
          @choices.visible = false
          if !$choice.nil?
            $choice_result = result
            $choice = nil
          end
          $game_temp.choice_proc.call(result)
        end
        terminate_message
      end
      return
    end
    if ! @fade_out && $game_temp.message_text
      @contents_showing = $game_temp.message_window_showing = true
      if @choices
        @choices.visible = false
        @choices.dispose
        @choices = nil
      end
      self.oy = 0
      @stop = false
      @autoclose = -1
      refresh
      @wait_count, self.visible = 0.0, true
      return
    end
    return if ! visible
    @fade_out = true
    self.opacity -= 48
    if self.opacity == 0
      self.visible = @fade_out = false
      if @choices
        @choices.visible = false
        @choices.dispose
        @choices = nil
      end
      $game_temp.message_window_showing = false
    end
  end
end


class Window_MesChoices < Window_Selectable
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(x, y, data,size = 2)
    super(x, y, data.at(1) + 32, size * (h = Message::Height) + 32)
    self.back_opacity = 0
    self.opacity = 0
    @size = size
    self.index, self.active, @item_max = -1, false, $game_temp.choice_max
    self.contents = Bitmap.new(data.at(1), @item_max * h)
    contents.blt(0, 0, data.at(0), Rect.new(0, 0, data.at(1), h * @item_max))
  end
  #--------------------------------------------------------------------------
  # * Update Cursor
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index < 0
      self.cursor_rect.empty
      return
    end
    self.oy = [[@index, @item_max].min - (@size-1), 0].max * Message::Height
    y = @index * Message::Height - self.oy
    cursor_rect.set(0, y, width - 32, Message::Height)
  end
end


class Window_InputNumber < Window_Base
  #--------------------------------------------------------------------------
  # * Initialize
  #--------------------------------------------------------------------------
  def initialize(digits_max)
    case $game_temp.input_type
    when nil,"default"
      @character_array = ["0","1","2","3","4","5","6","7","8","9"]
    when "binary"
      @character_array = ["0","1"]
    when "hexa"
      @character_array = ["0","1","2","3","4","5","6","7","8","9",
                          "A","B","C","D","E","F"]
    when "upcase_letters"
      @character_array = ["A","B","C","D","E","F","G","H","I",
                          "J","K","L","M","N","O","P","Q","R","S",
                          "T","U","V","W","X","Y","Z"," "]
    when "lowercase_letters"
      @character_array = ["a","b","c","d","e","f","g","h","i",
                          "j","k","l","m","n","o","p","q","r","s",
                          "t","u","v","w","x","y","z"," "]
    when "all_letters"
      @character_array = ["A","B","C","D","E","F","G","H","I",
                          "J","K","L","M","N","O","P","Q","R","S",
                          "T","U","V","W","X","Y","Z","a","b","c",
                          "d","e","f","g","h","i","j","k","l","m",
                          "n","o","p","q","r","s","t","u","v","w",
                          "x","y","z"," "]
    when "all_characters"
      @character_array = ["A","B","C","D","E","F","G","H","I",
                          "J","K","L","M","N","O","P","Q","R","S",
                          "T","U","V","W","X","Y","Z","a","b","c",
                          "d","e","f","g","h","i","j","k","l","m",
                          "n","o","p","q","r","s","t","u","v","w",
                          "x","y","z","0","1","2","3","4","5","6",
                          "7","8","9","+","-","*","/","!","#","$",
                          "%","&","@",".",",","-"," "]
    # when...
    end
    @digits_max = digits_max
    @type = $game_temp.input_type || "default"
    $game_temp.input_type = @type
    @letter_array = []
    @digits_max.times{@letter_array.push(0)}
    dummy_bitmap = Bitmap.new(32, 32)
   
    @cursor_width = 8
    for i in 0...@character_array.size
      letter_size = dummy_bitmap.text_size(@character_array[i]).width + 8
      @cursor_width = [@cursor_width, letter_size].max
    end
    dummy_bitmap.dispose
    super(0, 0, @cursor_width * @digits_max + 32+ 4, Message::Height+32)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.z += 9999
    self.opacity = 0
    @index = 0
    refresh
    update_cursor_rect
  end

  def letter(index)
    return @character_array[@letter_array[index]]
  end

  def increase_letter_array(index)
    if @letter_array[index] == (@character_array.size-1)
      @letter_array[index] = 0
    else
      @letter_array[index] += 1
    end
  end

  def decrease_letter_array(index)
    if @letter_array[index] == 0
      @letter_array[index] = (@character_array.size-1)
    else
      @letter_array[index] -= 1
    end
  end

  def update_cursor_rect
    cursor_rect.set(@index * @cursor_width+2, 0, @cursor_width, Message::Height)
  end

  def update
    super
    if Input.repeat?(Input::UP)
      $game_system.se_play($data_system.cursor_se)
      increase_letter_array(@index)
      refresh
    end
    if Input.repeat?(Input::DOWN)
      $game_system.se_play($data_system.cursor_se)
      decrease_letter_array(@index)
      refresh
    end
    if Input.repeat?(Input::RIGHT)
      if @digits_max >= 2
        $game_system.se_play($data_system.cursor_se)
        @index = (@index + 1) % @digits_max
      end
    end
    if Input.repeat?(Input::LEFT)
      if @digits_max >= 2
        $game_system.se_play($data_system.cursor_se)
        @index = (@index + @digits_max - 1) % @digits_max
      end
    end
    if Input.trigger?(Input::B)
      @letter_array[@index] = 0
      refresh
    end
    update_cursor_rect
  end

  def refresh
    contents.clear
    contents.font.color = normal_color
    (0...@digits_max).each {|i|
      s = i * @cursor_width + 4
      contents.draw_text(s,0,@cursor_width,Message::Height,letter(i),1) }
  end

  def number
    @number = []
    (0...@digits_max).each {|i| @number.push(letter(i))}
    integer = @number.find_all {|i| !("0".."9").to_a.include?(i)}.size == 0
    @number = @number.join
    return integer ? @number.to_i : @number
  end

  def number=(number)
    if number != 0
      num = number.to_s
      @array = num.scan(/./)
      if @array.size != @digits_max
        begin
          @array.unshift(@character_array[0])
        end until @array.size == @digits_max
      end
      (0...@digits_max).each {|i|
        (0..@character_array.size).each {|j|
           @letter_array[i] = j if @array[i] == @character_array[j]
         }}
    end
    refresh
  end
end

#==============================================================
# ** Scrolling Message System / Name Box
#------------------------------------------------------------------------------
# Slipknot (http://www.creationasylum.net/)
# Version 1.1
# March 13, 2007
#==============================================================
class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias slipknot_sms_nb_refresh refresh
  alias slipknot_sms_nb_repcod replace_code
  alias slipknot_sms_nb_termmes terminate_message
  #--------------------------------------------------------------------------
  # * Terminate Message
  #--------------------------------------------------------------------------
  def terminate_message
    slipknot_sms_nb_termmes
    if @name_box
      @name_box.dispose
      @name_box = nil
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    slipknot_sms_nb_refresh
    if @name_text
      @name_box = Window_MessageNameBox.new(x, y - 16, @name_text)
      @name_box.back.opacity = 0 if $game_system.message_frame == 1
      @name_box.z = self.z
      @name_text = nil
    end
  end
  #--------------------------------------------------------------------------
  # * Replace Code
  #--------------------------------------------------------------------------
  def replace_code
    slipknot_sms_nb_repcod
    @text.gsub!(/\\[Nn]ame\[(.*?)\]/) { @name_text = $1; '' }
  end
end

class Window_MessageNameBox < Window_Base
  #--------------------------------------------------------------------------
  # * Public Instance Variables
  #--------------------------------------------------------------------------
  attr_reader :back
  #--------------------------------------------------------------------------
  # * Object Initialization
  #--------------------------------------------------------------------------
  def initialize(x, y, text)
    dumb = Bitmap.new(160, 32)
    dumb.font = Message.font
    color = nil
    text.sub!(/\\[Cc](\d)/) { color = text_color($1.to_i); '' }
    size = dumb.text_size(text).width
    dumb.dispose
    @back = Window_Base.new(x, y, size + 12, 32)
    @back.z = 9998
    super(x - 10, y - 11, size + 32, 54)
    self.z = 9999
    self.opacity = 0
    self.contents = Bitmap.new(size, 22)
    contents.font = Message.font
    contents.font.color = color if color
    contents.draw_text(0, 0, size, 22, text)
  end
  #--------------------------------------------------------------------------
  # * Dispose
  #--------------------------------------------------------------------------
  def dispose
    @back.dispose
    @back = nil
    super
  end
end
#==============================================================
# ** Scrolling Message System / Face
#------------------------------------------------------------------------------
# Slipknot (http://www.creationasylum.net/)
# Version 1.0
# May 13, 2007
#==============================================================

class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias slipknot_sms_f_refresh refresh
  alias slipknot_sms_f_repcod replace_code
  alias slipknot_sms_f_termmes terminate_message
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def terminate_message
    slipknot_sms_f_termmes
    if @face
      @face.dispose
      @face = nil
    end
  end
  #--------------------------------------------------------------------------
  # * Refresh
  #--------------------------------------------------------------------------
  def refresh
    slipknot_sms_f_refresh
    if @face_name
      @face = Sprite.new
      @face.x = self.x + 16
      @face.y = self.y + 16
      @face.z = self.z + 1
      if @face_name.to_i > 0
        actor = $game_actors[@face_name.to_i]
        return @face_name = nil if actor.nil?
        bitmap = RPG::Cache.windowskin("Actor#{actor.id}_HFace") rescue
                RPG::Cache.windowskin("#{actor.name}_HFace") rescue
                RPG::Cache.picture("Actor#{actor.id}_HFace") rescue
                RPG::Cache.picture("#{actor.name}_HFace")
        size = [bitmap.width,bitmap.height].min
        rect = Rect.new(0,0,size,size)
      else
        bitmap = RPG::Cache.picture(@face_name)
        rect = Rect.new(0,0,bitmap.width,bitmap.height)
      end
      @face.bitmap = Bitmap.new(60,60)
      x = 30 - rect.width / 2
      y = 30 - rect.height / 2
      x, y = 0,0 if false
      @face.bitmap.blt(x, y, bitmap, rect)
      @face_name = nil
    end
  end
  #--------------------------------------------------------------------------
  # * Replace Code
  #--------------------------------------------------------------------------
  def replace_code
    slipknot_sms_f_repcod
    @text.sub!(/\\[Ff]ace\[(.*?)\]/) do
      @face_name = $1
      @ex += Message::Height * 2 + 4
      ''
    end
  end
end
#==============================================================
# ** Scrolling Message System / Bold & Italic
#------------------------------------------------------------------------------
# Slipknot (http://www.creationasylum.net/)
# Version 1.0
# May 13, 2007
#==============================================================

class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias slipknot_sms_bi_evalextra eval_extra
  alias slipknot_sms_bi_repbcod replace_basic_code
  #--------------------------------------------------------------------------
  # * Eval Extra
  #--------------------------------------------------------------------------
  def eval_extra(bitmap)
    slipknot_sms_bi_evalextra(bitmap)
    if @c == "\005"
      bitmap.font.bold = !bitmap.font.bold
      @c = ''
    end
    if @c == "\006"
      bitmap.font.italic = !bitmap.font.italic
      @c = ''
    end
  end
  #--------------------------------------------------------------------------
  # * Replace Basic Code
  #--------------------------------------------------------------------------
  def replace_basic_code
    slipknot_sms_bi_repbcod
    @text.gsub!('\\b', "\005")
    @text.gsub!('\\i', "\006")
  end
end

#==============================================================
# ** Scrolling Message System / Furigana
#------------------------------------------------------------------------------
# LiTTleDRAgo (http://littledrago.blogspot.com/)
# Version 1.0
# June 27, 2013
#==============================================================

class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias drg3x4dkc2dx_evalextra eval_extra
  alias drg3x4dkc2dx_evaltext eval_text
  alias drg3x4dkc2dx_repbcod replace_basic_code
  #--------------------------------------------------------------------------
  # * Eval Extra
  #--------------------------------------------------------------------------
  def eval_extra(bitmap)
    drg3x4dkc2dx_evalextra(bitmap)
    if @c == "\031"
      @text.sub!(/\[(.*?),(.*?)\]/, '')
      text = [$1,$2,bitmap.font.size]
      bitmap.font.size -= 6
      text << bitmap.text_size(text[1])
      @furigana = Bitmap.new(text[3].width,text[3].height)
      @furigana.font = bitmap.font.dup
      @furigana.draw_text(0,0,text[3].width,text[3].height,text[1])
      bitmap.font.size = text[2]
      text << bitmap.text_size(text[0])
      x1 = [@ex + @x + (text[4].width/2 - text[3].width/2),0].max
      y1 = Message::Height
      x2 = [x1,self.width-text[3].width].min
      y2 = y1 * @y - y1/10
      @furigana_position = [x2,y2]
      @c = text[0]
    end
  end
  #--------------------------------------------------------------------------
  # * Eval Extra
  #--------------------------------------------------------------------------
  def eval_text(*args)
    result = drg3x4dkc2dx_evaltext(*args)
    if @furigana && !@furigana.disposed?
      x,y = @furigana_position
      args[0].blt(x, y,@furigana,@furigana.rect) if !args[1]
      @furigana.dispose
    end
    return result
  end
  #--------------------------------------------------------------------------
  # * Replace Basic Code
  #--------------------------------------------------------------------------
  def replace_basic_code
    drg3x4dkc2dx_repbcod
    @text.gsub!(/\\[Rr]\[(.*?),(.*?)\]/) { "\031[#$1,#$2]" }
  end
end

#==============================================================
# ** Scrolling Message System / Condition Text
#------------------------------------------------------------------------------
# LiTTleDRAgo (http://littledrago.blogspot.com/)
# Version 1.0
# June 27, 2013
#==============================================================

class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias drg3x4dkc2dy_repbcod replace_basic_code
  #--------------------------------------------------------------------------
  # * Replace Basic Code
  #--------------------------------------------------------------------------
  def replace_basic_code
    drg3x4dkc2dy_repbcod
    @text.gsub!(/\\[Ii][Ff]\[(.*?),(.*?)\]/) {
          interpreter.send(:eval,"#$1") ? "#$2" : ""}
    @text.gsub!(/\\[Uu][Nn][Ll][Ee][Ss][Ss]\[(.*?),(.*?)\]/) {
          interpreter.send(:eval,"#$1") ? "" : "#$2"}
  end
end


#==============================================================
# ** Scrolling Message System / Font Name & Size
#------------------------------------------------------------------------------
# LiTTleDRAgo (http://littledrago.blogspot.com/)
# Version 1.0
# July 04, 2013
#==============================================================

class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias drg3x4dkc2dz_evalextra eval_extra
  alias drg3x4dkc2dz_repbcod replace_basic_code
  #--------------------------------------------------------------------------
  # * Eval Extra
  #--------------------------------------------------------------------------
  def eval_extra(bitmap)
    drg3x4dkc2dz_evalextra(bitmap)
    if @c == "\023"
      @text.sub!(/\[(.*?)\]/,  '')
      font = $1
      if font.to_i <= 0
        bitmap.font.name = font
      else
        bitmap.font.size = font.to_i
      end
      @c = ''
    end
  end
  #--------------------------------------------------------------------------
  # * Replace Basic Code
  #--------------------------------------------------------------------------
  def replace_basic_code
    drg3x4dkc2dz_repbcod
    @text.gsub!(/\\[Ff][Oo][Nn][Tt]\[(.*?),([0-9]+)\]/) { "\\font[#$1]\\font[#$2]" }
    @text.gsub!(/\\[Ff][Oo][Nn][Tt]\[(.*?)\]/) { "\023[#$1]" }
  end
end


#==============================================================
# ** Scrolling Message System / Game Related
#------------------------------------------------------------------------------
# LiTTleDRAgo (http://littledrago.blogspot.com/)
# Version 1.0
# July 04, 2013
#==============================================================

class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  # * Alias Listing
  #--------------------------------------------------------------------------
  alias drg3x4dkc2ea_repbcod replace_basic_code
  #--------------------------------------------------------------------------
  # * Replace Basic Code
  #--------------------------------------------------------------------------
  def replace_basic_code
    @text.gsub!(/\\[Ii]&[Nn]\[([EeIiWwAaSsPp])([0-9]+)\]/) {
       entity = "#$1#$2"
       "\\i[#{entity}] \\n[#{entity}]"}
    @text.gsub!(/\\[Ii]\[([EeIiWwAaSsPp])([0-9]+)\]/) {
        entity = case $1.downcase
          when 'i' then $data_items[$2.to_i]
          when 'w' then $data_weapons[$2.to_i]
          when 'a' then $data_armors[$2.to_i]
          when 's' then $data_skills[$2.to_i]
          end
        entity != nil ? "\002[#{entity.icon_name}]" : '' }
    @text.gsub!(/\\[Ii]\[(.*?)\]/) { "\002[#$1]" }
    @text.gsub!(/\\[Nn]\[([EeIiWwAaSsPp])([0-9]+)\]/) {
      entity = case $1.downcase
        when 'e' then $data_enemies[$2.to_i]
        when 'i' then $data_items[$2.to_i]
        when 'w' then $data_weapons[$2.to_i]
        when 'a' then $data_armors[$2.to_i]
        when 's' then $data_skills[$2.to_i]
        when 'p' then $game_map.events[$2.to_i]
      end
      entity != nil ? entity.name : ''   }
    @text.gsub!(/\\[$]\[([EeIiWwAaSsPp])([0-9]+)\]/) {
        e = case $1.downcase
          when 'i' then $data_items[$2.to_i]
          when 'w' then $data_weapons[$2.to_i]
          when 'a' then $data_armors[$2.to_i]
          when 's' then $data_skills[$2.to_i]
          end
        e != nil ? e.is_a?(RPG::Skill) ? e.sp_cost : e.price : '' }
    @text.gsub!(/\\[Mm][Aa][Pp]/) {
        load_data('Data/MapInfos.rxdata')[$game_map.map_id].name }
    drg3x4dkc2ea_repbcod
  end
end
end


What I'd like to have done
-Face graphic size up to 96x96 pixels.
-The choices window to properly show more than two choices, it doesn't seem to work for some reason.

Scripts I'm using (in this order)
Scrolling Message System EX, Brewmeister's Empty Containers, Law's Custom Shop Screen, Weapon Specific Skills Script by TerreAqua, Game guy's Skill Shop, KK20's Organized Quest System, STCMS - Hybrid Edition and Blizz ABS.