设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1286|回复: 4
打印 上一主题 下一主题

[已经解决] 请教P叔,关于套装问题(2)。

[复制链接]

Lv2.观梦者

梦石
0
星屑
582
在线时间
917 小时
注册时间
2013-3-13
帖子
557
跳转到指定楼层
1
发表于 2013-7-17 16:06:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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


















Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

来自 4楼
发表于 2013-7-17 16:40:31 | 只看该作者
本帖最后由 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
复制代码

点评

谢谢,这样完美了。  发表于 2013-7-18 15:26
因为按上面这段脚本来说,装备盾牌未装备头盔时,还是会报错。  发表于 2013-7-18 08:24
我把 if damage > 0 改成 if damage > 0 and user.armors[0] != nil and user.armors[1] != nil and user.armors[2] != nil and user.armors[3] != nil 这样就是有装备部位为空时,无效果   发表于 2013-7-18 08:23
啊!非常感谢,原来是这样写的。  发表于 2013-7-17 16:46

评分

参与人数 2星屑 +100 梦石 +1 收起 理由
Luciffer + 1 认可答案
八宝粥先生 + 100 认可答案

查看全部评分

《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

八宝粥的基叔

梦石
0
星屑
4684
在线时间
5240 小时
注册时间
2009-4-29
帖子
14318

贵宾

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

点评

试过了, 如果某一装备为空的话,测试时候还是报一样的错。  发表于 2013-7-17 16:32
好的,我这就试试。  发表于 2013-7-17 16:24
《逝去的回忆3:四叶草之梦》真情发布,欢迎点击图片下载试玩喵。

《逝去的回忆3》的讨论群:
一群:192885514
二群:200460747
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
582
在线时间
917 小时
注册时间
2013-3-13
帖子
557
3
 楼主| 发表于 2013-7-17 16:28:33 | 只看该作者
protosssonny 发表于 2013-7-17 16:20
首先把防具全部卸下来,然后在
if user.is_a?(Game_Actor)
下面一行写:


显示这个,我再试试。

点评

试试现在的,上面$shjm10什么的都可以删除了。  发表于 2013-7-18 10:42
我就知道还会报错,但是我昨天没时间改了。  发表于 2013-7-18 10:39
是的,还是报错了。非常感谢P叔。  发表于 2013-7-17 16:33
不过我感觉这样也会报错,我帮你写一个。  发表于 2013-7-17 16:30
if damage > 0 and user.armors != [nil, nil, nil, nil]  发表于 2013-7-17 16:29
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-15 13:02

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表