翔鹰帝国网|帝国时代论坛|帝国时代系列|神话时代
 找回密码
 注册翔鹰会员(昵称)
搜索
查看: 1899|回复: 19

[教程] 关于资源栏的高效利用

[复制链接]

23

主题

1

精华

2万

积分

征服者

耕战
5538
鹰币
99
天龙币
0
回帖
349

雏鹰勋章第六届火箭筒杯优秀战役

附庸关系0
发表于 2010-3-31 13:48:04 | 显示全部楼层 |阅读模式
这是在做《魔戒》的过程中编写AI的时候自己思考之后发现的。
总共8个玩家,每个玩家4个资源栏,所以总共只有32个资源栏。这是不是代表着仅仅就只有32个变化呢?答案是否定的。例如我们要达成检测资源实现效果,我们可以用如下触发:

触发1:
条件  堆积属性 玩家1  黄金1
效果  (你希望达成的效果)

或者

触发2:
条件  堆积属性  玩家2  黄金1
效果 (你希望达成的另一种效果)

......


如果是这种方法,那么32个资源栏仅仅能产生32种情况。但是我们学了排列组合的就会知道,32个元素可以有很多种组合情况。例如,如果32种情况不够用,那么我们可以同时检测两个资源栏。如果是这样,那么触发可以如下编写:

触发1:
条件1   堆积属性  玩家1  黄金1
条件2   堆积属性  玩家1  木材1
效果  (你希望达成的效果)

触发2:
条件1   堆积属性  玩家1  黄金1
条件2   堆积属性  玩家2  黄金1
效果   (你希望达成的另一种效果)

......
                                                                                            
这样一来 ,根据不同的组合情况,我们可以有 C32(2)=32*31/2=496种情况了,相信这样就应该够绝大多数设计者的使用了。


但是如果对于变态级设计者,如果不够,还可以同时检测3个资源栏。那么组合情况数量将是C32(3)=32*31*30/(3*2)=4960。甚至,我们知道,根据排列组合的原理,对于32个资源栏,同时检测16个资源栏,或者17个资源栏,情况数量才达到最大,也就是C32(16)=32*31*30*29*28*27*26*25*24*23*22*21*20*19*18*17/(16*15*14*13*12*11*10*9*8*7*6*5*4*3*2*1)=#$%#——这个数字已经是天文数字了。

希望对大家有所帮助{32}

评分

参与人数 1耕战 +12 收起 理由
Ikarus + 12 欢迎分享,继续努力

查看全部评分

回复

使用道具 举报

229

主题

14

精华

11万

积分

圣徒

耕战
20973
鹰币
90388
天龙币
0
回帖
9213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章雄鹰勋章第六届火箭筒杯最佳战役第七届火箭筒杯最佳战役

附庸关系0
发表于 2010-3-31 14:33:34 | 显示全部楼层
其实两个资源栏就可以处理很多变量了。是不是一个玩家也无所谓
我指的是
检测
资源栏a:1
资源栏b:n-1
效果……
检测
资源栏a:2
资源栏b :n-2
效果……
等等……
如此,每两项只和都为定值就可以保证每一组都有一项比另一组的某项大。
这种叫双资源检测法,极端实用、简便的方法。相比你所介绍的,似乎更省些。而且动用所有资源栏实在不是好主意。

[ 本帖最后由 帝国银之风¤ 于 2010-3-31 14:36 编辑 ]
ΙΚΑΡΟΣ ΣΕ ΟΡΑΙ
回复

使用道具 举报

23

主题

1

精华

2万

积分

征服者

耕战
5538
鹰币
99
天龙币
0
回帖
349

雏鹰勋章第六届火箭筒杯优秀战役

附庸关系0
 楼主| 发表于 2010-3-31 20:12:46 | 显示全部楼层

回复 2# 的帖子

不得不承认,这个方法很精妙。
但是如果按照这个方法,如果现在的资源量是:
资源栏a:2
资源栏b:n
那样岂不是两种情况都满足了?这样的话在游戏里面,对于一些情况可能会产生bug的吧?以为毕竟只有两个资源栏。如果玩家操作不慎,会不会产生同时触发的情况呢?如果说是按照资源量多少的方法的话,那么一个资源栏都可以代表很多情况了。
回复

使用道具 举报

229

主题

14

精华

11万

积分

圣徒

