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

[教程] 简提数字ai

[复制链接]

119

主题

7

精华

5万

积分

枢机主教

耕战
9015
鹰币
120460
天龙币
3
回帖
3966

第二届千涛拍岸杯贴图比赛冠军翔鹰建站十周年纪念章一级翔鹰勋章三级嘉禾勋章二级帝国勋章雄鹰勋章翔四电影节亚军冒险七王者翔五电影节冠军

附庸关系0
发表于 2013-10-26 00:48:45 | 显示全部楼层 |阅读模式
本帖最后由 枫叶の飘零 于 2013-12-25 21:41 编辑

虽然好多人都发过相关帖子了,但是吾辈还是详写一个,关于数字ai的教程帖子
概念
  什么是数字ai?就是关于输入数字产生效果的ai,今天吾辈只介绍资源法
最简单的资源法是这样:
(defrule
(ai通用的开头)
(taunt-detected 1 x)
(检测到玩家输入某个数字,x=1~255)
=>
(acknowledge-taunt 1 2)
(重設语音指令可以让ai注销这个数字可能一般人很难理解,用一个例子来说明,如果将玩家输入数字10,比成向桌子上放上一张黑桃10。
所有拥有(taunt-detected 1 10)语句的AI,都将能够识别这张黑桃10(也就是识别到玩家已输入数字10),并做出反应。

(cc-add-resource stone 1)
(这里是我们产生资源的地方,资源类型有4种,分别是:wood(木材)、food(食物)、gold(黄金)、stone(石头),选择一种填写即可,数值随意,)
)
个人说明一下,为什么要给玩家石头呢?
原因很简单方便触发检测,因为输入2就给玩家1石头所以你可以用检测这个x玩家有多少石头,
举个例子我设置一个触发通过检测数字来送出对话
条件0:游戏者x堆积属性:1石头(用于检测输入没有)
效果0:送出游戏者x的1石头给大地之母(防止触发循环)
效果1:送出聊天:XXXX(效果不解释)
效果3:激活这个触发
(输入技能就是需要激活的)

但是这样有个致命BUG,就是限制AI数量,一个玩家只有4个资源栏,最多可以7个电脑玩家,也就是最多用4X7=28个ai来做这样的ai
有人会问为什么不能多层检测?比如堆积1木头,堆积2木头....
这样绝对不行!因为堆积2木头的时候会激活1和2,2个触发,后果不说了。所以我们必须发动自己的脑子构思出第二种资源法

(defrule
(taunt-detected 1 2)
=>
(acknowledge-taunt 1 2)
(cc-add-resource stone 1)
(cc-add-resource wood 100)
)
解释一下这个ai意思:输入2,给玩家x 1石头 100木头
有人问了这样有什么用?不就是多了个条件吗?
但是你们要了解原理
这样设置触发可以这样(举2个触发作为例子)
条件0:堆积属性:木头1     条件0:堆积属性木头2
条件1:堆积属性:石头100   条件1:堆积属性石头99
效果0:送出资源木头1       效果0:送出资源木头2
效果1:送出资源石头100     效果1:送出资源石头99
效果2:产生某个效果        效果2:产生某个效果
效果3:激活这个触发        效果3:激活这个触发

看懂了么?我给你解释一下,这是一个很简单的公理,就是说2个资源一个资源多一个资源少,
比如公式就是:
石头   木头
1      100
2      99
3      98
4      97
5      96
这样可以明白了吧?这样的堆积属性不会有重复现象,因为石头需求最多的条件,木头需要的最少,木头需要的最多的条件,石头需要的最少……
众玩家:这样就可以没有BUG了!
枫叶:对不起还是有BUG。。。
(全部晕倒)
这样的BUG是从本人的作品新剑侠情缘中发现的,如果玩家按着F3并且同时输入多个数字(闲的没事玩家典型)
那样就会触发重复,于是吾辈去请教RU大师,后来经过RU大师的教导吾辈才算明白
RU大师给吾辈普及的一些知识:
  AI语句是从上到下顺序执行的,而在不同的电脑玩家之间,一般是顺序在前的电脑玩家的AI先执行(并非绝对)。其次,编辑器触发的执行(在无定时器延时的情况下),一般要等到所有电脑玩家的AI都执行完毕后,才执行。其执行间隔也比AI要大,触发的最短执行间隔是一个游戏秒(下简称秒),而AI则是微秒级别的。说白了就是有2个ai(一个1,一个2)你先F3然后输入2再输入1,系统就会检测为你先输入了1然后输入了2。
又因为ai的速度远远快于触发所以玩家可以F3然后无限输入
如果玩家在一秒内,输入1次10,那么对应的AI电脑玩家获得1次资源
如果玩家在一秒内,输入2次10,那么对应的AI电脑玩家获得2次资源
如果玩家在一秒内,输入5次10,那么对应的AI电脑玩家获得5次资源


(defrule
(taunt-detected 1 1)
(wood-amount < 1
【枫叶解释:这个是检测资源小于某个数目】
注:运算符号可以是>(大于)、<(小于)、=(等号)、>=(大等于)、<=(小等于),最常用的是<(小于),其他符号可根据情况酌情使用。
(gold-amount < 1)
【枫叶解释:这个是检测资源小于某个数目】
=>
(acknowledge-taunt 1 1)
(cc-add-resource wood 5)
(cc-add-resource gold 1)
)
(defrule
(taunt-detected 1 1)
=>
(acknowledge-taunt 1 1)
)
解释一下:这个条件为:输入1,玩家拥有的石头小于1 金子小于1  效果:给玩家5木头, 1金子
这样就可以放止玩家多重输入:
原理:很显然, AI第一次识别数字10,获得资源后,如果依然识别到数字10,那么将不会继续获得资源。
这样我们就可以做触发了条件就是堆积属性,效果自定,看不懂的就联系本人

这样大致可以做出但是也有小问题
对于上述语句,细心的读者可能会想到一个新的情况,如果第二次输入的数字10,由于资源门槛,导致语句未被运行。那么这个数字10将会一直存在,可能被其他语句所误读。为了防止这种情况,一般是在后面加一个无条件的注销语句,如下:
(defrule
(taunt-detected 1 10)
=>
(acknowledge-taunt 1 10)
)

最终AI
(defrule
(wood-amount < x)
x=任何正整数)
(taunt-detected 1 10)
10可以=1~255)
=>
(acknowledge-taunt 1 10)
这个10=上面那个10的数值)
(cc-add-resource wood 50)
木头自定
)
(defrule
(taunt-detected 1 10)
(这个10也是等于第三行的10的数值)
=>
(acknowledge-taunt 1 10)
10=上面的10的数值)
)其中第一部分识别数字10,并在从未识别的前提下,给予AI木材50单位
第二部分则当识别发生后,再次出现数字10的时候,将数字10及时注销,避免被其他语句误读。
做好了AI开始学怎么装AI
1、如何装载到游戏中
设置:打开玩家选项让任意一个玩家的性格成为你自己做的数字ai

