设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2872|回复: 3
打印 上一主题 下一主题

[已经解决] 改进版负重脚本,如何让已装备品也计入负重?

[复制链接]

Lv2.观梦者

梦石
0
星屑
670
在线时间
894 小时
注册时间
2007-4-3
帖子
84
跳转到指定楼层
1
发表于 2014-8-9 22:26:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
这里第3楼
https://rpg.blue/thread-368485-1-1.html
是一个改进版负重脚本,但不论原移植版还是改进版,已装备上的道具都不计入负重值,要卸下才会计入


如何让已装备上的道具也计入负重值?

Lv5.捕梦者

梦石
0
星屑
22973
在线时间
8639 小时
注册时间
2011-12-31
帖子
3367
2
发表于 2014-8-9 22:33:28 | 只看该作者
本帖最后由 tseyik 于 2014-8-9 22:34 编辑

用這個負重脚本巴
https://rpg.blue/thread-369538-1-1.html
7楼
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
670
在线时间
894 小时
注册时间
2007-4-3
帖子
84
3
 楼主| 发表于 2014-8-9 22:53:45 | 只看该作者
tseyik 发表于 2014-8-9 22:33
用這個負重脚本巴
https://rpg.blue/thread-369538-1-1.html
7楼

这个和我用的那个仓库脚本不兼容
回复 支持 反对

使用道具 举报

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10074
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

4
发表于 2014-8-9 23:46:58 | 只看该作者

  1. class RPG::BaseItem
  2.   def load
  3.     return if self.is_a?(RPG::Skill)
  4.     self.note.split(/[\r\n]+/).each { |line|
  5.       if line =~ /\[(?:load|负重|負重) (\w+)\]/
  6.         return $1.nil? ? 0 : $1.to_i
  7.       end}
  8.     return 0
  9.   end
  10. end

  11. class Scene_Item < Scene_ItemBase
  12.   alias load_start start
  13.   alias load_terminate terminate
  14.   alias load_update update
  15.   def start
  16.     load_start
  17.     @load_window = Window_Base.new(392, 0, 152, 56)
  18.     @load_window.viewport = @viewport
  19.   end
  20.   def terminate
  21.     @load_window.dispose
  22.     load_terminate
  23.   end
  24.   def update
  25.     @load_window.update
  26.     if @temp_load != $game_party.current_load
  27.       @load_window.contents.clear
  28.       @load_window.contents.draw_text(0, 0, 120, 24, "负重:#{$game_party.current_load}/#{$game_party.total_load}")
  29.       @temp_load = $game_party.current_load
  30.     end
  31.     if Input.trigger?(Input::X)
  32.       @item = @item_window.item
  33.       $game_party.lose_item(@item, 1)
  34.       @item_window.refresh
  35.     end
  36.     load_update
  37.   end
  38. end

  39. class Scene_Shop < Scene_MenuBase
  40.   alias load_start start
  41.   alias load_terminate terminate
  42.   alias load_update update
  43.   def start
  44.     load_start
  45.     @load_window = Window_Base.new(392, 0, 152, 56)
  46.     @load_window.viewport = @viewport
  47.   end
  48.   def terminate
  49.     @load_window.dispose
  50.     load_terminate
  51.   end
  52.   def update
  53.     @load_window.update
  54.     if @temp_load != $game_party.current_load
  55.       @load_window.contents.clear
  56.       @load_window.contents.draw_text(0, 0, 120, 24, "负重:#{$game_party.current_load}/#{$game_party.total_load}")
  57.       @temp_load = $game_party.current_load
  58.     end
  59.     load_update
  60.   end
  61. end

  62. class Game_Party < Game_Unit
  63.   attr_reader :current_load
  64.   alias load_initialize initialize
  65.   alias load_gain_item gain_item
  66.   def initialize
  67.     load_initialize
  68.     @current_load = 0
  69.   end
  70.   # 获取队伍最大负重
  71.   def total_load
  72.     party_load = 0
  73.     #members.size.times do |i|
  74.     for i in 0...members.size
  75.       actor = members[i]
  76.       party_load += actor.load
  77.     end
  78.     return party_load
  79.    
  80.   end

  81.   def gain_item(item, n, include_equip = false)
  82.     return if item.nil?
  83.       load_gain_item(item, n, include_equip)
  84.       @current_load += item.load * n if $load_ok == false || $load_ok == nil
  85.   end
  86. end
  87. class Game_Actor < Game_Battler
  88.   # 获取队员负重
  89.   def load
  90.     return (mhp + mmp) * @level / agi
  91.   end
  92. end
  93. class Game_Interpreter
  94.   alias load_command_126 command_126
  95.   alias load_command_127 command_127
  96.   alias load_command_128 command_128
  97.   
  98.   def command_126
  99.     n = operate_value(@params[1], @params[2], @params[3])
  100.     return command_115 if check_load(@params[0], 0, n)
  101.     load_command_126
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● 增減武器
  105.   #--------------------------------------------------------------------------
  106.   def command_127
  107.     n = operate_value(@params[1], @params[2], @params[3])
  108.     return command_115 if check_load(@params[0], 1, n)
  109.     load_command_127
  110.   end
  111.   #--------------------------------------------------------------------------
  112.   # ● 增減防具
  113.   #--------------------------------------------------------------------------
  114.   def command_128
  115.     n = operate_value(@params[1], @params[2], @params[3])
  116.     return command_115 if check_load(@params[0], 2, n)
  117.     load_command_128
  118.   end
  119.   
  120.   def check_load(item_id, type, n)
  121.     case type
  122.     when 0; item = $data_items[item_id]
  123.     when 1; item = $data_weapons[item_id]
  124.     when 2; item = $data_armors[item_id]
  125.     end
  126.     if (((item.load * n) + $game_party.current_load) > $game_party.total_load)
  127.         $game_message.texts.push("负重过重,现在无法移动!请丢弃部分物品") if $game_message.visible != true
  128.         $game_message.visible = true
  129.     end
  130.     return
  131.   end
  132. end

  133. class Game_Player < Game_Character
  134.   
  135.   alias vipmovable? movable?
  136.   #--------------------------------------------------------------------------
  137.   # ● 判定是否负重已满
  138.   #--------------------------------------------------------------------------
  139.   def mfz_vip?
  140.     $game_party.total_load < $game_party.current_load
  141.   end
  142.   #--------------------------------------------------------------------------
  143.   # ● 判定是否可以移动
  144.   #--------------------------------------------------------------------------
  145.   def movable?
  146.     return false if mfz_vip?
  147.     vipmovable?
  148.   end
  149. end
  150. class Game_Actor < Game_Battler

  151.   #--------------------------------------------------------------------------
  152.   # ● 交换物品
  153.   #     new_item : 取出的物品
  154.   #     old_item : 放入的物品
  155.   #--------------------------------------------------------------------------
  156.   def trade_item_with_party(new_item, old_item)
  157.     return false if new_item && !$game_party.has_item?(new_item)
  158.     $load_ok = true
  159.     $game_party.gain_item(old_item, 1)
  160.     $game_party.lose_item(new_item, 1)
  161.     $load_ok = false
  162.     return true
  163.   end
  164. end
复制代码

点评

使用了,没有任何问题,感谢解答 ^ ^  发表于 2014-8-10 02:16
未完整的测试过,大体上没什么问题  发表于 2014-8-9 23:47

评分

参与人数 1梦石 +1 收起 理由
taroxd + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-24 00:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表