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

Project1

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

[已经过期] 攻击公式代码问题

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1211
在线时间
561 小时
注册时间
2014-11-30
帖子
155
跳转到指定楼层
1
发表于 2016-11-4 21:50:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
例如,我想设置一个攻击公式,XP里面有攻击和力量2个属性,MV里面我可以用其他的代替,默认的是攻击X4-防御X2,我想设置假如力量大于90的话,攻击X[4+(A力量-90)/10]-防御X[2+(B力量-90)/10],差不多意思就是91的话,系数加0.1,92的话,系数加0.2,但是如果力量小于90的话,我想设置等于0,不加成系数,我这样写出来的东西就有问题了,力量小于90的话,就变负数了,请大神帮我写个含有判断代码的攻击公式,判断设置中关联系数的属性,如力量,大于90,系数加成,小于90,直接等于0,无需加成,谢谢

Lv5.捕梦者

梦石
0
星屑
23073
在线时间
8648 小时
注册时间
2011-12-31
帖子
3367
2
发表于 2016-11-4 23:59:18 | 只看该作者
最低傷害1
Math.max(式,1)
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
23073
在线时间
8648 小时
注册时间
2011-12-31
帖子
3367
3
发表于 2016-11-5 00:01:26 | 只看该作者
傷害小知識
http://tm.lucky-duet.com/viewtopic.php?f=56&t=647
●属性有効度を算出する
x.elementRate(属性ID)

対象の属性有効度を算出します。
これを使えば擬似的に2つ以上の属性をスキルにもたせられます。
例:敵の属性1と属性3の有効度の平均値をダメージにかける
a.atk * ((b.elementRate(1) + b.elementRate(3)) / 2)

例:敵の属性1と属性3の有効度で、もっとも有効度が高いほうを採用する
Math.max(a.atk * b.elementRate(1),a,atk * b.elementRate(3))

※属性有効度の計算式を入れる場合は、計算式の上にある属性を決めるところを、必ず「なし」に設定してください。

●ステート有効度を算出する
x.stateRate(ステートID)

対象のステート有効度を算出します。
使い方は、属性有効度算出と大体一緒です。

●防御を貫通させる
b.isGuard() ? m * b.grd : n

いわゆる、防御状態を無視できるスキルを作れます。
mとnには、それぞれ数値や計算式を入れてください。

例:防御している敵には通常の2倍の威力のダメージを与え、それ以外の敵には通常のダメージを与える
a.atk * (b.isGuard() ? 4 * b.grd : 1)

ちなみに、x.grdで対象の防御効果率を算出できます。

●特定のステートにかかっているかを調べる
x.isStateAffected(ステートID) ? m : n

敵が毒にかかってたら威力が上がるスキルや、使用者が特定のステートにかかってたら威力が上がるスキルなどが作れます。
例:敵が3番目のステートにかかってたら、威力が2倍になる。
かかってなかったら、通常の威力になる。
a.mat * (b.isStateAffected(3) ? 2 : 1)

●特定の能力値が1段階以上強化されているかを調べる
x.isBuffAffected(パラメータID) ? m : n

使い方は、上のものと大体一緒です。
使用効果の能力値で能力を強化した場合のみ反映されます。
パラメータIDは、0~7の整数のどれかが入ります
0:HP 1:MP 2:攻撃力 3:防御力 4:魔法力 5:魔法防御力 6:敏捷性 7:運

●特定の能力値が1段階以上弱体化されているかを調べる
x.isDebuffAffected(パラメータID) ? m : n

●特定の能力値が最大まで強化されているかを調べる
x.isMaxBuffAffected(パラメータID) ? m : n

●特定の能力値が最大まで弱体化されているかを調べる
x.isMaxDebuffAffected(パラメータID) ? m : n

●最低でも1のダメージを与える
Math.max(m,1)

mには任意の計算式を入れてください。
maxをminに変えれば、maxと逆のことができます。

●1~3の中からランダムでダメージを与える:
(Math.random() * 3) + 1

0から始める場合は、「+1」を消せばいけます。

●瀕死で威力が上がるスキル
a.atk * 4 *(a.hp <= a.mhp / 5 ? 2 : 1) - b.def * 2
上記の式は残りHPが20%以下になると、威力が2倍になる計算式です。
他にも、「残りHPが半分以上だったら○○する」「敏捷性が一定以上あったら○○する」などのスキルも作れます。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
225
在线时间
38 小时
注册时间
2011-8-28
帖子
50
4
发表于 2017-12-7 19:07:28 | 只看该作者
tseyik 发表于 2016-11-5 00:01
傷害小知識
http://tm.lucky-duet.com/viewtopic.php?f=56&t=647
●属性有効度を算出する

完全不懂日语,但是仔细阅读了一下,发现并没有障碍...
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-7 05:53

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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