如图注意不可以选中游戏者1
2、需要注意的问题
(1)使用前,养成清空对应资源栏的好习惯。这是避免AI错误的手段之一。
除非设计需求上,你必须要保留之前的触发结果。例如,玩家输入5,再输入3,最后输入8,你要计算5+3=8关系正确之类的。。。
(2)AI语句编写时,及时注销不用的数字。一般的习惯是用完即注销。对于有触发条件的(除识别数字这个条件,还有其他条件语句的),那么一定要有其他语句对其补充,防止条件不符合时,数字未注销。
最后放出一张吾辈的图来方便理解(也许不怎么方便)


特别感谢RU43

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册翔鹰会员(昵称)

x
当你不能再拥有的时候,唯一可以做的,就是令自己不要忘记
回复

使用道具 举报

119

主题

7

精华

5万

积分

枢机主教

耕战
9015
鹰币
120460
天龙币
3
回帖
3966

第二届千涛拍岸杯贴图比赛冠军翔鹰建站十周年纪念章一级翔鹰勋章三级嘉禾勋章二级帝国勋章雄鹰勋章翔四电影节亚军冒险七王者翔五电影节冠军

附庸关系0
 楼主| 发表于 2013-10-26 00:52:33 | 显示全部楼层
暂缺:更多问题,触发截图
当你不能再拥有的时候,唯一可以做的,就是令自己不要忘记
回复

使用道具 举报

38

主题

0

精华

2282

积分

侯爵

耕战
282
鹰币
510
天龙币
0
回帖
690

翔鹰建站十周年纪念章

附庸关系0
发表于 2013-10-26 15:01:02 | 显示全部楼层
話說為甚麼近日有那麼多教程出現=.=
本人教學:http://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=111273
回复

使用道具 举报

59

主题

1

精华

1万

积分

皇帝

耕战
2214
鹰币
1565
天龙币
0
回帖
951

翔鹰建站十周年纪念章三级翔鹰勋章

附庸关系0
发表于 2013-10-26 15:21:07 | 显示全部楼层
只会资源法的受教了。
《德里沙漏》4.2战役。
《光与暗》20%,


不爱玩了,很少上论坛了
回复