耕战
20973
鹰币
90388
天龙币
0
回帖
9213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章雄鹰勋章第六届火箭筒杯最佳战役第七届火箭筒杯最佳战役

附庸关系0
发表于 2010-3-31 20:28:31 | 显示全部楼层
原帖由 李操 于 2010-3-31 20:12 发表
不得不承认,这个方法很精妙。
但是如果按照这个方法,如果现在的资源量是:
资源栏a:2
资源栏b:n
那样岂不是两种情况都满足了?这样的话在游戏里面,对于一些情况可能会产生bug的吧?以为毕竟只有两个资源栏。 ...

……这个情况你不允许它出现不就可以了?
在检测后要即使清除,哪种检测法也都需要清除数据吧。
ΙΚΑΡΟΣ ΣΕ ΟΡΑΙ
回复

使用道具 举报

229

主题

14

精华

11万

积分

圣徒

耕战
20973
鹰币
90388
天龙币
0
回帖
9213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章雄鹰勋章第六届火箭筒杯最佳战役第七届火箭筒杯最佳战役

附庸关系0
发表于 2010-3-31 20:31:15 | 显示全部楼层
如果操作不甚会导致第一个效果开启。不过那也不重要。因为任何方法都会出现办法,你的也不例外。而且bug这种东西玩家是可以自行避免的,说明即可
ΙΚΑΡΟΣ ΣΕ ΟΡΑΙ
回复

使用道具 举报

1374

主题

13

精华

4万

积分

教皇

耕战
4669
鹰币
19948
天龙币
0
回帖
13525

特级皇家勋章一级翔鹰勋章特级嘉禾勋章特级帝国勋章鹰之王者雄鹰勋章蛟龙勋章第七届火箭筒杯优秀战役第七届火箭筒杯最佳新人

附庸关系1
发表于 2010-3-31 20:58:54 | 显示全部楼层
换句话说也就是按不同数量的组合形成新的效果咯?

A                                                               1
AB                                                            2
AB AC BC                                               3
AB AC AD BC BD CD                           5
……

在地图上腾出一块地方搞生产目标也可以替代…… 毕竟游戏中你无法看到同盟的资源 会给测试带来麻烦
回复

使用道具 举报

156

主题

1

精华

4445

积分

公爵

耕战
441
鹰币
22
天龙币
0
回帖
2449

二级翔鹰勋章

附庸关系0
发表于 2010-3-31 21:14:28 | 显示全部楼层
除非做魔法战役……不然不可能这么多效果的…………
回复

使用道具 举报

229

主题

14

精华

11万

积分

圣徒

耕战
20973
鹰币
90388
天龙币
0
回帖
9213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章雄鹰勋章第六届火箭筒杯最佳战役第七届火箭筒杯最佳战役

附庸关系0
发表于 2010-3-31 21:21:49 | 显示全部楼层
楼上说的也有道理
ΙΚΑΡΟΣ ΣΕ ΟΡΑΙ
回复

使用道具 举报

24

主题

0

精华

1824

积分

侯爵

耕战
71
鹰币
1
天龙币
0
回帖
665

十字军勋章

附庸关系0
发表于 2010-3-31 21:37:10 | 显示全部楼层
有些不理解呢……
如检测游戏者2 wood,gold
那么这两个资源栏数据从何而来,又怎样增量变化?
标记数量只能单资源检测吧
...
回复

使用道具 举报

23

主题

1

精华

2万

积分

征服者

耕战
5538
鹰币
99
天龙币
0
回帖
349

雏鹰勋章第六届火箭筒杯优秀战役

附庸关系0
 楼主| 发表于 2010-3-31 22:55:03 | 显示全部楼层

回复 9# 的帖子

按照我写的那个触发啊,一个检测不够,我们就用两个检测。
分别用两个堆积属性来检测不同的资源栏
回复

使用道具 举报

23

主题

1

精华

2万

积分

征服者

耕战
5538
鹰币
99
天龙币
0
回帖
349

雏鹰勋章第六届火箭筒杯优秀战役

附庸关系0
 楼主| 发表于 2010-3-31 22:55:48 | 显示全部楼层

回复 10# 的帖子

如果是需要三个的话,就采用三个堆积属性来检测
回复

使用道具 举报

23

主题

1

精华

2万

积分

征服者

耕战
5538
鹰币
99
天龙币
0
回帖
349

雏鹰勋章第六届火箭筒杯优秀战役

