游戏开发论坛

 找回密码
 立即注册
搜索
查看: 7527|回复: 22

[讨论] 五行多属性的战斗公式

[复制链接]

4

主题

19

帖子

27

积分

注册会员

Rank: 2

积分
27
QQ
发表于 2010-4-26 16:55:00 | 显示全部楼层 |阅读模式
最近面试,对方让我做一个多属性的五行战斗公式,虽然只是随便做做,但发现五行系统确实也满好玩得。下面是我设计的战斗公式,有时间我会把它进一步完善一下。有兴趣的朋友可以加我QQ:84291600



当攻击方属性克对方时,攻击方获得伤害加成70%。

当被攻击方属性克攻击方属性时,攻击方获得伤害处罚伤害降低70%。

当攻击方属性与被攻击方属性不相克且不相同时,攻击方获得伤害加成30%的奖励。

当攻击方属性与被攻击方属性相同时,攻击方获得伤害处罚伤害降低30%。

当攻击方或被攻击方有一个是无属性时,攻击方的伤害不会受到加成或降低。



//属性定义

攻击方 = A

被攻击方 = B

无属性 = 10

金属性 = 5

木属性 = 4

土属性 = 3

水属性 = 2

火属性 = 1



//五行规则的判断与处罚



//克对方时的条件判断

//当攻击方(属性编号)减去被攻击方(属性编号)的值为1或负4时,则判断结果为攻击方克被攻击方。

//计算公式

如果A(属性编号) - B(属性编号) = 1 或 -4 时, 那么A伤害=A伤害*(1+0.7)



//被对方克时的条件判断

//当攻击方(属性编号)减去被攻击方(属性编号)的值为负1或4时,则判断结果为被攻击方克攻击方。

//计算公式

如果A(属性编号) - B(属性编号) = -1 或 4时, 那么A伤害=A伤害*(1-0.7)



//攻击方与被攻击方属性不相克且不相同时的条件判断

//当攻击方(属性编号)减去被攻击方(属性编号)的值为负3或3、负2或2时,则判断结果为攻击方与被攻击方属性不相克且不相同。

//计算公式

如果A(属性编号) - B(属性编号) = -3或3,-2或2时, 那么A伤害=A伤害*(1+0.3)



//攻击方与被攻击方属性相同时的条件判断

//当攻击方(属性编号)减去被攻击方(属性编号)的值为0时,则判断结果为双方属性相同。

//计算公式

如果A(属性编号) - B(属性编号) = 0时, 那么A伤害=A伤害*(1-0.3)



//无属性的条件判断

//当攻击方(属性编号)减去被攻击方(属性编号)的值大于4或小于负4时,则判断结果为正常伤害(没有加成或降低)。



//计算公式

如果A(属性编号) - B(属性编号) >4或<-4时, 那么A伤害=A伤害



//注:攻击方或被攻击方都有属性表,属性表按照从多到少的顺序排列,如果有两个或多个属性值相同,则这两个属性的顺序按金木土水火的顺序排列,例攻击方有五种属性为;金50、木20、土80、水20、火60,则它的属性排列应该是土火金木水



//属性定义

攻击方第一个属性 = a1

攻击方第二个属性 = a2

攻击方第三个属性 = a3

攻击方第四个属性 = a4

攻击方第五个属性 = a5

被攻击方第一个属性 = b1

被攻击方第二个属性 = b2

被攻击方第三个属性 = b3

被攻击方第四个属性 = b4

被攻击方第五个属性 = b5

第一个属性伤害 = K1

第二个属性伤害 = K2

第三个属性伤害 = K3

第四个属性伤害 = K4

第五个属性伤害 = K5

最终伤害结果 = K6



//战斗公式

//说明:a1、a2、a3、a4、a5、b1、b2、b3、b4、b5的默认值为10(即无属性),在读取角色属性表时,表值会把默认值替换。

//第一步判断攻击方或被攻击方是否有一个为无属性,如果该值为真,那么不计算五行的伤害。如果该值为否,则跳过这一步。

如果a1+a2+a3+a4+a5+10=10或b1+b2+b3+b4+b5+10=10那么K6= A(伤害)-B(防御),如果K6<0,那么K6=1



//将a1和b1代入“五行规则的判断与处罚”进行判断,并返回结果。

K1= A(伤害)



//将a2和b2代入“五行规则的判断与处罚”进行判断,并返回结果。

K2= A(伤害)



//将a3和b3代入“五行规则的判断与处罚”进行判断,并返回结果。

K3= A(伤害)



//将a4和b4代入“五行规则的判断与处罚”进行判断,并返回结果。

K4= A(伤害)



//将a5和b5代入“五行规则的判断与处罚”进行判断,并返回结果。

K5= A(伤害)



//最终伤害

