轩辕春秋文化论坛 » 金庸群侠传MOD交流 » 因自制游戏需要,要一份金群公式算法


2006-11-19 00:00 金圭子
因自制游戏需要,要一份金群公式算法

因自制rmxp金庸群侠传游戏的需要,要一份金庸群侠传里面的所有的公式算法

最主要的就是那个伤血的算法啦,还有轻功和移动力的关系,资质和成长的关系等等。
最好要比较肯定的(比如资质90以上,攻防轻的出现在1~6之间的概率相等么?)


谢谢

[[i] 本帖最后由 金圭子 于 2006-11-19 00:02 编辑 [/i]]

2006-11-19 14:45 妖狐
[color=blue]伤害公式 [/color]

最终伤害=基本伤害+随机数
基本伤害=攻击+武功威力/3-防御*2
随机数在0-20之间.
现在由于防御过高,公式在基本伤害为负数时失效了.

[color=blue]下面是itblue测试的结果[/color]

攻击总量=武功伤害/3+人物基础攻击力+(武器增加的攻击力+配套武器多增加的攻击力)*2/3+进攻方武学常识总量*1.2
防御总量=人物防御*2+防御方武学常识总量*4

这里的常识总量,是指该方所有人员中,常识值超过80(不包括80)的所有人的常识值的和。
比如2个人,一个50,一个100,则按100算,如果2个都是50,按0算,如果都是100,按200算。

当   攻击总量>防御总量    的时候,伤害=攻击总量-防御总量
当   攻击总量<防御总量     的时候,伤害=攻击总量*(0.14~0.15)(有待进一步测试)




[color=blue]游客曾经说过[/color]

游戏制作群其实满偷懒的 , 一个公式通常能共用很多情况 .
例如轻功格数 , 逢15进1 :
15~29走一格      75~89走五格
30~44走二格      90~104走六格
45~59走三格      105~120走七格
60~74走四格

例如资质分档 , 逢15进1 :
15~29 秘笈六倍经验     75~89 秘笈二倍经验
30~44 秘笈五倍经验     90~99 秘笈一倍经验
45~59 秘笈四倍经验     100+   秘笈零倍经验
60~74 秘笈三倍经验

其他如用毒解毒医疗的格数 , 仍是这种计算方式 ,所以我大胆猜测是否属性增加也是逢15进1的算法 ?



[color=blue]这个是我猜的[/color]

人物资质分档


1~6选择可能是随机的,我的感觉。

放在顶楼好看些 。+7的情况我没考虑,因为我没遇到过。有遇到过朋友也说基本可以忽略了。我测试的几组数据量还是不够大,每组测了20几遍,或许还有别的可能,欢迎朋友们找错了。20一个档89~70是1~5,69~50是1~4

90+      每次升级增长1-6,学习1倍。 岳灵珊  黄蓉 小昭 王语嫣

75-89   每次升级增长1-5,学习2倍。 令狐冲  朱九真  任盈盈 慕容复 阿紫 苏荃 杨过 陈家洛 袁承志 霍都 胡斐
                                                           宋青书  张召重   

70-74   每次升级增长1-5,学习3倍。 张无忌 蓝凤凰 花铁干 霍青桐 梅超风 何铁手 祖千秋 人厨子 李沅芷 钟灵
                                                           
60-69   每次升级增长1-4,学习3倍。  田伯光 贝海石 程灵素 游坦之 薛慕华 阿珂 田归农 温青青 程英 林平之
                                                            虚竹3

50-59   每次升级增长1-4,学习4倍。 萧中慧  小龙女  段誉  阎基  虚竹2

45-49   每次升级增长1-3,学习4倍。 虚竹

30-44   每次升级增长1-3,学习5倍。 胡青牛 王难姑 平一指  郭靖

15-29   每次升级增长1-2,学习6倍。 狄云 石破天 岳老三

[[i] 本帖最后由 妖狐 于 2006-11-19 14:49 编辑 [/i]]

2006-11-19 16:19 小小猪
妖狐给出的伤害公式是大家测试的结果吧?很厉害啊
我再给一个反汇编后看到的程序结果吧

计算武功对敌人伤害步骤:

1、计算我方所有人武学常识之和×2。
(武学常识<80 不算,生命<0  不算,已死亡的人不算)

2、根据战斗人物现在内力计算应该使用的武功等级,一般使用最高等级,如果内力不够使用最高等级,则使用内力能够使用的等级。

3、计算我方战斗人物总攻击力
总攻击力=(人物攻击力×3 + 武功当前等级攻击力)/2 +武器加攻击力 + 防具加攻击力 + 武器武功配合加攻击力 +我方武学常识之和

4、计算敌人总防御力
总防御力 = 人物防御力 +武器加防御力 + 防具加防御力 + 敌方武学常识之和

