查看: 5076|回复: 9

[有事请教] 伤害公式分歧

[复制链接]
梦石
0
星屑
1593
在线时间
252 小时
注册时间
2017-10-24
回帖
158
发表于 2017-10-28 15:09:13 | 显示全部楼层 |阅读模式

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

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

×
计算的方法我上网找了挺多,但是有一点。比如我想做个被动技能,第一级技能伤害加10%,第二级伤害15%。这个伤害如何添加到技能伤害里去呢?技能公式里写了一个加成的10%,但是学会了第二级,或者更多级,怎么去改变技能里的伤害公式呢?
梦石
0
星屑
22879
在线时间
8598 小时
注册时间
2011-12-31
回帖
3270
发表于 2017-10-28 16:34:24 | 显示全部楼层
本帖最后由 tseyik 于 2017-10-28 16:37 编辑

https://www6.atwiki.jp/pokotan/pages/3.html
[条件付きシリーズ] :
[条件付き○○ベース ver1.07 >条件脚本核心
[条件付き追加効果 ver1.04 >
[フェイズスキル特徴 ver1.06 >
以上是你各個問題的答案
其他機能
[条件付きスキル&アイテム変化 ver1.04 >
[条件付きドロップ ver1.04 >
[スキル使用条件 ver1.03 >
[行動決定前及びイベント判定前スイッチオン ver1.01 >

条件の設定方法
○○××

○○=対象
××=基本条件
◇◇=条件設定

○○で設定可能な対象
* 対象
* 味方
* 敵
* 討伐者
* (何もなし)





回复

使用道具 举报

梦石
0
星屑
2772
在线时间
215 小时
注册时间
2017-9-28
回帖
255
发表于 2017-10-29 09:40:06 | 显示全部楼层
我也想知道技能怎么升级,跟魔力宝贝里面一样技能有等级的
回复

使用道具 举报

梦石
0
星屑
1593
在线时间
252 小时
注册时间
2017-10-24
回帖
158
 楼主| 发表于 2017-10-29 11:29:40 | 显示全部楼层
tseyik 发表于 2017-10-28 16:34
https://www6.atwiki.jp/pokotan/pages/3.html
[条件付きシリーズ] :
[条件付き○○ベース ver1.07 >条件脚 ...

谢谢了。
回复

使用道具 举报

梦石
0
星屑
34460
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2017-10-29 17:04:54 | 显示全部楼层
本帖最后由 芯☆淡茹水 于 2017-10-29 17:06 编辑

比如技能等级是 level 原算式是:a.atk * 4 - b.def * 2
那么就是:Math.floor((a.atk * 4 - b.def * 2) *((this.item().level - 1) * 5 + 110) / 100);
当然,物品也要加上等级属性,不然会报错。
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2017-10-29 19:04:18 | 显示全部楼层
数据库里应该不行吧。
找到脚本里计算伤害的地方、[pre lang="javascript"]    if (result.idear()) {
        if (this.item().damage.type > 0) {
                        //true为暴击
            result.critical = (Math.random() < this.itemCri(target));
                        //伤害值计算
            var value = this.makeDamageValue(target, result.critical);
                       
                        //执行伤害
            this.executeDamage(target, value);
        }
        this.item().effects.forEach(function(effect) {
            this.applyItemEffect(target, effect);
        }, this);
        this.applyItemUserEffect(target);
    }
        }
[/pre]

这一段就是数据库里面的技能伤害部分
[pre lang="javascript"]Game_Action.prototype.evalDamageFormula = function(target) {
    try {
        var item = this.item();
        var a = this.subject();
        var b = target;
                var a_level = a._level
                var b_level = b._level
        var v = $gameVariables._data;
        var sign = ([3, 4].contains(item.damage.type) ? -1 : 1);
        var value = Math.max(eval(item.damage.formula), 0) * sign;
                if (isNaN(value)) value = 0;
                return value;
    } catch (e) {
        return 0;
    }
};
[/pre]



这个被我修改过一部分了,所以和原版的有点区别
回复

使用道具 举报

梦石
0
星屑
1593
在线时间
252 小时
注册时间
2017-10-24
回帖
158
 楼主| 发表于 2017-10-29 20:36:29 | 显示全部楼层
yang1zhi 发表于 2017-10-29 19:04
数据库里应该不行吧。
找到脚本里计算伤害的地方、    if (result.idear()) {
        if (this.item().dam ...

完全看不懂
回复

使用道具 举报

梦石
0
星屑
1593
在线时间
252 小时
注册时间
2017-10-24
回帖
158
 楼主| 发表于 2017-10-29 20:36:54 | 显示全部楼层
芯☆淡茹水 发表于 2017-10-29 17:04
比如技能等级是 level 原算式是:a.atk * 4 - b.def * 2
那么就是:Math.floor((a.atk * 4 - b.def * 2) *( ...

这个好像是物品等级?
回复

使用道具 举报

梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2017-10-29 21:28:07 | 显示全部楼层

var value = this.makeDamageValue(target, result.critical);
前面的这个value 就是已经得出的伤害值。等号后面的是计算方法。
你想要伤害+15%。那就在下面添加一句
value *= 1.15
要加个判断条件,就用IF
回复

使用道具 举报

梦石
0
星屑
1593
在线时间
252 小时
注册时间
2017-10-24
回帖
158
 楼主| 发表于 2017-10-29 23:22:54 | 显示全部楼层
yang1zhi 发表于 2017-10-29 21:28
var value = this.makeDamageValue(target, result.critical);
前面的这个value 就是已经得出的伤害值。 ...

快帮我看看我的帖子,求帮助的那个,出错了。 哭死
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部