ArthurMaker Rei
Mensagens : 142 MakerCoins : 10321 Data de inscrição : 11/04/2010 Prêmios :
Este membro ainda não
recebeu nenhum prêmio...
| Assunto: [RMVX] Chest Item Pop-up Dom Abr 18, 2010 9:03 am | |
| Chest Item Pop-Up Feito por: OriginalWij Maker Utilizado: RMVX |Versão: 3.1|
Descrição: Ao conseguir um item uma pequena janela informando a quantidade, o ícone e o nome do item é mostrada.
Funções: .Agiliza a ação do game evitando mensagens do tipo "você adiquiriu tal coisa". Ajuda a deixar o visual do game mais animado.
Intruções Copie o script e cole-o acima do main. Na linha 86 é onde deve ser definido o switch que aciona o script, se ele estiver off não aparecerá nada quando você conseguir algum item, o que pode ser bem util em certos momentos do game.
ScreenShots DownloadChestPopUp31.rar
Script- Spoiler:
- Código:
-
#============================================================================== # Chest Item Pop-Up #============================================================================== # Author : OriginalWij # Version : 3.1 #==============================================================================
#============================================================================== # v1.0 # - Initial release # v1.1 # - Added description window # v1.2 # - Bug fix and added forgotten aliases # v1.3 # - Added option to only popup once for many of the same item # v2.0 # - Reworked name popup window (won't show "1 x" if only one item) # - Reworked gold display (more efficient) # - Added option to turn popup sound on/off # - Added option to turn popup text on/off # - Added icon to name popup and the ability to turn it on/off # - Added adjustable X & Y coordinates for name popup window # - Added "call" feature - with and without adding the item to inventory # - Added option to wait for button or time for popup name window # - Added options to define button and time for popup name window wait # - Added option to enable/disable the "close window" sound # - Added options to define "close window" sound # v2.1 # - Fixed moving event bug # - Added option to have popup always active # - Added option for overlay graphic # - Added auto-adjust name window location, depending on actor X/Y # v2.2 # - Several minor (non-bug) display fixes # - Removed overlay option due to compatibility problems # - Optimized script # v3.0 # - Bugfix for when called from a common event # - Reworked main popup scene for new X/Y determination # - Added option for 2nd window cancellation button # - Added option to center the text window or auto-move to not cover the player # - Added option to popup items & gold after battle # v3.1 # - Added support for screen resizing # - Added option to show total gold when gaining gold #==============================================================================
#============================================================================== # To use: # # Normal Mode : turn on the switch (designated below) BEFORE # each gold/item addition # Automatic Mode : turn on the switch (designated below) if you DON'T want # popups and then turn the switch off when done # # To call manually: # # (useful if using a break-limits script and popping-up 100+ of one item) # # $scene = Chest_Popup.new(type, amount, index, add = false, x = pX, y = pY) # type : 0 :gold, 1 :items, 2 :weapons, 3 :armor # amount : number of items "gaining" # index : item ID # add : adds item(s) shown into inventory if true (default = false) # x : custom X coordinate to pop-up at (default = player X) # y : custom Y coordinate to pop-up at (default = player Y) #==============================================================================
#============================================================================== # NOTE: when adding multiple (different) items in an event, insert a WAIT(1) # between them (insert the WAIT(1) even if in AUTOMATIC mode) #============================================================================== # NOTE: the switch turns itself off after each "add item/gold" event command # UNLESS in automatic mode (you MUST turn it off MANUALLY in auto-mode) #============================================================================== # NOTE: insert a WAIT(7) between a text message and adding items in events # (allows time for the message window to close) #==============================================================================
# Automatic popup mode # (true = ALWAYS popup UNLESS $game_switches[POPUP_SWITCH] is on) AUTO_POPUP = true # Switch to activate/deactivate popups # (activate if AUTO_POPUP = false) (deactivate if AUTO_POPUP = true) POPUP_SWITCH = 1 # "Gold" icon index GOLD_ICON = 205 # Only popup once (if many of the same item) ONLY_SHOW_ONE = true # Popup gold/items gained in battle (pops-up after battle) BATTLE_POP = true # Battle reward prefix text for popup text window # (if BATTLE_POP = true) BATTLE_REWARD = 'Battle Reward: ' # Play sound on popup? PLAY_P_SND = true ####################################################### # 3 options below are valid ONLY if PLAY_P_SND = true # ####################################################### # Sound to play upon popup P_SND = 'Audio/SE/Chime2' P_SND_V = 100 P_SND_P = 150 # Play "close window" sound? PLAY_C_SND = true ####################################################### # 3 options below are valid ONLY if PLAY_C_SND = true # ####################################################### # Sound to play upon popup close C_SND = 'Audio/SE/Cancel' C_SND_V = 80 C_SND_P = 100 # Show popup text? SHOW_POPUP_TEXT = true ############################################################## # ALL options below are valid ONLY if SHOW_POPUP_TEXT = true # ############################################################## # Show icon with popup text? SHOW_POPUP_TEXT_ICON = true # Show "gold window" (total gold) when popping-up gold? SHOW_GOLD_WINDOW = true # Auto adjust window if over player TEXT_WINDOW_MOVE = true # Popup text window Y coordinate TEXT_WINDOW_Y = 180 # Popup text window X coordinate offset # 0 (Zero) : centered in the window # negative integer : offset left (centered) # positive integer : offset right (centered) TEXT_WINDOW_X_OFFSET = 0 # Wait for button to close? (false = wait for time) WAIT_FOR_BUTTON = true # Buttons to wait for # (if WAIT_FOR_BUTTON = true) # (Set both to the same button to check for only one) BUTTON_TO_WAIT_FOR1 = Input::C BUTTON_TO_WAIT_FOR2 = Input::B # Frames to wait # (if WAIT_FOR_BUTTON = false) WAIT_FOR_TIME = 120 #============================================================================== # Game_System #==============================================================================
class Game_System #-------------------------------------------------------------------------- # Public Instance Variables (Added) #-------------------------------------------------------------------------- attr_accessor :battle_pop # holds items to popup after battle attr_accessor :battle_pop_gold # holds gold to popup after battle #-------------------------------------------------------------------------- # Initialize (Mod) #-------------------------------------------------------------------------- alias chest_pop_gs_initialize initialize unless $@ def initialize chest_pop_gs_initialize @battle_pop = nil @battle_pop_gold = 0 end end
#============================================================================== # Game_Interpreter #==============================================================================
class Game_Interpreter #-------------------------------------------------------------------------- # Change Gold (Mod) #-------------------------------------------------------------------------- alias chest_pop_command_125 command_125 unless $@ def command_125 value = operate_value(@params[0], @params[1], @params[2]) # Pop-up if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[0] == 0 $scene = Chest_Popup.new(0, value, 1) end chest_pop_command_125 end #-------------------------------------------------------------------------- # Change Items (Mod) #-------------------------------------------------------------------------- alias chest_pop_command_126 command_126 unless $@ def command_126 value = operate_value(@params[1], @params[2], @params[3]) # Pop-up if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[1] == 0 $scene = Chest_Popup.new(1, value, @params[0]) end chest_pop_command_126 end #-------------------------------------------------------------------------- # Change Weapons (Mod) #-------------------------------------------------------------------------- alias chest_pop_command_127 command_127 unless $@ def command_127 value = operate_value(@params[1], @params[2], @params[3]) # Pop-up if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[1] == 0 $scene = Chest_Popup.new(2, value, @params[0]) end chest_pop_command_127 end #-------------------------------------------------------------------------- # Change Armor (Mod) #-------------------------------------------------------------------------- alias chest_pop_command_128 command_128 unless $@ def command_128 value = operate_value(@params[1], @params[2], @params[3]) # Pop-up if $game_switches[POPUP_SWITCH] != AUTO_POPUP and @params[1] == 0 $scene = Chest_Popup.new(3, value, @params[0]) end chest_pop_command_128 end end
#============================================================================== # Item Popup Window (New) #==============================================================================
class Item_Popup_Window < Window_Base #-------------------------------------------------------------------------- # Initialize #-------------------------------------------------------------------------- def initialize(x, y) super(0, 0, Graphics.width, Graphics.height) # res self.opacity = 0 # Adjust X/Y to proper origin @x, @y = x - 27, y - 60 end #-------------------------------------------------------------------------- # Pop-Up #-------------------------------------------------------------------------- def pop_up(icon_index, x_offset, y_offset) self.contents.clear # Draw pop-up icon draw_icon(icon_index, @x + x_offset, @y + y_offset, true) end end
#============================================================================== # Name window (New) #==============================================================================
class Name_Window < Window_Base #-------------------------------------------------------------------------- # Initialize #-------------------------------------------------------------------------- def initialize(x, y, desc, no_desc, index, gold = false, icon = 0) super(x, y, 56, WLH + 32) # Adjust window to content's size and center icon_x = self.contents.text_size(index).width + 6 width = self.contents.text_size(desc).width self.width = width + 32 self.x = ((Graphics.width - self.width) / 2) + TEXT_WINDOW_X_OFFSET # res create_contents # Draw pop-up text ix = no_desc ? 0 : icon_x item_check = $game_system.battle_pop gold_check = $game_system.battle_pop_gold if BATTLE_POP and (item_check != nil or gold_check > 0) # If battle reward ix += self.contents.text_size(BATTLE_REWARD).width + 2 end tx = gold ? 4 : 0 draw_icon(icon, ix, 0) if SHOW_POPUP_TEXT_ICON and !gold self.contents.draw_text(tx, 0, width, WLH, desc, 0) draw_icon(GOLD_ICON, width - 24, 0, true) if gold end end
#============================================================================== # Scene_Base #==============================================================================
class Scene_Base #-------------------------------------------------------------------------- # Initialize (New) #-------------------------------------------------------------------------- def initialize @disable_blur = false end #-------------------------------------------------------------------------- # Disable blur (New) #-------------------------------------------------------------------------- def disable_blur=(enabled) @disable_blur = enabled end #-------------------------------------------------------------------------- # Create Snapshot for Using as Background of Another Screen (Rewrite) #-------------------------------------------------------------------------- def snapshot_for_background $game_temp.background_bitmap.dispose $game_temp.background_bitmap = Graphics.snap_to_bitmap # Don't blur if disabled $game_temp.background_bitmap.blur unless @disable_blur # changed end end
#============================================================================== # Scene_Map #==============================================================================
class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # Start (Mod) #-------------------------------------------------------------------------- alias chest_pop_start start unless $@ def start chest_pop_start # Popup battle rewards if BATTLE_POP if $game_system.battle_pop_gold > 0 # gold gold = $game_system.battle_pop_gold $game_system.battle_pop_gold = 0 $scene = Chest_Popup.new(0, gold, 0, true) elsif $game_system.battle_pop != nil # items item = $game_system.battle_pop.shift if item == nil $game_system.battle_pop = nil else type = 1 if item.is_a?(RPG::Item) type = 2 if item.is_a?(RPG::Weapon) type = 3 if item.is_a?(RPG::Armor) $scene = Chest_Popup.new(type, 1, item.id, true) end end end end end
#============================================================================== # Scene_Battle #==============================================================================
class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # Display Gained Experience and Gold (Rewrite) #-------------------------------------------------------------------------- def display_exp_and_gold # Save gold to popup after battle $game_system.battle_pop_gold = $game_troop.gold_total if BATTLE_POP # added exp = $game_troop.exp_total gold = BATTLE_POP ? 0 : $game_troop.gold_total # changed $game_party.gain_gold(gold) unless BATTLE_POP # changed text = sprintf(Vocab::Victory, $game_party.name) $game_message.texts.push('\|' + text) if exp > 0 text = sprintf(Vocab::ObtainExp, exp) $game_message.texts.push('\.' + text) end if gold > 0 text = sprintf(Vocab::ObtainGold, gold, Vocab::gold) $game_message.texts.push('\.' + text) end wait_for_message end #-------------------------------------------------------------------------- # Display Gained Drop Items (Mod) #-------------------------------------------------------------------------- alias chest_pop_display_drop_items display_drop_items unless $@ def display_drop_items # Save items to popup after battle $game_system.battle_pop = $game_troop.make_drop_items if BATTLE_POP return if BATTLE_POP chest_pop_display_drop_items end end
#============================================================================== # Chest_Popup (New) #==============================================================================
class Chest_Popup < Scene_Base #-------------------------------------------------------------------------- # Initialize #-------------------------------------------------------------------------- def initialize(type, amount, index, add = false, x = nil, y = nil) x = $game_player.screen_x if x == nil y = $game_player.screen_y if y == nil $game_switches[POPUP_SWITCH] = !AUTO_POPUP $scene.disable_blur = true @x, @y, @amount = x, y, amount @gold = @no_desc = false case type when 0 # Gold $game_party.gain_gold(amount) if add @icon = GOLD_ICON @desc_amount = '' @desc = @amount.to_s @amount = 1 @gold = true when 1 # Items $game_party.gain_item($data_items[index], amount) if add @icon = $data_items[index].icon_index @desc_amount = @amount.to_s + ' x' @desc_amount = '' if @amount == 1 @no_desc = true if @amount == 1 @desc = $data_items[index].name @amount = 1 if ONLY_SHOW_ONE when 2 # Weapons $game_party.gain_item($data_weapons[index], amount) if add @icon = $data_weapons[index].icon_index @desc_amount = @amount.to_s + ' x' @desc_amount = '' if @amount == 1 @no_desc = true if @amount == 1 @desc = $data_weapons[index].name @amount = 1 if ONLY_SHOW_ONE when 3 # Armors $game_party.gain_item($data_armors[index], amount) if add @icon = $data_armors[index].icon_index @desc_amount = @amount.to_s + ' x' @desc_amount = '' if @amount == 1 @no_desc = true if @amount == 1 @desc = $data_armors[index].name @amount = 1 if ONLY_SHOW_ONE end # Set index @index = @desc_amount # Add description to text if @gold @desc = @desc + ' ' else if SHOW_POPUP_TEXT_ICON @desc = @desc_amount + ' ' + @desc else @desc = @desc_amount + ' ' + @desc if @desc_amount != '' end end # If battle reward item_check = $game_system.battle_pop gold_check = $game_system.battle_pop_gold if BATTLE_POP and (item_check != nil or gold_check > 0) @desc = BATTLE_REWARD + @desc end end #-------------------------------------------------------------------------- # Start #-------------------------------------------------------------------------- def start create_background # Create pop-up window @popup_window = Item_Popup_Window.new(@x, @y) end #-------------------------------------------------------------------------- # Terminate #-------------------------------------------------------------------------- def terminate # Dispose windows @popup_window.dispose @menuback_sprite.dispose @name_window.dispose if SHOW_POPUP_TEXT end #-------------------------------------------------------------------------- # Return Scene #-------------------------------------------------------------------------- def return_scene # Turn off blur and pop-up switch $scene.disable_blur = false $game_switches[POPUP_SWITCH] = false $scene = Scene_Map.new end #-------------------------------------------------------------------------- # Update #-------------------------------------------------------------------------- def update super # Update pop-up window @popup_window.update @menuback_sprite.update # Do the actual popping-up do_popup end #-------------------------------------------------------------------------- # Update Basic #-------------------------------------------------------------------------- def update_basic Graphics.update Input.update end #-------------------------------------------------------------------------- # Wait #-------------------------------------------------------------------------- def wait(duration) # Wait for DURATION frames for i in 0..duration update_basic end end #-------------------------------------------------------------------------- # Wait for close #-------------------------------------------------------------------------- def wait_for_close count = 0 loop do update_basic count += 1 # Close if button 1 pressed break if Input.trigger?(BUTTON_TO_WAIT_FOR1) and WAIT_FOR_BUTTON # Close if button 2 pressed break if Input.trigger?(BUTTON_TO_WAIT_FOR2) and WAIT_FOR_BUTTON # Close if time elapsed break if count >= WAIT_FOR_TIME and !WAIT_FOR_BUTTON end end #-------------------------------------------------------------------------- # Create Background #-------------------------------------------------------------------------- def create_background # Create modified background @menuback_sprite = Sprite.new @menuback_sprite.bitmap = $game_temp.background_bitmap @menuback_sprite.update end #-------------------------------------------------------------------------- # Show Name #-------------------------------------------------------------------------- def show_name x = Graphics.width / 2 # res y = TEXT_WINDOW_Y py = $game_player.screen_y - 32 cy = (py - y).abs # Offset Y if text box is above player's position if cy < 128 and TEXT_WINDOW_MOVE y = py < y ? y + (y / 2) : y - (y / 2) end # Create Window (and gold window) @name_window = Name_Window.new(x, y, @desc, @no_desc, @index, @gold, @icon) if SHOW_GOLD_WINDOW and @gold @gold_window = Window_Gold.new(Graphics.width - 160, 0) end # Wait for button(s) or time wait_for_close # Close gold window @gold_window.dispose if SHOW_GOLD_WINDOW and @gold # Play sound Audio.se_play(C_SND, C_SND_V, C_SND_P) if WAIT_FOR_BUTTON and PLAY_C_SND end #-------------------------------------------------------------------------- # Do Pop-Up #-------------------------------------------------------------------------- def do_popup # Pop-up icon(s) for i in 1..@amount Audio.se_play(P_SND, P_SND_V, P_SND_P) if PLAY_P_SND for i in 0..4 @popup_window.pop_up(@icon, 0, i * -4) @popup_window.update wait(2) end wait(5) if i != @amount and !ONLY_SHOW_ONE end wait(5) # Pop-up text show_name if SHOW_POPUP_TEXT # Exit return_scene end end
CréditosOriginalWij, por criar o script
FAQ
- Pergunta: Alguma incompatibilidade com outro script?
- Resposta: Até agora não encontrei nenhuma...
- Pergunta: Para ativar e desativar o script é só ligar ou desligar a switch que corresponde a ele?
- Resposta: É, simples assim...
|
|
baoyama Lorde
Mensagens : 88 MakerCoins : 314 Data de inscrição : 18/04/2010 Idade : 31 Mensagem Pessoal : Tentando chegar aos 100 posts! Localização : Na frente do meu PC
| Assunto: Re: [RMVX] Chest Item Pop-up Dom Abr 25, 2010 10:22 pm | |
| Muito útil no meu projeto obrigado por disponibilizar acho ele muito bom para certos estilos de jogos,aconselho ele porque ele é muito legal xD. |
|