美文网首页PercyAIYGOPRO
ygopro PercyAI小结-1

ygopro PercyAI小结-1

作者: OhnkytaBlabdey | 来源:发表于2017-10-14 19:19 被阅读129次

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

    相关文章

      网友评论

        本文标题:ygopro PercyAI小结-1

        本文链接:https://www.haomeiwen.com/subject/fnrfuxtx.html