Project1

标题: 请教,如何复制装备? [打印本页]

作者: 无敌啊鸡    时间: 2015-1-4 23:22
标题: 请教,如何复制装备?
又来请教问题了{:2_277:}  
关于装备的问题。
想请问各位大,如何复制装备?
比如记录A时期 1号角色的装备,到了B时期时 不管1号角色带着什么装备 都变成A时期的装备。

不知道这种效果肿么做额,谢谢大
(PS:还想请问一下,变更角色装备的事件脚本是什么呀?谢谢大大们。)
作者: 英顺的马甲    时间: 2015-1-4 23:59
本帖最后由 英顺的马甲 于 2015-1-7 01:17 编辑
  1. class Game_Actor
  2.   def save_equip(name)
  3.     @saved_equip ||= {}
  4.     for i in 0..4
  5.       @saved_equip[name] ||= []
  6.       @saved_equip[name][i] = instance_variable_get((i == 0 ? "@weapon" : "@armor#{i}") + "_id")
  7.     end
  8.   end
  9.   def load_equip(name, from_bag = false, force_change = false)
  10.     raise(LoadError, "#{name.inspect}未曾储存任何装备!", caller) unless @saved_equip[name]
  11.     for i in 0..4
  12.       a = (i == 0 ? "weapon" : "armor")
  13.       v = (i == 0 ? "@#{a}_id" : "@#{a}#{i}_id")
  14.       if from_bag
  15.         if !force_change and $game_party.__send__( a + "_number", @saved_equip[name][i]) == 0
  16.           next
  17.         end
  18.         $game_party.__send__("gain_" + a, instance_variable_get(v) , 1)
  19.         $game_party.__send__("lose_" + a, @saved_equip[name][i], 1)
  20.       end
  21.       instance_variable_set(v, @saved_equip[name][i])
  22.     end
  23.   end
  24. end
复制代码
加了两个参数,所以点评内的bug可以被解决
用法:
  1. $game_actors[角色id].save_equip(随便打个号码用作记录)     # 保存装备
  2. $game_actors[角色id].load_equip(保存时的记录号码)     # 载入装备,直接替换,背包内的装备没有任何改变
  3. $game_actors[角色id].load_equip(保存时的记录号码, true)     # 以替换的方式载入装备,若背包内没有该装备则保持原样
  4. $game_actors[角色id].load_equip(保存时的记录号码, true, true)     # 以替换的方式“强制”载入装备,若背包内没有该装备仍然替换
复制代码
至于换装备的脚本是:
  1. $game_actors[角色id].equip(装备种类, 装备id)  # 具体请阅读 Game_Actor 内第390行
复制代码





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