![]() |
|
[XP] Skrypt "Widoczny Ekwipunek" - błąd z saveload screenem - Wersja do druku +- Ultima Forum (https://forum.ultimateam.pl) +-- Dział: RPG Maker (/Forum-RPG-Maker) +--- Dział: Wsparcie (/Forum-Wsparcie) +--- Wątek: [XP] Skrypt "Widoczny Ekwipunek" - błąd z saveload screenem (/Thread-XP-Skrypt-Widoczny-Ekwipunek-b%C5%82%C4%85d-z-saveload-screenem) |
Skrypt "Widoczny Ekwipunek" - błąd z saveload screenem - Stranger141 - 17-06-15 15:38 Kiedy wchodzę do screenu wczytywania zapisów gry z poziomu ekranu powitalnego (Title) i próbuję z niego wyjść (nacisnąć Esc) pokazuje mi się taki błąd: Spoiler: (Otwórz) http://i.imgur.com/FRsUr4E.png?1Spoiler: (Otwórz) #======================================= # ** Visual_Equipment Re-Edited (version Kappa) #------------------------------------------------------------------------------ # Written by Rataime # New Edits by DerVVulfman # February 10, 2008 #------------------------------------------------------------------------------ # #------------------------------------------------------------------------------ # Revisions to note: # 1) Added formatted headers and comments throughout the script. # 2) Encapsulated the working code in a Visual Equipment module. # 3) Set the equipment array into an instance value to lower resource costs. # 4) Discovered a 'nil' $game_party bug. Added 'return if...' statements. # 5) Removed unnecessary Window_SaveFile edit. # 6) Interpreter routine for 'Change Equipment' now aliased. # 7) Interpreter routine for 'Change Equipment' now changes visible equipment. # 8) Support for 'Change Party Members' now works, even w/ Large Party systems. # 9) 'Change Equipment' now compatible with Fukuyama's Train Actor script. # 10) System should now be usable with or without RMXP SDK. #------------------------------------------------------------------------------ # ** Changing party members or equipment while still visible on the map will # ** force the map to refresh, giving a slight pause. #========================================== #========================================== # ** module Visual Equipment #------------------------------------------------------------------------------ # This module handles the image name and equipment drawing process. #========================================== module Visual_Equipment module_function #-------------------------------------------------------------------------- # * Update Visual Equipment #-------------------------------------------------------------------------- def equip_update @visual_equipment = Array.new for i in 0..$game_party.actors.size @visual_equipment[i+1] = [] end #========================================== # ** C O N F I G U R A T I O N S Y S T E M ** # #========================================== # # Syntax to set weapons or armors in this script are as follows: # add_weapon_sprite(weaponID, characterset) # -or- add_armor_sprite(armorID, characterset) # # The ID number is the same as the ID number in the database. # The charactersets are the extra graphics for the weapon/armor that is # stored in the 'Graphics\Characterset' folder of your project. # WEAPON LISTINGS add_weapon_sprite(IDB, "GrafBr") # ARMOR LISTINGS add_armor_sprite( IDZ, "GrafZb") #========================================== # **** E N D O F C O N F I G U R A T I O N S Y S T E M **** # #========================================== #------------------------------------------------------------------------ # * Visual Equipment Functions #------------------------------------------------------------------------ RPG::Cache.clear return if $game_party == nil for i in 0...$game_party.actors.size for img in @visual_equipment[i+1] bitmap = RPG::Cache.character($game_party.actors[i].character_name, $game_party.actors[i].character_hue) if img!=true and img!=false add_equip(bitmap,img,i) end end end end #-------------------------------------------------------------------------- # * Add Equipment # sprite : Original sprite bitmap # to_add : Equipment characterset # character : Member in party #-------------------------------------------------------------------------- def add_equip(sprite, to_add, character) return if $game_party == nil bmp = Sprite.new bmp.visible = false bmp.bitmap = RPG::Cache.character(to_add, $game_party.actors[character].character_hue) color = bmp.bitmap.get_pixel(0, 0) x = sprite.width y = sprite.height if @visual_equipment[0] x = x/4 y = y/4 end for i in 0..x for j in 0..y color_get = bmp.bitmap.get_pixel(i, j) if color_get != color sprite.set_pixel(i, j ,color_get) end end end bmp = nil end #-------------------------------------------------------------------------- # * Add Weapon Sprite # id : Weapon ID # sprite : Weapon characterset #-------------------------------------------------------------------------- def add_weapon_sprite(id, sprite) return if $game_party == nil for i in 0...$game_party.actors.size if $game_party.actors[i].weapon_id == id @visual_equipment[i+1].push(sprite) end end end #-------------------------------------------------------------------------- # * Add Armor Sprite # id : Armor ID # sprite : Armor characterset #-------------------------------------------------------------------------- def add_armor_sprite(id, sprite) return if $game_party == nil for i in 0...$game_party.actors.size if $game_party.actors[i].armor1_id == id or $game_party.actors[i].armor2_id == id or $game_party.actors[i].armor3_id == id or $game_party.actors[i].armor4_id == id @visual_equipment[i+1].push(sprite) end end end end #========================================== # ** Game_Temp #------------------------------------------------------------------------------ # This class handles temporary data that is not included with save data. # Refer to "$game_temp" for the instance of this class. #========================================== class Game_Temp #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :visual_transfer # Equipment changed in field switch #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- alias visual_initialize initialize def initialize # Perform the original call visual_initialize @visual_transfer = false # Equipment changed in field end end #========================================== # ** Scene_Equip #------------------------------------------------------------------------------ # This class performs equipment screen processing. #========================================== class Scene_Equip #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias visual_update_right update_right #-------------------------------------------------------------------------- # * Frame Update (when right window is active) #-------------------------------------------------------------------------- def update_right # If B button was pressed if Input.trigger?(Input::B) # Update with the equipment Visual_Equipment.equip_update # Play cancel SE $game_system.se_play($data_system.cancel_se) # Switch to menu screen $scene = Scene_Menu.new(2) return end # Perform the original call visual_update_right end end #========================================== # ** Game_Player #------------------------------------------------------------------------------ # This class handles the player. Its functions include event starting # determinants and map scrolling. Refer to "$game_player" for the one # instance of this class. #========================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias visual_update update #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Do not perform during equipment transfer return if $game_temp.visual_transfer == true # Perform the original call visual_update end end #========================================== # ** Interpreter #------------------------------------------------------------------------------ # This interpreter runs event commands. This class is used within the # Game_System class and the Game_Event class. #========================================== class Interpreter #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias visual_command_129 command_129 alias visual_command_319 command_319 #-------------------------------------------------------------------------- # * Change Party Member #-------------------------------------------------------------------------- def command_129 # Perform the original call visual_command_129 # Update with the equipment Visual_Equipment.equip_update # Continue return true end #-------------------------------------------------------------------------- # * Change Equipment #-------------------------------------------------------------------------- def command_319 # Perform the original call visual_command_319 # Update with the equipment Visual_Equipment.equip_update # Turns the transfer system on $game_temp.visual_transfer = true # Switch to map screen $scene = Scene_Map.new # Continue return true end end #========================================== # ** Scene_Map #------------------------------------------------------------------------------ # This class performs map screen processing. #========================================== class Scene_Map #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias visual_update update #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update # Perform the original call visual_update # Turns equipment transfer system off $game_temp.visual_transfer = false if $game_temp.visual_transfer == true end end #========================================== # ** Game_Character #------------------------------------------------------------------------------ # This class deals with characters. It's used as a superclass for the # Game_Player and Game_Event classes. #========================================== class Game_Character #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :character_hue end #========================================== # ** Game_Actor #------------------------------------------------------------------------------ # This class handles the actor. It's used within the Game_Actors class # ($game_actors) and refers to the Game_Party class ($game_party). #========================================== class Game_Actor < Game_Battler #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias visual_setup setup #-------------------------------------------------------------------------- # * Setup # actor_id : actor ID #-------------------------------------------------------------------------- def setup(actor_id) # Perform the original call visual_setup(actor_id) @character_hue = (@character_hue+1)%256 end end #========================================== # ** Scene_Load #---------------------------------------------------------------------------- # This class performs load screen processing. #========================================== class Scene_Load < Scene_File #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias visual_read_save_data read_save_data alias visual_on_cancel on_cancel #-------------------------------------------------------------------------- # * Cancel Processing #-------------------------------------------------------------------------- def on_cancel # Update with the equipment Visual_Equipment.equip_update # Perform the original call visual_on_cancel end #-------------------------------------------------------------------------- # * Read Save Data # file : file object for reading (opened) #-------------------------------------------------------------------------- def read_save_data(file) # Perform the original call visual_read_save_data(file) # Update with the equipment Visual_Equipment.equip_update end end #========================================== # ** Scene_Save #------------------------------------------------------------------------------ # This class performs save screen processing. #========================================== class Scene_Save < Scene_File #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias visual_on_decision on_decision alias visual_on_cancel on_cancel #-------------------------------------------------------------------------- # * Cancel Processing #-------------------------------------------------------------------------- def on_cancel # Update with the equipment Visual_Equipment.equip_update # Perform the original call visual_on_cancel end #-------------------------------------------------------------------------- # * Decision Processing #-------------------------------------------------------------------------- def on_decision(file) # Update with the equipment Visual_Equipment.equip_update # Perform the original call visual_on_decision(file) end end #========================================== # ** Scene_Title #------------------------------------------------------------------------------ # This class performs title screen processing. #========================================== class Scene_Title #-------------------------------------------------------------------------- # * Alias Listings #-------------------------------------------------------------------------- alias visual_command_new_game command_new_game #-------------------------------------------------------------------------- # * Command: New Game #-------------------------------------------------------------------------- def command_new_game # Perform the original call visual_command_new_game # Update with the equipment Visual_Equipment.equip_update end end RE: Skrypt "Widoczny Ekwipunek" - błąd z loading screenem - Adrapnikram - 17-06-15 16:06 Nie widać błędu :( RE: Skrypt "Widoczny Ekwipunek" - błąd z loading screenem - Avaron - 17-06-15 16:40 Błąd jest zapewne z tą linijką :) for i in 0..$game_party.actors.size o roziwązanie pisz do Ayene :) RE: Skrypt "Widoczny Ekwipunek" - błąd z saveload screenem - Mateusz SSJ8 - 19-06-15 07:04 Z jakiegoś powodu wartość zmiennej "$game_party" to nil, a nie obiekt klasy "Game_Party". Przewertuj wszystkie skrypty, jakich używasz. Może w rozruchu gry nie ma "$game_party = Game_Party.new". Ewentualnie znajdź linijkę "$game_party = nil" i wykasuj ją. RE: Skrypt "Widoczny Ekwipunek" - błąd z saveload screenem - Stranger141 - 19-06-15 11:47 Może ktoś to jaśniej wyjaśnić? Skrypt macie u góry. To naprawdę dziwny bug, ale wypadałoby, żeby jakoś go naprawić. RE: Skrypt "Widoczny Ekwipunek" - błąd z saveload screenem - Avaron - 19-06-15 14:25 jaśniej się nie da RE: Skrypt "Widoczny Ekwipunek" - błąd z saveload screenem - Amelanduil - 19-06-15 18:24 Stranger141 napisał(a):Może ktoś to jaśniej wyjaśnić? Skrypt macie u góry. To naprawdę dziwny bug, ale wypadałoby, żeby jakoś go naprawić.Zrób to co ci Mateusz sugerował może najpierw... RE: Skrypt "Widoczny Ekwipunek" - błąd z saveload screenem - ShiroĒsu - 22-06-15 08:31 Stranger141 napisał(a):Może ktoś to jaśniej wyjaśnić? Skrypt macie u góry. To naprawdę dziwny bug, ale wypadałoby, żeby jakoś go naprawić.Jeżeli jesteś tak oporny w skryptach to może zrezygnuj z tego na ekwipunek i zrób to na zdarzemiach. Z tego co pamiętam był tu jakiś poradnik odnośnie wizualjego ekwipunku na zdarzeniach. |
