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

[交流] [UP1.5] 侦测聊天内容的AI - 输入文字可触发效果(一般用于战役)

[复制链接]

183

主题

9

精华

2万

积分

教皇

耕战
3325
鹰币
15158
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-4-29 05:21:57 | 显示全部楼层 |阅读模式
本帖最后由 newtonerdai 于 2020-6-13 11:24 编辑

以前的数字AI

以前我们是通过“数字AI”来实现玩家输入数字→发动某些效果。
其AI语句是这样的:
(defrule
    (taunt-detected 1 <数字1~255>)      ;收到玩家1的某个数字时,条件成立
=>
    (acknowledge-taunt 1 <数字1~255>)   ;注销玩家1的数字嘲弄,使这个规则效果能重复使用
    (cc-add-resource food 1)            ;给自己增加食物1点
)

触发部分则是:
触发0  ||  初始开启  不显示  循环
    条件0  ||  堆积资源:AI玩家  食物>=1点
    效果0  ||  进贡资源:AI玩家  食物1点  进贡1点  给GAIA
    效果1  ||  <自定义效果>

少的时候还好操控,一旦数字指令多起来,达到十余个,可能前期会难以记忆。比如《雪之守护》里的人偶释放指令。


现在拜UserPatch 1.5的新AI语句所赐,我们可以实现检测玩家的任意字符了!



【侦测聊天内容的AI】

核心语句:
(up-store-player-chat 任一玩家编号,或百搭玩家编号)
(up-compare-text c: 文本常数 比较运算符 (in)(op)值)

功能:
up-store-player-chat
      把单个玩家的聊天信息储存到内部缓冲区中。注意,只有最后一条信息的最后一个单词会被储存(空格为单词之间的分隔符,如“go to”有两个单词,“威廉·华莱士”是单个单词),而且这条信息必须出现在当前AI玩家的聊天记录里(可通过PageUP按键翻页找到)。缓冲区可以通过 %s 和c: 7031232(而非%d)在up-chat-data-*指令中调用(注意7031232不能储存在defconst里)。这个缓冲区由所有AI玩家共享,所以在规则结束前(in a rule pass)请先储存数据。

up-compare-text
      对保存在缓冲区的内容与预定义的字符串执行比较操作。在使用这条命令前,你必须先使用up-store-系列命令储存文本到缓冲区,且你所提供的必须是一个储存有字符串的文本常数。如果给定的字符串无法在储存的文本里找到,那么值应为-1;否则,值应为匹配的索引(匹配索引值=该字符串在缓冲区中首次出现时,其前面的字符数)。请注意,这并不能检测缓冲区里出现了多少次字符串。(in)(op)值的范围应为-1~32767。

想达成的效果:
    玩家发出“dun”时,AI检测到并向触发传递信息,触发生成一个代号为“”的防御人偶,效果可重复。

完整AI语法:
(defconst text "dun")           ;预定义文本“dun”为一个文本常数"text"

(defrule
    (true)
=>
    (up-store-player-chat 1)            ;时刻储存最后一个且是来自于玩家1的聊天单词(空格分隔,如“AA BB”为两个单词,“我是new123”是一个单词)到缓存区。注意只能储存最后一个,如果发出"dun"后瞬间又有人发了一条"24",那就会获取到"24",抑或是“dun 思密达”则会获取空格后的“思密达”,而非"dun"。
)

(defrule
    (up-compare-text c: text == 0)      ;检测缓存区里的内容是否包含text里的关键词"dun",且第一次出现处前面的字符数为0。不包含dun时对应-1,包含时为首次出现处前面的字符数量,所以无法检测含有多少条“dun”。
    (up-resource-amount 198 c:< 1)      ;检测空闲的198号资源是否<1。这样可以达到自锁的目的,等待触发接收并清空资源,再继续下一次执行。
=>
    (up-chat-data-to-all "text: %s" c: 7031232)     ;测试用,可以发送出缓存区里的内容。%s和c: 7031232是用来调用缓存区的指令符。
    (up-cc-add-resource c: 198 c: 1)    ;增加空闲的198号资源1点,从而与触发联动。(up-cc-add-resource可以不再局限于4种基础资源,任何资源都可以增加)。
    (do-nothing)                        ;(可换成你想要的语句)
)

