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

Project1

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

[交流讨论] 关于伤害公式插入多变量的问题

[复制链接]

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
跳转到指定楼层
1
发表于 2021-1-20 15:42:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
在伤害公式中,让伤害随着单变量的变化而变化,这个我已经懂了
现在出现了新问题
如果一个伤害公式,需要根据两个变量的和来决定伤害该怎么写?
在公式中加入括号似乎解决不了问题
比如核心部分(其余部分判断有效):常量+(A变量+B变量)*系数
这个公式战斗测试中的效果是0……
困惑中……
换一种写法:常量+A变量*系数+B变量*系数
结果还是0……
大神快出现吧~

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

2
发表于 2021-1-21 20:24:10 | 只看该作者
盲猜你的伤害公式有错误

根据MV源码,伤害公式计算出错就会返回0。

可能的错误:
1、括号没有使用英文半角字符
2、变量的写法不对,假设是1号和2号变量,应该是 100 + (v[1] + v[2]) * 0.5 这样吧。

顺便,MV的提示似乎没有说可以写v,但是VA支持这样写,而且从源码来看也应该是支持的。
用头画头像,用脚写脚本
回复 支持 1 反对 0

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
3
 楼主| 发表于 2021-1-22 08:57:25 | 只看该作者
KB.Driver 发表于 2021-1-21 20:24
盲猜你的伤害公式有错误

根据MV源码,伤害公式计算出错就会返回0。

0 0 为啥你可以打开源码……
MV是支持[v1]这种变量写法的,F1里就有提示……
括号啥的肯定没用错啊……
大佬你说的2、的那个写法,我上面试过了啊,还是会返0……
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

4
发表于 2021-1-22 23:26:47 | 只看该作者
阿步abu 发表于 2021-1-22 08:57
0 0 为啥你可以打开源码……
MV是支持[v1]这种变量写法的,F1里就有提示……
括号啥的肯定没用错啊……

1、源码就在游戏目录下的js文件夹里,只要用文本编辑器打开就可以看。

2、我用steam版的MV没看到这样的提示,但是从源码推断是可以这样写的。


3、经过测试,确定是变量未初始化导致的。
简单而言,某个变量没有设置过值的情况下,它是undefined。
undefined是什么你不用管,你只要知道它出现在算式里会出错。
为了消除这种情况,需要你把每一个可能用到变量的地方写成这样,以1号变量为例:
(v[1] || 0)
这样做的目的很明显,如果1号变量已经被赋值,括号的结果就是v[1],
如果1号变量是undefined,括号的结果就是0.
当然,你也可以把这里的0换成其他数值,这样当对应变量没有被赋值过时,会被这个值替代。

修改后的公式有这样的形式:
100 +  ((v[1] || 0) + (v[2] || 0)) * 0.5
用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
5
 楼主| 发表于 2021-1-23 09:33:58 | 只看该作者
KB.Driver 发表于 2021-1-22 23:26
1、源码就在游戏目录下的js文件夹里,只要用文本编辑器打开就可以看。

2、我用steam版的MV没看到这样的 ...

原来如此?
我去试一下,这个||,就是\键按shift之后的那个吧?不是啥特殊符号或着别的什么吧?
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
6
 楼主| 发表于 2021-1-23 10:58:08 | 只看该作者
KB.Driver 发表于 2021-1-22 23:26
1、源码就在游戏目录下的js文件夹里,只要用文本编辑器打开就可以看。

2、我用steam版的MV没看到这样的 ...

大佬大佬,现在出现了一个奇怪的新问题
10+a.mat*(v[1||0]+v[2||0])*1-b.mdf
这个公式,在变量>0时,可以造成伤害,但任一变量为0时,反馈为0
简化之后
10+a.mat*v[1||0]*1-b.mdf——理解成10+X*0*1-Y,变量部分为0的话,这个10也不应该消失的
但是只要变量为0,就会反馈0,那个10无法触发。迷惑中
注:b.mdf肯定小于10,这个没必要进行探讨……
顺带求问(v[x]||0)中的||是啥意思,绝对值?赋值符号?

点评

你变量部份非数字类型10都不会留下来..  发表于 2021-1-23 22:57
a.mat*(v[1||10/2]+v[2||10/2])*1-b.mdf  发表于 2021-1-23 13:49
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
24242
在线时间
5033 小时
注册时间
2016-3-8
帖子
1618
7
发表于 2021-1-23 11:11:08 | 只看该作者
阿步abu 发表于 2021-1-23 10:58
大佬大佬,现在出现了一个奇怪的新问题
10+a.mat*(v[1||0]+v[2||0])*1-b.mdf
这个公式,在变量>0时,可 ...


(v[x]||0)意思是:
当||左方v[x]是undefined时, (v[x]||0)返回右方的0
当||左方v[x]不是undefined时, (v[x]||0)返回左方的v[x]

至于那v[1||0]和v[2||0]
楼上大佬都没教你这样写...
能不能別自己乱创作...
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
779
在线时间
57 小时
注册时间
2019-10-9
帖子
136
8
发表于 2021-1-23 13:46:41 | 只看该作者
阿步abu 发表于 2021-1-23 10:58
大佬大佬,现在出现了一个奇怪的新问题
10+a.mat*(v[1||0]+v[2||0])*1-b.mdf
这个公式,在变量>0时,可 ...

于: &&  指xx1和xx2
或:||    指不是xx1的话就是xx2
非: !     指不是xxx1
作者习惯写php(不再写mz以外的 其他rm版本).
论坛不常在,有事可以qq联系我 766336948.
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
9
 楼主| 发表于 2021-1-23 15:45:22 | 只看该作者
hsy_999999999 发表于 2021-1-23 13:46
于: &&  指xx1和xx2
或:||    指不是xx1的话就是xx2
非: !     指不是xxx1

0 0 哦~
然后大佬你另一个回复的意思是,这种10+如果不行,就融合到公式里变成5+5吗?那如果写到公式里,当v[1]>0的时候,就变成v[1]+5了……那个10的常量底数就不对了……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
305
在线时间
20 小时
注册时间
2020-11-1
帖子
37
10
 楼主| 发表于 2021-1-23 15:46:40 | 只看该作者
alexncf125 发表于 2021-1-23 11:11
(v[x]||0)意思是:
当||左方v[x]是undefined时, (v[x]||0)返回右方的0
当||左方v[x]不是undefined时, (v[x ...

笔……笔误……嗯……
=。。= 不过……
v[x||0]这种写法在变量不等于0时,确实可以触发,也是很奇妙的一件事呢……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-19 12:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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