Project1

标题: 求教怎么调用二刀流主手武器的攻击力和副手武器的攻击力 [打印本页]

作者: salvareless    时间: 2013-11-1 20:02
标题: 求教怎么调用二刀流主手武器的攻击力和副手武器的攻击力
本帖最后由 salvareless 于 2013-11-2 00:14 编辑

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

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

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

求各路大神解答。
作者: 喵呜喵5    时间: 2013-11-1 22:08
  1. a.equips[0]
  2. a.equips[1]
复制代码

作者: salvareless    时间: 2013-11-1 23:12
喵呜喵5 发表于 2013-11-1 22:08

测试了,这个无效啊,不能造成伤害。而且看上去他是获取0号位和1号为的武器的信息,我只要其中的攻击力这一个数据诶………………还有一个问题,好像二刀流主副手的装备栏id都是0的。
作者: 喵呜喵5    时间: 2013-11-1 23:36
抱歉,因为你似乎有脚本基础所以我就说的比较简便了还以为你能看懂…………

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: 幸运值

现在你知道该怎么做了吧?
作者: salvareless    时间: 2013-11-1 23:44
= =这个么,因为一直没有找到中文的帮助文件(其实是很懒,没去仔细找找),都是修改现成脚本和看默认的脚本学了些,基本功不扎实。原来是a.equips[0].params[2]啊。之前自己捣鼓的时候试了很多诸如:a.equips[0].params(2),或者a.equips[0].param(2),再或者a.equips[0].atk之类的。太苦逼了。

谢谢你的帮助。
作者: tan12345    时间: 2013-11-2 00:23
技能的伤害公式,你不一定在数据库设定的界面写,也可以改脚本。我抛砖引玉吧。
RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   #--------------------------------------------------------------------------
  3.   # ● 计算伤害
  4.   #--------------------------------------------------------------------------
  5.   def make_damage_value(user, item)
  6.     if item.is_a?(RPG::Skill)#如果使用的是技能(在VA里发动技能就是使用物品,所以有这个判定)
  7.       case item.id#技能id
  8.         when 218#比如218号技能的技能伤害你想自己写不引用数据库里的设定。另外,在这里的设定,等同于在数据库技能公式伤害的设定。user=a,self=b,value代表伤害公式计算结果。
  9.            value = 0
  10.           value = user.atk if user.weapons.include?($data_weapons[155])#举例,如果装备了155号武器,并且发动的是218号技能,那么伤害结果=a.atk,否则就是0.
  11.         else #218号技能以外的情况
  12.           value = item.damage.eval(user, self, $game_variables)#这个就是取数据库设定的计算公式了。
  13.       end
  14.     end
  15.     value *= item_element_rate(user, item)#离散度
  16.     value *= pdr if item.physical?#是否物理伤害
  17.     value *= mdr if item.magical?#是否魔法伤害
  18.     value *= rec if item.damage.recover?#这个不记得了,懒得查……
  19.     value = apply_critical(value) if @result.critical#好像是物理伤害加深
  20.     value = apply_variance(value, item.damage.variance)#同上魔法伤害加深
  21.     value = apply_guard(value)#防御状态
  22.     @result.make_damage(value.to_i, item)#返回最终计算结果
  23.   end
  24. end

作者: salvareless    时间: 2013-11-2 00:27
嗯嗯~~~我去看了你推荐的帖子,里面有提到这个方法。只不过就用到两个公式而且也写得下(无聊测了一下公式栏可以放下100个字符= =我好无聊),于是就偷懒没有用这个方法,公式我已经写出来了。放在那张帖子上了。




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