5、计算伤害
伤害 = (总攻击力-总防御×3)×2 / 3 + RND(20) – RND(20)                  (公式1)

6、如果上面的伤害 < 0 则
伤害 =  总攻击力 / 10 + RND(4) – RND(4)                                            (公式2)

7、如果伤害仍然 < 0 则    伤害 = 0

8、if  伤害 > 0 then
    伤害= 伤害 + 我方体力/15  + 敌人受伤点数/ 20

9、if 双方距离 <= 10 then
           伤害 = 伤害×(100 -  ( 距离–1 ) * 3 )/ 100
    else
           伤害 = 伤害*2 /3

10、if 伤害 < 1  伤害 = 1



顺便解释一下,苍龙里所谓的伤害拐点,就是公式1中的结果小于0,于是采用了公式2,而公式2的结果与武功威力和敌防御是无关的,所以会输出一个基本固定的伤害值。原版游戏中攻击力上限100,所以公式二只会算出一个10左右的值,效果不明显。苍龙里由于提高了攻击力上限,公式2算出的结果可能会比较大,这样就出现降龙十八掌打10点(用公式1),而罗汉拳却打40点(用公式2)的情况。

2006-11-19 16:27 金圭子
嗯,非常感谢两位。

这个:

8、if  伤害 > 0 then
    伤害= 伤害 + 我方体力/15  + 敌人受伤点数/ 20

【受伤点数是什么?】

9、if 双方距离 <= 10 then
           伤害 = 伤害×(100 -  ( 距离–1 ) * 3 )/ 100
    else
           伤害 = 伤害*2 /3
【这个就是说距离越远效果越小吧,这个距离是双方的距离?就是说如果是面攻击,,打空的点选择在哪里没关系吧……(就是说不是打的点的距离吧)】

2006-11-19 16:28 小小猪
还有一份关于中毒的,也许大家有用

1、使用武功使敌人中毒的公式:
中毒程度=武功等级×武功中毒点数+人物攻击带毒
if 敌人抗毒> 中毒程度 则不中毒
if 敌人抗毒> 90 则不中毒

敌人中毒=敌人已中毒+ 中毒程度/15

if 敌人中毒> 100 then敌人中毒 =100

if 敌人中毒<0 then 敌人中毒=0

2、用毒时中毒公式:
中毒程度 =(用毒能力-抗毒能力)/ 4
小于0则为0

3、中毒损血公式
原版中,每回合减血数=敌人中毒/10+RND
苍龙中,每回合减血数=敌人中毒+RND

2006-11-19 16:29 金圭子
我说怎么这么快就回复了。呵呵。

小小猪去看看我用rmxp写的战棋模式撒^_^,看看有没有前途啊^_^

2006-11-19 16:34 鱼跃龙渊
伟大的二哥开始做金群了吗:wub:

有工作计划没....要跑腿帮忙出馊点子的鱼头军师不

2006-11-19 16:43 小小猪
点、线、十字的伤害,距离就是两人相差的格子数,最小为1。
面攻击时,距离是两人相差的格子数+敌人到攻击点的距离。

2006-11-19 16:44 金圭子
[quote]原帖由 [i]小小猪[/i] 于 2006-11-19 16:28 发表
1、使用武功使敌人中毒的公式:
中毒程度=武功等级×武功中毒点数+人物攻击带毒
if 敌人抗毒> 中毒程度 则不中毒
if 敌人抗毒> 90 则不中毒

敌人中毒=敌人已中毒+ 中毒程度/15

if 敌人中毒& ... [/quote]
嗯,那看来闪电貂,敌人中毒点数本来就有50,就算是开始的9级,哪怕不算人物攻击带毒的点数(我随便用fish看了个档是52),除以15也有30的效果,如果是10级,外加50多的带毒点数,就有37左右,3下就100了

最变态的是!!抗毒对这个几乎完全无效(除非你抗毒过90)!!因为没人可能有500多的抗毒吧 -_\\,而且你89抗毒和0抗毒效果一样…………太BT了…………

而且更主要的是简单易学距离远消耗少,比起蛤蟆功最大的优势就是一开局就可以用啊,邪恶啊邪恶…………

2006-11-19 16:46 金圭子
[quote]原帖由 [i]小小猪[/i] 于 2006-11-19 16:43 发表
点、线、十字的伤害,距离就是两人相差的格子数,最小为1。
面攻击时,距离是两人相差的格子数+敌人到攻击点的距离。 [/quote]
(-_-;)
这么说,只要敌人能被我打到,我应该尽可能取靠近自己的点作为打点?
邪恶啊,这样最靠近自己的敌人反而伤害小了(距离小,但是路程长,有来回的!)

