还是循环的数字AI问题,(资源法)。还请给位帮帮忙
经过一番苦习,不断地在论坛上查贴翻卷,终于在昨天晚上第一次使用出了数字AI效果。后来发现一次性的数字AI不够用。于是查找循环的。T.T
最后找到了大智前辈教的资源法,于是随便做了个测试试了一下,但是在测试的时候却发生了不该有的效果。
例如:
输入1杀死士兵1,输入2杀死士兵2.
我回车输入1,但是没反应,于是第二次输入1,才杀死士兵1。 输入2也一样需要两次。
每一个数字都要输入两次才会触发……这是什么问题啊………… T0T
给位帮忙看看,哪里出错了。
AI:
(defrule
(taunt-detected 1 1);
=>
(acknowledge-taunt 1 1);
(cc-add-resource gold 1);
)
(defrule
(true)
=>
(set-strategic-number sn-maximum-food-drop-distance 0)
(set-strategic-number sn-maximum-wood-drop-distance 0)
(set-strategic-number sn-maximum-gold-drop-distance 0)
(set-strategic-number sn-maximum-stone-drop-distance 0)
(set-strategic-number sn-percent-civilian-gatherers 0)
(set-strategic-number sn-percent-civilian-builders 0)
(set-strategic-number sn-percent-civilian-explorers 0)
(set-strategic-number sn-maximum-hunt-drop-distance 0)
(set-strategic-number sn-maximum-fish-boat-drop-distance 0)
(set-strategic-number sn-task-ungrouped-soldiers 0)
(set-strategic-number sn-total-number-explorers 0)
(disable-self)
)
(defrule
(taunt-detected 1 2);
=>
(acknowledge-taunt 1 2);
(cc-add-resource food 2);
)
触发1:不显示 开启 不循环 (如果循环的话输入多少次都不会触发)
条件:玩家2获得1黄金
效果:玩家2进贡999999黄金给盖亚
触发2:不显示 开启 不循环
条件:玩家2获得1黄金
效果:杀死士兵1
触发3:不显示 开启 不循环
条件:玩家2获得1食物
效果:玩家2进贡999999食物给盖亚
触发4:不显示 开启 不循环
条件:玩家2获得1食物
效果:杀死士兵2 第二章:数字ai应用总结
而今天学了学数字Ai。我把我的Ai看后聆风告诉我其实可以这样:
规矩的做法是一个资源栏对一个技能。而这个方法则是两个资源栏解决255个技能~而且没有多多少东西。只用Ai多写一句。
比如原来是:输入数字1,给玩家二1金子。我们判断玩家二有一金子,就激活一套特定的触发。
我们现在写为:输入数字1,给玩家二1金子,255石头。我们检测玩家二有1金子,255石头时,激活一套触发。
你不明白那石头干什么用?再看一个,技能二是:输入数字2,给玩家二2金子,254石头。我们检测玩家二有2金子,254石头来激活技能二的触发。
发现规律了?
技能三则是输入数字3,给玩家二3金子,253石头………我们检测玩家二有3金子,253石头来激活技能三。。
等等等无穷无尽子子孙孙一代又一代长江后浪推前浪,一代更比一代强…………。
技能255就是输入数字255,给玩家二255金子,1石头。看到这里大家应该明白了。两种资源是错开的。这就解决了昨天尼克说的:我用了贡800金子的技能结果贡200,贡300,400,500的全部开启了。
这里的<有序实数对>中没有一组的两个值比另外一组的两个值都大。意见着,没有一组效果触发后会连带另一个效果被开启。
所以说,两个资源栏即解决255个技能,完全不需要再用生产/毁灭单位了。
分享一下= =我知道是火星的东西,但是大智的数字Ai教程里并没有涉及这个。我觉得挺好用就发上来了。
但是有一个问题,知道是什么吗?我快速的输入1和2(就像大家输入Marco polo那样熟练那样快)会激活技能3。因为1+1=2,225+224>223。这是比较恶心的事实,所以还是提醒大家。
有时候并没有十全十美的办法,请大家自己选择一个好方法来应用吧。
--分层--
明白了,所以发上来。我犯了一个极端傻冒的问题。是这样:
帝国触发都是按顺序来激活的,就算条件都一样,但作用时还得按先后顺序。
而你在每个检测技能的触发里都加上:贡出资源的话,第一个技能激活后,贡品被贡出到第二个技能已经是无法满足条件了。
所以说可以把触发按照数字大小来排(因为我们这里说的是技能号=金子进贡量,所以技能号小的放前面,它就会先激活。)这样按顺序来就是保证不激活一个跟你输入数字完全没关系的技能。也不会多耗掉玩家什么东西。好纠结…但是一下就明白了……(第一章最末一段话就是在明白这个以后补写的。)
以下是香港的nomygf兄对我的话进一步解释:
其實很簡單而已, 簡單說一遍, 大家一般的數字魔法方法, 是利用四種資源做到四種不同魔法效果,即
檢測到語音 1, 傳送1 黃金到電腦。若電腦存有1 黃金, 代表玩家1輸入了語音1。
檢測到語音 2, 傳送1 石材到電腦。若電腦存有1 石材, 代表玩家1輸入了語音2。
檢測到語音 3, 傳送1 食物到電腦。若電腦存有1 食物, 代表玩家1輸入了語音3。
檢測到語音 4, 傳送1 木材到電腦。若電腦存有1 木材, 代表玩家1輸入了語音4。
一共用了四種資源, 排除隱藏資源外, 沒有別的資源可以用了,為解決問題, 有人想了用以下方法:即
檢測到語音 1, 傳送1 黃金到電腦。若電腦存有1 黃金, 代表玩家1輸入了語音1。
檢測到語音 2, 傳送2 黃金到電腦。若電腦存有2 黃金, 代表玩家1輸入了語音2。
檢測到語音 3, 傳送3 黃金到電腦。若電腦存有3 黃金, 代表玩家1輸入了語音3。
檢測到語音 4, 傳送4 黃金到電腦。若電腦存有4 黃金, 代表玩家1輸入了語音4。
但這種方法還是不行, 若是輸入"4"時, 檢測語音1,2,3的觸發事件也會連帶生效(若是用關閉觸發事件來解決, 實在太麻煩, 再基於觸發事件順序, 作者需要由尾做上頭),為再解決以上問題, 現在樓主將以上方法修改少少, 變成這樣:
檢測到語音 1, 傳送1 黃金、255 石材到電腦。若電腦存有1 黃金、255 石材, 代表玩家1輸入了語音1。
檢測到語音 2, 傳送2 黃金、254 石材到電腦。若電腦存有2 黃金、254 石材, 代表玩家1輸入了語音1。
要是輸入語音2, 電腦玩者的黃金增加 2, 石材增加 254, 這樣檢測語音1的觸發事件就不會生效,因為要使該觸發事件生效, 電腦玩者需要有 1金,255 石材, 現在電腦玩者只有 2金,254 石材,所以觸發事件不會連帶生效。
我再反馈的见解:
就是这个意思。
但其实输入八,进贡八黄金也不一定会引起一二三四五六七被开启。
只要你降次(从进贡的黄金由大到小排)然后在每一个检测黄金数为条件的触发里加一个效果,进贡所有黄金,那么到了语音7的效果,已经没有黄金可被检测。
不用定时器。因为帝国的触发即使条件一样,也要从上到下来触发。
但是降次排列引起了一个顺次排列方法中,一个不太严重的问题。这个问题到了降次排列变得尤为严重:
当你快速输入1,2后,进贡的黄金马上累加到3,所以语音3对应的效果被惨烈地开启。然后资源被贡出,1,2反而没人管(效果不会被开启了。)
所以说:
双资源栏检测-->升次排列,它在快速输入两个语音后,只会开启进贡黄金量最小,石头量最多的那个技能。这算个小惩罚(我设定的是黄金数越小,技能越弱):P
而
单资源比大小-->降次排列,但这样那个惨烈的效果就出现了。。
而
单资源不同栏-->则是最简单的,但是相应的问题是可设计的技能少。
我这里说的是针对黄金越多,技能越强。当然如果不是这样,我劝你用不同资源栏来做。少几个就少吧。我觉得黄金多,技能强是有优点的,制作者管理方便,也方便玩家记忆。(打Boss就输个大数呗)就是这样。。
https://www.hawkaoe.net/bbs/thread-23626-1-2.html 我花了超大的决心才把你的回复读完,读得我痛不欲生。不过幸好对我很有帮助。--
你告诉我的方法的确是比大智的更好用。
但是…………你没有解决到我的问题 :L
不过后来看到了你帖子里面“因为帝国的触发即使条件一样,也要从上到下来触发”这句话
让我恍然大悟,所以我把触发的顺序调整了一下,结果就可以了。汗。。。。
再次谢谢你,11 11,我看了标题后直接从我的贴里复制的。是比较不好读,但好好读了总能懂、
页:
[1]