ygopro PercyAI小结-1

此章讲述SelectInitCommand.lua的主要功能。

不发图。建议无程序基础的读者挑选片段观看(雾)。


本文件内起作用的函数只有onselectinitcommand()


传入参数:主要常用的有cards

原作者建立了4个变量方便在本函数OnSelectInitCommand()内使用,常用的有:activateablecards,specialsummonablecards等


返回值格式:command,index

command为AI即将做出的行动类别,如发动 召唤 特殊召唤 set等等,(可能不会判断处理时对象的有无)。

index为可以进行该command的选项在“该command的全部选项(通常是card对象)”中的排序号。

command常用值:

-1:由AI决定本次行动内容

0:进行通常召唤

1:进行特殊召唤

5:发动(卡/卡的效果(非诱发效果)/设置P刻度)的宣言

6:宣言进入下一阶段

7:宣言进入结束阶段

注:没有“空操作”,不返值也是不规范的,可能导致崩溃。


index为-1表示由电脑决定序号。


常见功能的实现:

注:

代码可参考原本脚本,这里只讲一下过程。

有一部分代码是为了与原作的一些意义不明的全局变量衔接,如果有明白的读者请指明不当之处。

下文中提到的筛选可以使用多种方式,原作者在helpfunction等模块里定义了多种实用功能,可以帮助你写出自己的AI。


1,发动卡/卡的第一个效果/设置P卡。

(1)遍历可以发动的卡,筛选出“此时/此条件下”想要发动的卡(得到它的index)

(2)将全局变量设定好(此例中,将GlobalActivatedCardID(大概这变量名)设为这个卡的id)

(3)return 语句

1.2发动的卡有多个可以发动的效果,此时控制它发动第seq个效果

类似上文方法,同时再加一个判断:

local c = cards[i]

if c.description==c.id*16+seq then

...(参考上文的2,3步)

end

2,特殊召唤

类似“发动”。



时间2017-10-14-19-18

由于第一次发帖,简书诸多功能未熟悉,见谅。


下期预告:

2-SelectCard.lua

3-SelectChain.lua

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容