如果K6=取整(K1+K2+K3+K4+K5)/5-B(防御)<0 那么K6=1





例:

(5属性对5属性的伤害)
攻击方属性为金60,木50,水40,火20,土10被攻击方属性为火80,木60,土50,金40,水20。

攻击方伤害为100,被攻击方防御80



K1=100*(1-0.7)

K2=100

K3=100*(1-0.7)

K4=100*(1+0.7)

K5=100*(1+0.7)



K6=(30+100+30+170+170)/5-80=100-80=20



(3属性对5属性的伤害)

攻击方属性为金60,木50,水40,被攻击方属性为火80,木60,土50,金40,水20。

攻击方伤害为100,被攻击方防御80



K1=100*(1-0.7)

K2=100

K3=100*(1-0.7)

K4=100

K5=100



K6=(30+100+30+100+100)/5-80=72-80=-8

最终结果K6=1

呵呵,这只是我花2个小时左右做得,设计的思路是为多属性的五行系统算法,这个算法只是概念阶段,并没有涉及到具体平衡,我写70%的伤害其实还只是比较保守得,本来我想写100%,哈哈,攻击方的属性是指技能的属性,而被攻击者的属性是指角色本身的属性,如果属性被克的利害,可以使用普通攻击,就可以造成100%伤害了。

这个思路处理单属性对单属性的伤害效果还是比较好,但对多属性处理方式,只是初步的兼容,在针对多属性相克的效果会差些,只是我初步的设计,还没加上属性值差距的处理方式,与双方等级差距的处罚规则,我发出来就是准备让你们去伤脑筋得,哈哈!
属性值差距例:攻击方30水,被攻击方80火,那么是否要给被攻击方加个伤害豁免?
双方等级差距的处罚规则:这个比较好做,只是我偷懒没写上去而以。

属性值差距例初步的设计思路
假设A属性克B属性
如果 A属性值 - B属性值 >= 1 那么170%伤害
如果 A属性值 /  B属性值 > 0.8 那么140%伤害
如果 A属性值 /  B属性值 > 0.6 那么100%伤害
如果 A属性值 /  B属性值 > 0.4 那么60%伤害
如果 A属性值 /  B属性值 < 0.4 那么20%伤害

45

主题

1163

帖子

1165

积分

金牌会员

Rank: 6Rank: 6

积分
1165
发表于 2010-4-26 16:58:00 | 显示全部楼层

Re:五行多属性的战斗公式

晕菜了

32

主题

1519

帖子

2334

积分

金牌会员

Rank: 6Rank: 6

积分
2334
发表于 2010-4-26 17:00:00 | 显示全部楼层

Re:五行多属性的战斗公式

只看了前几行,貌似不会出现100%的情况,不是加就是减?这种思维方式貌似有点奇怪啊。。

42

主题

574

帖子

0

积分

禁止发言

积分
0
发表于 2010-4-26 17:08:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

0

主题

172

帖子

172

积分

注册会员

Rank: 2

积分
172
发表于 2010-4-26 17:30:00 | 显示全部楼层

Re:五行多属性的战斗公式

差距过大了吧……攻击防御等相同而属性不同的时候,A克B情况,则伤害为A打B170%,B打A30%,最终效果是5.67倍……
话说五行这东西好像目标软件玩儿的不错……

14

主题

490

帖子

491

积分

中级会员

Rank: 3Rank: 3

积分
491
发表于 2010-4-26 17:39:00 | 显示全部楼层

Re:五行多属性的战斗公式

5行还是那个啥金山以前玩剩下的……

70

主题

3789

帖子

5493

积分

论坛元老

Rank: 8Rank: 8

积分
5493
发表于 2010-4-26 18:00:00 | 显示全部楼层

Re:五行多属性的战斗公式

项目紧张中抽空上来谈下:

5行克制虽然都通常采用伤害增加的概念,但实际上,为了保证游戏平衡,最好把附带的伤害本身做成有豁免几率发生的情况。

可以这么说,有几率发生附带额外伤害。这样就不会对战斗数值造成过大差距。

69

主题

2031

帖子

2356

积分

金牌会员

Rank: 6Rank: 6

积分
2356
发表于 2010-4-26 18:04:00 | 显示全部楼层

Re:五行多属性的战斗公式

直接做成固定数值完事,费那么多事干嘛

6

主题

329

帖子

329

积分

中级会员

Rank: 3Rank: 3

积分
329
发表于 2010-4-26 19:13:00 | 显示全部楼层

Re:五行多属性的战斗公式

1个攻击100,发生概率 50%

一个攻击50,发生100%

LS,你认为哪种好?

1

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2010-4-26 20:50:00 | 显示全部楼层

Re:五行多属性的战斗公式

同意 概率性触发 属性克制效果
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-7 14:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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