| 
 Help iwth script (RGSS Player crash) - Whisper -  06-17-2017
 
 Hello :)
 I was trying to "make" script that would show menu on the left side of the map with specified items to use. (by copying and little modyfying a part from 1-Scene Custom Menu System by LegACy)
 It supposed to work like for example: "Hero standing in front of mystery box. Witch item You want to use on this box" and now menu appaears, hero is choosing item and bla bla bla. Doesn't matters. The point is:
 After choosing item or pushing B(ESC) everything is ok... for a while. After that:
 
 
 ![[Image: xxx.png]](https://image.ibb.co/ecNX7k/xxx.png) It says that RGSS Player stopped working
 
 Anyone knows how to modify that?
 
 
 Code: #=============================================================# Scene Zadaniowe
 
 #===========================================================================================================================================
 # Based on Window_Item, Wingow_Help & 1-Scene Custom Menu by LegACy
 #------------------------------------------------------------------------------
 #  This window displays items in possession on the item and battle screens.
 #==============================================================================
 
 class Window_Zada < Window_Selectable
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
 super(0, 64, 220, 416)
 self.opacity = 200
 @column_max = 1
 @attribute = $data_system.elements[21] # Should be @attribute = LegACy::ITEMS[2] but then it wont wtart without 1-Scene Custom Menu by LegACy
 refresh
 self.index = 0
 # If in battle, move window to center of screen
 # and make it semi-transparent
 end
 #--------------------------------------------------------------------------
 # * Get Item
 #--------------------------------------------------------------------------
 def item
 return @data[self.index]
 end
 #--------------------------------------------------------------------------
 # * Updates Window With New Item Type
 #     attribute : new item type
 #--------------------------------------------------------------------------
 def update_item(attribute)
 @attribute = attribute
 refresh
 end
 
 #--------------------------------------------------------------------------
 # * Refresh
 #--------------------------------------------------------------------------
 def refresh
 if self.contents != nil
 self.contents.dispose
 self.contents = nil
 end
 @data = []
 # Add item
 for i in 1...$data_items.size
 if $game_party.item_number(i) > 0 and
 $data_items[i].element_set.include?(@attribute)
 @data.push($data_items[i])
 end
 end
 # Also add weapons and armors
 for i in 1...$data_weapons.size
 if $game_party.weapon_number(i) > 0 and
 $data_weapons[i].element_set.include?(@attribute)
 @data.push($data_weapons[i])
 end
 end
 for i in 1...$data_armors.size
 if $game_party.armor_number(i) > 0 and
 $data_armors[i].guard_element_set.include?(@attribute)
 @data.push($data_armors[i])
 end
 end
 # If item count is not 0, make a bit map and draw all items
 @item_max = @data.size
 if @item_max > 0
 self.contents = Bitmap.new(width - 32, row_max * 32)
 for i in 0...@item_max
 draw_item(i)
 end
 end
 end
 #--------------------------------------------------------------------------
 # * Draw Item
 #     index : item number
 #--------------------------------------------------------------------------
 def draw_item(index)
 item = @data[index]
 case item
 when RPG::Item
 number = $game_party.item_number(item.id)
 when RPG::Weapon
 number = $game_party.weapon_number(item.id)
 when RPG::Armor
 number = $game_party.armor_number(item.id)
 end
 if item.is_a?(RPG::Item) and
 $game_party.item_can_use?(item.id)
 self.contents.font.color = normal_color
 else
 self.contents.font.color = disabled_color
 end
 x = 4 + index % 1 * (208 + 32)
 y = index / 1 * 32
 rect = Rect.new(x, y, self.width / @column_max - 32, 32)
 self.contents.font.size = 15
 self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
 bitmap = RPG::Cache.icon(item.icon_name)
 opacity = self.contents.font.color == normal_color ? 255 : 128
 self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24), opacity)
 self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
 self.contents.draw_text(x + 150, y, 16, 32, ":", 1)
 self.contents.draw_text(x + 146, y, 24, 32, number.to_s, 2)
 end
 #--------------------------------------------------------------------------
 # * Help Text Update
 #--------------------------------------------------------------------------
 def update_help
 @help_window.set_text(self.item == nil ? "" : self.item.description)
 end
 end
 
 #==============================================================================
 # ** Window_Zada2 (Help)
 #------------------------------------------------------------------------------
 #  This window shows skill and item explanations along with actor status.
 #==============================================================================
 
 class Window_Zada2 < Window_Base
 #--------------------------------------------------------------------------
 # * Object Initialization
 #--------------------------------------------------------------------------
 def initialize
 super(0, 0, 640, 64)
 self.contents = Bitmap.new(width - 32, height - 32)
 self.opacity = 200
 end
 #--------------------------------------------------------------------------
 # * Set Text
 #  text  : text string displayed in window
 #  align : alignment (0..flush left, 1..center, 2..flush right)
 #--------------------------------------------------------------------------
 def set_text(text, align = 0)
 # If at least one part of text and alignment differ from last time
 if text != @text or align != @align
 # Redraw text
 self.contents.clear
 self.contents.font.size = 18
 self.contents.font.color = normal_color
 self.contents.draw_text(4, 0, self.width - 40, 32, text, align)
 @text = text
 @align = align
 @actor = nil
 end
 self.visible = true
 end
 #--------------------------------------------------------------------------
 # * Set Actor
 #     actor : status displaying actor
 #--------------------------------------------------------------------------
 def set_actor(actor)
 if actor != @actor
 self.contents.clear
 draw_actor_name(actor, 4, 0)
 draw_actor_state(actor, 140, 0)
 draw_actor_hp(actor, 284, 0)
 draw_actor_sp(actor, 460, 0)
 @actor = actor
 @text = nil
 self.visible = true
 end
 end
 #--------------------------------------------------------------------------
 # * Set Enemy
 #     enemy : name and status displaying enemy
 #--------------------------------------------------------------------------
 def set_enemy(enemy)
 text = enemy.name
 state_text = make_battler_state_text(enemy, 112, false)
 if state_text != ""
 text += "  " + state_text
 end
 set_text(text, 1)
 end
 end
 
 
 #==============================================================================
 # ** Scene_Zada
 #------------------------------------------------------------------------------
 #  This class performs item screen processing.
 #==============================================================================
 
 class Scene_Zada
 #--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
 # Make help window, item window
 @help_window = Window_Zada2.new
 @item_window = Window_Zada.new
 # Associate help window
 @item_window.help_window = @help_window
 # Make target window (set to invisible / inactive)
 @target_window = Window_Target.new
 @target_window.visible = false
 @target_window.active = false
 @spriteset = Spriteset_Map.new
 # Execute transition
 Graphics.transition
 # Main loop
 loop do
 # Update game screen
 Graphics.update
 # Update input information
 Input.update
 # Frame update
 update
 # Abort loop if screen is changed
 if $scene != self
 break
 end
 end
 # Prepare for transition
 Graphics.freeze
 # Dispose of windows
 @help_window.dispose
 @item_window.dispose
 @target_window.dispose
 end
 #--------------------------------------------------------------------------
 # * Frame Update
 #--------------------------------------------------------------------------
 def update
 # Update windows
 @help_window.update
 @item_window.update
 @target_window.update
 # If item window is active: call update_item
 if @item_window.active
 update_item
 return
 end
 # If target window is active: call update_target
 if @target_window.active
 update_target
 return
 end
 end
 #--------------------------------------------------------------------------
 # * Frame Update (when item window is active)
 #--------------------------------------------------------------------------
 def update_item
 # If B button was pressed
 if Input.trigger?(Input::B)
 # Play cancel SE
 $game_system.se_play($data_system.cancel_se)
 # Switch to item command window
 @item_window.active = false
 @target_window.visible = false
 @target_window.active = false
 Graphics.update
 $scene = Scene_Map.new
 #   return
 end
 # If C button was pressed
 if Input.trigger?(Input::C)
 # Get currently selected data on the item window
 @item = @item_window.item
 # If not a use item
 unless @item.is_a?(RPG::Item)
 # Play buzzer SE
 $game_system.se_play($data_system.buzzer_se)
 return
 end
 # If it can't be used
 unless $game_party.item_can_use?(@item.id)
 # Play buzzer SE
 $game_system.se_play($data_system.buzzer_se)
 return
 end
 # Play decision SE
 $game_system.se_play($data_system.decision_se)
 # If effect scope is an ally
 if @item.scope >= 3
 # Activate target window
 @item_window.active = false
 @target_window.x = (@item_window.index + 1) % 2 * 304
 @target_window.visible = true
 @target_window.active = true
 # Set cursor position to effect scope (single / all)
 if @item.scope == 4 || @item.scope == 6
 @target_window.index = -1
 else
 @target_window.index = 0
 end
 # If effect scope is other than an ally
 else
 # If command event ID is valid
 if @item.common_event_id > 0
 # Command event call reservation
 $game_temp.common_event_id = @item.common_event_id
 # 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)
 # Draw item window item
 @item_window.draw_item(@item_window.index)
 end
 # Switch to map screen
 $scene = Scene_Map.new
 return
 end
 end
 return
 end
 end
 #--------------------------------------------------------------------------
 # * 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)
 # Redraw item window item
 @item_window.draw_item(@item_window.index)
 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
 
 RE: Help iwth script (RGSS Player crash) - DerVVulfman -  06-17-2017
 
 On examination, nothing in your code appears to be any different than what I would use.  Heck, I go BEYOND this code at times.
 
 Is there a chance that you're using a demo from another person's project?  And thus, use the Game.Exe or have a Game.Ini which is asking you to use an RGSS**.dll you do not use?  If so, try a fresh project and see what happens.
 
 
 RE: Help iwth script (RGSS Player crash) - LiTTleDRAgo -  06-17-2017
 
 
 Code: class Scene_Zada#--------------------------------------------------------------------------
 # * Main Processing
 #--------------------------------------------------------------------------
 def main
 # Make help window, item window
 @help_window = Window_Zada2.new
 @item_window = Window_Zada.new
 # Associate help window
 @item_window.help_window = @help_window
 # Make target window (set to invisible / inactive)
 @target_window = Window_Target.new
 @target_window.visible = false
 @target_window.active = false
 @spriteset = Spriteset_Map.new
 # Execute transition
 Graphics.transition
 # Main loop
 loop do
 # Update game screen
 Graphics.update
 # Update input information
 Input.update
 # Frame update
 update
 # Abort loop if screen is changed
 if $scene != self
 break
 end
 end
 # Prepare for transition
 Graphics.freeze
 # Dispose of windows
 @help_window.dispose
 @item_window.dispose
 @target_window.dispose
 @spriteset.dispose # <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
 end
 end
 
 RE: Help iwth script (RGSS Player crash) - Whisper -  06-17-2017
 
 @DerVVulfman
 No, its my project. I've tryied few things before and everything failed. However it worked on "plain project". But it doesn't matters anymore because...
 @LiTTleDRAgo
 You found a solutnion! 1 000 000 points for You, thank You so much :)
 
 Thanks for helping me guys i really apreciate it :) You da real MVP :)
 
 
 
 |