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

Project1

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

[搬运汉化] 伤害公式以及其他符号意思等(新手必看)

[复制链接]

Lv4.逐梦者

梦石
0
星屑
9293
在线时间
1839 小时
注册时间
2020-1-2
帖子
1082
跳转到指定楼层
1
发表于 2021-2-26 13:23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 xiamumomo 于 2022-3-30 17:14 编辑

原网址:https://forums.rpgmakerweb.com/i ... formulas-101.81905/(点开这个评论也有帮助)
目前只是翻译品论去的暂未合集到里面可以的话直接去看  公式的标点符号都是大写下面应为是机翻自动是小写但是有些我改回来了
但是不知道有没遗漏的如果你们复制使用要注意(妈耶眼睛瞎了)


下面是翻译内容
请注意:
关于这些公式可以执行的不同操作的讨论已经开始,因此请直接将那些评论和问题提交给相应的主题。
https://forums.rpgmakerweb.com/i ... eas-and-help.47099/

指向事件命令等效脚本列表的链接
https://forums.rpgmakerweb.com /index.php?threads/rpg-maker-mv-script-call-list.46456/


伤害公式101
MV版

您可能想知道如何使技能对处于状态的敌人造成更大的伤害,或者如果玩家拥有陈述,或恰好是敌方生命值的一半。等等。

所有这些以及更多操作都可以通过自定义损坏公式完成。

基础知识:

类型-设置公式会破坏或修复哪些内容。
无-不会,不会造成任何损坏。
HP伤害-HP将会受到伤害
MP伤害-MP将受到伤害
HP恢复-HP将被恢复
MP恢复-MP将被恢复
HP消耗-对敌人造成伤害HP并为攻击者恢复那么多的HP
MP消耗-对敌人造成伤害MP并为攻击者恢复那么多的MP

Element-设置要使用的元素。普通攻击-意味着将使用与武器相同的元素。

差异-损害如何波动。例如,如果技能公式说造成100点伤害,并且变异为20%,则该技能将造成80至120点伤害。

批判的-可以重击技能,造成的伤害提高300%。

现在,真正有趣的部分-公式!
它决定了对手会受到多少伤害或盟军可以治愈。

让我们剖析RPG Maker MV随附的基本公式之一
-Fire 100 + a.mat * 2-b.mdf * 2

像a和b这样的东西是什么意思?
a-攻击者
b-防御者
因此,如果“演员眼镜”向史莱姆身上施火。a是眼镜,b是史莱姆。

表示将“ Glass mat”(眼镜攻击)参数取两倍,然后减去“ Slime”的mdf(“ Magic Defense”)参数乘以两倍,然后在公式开头将其加到100。
例如,Glass具有100垫,而Slime具有20 mdf。如果我们使用这些数字转换公式,我们将得到-100 + 100 * 2-20 * 2,经过计算,我们看到,使用这些参数,如果没有方差,则火会造成260点伤害。

但是,公式中只有最后一个数字会造成伤害。如果您有2行公式。(分号;告诉该程序行在何处结束),
例如a.atk; a.atk * 2
仅会计算a.atk * 2的损坏。

公式中除了a和b之外还有更多字母吗?
是的。有变量。像这样使用:v [ID]。ID-变量的索引。
因此,您可以掌握一项技能,使变量越高越强。
例如v [10] * 2-b.def * 3

有没有办法使技巧更加复杂,例如,如果某个变量超过100,会造成额外的损失吗?
是的,在这种情况下,我们可以使用if else语句。
if else语句的外观:

代码:
代码(文本):
if(语句)
{
Formula1;
}
else
{
Formula2;
}
但是,如何将其写入伤害公式?
它只有一条线!
只需将所有内容一起编写即可!
代码(文本):
if(statement){Formula1; } else {Formula2; }
例如:
代码(文本):
if(v [10]> 100){a.atk * 4-b.def * 2} else {a.atk * 2-b.def * 2}

