3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 2220|回复: 3
打印 上一主题 下一主题

[讨论] 关于Doom的影子突袭那不和谐的伤害问题

[复制链接]

114

主题

3582

帖子

3850

积分

游戏精英

Rank: 8Rank: 8

贡献度
431
金元
20660
积分
3850
精华
6
注册时间
2008-1-10
跳转到指定楼层
主题
发表于 2012-7-22 14:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 zjwzero 于 2012-7-22 14:46 编辑

影子瞬间突袭的技能代码
  • newTalent{
  •         short_name = "SHADOW_BLINDSIDE",
  •         name = "Blindside",
  •         type = {"spell/other", 1},
  •         points = 5,
  •         random_ego = "attack",
  •         range = 10,
  •         requires_target = true,
  •         tactical = { CLOSEIN = 2 },
  •         action = function(self, t)
  •                 local tg = {type="hit", pass_terrain = true, range=self:getTalentRange(t)}
  •                 local x, y, target = self:getTarget(tg)
  •                 if not x or not y or not target then return nil end
  •                 if core.fov.distance(self.x, self.y, x, y) > self:getTalentRange(t) then return nil end
  •                 local start = rng.range(0, 8)
  •                 for i = start, start + 8 do
  •                         local x = target.x + (i % 3) - 1
  •                         local y = target.y + math.floor((i % 9) / 3) - 1
  •                         if game.level.map:isBound(x, y)
  •                                         and self:canMove(x, y)
  •                                         and not game.level.map.attrs(x, y, "no_teleport") then
  •                                 game.level.map:particleEmitter(self.x, self.y, 1, "teleport_out")
  •                                 self:move(x, y, true)
  •                                 game.level.map:particleEmitter(x, y, 1, "teleport_in")
  •                                 local multiplier = self:combatTalentWeaponDamage(t, 0.9, 1.9)
  •                                 self:attackTarget(target, nil, multiplier, true)
  •                                 return true
  •                         end
  •                 end
  •                 return false
  •         end,info = function(self, t)
  •                 local multiplier = self:combatTalentWeaponDamage(t, 1.1, 1.9)
  •                 return ([[With blinding speed you suddenly appear next to a target up to %d spaces away and attack for %d%% damage.]]):format(self:getTalentRange(t), multiplier)
  •         end,
  • }
由于各种代码实在眼花缭乱,不熟悉的我看着脑袋发麻,但是终归是找到了一个异常的地方:请注意查看技能描述部分

format(self:getTalentRange(t), multiplier),也就是
format(self:getTalentRange(t), self:combatTalentWeaponDamage(t, 0.9, 1.9) )



于是我随便找了一些其他的技能做对比
1.盾战的盾击
self:attackTarget(target, nil, self:combatTalentWeaponDamage(t, 0.8, 1.3), true) //这是前面的代码,和上面蓝色差不多的意思,这个应该就是计算并输出的意思吧

return ([[Hits the target with two shield strikes doing %d%% and %d%% shield damage. If it hits a second time it stuns target for %d turns.]])                :format(100 * self:combatTalentWeaponDamage(t, 1, 1.7, self:getTalentLevel(self.T_SHIELD_EXPERTISE)),                100 * self:combatTalentWeaponDamage(t, 1.2, 2.1, self:getTalentLevel(self.T_SHIELD_EXPERTISE)),                2 + self:getTalentLevel(t) / 2)        end,}
2.弓箭的双重射
return ([[You fire two arrows at your target, hitting it and a nearby foe if possible, doing %d%% damage                This talent does not use any stamina.]]):format(100 * self:combatTalentWeaponDamage(t, 1.2, 1.9))        end,}
3.穿透箭
return ([[You fire an arrow that cuts right through anything, piercing multiple targets if possible with nigh infinite armor penetration, doing %d%% damage.]]):format(100 * self:combatTalentWeaponDamage(t, 1, 1.5))
        end,
}
应该不必继续举例了,各种技能都是*100然后再以%的形式表达出来

再看一下倍率self:combatTalentWeaponDamage

  • function _M:combatTalentWeaponDamage(t, base, max, t2)
  •         if t2 then t2 = t2 / 2 else t2 = 0 end
  •         local diff = max - base
  •         local mult = base + diff * math.sqrt((self:getTalentLevel(t) + t2) / 5)
  • --        print("[TALENT WEAPON MULT]", self:getTalentLevel(t), base, max, t2, mult)
  •         return mult
  • end

这个算数中使用了getTalentLevel(t),由于困难中的t等级都很高,所以倍率都会很高,影子的系数有(t, 0.9, 1.9)算是平均水平,稳固射击也不过(t, 1.1, 2.2),骷髅战士使用震慑打击是(t, 1, 1.5),但是影子的All伤害加成实在太高了,攻击力不高算其美中不足吧

实战游戏中如果查看影子的该技能

居然只有3%?没错,乘以100的话就是300%

然后

影子拥有超高的所有伤害以及所有伤害穿透。。

上图皆是Heart of the Goom的Boss召唤的影子,我最初在TM右边碰到过一个doom,当时还是2%实际200%来着




不过,影子突袭似乎和主人的站位有关,实际上,影子突袭的距离其实是玩家与Doom本体的距离?玩得多了就经常看到影子看见你了却不会立刻突袭到你的身边,它会徘徊,向你的方向不断前进但是有个极限,超过极限就回到了本体身边,所以
实际上影子无论在何处,其突袭距离都是以Doom为中心,半径10格距离的圆?


本帖子中包含更多资源

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

x
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-7-10 22:42 , Processed in 0.094783 second(s), 14 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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