使用道具 举报

31

主题

21

精华

5万

积分

铎德

耕战
8277
鹰币
70593
天龙币
0
回帖
1213

翔鹰建站十周年纪念章一级嘉禾勋章鹰之智者

附庸关系0
发表于 2013-10-26 15:33:04 | 显示全部楼层
楼主辛苦。{:7_268:}
翔鹰
回复

使用道具 举报

119

主题

7

精华

5万

积分

枢机主教

耕战
9015
鹰币
120460
天龙币
3
回帖
3966

第二届千涛拍岸杯贴图比赛冠军翔鹰建站十周年纪念章一级翔鹰勋章三级嘉禾勋章二级帝国勋章雄鹰勋章翔四电影节亚军冒险七王者翔五电影节冠军

附庸关系0
 楼主| 发表于 2013-10-26 15:53:56 | 显示全部楼层
当你不能再拥有的时候,唯一可以做的,就是令自己不要忘记
回复

使用道具 举报

43

主题

0

精华

9947

积分

皇帝

耕战
1867
鹰币
45222
天龙币
0
回帖
1408

翔鹰建站十周年纪念章活跃者

附庸关系0
发表于 2013-10-26 17:53:41 | 显示全部楼层
枫叶也出教程啦
我倒是有个问题
在游戏多人联机剧本时
非帝国标准AI怎么执行
因为有一个选择难度,选择了就会替换掉原来的AI,可是又不能不选
回复

使用道具 举报

43

主题

0

精华

9947

积分

皇帝

耕战
1867
鹰币
45222
天龙币
0
回帖
1408

翔鹰建站十周年纪念章活跃者

附庸关系0
发表于 2013-10-26 17:54:06 | 显示全部楼层
手田水口廿卜 发表于 2013-10-26 07:01
話說為甚麼近日有那麼多教程出現=.=

这就是传说中的
星星之火可以燎原
回复

使用道具 举报

38

主题

0

精华

2282

积分

侯爵

耕战
282
鹰币
510
天龙币
0
回帖
690

翔鹰建站十周年纪念章

附庸关系0
发表于 2013-10-26 18:51:18 | 显示全部楼层
逸轩帝国制作组 发表于 2013-10-26 17:54
这就是传说中的
星星之火可以燎原

甚麼星星之火?
本人教學:http://www.hawkaoe.net/bbs/forum.php?mod=viewthread&tid=111273
回复

使用道具 举报

24

主题

0

精华

1824

积分

侯爵

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

十字军勋章

