PercyAIYGOPRO

ygopro PercyAI小结-1

2017-10-14  本文已影响129人  OhnkytaBlabdey

此章讲述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

上一篇下一篇

猜你喜欢

热点阅读