可以缩短为如果您仅使用1行公式。
代码(文字):
if(语句)
公式1;
其他
公式2;
例如:
代码(文字):
if (v [10]> 100){a.atk * 4-b.def * 2} else {a.atk * 2-b.def * 2}

而且您可以使用三元运算符(我最喜欢的一个)进一步缩短它:

statement?公式1:公式2;
例如:
代码(文字):
v [10]> 100?a.atk * 4-b.def * 2:a.atk * 2-b.def * 2;

语句的符号:

>大于
<小于
>=大于或等于
<=小于或等于
===等于
&&和
|| 或
!==不等于
!不是

例子:

v [10]> 100?1000:100;(如果变量10大于100,将造成1000伤害,否则只会造成100)

v [10] <100?1000:100;(如果变量10小于100,它将造成1000伤害,否则,它将仅造成100)

v [10]> == 100?1000:100;(如果变量为100或更大,它将造成1000伤害,否则只会造成100)

v [10] <== 100?1000:100;(如果变量等于或小于100,则将造成1000伤害,否则只会造成100)

v [10] === 100?1000:100;(如果变量等于100,它将造成1000伤害,否则只会造成100)

v [10]> 50 && v [11]> == 25?1000:100;(如果变量10大于50,变量11为25或更大,则会造成1000点伤害,否则只会造成100点伤害)

v [10]> 50 || v [11]> 50吗?1000:100;(如果变量10大于50或变量11大于50,那么它将造成1000伤害,只会造成100伤害)

v [10]!== 100?1000:100;(如果变量10不等于100,它将造成1000伤害,否则只会造成100)

对于a和b使用的参数呢?

以下是它们的完整列表:

当前:(所有整数,例如:900、999、11)

级别-当前级别(默认情况下仅是Actor)
hp-当前hp
mp-当前mp
tp-当前tp

参数:(所有平坦的数字,例如:1337,7331,156)

mhp-最大hp
mmp-最大MP
hp-当前生命值
mp-当前魔法值
atk-攻击
def-防御
mat-魔法攻击
mdf- 魔法防御
agi-敏捷度
luk-运气

XParams:

hit-命中率
eva-闪避率
cri -临界率
cev-临界逃逸率
mev-魔法逃逸率
mrf-魔法反射率
cnt-反击率
hrg-HP再生率
mrg-MP再生率
trg-TP再生率

SParams:(所有小数点均表示百分数,例如1.0、0.5,

0.75、2.44分别为100%,50%,75%,244%)
tgr-目标率
grd-防护作用率
rec-恢复作用率
pha-药理学
mcr-MP成本率
tcr-TP收费率
pdr-物理伤害率
mdr-魔法伤害率
fdr-地面伤害率
exr-经验率

如何更改HP / MP / TP?
gainHp(value) - 恢复HP-通过值(值:value)
gainMp(value) - 恢复MP-通过值
gainTp(value) - 恢复TP-通过值

setHp(hp) - 将HP设置为值
setMp(mp) - 将MP设置为值
setTp(tp) - 将TP设置为值
例如a.setHp(a.mhp)
例如,a.setHp(a.hp + 100)

clearTp()-将TP设置为0


那么,可以影响状态公式的高级内容呢?

我们得到了所有!
isStateAffected(stateId)-检查战斗人员是否对他们施加了状态。
b.isStateAffected(10) ? 10000 : 1;

isDeathStateAffected ()-检查战斗机是否有死亡状态。
b.isDeathStateAffected() ? 10000 : 1;

resetStateCounts(stateId)-刷新战斗状态将持续多久
if (b.isStateAffected(10)) b.resetStateCounts(10); 100

updateStateTurns()-缩短战场上所有状态1回合
b.updateStateTurns(); 100

addState(stateId)-为战斗者添加状态
if (!b.isStateAffected(10)) b.addState(10); 100

isStateAddable(stateId)-检查状态是否可以添加到战场
c=100; if (b.isStateAddable(10)) b.addState(10); else c=4000; c

removeState(stateId)-从战斗中移除状态
if (a.isStateAffected(10)) a.removeState(10); 0



