[这两天讨论的总结]数字ai在魔法上的应用及其替代(一个)
首先提出:是我这两天在论坛上火星&抽疯后总结的东西,各中问题也都解决清楚了。大前提是:适合有一定战役水平但对数字ai仍是云里雾里的中手。
讲的不是数字ai怎么写,而且可以怎么用。另外附上一个前两天总结的火星进贡法,也供大家选择。
废话少说,开始(我用手机写的,所以没有字体…原谅我:P)
首章:数字ai的代替品
现在RPG战役里充斥着数字Ai,做起来好像又麻烦又不好用,很多像我这样的人都不想学啊…可能是因为我对编程一窍不通。
可是数字效果实在太重要了,我们怎么才能用一个简单的东西去代替它,我们一定要用Ai吗?不!一个一天到晚看的东西--进贡是可以替代它的!
我们可以指定玩家一的一种资源表示魔法值,或者其它什么别的,或者就是一个工具。然后通过向某个玩家进贡一定数量来检测玩家发出的指令,并在第一时间移除这个进贡量,那么就可以往复使用,而且可以达到消耗魔法值的效果,极端简单,但这个单位只能以100来计…
想进贡就得有市场。有资源就可以随便换。你怎么办?哈哈哈哈,我狂笑。因为进贡根本不用点市场,你把它弄一个:
条件:选择市场
效果:改变市场给玩家二
效果:改变市场给玩家一
循环。
想交易的友友们~你们可是干不成这事喽~所以说,这个主意绝对可行,可以比较有效的替代数字Ai,但是玩家计起来可能比较麻烦…这点的确是个难题。“那个小宇宙怎么用来着?”“好像是给玩家8八百石头…”是很别扭…但是…呵呵…的确是个好主意…大家理解着来吧,我觉得实在是很easy
好吧,我还是来写个简单例子。
比如星星之剑里的剑光一闪,在那里是82,我们换成给玩家二800石头
现在玩家二是没有石头的。
条件一:玩家二积累800石头
效果一:送出信息:剑光一闪!
效果二:给亚瑟加13点攻击
效果三:玩家二进贡800石头给盖亚
效果四:激活触发二。
触发二:
条件一:计时器,一个时间
效果一:给亚瑟减13点攻击效果二:减15生命值
效果三:开启触发一。
但尼克一针见血的提出一个问题:当我进贡800石头后,100,200,300,400,的技能也相应被开启,因为帝国时代里积累属性指的是大于等于,而800在大于二百,三百,四百的集合中。所以这样是不可行的。
但是通过小小的思考,我们回忆到这样一个事实,帝国的效果是由上到下运行的,触发也是一样。我们在每一个以积累属性为条件的触发中都加如一个效果,把这个触发运行前某玩家的所有石头贡掉,那么到了下面的触发也就没有满足条件的属性数额了。所以[第一个小于等于]进贡数的条件被满足且只有这个条件会被满足。
由这个原理,我们把条件贡品数由大到小排列,这样就可以达到“玩家贡多少,对应的那个效果就开启”了。
优点:和数字ai差不多的效果,可以组成比255更多的组合,也不像杀单位,点单位那样需要切换视角,反复编队。
缺点:玩家的操作感会受损,而且这个方法很少人用,你得非时让玩家适应(相反,玩家很容易适应数字ai,可能是大家都适应了选择题:P)
第二章:数字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就输个大数呗)就是这样。。
总结:数字ai对很多新手来讲是一个很神秘的东西,其实不然,但它有着不可避免的缺点。以上谈到的数字ai替代法,和三种数字ai的应用方法都有或多或少的缺点。希望各位能自己选择适合自己战役的方法,用适宜的方法把它升华。:) 错别字满篇。待会儿我用电脑上再改。
有个必须改,是1+2=3不是1+1=2 推薦一下舊帖:
https://www.hawkaoe.net/bbs/viewthread.php?tid=1478 KK的......
可以说是从各初都拿点来综合出来的. 可是我手打也不容易吧??……
而且居然那么多人问而不找,等着肉到嘴边不知道自己找肉吃,消沉。 顶顶顶!KK辛苦,尽管不一定属于原创,但是总结和归纳也是一门技巧甚至是艺术哦,毕竟KK付出了自己的汗水,值得嘉奖,我可是受益匪浅,说不定以后的战役就会用到啦。
话说这帖知名度太低,沉得太低,甚至都是坟了,建议大家多顶一顶,让更多的人特别是还不怎么会用数字Ai的新手来看一看。给个置顶也是非常好的。 我不求什么…自己明白就成了。分给大家,看也行不看也行
毕竟都是人脑想出来的
我能想到,聆风老师能想到,那么大家也可以想到,相信这里没有太笨的人吧。 大概看了大家的讨论。。。。关于处理重复输入而造成错误的问题。。。。有一点似乎被忽略。。。。。
对于语音效果的处理上。。。。。帝国时代对于一个特定的语音比如输入1。。。每1单位游戏时间只处理一次。。。也就是说即使你在这个时间单位内输入500次。。。也只有一次的效果。。。。
但是。。。
对于同一个时间单位内输入1、2、3、4、5、6。。。。。是瞬间全部处理一次。。。。
在这前提下。。。任何基于触发本身的防范措施将没有任何效果。。。。。。
当然。。。。一般情况下玩家的输入速度无法达到这种程度。。。最多同时输入3~4语音。。。。
但对于技能资源分隔不大的触发群来说。。还是可能引起错误。。。。
所以还是推荐新思路。。。。从AI文件自身上去加强。。。。。。
吾辈目前自己战役里面使用的数字AI选段做例子。。。。
可以完美的解决这类问题而不需要对于资源分布有过于严格的要求。。。。。
(defrule
(taunt-detected 1 1)
(wood-amount < 1)
=>
(acknowledge-taunt 1 1)
(cc-add-resource wood 100)
)
(defrule
(taunt-detected 1 1)
=>
(acknowledge-taunt 1 1)
)
第一个段落检测当前Player拥有木材数量以及是否听到1
(1)如果听到1且木材为0,则作弊加100木材。消除听到1的行为。第2段落无法触发。
(2)如果听到1,但是木材数量超过1(即已听过其他声音),则用第2段落消除听到1的行为。防止在木材=0却不输入1时触发第1段落。
[ 本帖最后由 Ru43 于 2009-9-2 20:56 编辑 ] 哇- -
我从不用人工智慧目标这个条件…
我就用积累属性… 原帖由 帝国银之风¤ 于 2009-9-2 20:53 发表 https://www.hawkaoe.net/bbs/images/common/back.gif
哇- -
我从不用人工智慧目标这个条件…
我就用积累属性…
我也没用啊。。。。set-signal开了后关不掉的。。。。。 技能还可以用点击圣物,在一些角落里放置几个圣物,然后各个都编辑名字,在弄点他们产生效果,只是这个较麻烦,而且还要把屏幕拖过去,不过也挺实用! 补充一下
关于重复多次输入
无论1秒内输入什么数字和多少次
启动的只有1个触发而已
触发里有清除贡品的效果
下面的不会满足检测的条件
[ 本帖最后由 lingfeng 于 2009-10-3 21:32 编辑 ] 我记得主贴里似乎有。加了进贡效果这个就没有1+2=3的问题了
要是偷懒搞集体扑杀就不好办了~ 如果按暂停然后输入多个数字呢 那就激活触发排在第一个的 原帖由 老胡V1 于 2010-2-18 11:03 发表
如果按暂停然后输入多个数字呢
AI将同时读取所有不同的数字,并在瞬间全部转化成对应的资源。
因此,下面的提到的方法将完全失效。。。。。。。
原帖由 lingfeng 于 2009-10-3 21:25 发表
补充一下
关于重复多次输入
无论1秒内输入什么数字和多少次
启动的只有1个触发而已
触发里有清除贡品的效果
下面的不会满足检测的条件
原帖由 帝国银之风¤ 于 2009-10-3 21:42 发表
我记得主贴里似乎有。加了进贡效果这个就没有1+2=3的问题了
要是偷懒搞集体扑杀就不好办了~
简单说,触发进贡无法阻止瞬间大量输入导致的越级错误触发。
举个例子,
本来:
输入1得到 1金子10木材。
。。。。。
输入10得到10金子1木材。
而触发条件上
也是
1金子10木材
。。。。。
10金子1木材
也就是任何单一的触发都没问题。
但是F3下同时输入2和3,AI的叠加是瞬间的,最终会叠加得到5金子17木材,直接把1触发。而不会触发2或3的任何一个。 我记得输入多个数字的话,只会读取第一个....... 只要每个触发都贡出足够多的资源……就只能激活第一个 原帖由 王文祎 于 2010-2-18 13:16 发表 https://www.hawkaoe.net/bbs/images/common/back.gif
我记得输入多个数字的话,只会读取第一个.......
以前试的和中午试的,结果都表明,会同时读取所有不同数字。
两种资源错开和触发后即进贡资源都无法避免。
原帖由 帝国银之风¤ 于 2010-2-18 13:43 发表 https://www.hawkaoe.net/bbs/images/common/back.gif
只要每个触发都贡出足够多的资源……就只能激活第一个
无论叠加输入什么的话,确实都能激活第一个。。。。。。这样已经造成输入效果混乱了。。。。。。 但是我用大智的那种数字ai,的确是之读取第一个
页:
[1]
2