附庸关系0
 楼主| 发表于 2010-3-31 23:02:11 | 显示全部楼层

回复 6# 的帖子

嗯,是的,就是你所说的方法,简单的排列组合,可以根据不同情况,选择不同的方案。缺点是还是有点麻烦,但是比较稳定,不容易产生bug
回复

使用道具 举报

23

主题

1

精华

2万

积分

征服者

耕战
5538
鹰币
99
天龙币
0
回帖
349

雏鹰勋章第六届火箭筒杯优秀战役

附庸关系0
 楼主| 发表于 2010-3-31 23:04:49 | 显示全部楼层

回复 7# 的帖子

是的,你说的对。所以说,对于一般设计者来说,用两个资源栏就足够了。
回复

使用道具 举报

23

主题

1

精华

2万

积分

征服者

耕战
5538
鹰币
99
天龙币
0
回帖
349

雏鹰勋章第六届火箭筒杯优秀战役

附庸关系0
 楼主| 发表于 2010-3-31 23:09:11 | 显示全部楼层

回复 5# 的帖子

是的,说的在理,不论是什么思路都肯定有其缺陷的,要配合在游戏设计中的具体情况才能实现最优解
回复

使用道具 举报

229

主题

14

精华

11万

积分

圣徒

耕战
20973
鹰币
90388
天龙币
0
回帖
9213

特级翔鹰勋章一级嘉禾勋章一级帝国勋章雄鹰勋章第六届火箭筒杯最佳战役第七届火箭筒杯最佳战役

附庸关系0
发表于 2010-4-1 06:54:37 | 显示全部楼层
……咋一次回复这么多……不能一起发吗……
ΙΚΑΡΟΣ ΣΕ ΟΡΑΙ
回复

使用道具 举报

96

主题

0

精华

1610

积分

侯爵

耕战
194
鹰币
169
天龙币
0
回帖
870

翔鹰建站十周年纪念章

附庸关系0
发表于 2010-4-1 07:47:05 | 显示全部楼层
这个方法不实用,例如你想弄后台(像天界勇者)那么有些只需有一个资源栏,如果再弄一个两个资源栏的,可能会重复原有资源栏,导致BUG的产生
回复

使用道具 举报

23

主题

1

精华

2万

积分

征服者

耕战
5538
鹰币
99
天龙币
0
回帖
349

雏鹰勋章第六届火箭筒杯优秀战役

附庸关系0
 楼主| 发表于 2010-4-1 11:33:28 | 显示全部楼层

回复 15# 的帖子

额....不好意思,我是针对每个人的留言,分别给他们回复,所以就...{21}
回复

使用道具 举报

1

主题

0

精华

77

积分

骑士

耕战
1
鹰币
1519
天龙币
0
回帖
42
附庸关系0
发表于 2010-4-1 13:04:23 | 显示全部楼层

其实…两个资源栏已经有99999种判定变化…印象中是这么多…

原想资源上限是亿的,具体数值忘记,考虑到堆积属性能否判定,毕竟未测试证实,详细触发见2楼,(可以将99999代入N来理解)手机党能力有限,抱歉。

最主要看你用来做什么效果,不同的效果就有不同的说法与做法…

[ 本帖最后由 Vicen.NG 于 2010-4-1 13:22 编辑 ]
回复

使用道具 举报

24

主题

0

精华

1824

积分

侯爵

耕战
71
鹰币
1
天龙币
0
回帖
665

十字军勋章

附庸关系0
发表于 2010-4-1 20:33:53 | 显示全部楼层
才发觉楼主的本意是数字AI的检测形式……
战役制作资源栏还是有限宝贵的
...
回复

使用道具 举报

23

主题

1

精华

2万

积分

征服者

耕战
5538
鹰币
99
天龙币
0
回帖
349

雏鹰勋章第六届火箭筒杯优秀战役

附庸关系0
 楼主| 发表于 2010-4-1 22:23:16 | 显示全部楼层

回复 19# 的帖子

对的,这个都被你发现了,太牛了。我现在正在做的战役就是用的这个方法。用了两个不参加正面战斗玩家的资源栏,组成了几十个后台效果。
回复

使用道具 举报

本版积分规则

排行榜|小黑屋|翔鹰帝国

GMT+8, 2024-12-27 03:33 , Processed in 0.267219 second(s), 222 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

Copyright © 2001-2023, Hawkaoe.net All Rights Reserved

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