Project1
标题: 关于装备和道具的三个问题…… [打印本页]
作者: fbeds 时间: 2017-4-15 19:47
标题: 关于装备和道具的三个问题……
那么,我就不多废话直接问了……
①如何设定使每个角色的4号和5号装备栏都变成饰品栏?只要是饰品类的装备都能装备在4号或5号栏?
②如何设定某些道具只有在装备了某个特定的装备后才能使用?(其实是和①的问题一起的,就是在4号或5号装备栏装备特定饰品才能使用某些道具,并且若因没有装备相应饰品而无法使用的道具不会在战斗中的物品栏里显示)
③如何记录玩家此时所持有的道具,且之后可以用一些办法将玩家现在持有的道具还原成之前所记录的?(最好这个还原的指令能在战斗中也可以用)
虽然有三个问题,但希望至少能解决其中一两题的大神也来帮一下忙啊!我会万分感谢的!
作者: 魔法丶小肉包 时间: 2017-4-15 20:28
本帖最后由 魔法丶小肉包 于 2017-4-16 09:53 编辑
1.
class Game_Actor < Game_Battler
def equip_slots
return [0,0,2,4,4] if dual_wield?
return [0,1,2,4,4]
end
end
class Game_Actor < Game_Battler
def equip_slots
return [0,0,2,4,4] if dual_wield?
return [0,1,2,4,4]
end
end
2.
class Game_BattlerBase
def item_conditions_met?(item)
if item.id == 1
item_ok?($data_armors[1]) && usable_item_conditions_met?(item) && $game_party.has_item?(item)
else
usable_item_conditions_met?(item) && $game_party.has_item?(item)
end
end
def item_ok?(item)
return true
end
end
class Game_Actor < Game_Battler
def item_ok?(item)
return true if $game_party.members_equip_include?(item)
return false
end
end
class Game_BattlerBase
def item_conditions_met?(item)
if item.id == 1
item_ok?($data_armors[1]) && usable_item_conditions_met?(item) && $game_party.has_item?(item)
else
usable_item_conditions_met?(item) && $game_party.has_item?(item)
end
end
def item_ok?(item)
return true
end
end
class Game_Actor < Game_Battler
def item_ok?(item)
return true if $game_party.members_equip_include?(item)
return false
end
end
作者: fbeds 时间: 2017-4-16 17:15
本帖最后由 fbeds 于 2017-4-16 17:26 编辑
②的脚本怎么用啊……而且你设定的貌似是单个道具的?我想设定一下多个道具对应不同装备的啊,比如1~20号道具只有装备1号防具才能用,21~50号要装备2号防具……以此类似,就是这样……
作者: 魔法丶小肉包 时间: 2017-4-16 20:37
注释上应该写明白了,根据自己的需要去改
class Game_BattlerBase
ITEM1 = [1,2] #1,2号物品
ITEM2 = [3,4] #3,4号物品
def item_conditions_met?(item)
if ITEM1.include?(item.id)
item_ok?($data_armors[1]) && usable_item_conditions_met?(item) && $game_party.has_item?(item) #只有在装备了1号防具时才能使用
elsif ITEM2.include?(item.id)
item_ok?($data_armors[2]) && usable_item_conditions_met?(item) && $game_party.has_item?(item) #只有在装备了2号防具时才能使用
else
usable_item_conditions_met?(item) && $game_party.has_item?(item)
end
end
def item_ok?(item)
return true
end
end
class Game_Actor < Game_Battler
def item_ok?(item)
return true if $game_party.members_equip_include?(item)
return false
end
end
class Game_BattlerBase
ITEM1 = [1,2] #1,2号物品
ITEM2 = [3,4] #3,4号物品
def item_conditions_met?(item)
if ITEM1.include?(item.id)
item_ok?($data_armors[1]) && usable_item_conditions_met?(item) && $game_party.has_item?(item) #只有在装备了1号防具时才能使用
elsif ITEM2.include?(item.id)
item_ok?($data_armors[2]) && usable_item_conditions_met?(item) && $game_party.has_item?(item) #只有在装备了2号防具时才能使用
else
usable_item_conditions_met?(item) && $game_party.has_item?(item)
end
end
def item_ok?(item)
return true
end
end
class Game_Actor < Game_Battler
def item_ok?(item)
return true if $game_party.members_equip_include?(item)
return false
end
end
作者: 芯☆淡茹水 时间: 2017-4-16 21:19
LZ的问题2还是比较麻烦的啊,他要求是判断单个人,不是整个队伍。
比如 1号物品需装备1号防具。那么A装备了1号防具,能使用1号物品,而B没有装备1号防具,就不能使用1号物品。 简单点就用哈希表设置关系 {1=>1,2=>1,.....20=>1,..... },虽然麻烦点,等LZ慢慢去设置吧。
那么,这个只是装备限制判断
def equip_limit(item)
return true unless hash.keys.include?(item.id)
return item_ok?(item.id)
end
角色的装备限制判断
def item_ok?(item_id)
equip_id = hash[item_id]
return armors.include?($data_armors[equip_id])
end
如果再加上武器,还要更麻烦一点,,,这句话当我没说。
作者: fbeds 时间: 2017-4-16 21:37
哈希表是什么?怎么设置?
作者: fbeds 时间: 2017-4-22 14:05
③的问题有办法解决吗?
作者: fbeds 时间: 2017-4-23 17:14
③我已经找到解决方法了,谢了。
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |