Project1
标题:
请教,如何复制装备?
[打印本页]
作者:
无敌啊鸡
时间:
2015-1-4 23:22
标题:
请教,如何复制装备?
又来请教问题了{:2_277:}
关于装备的问题。
想请问各位大,如何复制装备?
比如记录A时期 1号角色的装备,到了B时期时 不管1号角色带着什么装备 都变成A时期的装备。
不知道这种效果肿么做额,谢谢大
(PS:还想请问一下,变更角色装备的事件脚本是什么呀?谢谢大大们。)
作者:
英顺的马甲
时间:
2015-1-4 23:59
本帖最后由 英顺的马甲 于 2015-1-7 01:17 编辑
class Game_Actor
def save_equip(name)
@saved_equip ||= {}
for i in 0..4
@saved_equip[name] ||= []
@saved_equip[name][i] = instance_variable_get((i == 0 ? "@weapon" : "@armor#{i}") + "_id")
end
end
def load_equip(name, from_bag = false, force_change = false)
raise(LoadError, "#{name.inspect}未曾储存任何装备!", caller) unless @saved_equip[name]
for i in 0..4
a = (i == 0 ? "weapon" : "armor")
v = (i == 0 ? "@#{a}_id" : "@#{a}#{i}_id")
if from_bag
if !force_change and $game_party.__send__( a + "_number", @saved_equip[name][i]) == 0
next
end
$game_party.__send__("gain_" + a, instance_variable_get(v) , 1)
$game_party.__send__("lose_" + a, @saved_equip[name][i], 1)
end
instance_variable_set(v, @saved_equip[name][i])
end
end
end
复制代码
加了两个参数,所以点评内的bug可以被解决
用法:
$game_actors[角色id].save_equip(随便打个号码用作记录) # 保存装备
$game_actors[角色id].load_equip(保存时的记录号码) # 载入装备,直接替换,背包内的装备没有任何改变
$game_actors[角色id].load_equip(保存时的记录号码, true) # 以替换的方式载入装备,若背包内没有该装备则保持原样
$game_actors[角色id].load_equip(保存时的记录号码, true, true) # 以替换的方式“强制”载入装备,若背包内没有该装备仍然替换
复制代码
至于换装备的脚本是:
$game_actors[角色id].equip(装备种类, 装备id) # 具体请阅读 Game_Actor 内第390行
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1