2006-11-19 16:50 金圭子
[quote]原帖由 [i]鱼跃龙渊[/i] 于 2006-11-19 16:34 发表
伟大的二哥开始做金群了吗:wub:

有工作计划没....要跑腿帮忙出馊点子的鱼头军师不 [/quote]
嗯,这几天进行的还算顺利。

听取铁血上【见贤思齐】的意见,现在就只做系统,等完全可以实现srpg的系统(类似金群的战棋战斗、经验计算、点线面十字攻击外加打空的AI、离队、装备书学技能、治疗用毒解毒…………啊啊啊啊啊啊啊啊啊………………)以后,我考虑做一个大家打周伯通的演示教程。
在这个出来之前,不断放出改良的系统,激励大家也激励自己,等系统改良完毕,如果自己还准备做游戏(难说……),那就改为闷发。或者拉其他有rmxp经验的人用我的系统写东西(这样对脚本的要求就很低了)

2006-11-19 16:58 小小猪
敌人每减少50点生命,增加1点受伤程度。
医疗可以恢复轻伤,吃药可以回复重伤,但公式不详。

2006-11-19 17:47 鱼跃龙渊
[quote]原帖由 [i]金圭子[/i] 于 2006-11-19 16:50 发表

嗯,这几天进行的还算顺利。

听取铁血上【见贤思齐】的意见,现在就只做系统,等完全可以实现srpg的系统(类似金群的战棋战斗、经验计算、点线面十字攻击外加打空的AI、离队、装备书学技能、治疗用毒解毒… ... [/quote]

哪个东西我看不懂:titter:  下载了不会用:titter:

2006-11-19 18:10 mimi123
敌人中毒=敌人已中毒+ 中毒程度/15

这个是不是说中毒如果不解毒会自动加深?

2006-11-19 20:56 金圭子
不是,是敌人中毒程度等于原来的中毒程度加上新被打以后中的毒

2006-11-19 21:18 mimi123
就是说 第一次中毒的程度最高
以后每次增加都只有以前1/15的效果?

2006-11-19 21:44 collpkk
第一次也是按这个计算的吧,0+中毒/15,一样

2006-11-20 00:32 妖狐
看到这个帖子我也能瞑目了
这个小小猪早点儿不把伤害公式拿出来:angry:
原来如此,怪不得总对不上呢

2006-11-20 17:52 collpkk
小小猪是怎么将游戏文件反汇编的呀?方便告诉一下下么?

2006-11-20 23:35 小小猪
[quote]原帖由 [i]妖狐[/i] 于 2006-11-20 00:32 发表
看到这个帖子我也能瞑目了
这个小小猪早点儿不把伤害公式拿出来:angry:
原来如此,怪不得总对不上呢 [/quote]

你们是研究怎么玩,当然要给你们研究的空间了。
柜子是研究游戏系统,当然要尽可能的提供资料。

2006-11-20 23:38 小小猪
[quote]原帖由 [i]collpkk[/i] 于 2006-11-20 17:52 发表
小小猪是怎么将游戏文件反汇编的呀?方便告诉一下下么? [/quote]

使用反汇编工具。随便搜一下到处都有。
分析游戏系统是很困难的,我的水平还不行,这个结果是游泳的鱼分析后告诉我的。
如果你对汇编语言非常熟悉,有很强的编程功底,可以试试。

[[i] 本帖最后由 小小猪 于 2006-11-20 23:41 编辑 [/i]]

2006-11-21 09:04 昭福
[quote]原帖由 [i]mimi123[/i] 于 2006-11-19 21:18 发表
就是说 第一次中毒的程度最高
以后每次增加都只有以前1/15的效果? [/quote]
不是啊

2007-1-7 18:40 金圭子
[quote]原帖由 [i]小小猪[/i] 于 2006-11-20 23:38 发表


使用反汇编工具。随便搜一下到处都有。
分析游戏系统是很困难的,我的水平还不行,这个结果是游泳的鱼分析后告诉我的。
如果你对汇编语言非常熟悉,有很强的编程功底,可以试试。 [/quote]
欧欧欧!!又逮到一个会反汇编的,教教我好么?
我曾经去问过van,van就说了个ida,就不多说了。

他在论坛从来不聊天(我就见过1、2次说了1句有点聊天性质的话),都不知道怎么和他聊起来,看你还是很能讲的,就你啦~~和我讲讲吧。
基本的汇编大学里面学过(最后考试前看了2小时书,居然及格了,是我大二到大四唯一一门及格的主课,强吧^_^),不过直接看win32asm出来的还是很晕…………
传授一下你的方法和心得咩??

2007-1-7 22:10 asdvic
初学编程
来看看写什么算法

页: [1]


Powered by Discuz! Archiver 5.0.0  © 2001-2006 Comsenz Inc.