| 
 
| 赞 | 11 |  
| VIP | 0 |  
| 好人卡 | 0 |  
| 积分 | 46 |  
| 经验 | 20377 |  
| 最后登录 | 2022-8-14 |  
| 在线时间 | 476 小时 |  
 Lv3.寻梦者 
	梦石0 星屑4594 在线时间476 小时注册时间2013-2-13帖子53 | 
| 
本帖最后由 聆语 于 2013-7-15 01:05 编辑
x
加入我们,或者,欢迎回来。您需要 登录 才可以下载或查看,没有帐号?注册会员  
 获得物品提示脚本在队伍有多人时不管用,怎么办?
 嗯……单人时是管用的,但是角色一多就不管用了。脚本是从66RPG的VA超级整合里拿出的。
 想过是不是和其余脚本冲突了,但是队伍中单人是没问题的,于是想问问看是不是脚本的问题……
 如果可以改,那还请告诉我……
 
 如果不知道这个……还请告诉我标题的答案……怎么设定……?全灭后一定要GameOver吗?
 
 
 这里是获得物品提示脚本。
 #==============================================================================
 #
 # ▼ Yanfly Engine Ace - Event Window v1.01
 # -- Last Updated: 2011.12.27
 # -- Level: Easy, Normal
 # -- Requires: n/a
 #
 #==============================================================================
 
 $imported = {} if $imported.nil?
 $imported["YEA-EventWindow"] = true
 
 #==============================================================================
 # ▼ Updates
 # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 # 2011.12.27 - Bug Fixed: Used the wrong script to hide event window.
 # 2011.12.26 - Started Script and Finished.
 #
 #==============================================================================
 # ▼ Introduction
 # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 # The Event Window is a new feature added through this script that appears in
 # the lower left corner of the screen. Whenever the player gains or loses gold
 # and items, the Event Window is updated to show the changes. In addition to
 # showing item gains and losses, you may even add in your own text to update
 # through a Script Call.
 #
 #==============================================================================
 # ▼ Instructions
 # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 # To install this script, open up your script editor and copy/paste this script
 # to an open slot below ▼ Materials/素材 but above ▼ Main. Remember to save.
 #
 # -----------------------------------------------------------------------------
 # Script Calls - These commands are used with script calls.
 # -----------------------------------------------------------------------------
 # event_window_add_text(string)
 # This inserts "string" text into the Event Window. Use \n to designate
 # linebreaks in the string. If you wish to use text codes, write them in the
 # strings as \\n[2] or \\c[3] to make them work properly.
 #
 # event_window_clear_text
 # This causes the Event Window to clear all of the stored text. You can choose
 # whether or not to clear the stored Event Window text every time the player
 # enters a new map.
 #
 #==============================================================================
 # ▼ Compatibility
 # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 # This script is made strictly for RPG Maker VX Ace. It is highly unlikely that
 # it will run with RPG Maker VX without adjusting.
 #
 #==============================================================================
 
 module YEA
 module EVENT_WINDOW
 
 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 # - Event Window Switch -
 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 # This is the switch used for hiding the event window. When this switch is
 # ON, the event window will be hidden from view. If it is OFF, the event
 # window will maintain normal visibility.
 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 HIDE_SWITCH = 24       # If switch is ON, event window will not appear.
 
 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 # - General Event Window Settings -
 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 # This section adjusts the event window. These settings adjust the overall
 # appearance of the event window from the width to the number of lines
 # shown and the window fade rate.
 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 NEW_MAP_CLEAR = true    # Clear text when entering a new map?
 WINDOW_WIDTH  = 280     # Event Window width.
 VISIBLE_TIME  = 180     # Frames the window is visible before fading.
 MAX_LINES     = 4       # Maximum number of lines shown.
 WINDOW_FADE   = 8       # Fade rate for the Event Window.
 
 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 # - Event Window Text Settings -
 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 # This section adjusts the text that appears in the event window. The text
 # that appears when an item is found and the text that appears when an item
 # is lost will always appear before the item found. If there is more than
 # one item found, the amount text will be added on after followed by the
 # closing text. When gold is found, no icons will be used.
 #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 HEADER_TEXT = "\e}"                # Text that's always used at the head.
 FOUND_TEXT  = "\ec[6]获得\ec[0] "   # Text used when an item is found.
 LOST_TEXT   = "\ec[4]失去\ec[0] "    # Text used when an item is lost.
 AMOUNT_TEXT = "×%s"                  # Text used to display an amount.
 CLOSER_TEXT = ""                   # Text that's always used at the end.
 
 end # EVENT_WINDOW
 end # YEA
 
 #==============================================================================
 # ▼ Editting anything past this point may potentially result in causing
 # computer damage, incontinence, explosion of user's head, coma, death, and/or
 # halitosis so edit at your own risk.
 #==============================================================================
 
 #==============================================================================
 # ■ Switch
 #==============================================================================
 
 module Switch
 
 #--------------------------------------------------------------------------
 # self.hide_event_window
 #--------------------------------------------------------------------------
 def self.hide_event_window
 return false if YEA::EVENT_WINDOW::HIDE_SWITCH <= 0
 return $game_switches[YEA::EVENT_WINDOW::HIDE_SWITCH]
 end
 
 end # Switch
 
 #==============================================================================
 # ■ Numeric
 #==============================================================================
 
 class Numeric
 
 #--------------------------------------------------------------------------
 # new method: group_digits
 #--------------------------------------------------------------------------
 unless $imported["YEA-CoreEngine"]
 def group; return self.to_s; end
 end # $imported["YEA-CoreEngine"]
 
 end # Numeric
 
 #==============================================================================
 # ■ Game_Temp
 #==============================================================================
 
 class Game_Temp
 
 #--------------------------------------------------------------------------
 # public instance variables
 #--------------------------------------------------------------------------
 attr_accessor :event_window_data
 
 #--------------------------------------------------------------------------
 # new method: add_event_window_data
 #--------------------------------------------------------------------------
 def add_event_window_data(text)
 @event_window_data = [] if @event_window_data.nil?
 return if text == ""
 @event_window_data.push(text)
 end
 
 #--------------------------------------------------------------------------
 # new method: clear_event_window_data
 #--------------------------------------------------------------------------
 def clear_event_window_data
 @event_window_data = []
 end
 
 end # Game_Temp
 
 #==============================================================================
 # ■ Game_Interpreter
 #==============================================================================
 
 class Game_Interpreter
 
 #--------------------------------------------------------------------------
 # alias method: command_125
 #--------------------------------------------------------------------------
 alias game_interpreter_command_125_ew command_125
 def command_125
 game_interpreter_command_125_ew
 value = operate_value(@params[0], @params[1], @params[2])
 $game_temp.clear_event_window_data
 event_window_make_gold_text(value)
 end
 
 #--------------------------------------------------------------------------
 # alias method: command_126
 #--------------------------------------------------------------------------
 alias game_interpreter_command_126_ew command_126
 def command_126
 game_interpreter_command_126_ew
 value = operate_value(@params[1], @params[2], @params[3])
 $game_temp.clear_event_window_data
 event_window_make_item_text($data_items[@params[0]], value)
 end
 
 #--------------------------------------------------------------------------
 # alias method: command_127
 #--------------------------------------------------------------------------
 alias game_interpreter_command_127_ew command_127
 def command_127
 game_interpreter_command_127_ew
 value = operate_value(@params[1], @params[2], @params[3])
 $game_temp.clear_event_window_data
 event_window_make_item_text($data_weapons[@params[0]], value)
 end
 
 #--------------------------------------------------------------------------
 # alias method: command_128
 #--------------------------------------------------------------------------
 alias game_interpreter_command_128_ew command_128
 def command_128
 game_interpreter_command_128_ew
 value = operate_value(@params[1], @params[2], @params[3])
 event_window_make_item_text($data_armors[@params[0]], value)
 end
 
 #--------------------------------------------------------------------------
 # new method: event_window_make_gold_text
 #--------------------------------------------------------------------------
 def event_window_make_gold_text(value)
 return unless SceneManager.scene_is?(Scene_Map)
 return if Switch.hide_event_window
 if value > 0
 text = YEA::EVENT_WINDOW::FOUND_TEXT
 elsif value < 0
 text = YEA::EVENT_WINDOW::LOST_TEXT
 else; return
 end
 text += sprintf("%s%s", value.abs.group, Vocab::currency_unit)
 event_window_add_text(text)
 end
 
 #--------------------------------------------------------------------------
 # new method: event_window_make_item_text
 #--------------------------------------------------------------------------
 def event_window_make_item_text(item, value)
 return unless SceneManager.scene_is?(Scene_Map)
 return if Switch.hide_event_window
 if value > 0
 text = YEA::EVENT_WINDOW::FOUND_TEXT
 elsif value < 0
 text = YEA::EVENT_WINDOW::LOST_TEXT
 else; return
 end
 text += sprintf("\ei[%d]%s", item.icon_index, item.name)
 if value.abs > 1
 fmt = YEA::EVENT_WINDOW::AMOUNT_TEXT
 text += sprintf(fmt, value.abs.group)
 end
 event_window_add_text(text)
 end
 
 #--------------------------------------------------------------------------
 # new method: event_window_add_text
 #--------------------------------------------------------------------------
 def event_window_add_text(text)
 return unless SceneManager.scene_is?(Scene_Map)
 return if Switch.hide_event_window
 text = YEA::EVENT_WINDOW::HEADER_TEXT + text
 text += YEA::EVENT_WINDOW::CLOSER_TEXT
 SceneManager.scene.event_window_add_text(text)
 end
 
 #--------------------------------------------------------------------------
 # new method: event_window_clear_text
 #--------------------------------------------------------------------------
 def event_window_clear_text
 $game_temp.clear_event_window_data
 end
 
 end # Game_Interpreter
 
 #==============================================================================
 # ■ Window_EventWindow
 #==============================================================================
 
 class Window_EventWindow < Window_Selectable
 
 #--------------------------------------------------------------------------
 # initialize
 #--------------------------------------------------------------------------
 def initialize
 dw = YEA::EVENT_WINDOW::WINDOW_WIDTH
 super(0, 0, dw, fitting_height(YEA::EVENT_WINDOW::MAX_LINES))
 self.x -= 12
 self.opacity = 0
 self.contents_opacity = 0
 @visible_counter = 0
 modify_skin
 deactivate
 end
 
 #--------------------------------------------------------------------------
 # modify_skin
 #--------------------------------------------------------------------------
 def modify_skin
 dup_skin = self.windowskin.dup
 dup_skin.clear_rect(64,  0, 64, 64)
 dup_skin.clear_rect(64, 64, 32, 32)
 self.windowskin = dup_skin
 end
 
 #--------------------------------------------------------------------------
 # item_max
 #--------------------------------------------------------------------------
 def item_max
 return $game_temp.event_window_data ? $game_temp.event_window_data.size : 1
 end
 
 #--------------------------------------------------------------------------
 # update
 #--------------------------------------------------------------------------
 def update
 super
 self.visible = show_window?
 update_visible_counter
 update_contents_opacity
 end
 
 #--------------------------------------------------------------------------
 # show_window?
 #--------------------------------------------------------------------------
 def show_window?
 return false if $game_message.visible
 return true
 end
 
 #--------------------------------------------------------------------------
 # update_visible_counter
 #--------------------------------------------------------------------------
 def update_visible_counter
 return if @visible_counter <= 0
 @visible_counter -= 1
 end
 
 #--------------------------------------------------------------------------
 # update_contents_opacity
 #--------------------------------------------------------------------------
 def update_contents_opacity
 return if @visible_counter > 0
 return if self.contents_opacity <= 0
 self.contents_opacity -= YEA::EVENT_WINDOW::WINDOW_FADE
 end
 
 #--------------------------------------------------------------------------
 # instant_hide
 #--------------------------------------------------------------------------
 def instant_hide
 @visible_counter = 0
 self.contents_opacity = 0
 end
 
 #--------------------------------------------------------------------------
 # add_text
 #--------------------------------------------------------------------------
 def add_text(text)
 $game_temp.add_event_window_data(text)
 refresh
 self.contents_opacity = 255
 @visible_counter = YEA::EVENT_WINDOW::VISIBLE_TIME
 change_y_position
 select(item_max - 1)
 end
 
 #--------------------------------------------------------------------------
 # change_y_position  这里的数字可以改变显示条的位置,数字越小越低。
 #--------------------------------------------------------------------------
 def change_y_position
 maximum = [item_max, YEA::EVENT_WINDOW::MAX_LINES].min
 self.y = Graphics.height - fitting_height(maximum) - 180
 end
 
 #--------------------------------------------------------------------------
 # refresh
 #--------------------------------------------------------------------------
 def refresh
 create_contents
 draw_all_items
 end
 
 #--------------------------------------------------------------------------
 # draw_item
 #--------------------------------------------------------------------------
 def draw_item(index)
 $game_temp.clear_event_window_data if $game_temp.event_window_data.nil?
 item = $game_temp.event_window_data[index]
 return if item.nil?
 rect = item_rect(index)
 draw_background(rect)
 rect.x += 4
 rect.width -= 8
 draw_text_ex(rect.x, rect.y, item)
 end
 
 #--------------------------------------------------------------------------
 # draw_background
 #--------------------------------------------------------------------------
 def draw_background(rect)
 back_colour1 = Color.new(0, 0, 0, 96)
 back_colour2 = Color.new(0, 0, 0, 0)
 contents.gradient_fill_rect(rect, back_colour1, back_colour2)
 end
 
 end # Window_EventWindow
 
 #==============================================================================
 # ■ Scene_Map
 #==============================================================================
 
 class Scene_Map < Scene_Base
 
 #--------------------------------------------------------------------------
 # alias method: create_all_windows
 #--------------------------------------------------------------------------
 alias scene_map_create_all_windows_event_window create_all_windows
 def create_all_windows
 scene_map_create_all_windows_event_window
 create_event_window
 end
 
 #--------------------------------------------------------------------------
 # new method: create_event_window
 #--------------------------------------------------------------------------
 def create_event_window
 @event_window = Window_EventWindow.new
 end
 
 #--------------------------------------------------------------------------
 # new method: event_window_add_text
 #--------------------------------------------------------------------------
 def event_window_add_text(text)
 Sound.play_shop
 @event_window.add_text(text)
 end
 
 #--------------------------------------------------------------------------
 # alias method: post_transfer
 #--------------------------------------------------------------------------
 alias scene_map_post_transfer_ew post_transfer
 def post_transfer
 $game_temp.clear_event_window_data if YEA::EVENT_WINDOW::NEW_MAP_CLEAR
 @event_window.instant_hide
 scene_map_post_transfer_ew
 end
 
 end # Scene_Map
 
 #==============================================================================
 #
 # ▼ End of File
 #
 #==============================================================================
 | 
 |