附庸关系0
发表于 2013-10-26 19:11:52 | 显示全部楼层
支持一下 , 学会数字AI制作技能{:
回复

使用道具 举报

119

主题

7

精华

5万

积分

枢机主教

耕战
9015
鹰币
120460
天龙币
3
回帖
3966

第二届千涛拍岸杯贴图比赛冠军翔鹰建站十周年纪念章一级翔鹰勋章三级嘉禾勋章二级帝国勋章雄鹰勋章翔四电影节亚军冒险七王者翔五电影节冠军

附庸关系0
 楼主| 发表于 2013-10-26 19:16:24 | 显示全部楼层
逸轩帝国制作组 发表于 2013-10-26 17:53
枫叶也出教程啦
我倒是有个问题
在游戏多人联机剧本时

所以说没有联机场景用到数字ai
当你不能再拥有的时候,唯一可以做的,就是令自己不要忘记
回复

使用道具 举报

119

主题

7

精华

5万

积分

枢机主教

耕战
9015
鹰币
120460
天龙币
3
回帖
3966

第二届千涛拍岸杯贴图比赛冠军翔鹰建站十周年纪念章一级翔鹰勋章三级嘉禾勋章二级帝国勋章雄鹰勋章翔四电影节亚军冒险七王者翔五电影节冠军

附庸关系0
 楼主| 发表于 2013-10-26 19:17:33 | 显示全部楼层
lingfeng 发表于 2013-10-26 19:11
支持一下 , 学会数字AI制作技能{:

谢大神支持
当你不能再拥有的时候,唯一可以做的,就是令自己不要忘记
回复

使用道具 举报

24

主题

0

精华

1824

积分

侯爵

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

十字军勋章

附庸关系0
发表于 2013-10-26 19:23:04 | 显示全部楼层
本帖最后由 lingfeng 于 2013-10-27 15:01 编辑

输入的数字被检测是有几秒延迟 实战中也很误事
F3的玩家也够可以的 这个问题一直存在

考虑了后半部分加入的检测语句 好神奇 真的可以防止10+10这样的重复输入
先输入10 然后输入比它小1的数字9 可以防止  
但比如 先输入10 然后输入比它大1的数字11  是不是可以 防止    求解
新技术有时间研究下






回复

使用道具 举报

43

主题

0

精华

9947

积分

皇帝

耕战
1867
鹰币
45222
天龙币
0
回帖
1408

翔鹰建站十周年纪念章活跃者

附庸关系0
发表于 2013-10-26 19:42:18 | 显示全部楼层
手田水口廿卜 发表于 2013-10-26 10:51
甚麼星星之火?

啊额
大陆的语文书上都有。。。
就是说 spark可以点燃一个森林
回复

使用道具 举报

119

主题

7

精华

5万

积分

枢机主教

耕战
9015
鹰币
120460
天龙币
3
回帖
3966

第二届千涛拍岸杯贴图比赛冠军翔鹰建站十周年纪念章一级翔鹰勋章三级嘉禾勋章二级帝国勋章雄鹰勋章翔四电影节亚军冒险七王者翔五电影节冠军

附庸关系0
 楼主| 发表于 2013-10-26 19:55:07 | 显示全部楼层
lingfeng 发表于 2013-10-26 19:23
输入的数字被检测是有几秒延迟 实战中也很误事
F3的玩家也够可以的 这个问题一直存在
比如3触发效果 某些 ...
但比如 先输入 10 然后输入比它大1的数字11  是不是可以 防止
是否是根据上下顺序决定的?还是说根据数字打小?
当你不能再拥有的时候,唯一可以做的,就是令自己不要忘记
回复

使用道具 举报

24

主题

0

精华

1824

积分

侯爵

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

十字军勋章

附庸关系0
发表于 2013-10-26 20:12:54 | 显示全部楼层
本帖最后由 lingfeng 于 2013-10-26 20:25 编辑

AI无关上下排列吧  比如条件是检测的 输入的数字  (taunt-detected 1 10)
有了这个条件 除了10以外的数都无法达成

二三条件的双项检测理解起来很乱,这个你是不是可以测试下?
F3 , 输入 10 +11  会被检测成另一个数字
10+9 同10+10 可以防止是不是
回复

使用道具 举报

119

主题

7

精华

5万

积分

枢机主教

耕战
9015
鹰币
120460
天龙币
3
回帖
3966

第二届千涛拍岸杯贴图比赛冠军翔鹰建站十周年纪念章一级翔鹰勋章三级嘉禾勋章二级帝国勋章雄鹰勋章翔四电影节亚军冒险七王者翔五电影节冠军

附庸关系0
 楼主| 发表于 2013-10-26 20:36:13 | 显示全部楼层
lingfeng 发表于 2013-10-26 20:12
AI无关上下排列吧  比如条件是检测的 输入的数字  (taunt-detected 1 10)
有了这个条件 除了10以外的数都无 ...

顿时感觉玩家给制作者找茬的能力越来越厉害了
当你不能再拥有的时候,唯一可以做的,就是令自己不要忘记
回复

使用道具 举报

24

主题

0

精华

1824

积分

侯爵

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

十字军勋章

附庸关系0
发表于 2013-10-27 15:09:45 | 显示全部楼层
枫叶の飘零 发表于 2013-10-26 20:36
顿时感觉玩家给制作者找茬的能力越来越厉害了


往往是制作者给自己找茬,找BUG的境界而已
正常来说也不会这样乱输,不用去理会啦
由于数字被AI转换为资源有一定时间延迟
比如某些玩家输入了一次,有疑惑就会输入第二次
这样也许会组合成另外的数字
AI加上条件就防止了 很不错的
只是数字AI被制作运用的并不广泛罢了
回复

使用道具 举报

0

主题

0

精华

-23

积分

奴隶

耕战
-5
鹰币
11
天龙币
0
回帖
5
附庸关系0
发表于 2013-12-25 19:29:15 本帖来自手机 | 显示全部楼层
我看了那个狂妄的李大爷爷的帖子,真是狂妄至极竟然辱骂枫叶兄
回复

使用道具 举报

29

主题

0

精华

296

积分

男爵

耕战
15
鹰币
775
天龙币
0
回帖
218
附庸关系0
发表于 2015-6-27 23:09:39 | 显示全部楼层
看来教程后自己做的一个AI,测试过了有效。想问一下如果我接下来想要添加“输入2增加2木材252石料"的效果该怎么做?把上面的数据复制下来改动没有用啊~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册翔鹰会员(昵称)

x
回复

使用道具 举报

本版积分规则

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

GMT+8, 2024-11-22 11:30 , Processed in 0.243570 second(s), 218 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

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

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