赞 7
VIP 0
好人卡 0
积分 19
经验 0
最后登录 2022-10-10
在线时间 316 小时
Lv3.寻梦者
梦石 0
星屑 1939
在线时间 316 小时
注册时间 2018-3-4
帖子 57
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
事源是想要抄袭默认脚本 的装备系统 来制作另一套装备系统 顺便了解一下默认脚本 是如何运作 的
靠着各种报错 来一步步了解 结果来到object=的报错 就卡住 了
翻找一星期了 还是理不清Game_BaseItem 和Game_Actor 和Window_EquipItem 和Scene_Equip 之间是如何互动 的
反而被默认脚本 那扭成一团的道具系统 把思路 也扭成一团 了……
所以只好来找大佬求救 了呢
其实就想问问这个报错 是错啥
class Game_Actor < Game_Battler
def force_change_equip( slot_id, item)
@equips [ slot_id] .object = item # ← 报的这里错
release_unequippable_items( false )
refresh
end
end
class Game_Actor < Game_Battler
def force_change_equip( slot_id, item)
@equips [ slot_id] .object = item # ← 报的这里错
release_unequippable_items( false )
refresh
end
end
然後是距离完成还很遥远 的自制脚本
因为目前还是在完全抄袭默认脚本 然後把class名称 从Equip 换成Soul 的阶段所以冗长又看似无关 的部份就不放上来了
这三段 是目前改动里最可疑 的部份
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 获取装备栏的数组
#--------------------------------------------------------------------------
def equip_slots
return [ 0 ,0 ,2 ,3 ,4 ,5 ,5 ,5 ,5 ,5 ,6 ,6 ,6 ,6 ,7 ,7 ,7 ,8 ,8 ,9 ] if dual_wield? # 双持武器
return [ 0 ,1 ,2 ,3 ,4 ,5 ,5 ,5 ,5 ,5 ,6 ,6 ,6 ,6 ,7 ,7 ,7 ,8 ,8 ,9 ] # 普通
end
end
class RPG::Armor < RPG::EquipItem
#--------------------------------------------------------------------------
# ● 装备类型
#--------------------------------------------------------------------------
def etype_id
@note .include ?( "<soul>" ) ? etype_id = 5 : @etype_id
end
end
class Window_SoulItem < Window_ItemList
#--------------------------------------------------------------------------
# ● 设置装备栏 ID
#--------------------------------------------------------------------------
def slot_id=( slot_id)
return if @slot_id == slot_id + 5
@slot_id = slot_id + 5
refresh
self .oy = 0
end
end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 获取装备栏的数组
#--------------------------------------------------------------------------
def equip_slots
return [ 0 ,0 ,2 ,3 ,4 ,5 ,5 ,5 ,5 ,5 ,6 ,6 ,6 ,6 ,7 ,7 ,7 ,8 ,8 ,9 ] if dual_wield? # 双持武器
return [ 0 ,1 ,2 ,3 ,4 ,5 ,5 ,5 ,5 ,5 ,6 ,6 ,6 ,6 ,7 ,7 ,7 ,8 ,8 ,9 ] # 普通
end
end
class RPG::Armor < RPG::EquipItem
#--------------------------------------------------------------------------
# ● 装备类型
#--------------------------------------------------------------------------
def etype_id
@note .include ?( "<soul>" ) ? etype_id = 5 : @etype_id
end
end
class Window_SoulItem < Window_ItemList
#--------------------------------------------------------------------------
# ● 设置装备栏 ID
#--------------------------------------------------------------------------
def slot_id=( slot_id)
return if @slot_id == slot_id + 5
@slot_id = slot_id + 5
refresh
self .oy = 0
end
end
制作思路 方面是把[0,1,2,3,4]後面的[5,5,5,5,5,6,6,6,6,7,7,7,8,8,9]放到另一个装备页 中
但是新装备页 里的从Window_EquipItem 仿制的Window_SoulItem 似乎无法……嗯……怎麽说呢……就是应该错了 但是无法理解错在哪里 的说
求各路大佬围观指点