查看: 3188|回复: 6

[已经解决] 求教怎么调用二刀流主手武器的攻击力和副手武器的攻击力

[复制链接]
梦石
0
星屑
647
在线时间
165 小时
注册时间
2012-4-18
回帖
237
发表于 2013-11-1 20:02:57 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 salvareless 于 2013-11-2 00:14 编辑

实在想不出来了,还是发个帖子问问各路大神吧。

如题,怎么在伤害公式中调用二刀流职业主手武器的攻击力,和副手武器的攻击力。(最好还能调用角色在无装备无状态下的原本攻击力)

自己试了试,返回的不是nil就是0,要么直接错误。想用装备栏id来调用来着,一看,尼玛,主副手的id都是0= =

求各路大神解答。

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-11-1 22:08:28 | 显示全部楼层
  1. a.equips[0]
  2. a.equips[1]
复制代码
回复

使用道具 举报

梦石
0
星屑
647
在线时间
165 小时
注册时间
2012-4-18
回帖
237
 楼主| 发表于 2013-11-1 23:12:29 | 显示全部楼层
喵呜喵5 发表于 2013-11-1 22:08

测试了,这个无效啊,不能造成伤害。而且看上去他是获取0号位和1号为的武器的信息,我只要其中的攻击力这一个数据诶………………还有一个问题,好像二刀流主副手的装备栏id都是0的。
回复

使用道具 举报

梦石
1
星屑
23241
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2013-11-1 23:36:37 | 显示全部楼层
抱歉,因为你似乎有脚本基础所以我就说的比较简便了还以为你能看懂…………

a.equips[0]
获取技能使用者主手的装备信息
a.equips[1]
获取技能使用者副手的装备信息(如果是二刀流就是武器,如果非二刀流就是盾牌)

a.equips[0].id
主手装备的ID
a.equips[0].name
主手装备的名字

a.equips[0].etype_id
主手装备的装备类型
0: 武器
1: 盾牌
2: 头盔
3: 铠甲
4: 饰品

a.equips[0].params[n]
主手装备对能力值的变化
n分别对应:
0: 体力上限
1: 魔力上限
2: 物理攻击
3: 物理防御
4: 魔法攻击
5: 魔法防御
6: 敏捷值
7: 幸运值

现在你知道该怎么做了吧?

点评

谢谢帮助,塞个糖(不知道能不能塞诶)  发表于 2013-11-2 00:13

评分

参与人数 1星屑 +200 收起 理由
熊喵酱 + 200 认可答案+幫LZ代塞

查看全部评分

回复

使用道具 举报

梦石
0
星屑
647
在线时间
165 小时
注册时间
2012-4-18
回帖
237
 楼主| 发表于 2013-11-1 23:44:40 | 显示全部楼层
= =这个么,因为一直没有找到中文的帮助文件(其实是很懒,没去仔细找找),都是修改现成脚本和看默认的脚本学了些,基本功不扎实。原来是a.equips[0].params[2]啊。之前自己捣鼓的时候试了很多诸如:a.equips[0].params(2),或者a.equips[0].param(2),再或者a.equips[0].atk之类的。太苦逼了。

谢谢你的帮助。
回复

使用道具 举报

梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2013-11-2 00:23:59 | 显示全部楼层
技能的伤害公式,你不一定在数据库设定的界面写,也可以改脚本。我抛砖引玉吧。
[pre lang="ruby" line="1"]class Game_Battler < Game_BattlerBase
  #--------------------------------------------------------------------------
  # ● 计算伤害
  #--------------------------------------------------------------------------
  def make_damage_value(user, item)
    if item.is_a?(RPG::Skill)#如果使用的是技能(在VA里发动技能就是使用物品,所以有这个判定)
      case item.id#技能id
        when 218#比如218号技能的技能伤害你想自己写不引用数据库里的设定。另外,在这里的设定,等同于在数据库技能公式伤害的设定。user=a,self=b,value代表伤害公式计算结果。
           value = 0
          value = user.atk if user.weapons.include?($data_weapons[155])#举例,如果装备了155号武器,并且发动的是218号技能,那么伤害结果=a.atk,否则就是0.
        else #218号技能以外的情况
          value = item.damage.eval(user, self, $game_variables)#这个就是取数据库设定的计算公式了。
      end
    end
    value *= item_element_rate(user, item)#离散度
    value *= pdr if item.physical?#是否物理伤害
    value *= mdr if item.magical?#是否魔法伤害
    value *= rec if item.damage.recover?#这个不记得了,懒得查……
    value = apply_critical(value) if @result.critical#好像是物理伤害加深
    value = apply_variance(value, item.damage.variance)#同上魔法伤害加深
    value = apply_guard(value)#防御状态
    @result.make_damage(value.to_i, item)#返回最终计算结果
  end
end[/pre]

评分

参与人数 1星屑 +132 收起 理由
熊喵酱 + 132 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
647
在线时间
165 小时
注册时间
2012-4-18
回帖
237
 楼主| 发表于 2013-11-2 00:27:39 | 显示全部楼层
嗯嗯~~~我去看了你推荐的帖子,里面有提到这个方法。只不过就用到两个公式而且也写得下(无聊测了一下公式栏可以放下100个字符= =我好无聊),于是就偷懒没有用这个方法,公式我已经写出来了。放在那张帖子上了。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部