Project1

标题: 【VA】移植过来的负重系统 [打印本页]

作者: 杂兵天下    时间: 2012-3-1 14:50
标题: 【VA】移植过来的负重系统
需要原VX版?请点此
恩,就这样了。
一定要注意,任务物品负重一定要是0,否则获得任务物品了却因为负重无法获得,那就坑爹了
RUBY 代码复制
  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.   end
  80.   def gain_item(item, n, include_equip = false)
  81.     return if item.nil?
  82.     if ((item.load * n) + @current_load) > total_load
  83.       $game_message.texts.push("靠!负重都不足了,你妹的怎么还不赶快清空物品!")
  84.       $game_message.visible = true
  85.       return
  86.     else
  87.       @current_load += item.load * n
  88.     end
  89.     load_gain_item(item, n, include_equip)
  90.   end
  91. end
  92. class Game_Actor < Game_Battler
  93.   # 获取队员负重
  94.   def load
  95.     return (mhp + mmp) * @level / agi
  96.   end
  97. end
  98. class Game_Interpreter
  99.   alias load_command_126 command_126
  100.   alias load_command_127 command_127
  101.   alias load_command_128 command_128
  102.   def command_126
  103.     n = operate_value(@params[1], @params[2], @params[3])
  104.     return command_115 if check_load(@params[0], 0, n)
  105.     load_command_126
  106.   end
  107.   #--------------------------------------------------------------------------
  108.   # ● 增減武器
  109.   #--------------------------------------------------------------------------
  110.   def command_127
  111.     n = operate_value(@params[1], @params[2], @params[3])
  112.     return command_115 if check_load(@params[0], 1, n)
  113.     load_command_127
  114.   end
  115.   #--------------------------------------------------------------------------
  116.   # ● 增減防具
  117.   #--------------------------------------------------------------------------
  118.   def command_128
  119.     n = operate_value(@params[1], @params[2], @params[3])
  120.     return command_115 if check_load(@params[0], 2, n)
  121.     load_command_128
  122.   end
  123.   def check_load(item_id, type, n)
  124.     case type
  125.     when 0; item = $data_items[item_id]
  126.     when 1; item = $data_weapons[item_id]
  127.     when 2; item = $data_armors[item_id]
  128.     end
  129.     if (((item.load * n) + $game_party.current_load) > $game_party.total_load)
  130.       $game_message.texts.push("靠!负重都不足了,你妹的怎么还不赶快清空物品!")
  131.       $game_message.visible = true
  132.       return true
  133.     end
  134.     return false
  135.   end
  136. end

作者: xuzhengchi    时间: 2012-3-1 14:55
功能和设置和VX版本的一样吗?和yangfly的脚本应该能兼容的吧
作者: 杂兵天下    时间: 2012-3-1 17:40
本帖最后由 杂兵天下 于 2012-3-1 21:40 编辑
  1. class RPG::BaseItem
  2.   def description
  3.     if load==0
  4.       return @description
  5.     else
  6.       return @description+"负重:"+load.to_s
  7.     end
  8.   end
  9. end
复制代码
好了。
@xuzhengchi
作者: 雪流星    时间: 2012-3-1 21:52
83行和130行

我原版的不是那句话吧
作者: 867984056    时间: 2012-3-5 20:26
脚本小白球用法
作者: lucialiuyachen1    时间: 2012-3-25 10:06
请问下怎么设置物品重量呢……
作者: xuzhengchi    时间: 2012-4-10 16:23
突然想起来,当装备穿上之后负重就没了。能否改成穿上的装备也占负重呢?
作者: 465575383    时间: 2012-4-14 01:04
话说,可以把每个变量设置成负重吗?这样虽然简单,但是绝对很实用。。。。
作者: 562305484    时间: 2012-6-3 20:54
代码复制不起啊
作者: deser2010    时间: 2012-6-25 10:43
这个。。。有问题啊。。
如果负重满了去买东西 钱还是会花掉 但是退出商店的时候又会提示说负重满了东西没得到。。。
抗议啊!JS有木有!
能否修改为负重不足直接无法购买呢?
作者: 1035041075    时间: 2012-8-1 17:45
负重, 有意思,我顶
作者: 影子抓影    时间: 2012-8-2 11:53
这个有用!我正在找这东西
作者: ′芙兰朵露    时间: 2012-9-17 07:38
负重有了。
只是怎么设置呢?
在恢复药剂备注栏内 load 1 之后
负重仍然是0/18...
作者: xixifilm    时间: 2013-2-22 13:47
的确,负重满了,买东西依然能买花了钱,但没物品,满的提示随后才来,钱白花了;
而且满了物品,卸下的武器也会消失了,才来提示又是没作用
脚本里写 X键是删除物件,但失效了,最好设计会条出框框“是否丢一个物件”
如果挂在身上的武器都能给予重量,及在物品栏里暗着(或标记)显示,就更直观管理了
作者: 神梦无痕    时间: 2014-6-1 13:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 2642609165    时间: 2015-2-6 11:24
为什么负重范围是随机的?第一次负重0/50,现在是0/6
作者: pkpk22pk    时间: 2017-9-28 15:55
mv不能用..
作者: 2498126422    时间: 2019-11-28 11:30
pkpk22pk 发表于 2017-9-28 15:55
mv不能用..

肯定不能通用啊,一个是ruby语言,一个是JS。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1