触发部分:
触发0  ||  初始开启  不显示  循环
    条件0  ||  堆积资源:AI玩家  198号资源  >=1点
    效果0  ||  进贡资源:AI玩家  198号资源  进贡1点  给GAIA
    效果1  ||  送出聊天:[已释放人偶“盾”] 给玩家1
    效果2  ||  <自定义效果>

效果:

本帖子中包含更多资源

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

x
索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

117

主题

9

精华

9万

积分

教皇

Wolotine

耕战
17250
鹰币
546157
天龙币
0
回帖
1570

翔鹰建站十周年纪念章小评论家第十二届火箭筒杯最佳新人第十三届火箭筒杯亚军第十三届火箭筒杯亚军赌徒勋章第八届战鹰杯单人赛冠军

附庸关系11
发表于 2020-4-29 09:00:17 | 显示全部楼层
新桶又通宵写AI了
回复

使用道具 举报

183

主题

9

精华

2万

积分

教皇

耕战
3325
鹰币
15158
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-5-25 17:01:09 | 显示全部楼层
更新了一下最新的规则说明和注释。
前段时间测试发现:
up-store-player-chat获取的是以空格作为分隔符的最后一个单词
up-compare-text返回的是文本首次出现时匹配的索引值
具体请看帖子。
索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

117

主题

9

精华

9万

积分

教皇

Wolotine

耕战
17250
鹰币
546157
天龙币
0
回帖
1570

翔鹰建站十周年纪念章小评论家第十二届火箭筒杯最佳新人第十三届火箭筒杯亚军第十三届火箭筒杯亚军赌徒勋章第八届战鹰杯单人赛冠军

附庸关系11
发表于 2020-6-10 19:07:39 | 显示全部楼层
你输入“蹲”之后AI那边传给触发,触发又回贡走了一点198号资源,触发执行一次之后198号资源又回到了0,如果玩家蹲了之后没说别的话,那么现在AI又会执行,无限循环下去。
回复

使用道具 举报

183

主题

9

精华

2万

积分

教皇

耕战
3325
鹰币
15158
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-6-11 14:13:56 | 显示全部楼层
cxt 发表于 2020-6-10 19:07
你输入“蹲”之后AI那边传给触发,触发又回贡走了一点198号资源,触发执行一次之后198号资源又回到了0,如 ...

是的,你这么一说我也发现了。暂时没有很好的解决办法。
这可能比较适合在一个关卡中只能释放一次的效果,并且在关卡结束后还得让玩家手动输入任意内容来覆盖聊天。
索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

21

主题

3

精华

1万

积分

征服者

耕战
3476
鹰币
2266
天龙币
0
回帖
220

第十三届火箭筒杯季军

附庸关系9
发表于 2020-7-11 18:26:44 | 显示全部楼层
可以检测作弊吗?作弊码有空格
![/url]
回复

使用道具 举报

183

主题

9

精华

2万

积分

教皇

耕战
3325
鹰币
15158
天龙币
0
回帖
1200

翔鹰建站十周年纪念章

附庸关系3
 楼主| 发表于 2020-7-12 00:43:43 | 显示全部楼层
HudsonLee 发表于 2020-7-11 18:26
可以检测作弊吗?作弊码有空格

貌似不行。这个语句的本质是,获取AI玩家的聊天记录里能看到的最后一个任意玩家发送的单词。
别人发送作弊码时,AI玩家是收不到聊天记录的(同理,别人不向他发送讯息时,也是收不到的)
索引:
Userpatch 实用技术贴索引←点击进入
决定版精品贴大索引←点击进入

战役:
《 兔与豹》——柔弱奴隶公主  猛兽口中求生←点击进入
《敛由国的统一》←点击进入

殊途战役制作群 QQ: 616317226
翔鹰帝国Ⅱ:决定版交流群 QQ: 112822759
回复

使用道具 举报

本版积分规则

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

GMT+8, 2024-4-20 05:12 , Processed in 0.140954 second(s), 85 queries , File On.

Powered by Hawk Studio  QS Security Corp.® Licensed

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

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