赞 | 90 |
VIP | 350 |
好人卡 | 311 |
积分 | 101 |
经验 | 150139 |
最后登录 | 2024-7-17 |
在线时间 | 5020 小时 |
Lv4.逐梦者 (版主) 无限の剣制
- 梦石
- 0
- 星屑
- 10079
- 在线时间
- 5020 小时
- 注册时间
- 2013-2-28
- 帖子
- 5030
|
本帖最后由 VIPArcher 于 2014-7-21 07:23 编辑
- class RPG::BaseItem
- def load
- return if self.is_a?(RPG::Skill)
- self.note.split(/[\r\n]+/).each { |line|
- if line =~ /\[(?:load|负重|負重) (\w+)\]/
- return $1.nil? ? 0 : $1.to_i
- end}
- return 0
- end
- end
- class Scene_Item < Scene_ItemBase
- alias load_start start
- alias load_terminate terminate
- alias load_update update
- def start
- load_start
- @load_window = Window_Base.new(392, 0, 152, 56)
- @load_window.viewport = @viewport
- end
- def terminate
- @load_window.dispose
- load_terminate
- end
- def update
- @load_window.update
- if @temp_load != $game_party.current_load
- @load_window.contents.clear
- @load_window.contents.draw_text(0, 0, 120, 24, "负重:#{$game_party.current_load}/#{$game_party.total_load}")
- @temp_load = $game_party.current_load
- end
- if Input.trigger?(Input::X)
- @item = @item_window.item
- $game_party.lose_item(@item, 1)
- @item_window.refresh
- end
- load_update
- end
- end
- class Scene_Shop < Scene_MenuBase
- alias load_start start
- alias load_terminate terminate
- alias load_update update
- def start
- load_start
- @load_window = Window_Base.new(392, 0, 152, 56)
- @load_window.viewport = @viewport
- end
- def terminate
- @load_window.dispose
- load_terminate
- end
- def update
- @load_window.update
- if @temp_load != $game_party.current_load
- @load_window.contents.clear
- @load_window.contents.draw_text(0, 0, 120, 24, "负重:#{$game_party.current_load}/#{$game_party.total_load}")
- @temp_load = $game_party.current_load
- end
- load_update
- end
- end
- class Game_Party < Game_Unit
- attr_reader :current_load
- alias load_initialize initialize
- alias load_gain_item gain_item
- def initialize
- load_initialize
- @current_load = 0
- end
- # 获取队伍最大负重
- def total_load
- party_load = 0
- #members.size.times do |i|
- for i in 0...members.size
- actor = members[i]
- party_load += actor.load
- end
- return party_load
-
- end
- def gain_item(item, n, include_equip = false)
- return if item.nil?
- load_gain_item(item, n, include_equip)
- @current_load += item.load * n
- end
- end
- class Game_Actor < Game_Battler
- # 获取队员负重
- def load
- return (mhp + mmp) * @level / agi
- end
- end
- class Game_Interpreter
- alias load_command_126 command_126
- alias load_command_127 command_127
- alias load_command_128 command_128
-
- def show_gain_window2
- viparcher = Window_Base.new((640-300)/2,128 + 16,200,100 - 16)
- viparcher.contents.draw_text(0, 20, 160, 30, "负重已满,无法移动", 2)
- end
- def command_126
- n = operate_value(@params[1], @params[2], @params[3])
- return command_115 if check_load(@params[0], 0, n)
- load_command_126
- end
- #--------------------------------------------------------------------------
- # ● 增減武器
- #--------------------------------------------------------------------------
- def command_127
- n = operate_value(@params[1], @params[2], @params[3])
- return command_115 if check_load(@params[0], 1, n)
- load_command_127
- end
- #--------------------------------------------------------------------------
- # ● 增減防具
- #--------------------------------------------------------------------------
- def command_128
- n = operate_value(@params[1], @params[2], @params[3])
- return command_115 if check_load(@params[0], 2, n)
- load_command_128
- end
-
- def check_load(item_id, type, n)
- case type
- when 0; item = $data_items[item_id]
- when 1; item = $data_weapons[item_id]
- when 2; item = $data_armors[item_id]
- end
- if (((item.load * n) + $game_party.current_load) > $game_party.total_load)
- show_gain_window2
- end
- return
- end
- end
- class Game_Player < Game_Character
-
- alias vipmovable? movable?
- #--------------------------------------------------------------------------
- # ● 判定是否负重已满
- #--------------------------------------------------------------------------
- def mfz_vip?
- $game_party.total_load < $game_party.current_load
- end
- #--------------------------------------------------------------------------
- # ● 判定是否可以移动
- #--------------------------------------------------------------------------
- def movable?
- return false if mfz_vip?
- vipmovable?
- end
- end
复制代码 稍微测试了一下,似乎没什么问题,自己去详细测试吧。
修改了提示窗口 |
评分
-
查看全部评分
|