Project1

标题: 请问如何让“包含已装备”优先于增减武器/护甲判定? [打印本页]

作者: jianyulei    时间: 2016-8-8 13:27
标题: 请问如何让“包含已装备”优先于增减武器/护甲判定?
原事件增减武器/护甲的指令里有个包含已装备的选项,勾选的话在增减武器/护甲的时候,如果身上没有这些东西,会选择已装备的丢弃。
请问如果我想让已装备的武器/护甲 先进行丢弃判断,如果装备上没有再丢弃背包里的该怎么修改?
作者: 百里_飞柳    时间: 2016-8-8 14:52

  1. class Game_Party < Game_Unit
  2.   #--------------------------------------------------------------------------
  3.   # ● 增加/减少物品
  4.   #     include_equip : 是否包括装备
  5.   #--------------------------------------------------------------------------
  6.   def gain_item(item, amount, include_equip = false)
  7.     container = item_container(item.class)
  8.     return unless container

  9.     last_number = item_number(item) #旧物品数量
  10.     new_number = last_number + amount #新物品数量
  11.     a = amount #数量
  12.     if include_equip && new_number < last_number #丢弃物品的情况
  13.       members.each do |actor|
  14.         while a < 0 && actor.equips.include?(item)
  15.           discard_members_equip(item, 1)
  16.           a += 1
  17.         end
  18.       end
  19.     end

  20.     new_number = last_number + a #重新修正新物品数量
  21.    
  22.     container[item.id] = [[new_number, 0].max, max_item_number(item)].min #物品数量修改
  23.     container.delete(item.id) if container[item.id] == 0

  24.     $game_map.need_refresh = true
  25.   end
  26. end
复制代码


已测试,复制到main脚本前面,原默认脚本后。
方法完全覆盖,未考虑兼容。

实现:扣除装备时,按照队列顺序扣除对应装备,如果不够,再扣除包裹中的。




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