迷们呢?我们可以buff和debuff战斗吗?buff(增益)Debuff(减益、负面)

是的!
addBuff(paramId,turns)-添加一个BUFF到参数
a.addBuff(0, 3); b.def*10

addDebuff(paramId, turns) - 添加一个DeBuff到参数
b.addDebuff(2, 10); 9999

removeBuff(paramId)-从战斗中移除一个buff或debuff
removeAllBuffs()-从战斗中移除所有的增益和减益

参数ID

0-最大HP
1-最大MP
2-攻击
3-防御
4-魔法攻击
5-魔法防御
6-敏捷
7-运气

一般的战斗机东西
die() -击杀战斗者
b.die(); 0

revive() -使战斗者复活
a.revive(); 1000

paramBase(paramId) -获取基本参数
a.paramBase(3)* 10-b.def * 2

paramPlus(paramId) -获取参数
a.paramPlus(3)* 2-b.def * 2

paramMax(paramId) -获取参数
b.paramMax(0)

elementRate(elementId) -检查战斗机的元素比率(比率为代表%的十进制数)
b.elementRate(10) >== 0.5 ? 10000 : a.mat*4;

isStateResist(stateId)  -检查战斗机是否抵抗状态
c=0; b.isStateResist(10) ? c+=2000 : b.addState(10); c

isSkillTypeSealed(stypeId)-检查战士的技能类型是否被密封
isSkillSealed(skillId)-检查战士的技能类型是否被密封
isEquipTypeSealed(etypeId)-检查战斗机的装备类型是否被密封
isDualWield()-检查战斗机是否可以双重使用
isGuard()-检查战斗机是否在守卫
recoveryAll()-删除所有状态,将HP和MP恢复到最大

hpRate()-检查战斗机的HP率
mpRate()-检查战斗机的MP率
tpRate()-检查战斗机的TP率
b.hpRate() < 0.5 ? b.hp-1 : 100;

isActor()-检查战斗机是否为演员
isEnemy()-检查战斗机是否为敌人
escape() - 逃离战斗
b.escape()(使敌人逃跑)

consumeItem(item)-消耗物品
a.consumeItem($ dataItems [15]);100



仅对于演员:

currentExp()-当前EXP
currentLevelExp() - EXP需要的电流水平
nextLevelExp() - EXP需要一个新的水平
nextRequiredExp() - EXP留到下一级
maxLevel() -演员的最高水平
isMaxlevel() -是演员最高水平(真/假)
hasWeapon()演员是否持武器(true / false)
hasArmor()-演员是否戴着任何盔甲(true / false)
clearEquipments() -取消演员所穿的所有装备
isClass(gameClass)-检查演员是否属于某类(gameClass- $ dataClasses [ID])
hasNoWeapons()-检查演员是否没有任何武器
levelUp()-演员级别提升
levelDown()-演员级别降低
gainExp(exp)-给演员提供exp
learningSkill(skillId)-使演员学习技能
forgetSkill(skillId)(skillId)-使演员忘记技能
isLearnedSkill(skillId)-检查演员是否具有学习的技能演员
actorId() -返回演员的ID


仅针对敌人:
enemyId() -返回敌人的ID

数学怎么样?我们可以在公式中使用数学方法吗?

是的,您完全可以。

Math.random()-返回0到1之间的随机数(0 <= n <1)
Math.min(numbers)-从提供的数字中返回最小数。
例如Math.min(10,50,40,200)-10 将返回

Math.max(numbers) -从提供的数字中返回最大数字。
例如Math.max(10,50,40,200)-200 将返回

Math.round(number)-将数字四舍五入到最接近的整数。
Math.ceil(number)-将数字四舍五入到最接近的整数。
Math.floor(number)-将数字四舍五入到最接近的整数。

Math.rand()返回0到1之间的数字,但是我们能否获得1到100之间的随机数?还是5和200?

没问题:

Math.floor(Math.random()* 100)+1
^那将返回一个1到100之间的数字。如果我们没有在末尾加1,它只会返回一个0到99之间的数字。 。

