Project1

标题: 请教P叔,关于套装问题(2)。 [打印本页]

作者: crow2006    时间: 2013-7-17 16:06
标题: 请教P叔,关于套装问题(2)。
本帖最后由 crow2006 于 2013-7-17 16:14 编辑

基本条件:P叔整合系统1.04版本
例:在
class Game_Battler
def make_obj_damage_value(user, obj)
中添加以下这段
  $shjm10  = [201] # 技能伤害附加1000点套装头部 新兵战盔
  $shjm20  = [202] # 技能伤害附加1000点套装衣服 新兵战甲
  $shjm30  = [203] # 技能伤害附加1000点套装盾牌 新兵战盾
###########套装附加伤害###################################################   
  if user.is_a?(Game_Actor)                 # 如果攻击者是“主角”
    if damage > 0 and user.armors != [nil]
    damage += 1000 if user.armors.any?{|i| $shjm10.include?(i.base_id)} and user.armors.any?{|i| $shjm20.include?(i.base_id)} and user.armors.any?{|i| $shjm30.include?(i.base_id)}
#套装属性:技能伤害附加1000点
    end
  end
######################################################################

这样写好之后,放在游戏中测试。
【1】如图,装备编号201,202,203的3件装备:

【2】攻击测试:

【3】替换掉套装中的头部;

注意:这里攻击力上升了5点。
【4】攻击测试:

攻击下降了一大截。
如图所示:
装备编号201,202,203的3件防具确实可以起到“技能伤害附加1000点”的效果,
上述任何一个部位的编号如果不是201,202或203的话,“技能伤害附加1000点”的效果立即失效。
但就在这里,问题来了。
如果某一部位的防具为空,即未装备防具,那么主动技能攻击时脚本立刻报错。
【如图】


934行即:  
damage += 1000 if user.armors.any?{|i| $shjm10.include?(i.base_id)} and user.armors.any?{|i| $shjm20.include?(i.base_id)} and user.armors.any?{|i| $shjm30.include?(i.base_id)}
请求帮忙解决。防具为空时如何不报错。非常感谢!
请P叔和苏联大神都来看看。@protosssonny  @Password



















作者: 怪蜀黍    时间: 2013-7-17 16:20
首先把防具全部卸下来,然后在
if user.is_a?(Game_Actor)
下面一行写:
p user.armors
看看显示什么,如果显示什么,就把
if damage > 0 and user.armors != [nil]
改成
if damage > 0 and user.armors != 什么
作者: crow2006    时间: 2013-7-17 16:28
protosssonny 发表于 2013-7-17 16:20
首先把防具全部卸下来,然后在
if user.is_a?(Game_Actor)
下面一行写:


显示这个,我再试试。
作者: 怪蜀黍    时间: 2013-7-17 16:40
本帖最后由 protosssonny 于 2013-7-18 10:42 编辑
  1.   if user.is_a?(Game_Actor)                 # 如果攻击者是“主角”
  2.     if damage > 0
  3.       if user.armors[0].is_a?(RPG::Armor) and user.armors.base_id == 201
  4.         if user.armors[1].is_a?(RPG::Armor) and user.armors.base_id == 202
  5.           if user.armors[2].is_a?(RPG::Armor) and user.armors.base_id == 203
  6.             damage += 1000
  7.           end
  8.         end
  9.       end  
  10.     end
  11.   end
复制代码





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