赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 3236 |
最后登录 | 2017-9-25 |
在线时间 | 106 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 106 小时
- 注册时间
- 2010-10-12
- 帖子
- 28
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 asdrty123 于 2012-1-23 22:49 编辑
這是ACE專用的腳本...不過我本人也沒看懂 正在研究
來自
http://rpgmaker.net/scripts/162/- #==============================================================================
- #
- # ▼ Yanfly Engine Ace - Common Event Shop v1.00
- # -- Last Updated: 2012.01.13
- # -- Level: Normal, Hard
- # -- Requires: n/a
- #
- #==============================================================================
- $imported = {} if $imported.nil?
- $imported["YEA-CommonEventShop"] = true
- #==============================================================================
- # ▼ Updates
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # 2012.01.13 - Started Script and Finished.
- #
- #==============================================================================
- # ▼ Introduction
- # =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
- # Sometimes, being able to buy items just isn't enough. With the common event
- # shop, you can set anything to be sold as long as you can event it. Expanded
- # upon the original Yanfly Engine ReDux version, the Ace version gives more
- # options such as using custom switches to enable/disable common events from
- # being bought or even appearing. And if that wasn't enough, advanced users can
- # use eval strings for more conditional common events.
- #
- #==============================================================================
- # ▼ 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.
- #
- # -----------------------------------------------------------------------------
- # Common Event Notetags - These notetags go in a common event's comments.
- # -----------------------------------------------------------------------------
- # <cost: x>
- # Sets the gold cost of the common event to x gold. If this notetag is not used
- # the default gold cost will be whatever DEFAULT_COST is in the script module.
- #
- # <exit shop>
- # When this event is bought, the player will automatically exit the shop before
- # the common event will take place. If this tag is not used, the common event's
- # contents will take place inside of the common event shop.
- #
- # <icon: x>
- # Changes the icon used for the common event to x icon index. If this notetag
- # is not used, the icon used for the common event will be whatever DEFAULT_ICON
- # is in the script module.
- #
- # <image: string>
- # Changes the image used for the common event to filename "string" found in
- # the Graphics\Pictures\ folder. Requires Ace Shop Options to use. If this tag
- # is not used, the image displayed will be the common event's expanded icon.
- #
- # <help description>
- # string
- # </help description>
- # Sets the text used for the help window in the shop scene. Multiple lines in
- # the notebox will be strung together. Use | for a line break. Text codes may
- # be used inside of the help description.
- #
- # <shop data>
- # string
- # </shop data>
- # Can be used if you have Yanfly Engine Ace - Ace Shop Options installed. Sets
- # the string as the text shown inside the data window the shop. Use | for a
- # line break. Text codes may be used inside of the shop data text.
- #
- # <shop variables: x>
- # <shop variables: x, x>
- # This sets the variable x displayed in the status window in the lower right
- # corner of the screen. Insert multiples of this notetag to display more
- # variables inside of the status window.
- #
- # <shop enable switch: x>
- # <shop enable switch: x, x>
- # This notetag will cause the common event item to require switch x to be ON
- # before the common event can be bought. Insert multiples of these notetags to
- # require more switches to be ON before the common event item can be gouth.
- #
- # <shop enable eval>
- # string
- # string
- # </shop enable eval>
- # Advanced users can enable and disable common events from being bought through
- # this notetag. Replace string with lines of code to check for whether or not
- # the common event can be sold. If multiple lines are used, they are considered
- # to be a part of the same line.
- #
- # <shop show switch: x>
- # <shop show switch: x, x>
- # This notetag will cause the common event item to be hidden unless switch x is
- # ON. Insert multiple of these notetags to require more switches to be ON
- # before the common event item will be shown in the shop.
- #
- # <shop show eval>
- # string
- # string
- # </shop show eval>
- # Advanced users can show and hide common events from being listed in the buy
- # list through this notetag. Replace string with lines of code to check for
- # whether or not the common event will be shown. If multiple lines are used,
- # they are considered to be a part of the same line.
- #
- # -----------------------------------------------------------------------------
- # Script Calls - These commands are used with script calls.
- # -----------------------------------------------------------------------------
- # common_event_shop(x)
- # This will call common event shop x. x will the shop ID used from the SHOPS
- # hash in the script's module. Any items placed within the array assigned to
- # the shop ID will be sold as common events.
- #
- #==============================================================================
- # ▼ 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.
- #
- # This script is compatible with Yanfly Engine Ace - Ace Shop Options v1.00+.
- # The position of this script does not matter relative to the other script.
- #
- #==============================================================================
- module YEA
- module COMMON_EVENT_SHOP
-
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # - General Settings -
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- # These settings below adjust the default costs for common events (if no
- # custom costs are used), the default icons used, and what kinds of common
- # events are sold for each of the shop ID's.
- #=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- DEFAULT_COST = 1000 # Default gold cost for common events.
- DEFAULT_ICON = 236 # Default icon used for common events.
-
- # This hash adjusts the common events sold in each of the shop ID's. Insert
- # the common events you want sold inside of the arrays with the shop ID as
- # the hash key. You can use number ranges to add common events quicker.
- SHOPS ={
- # ID => [Common Event ID's],
- 1 => [1, 2..8, 9, 10],
- 2 => [11..20],
- 3 => [21..30],
- } # Do not remove this.
-
- end # COMMON_EVENT_SHOP
- 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.
- #==============================================================================
- module YEA
- module COMMON_EVENT_SHOP
- module_function
- #--------------------------------------------------------------------------
- # convert_integer_array
- #--------------------------------------------------------------------------
- def convert_integer_array(array)
- result = []
- array.each { |i|
- case i
- when Range; result |= i.to_a
- when Integer; result |= [i]
- end }
- return result
- end
- #--------------------------------------------------------------------------
- # convert_full_hash
- #--------------------------------------------------------------------------
- def convert_full_hash(hash)
- result = {}
- hash.each { |key| result[key[0]] = convert_integer_array(key[1]) }
- return result
- end
- #--------------------------------------------------------------------------
- # converted_contants
- #--------------------------------------------------------------------------
- SHOPS = convert_full_hash(SHOPS)
- end # COMMON_EVENT_SHOP
- module REGEXP
- module COMMONEVENT
-
- COST = /<(?:COST|shop cost):[ ](\d+)>/i
- IMAGE = /<(?:IMAGE|image):[ ](.*)>/i
- ICON_INDEX = /<(?:ICON|icon index):[ ](\d+)>/i
- EVENT_TYPE_EXIT = /<(?:EXIT_SHOP|exit shop)>/i
- SHOP_VARIABLES =
- /<(?:SHOP_VARIABLES|shop variables):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
- HELP_DESCRIPTION_ON = /<(?:HELP_DESCRIPTION|help description)>/i
- HELP_DESCRIPTION_OFF = /<\/(?:HELP_DESCRIPTION|help description)>/i
- SHOP_DATA_ON = /<(?:SHOP_DATA|shop data)>/i
- SHOP_DATA_OFF = /<\/(?:SHOP_DATA|shop data)>/i
- SHOP_ENABLE_SWITCH =
- /<(?:SHOP_ENABLE_SWITCH|shop enable switch):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
- SHOP_SHOW_SWITCH =
- /<(?:SHOP_SHOW_SWITCH|shop show switch):[ ]*(\d+(?:\s*,\s*\d+)*)>/i
- SHOP_ENABLE_EVAL_ON = /<(?:SHOP_ENABLE_EVAL|shop enable eval)>/i
- SHOP_ENABLE_EVAL_OFF = /<\/(?:SHOP_ENABLE_EVAL|shop enable eval)>/i
- SHOP_SHOW_EVAL_ON = /<(?:SHOP_SHOW_EVAL|shop show eval)>/i
- SHOP_SHOW_EVAL_OFF = /<\/(?:SHOP_SHOW_EVAL|shop show eval)>/i
-
- end # COMMONEVENT
- end # REGEXP
- end # YEA
- #==============================================================================
- # ■ Numeric
- #==============================================================================
- class Numeric
-
- #--------------------------------------------------------------------------
- # new method: group_digits
- #--------------------------------------------------------------------------
- unless $imported["YEA-CoreEngine"]
- def group; return self.to_s; end
- end # $imported["YEA-CoreEngine"]
-
- end # Numeric
- #==============================================================================
- # ■ DataManager
- #==============================================================================
- module DataManager
-
- #--------------------------------------------------------------------------
- # alias method: load_database
- #--------------------------------------------------------------------------
- class <<self; alias load_database_ces load_database; end
- def self.load_database
- load_database_ces
- load_notetags_ces
- end
-
- #--------------------------------------------------------------------------
- # new method: load_notetags_ces
- #--------------------------------------------------------------------------
- def self.load_notetags_ces
- groups = [$data_common_events]
- for group in groups
- for obj in group
- next if obj.nil?
- obj.load_notetags_ces
- end
- end
- end
-
- end # DataManager
- #==============================================================================
- # ■ RPG::Actor
- #==============================================================================
- class RPG::CommonEvent
-
- #--------------------------------------------------------------------------
- # public instance variables
- #--------------------------------------------------------------------------
- attr_accessor :cost
- attr_accessor :description
- attr_accessor :event_type
- attr_accessor :icon_index
- attr_accessor :image
- attr_accessor :shop_variables
- attr_accessor :shop_data
- attr_accessor :shop_enable_switch
- attr_accessor :shop_enable_eval
- attr_accessor :shop_show_switch
- attr_accessor :shop_show_eval
-
- #--------------------------------------------------------------------------
- # common cache: load_notetags_ces
- #--------------------------------------------------------------------------
- def load_notetags_ces
- @cost = YEA::COMMON_EVENT_SHOP::DEFAULT_COST
- @description = ""
- @event_type = :instore
- @icon_index = YEA::COMMON_EVENT_SHOP::DEFAULT_ICON
- @image = nil
- @shop_variables = []
- @shop_data = ""
- @shop_enable_switch = []
- @shop_enable_eval = nil
- @shop_show_switch = []
- @shop_show_eval = nil
- @help_description_on = false
- @shop_data_on = false
- @shop_enable_eval_on = false
- @shop_show_eval_on = false
- #---
- self.note.split(/[\r\n]+/).each { |line|
- case line
- #---
- when YEA::REGEXP::COMMONEVENT::COST
- @cost = $1.to_i
- when YEA::REGEXP::COMMONEVENT::ICON_INDEX
- @icon_index = $1.to_i
- when YEA::REGEXP::COMMONEVENT::IMAGE
- @image = $1.to_s
- #---
- when YEA::REGEXP::COMMONEVENT::EVENT_TYPE_EXIT
- @event_type = :exit
- #---
- when YEA::REGEXP::COMMONEVENT::SHOP_VARIABLES
- $1.scan(/\d+/).each { |num|
- @shop_variables.push(num.to_i) if num.to_i > 0 }
- when YEA::REGEXP::COMMONEVENT::SHOP_ENABLE_SWITCH
- $1.scan(/\d+/).each { |num|
- @shop_enable_switch.push(num.to_i) if num.to_i > 0 }
- when YEA::REGEXP::COMMONEVENT::SHOP_SHOW_SWITCH
- $1.scan(/\d+/).each { |num|
- @shop_show_switch.push(num.to_i) if num.to_i > 0 }
- #---
- when YEA::REGEXP::COMMONEVENT::HELP_DESCRIPTION_ON
- @help_description_on = true
- when YEA::REGEXP::COMMONEVENT::HELP_DESCRIPTION_OFF
- @help_description_on = false
- when YEA::REGEXP::COMMONEVENT::SHOP_DATA_ON
- @shop_data_on = true
- when YEA::REGEXP::COMMONEVENT::SHOP_DATA_OFF
- @shop_data_on = false
- when YEA::REGEXP::COMMONEVENT::SHOP_ENABLE_EVAL_ON
- @shop_enable_eval = ""
- @shop_enable_eval_on = true
- when YEA::REGEXP::COMMONEVENT::SHOP_ENABLE_EVAL_OFF
- @shop_enable_eval_on = false
- when YEA::REGEXP::COMMONEVENT::SHOP_SHOW_EVAL_ON
- @shop_show_eval = ""
- @shop_show_eval_on = true
- when YEA::REGEXP::COMMONEVENT::SHOP_SHOW_EVAL_OFF
- @shop_show_eval_on = false
- else
- @description += line.to_s if @help_description_on
- @shop_data += line.to_s if @shop_data_on
- @shop_enable_eval += line.to_s if @shop_enable_eval_on
- @shop_show_eval += line.to_s if @shop_show_eval_on
- #---
- end
- } # self.note.split
- #---
- @description.gsub!(/[|]/i) { "\n" }
- @shop_data.gsub!(/[|]/i) { "\n" }
- end
-
- #--------------------------------------------------------------------------
- # new method: note
- #--------------------------------------------------------------------------
- def note
- @note = ""
- @list.each { |event|
- next if event.nil?
- next unless [108, 408].include?(event.code)
- @note += event.parameters[0] + "\r\n"
- } # Do not remove
- return @note
- end
-
- end # RPG::Actor
- #==============================================================================
- # ■ Game_Interpreter
- #==============================================================================
- class Game_Interpreter
-
- #--------------------------------------------------------------------------
- # common_event_shop
- #--------------------------------------------------------------------------
- def common_event_shop(shop_id)
- return unless SceneManager.scene_is?(Scene_Map)
- return unless YEA::COMMON_EVENT_SHOP::SHOPS.include?(shop_id)
- SceneManager.call(Scene_CommonEventShop)
- goods = YEA::COMMON_EVENT_SHOP::SHOPS[shop_id]
- SceneManager.scene.prepare(goods)
- end
-
- end # Game_Interpreter
- #==============================================================================
- # ■ Spriteset_CommonEventShop
- #==============================================================================
- class Spriteset_CommonEventShop < Spriteset_Map
-
- #--------------------------------------------------------------------------
- # initialize
- #--------------------------------------------------------------------------
- def initialize
- create_viewports
- create_pictures
- update
- end
-
- #--------------------------------------------------------------------------
- # create_viewports
- #--------------------------------------------------------------------------
- def create_viewports
- @viewport = Viewport.new
- @viewport.z = 2000
- end
-
- #--------------------------------------------------------------------------
- # dispose
- #--------------------------------------------------------------------------
- def dispose
- dispose_pictures
- dispose_viewports
- end
-
- #--------------------------------------------------------------------------
- # dispose_viewports
- #--------------------------------------------------------------------------
- def dispose_viewports
- @viewport.dispose
- end
-
- #--------------------------------------------------------------------------
- # update
- #--------------------------------------------------------------------------
- def update
- update_pictures
- update_viewports
- end
-
- #--------------------------------------------------------------------------
- # update_viewports
- #--------------------------------------------------------------------------
- def update_viewports
- @viewport.update
- end
-
- #--------------------------------------------------------------------------
- # update_pictures
- #--------------------------------------------------------------------------
- def update_pictures
- $game_map.screen.pictures.each do |pic|
- @picture_sprites[pic.number] ||= Sprite_Picture.new(@viewport, pic)
- @picture_sprites[pic.number].update
- end
- end
-
- end # Spriteset_CommonEventShop
- #==============================================================================
- # ■ Window_Message
- #==============================================================================
- class Window_Message < Window_Base
-
- #--------------------------------------------------------------------------
- # public instance variables
- #--------------------------------------------------------------------------
- attr_accessor :back_sprite
-
- end # Window_Message
- #==============================================================================
- # ■ Window_CommonEventShopCommand
- #==============================================================================
- class Window_CommonEventShopCommand < Window_ShopCommand
-
- #--------------------------------------------------------------------------
- # col_max
- #--------------------------------------------------------------------------
- def col_max
- return super if $imported["YEA-ShopOptions"]
- return 2
- end
-
- #--------------------------------------------------------------------------
- # make_command_list
- #--------------------------------------------------------------------------
- def make_command_list
- add_command(Vocab::ShopBuy, :buy)
- add_command(Vocab::ShopCancel, :cancel)
- end
-
- end # Window_CommonEventShopCommand
- #==============================================================================
- # ■ Window_CommonEventShopStatus
- #==============================================================================
- class Window_CommonEventShopStatus < Window_ShopStatus
-
- #--------------------------------------------------------------------------
- # update_page
- #--------------------------------------------------------------------------
- def update_page
- end
-
- #--------------------------------------------------------------------------
- # refresh
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- reset_font_settings
- draw_shop_variables
- end
-
- #--------------------------------------------------------------------------
- # draw_shop_variables
- #--------------------------------------------------------------------------
- def draw_shop_variables
- return if @item.nil?
- dy = 0
- for variable_id in @item.shop_variables
- next if $game_variables[variable_id].nil?
- draw_variable_info(variable_id, dy)
- dy += line_height
- return if dy + line_height > contents.height
- end
- end
-
- #--------------------------------------------------------------------------
- # draw_variable_info
- #--------------------------------------------------------------------------
- def draw_variable_info(variable_id, dy)
- change_color(system_color)
- name = $data_system.variables[variable_id]
- draw_text(4, dy, contents.width - 8, line_height, name)
- change_color(normal_color)
- value = $game_variables[variable_id]
- value = value.group if value.is_a?(Integer)
- draw_text(4, dy, contents.width - 8, line_height, value, 2)
- end
-
- end # Window_CommonEventShopStatus
- #==============================================================================
- # ■ Window_CommonEventShopBuy
- #==============================================================================
- class Window_CommonEventShopBuy < Window_ShopBuy
-
- #--------------------------------------------------------------------------
- # make_item_list
- #--------------------------------------------------------------------------
- def make_item_list
- @data = []
- @price = {}
- @shop_goods.each do |event_id|
- next if $data_common_events[event_id].nil?
- item = $data_common_events[event_id]
- next unless include?(item)
- @data.push(item)
- @price[item] = item.cost
- end
- end
-
- #--------------------------------------------------------------------------
- # include?
- #--------------------------------------------------------------------------
- def include?(item)
- return false unless show_show_switch?(item)
- return false unless shop_show_eval?(item)
- return true
- end
-
- #--------------------------------------------------------------------------
- # show_show_switch?
- #--------------------------------------------------------------------------
- def show_show_switch?(item)
- return false if item.nil?
- for switch_id in item.shop_show_switch
- return false unless $game_switches[switch_id]
- end
- return true
- end
-
- #--------------------------------------------------------------------------
- # shop_show_eval?
- #--------------------------------------------------------------------------
- def shop_show_eval?(item)
- return false if item.nil?
- return true if item.shop_show_eval.nil?
- return eval(item.shop_show_eval)
- end
-
- #--------------------------------------------------------------------------
- # draw_item_name
- #--------------------------------------------------------------------------
- def draw_item_name(item, dx, dy, enabled = true, dw = 172)
- return if item.nil?
- draw_icon(item.icon_index, dx, dy, enabled)
- change_color(normal_color, enabled)
- draw_text(dx+24, dy, dw, line_height, item.name)
- end
-
- #--------------------------------------------------------------------------
- # enable?
- #--------------------------------------------------------------------------
- def enable?(item)
- return false unless shop_enable_switch?(item)
- return false unless shop_enable_eval?(item)
- return !item.nil? && (price(item) <= @money)
- end
-
- #--------------------------------------------------------------------------
- # shop_enable_switch?
- #--------------------------------------------------------------------------
- def shop_enable_switch?(item)
- return false if item.nil?
- for switch_id in item.shop_enable_switch
- return false unless $game_switches[switch_id]
- end
- return true
- end
-
- #--------------------------------------------------------------------------
- # shop_req_eval?
- #--------------------------------------------------------------------------
- def shop_enable_eval?(item)
- return false if item.nil?
- return true if item.shop_enable_eval.nil?
- return eval(item.shop_enable_eval)
- end
-
- end # Window_CommonEventShopBuy
- #==============================================================================
- # ■ Window_CommonEventShopData
- #==============================================================================
- class Window_CommonEventShopData < Window_Base
-
- #--------------------------------------------------------------------------
- # initialize
- #--------------------------------------------------------------------------
- def initialize(dx, dy, item_window)
- super(dx, dy, Graphics.width - dx, fitting_height(4))
- @item_window = item_window
- @item = nil
- refresh
- end
-
- #--------------------------------------------------------------------------
- # item_window=
- #--------------------------------------------------------------------------
- def item_window= (window)
- @item_window = window
- update_item(@item_window.item)
- end
-
- #--------------------------------------------------------------------------
- # update
- #--------------------------------------------------------------------------
- def update
- super
- update_item(@item_window.item)
- end
-
- #--------------------------------------------------------------------------
- # update_item
- #--------------------------------------------------------------------------
- def update_item(item)
- return if @item == item
- @item = item
- refresh
- end
-
- #--------------------------------------------------------------------------
- # refresh
- #--------------------------------------------------------------------------
- def refresh
- contents.clear
- reset_font_settings
- draw_empty
- return if @item.nil?
- draw_item_image
- draw_item_data
- end
-
- #--------------------------------------------------------------------------
- # draw_empty
- #--------------------------------------------------------------------------
- def draw_empty
- colour = Color.new(0, 0, 0, translucent_alpha/2)
- rect = Rect.new(1, 1, 94, 94)
- contents.fill_rect(rect, colour)
- dx = 96; dy = 0
- dw = contents.width - 96
- for i in 0...4
- draw_background_box(dx, dy, dw)
- dy += line_height
- end
- end
-
- #--------------------------------------------------------------------------
- # draw_background_box
- #--------------------------------------------------------------------------
- def draw_background_box(dx, dy, dw)
- colour = Color.new(0, 0, 0, translucent_alpha/2)
- rect = Rect.new(dx+1, dy+1, dw-2, line_height-2)
- contents.fill_rect(rect, colour)
- end
-
- #--------------------------------------------------------------------------
- # draw_item_image
- #--------------------------------------------------------------------------
- def draw_item_image
- if @item.image.nil?
- icon_index = @item.icon_index
- bitmap = Cache.system("Iconset")
- rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
- target = Rect.new(0, 0, 96, 96)
- contents.stretch_blt(target, bitmap, rect)
- else
- bitmap = Cache.picture(@item.image)
- contents.blt(0, 0, bitmap, bitmap.rect, 255)
- end
- end
-
- #--------------------------------------------------------------------------
- # draw_item_data
- #--------------------------------------------------------------------------
- def draw_item_data
- draw_text_ex(98, 0, @item.shop_data)
- end
-
- end # Window_CommonEventShopData
- #==============================================================================
- # ■ Scene_CommonEventShop
- #==============================================================================
- class Scene_CommonEventShop < Scene_Shop
-
- #--------------------------------------------------------------------------
- # prepare
- #--------------------------------------------------------------------------
- def prepare(goods)
- @goods = goods
- @purchase_only = true
- end
-
- #--------------------------------------------------------------------------
- # start
- #--------------------------------------------------------------------------
- def start
- super
- setup_interpreter
- end
-
- #--------------------------------------------------------------------------
- # terminate
- #--------------------------------------------------------------------------
- def terminate
- @spriteset.dispose
- super
- end
-
- #--------------------------------------------------------------------------
- # create_command_window
- #--------------------------------------------------------------------------
- def create_command_window
- wx = @gold_window.x
- @command_window = Window_CommonEventShopCommand.new(wx, false)
- @command_window.viewport = @viewport
- @command_window.y = @help_window.height
- @command_window.set_handler(:buy, method(:command_buy))
- @command_window.set_handler(:sell, method(:command_sell))
- @command_window.set_handler(:cancel, method(:return_scene))
- end
-
- #--------------------------------------------------------------------------
- # create_status_window
- #--------------------------------------------------------------------------
- def create_status_window
- wx = @number_window.width
- wy = @dummy_window.y
- ww = Graphics.width - wx
- wh = @dummy_window.height
- @status_window = Window_CommonEventShopStatus.new(wx, wy, ww, wh)
- @status_window.viewport = @viewport
- @status_window.hide
- end
-
- #--------------------------------------------------------------------------
- # create_buy_window
- #--------------------------------------------------------------------------
- def create_buy_window
- wy = @dummy_window.y
- wh = @dummy_window.height
- @buy_window = Window_CommonEventShopBuy.new(0, wy, wh, @goods)
- @buy_window.viewport = @viewport
- @buy_window.help_window = @help_window
- @buy_window.status_window = @status_window
- @buy_window.hide
- @buy_window.set_handler(:ok, method(:on_buy_ok))
- @buy_window.set_handler(:cancel, method(:on_buy_cancel))
- end
-
- #--------------------------------------------------------------------------
- # create_data_window
- #--------------------------------------------------------------------------
- def create_data_window
- return unless $imported["YEA-ShopOptions"]
- wx = @command_window.width
- wy = @command_window.y
- @data_window = Window_CommonEventShopData.new(wx, wy, @buy_window)
- @data_window.viewport = @viewport
- end
-
- #--------------------------------------------------------------------------
- # setup_interpreter
- #--------------------------------------------------------------------------
- def setup_interpreter
- @interpreter = Game_Interpreter.new
- @message_window = Window_Message.new
- @message_window.back_opacity = 255
- @message_window.back_sprite.viewport = @viewport
- @spriteset = Spriteset_CommonEventShop.new
- end
-
- #--------------------------------------------------------------------------
- # update_interpreter
- #--------------------------------------------------------------------------
- def update_interpreter
- update_basic
- @interpreter.update
- end
-
- #--------------------------------------------------------------------------
- # update_basic
- #--------------------------------------------------------------------------
- def update_basic
- $game_map.screen.update_pictures
- @spriteset.update
- super
- end
-
- #--------------------------------------------------------------------------
- # on_buy_ok
- #--------------------------------------------------------------------------
- def on_buy_ok
- perform_buy
- instore_event
- exit_event
- end
-
- #--------------------------------------------------------------------------
- # perform_buy
- #--------------------------------------------------------------------------
- def perform_buy
- Sound.play_shop
- $game_party.lose_gold(@buy_window.price(@buy_window.item))
- @buy_window.money = money
- @gold_window.refresh
- end
-
- #--------------------------------------------------------------------------
- # instore_event
- #--------------------------------------------------------------------------
- def instore_event
- event = @buy_window.item
- return unless event.event_type == :instore
- $game_temp.reserve_common_event(event.id)
- @interpreter.setup_reserved_common_event
- update_interpreter while @interpreter.running?
- common_event_refresh_windows
- end
-
- #--------------------------------------------------------------------------
- # exit_event
- #--------------------------------------------------------------------------
- def exit_event
- event = @buy_window.item
- return unless event.event_type == :exit
- $game_temp.reserve_common_event(event.id)
- return_scene
- end
-
- #--------------------------------------------------------------------------
- # common_event_refresh_windows
- #--------------------------------------------------------------------------
- def common_event_refresh_windows
- @buy_window.activate
- @buy_window.money = money
- @buy_window.refresh
- @buy_window.select([@buy_window.index, @buy_window.item_max - 1].min)
- @status_window.refresh
- @gold_window.refresh
- @data_window.refresh unless @data_window.nil?
- end
-
- end # Scene_CommonEventShop
- #==============================================================================
- #
- # ▼ End of File
- #
- #==============================================================================
复制代码 似乎是一個利用公共事件創立的一個任務腳本
不過我英文能力有限
您可以修改的幫助說明,圖標,成本,右側所示的變量,並通過註釋標記的數據窗口中的文本。
<cost: x>
設置常見的事件以x金錢成本。
<icon: x>
更改X圖標指數為常見的事件中所使用的圖標。
<image:說明>
更改使用常見的事件名“字符串”圖形 \圖片 \文件夾中發現圖像。
<help description>
說明
</help description>
設置在店內現場幫助窗口中使用的文本。 在notebox多線將串成。 使用|換行符。 文本代碼可以使用裡面的幫助說明。
<shop data>
說明
</shop data>
可以使用,如果你有Yanfly引擎ACE - ACE鋪選項安裝。 設置店裡面的數據窗口中顯示的文本字符串。 使用|換行符。 文本代碼可以使用裡面的店鋪數據文本。
<shop variables: X>
<shop variables: x, x>
這台在屏幕右下角的狀態窗口中顯示的變量 x。 這個 notetag插入的倍數狀態窗口內顯示更多的變數。
|
评分
-
查看全部评分
|