但是有很多文字?我们可以简化一下吗?

值得庆幸的是,rpg_core.js中有一个方法添加了Math.randomInt(max);
因此,我们可以使用:
Math.randomInt(100)+1

评分

参与人数 9+9 收起 理由
背棺走的骷髅 + 1 精品文章
不灭的火炎 + 1 精品文章
1071257831 + 1 精品文章
2490141611 + 1 精品文章
y967 + 1 塞糖
微笑的迪妮莎 + 1 精品文章
吟游诗人_zhen + 1 精品文章
白嫩白嫩的 + 1 精品文章
torber2004 + 1 我很赞同

查看全部评分

B站没人气的夏目漠漠,直播间:5378938实用插件教程点击红字传送

Lv4.逐梦者

梦石
0
星屑
18722
在线时间
1030 小时
注册时间
2019-3-5
帖子
1418
2
发表于 2021-2-27 12:52:27 | 只看该作者
干货,顶,能稍微排版一下就更好了

点评

辛苦了,我自己来吧  发表于 2021-2-28 12:53
有空吧,最近一直在找海底植物等图块  发表于 2021-2-27 15:26
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
662
在线时间
56 小时
注册时间
2021-1-23
帖子
37
3
发表于 2021-2-27 13:46:45 | 只看该作者
学习了,谢谢分享
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5146
在线时间
604 小时
注册时间
2017-10-21
帖子
348
4
发表于 2021-2-27 22:04:39 | 只看该作者
高端货 多谢分享
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1914
在线时间
211 小时
注册时间
2009-11-10
帖子
234
5
发表于 2021-3-8 09:52:41 | 只看该作者
谢谢 大佬的教程公式 。 写的很细致
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
13168
在线时间
3797 小时
注册时间
2013-7-18
帖子
2289
6
发表于 2021-3-17 11:14:30 | 只看该作者
不错,这个伤害公式很灵活,用变量控制伤害,可以做出很多专属技能伤害,并且每一个技能都对应不同的防御,这个防御就是变量,比如可以打造出武功专属防御公式,一个大侠可能防御了所有武功,却防不住一招下三滥功夫...
山岚野人,快人快语,礼数不周,还望海涵....
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
36
在线时间
6 小时
注册时间
2022-1-2
帖子
27
7
发表于 2022-1-3 02:27:11 | 只看该作者
学习了
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9293
在线时间
1839 小时
注册时间
2020-1-2
帖子
1082
8
 楼主| 发表于 2022-2-18 21:35:50 | 只看该作者
b.clearStates() 这是清除目标所有的状态

点评

清除单个状态貌似用erase(这个貌似还跟免疫有点关系,指改脚本的时候)更合适,而不是remove,大家觉得哪个对  发表于 2022-2-18 23:27
B站没人气的夏目漠漠,直播间:5378938实用插件教程点击红字传送
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2851
在线时间
446 小时
注册时间
2016-9-26
帖子
1222
9
发表于 2022-2-23 12:26:02 | 只看该作者
分支里可以赋值,


if(v[1]){if(v[1]==2){v[1]=0;1000;}else{v[1]+=1;100;};}else{v[1]=1;100;}

总结,过于复杂的伤害公式,要用if else语句;并且,变量是需要赋值才能用的(起码伤害公式这里是这样)

这里是真的实测了,说法应该没毛病了,啧
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33233
在线时间
10501 小时
注册时间
2009-3-15
帖子
4757
10
发表于 2022-2-23 15:13:51 | 只看该作者
本帖最后由 soulsaga 于 2022-2-23 15:20 编辑

参数:(所有平坦的数字,例如:1337,7331,156)

mhp-最大hp
mmp-最大MP
攻击-攻击
防御-防御
垫-魔法攻击

mdf- 魔法防御
agi-敏捷度
luk-运气


??????我该怎么吐槽

点评

那时候游览器自动翻译后面直接复制过来后面有人重新整理了我就懒得弄  发表于 2022-2-23 15:33
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-7 03:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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