游戏王残局简化版

Annotation For script/_functions.txt
Login

Annotation For script/_functions.txt

Origin for each line in script/_functions.txt from check-in 7cdfe656b5:

d04874f487 2023-06-29    1: ###############################################
d04874f487 2023-06-29    2: # 脚本中用到的数据类型为以下几类:
d04874f487 2023-06-29    3: # int:		整数类型
d04874f487 2023-06-29    4: # bool:		布尔类型(true 或者 false)
d04874f487 2023-06-29    5: # string:	字符串
d04874f487 2023-06-29    6: # function:	函数
d04874f487 2023-06-29    7: # Card:		卡片类
d04874f487 2023-06-29    8: # Effect:	效果类
d04874f487 2023-06-29    9: # Group:	卡片组类
d04874f487 2023-06-29   10: # table:	表类型
d04874f487 2023-06-29   11: # nil:		空类型,也表示空的变量
d04874f487 2023-06-29   12: # any:		任意类型
d04874f487 2023-06-29   13: # 为方便说明,采用类似C的函数表示方法说明
d04874f487 2023-06-29   14: # []表示有默认值可省略的参数
d04874f487 2023-06-29   15: # 只说明有意义的nil类型参数或返回值
d04874f487 2023-06-29   16: #
d04874f487 2023-06-29   17: # 注:关于过滤条件函数
d04874f487 2023-06-29   18: #  过滤条件函数是指第一个参数是Card类型,并且返回值是boolean的函数。此函数用于在一些获取满足条件的卡片组的过滤函数中重复调用。过滤条件函数可以有不定的参数,第二个开始的参数从过滤函数的额外参数获得。举例:
d04874f487 2023-06-29   19: # function sample_filter(c, atk, def)
d04874f487 2023-06-29   20: # 	return c:GetAttack()>=atk and c:GetDefense()>=def
d04874f487 2023-06-29   21: # end
d04874f487 2023-06-29   22: # 此函数对于一张卡c,如果攻击力>=atk并且守备力>=def则返回true,否则返回false
d04874f487 2023-06-29   23: # g=Duel.GetFieldGroup(0,LOCATION_HAND,0) --获取玩家1的手卡
d04874f487 2023-06-29   24: # fg=g:Filter(sample_filter,nil,1000,500) --从g中筛选攻击力>=1000并且守备>=500的卡
d04874f487 2023-06-29   25: # Group.Filter只需要3个参数,第4个参数开始为额外参数,额外的参数会传给sample_filter
d04874f487 2023-06-29   26: #
d04874f487 2023-06-29   27: # 注:关于指定位置
d04874f487 2023-06-29   28: # 一些函数可以获取指定位置的卡,通过三个参数指定 int player, int s, int o
d04874f487 2023-06-29   29: # s指对玩家player来说的己方的位置,o指对玩家player来说的对方的位置
d04874f487 2023-06-29   30: # 比如Duel.GetFieldGroup(0,LOCATION_GRAVE,LOCATION_MZONE)
d04874f487 2023-06-29   31: # 返回玩家0墓地和玩家1的怪兽区的所有卡
d04874f487 2023-06-29   32: #
d04874f487 2023-06-29   33: # 注:关于描述
d04874f487 2023-06-29   34: # 脚本系统并不是直接使用字符串显示提示文字,而是由系统通过一个整数(int desc)查找相应的描述
d04874f487 2023-06-29   35: # 对于desc<2048,系统在string.conf里面寻找,其中一些常用的数字(通常是提示选择的文字)在constant.lua中有记录
d04874f487 2023-06-29   36: # 对于desc>10000,系统在卡片数据库中寻找描述,通常使用aux.Stringid()函数指定
d04874f487 2023-06-29   37: #
d04874f487 2023-06-29   38: #●void Duel.ReplaceAttacker(Card c)
d04874f487 2023-06-29   39: #用c代替当前攻击的卡进行伤害阶段(此函数已不存在)
d04874f487 2023-06-29   40: #●void Duel.ReplaceAttackTarget(Card c)
d04874f487 2023-06-29   41: #(预留)(函数不存在)
d04874f487 2023-06-29   42: #
d04874f487 2023-06-29   43: #
d04874f487 2023-06-29   44: #区域相关:
d04874f487 2023-06-29   45: #自己场上从左往右,序号依次是0~4,额外怪兽区是5~6,0x7f 则表示全部主怪兽区+额外怪兽区
d04874f487 2023-06-29   46: #获取的区域值 zone 是以2位底,区号为次幂的数,所以要获取正确的区号,需要做对数 math.log(zone,2)
d04874f487 2023-06-29   47: #涉及到对方的区域,则需要把对方的值 左移16位
d04874f487 2023-06-29   48: #
d04874f487 2023-06-29   49: #换成二进制比较好直观理解:(空格是为了方便分辨是第几位)
d04874f487 2023-06-29   50: #
d04874f487 2023-06-29   51: #0x7f= 0111 1111
d04874f487 2023-06-29   52: #把它从低位开始 倒序排,就是  1111 1110 ,前5个就代表自己的5个主要怪兽区,第6个就是左边的额外怪兽区,第7个是右边的额外怪兽区
d04874f487 2023-06-29   53: #(0)= 1  = 0x1 	= 0000 0001
d04874f487 2023-06-29   54: #(1)= 2  = 0x2 	= 0000 0010
d04874f487 2023-06-29   55: #(2)= 4  = 0x4 	= 0000 0100
d04874f487 2023-06-29   56: #(3)= 8  = 0x8 	= 0000 1000
d04874f487 2023-06-29   57: #(4)= 16 = 0x10 = 0001 0000
d04874f487 2023-06-29   58: #(5)= 32 = 0x20 = 0010 0000
d04874f487 2023-06-29   59: #(6)= 64 = 0x40 = 0100 0000
d04874f487 2023-06-29   60: #
d04874f487 2023-06-29   61: ##############################################
d04874f487 2023-06-29   62: 
d04874f487 2023-06-29   63: ●void initial_effect(Card c)
d04874f487 2023-06-29   64: 载入卡片时调用
d04874f487 2023-06-29   65: 一般是注册初始卡片效果,以及设置苏生限制等等
d04874f487 2023-06-29   66: ========== bit ===========
d04874f487 2023-06-29   67: bit库已删除,请用操作符操作,详见 utility.lua
d04874f487 2023-06-29   68: 
d04874f487 2023-06-29   69: ========== Card ==========
d04874f487 2023-06-29   70: ●int[,int] Card.GetCode(Card c)
d04874f487 2023-06-29   71: 返回c的当前代号(可能因为效果改变)
d04874f487 2023-06-29   72: 
d04874f487 2023-06-29   73: ●int Card.GetOriginalCode(Card c)
d04874f487 2023-06-29   74: 返回c的卡片记载的代号
d04874f487 2023-06-29   75: 
d04874f487 2023-06-29   76: ●int,int Card.GetOriginalCodeRule(Card c)
d04874f487 2023-06-29   77: 返回c规则上的代号(这张卡规则上当作...使用)
d04874f487 2023-06-29   78: 
d04874f487 2023-06-29   79: ●int[,int,...] Card.GetFusionCode(Card c)
d04874f487 2023-06-29   80: 返回c作为融合素材时的卡号(包括c原本的卡号)
d04874f487 2023-06-29   81: 
d04874f487 2023-06-29   82: ●int[,int,...] Card.GetLinkCode(Card c)
d04874f487 2023-06-29   83: 返回c作为link素材的卡号(包括c原本的卡号)
d04874f487 2023-06-29   84: 
d04874f487 2023-06-29   85: ●bool Card.IsFusionCode(Card c, int code[, ...])
d04874f487 2023-06-29   86: 检查c作为融合素材时能否当作卡号为code的卡,额外参数是其他code
d04874f487 2023-06-29   87: 
d04874f487 2023-06-29   88: ●bool Card.IsLinkCode(Card c, int code[,...])
d04874f487 2023-06-29   89: 检查c作为link素材时能否当作卡号为code的卡,额外参数是其他code
d04874f487 2023-06-29   90: 
d04874f487 2023-06-29   91: ●bool Card.IsSetCard(Card c, int setname)
d04874f487 2023-06-29   92: 检查c是否是卡名含有setname的卡
d04874f487 2023-06-29   93: 
d04874f487 2023-06-29   94: ●bool Card.IsOriginalSetCard(Card c, int setname)
d04874f487 2023-06-29   95: 检查c是否是原本卡名含有setname的卡
d04874f487 2023-06-29   96: 
d04874f487 2023-06-29   97: ●bool Card.IsPreviousSetCard(Card c, int setname)
d04874f487 2023-06-29   98: 检查c位置变化之前是否是名字含有setname的卡
d04874f487 2023-06-29   99: 
d04874f487 2023-06-29  100: ●bool Card.IsFusionSetCard(Card c, int setname)
d04874f487 2023-06-29  101: 检查c作为融合素材时能否当作名字含有setname的卡
d04874f487 2023-06-29  102: 
d04874f487 2023-06-29  103: ●bool Card.IsLinkSetCard(Card c, int setname)
d04874f487 2023-06-29  104: 检查c作为link素材时能否当作名字含有setname的卡
d04874f487 2023-06-29  105: 
d04874f487 2023-06-29  106: ●int Card.GetType(Card c)
d04874f487 2023-06-29  107: 返回c的当前类型
d04874f487 2023-06-29  108: 
d04874f487 2023-06-29  109: ●int Card.GetOriginalType(Card c)
d04874f487 2023-06-29  110: 返回c的卡片记载的类型
d04874f487 2023-06-29  111: 
d04874f487 2023-06-29  112: ●int Card.GetFusionType(Card c)
d04874f487 2023-06-29  113: 返回c用作融合素材时的类型(与GetType的区别在于对于魔陷区的怪兽卡,返回其原本类型)
d04874f487 2023-06-29  114: 
d04874f487 2023-06-29  115: ●int Card.GetSynchroType(Card c)
d04874f487 2023-06-29  116: 返回c用作同调素材时的类型(与GetType的区别在于对于魔陷区的怪兽卡,返回其原本类型)
d04874f487 2023-06-29  117: 
d04874f487 2023-06-29  118: ●int Card.GetXyzType(Card c)
d04874f487 2023-06-29  119: 返回c用作同调素材时的类型(与GetType的区别在于对于魔陷区的怪兽卡,返回其原本类型)
d04874f487 2023-06-29  120: 
d04874f487 2023-06-29  121: ●int Card.GetLinkType(Card c)
d04874f487 2023-06-29  122: 返回c用作link素材时的类型(与GetType的区别在于对于魔陷区的怪兽卡,返回其原本类型)
d04874f487 2023-06-29  123: 
d04874f487 2023-06-29  124: ●int Card.GetLevel(Card c)
d04874f487 2023-06-29  125: 返回c的当前等级
d04874f487 2023-06-29  126: 
d04874f487 2023-06-29  127: ●int Card.GetRank(Card c)
d04874f487 2023-06-29  128: 返回c的当前阶级
d04874f487 2023-06-29  129: 
d04874f487 2023-06-29  130: ●int Card.GetLink(Card c)
d04874f487 2023-06-29  131: 返回c的连接标记数量
d04874f487 2023-06-29  132: 
d04874f487 2023-06-29  133: ●int Card.GetSynchroLevel(Card c, Card sc)
d04874f487 2023-06-29  134: 返回c的对于同调怪兽sc的同调用等级
d04874f487 2023-06-29  135: 此函数除了某些特定卡如调节支援士,返回值与Card.GetLevel(c)相同
d04874f487 2023-06-29  136: 
d04874f487 2023-06-29  137: ●int Card.GetRitualLevel(Card c, Card rc)
d04874f487 2023-06-29  138: 返回c的对于仪式怪兽rc仪式解放等级
d04874f487 2023-06-29  139: 此函数除了某些特定卡如仪式供物,返回值与Card.GetLevel(c)相同
d04874f487 2023-06-29  140: 
d04874f487 2023-06-29  141: ●int Card.GetOriginalLevel(Card c)
d04874f487 2023-06-29  142: 返回c的卡片记载的等级
d04874f487 2023-06-29  143: 
d04874f487 2023-06-29  144: ●int Card.GetOriginalRank(Card c)
d04874f487 2023-06-29  145: 返回c的卡片记载的阶级
d04874f487 2023-06-29  146: 
d04874f487 2023-06-29  147: ●bool Card.IsXyzLevel(Card c, Card xyzc, int lv)
d04874f487 2023-06-29  148: 检查c对于XYZ怪兽xyzc的XYZ用等级是否是lv
d04874f487 2023-06-29  149: 
d04874f487 2023-06-29  150: ●int Card.GetLeftScale(Card c)
d04874f487 2023-06-29  151: 返回c的左灵摆刻度
d04874f487 2023-06-29  152: 
d04874f487 2023-06-29  153: ●int Card.GetOriginalLeftScale(Card c)
d04874f487 2023-06-29  154: 返回c的原本的左灵摆刻度
d04874f487 2023-06-29  155: 
d04874f487 2023-06-29  156: ●int Card.GetRightScale(Card c)
d04874f487 2023-06-29  157: 返回c的右灵摆刻度
d04874f487 2023-06-29  158: 
d04874f487 2023-06-29  159: ●int Card.GetOriginalRightScale(Card c)
d04874f487 2023-06-29  160: 返回c的原本的右灵摆刻度
d04874f487 2023-06-29  161: 
d04874f487 2023-06-29  162: ●bool Card.IsLinkMarker(Card c, int dir)
d04874f487 2023-06-29  163: 检查c是否是连接标记为 dir 的卡
d04874f487 2023-06-29  164: dir的值有:
d04874f487 2023-06-29  165: LINK_MARKER_BOTTOM_LEFT		=0x001 -- ↙
d04874f487 2023-06-29  166: LINK_MARKER_BOTTOM			=0x002 -- ↓
d04874f487 2023-06-29  167: LINK_MARKER_BOTTOM_RIGHT	=0x004 -- ↘
d04874f487 2023-06-29  168: LINK_MARKER_LEFT			=0x008 -- ←
d04874f487 2023-06-29  169: LINK_MARKER_RIGHT			=0x020 -- →
d04874f487 2023-06-29  170: LINK_MARKER_TOP_LEFT		=0x040 -- ↖
d04874f487 2023-06-29  171: LINK_MARKER_TOP				=0x080 -- ↑
d04874f487 2023-06-29  172: LINK_MARKER_TOP_RIGHT		=0x100 -- ↗
d04874f487 2023-06-29  173: 
d04874f487 2023-06-29  174: ●Group Card.GetLinkedGroup(Card c)
d04874f487 2023-06-29  175: 返回c所连接区的卡片组
d04874f487 2023-06-29  176: 
d04874f487 2023-06-29  177: ●int Card.GetLinkedGroupCount(Card c)
d04874f487 2023-06-29  178: 返回c所连接区的怪兽卡数量
d04874f487 2023-06-29  179: 
d04874f487 2023-06-29  180: ●int Card.GetLinkedZone(Card c[, int player=c:GetControler()])
d04874f487 2023-06-29  181: 返回c的[以 player 来看的场上的]连接区域
d04874f487 2023-06-29  182: 
d04874f487 2023-06-29  183: ●Group Card.GetMutualLinkedGroup(Card c)
d04874f487 2023-06-29  184: 返回和c互相连接状态的卡片组
d04874f487 2023-06-29  185: 
d04874f487 2023-06-29  186: ●int Card.GetMutualLinkedGroupCount(Card c)
d04874f487 2023-06-29  187: 返回和c互相连接状态的卡片组的数量
d04874f487 2023-06-29  188: 
d04874f487 2023-06-29  189: ●int Card.GetMutualLinkedZone(Card c[, int player=c:GetControler()])
d04874f487 2023-06-29  190: 返回[以 player 来看的]与卡片 c 互相连接的卡 所在的区域
d04874f487 2023-06-29  191: 
d04874f487 2023-06-29  192: ●bool Card.IsLinkState(Card c)
d04874f487 2023-06-29  193: 检查c是否是连接状态
d04874f487 2023-06-29  194: 
d04874f487 2023-06-29  195: ●bool Card.IsExtraLinkState(Card c)
d04874f487 2023-06-29  196: 检查c是否是额外连接状态
d04874f487 2023-06-29  197: 
d04874f487 2023-06-29  198: ●Group Card.GetColumnGroup(Card c[,int left=0, int right=0])
d04874f487 2023-06-29  199: 返回与c同一纵列的c以外的卡片组,后2个参数会计算卡片c左边 left 列 和右边 right 列的所有卡,
d04874f487 2023-06-29  200: 比如c在中间的格子,那么 c:GetColumnGroup(2,2) 就相当于获取了除场地魔法以外的 场上的所有卡
d04874f487 2023-06-29  201: 
d04874f487 2023-06-29  202: ●int Card.GetColumnGroupCount(Card c[,int left=0, int right=0])
d04874f487 2023-06-29  203: 用法同上,只是返回的是卡片的数量
d04874f487 2023-06-29  204: 
d04874f487 2023-06-29  205: ●int Card.GetColumnZone(Card c, int location[, int left, int right, int player])
d04874f487 2023-06-29  206: 返回[以 player 来看的] location 范围内与 c 同一纵列[包含左边 left 列和右边 right 列]的区域,
d04874f487 2023-06-29  207: location 的值是 LOCATION_MZONE,LOCATION_SZONE,LOCATIOIN_ONFIELD
d04874f487 2023-06-29  208: 
d04874f487 2023-06-29  209: ●bool Card.IsAllColumn(Card c)
d04874f487 2023-06-29  210: 检查与c同一纵列的区域是否全都有卡
d04874f487 2023-06-29  211: 
d04874f487 2023-06-29  212: ●int Card.GetAttribute(Card c)
d04874f487 2023-06-29  213: 返回c的当前属性
d04874f487 2023-06-29  214: 注:对某些多属性怪兽如光与暗之龙,此函数的返回值可能是几个属性的组合值
d04874f487 2023-06-29  215: 
d04874f487 2023-06-29  216: ●int Card.GetOriginalAttribute(Card c)
d04874f487 2023-06-29  217: 返回c的卡片记载的属性
d04874f487 2023-06-29  218: 
d04874f487 2023-06-29  219: ●int Card.GetFusionAttribute(Card c[, int player])
d04874f487 2023-06-29  220: 返回c[由player融合召唤时]用作融合素材时的属性
d04874f487 2023-06-29  221: 
d04874f487 2023-06-29  222: ●int Card.GetLinkAttribute(Card c[, int player])
d04874f487 2023-06-29  223: 返回c[由player连接召唤时]用作连接素材时的属性
d04874f487 2023-06-29  224: 
d04874f487 2023-06-29  225: ●int Card.GetRace(Card c)
d04874f487 2023-06-29  226: 返回c的当前种族
d04874f487 2023-06-29  227: 注:对某些多种族怪兽如动画效果的魔术猿,此函数的返回值可能是几个种族的组合值
d04874f487 2023-06-29  228: 
d04874f487 2023-06-29  229: ●int Card.GetOriginalRace(Card c)
d04874f487 2023-06-29  230: 返回c的卡片记载的种族
d04874f487 2023-06-29  231: 
d04874f487 2023-06-29  232: ●int Card.GetLinkRace(Card c[, int player])
d04874f487 2023-06-29  233: 返回c[由player连接召唤时]作为连接素材时的种族
d04874f487 2023-06-29  234: 
d04874f487 2023-06-29  235: ●int Card.GetAttack(Card c)
d04874f487 2023-06-29  236: 返回c的当前攻击力
d04874f487 2023-06-29  237: 
d04874f487 2023-06-29  238: ●int Card.GetBaseAttack(Card c)
d04874f487 2023-06-29  239: 返回c的原本攻击力
d04874f487 2023-06-29  240: 
d04874f487 2023-06-29  241: ●int Card.GetTextAttack(Card c)
d04874f487 2023-06-29  242: 返回c的卡片记载的攻击力,返回值是负数表示是"?"
d04874f487 2023-06-29  243: 
d04874f487 2023-06-29  244: ●int Card.GetDefense(Card c)
d04874f487 2023-06-29  245: 返回c的当前守备力
d04874f487 2023-06-29  246: 
d04874f487 2023-06-29  247: ●int Card.GetBaseDefense(Card c)
d04874f487 2023-06-29  248: 返回c的原本守备力
d04874f487 2023-06-29  249: 
d04874f487 2023-06-29  250: ●int Card.GetTextDefense(Card c)
d04874f487 2023-06-29  251: 返回c的卡片记载的守备力,返回值是负数表示是"?"
d04874f487 2023-06-29  252: 
d04874f487 2023-06-29  253: ●int[,int] Card.GetPreviousCodeOnField(Card c)
d04874f487 2023-06-29  254: 返回c位置变化之前在场上的卡号
d04874f487 2023-06-29  255: 
d04874f487 2023-06-29  256: ●int Card.GetPreviousTypeOnField(Card c)
d04874f487 2023-06-29  257: 返回c位置变化之前在场上的类型
d04874f487 2023-06-29  258: 
d04874f487 2023-06-29  259: ●int Card.GetPreviousLevelOnField(Card c)
d04874f487 2023-06-29  260: 返回c位置变化之前在场上的等级
d04874f487 2023-06-29  261: 
d04874f487 2023-06-29  262: ●int Card.GetPreviousRankOnField(Card c)
d04874f487 2023-06-29  263: 返回c位置变化之前在场上的阶级
d04874f487 2023-06-29  264: 
d04874f487 2023-06-29  265: ●int Card.GetPreviousAttributeOnField(Card c)
d04874f487 2023-06-29  266: 返回c位置变化之前在场上的属性
d04874f487 2023-06-29  267: 
d04874f487 2023-06-29  268: ●int Card.GetPreviousRaceOnField(Card c)
d04874f487 2023-06-29  269: 返回c位置变化之前在场上的种族
d04874f487 2023-06-29  270: 
d04874f487 2023-06-29  271: ●int Card.GetPreviousAttackOnField(Card c)
d04874f487 2023-06-29  272: 返回c位置变化之前在场上的攻击力
d04874f487 2023-06-29  273: 
d04874f487 2023-06-29  274: ●int Card.GetPreviousDefenseOnField(Card c)
d04874f487 2023-06-29  275: 返回c位置变化之前在场上的守备力
d04874f487 2023-06-29  276: 
d04874f487 2023-06-29  277: ●int Card.GetOwner(Card c)
d04874f487 2023-06-29  278: 返回c的持有者
d04874f487 2023-06-29  279: 
d04874f487 2023-06-29  280: ●int Card.GetControler(Card c)
d04874f487 2023-06-29  281: 返回c的当前控制者
d04874f487 2023-06-29  282: 
d04874f487 2023-06-29  283: ●int Card.GetPreviousControler(Card c)
d04874f487 2023-06-29  284: 返回c的位置变化之前的控制者
d04874f487 2023-06-29  285: 
d04874f487 2023-06-29  286: ●int Card.GetReason(Card c)
d04874f487 2023-06-29  287: 返回c的位置变化原因
d04874f487 2023-06-29  288: 
d04874f487 2023-06-29  289: ●Card Card.GetReasonCard(Card c)
d04874f487 2023-06-29  290: 返回导致c的位置变化的卡
d04874f487 2023-06-29  291: 此函数仅在某卡被战斗破坏时,因为上级召唤被解放,或者成为特殊召唤使用的素材时有效
d04874f487 2023-06-29  292: 
d04874f487 2023-06-29  293: ●int Card.GetReasonPlayer(Card c)
d04874f487 2023-06-29  294: 返回导致c的位置变化的玩家
d04874f487 2023-06-29  295: 
d04874f487 2023-06-29  296: ●Effect Card.GetReasonEffect(Card c)
d04874f487 2023-06-29  297: 返回导致c的位置变化的效果
d04874f487 2023-06-29  298: 
d04874f487 2023-06-29  299: ●int Card.GetPosition(Card c)
d04874f487 2023-06-29  300: 返回c当前的表示形式
d04874f487 2023-06-29  301: 
d04874f487 2023-06-29  302: ●int Card.GetPreviousPosition(Card c)
d04874f487 2023-06-29  303: 返回c位置变化前的表示形式
d04874f487 2023-06-29  304: 
d04874f487 2023-06-29  305: ●int Card.GetBattlePosition(Card c)
d04874f487 2023-06-29  306: 返回c在本次战斗发生之前的表示形式
d04874f487 2023-06-29  307: 
d04874f487 2023-06-29  308: ●int Card.GetLocation(Card c)
d04874f487 2023-06-29  309: 返回c当前的所在位置
d04874f487 2023-06-29  310: 
d04874f487 2023-06-29  311: ●int Card.GetPreviousLocation(Card c)
d04874f487 2023-06-29  312: 返回c位置变化前的所在的位置
d04874f487 2023-06-29  313: 
d04874f487 2023-06-29  314: ●int Card.GetSequence(Card c)
d04874f487 2023-06-29  315: 返回c在当前位置的序号
d04874f487 2023-06-29  316: 在场上时,序号代表所在的格子,从左往右分别是0-4,场地魔法格的序号为5,左右灵摆区域为6-7
d04874f487 2023-06-29  317: 在其它地方时,序号表示的是第几张卡,最下面的卡的序号为0
d04874f487 2023-06-29  318: 
d04874f487 2023-06-29  319: ●int Card.GetPreviousSequence(Card c)
d04874f487 2023-06-29  320: 返回c位置变化前的序号
d04874f487 2023-06-29  321: 
d04874f487 2023-06-29  322: ●int Card.GetSummonType(Card c)
d04874f487 2023-06-29  323: 返回c的召唤/特殊召唤的方式
d04874f487 2023-06-29  324: 
d04874f487 2023-06-29  325: ●int Card.GetSummonLocation(Card c)
d04874f487 2023-06-29  326: 返回c的召唤/特殊召唤的位置
d04874f487 2023-06-29  327: 
d04874f487 2023-06-29  328: ●int Card.GetSummonPlayer(Card c)
d04874f487 2023-06-29  329: 返回召唤/特殊召唤 c 上场的玩家
d04874f487 2023-06-29  330: 
d04874f487 2023-06-29  331: ●int Card.GetDestination(Card c)
d04874f487 2023-06-29  332: 返回c位置变化的目的地
d04874f487 2023-06-29  333: 此函数仅在处理位置转移代替效果时有效
d04874f487 2023-06-29  334: 
d04874f487 2023-06-29  335: ●int Card.GetLeaveFieldDest(Card c)
d04874f487 2023-06-29  336: 返回c离场时因改变去向的效果(如大宇宙)的目的地
d04874f487 2023-06-29  337: 
d04874f487 2023-06-29  338: ●int Card.GetTurnID(Card c)
d04874f487 2023-06-29  339: 返回c转移到当前位置的回合
d04874f487 2023-06-29  340: 
d04874f487 2023-06-29  341: ●int Card.GetFieldID(Card c)
d04874f487 2023-06-29  342: 返回c转移到当前位置的时间标识
d04874f487 2023-06-29  343: 此数值唯一,越小表示c是越早出现在那个位置
d04874f487 2023-06-29  344: 卡片从里侧翻开也会改变此数值
d04874f487 2023-06-29  345: 
d04874f487 2023-06-29  346: ●int Card.GetRealFieldID(Card c)
d04874f487 2023-06-29  347: 返回c转移到当前位置的真实的时间标识
d04874f487 2023-06-29  348: 卡片从里侧翻开不会改变此数值
d04874f487 2023-06-29  349: 
d04874f487 2023-06-29  350: ●bool Card.IsCode(Card c, int code1[, int code2,...])
d04874f487 2023-06-29  351: 检查c的卡号是否是 code1[, 或者为 code2...]
d04874f487 2023-06-29  352: 
d04874f487 2023-06-29  353: ●bool Card.IsType(Card c, int type)
d04874f487 2023-06-29  354: 检查c是否属于类型type
d04874f487 2023-06-29  355: 
d04874f487 2023-06-29  356: ●bool Card.IsFusionType(Card c, int type)
d04874f487 2023-06-29  357: 检查c用作融合素材时是否属于类型type(与IsType的区别在于对于魔陷区的怪兽卡,用其原本类型作判断)
d04874f487 2023-06-29  358: 
d04874f487 2023-06-29  359: ●bool Card.IsSynchroType(Card c, int type)
d04874f487 2023-06-29  360: 检查c用作同调素材时是否属于类型type(与IsType的区别在于对于魔陷区的怪兽卡,用其原本类型作判断)
d04874f487 2023-06-29  361: 
d04874f487 2023-06-29  362: ●bool Card.IsXyzType(Card c, int type)
d04874f487 2023-06-29  363: 检查c用作XYZ素材时是否属于类型type(与IsType的区别在于对于魔陷区的怪兽卡,用其原本类型作判断)
d04874f487 2023-06-29  364: 
d04874f487 2023-06-29  365: ●bool Card.IsLinkType(Card c, int type)
d04874f487 2023-06-29  366: 检查c用作连接素材时是否属于类型type(与IsType的区别在于对于魔陷区的怪兽卡,用其原本类型作判断)
d04874f487 2023-06-29  367: 
d04874f487 2023-06-29  368: ●bool Card.IsLevel(Card c, int level1[, int level2,...])
d04874f487 2023-06-29  369: 检查c是否是等级 level1[, 或者为 level2...]
d04874f487 2023-06-29  370: 
d04874f487 2023-06-29  371: ●bool Card.IsRank(Card c, int rank1[, int rank2,...])
d04874f487 2023-06-29  372: 检查c是否是阶级 rank1[, 或者为 rank2...]
d04874f487 2023-06-29  373: 
d04874f487 2023-06-29  374: ●bool Card.IsLink(Card c, int link1[, int link2,...])
d04874f487 2023-06-29  375: 检查c的连接标记数量是否是 link1[, 或者为 link2...]
d04874f487 2023-06-29  376: 
d04874f487 2023-06-29  377: ●bool Card.IsAttack(Card c, int atk1[, int atk2,...])
d04874f487 2023-06-29  378: 检查c的攻击力是否是 atk1[, 或者为 atk2...],如果c不是怪兽卡,或者不在 LOCATION_MZONE 则都返回false
d04874f487 2023-06-29  379: 
d04874f487 2023-06-29  380: ●bool Card.IsDefense(Card c, int def[, int atk2,...])
d04874f487 2023-06-29  381: 检查c的守备力是否是 def1[, 或者为 def2...],如果c不是怪兽卡,或者不在 LOCATION_MZONE 则都返回false
d04874f487 2023-06-29  382: 
d04874f487 2023-06-29  383: ●bool Card.IsRace(Card c, int race)
d04874f487 2023-06-29  384: 检查c是否属于种族race
d04874f487 2023-06-29  385: 
d04874f487 2023-06-29  386: ●bool Card.IsLinkRace(Card c, int race[, int player])
d04874f487 2023-06-29  387: 检查c[由player连接召唤时]用作连接素材时是否属于种族race
d04874f487 2023-06-29  388: 
d04874f487 2023-06-29  389: ●bool Card.IsAttribute(Card c, int attribute)
d04874f487 2023-06-29  390: 检查c是否属于属性attribute
d04874f487 2023-06-29  391: 
d04874f487 2023-06-29  392: ●bool Card.IsFusionAttribute(Card c, int attribute[, int player])
d04874f487 2023-06-29  393: 检查c[由player融合召唤时]用作融合素材是否属于属性attribute
d04874f487 2023-06-29  394: 
d04874f487 2023-06-29  395: ●bool Card.IsLinkAttribute(Card c, int attribute[, int player])
d04874f487 2023-06-29  396: 检查c[由player连接召唤时]用作连接素材是否属于属性attribute
d04874f487 2023-06-29  397: 
d04874f487 2023-06-29  398: ●bool Card.IsReason(Card c, int reason)
d04874f487 2023-06-29  399: 检查c是否包含原因reason
d04874f487 2023-06-29  400: 
d04874f487 2023-06-29  401: ●bool Card.IsSummonType(Card c, int sumtype)
d04874f487 2023-06-29  402: 检查c的召唤类型是否是sumtype
d04874f487 2023-06-29  403: 
d04874f487 2023-06-29  404: ●bool Card.IsStatus(Card c, int status)
d04874f487 2023-06-29  405: 检查c是否包含某个状态码
d04874f487 2023-06-29  406: 
d04874f487 2023-06-29  407: ●bool Card.IsNotTuner(Card c)
d04874f487 2023-06-29  408: 检查c是否可以当成非调整来使用
d04874f487 2023-06-29  409: 
d04874f487 2023-06-29  410: ●void Card.SetStatus(Card c, int state, bool enable)
d04874f487 2023-06-29  411: 给c设置或者取消状态码
d04874f487 2023-06-29  412: 除非妳清楚的了解每个状态码的含意,否则不要轻易使用此函数
d04874f487 2023-06-29  413: 
d04874f487 2023-06-29  414: ●bool Card.IsDualState(Card c)
d04874f487 2023-06-29  415: 检查c属否处于再召唤状态
d04874f487 2023-06-29  416: 
d04874f487 2023-06-29  417: ●void Card.EnableDualState(Card c)
d04874f487 2023-06-29  418: 把c设置成再召唤状态
d04874f487 2023-06-29  419: 
d04874f487 2023-06-29  420: ●void Card.SetTurnCounter(Card c, int counter)
d04874f487 2023-06-29  421: 设置c的回合计数器(光之护封剑等)
d04874f487 2023-06-29  422: 
d04874f487 2023-06-29  423: ●int Card.GetTurnCounter(Card c)
d04874f487 2023-06-29  424: 返回c的回合计数器
d04874f487 2023-06-29  425: 
d04874f487 2023-06-29  426: ●void Card.SetMaterial(Card c, Group g)
d04874f487 2023-06-29  427: 把g中的所有卡作为c的素材(上级召唤,特殊召唤)
d04874f487 2023-06-29  428: 
d04874f487 2023-06-29  429: ●Group Card.GetMaterial(Card c)
d04874f487 2023-06-29  430: 返回c出场使用的素材
d04874f487 2023-06-29  431: 
d04874f487 2023-06-29  432: ●int Card.GetMaterialCount(Card c)
d04874f487 2023-06-29  433: 返回c出场使用的素材数量
d04874f487 2023-06-29  434: 
d04874f487 2023-06-29  435: ●Group Card.GetEquipGroup(Card c)
d04874f487 2023-06-29  436: 返回c当前装备着的卡片组
d04874f487 2023-06-29  437: 
d04874f487 2023-06-29  438: ●int Card.GetEquipCount(Card c)
d04874f487 2023-06-29  439: 返回c当前装备着的卡片数量
d04874f487 2023-06-29  440: 
d04874f487 2023-06-29  441: ●Card Card.GetEquipTarget(Card c)
d04874f487 2023-06-29  442: 返回c当前的装备对象
d04874f487 2023-06-29  443: 
d04874f487 2023-06-29  444: ●Card Card.GetPreviousEquipTarget(Card c)
d04874f487 2023-06-29  445: 返回c之前的装备对象
d04874f487 2023-06-29  446: 
d04874f487 2023-06-29  447: ●bool Card.CheckEquipTarget(Card c1, Card c2)
d04874f487 2023-06-29  448: 检查c2是否是c1的正确的装备对象
d04874f487 2023-06-29  449: ##由EFFECT_EQUIP_LIMIT效果或同盟状态确定
d04874f487 2023-06-29  450: 
d04874f487 2023-06-29  451: ●int Card.GetUnionCount(Card c)
d04874f487 2023-06-29  452: 返回c当前装备的同盟卡数量
d04874f487 2023-06-29  453: 
d04874f487 2023-06-29  454: ●Group Card.GetOverlayGroup(Card c)
d04874f487 2023-06-29  455: 返回c当前叠放着的卡片组
d04874f487 2023-06-29  456: 
d04874f487 2023-06-29  457: ●int Card.GetOverlayCount(Card c)
d04874f487 2023-06-29  458: 返回c当前叠放着的卡片数量
d04874f487 2023-06-29  459: 
d04874f487 2023-06-29  460: ●Card Card.GetOverlayTarget(Card c)
d04874f487 2023-06-29  461: 返回以c为XYZ素材的卡
d04874f487 2023-06-29  462: 
d04874f487 2023-06-29  463: ●bool Card.CheckRemoveOverlayCard(Card c, int player, int count, int reason)
d04874f487 2023-06-29  464: 检查玩家player能否以reason为原因,至少移除c叠放的count张卡
d04874f487 2023-06-29  465: 
d04874f487 2023-06-29  466: ●int Card.RemoveOverlayCard(Card c, int player, int min, int max, int reason)
d04874f487 2023-06-29  467: 以reason为原因,让玩家player移除c叠放的min-max张卡,返回值表示是否成功
d04874f487 2023-06-29  468: 
d04874f487 2023-06-29  469: ●Group Card.GetAttackedGroup(Card c)
d04874f487 2023-06-29  470: 返回c本回合攻击过的卡片组
d04874f487 2023-06-29  471: 
d04874f487 2023-06-29  472: ●int Card.GetAttackedGroupCount(Card c)
d04874f487 2023-06-29  473: 返回c本回合攻击过的卡片数量
d04874f487 2023-06-29  474: 
d04874f487 2023-06-29  475: ●int Card.GetAttackedCount(Card c)
d04874f487 2023-06-29  476: 返回c本回合攻击过的次数
d04874f487 2023-06-29  477: 注:如果此值与上一个函数的返回值不同,那么说明此卡本回合进行过直接攻击
d04874f487 2023-06-29  478: 
d04874f487 2023-06-29  479: ●Group Card.GetBattledGroup(Card c)
d04874f487 2023-06-29  480: 返回与c本回合进行过战斗的卡片组
d04874f487 2023-06-29  481: 进行过战斗指发生过伤害的计算,用于剑斗兽等卡的判定
d04874f487 2023-06-29  482: 
d04874f487 2023-06-29  483: ●int Card.GetBattledGroupCount(Card c)
d04874f487 2023-06-29  484: 返回与c本回合进行过战斗的的卡片数量
d04874f487 2023-06-29  485: 
d04874f487 2023-06-29  486: ●int Card.GetAttackAnnouncedCount(Card c)
d04874f487 2023-06-29  487: 返回c本回合攻击宣言的次数
d04874f487 2023-06-29  488: 注:攻击被无效不会被计入攻击过的次数,但是会计入攻击宣言的次数
d04874f487 2023-06-29  489: 
d04874f487 2023-06-29  490: ●bool Card.IsDirectAttacked(Card c)
d04874f487 2023-06-29  491: 检查c是否直接攻击过
d04874f487 2023-06-29  492: 
d04874f487 2023-06-29  493: ●void Card.SetCardTarget(Card c1, Card c2)
d04874f487 2023-06-29  494: 把c2作为c1的永续对象
d04874f487 2023-06-29  495: c1和c2的联系会在c1或c2任意一卡离场或变成里侧表示时reset
d04874f487 2023-06-29  496: 
d04874f487 2023-06-29  497: ●Group Card.GetCardTarget(Card c)
d04874f487 2023-06-29  498: 返回c当前所有的永续对象
d04874f487 2023-06-29  499: 
d04874f487 2023-06-29  500: ●Card Card.GetFirstCardTarget(Card c)
d04874f487 2023-06-29  501: 返回c当前第一个永续对象,没有则返回 nil
d04874f487 2023-06-29  502: 
d04874f487 2023-06-29  503: ●int Card.GetCardTargetCount(Card c)
d04874f487 2023-06-29  504: 返回c当前的永续对象的数量
d04874f487 2023-06-29  505: 
d04874f487 2023-06-29  506: ●bool Card.IsHasCardTarget(Card c1, Card c2)
d04874f487 2023-06-29  507: 检查c2是否取c1为永续对象
d04874f487 2023-06-29  508: 
d04874f487 2023-06-29  509: ●void Card.CancelCardTarget(Card c1, Card c2)
d04874f487 2023-06-29  510: 取消c2为c1的永续对象
d04874f487 2023-06-29  511: 
d04874f487 2023-06-29  512: ●Group Card.GetOwnerTarget(Card c)
d04874f487 2023-06-29  513: 返回取c作为永续对象的所有卡
d04874f487 2023-06-29  514: 
d04874f487 2023-06-29  515: ●int Card.GetOwnerTargetCount(Card c)
d04874f487 2023-06-29  516: 返回取c作为永续对象的卡的数量
d04874f487 2023-06-29  517: 
d04874f487 2023-06-29  518: ●Effect,... Card.GetActivateEffect(Card c)
d04874f487 2023-06-29  519: 返回c的“卡片发动”的效果,即类型为EFFECT_TYPE_ACTIVATE的效果
d04874f487 2023-06-29  520: 仅对魔法和陷阱有效
d04874f487 2023-06-29  521: 
d04874f487 2023-06-29  522: ●Effect[,Group,int,int,Effect,int,int] Card.CheckActivateEffect(Card c, bool neglect_con, bool neglect_cost, bool copy_info)
d04874f487 2023-06-29  523: 返回c的可以发动时机正确的“卡的发动”的效果,neglect_con=true则无视发动条件,neglect_cost=true则无视发动cost
d04874f487 2023-06-29  524: copy_info=false或者自由时点的效果则只返回这个效果 e
d04874f487 2023-06-29  525: 否则还返回这个效果的触发时点的信息 e,eg,ep,ev,re,r,rp
d04874f487 2023-06-29  526: 
d04874f487 2023-06-29  527: ●void|Effect[,function,int,int,int] Card.GetTunerLimit(Card c)
d04874f487 2023-06-29  528: 如果卡片 c 受到同调素材限制效果 EFFECT_TUNER_MATERIAL_LIMIT 影响,则返回 Effect e,function target,int value,int min,int max ;否则返回nil
d04874f487 2023-06-29  529: 
d04874f487 2023-06-29  530: ●void|Effect[,function,int,int] Card.GetHandSynchro(Card c)
d04874f487 2023-06-29  531: 如果卡片 c 受到手卡同调效果 EFFECT_HAND_SYNCHRO 影响,则返回 Effect e,function target,int min,int max ;否则返回nil
d04874f487 2023-06-29  532: 
d04874f487 2023-06-29  533: ●int Card.RegisterEffect(Card c, Effect e[, bool forced=false])
d04874f487 2023-06-29  534: 把效果e注册给c,返回效果的全局id,并设置e的Handler为c
d04874f487 2023-06-29  535: 默认情况下注册时如果c带有免疫e的效果那么注册会失败
d04874f487 2023-06-29  536: 如果forced为true则不会检查c对e的免疫效果
d04874f487 2023-06-29  537: 
d04874f487 2023-06-29  538: ●... Card.IsHasEffect(Card c, int code)
d04874f487 2023-06-29  539: 检查c是否受到效果种类是code的效果的影响
d04874f487 2023-06-29  540: 没有则返回nil
d04874f487 2023-06-29  541: 有则返回那些效果
d04874f487 2023-06-29  542: 
d04874f487 2023-06-29  543: ●void Card.ResetEffect(Card c, int reset_code, int reset_type)
d04874f487 2023-06-29  544: 以重置类型为reset_type、重置种类为reset_code手动重置c受到的效果的影响
d04874f487 2023-06-29  545: reset_type只能是以下类型,对应的重置种类为
d04874f487 2023-06-29  546: RESET_EVENT       发生事件重置        reset_code为事件
d04874f487 2023-06-29  547: RESET_PHASE       阶段结束重置        reset_code为阶段
d04874f487 2023-06-29  548: RESET_CODE        重置指定code的效果  reset_code为效果的种类code,只能重置EFFECT_TYPE_SINGLE的永续型效果
d04874f487 2023-06-29  549: RESET_COPY        重置复制的效果      reset_code为copy_id
d04874f487 2023-06-29  550: RESET_CARD        重置卡片的效果      reset_code为效果owner的卡号
d04874f487 2023-06-29  551: 
d04874f487 2023-06-29  552: ●int Card.GetEffectCount(Card c, int code)
d04874f487 2023-06-29  553: 返回c受到影响的种类是code的效果的数量
d04874f487 2023-06-29  554: 
d04874f487 2023-06-29  555: ●Effect Card.RegisterFlagEffect(Card c, int code, int reset_flag, int property, int reset_count[, int label, int desc])
d04874f487 2023-06-29  556: 为c注册一个标识用效果
d04874f487 2023-06-29  557: 注:注册给卡的标识用效果不会用于系统,
d04874f487 2023-06-29  558: 即使code与内置效果code重合也不会影响,
d04874f487 2023-06-29  559: 并且类型总是EFFECT_TYPE_SINGLE,reset方法,property和一般的效果相同,
d04874f487 2023-06-29  560: 并且不会无效化,不受卡的免疫效果影响
d04874f487 2023-06-29  561: 
d04874f487 2023-06-29  562: ●int Card.GetFlagEffect(Card c, int code)
d04874f487 2023-06-29  563: 返回c的种类是code的标识效果的数量
d04874f487 2023-06-29  564: 
d04874f487 2023-06-29  565: ●void Card.ResetFlagEffect(Card c, int code)
d04874f487 2023-06-29  566: 手动清除c的种类是code的标识效果
d04874f487 2023-06-29  567: 
d04874f487 2023-06-29  568: ●bool Card.SetFlagEffectLabel(Card c, int code, int label)
d04874f487 2023-06-29  569: 返回c是否存在种类为code的标识效果,并设置其Label属性为label
d04874f487 2023-06-29  570: 
d04874f487 2023-06-29  571: ●int[,...] Card.GetFlagEffectLabel(Card c, int code)
d04874f487 2023-06-29  572: 返回c的种类为code的标识效果的Label(数量可能不止一个),没有此效果则返回nil
d04874f487 2023-06-29  573: 
d04874f487 2023-06-29  574: ●void Card.CreateRelation(Card c1, Card c2, int reset_flag)
d04874f487 2023-06-29  575: 为c1建立与c2的联系,此联系仅会由于c1发生RESET_EVENT的事件reset
d04874f487 2023-06-29  576: 
d04874f487 2023-06-29  577: ●void Card.ReleaseRelation(Card c1, Card c2)
d04874f487 2023-06-29  578: 手动释放c1对于c2的联系
d04874f487 2023-06-29  579: 
d04874f487 2023-06-29  580: ●void Card.CreateEffectRelation(Card c, Effect e)
d04874f487 2023-06-29  581: 为卡片c和效果e建立联系
d04874f487 2023-06-29  582: 
d04874f487 2023-06-29  583: ●void Card.ReleaseEffectRelation(Card c,Effect e)
d04874f487 2023-06-29  584: 手动释放c与效果e的联系
d04874f487 2023-06-29  585: 
d04874f487 2023-06-29  586: ●void Card.ClearEffectRelation(Card c)
d04874f487 2023-06-29  587: 清空c所有联系的效果
d04874f487 2023-06-29  588: 
d04874f487 2023-06-29  589: ●bool Card.IsRelateToEffect(Card c, Effect e)
d04874f487 2023-06-29  590: 检查c是否和效果e有联系
d04874f487 2023-06-29  591: 注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
d04874f487 2023-06-29  592: (用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
d04874f487 2023-06-29  593: 会自动与那个效果建立联系,一旦离场,联系会重置
d04874f487 2023-06-29  594: 
d04874f487 2023-06-29  595: ●bool Card.IsRelateToChain(Card c, int chainc)
d04874f487 2023-06-29  596: 检查c是否和连锁chainc有联系
d04874f487 2023-06-29  597: 注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
d04874f487 2023-06-29  598: (用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
d04874f487 2023-06-29  599: 会自动与那个效果建立联系,一旦离场,联系会重置
d04874f487 2023-06-29  600: 
d04874f487 2023-06-29  601: ●bool Card.IsRelateToCard(Card c1, Card c2)
d04874f487 2023-06-29  602: 检查c1是否和c2有联系
d04874f487 2023-06-29  603: 
d04874f487 2023-06-29  604: ●bool Card.IsRelateToBattle(Card c)
d04874f487 2023-06-29  605: 检查c是否和本次战斗关联
d04874f487 2023-06-29  606: 注:此效果通常用于伤害计算后伤害阶段结束前,用于检查战斗的卡是否离场过
d04874f487 2023-06-29  607: 
d04874f487 2023-06-29  608: ●int Card.CopyEffect(Card c, int code, int reset_flag[, int reset_count=1])
d04874f487 2023-06-29  609: 为c添加卡号是code的卡的可复制的效果,并且添加额外的reset条件
d04874f487 2023-06-29  610: 返回值是表示复制效果的代号id
d04874f487 2023-06-29  611: 
d04874f487 2023-06-29  612: ●int Card.ReplaceEffect(Card c, int code, int reset_flag[, int reset_count=1])
d04874f487 2023-06-29  613: 把c的效果替换为卡号是code的卡的效果,并且添加额外的reset条件
d04874f487 2023-06-29  614: 返回值是表示替换效果的代号id
d04874f487 2023-06-29  615: 
d04874f487 2023-06-29  616: ●void Card.EnableUnsummonable(Card c)
d04874f487 2023-06-29  617: 将c设置为不可通常召唤的怪兽
d04874f487 2023-06-29  618: ##实际上是个不可复制、不会被无效的EFFECT_UNSUMMONABLE_CARD效果
d04874f487 2023-06-29  619: 
d04874f487 2023-06-29  620: ●void Card.EnableReviveLimit(Card c)
d04874f487 2023-06-29  621: 为c添加苏生限制
d04874f487 2023-06-29  622: ##实际上是不可复制、不会被无效的EFFECT_UNSUMMONABLE_CARD和EFFECT_REVIVE_LIMIT效果
d04874f487 2023-06-29  623: 
d04874f487 2023-06-29  624: ●void Card.CompleteProcedure(Card c)
d04874f487 2023-06-29  625: 使c完成正规的召唤手续
d04874f487 2023-06-29  626: ##此函数也可通过 c:SetStatus(STATUS_PROC_COMPLETE,true)实现
d04874f487 2023-06-29  627: 
d04874f487 2023-06-29  628: ●bool Card.IsDisabled(Card c)
d04874f487 2023-06-29  629: 检查c是否处于无效状态
d04874f487 2023-06-29  630: 
d04874f487 2023-06-29  631: ●bool Card.IsDestructable(Card c[, Effect e])
d04874f487 2023-06-29  632: 检查c是否是可被[效果 e]破坏的
d04874f487 2023-06-29  633: 
d04874f487 2023-06-29  634: ●bool Card.IsSummonableCard(Card c)
d04874f487 2023-06-29  635: 检查c是否是可通常召唤的卡
d04874f487 2023-06-29  636: 
d04874f487 2023-06-29  637: ●bool Card.IsFusionSummonableCard(Card c[, int sum_type])
d04874f487 2023-06-29  638: 检查c是否是可[用 sum_type 方式]融合召唤的卡
d04874f487 2023-06-29  639: 
d04874f487 2023-06-29  640: ●bool Card.IsSpecialSummonable(Card c[, int sum_type])
d04874f487 2023-06-29  641: 检查是否可以对c[用 sum_type 方式]进行特殊召唤手续
d04874f487 2023-06-29  642: 
d04874f487 2023-06-29  643: ●bool Card.IsSynchroSummonable(Card c ,Card tuner|nil[, Group mg])
d04874f487 2023-06-29  644: 检查是否可以以tuner作为调整,场上的卡[或mg]为同调素材对c进行同调召唤手续
d04874f487 2023-06-29  645: 如果tuner是nil,此函数与Card.IsSpecialSummonable作用相同
d04874f487 2023-06-29  646: 
d04874f487 2023-06-29  647: ●bool Card.IsXyzSummonable(Card c, Group mg|nil[, min=0, max=0])
d04874f487 2023-06-29  648: 检查是否可以在场上的卡[或mg][中选出 min-max 个XYZ素材]对c进行XYZ召唤手续
d04874f487 2023-06-29  649: 如果mg为nil,此函数与 c:IsSpecialSummonable(SUMMON_TYPE_XYZ)作用相同
d04874f487 2023-06-29  650: 
d04874f487 2023-06-29  651: ●bool Card.IsSummonable(Card c, bool ignore_count, Effect e|nil[, int min=0, int zone=0x1f])
d04874f487 2023-06-29  652: 检查c是否可以进行通常召唤(不包含通常召唤的set),ignore_count=true则不检查召唤次数限制
d04874f487 2023-06-29  653: e~=nil则检查c是否可以以效果e进行通常召唤,min表示至少需要的祭品数(用于区分妥协召唤与上级召唤),zone 表示必须要召唤到的区域
d04874f487 2023-06-29  654: 
d04874f487 2023-06-29  655: ●bool Card.IsMSetable(Card, bool ignore_count, Effect e|nil[, int min=0, int zone=0x1f])
d04874f487 2023-06-29  656: 检查c是否可进行通常召唤的set,ignore_count=true则不检查召唤次数限制
d04874f487 2023-06-29  657: e~=nil则检查c是否可以以效果e进行通常召唤的set,min表示至少需要的祭品数(用于区分妥协召唤set与上级召唤set),zone 表示必须要放置到的区域
d04874f487 2023-06-29  658: 
d04874f487 2023-06-29  659: ●bool Card.IsSSetable(Card c[, bool ignore_field=false])
d04874f487 2023-06-29  660: 检查c是否可以set到魔法陷阱区,ignore_field=true则无视魔陷区格子是否能使用的限制
d04874f487 2023-06-29  661: 
d04874f487 2023-06-29  662: ●bool Card.IsCanBeSpecialSummoned(Card c, Effect e, int sumtype, int sumplayer, bool nocheck, bool nolimit[, int sumpos=POS_FACEUP, int toplayer=sumplayer, int zone=0xff])
d04874f487 2023-06-29  663: 检查c是否可以被玩家sumplayer用效果e[以sumtype方式和sumpos表示形式]特殊召唤[到玩家 toplayer 的区域zone]
d04874f487 2023-06-29  664: 如果nocheck是true则不检查c的召唤条件,如果nolimit是true则不检查c的苏生限制
d04874f487 2023-06-29  665: 
d04874f487 2023-06-29  666: ●bool Card.IsAbleToHand(Card c)
d04874f487 2023-06-29  667: 检查c是否可以送去手卡
d04874f487 2023-06-29  668: 注:仅当卡片或者玩家受到“不能加入手卡”的效果的影响时(如雷王)此函数才返回false
d04874f487 2023-06-29  669: ##以下几个函数类似
d04874f487 2023-06-29  670: 
d04874f487 2023-06-29  671: ●bool Card.IsAbleToDeck(Card c)
d04874f487 2023-06-29  672: 检查c是否可以送去卡组
d04874f487 2023-06-29  673: 
d04874f487 2023-06-29  674: ●bool Card.IsAbleToExtra(Card c)
d04874f487 2023-06-29  675: 检查c是否可以送去额外卡组
d04874f487 2023-06-29  676: 对于非融合、同调等额外怪兽或者非灵摆怪兽此函数均返回false
d04874f487 2023-06-29  677: 
d04874f487 2023-06-29  678: ●bool Card.IsAbleToGrave(Card c)
d04874f487 2023-06-29  679: 检查c是否可以送去墓地
d04874f487 2023-06-29  680: 
d04874f487 2023-06-29  681: ●bool Card.IsAbleToRemove(Card c[, int player])
d04874f487 2023-06-29  682: 检查c是否可以被玩家player除外
d04874f487 2023-06-29  683: 
d04874f487 2023-06-29  684: ●bool Card.IsAbleToHandAsCost(Card c)
d04874f487 2023-06-29  685: 检查c是否可以作为cost送去手卡
d04874f487 2023-06-29  686: 注:此函数会在Card.IsAbleToHand的基础上追加检测c的实际目的地
d04874f487 2023-06-29  687: 当c送往手卡会被送去其它地方时(如缩退回路适用中,或者c是融合、同调 等额外怪兽的一种),此函数返回false
d04874f487 2023-06-29  688: ##以下几个函数类似
d04874f487 2023-06-29  689: 
d04874f487 2023-06-29  690: ●bool Card.IsAbleToDeckAsCost(Card c)
d04874f487 2023-06-29  691: 检查c是否可以作为cost送去卡组
d04874f487 2023-06-29  692: 
d04874f487 2023-06-29  693: ●bool Card.IsAbleToExtraAsCost(Card c)
d04874f487 2023-06-29  694: 检查c是否可以作为cost送去额外卡组,主卡组的灵摆卡会返回false
d04874f487 2023-06-29  695: 
d04874f487 2023-06-29  696: ●bool Card.IsAbleToDeckOrExtraAsCost(Card c)
d04874f487 2023-06-29  697: 检查c是否可以作为cost送去卡组或额外卡组(用于新宇侠、剑斗兽融合怪兽的召唤手续检测)等价于 (c:IsAbleToDeckAsCost() or c:IsAbleToExtraAsCost())
d04874f487 2023-06-29  698: 
d04874f487 2023-06-29  699: ●bool Card.IsAbleToGraveAsCost(Card c)
d04874f487 2023-06-29  700: 检查c是否可以作为cost送去墓地
d04874f487 2023-06-29  701: 
d04874f487 2023-06-29  702: ●bool Card.IsAbleToRemoveAsCost(Card c)
d04874f487 2023-06-29  703: 检查c是否可以作为cost除外
d04874f487 2023-06-29  704: 
d04874f487 2023-06-29  705: ●bool Card.IsAbleToDecreaseAttackAsCost(Card c[, int atk])
d04874f487 2023-06-29  706: 检查c是否可以作为cost降低[atk 数值]攻击力
d04874f487 2023-06-29  707: 若c不是怪兽或者不在怪兽区,或是里侧表示,或受到 EFFECT_SET_ATTACK_FINAL(邪神 恐惧根源等) or EFFECT_REVERSE_UPDATE(天邪鬼的诅咒)效果影响,或是攻击力小于atk,则返回false
d04874f487 2023-06-29  708: 
d04874f487 2023-06-29  709: ●bool Card.IsAbleToDecreaseDefenseAsCost(Card c[, int def])
d04874f487 2023-06-29  710: 检查c是否可以作为cost降低[def 数值]守备力
d04874f487 2023-06-29  711: 若c不是怪兽或者不在怪兽区,或是里侧表示,或受到 EFFECT_SET_DEFENSE_FINAL(邪神 恐惧根源等) or EFFECT_REVERSE_UPDATE(天邪鬼的诅咒)效果影响,或是守备力小于def,则返回false
d04874f487 2023-06-29  712: 
d04874f487 2023-06-29  713: ●bool Card.IsReleasable(Card c)
d04874f487 2023-06-29  714: 检查c是否可以被解放(非上级召唤用)
d04874f487 2023-06-29  715: 
d04874f487 2023-06-29  716: ●bool Card.IsReleasableByEffect(Card c)
d04874f487 2023-06-29  717: 检查c是否可以被效果解放
d04874f487 2023-06-29  718: 
d04874f487 2023-06-29  719: ●bool Card.IsDiscardable(Card[, int reason=REASON_COST])
d04874f487 2023-06-29  720: 检查c是否可以以reason原因丢弃
d04874f487 2023-06-29  721: 注:此函数仅用于检测,
d04874f487 2023-06-29  722: 以REASON_DISCARD作为原因把一张手卡送墓并不会导致那张卡不能丢弃
d04874f487 2023-06-29  723: 
d04874f487 2023-06-29  724: ●bool Card.IsAttackable(Card c)
d04874f487 2023-06-29  725: 检查c是否可以攻击
d04874f487 2023-06-29  726: 
d04874f487 2023-06-29  727: ●bool Card.IsChainAttackable(Card c[, int ac = 2, bool monsteronly = false])
d04874f487 2023-06-29  728: 检查c是否可以连续攻击,c的攻击宣言次数>=ac则返回false
d04874f487 2023-06-29  729: monsteronly = true 则表示只能对怪兽攻击
d04874f487 2023-06-29  730: 注:当c因为闪光之双剑等效果进行过多次攻击之后此函数返回false
d04874f487 2023-06-29  731: 
d04874f487 2023-06-29  732: ●bool Card.IsFaceup(Card c)
d04874f487 2023-06-29  733: 检查c是否是表侧表示
d04874f487 2023-06-29  734: 
d04874f487 2023-06-29  735: ●bool Card.IsAttackPos(Card c)
d04874f487 2023-06-29  736: 检查c是否是攻击表示
d04874f487 2023-06-29  737: 
d04874f487 2023-06-29  738: ●bool Card.IsFacedown(Card c)
d04874f487 2023-06-29  739: 检查c是否是里侧表示
d04874f487 2023-06-29  740: 
d04874f487 2023-06-29  741: ●bool Card.IsDefensePos(Card c)
d04874f487 2023-06-29  742: 检查c是否是守备表示
d04874f487 2023-06-29  743: 
d04874f487 2023-06-29  744: ●bool Card.IsPosition(Card c, int pos)
d04874f487 2023-06-29  745: 检查c是否是表示形式pos
d04874f487 2023-06-29  746: 
d04874f487 2023-06-29  747: ●bool Card.IsPreviousPosition(Card c, int pos)
d04874f487 2023-06-29  748: 检查c位置变化之前是否是表示形式pos
d04874f487 2023-06-29  749: 
d04874f487 2023-06-29  750: ●bool Card.IsControler(Card c, int controler)
d04874f487 2023-06-29  751: 检查c的当前控制着是否是controler
d04874f487 2023-06-29  752: 
d04874f487 2023-06-29  753: ●bool Card.IsOnField(Card c)
d04874f487 2023-06-29  754: 检查c是否在场
d04874f487 2023-06-29  755: 注:当怪兽召唤,反转召唤,特殊召唤时召唤成功之前,此函数返回false
d04874f487 2023-06-29  756: 
d04874f487 2023-06-29  757: ●bool Card.IsLocation(Card c, int location)
d04874f487 2023-06-29  758: 检查c当前位置是否是location
d04874f487 2023-06-29  759: 注:当怪兽召唤,反转召唤,特殊召唤时召唤成功之前,
d04874f487 2023-06-29  760: 并且location=LOCATION_MZONE时,此函数返回false
d04874f487 2023-06-29  761: 
d04874f487 2023-06-29  762: ●bool Card.IsPreviousLocation(Card c, int location)
d04874f487 2023-06-29  763: 检查c之前的位置是否是location
d04874f487 2023-06-29  764: 
d04874f487 2023-06-29  765: ●bool Card.IsLevelBelow(Card c, int level)
d04874f487 2023-06-29  766: 检查c是否是等级level以下(至少为1)
d04874f487 2023-06-29  767: 
d04874f487 2023-06-29  768: ●bool Card.IsLevelAbove(Card c, int level)
d04874f487 2023-06-29  769: 检查c是否是等级level以上
d04874f487 2023-06-29  770: 
d04874f487 2023-06-29  771: ●bool Card.IsRankBelow(Card c, int rank)
d04874f487 2023-06-29  772: 检查c是否是阶级rank以下(至少为1)
d04874f487 2023-06-29  773: 
d04874f487 2023-06-29  774: ●bool Card.IsRankAbove(Card c, int rank)
d04874f487 2023-06-29  775: 检查c是否是阶级rank以上
d04874f487 2023-06-29  776: 
d04874f487 2023-06-29  777: ●bool Card.IsLinkBelow(Card c, int link)
d04874f487 2023-06-29  778: 检查c是否连接标记数量是link以下(至少为1)
d04874f487 2023-06-29  779: 
d04874f487 2023-06-29  780: ●bool Card.IsLinkAbove(Card c, int link)
d04874f487 2023-06-29  781: 检查c是否连接标记数量是link以上
d04874f487 2023-06-29  782: 
d04874f487 2023-06-29  783: ●bool Card.IsAttackBelow(Card c, int atk)
d04874f487 2023-06-29  784: 检查c是否是攻击力atk以下(至少为0)
d04874f487 2023-06-29  785: 
d04874f487 2023-06-29  786: ●bool Card.IsAttackAbove(Card c, int atk)
d04874f487 2023-06-29  787: 检查c是否是攻击力atk以上
d04874f487 2023-06-29  788: 
d04874f487 2023-06-29  789: ●bool Card.IsDefenseBelow(Card c, int def)
d04874f487 2023-06-29  790: 检查c是否是守备力def以下(至少为0)
d04874f487 2023-06-29  791: 
d04874f487 2023-06-29  792: ●bool Card.IsDefenseAbove(Card c, int def)
d04874f487 2023-06-29  793: 检查c是否是守备力def以上
d04874f487 2023-06-29  794: 
d04874f487 2023-06-29  795: ●bool Card.IsPublic(Card c)
d04874f487 2023-06-29  796: 检查c是否处于公开状态
d04874f487 2023-06-29  797: 
d04874f487 2023-06-29  798: ●bool Card.IsForbidden(Card c)
d04874f487 2023-06-29  799: 检查c是否处于被宣言禁止状态
d04874f487 2023-06-29  800: 
d04874f487 2023-06-29  801: ●bool Card.IsAbleToChangeControler(Card c)
d04874f487 2023-06-29  802: 检查c是否可以改变控制权
d04874f487 2023-06-29  803: 注:仅当卡收到了“不能改变控制权”的效果的影响时,此函数返回false
d04874f487 2023-06-29  804: 
d04874f487 2023-06-29  805: ●bool Card.IsControlerCanBeChanged(Card c[, bool ignore_mzone=false, int zone=0xff])
d04874f487 2023-06-29  806: 检查c的控制权是否可以改变。 ignore_mzone=true 会忽视转移控制权后的玩家场上是否有空格位, zone 表示必须要使用的位置
d04874f487 2023-06-29  807: 
d04874f487 2023-06-29  808: ●bool Card.AddCounter(Card c, int countertype, int count[, int singly=false])
d04874f487 2023-06-29  809: 为c放置count个countertype类型的指示物,singly为true表示逐个添加至上限为止
d04874f487 2023-06-29  810: 
d04874f487 2023-06-29  811: ●void Card.RemoveCounter(Card c, int player, int countertype, int count, int reason)
d04874f487 2023-06-29  812: 让玩家player以原因reason移除c上的count个countertype类型的指示物, countertype=0 则清除c的所有指示物
d04874f487 2023-06-29  813: 
d04874f487 2023-06-29  814: ●int Card.GetCounter(Card c, int countertype)
d04874f487 2023-06-29  815: 返回c上的countertype类型的指示物的数量, countertype=0 则返回c上所有类型的指示物数量之和
d04874f487 2023-06-29  816: 
d04874f487 2023-06-29  817: ●void Card.EnableCounterPermit(Card c, int countertype[, int location])
d04874f487 2023-06-29  818: 允许c[在位置location]放置那个需要“可以放置”才能放置的指示物countertype
d04874f487 2023-06-29  819: location的默认值与c的种类有关,灵摆怪兽需要指定能否在怪兽区域或灵摆区域放置指示物
d04874f487 2023-06-29  820: 
d04874f487 2023-06-29  821: ●void Card.SetCounterLimit(Card c, int countertype, int count)
d04874f487 2023-06-29  822: 设定c放置countertype类型指示物的上限
d04874f487 2023-06-29  823: 
d04874f487 2023-06-29  824: ●bool Card.IsCanChangePosition(Card c)
d04874f487 2023-06-29  825: 检查c是否可以用效果改变表示形式
d04874f487 2023-06-29  826: 
d04874f487 2023-06-29  827: ●bool Card.IsCanTurnSet(Card c)
d04874f487 2023-06-29  828: 检查c是否可以转成里侧表示
d04874f487 2023-06-29  829: 
d04874f487 2023-06-29  830: ●bool Card.IsCanAddCounter(Card c, int countertype, int count[, int singly=false, int location])
d04874f487 2023-06-29  831: 检查c是否可以[逐个(singly=true)在 location 区域]放置count个countertype类型的指示物
d04874f487 2023-06-29  832: 
d04874f487 2023-06-29  833: ●bool Card.IsCanRemoveCounter(Card c, int player, int countertype, int count, int reason)
d04874f487 2023-06-29  834: 检查玩家player是否可以以原因reason移除c上的count个countertype类型的指示物
d04874f487 2023-06-29  835: 
d04874f487 2023-06-29  836: ●bool Card.IsCanBeFusionMaterial(Card c[, Card fc])
d04874f487 2023-06-29  837: 检查c是否可以成为[融合怪兽fc的]融合素材
d04874f487 2023-06-29  838: 
d04874f487 2023-06-29  839: ●bool Card.IsCanBeSynchroMaterial(Card c[, Card sc, Card tuner])
d04874f487 2023-06-29  840: 检查c是否可以成为[以 tuner 为调整的同调怪兽sc的]同调素材
d04874f487 2023-06-29  841: 
d04874f487 2023-06-29  842: ●bool Card.IsCanBeRitualMaterial(Card c, Card sc|nil)
d04874f487 2023-06-29  843: 检查c是否可以作为[仪式怪兽sc的]仪式素材,没有指定sc的场合,必须填nil
d04874f487 2023-06-29  844: 
d04874f487 2023-06-29  845: ●bool Card.IsCanBeXyzMaterial(Card c, Card sc|nil)
d04874f487 2023-06-29  846: 检查c是否可以成为[XYZ怪兽sc的]XYZ素材,没有指定sc的场合,必须填nil
d04874f487 2023-06-29  847: 
d04874f487 2023-06-29  848: ●bool Card.IsCanBeLinkMaterial(Card c, Card sc|nil)
d04874f487 2023-06-29  849: 检查c是否可以成为[连接怪兽sc的]连接素材,没有指定sc的场合,必须填nil
d04874f487 2023-06-29  850: 
d04874f487 2023-06-29  851: ●bool Card.CheckFusionMaterial(Card c[, Group g|nil, Card gc|nil, int chkf=PLAYER_NONE])
d04874f487 2023-06-29  852: 检查场上[或g]是否包含了c需要[必须包含gc在内]的一组融合素材
d04874f487 2023-06-29  853: ##根据c的种类为EFFECT_FUSION_MATERIAL的效果的Condition函数检查
d04874f487 2023-06-29  854: 
d04874f487 2023-06-29  855: ●bool Card.CheckFusionSubstitute(Card c, Card fc)
d04874f487 2023-06-29  856: 检查c能否代替融合怪兽fc的记述卡名的素材
d04874f487 2023-06-29  857: 
d04874f487 2023-06-29  858: ●bool Card.IsImmuneToEffect(Card c, Effect e)
d04874f487 2023-06-29  859: 检查c是否免疫效果e(即不受效果e的影响)
d04874f487 2023-06-29  860: 
d04874f487 2023-06-29  861: ●bool Card.IsCanBeEffectTarget(Card c[, Effect e])
d04874f487 2023-06-29  862: 检查c是否可以成为效果[e的]对象
d04874f487 2023-06-29  863: 
d04874f487 2023-06-29  864: ●bool Card.IsCanBeBattleTarget(Card c1, Card c2)
d04874f487 2023-06-29  865: 检查c1是否可以成为c2的攻击目标
d04874f487 2023-06-29  866: 
d04874f487 2023-06-29  867: ●void Card.AddMonsterAttribute(Card c, int type[, int attribute, int race, int level, int atk, int def])
d04874f487 2023-06-29  868: 为魔陷卡c添加怪兽数值,type 为怪兽类型,不能是没有等级的怪兽
d04874f487 2023-06-29  869: 注:在数据库中有记录的数值视为原本数值
d04874f487 2023-06-29  870: 
d04874f487 2023-06-29  871: ●void Card.AddMonsterAttributeComplete(Card c)
d04874f487 2023-06-29  872: 为卡c添加数值完毕,需要和Card.AddMonsterAttribute 配套使用
d04874f487 2023-06-29  873: 
d04874f487 2023-06-29  874: ●void Card.CancelToGrave(Card c[, bool cancel=true])
d04874f487 2023-06-29  875: 取消送墓确定状态,cancel=false则重新设置送墓确定状态
d04874f487 2023-06-29  876: 注:送墓确定状态指的是在场上发动的不留场的魔法和陷阱后,这些卡片的状态
d04874f487 2023-06-29  877: 送墓确定状态中的卡无法返回手卡和卡组,并且连锁结束时送去墓地
d04874f487 2023-06-29  878: 此函数的作用是取消此状态使其留场,用于光之护封剑和废铁稻草人等卡
d04874f487 2023-06-29  879: 
d04874f487 2023-06-29  880: ●int,int Card.GetTributeRequirement(Card c)
d04874f487 2023-06-29  881: 返回通常召唤c所需要的祭品的最小和最大数量
d04874f487 2023-06-29  882: 
d04874f487 2023-06-29  883: ●Card Card.GetBattleTarget(Card c)
d04874f487 2023-06-29  884: 返回与c进行战斗的卡,没有则返回nil
d04874f487 2023-06-29  885: 
d04874f487 2023-06-29  886: ●Group,bool Card.GetAttackableTarget(Card c)
d04874f487 2023-06-29  887: 返回c可攻击的卡片组以及能否直接攻击
d04874f487 2023-06-29  888: 
d04874f487 2023-06-29  889: ●void Card.SetHint(Card c, int type, int value)
d04874f487 2023-06-29  890: 为c设置类型为type的卡片提示信息
d04874f487 2023-06-29  891: type只能为以下值,对应的value类型为
d04874f487 2023-06-29  892: CHINT_TURN              回合数
d04874f487 2023-06-29  893: CHINT_CARD              卡片id
d04874f487 2023-06-29  894: CHINT_RACE              种族
d04874f487 2023-06-29  895: CHINT_ATTRIBUTE         属性
d04874f487 2023-06-29  896: CHINT_NUMBER            数字
d04874f487 2023-06-29  897: CHINT_DESC              描述
d04874f487 2023-06-29  898: 
d04874f487 2023-06-29  899: ●void Card.ReverseInDeck(Card c)
d04874f487 2023-06-29  900: 设置c在卡组中正面表示(POS_FACEUP_DEFENSE)
d04874f487 2023-06-29  901: 
d04874f487 2023-06-29  902: ●void Card.SetUniqueOnField(Card c, int s, int o, function|int unique_code[, int unique_location=LOCATIOIN_ONFIELD])
d04874f487 2023-06-29  903: 设置c以unique_code只能在场上[或怪兽区域或魔陷区域,由unique_location决定]只能存在1张,function 的返回值类型必须是int
d04874f487 2023-06-29  904: s不为0会检查自己场上的唯一性,o不为0则检查对方场上的唯一性
d04874f487 2023-06-29  905: 
d04874f487 2023-06-29  906: ●bool Card.CheckUniqueOnField(Card c,int check_player[, int check_location=LOCATION_ONFIELD, Card icard|nil])
d04874f487 2023-06-29  907: 检查c在check_player场上的唯一性
d04874f487 2023-06-29  908: 
d04874f487 2023-06-29  909: ●void Card.ResetNegateEffect(Card c[, int code1,...])
d04874f487 2023-06-29  910: 重置c受到的卡号为code1[, code2...]的卡片的效果的影响
d04874f487 2023-06-29  911: 
d04874f487 2023-06-29  912: ●void Card.AssumeProperty(Card c,int assume_type, int assume_value)
d04874f487 2023-06-29  913: 把c的assume_type的数值当作assume_value使用(基因组斗士)
d04874f487 2023-06-29  914: assume_type为以下类型
d04874f487 2023-06-29  915: ASSUME_CODE         卡号
d04874f487 2023-06-29  916: ASSUME_TYPE         类型
d04874f487 2023-06-29  917: ASSUME_LEVEL        等级
d04874f487 2023-06-29  918: ASSUME_RANK         阶级
d04874f487 2023-06-29  919: ASSUME_ATTRIBUTE    属性
d04874f487 2023-06-29  920: ASSUME_RACE         种族
d04874f487 2023-06-29  921: ASSUME_ATTACK       攻击力
d04874f487 2023-06-29  922: ASSUME_DEFENSE      守备力
d04874f487 2023-06-29  923: 
d04874f487 2023-06-29  924: ●void Card.SetSPSummonOnce(Card c, int spsummon_code)
d04874f487 2023-06-29  925: 设置c一回合只能进行1次特殊召唤(灵兽,波动龙)
d04874f487 2023-06-29  926: 相同的spsummon_code共用1个次数
d04874f487 2023-06-29  927: 
d04874f487 2023-06-29  928: ●bool Card.IsRitualType(Card c)
d04874f487 2023-06-29  929: 返回c的仪式召唤的种类。
d04874f487 2023-06-29  930: 
d04874f487 2023-06-29  931: ●bool Card.SetEntityCode(Card c, int code[, bool no_alias=false])
d04874f487 2023-06-29  932: 把c的卡图,卡名,信息全部改成卡号为code的卡的信息,但是不改变效果。常用于卡片变身类效果。返回是否成功。
d04874f487 2023-06-29  933: no_alias=true会把变身后c的同名卡信息去除。用于双面卡的处理。
d04874f487 2023-06-29  934: 
d04874f487 2023-06-29  935: ●int Card.GetLinkMarker(Card c)
d04874f487 2023-06-29  936: 返回c的连接标记。
d04874f487 2023-06-29  937: 
d04874f487 2023-06-29  938: ●int Card.GetOriginalLinkMarker(Card c)
d04874f487 2023-06-29  939: 返回c的原本连接标记。
d04874f487 2023-06-29  940: 
d04874f487 2023-06-29  941: ●bool Card.IsXyzSummonableByRose(Card c, Card c1, Card c2)
d04874f487 2023-06-29  942: 返回c是否可以用c1和c2这2张卡为素材XYZ召唤。XYZ召唤时,c1的等级当作和c2相同。
d04874f487 2023-06-29  943: 
d04874f487 2023-06-29  944: ●int Card.GetRemovedOverlayCount(Card c)
d04874f487 2023-06-29  945: 返回c本回合被取除的XYZ素材数量。
d04874f487 2023-06-29  946: 
d04874f487 2023-06-29  947: ●int Card.GetOriginalCode(Card c)
d04874f487 2023-06-29  948: 返回c的卡片记载的代号
d04874f487 2023-06-29  949: 
d04874f487 2023-06-29  950: ●bool Card.IsOriginalCodeRule(Card c,int code)
d04874f487 2023-06-29  951: 检查c是否在规则上当做code使用
d04874f487 2023-06-29  952: 
d04874f487 2023-06-29  953: ●bool Card.IsLinkSummonable(Card c, Group mg|nil[, min=0, max=0])
d04874f487 2023-06-29  954: 检查是否可以在场上的卡[或mg][中选出 min-max 个连接素材]对c进行连接召唤手续
d04874f487 2023-06-29  955: 如果mg为nil,此函数与 c:IsSpecialSummonable(SUMMON_TYPE_LINK)作用相同
d04874f487 2023-06-29  956: 
d04874f487 2023-06-29  957: ●bool Card.IsCanOverlay(Card c)
d04874f487 2023-06-29  958: 检查c是否可以作为XYZ素材
d04874f487 2023-06-29  959: 
d04874f487 2023-06-29  960: ========== Effect ==========
d04874f487 2023-06-29  961: ●Effect Effect.CreateEffect(Card c)
d04874f487 2023-06-29  962: 新建一个空效果
d04874f487 2023-06-29  963: 并且效果的Owner为c
d04874f487 2023-06-29  964: 
d04874f487 2023-06-29  965: ●Effect Effect.GlobalEffect()
d04874f487 2023-06-29  966: 新建一个全局效果
d04874f487 2023-06-29  967: 
d04874f487 2023-06-29  968: ●Effect Effect.Clone(Effect e)
d04874f487 2023-06-29  969: 新建一个效果e的副本
d04874f487 2023-06-29  970: 
d04874f487 2023-06-29  971: ●void Effect.Reset(Effect e)
d04874f487 2023-06-29  972: 把效果e重置,重置之后不可以再使用此效果
d04874f487 2023-06-29  973: 
d04874f487 2023-06-29  974: ●int Effect.GetFieldID(Effect e)
d04874f487 2023-06-29  975: 获取效果e的id
d04874f487 2023-06-29  976: 
d04874f487 2023-06-29  977: ●void Effect.SetDescription(Effect e, int desc)
d04874f487 2023-06-29  978: 为效果e设置效果描述
d04874f487 2023-06-29  979: 
d04874f487 2023-06-29  980: ●void Effect.SetCode(Effect e, int code)
d04874f487 2023-06-29  981: 为效果e设置Code属性
d04874f487 2023-06-29  982: 
d04874f487 2023-06-29  983: ●void Effect.SetRange(Effect e, int range)
d04874f487 2023-06-29  984: 为效果e设置Range属性,即e的生效位置
d04874f487 2023-06-29  985: 
d04874f487 2023-06-29  986: ●void Effect.SetTargetRange(Effect e, int s_range, int o_range)
d04874f487 2023-06-29  987: 为效果e设置Target Range属性
d04874f487 2023-06-29  988: 	s_range指影响的我方区域
d04874f487 2023-06-29  989: 	o_range值影响的对方区域
d04874f487 2023-06-29  990: 	如果property属性中指定了EFFECT_FLAG_ABSOLUTE_RANGE标志,
d04874f487 2023-06-29  991: 		那么s_range指玩家1受到影响的区域,o_range指玩家2受到影响的区域
d04874f487 2023-06-29  992: 	如果这是一个召唤(覆盖)/限制召唤(覆盖)/特殊召唤手续
d04874f487 2023-06-29  993: 	(EFFECT_SUMMON_PROC/EFFECT_LIMIT_SUMMON_PROC/EFFECT_SPSUMMON_PROC等)的效果,
d04874f487 2023-06-29  994: 		并且property指定了EFFECT_FLAG_SPSUM_PARAM标志,
d04874f487 2023-06-29  995: 		那么s_range表示特殊召唤到的哪个玩家的场地,
d04874f487 2023-06-29  996: 	o_range表示可选择的表示形式
d04874f487 2023-06-29  997: 
d04874f487 2023-06-29  998: ●void Effect.SetAbsoluteRange(Effect e, int playerid, int s_range, int o_range)
d04874f487 2023-06-29  999: 设置target range属性并设置 EFFECT_FLAG_ABSOLUTE_TARGET 标志
d04874f487 2023-06-29 1000: 	playerid != 0 s_range和o_range反转
d04874f487 2023-06-29 1001: 
d04874f487 2023-06-29 1002: ●void Effect.SetCountLimit(Effect e, int count=1[, int code=0])
d04874f487 2023-06-29 1003: 设置一回合可以发动的次数count(仅触发型效果有效),相同的code(不等于0或1时)共用1个次数
d04874f487 2023-06-29 1004: code包含以下数值具有特殊的性质
d04874f487 2023-06-29 1005: EFFECT_COUNT_CODE_OATH          誓约使用次数
d04874f487 2023-06-29 1006: EFFECT_COUNT_CODE_DUEL          决斗中使用次数
d04874f487 2023-06-29 1007: EFFECT_COUNT_CODE_SINGLE        同一张卡多个效果公共使用次数(不限制同名卡)
d04874f487 2023-06-29 1008: 
d04874f487 2023-06-29 1009: ●void Effect.SetReset(Effect e, int reset_flag[, int reset_count=1])
d04874f487 2023-06-29 1010: 设置reset参数
d04874f487 2023-06-29 1011: 
d04874f487 2023-06-29 1012: ●void Effect.SetType(Effect e, int type)
d04874f487 2023-06-29 1013: 为效果e设置Type属性
d04874f487 2023-06-29 1014: 
d04874f487 2023-06-29 1015: ●void Effect.SetProperty(Effect e, int prop1[, int prop2])
d04874f487 2023-06-29 1016: 设置Property属性
d04874f487 2023-06-29 1017: 
d04874f487 2023-06-29 1018: ●void Effect.SetLabel(Effect e, int label)
d04874f487 2023-06-29 1019: 设置Label属性
d04874f487 2023-06-29 1020: 
d04874f487 2023-06-29 1021: ●void Effect.SetLabelObject(Effect e, Card|Group|Effect labelobject)
d04874f487 2023-06-29 1022: 设置LabelObject属性
d04874f487 2023-06-29 1023: 
d04874f487 2023-06-29 1024: ●void Effect.SetCategory(Effect e, int cate)
d04874f487 2023-06-29 1025: 设置Category属性
d04874f487 2023-06-29 1026: 
d04874f487 2023-06-29 1027: ●void Effect.SetHintTiming(Effect e, int s_time[, int o_time=s_time])
d04874f487 2023-06-29 1028: 设置提示时点,第二个和第三个参数分别表示 自己 和对方的回合
d04874f487 2023-06-29 1029: 
d04874f487 2023-06-29 1030: ●void Effect.SetCondition(Effect e, function con_func)
d04874f487 2023-06-29 1031: 设置Condition属性
d04874f487 2023-06-29 1032: 
d04874f487 2023-06-29 1033: ●void Effect.SetCost(Effect e, function cost_func)
d04874f487 2023-06-29 1034: 设置Cost属性
d04874f487 2023-06-29 1035: 
d04874f487 2023-06-29 1036: ●void Effect.SetTarget(Effect e, function targ_func)
d04874f487 2023-06-29 1037: 设置Target属性
d04874f487 2023-06-29 1038: 
d04874f487 2023-06-29 1039: ●void Effect.SetValue(Effect e, function|int|bool val)
d04874f487 2023-06-29 1040: 设置Value属性
d04874f487 2023-06-29 1041: 
d04874f487 2023-06-29 1042: ●void Effect.SetOperation(Effect e, nil|function op_func)
d04874f487 2023-06-29 1043: 设置Operation属性
d04874f487 2023-06-29 1044: 
d04874f487 2023-06-29 1045: ●void Effect.SetOwnerPlayer(Effect e[, int player=0])
d04874f487 2023-06-29 1046: 设置OwnerPlayer属性为player
d04874f487 2023-06-29 1047: 
d04874f487 2023-06-29 1048: ●int Effect.GetDescription(Effect e)
d04874f487 2023-06-29 1049: 返回效果描述,没有则返回nil,下同(到 GetCategory )
d04874f487 2023-06-29 1050: 
d04874f487 2023-06-29 1051: ●int Effect.GetCode(Effect e)
d04874f487 2023-06-29 1052: 返回code属性
d04874f487 2023-06-29 1053: 
d04874f487 2023-06-29 1054: ●int Effect.GetType(Effect e)
d04874f487 2023-06-29 1055: 返回Type属性
d04874f487 2023-06-29 1056: 
d04874f487 2023-06-29 1057: ●int,int Effect.GetProperty(Effect e)
d04874f487 2023-06-29 1058: 返回Property属性
d04874f487 2023-06-29 1059: 
d04874f487 2023-06-29 1060: ●int Effect.GetLabel(Effect e)
d04874f487 2023-06-29 1061: 返回Label属性
d04874f487 2023-06-29 1062: 
d04874f487 2023-06-29 1063: ●Card|Group|Effect Effect.GetLabelObject(Effect e)
d04874f487 2023-06-29 1064: 返回LabelObject属性
d04874f487 2023-06-29 1065: 
d04874f487 2023-06-29 1066: ●int Effect.GetCategory(Effect e)
d04874f487 2023-06-29 1067: 返回Category属性
d04874f487 2023-06-29 1068: 
d04874f487 2023-06-29 1069: ●Card Effect.GetOwner(Effect e)
d04874f487 2023-06-29 1070: 返回Owner属性
d04874f487 2023-06-29 1071: 
d04874f487 2023-06-29 1072: ●Card Effect.GetHandler(Effect e)
d04874f487 2023-06-29 1073: 返回效果在哪一张卡上生效(通常是用Card.RegisterEffect注册该效果的卡)
d04874f487 2023-06-29 1074: 
d04874f487 2023-06-29 1075: ●function Effect.GetCondition(Effect e)
d04874f487 2023-06-29 1076: 返回condition属性
d04874f487 2023-06-29 1077: 
d04874f487 2023-06-29 1078: ●function Effect.GetTarget(Effect e)
d04874f487 2023-06-29 1079: 返回target属性
d04874f487 2023-06-29 1080: 
d04874f487 2023-06-29 1081: ●function Effect.GetCost(Effect e)
d04874f487 2023-06-29 1082: 返回cost属性
d04874f487 2023-06-29 1083: 
d04874f487 2023-06-29 1084: ●function|int Effect.GetValue(Effect e)
d04874f487 2023-06-29 1085: 返回value属性
d04874f487 2023-06-29 1086: 
d04874f487 2023-06-29 1087: ●function Effect.GetOperation(Effect e)
d04874f487 2023-06-29 1088: 返回operation属性
d04874f487 2023-06-29 1089: 
d04874f487 2023-06-29 1090: ●int Effect.GetActiveType(Effect e)
d04874f487 2023-06-29 1091: 返回e的效果类型(怪兽·魔法·陷阱)
d04874f487 2023-06-29 1092: 与发动该效果的卡的类型不一定相同,比如灵摆效果视为魔法卡的效果
d04874f487 2023-06-29 1093: 
d04874f487 2023-06-29 1094: ●bool Effect.IsActiveType(Effect e, int type)
d04874f487 2023-06-29 1095: 检查e的效果类型(怪兽·魔法·陷阱)是否有type
d04874f487 2023-06-29 1096: 
d04874f487 2023-06-29 1097: ●int Effect.GetOwnerPlayer(Effect e)
d04874f487 2023-06-29 1098: 返回OwnerPlayer属性,一般是Owner的控制者
d04874f487 2023-06-29 1099: 
d04874f487 2023-06-29 1100: ●int Effect.GetHandlerPlayer(Effect e)
d04874f487 2023-06-29 1101: 返回当前者,一般是Handle的控制者
d04874f487 2023-06-29 1102: 
d04874f487 2023-06-29 1103: ●bool Effect.IsHasProperty(Effect e, int prop1[, int prop2])
d04874f487 2023-06-29 1104: 检查效果是否含有标志prop1[和prop2]
d04874f487 2023-06-29 1105: 
d04874f487 2023-06-29 1106: ●bool Effect.IsHasCategory(Effect e, int cate)
d04874f487 2023-06-29 1107: 检查效果是否含有效果分类cate
d04874f487 2023-06-29 1108: 
d04874f487 2023-06-29 1109: ●bool Effect.IsHasType(Effect e, int type)
d04874f487 2023-06-29 1110: 检查效果是否属于类型type
d04874f487 2023-06-29 1111: 
d04874f487 2023-06-29 1112: ●bool Effect.IsActivatable(Effect e, int player[, bool neglect_loc=false, bool neglect_target=false])
d04874f487 2023-06-29 1113: 检查效果e能否由player发动
d04874f487 2023-06-29 1114: neglect_loc=true 为不检测发动位置, neglect_target=true 为不检测对象要求
d04874f487 2023-06-29 1115: 
d04874f487 2023-06-29 1116: ●bool Effect.IsActivated(Effect e)
d04874f487 2023-06-29 1117: 检查效果e能否是发动的效果,也就是以下类型
d04874f487 2023-06-29 1118: EFFECT_TYPE_ACTIVATE		=0x0010		--魔陷发动
d04874f487 2023-06-29 1119: EFFECT_TYPE_FLIP			=0x0020		--翻转效果
d04874f487 2023-06-29 1120: EFFECT_TYPE_IGNITION		=0x0040		--起动效果
d04874f487 2023-06-29 1121: EFFECT_TYPE_TRIGGER_O		=0x0080		--诱发选发效果
d04874f487 2023-06-29 1122: EFFECT_TYPE_QUICK_O			=0x0100		--诱发即时效果
d04874f487 2023-06-29 1123: EFFECT_TYPE_TRIGGER_F		=0x0200		--诱发必发效果
d04874f487 2023-06-29 1124: EFFECT_TYPE_QUICK_F			=0x0400		--诱发即时必发效果(熊猫龙等)
d04874f487 2023-06-29 1125: 
d04874f487 2023-06-29 1126: ●int Effect.GetActivateLocation(Effect e)
d04874f487 2023-06-29 1127: 返回效果e的发动区域
d04874f487 2023-06-29 1128: 
d04874f487 2023-06-29 1129: ●int Effect.GetActivateSequence(Effect e)
d04874f487 2023-06-29 1130: 返回效果e的发动区域序号
d04874f487 2023-06-29 1131: 
d04874f487 2023-06-29 1132: ●bool Effect.CheckCountLimit(Effect e, int p)
d04874f487 2023-06-29 1133: 检测玩家 p 是否还有可以发动的效果 e 的次数
d04874f487 2023-06-29 1134: 
d04874f487 2023-06-29 1135: ●void Effect.UseCountLimit(Effect e, int p[, int count=1, bool oath_only=false])
d04874f487 2023-06-29 1136: 手动减少玩家 p 对效果 e 的 count 个可用次数[ oath_only 为 该效果是否是 EFFECT_FLAG_OATH]
d04874f487 2023-06-29 1137: 
d04874f487 2023-06-29 1138: ●void Effect.SetOwner(Effect e, Card c)
d04874f487 2023-06-29 1139: 将e的Owner属性设置为c。
d04874f487 2023-06-29 1140: 
d04874f487 2023-06-29 1141: ●int Effect.GetRange(Effect e)
d04874f487 2023-06-29 1142: 返回e的Range属性。
d04874f487 2023-06-29 1143: 
d04874f487 2023-06-29 1144: ●int[,int] Effect.GetCountLimit(Effect e)
d04874f487 2023-06-29 1145: 返回e的CountLimit属性。
d04874f487 2023-06-29 1146: 
d04874f487 2023-06-29 1147: ========== Group ==========
d04874f487 2023-06-29 1148: ●Group Group.CreateGroup()
d04874f487 2023-06-29 1149: 新建一个空的卡片组
d04874f487 2023-06-29 1150: 
d04874f487 2023-06-29 1151: ●void Group.KeepAlive(Group g)
d04874f487 2023-06-29 1152: 让卡片组持续,把卡片组设置为效果的LabelObject需要设置
d04874f487 2023-06-29 1153: 
d04874f487 2023-06-29 1154: ●void Group.DeleteGroup(Group g)
d04874f487 2023-06-29 1155: 删除卡片组g
d04874f487 2023-06-29 1156: 
d04874f487 2023-06-29 1157: ●Group Group.Clone(Group g)
d04874f487 2023-06-29 1158: 新建卡片组g的副本
d04874f487 2023-06-29 1159: 
d04874f487 2023-06-29 1160: ●Group Group.FromCards(...)
d04874f487 2023-06-29 1161: 不定参数,把传入的所有卡组合成一个卡片组并返回,所有参数只能是 Card 类型。没有参数时,相当于Group.CreateGroup()
d04874f487 2023-06-29 1162: 
d04874f487 2023-06-29 1163: ●void Group.Clear(Group g)
d04874f487 2023-06-29 1164: 清空卡片组
d04874f487 2023-06-29 1165: 
d04874f487 2023-06-29 1166: ●void Group.AddCard(Group g, Card c)
d04874f487 2023-06-29 1167: 往g中增加c
d04874f487 2023-06-29 1168: 
d04874f487 2023-06-29 1169: ●void Group.RemoveCard(Group g, Card c)
d04874f487 2023-06-29 1170: 把c从g中移除
d04874f487 2023-06-29 1171: 
d04874f487 2023-06-29 1172: ●Card Group.GetFirst(Group g)
d04874f487 2023-06-29 1173: 返回g中第一张卡,并重置当前指针到g中第一张卡
d04874f487 2023-06-29 1174: 如果g中不存在卡则返回nil
d04874f487 2023-06-29 1175: 
d04874f487 2023-06-29 1176: ●Card Group.GetNext(Group g)
d04874f487 2023-06-29 1177: 使指针指向下一张卡并返回这张卡,如果不存在则返回nil
d04874f487 2023-06-29 1178: 
d04874f487 2023-06-29 1179: ●int Group.GetCount(Group g)
d04874f487 2023-06-29 1180: 返回g中卡的数量
d04874f487 2023-06-29 1181: 
d04874f487 2023-06-29 1182: ●int Group.__len(Group g)
d04874f487 2023-06-29 1183: 和 Group.GetCount 一样
d04874f487 2023-06-29 1184: 
d04874f487 2023-06-29 1185: ●void Group.ForEach(Group g, function f,...)
d04874f487 2023-06-29 1186: 以g中的每一张卡作为参数调用一次f ,第三个参数开始为额外参数
d04874f487 2023-06-29 1187: 
d04874f487 2023-06-29 1188: ●Group Group.Filter(Group g, function f, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1189: 过滤函数,从g中筛选满足筛选条件f并且不等于ex的卡
d04874f487 2023-06-29 1190: 从第4个参数开始为额外参数
d04874f487 2023-06-29 1191: 
d04874f487 2023-06-29 1192: ●int Group.FilterCount(Group g, function f, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1193: 过滤函数,和Group.Filter基本相同,不同之处在于此函数只返回满足条件的卡的数量
d04874f487 2023-06-29 1194: 
d04874f487 2023-06-29 1195: ●Group Group.FilterSelect(Group g, int player, function f, int min, int max, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1196: 过滤函数,让玩家player从g中选择 min-max 张满足筛选条件f并且不等于ex的卡
d04874f487 2023-06-29 1197: 从第7个参数开始为额外参数
d04874f487 2023-06-29 1198: 
d04874f487 2023-06-29 1199: ●Group Group.Select(Group g, int player, int min, int max, Card|Group ex|nil)
d04874f487 2023-06-29 1200: 让玩家player从g中选择min-max张不等于ex的卡
d04874f487 2023-06-29 1201: 
d04874f487 2023-06-29 1202: ●Card Group.SelectUnselect(Group cg, Group sg, int player, bool btok=false, bool cancelable=false, int minc, int maxc)
d04874f487 2023-06-29 1203: 让玩家 player 从 cg 中选择 1 张卡放入 sg ,并返回选的卡。
d04874f487 2023-06-29 1204: btok 表示是否可以点击完成选择的按钮, cancelable 表示是否可以取消已选择的卡,
d04874f487 2023-06-29 1205: minc 和 maxc 是客户端的文字缓冲提示,表示需要选择 minc-maxc 张卡,但是这个只是影响视觉效果,并不代表必须要选择那个数量
d04874f487 2023-06-29 1206: 
d04874f487 2023-06-29 1207: ●Group Group.RandomSelect(Group g, int player, int count)
d04874f487 2023-06-29 1208: 让玩家player从g中随机选择count张卡
d04874f487 2023-06-29 1209: 因为是随机选择,所以参数player基本无用,由系统随机选取
d04874f487 2023-06-29 1210: 
d04874f487 2023-06-29 1211: ●bool Group.IsExists(Group g, function f, int count, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1212: 过滤函数,检查g中是否存在至少count张满足筛选条件f并且不等于ex的卡
d04874f487 2023-06-29 1213: 从第5个参数开始为额外参数
d04874f487 2023-06-29 1214: 
d04874f487 2023-06-29 1215: ●bool Group.CheckWithSumEqual(Group g, function f, int sum, int min=0, int max, ...)
d04874f487 2023-06-29 1216: 子集求和判定函数,f为返回一个interger值的函数
d04874f487 2023-06-29 1217: 检查g中是否存在一个数量为min-max的子集满足以f对子集的每一个元素求值的和等于sum,从第6个参数开始为额外参数
d04874f487 2023-06-29 1218: 	比如:g:CheckWithSumEqual(Card.GetSynchroLevel,7,2,99)
d04874f487 2023-06-29 1219: 	检查g中是否存在一个子集满足子集的同调用等级之和等于7
d04874f487 2023-06-29 1220: 
d04874f487 2023-06-29 1221: ●Group Group.SelectWithSumEqual(Group g, int player, function f, int sum, int min, int max, ...)
d04874f487 2023-06-29 1222: 让玩家player从g中选取一个数量为min-max的子集使子集的特定函数的和等于sum,从第7个参数开始为额外参数
d04874f487 2023-06-29 1223: 
d04874f487 2023-06-29 1224: ●bool Group.CheckWithSumGreater(Group g, function f, int sum, ...)
d04874f487 2023-06-29 1225: 子集求和判定函数之二,f为返回一个interger值的函数
d04874f487 2023-06-29 1226: 检查g中是否存在一个子集满足以f对子集的每一个元素求值的和刚好大于或者等于sum,从第4个参数开始为额外参数
d04874f487 2023-06-29 1227: 比如:g:CheckWithSumGreater(Card.GetRitualLevel,8)
d04874f487 2023-06-29 1228: 	检查g中是否存在一个子集满足子集的仪式用等级之和大于等于8
d04874f487 2023-06-29 1229: 	注:判定必须是“刚好”大于或者等于
d04874f487 2023-06-29 1230: 	以等级为例,要使等级合计大于等于8,可以选择LV1+LV7而不可以选择LV1+LV4+LV4
d04874f487 2023-06-29 1231: 
d04874f487 2023-06-29 1232: ●Group Group.SelectWithSumGreater(Group g, int player, function f, int sum, ...)
d04874f487 2023-06-29 1233: 让玩家player从g中选取一个子集使子集的特定函数f的和大于等于sum,从第5个参数开始为额外参数
d04874f487 2023-06-29 1234: 
d04874f487 2023-06-29 1235: ●Group,int Group.GetMinGroup(Group g, function f, ...)
d04874f487 2023-06-29 1236: f为返回一个interger值的函数,从g中筛选出具有最小的f的值的卡
d04874f487 2023-06-29 1237: 第2个返回值为这个最小值,从第3个参数开始为额外参数
d04874f487 2023-06-29 1238: 要使用第2个返回值注意检查g非空
d04874f487 2023-06-29 1239: 
d04874f487 2023-06-29 1240: ●Group,int Group.GetMaxGroup(Group g, function f, ...)
d04874f487 2023-06-29 1241: f为返回一个interger值的函数,从g中筛选出具有最大的f的值的卡
d04874f487 2023-06-29 1242: 第2个返回值为这个最大值,从第3个参数开始为额外参数
d04874f487 2023-06-29 1243: 要使用第2个返回值注意检查g非空
d04874f487 2023-06-29 1244: 
d04874f487 2023-06-29 1245: ●int Group.GetSum(Group g, function f, ...)
d04874f487 2023-06-29 1246: 计算g中所有卡的取值的总和,f为为每张卡的取值函数,从第3个参数开始为额外参数
d04874f487 2023-06-29 1247: 等价于:
d04874f487 2023-06-29 1248: function GetSum(g,f,...)
d04874f487 2023-06-29 1249: 	local ct=0
d04874f487 2023-06-29 1250: 	local val={...}
d04874f487 2023-06-29 1251: 	for tc in aux.Next(g)
d04874f487 2023-06-29 1252: 		if f(tc,table.unpack(val)) then ct=ct+1 end
d04874f487 2023-06-29 1253: 	end
d04874f487 2023-06-29 1254: 	return ct
d04874f487 2023-06-29 1255: end
d04874f487 2023-06-29 1256: 
d04874f487 2023-06-29 1257: ●int Group.GetClassCount(Group g, function f, ...)
d04874f487 2023-06-29 1258: 计算g中所有卡的种类数量,f为分类的依据,返回相同的值视为同一种类,从第3个参数开始为额外参数
d04874f487 2023-06-29 1259: 比如 g:GetClassCount(Card.GetCode()) 就是计算g中卡名不同的卡的数量
d04874f487 2023-06-29 1260: 
d04874f487 2023-06-29 1261: ●void Group.Remove(Group g, function f, Card ex|nil, ...)
d04874f487 2023-06-29 1262: 从g中移除满足筛选条件f并且不等于ex的所有卡,第4个参数开始是额外参数
d04874f487 2023-06-29 1263: 
d04874f487 2023-06-29 1264: ●void Group.Merge(Group g1, Group g2)
d04874f487 2023-06-29 1265: 把g2中的所有卡合并到g1,若g1中原本就有属于g2的卡,那些卡将不会重复
d04874f487 2023-06-29 1266: 注:g2本身不会发生变化
d04874f487 2023-06-29 1267: 
d04874f487 2023-06-29 1268: ●void Group.Sub(Group g1, Group g2)
d04874f487 2023-06-29 1269: 从g1中移除属于g2中的卡
d04874f487 2023-06-29 1270: 注:g2本身不会发生变化
d04874f487 2023-06-29 1271: 
d04874f487 2023-06-29 1272: ●bool Group.Equal(Group g1, Group g2)
d04874f487 2023-06-29 1273: 判断g1和g2是否相同
d04874f487 2023-06-29 1274: 
d04874f487 2023-06-29 1275: ●bool Group.IsContains(Group g, Card c)
d04874f487 2023-06-29 1276: 检查g中是否存在卡片c
d04874f487 2023-06-29 1277: 
d04874f487 2023-06-29 1278: ●Card Group.SearchCard(Group g, function f, ...)
d04874f487 2023-06-29 1279: 过滤函数,返回g中满足筛选条件f的第一张卡,若没有则返回nil,从第3个参数开始为额外参数
d04874f487 2023-06-29 1280: 
d04874f487 2023-06-29 1281: ●int Group.GetBinClassCount(Group g, function f, ...)
d04874f487 2023-06-29 1282: 和 Group.GetClassCount 类似,但是算法不同(使用位运算)
d04874f487 2023-06-29 1283: 
d04874f487 2023-06-29 1284: ●Group Group.__add(Group|Card target1, Group|Card target2)
d04874f487 2023-06-29 1285: 新建一个卡片组,将 targe1 和 target2 中的 全部卡添加到这个卡片组,并返回这个卡片组,若有相同的卡只会添加1次, targe1,target2 本身不会有任何变化
d04874f487 2023-06-29 1286: 
d04874f487 2023-06-29 1287: ●Group Group.__bor(Group|Card target1, Group|Card target2)
d04874f487 2023-06-29 1288: 代码和 Group.__add 完全一样
d04874f487 2023-06-29 1289: 
d04874f487 2023-06-29 1290: ●Group Group.__sub(Group|Card target1, Group|Card target2)
d04874f487 2023-06-29 1291: 新建一个卡片组,将 targe1 中的 全部卡添加到这个卡片组,然后再从这个卡片组把 target2 的卡全部删除,最后返回这个卡片组,targe1,target2 本身不会有任何变化
d04874f487 2023-06-29 1292: 
d04874f487 2023-06-29 1293: ●Group Group.__band(Group|Card target1, Group|Card target2)
d04874f487 2023-06-29 1294: 新建一个卡片组,将 target1 和 target2 中相同的卡(就是那张卡同时存在于 target1 和 target2 )全部添加到 这个卡片组里,最后返回这个卡片组,targe1,target2 本身不会有任何变化
d04874f487 2023-06-29 1295: 
d04874f487 2023-06-29 1296: ●Group Group.__bxor(Group|Card target1, Group|Card target2)
d04874f487 2023-06-29 1297: 新建一个卡片组,将 target1 和 target2 中不同的卡(就是只存在于 target1 或者 target2 里的卡)全部添加到 这个卡片组里,最后返回这个卡片组,targe1,target2 本身不会有任何变化
d04874f487 2023-06-29 1298: 
d04874f487 2023-06-29 1299: ========== Duel ==========
d04874f487 2023-06-29 1300: ●void Duel.EnableGlobalFlag(int global_flag)
d04874f487 2023-06-29 1301: 设置全局标记global_flag
d04874f487 2023-06-29 1302: 
d04874f487 2023-06-29 1303: ●int Duel.GetLP(int player)
d04874f487 2023-06-29 1304: 返回玩家player的当前LP
d04874f487 2023-06-29 1305: 
d04874f487 2023-06-29 1306: ●void Duel.SetLP(int player, int lp)
d04874f487 2023-06-29 1307: 设置玩家player的当前LP为lp
d04874f487 2023-06-29 1308: 
d04874f487 2023-06-29 1309: ●int Duel.GetTurnPlayer()
d04874f487 2023-06-29 1310: 返回当前的回合玩家
d04874f487 2023-06-29 1311: 
d04874f487 2023-06-29 1312: ●int Duel.GetTurnCount([int player])
d04874f487 2023-06-29 1313: 返回[player所经过的]当前的回合数
d04874f487 2023-06-29 1314: 
d04874f487 2023-06-29 1315: ●int Duel.GetDrawCount(int player)
d04874f487 2023-06-29 1316: 返回玩家player每回合的规则抽卡数量
d04874f487 2023-06-29 1317: 
d04874f487 2023-06-29 1318: ●void Duel.RegisterEffect(Effect e, int player)
d04874f487 2023-06-29 1319: 把效果e作为玩家player的效果注册给全局环境
d04874f487 2023-06-29 1320: 
d04874f487 2023-06-29 1321: ●Effect Duel.RegisterFlagEffect(int player, int code, int reset_flag, int property, int reset_count=1[, int label])
d04874f487 2023-06-29 1322: 为玩家player注册全局环境下的标识效果,并返回这个效果
d04874f487 2023-06-29 1323: 此效果总是影响玩家的(EFFECT_FLAG_PLAYER_TARGET)并且不会被无效化
d04874f487 2023-06-29 1324: 其余部分与Card.RegisterFlagEffect相同
d04874f487 2023-06-29 1325: 
d04874f487 2023-06-29 1326: ●int Duel.GetFlagEffect(int player, int code)
d04874f487 2023-06-29 1327: 返回玩家 player 的 code 标识效果的数量
d04874f487 2023-06-29 1328: 
d04874f487 2023-06-29 1329: ●void Duel.ResetFlagEffect(int player, int code)
d04874f487 2023-06-29 1330: 手动reset玩家player的 code 标识效果
d04874f487 2023-06-29 1331: 
d04874f487 2023-06-29 1332: ●bool Duel.SetFlagEffectLabel(int player, int code, int label)
d04874f487 2023-06-29 1333: 返回player是否存在种类为code的标识效果,并设置其Label属性为label
d04874f487 2023-06-29 1334: 
d04874f487 2023-06-29 1335: ●int Duel.GetFlagEffectLabel(int player, int code)
d04874f487 2023-06-29 1336: 返回玩家player的种类为code的标识效果的Label,没有此效果则返回nil
d04874f487 2023-06-29 1337: 
d04874f487 2023-06-29 1338: ●int Duel.Destroy(Card|Group targets, int reason[ ,int dest = LOCATION_GRAVE])
d04874f487 2023-06-29 1339: 以reason原因破坏targets去dest,返回值是实际被破坏的数量
d04874f487 2023-06-29 1340: 如果reason包含REASON_RULE,则破坏事件将不会检查卡片是否免疫效果,
d04874f487 2023-06-29 1341: 不会触发代破效果并且无视“不能破坏”
d04874f487 2023-06-29 1342: 
d04874f487 2023-06-29 1343: ●int Duel.Remove(Card|Group targets, int pos, int reason)
d04874f487 2023-06-29 1344: 以reason原因,pos表示形式除外targets,返回值是实际被操作的数量
d04874f487 2023-06-29 1345: 如果reason包含REASON_TEMPORARY,那么视为是暂时除外,可以通过Duel.ReturnToField返回到场上
d04874f487 2023-06-29 1346: 
d04874f487 2023-06-29 1347: ●int Duel.SendtoGrave(Card|Group targets, int reason)
d04874f487 2023-06-29 1348: 以reason原因把targets送去墓地,返回值是实际被操作的数量
d04874f487 2023-06-29 1349: 
d04874f487 2023-06-29 1350: ●int Duel.SendtoHand(Card|Group targets, int player|nil, int reason)
d04874f487 2023-06-29 1351: 以reason原因把targets送去玩家player的手卡,返回值是实际被操作的数量
d04874f487 2023-06-29 1352: 如果player是nil则返回卡的持有者的手卡
d04874f487 2023-06-29 1353: 
d04874f487 2023-06-29 1354: ●int Duel.SendtoDeck(Card|Group targets, int player|nil, int seq, int reason)
d04874f487 2023-06-29 1355: 以reason原因把targets送去玩家player的卡组,返回值是实际被操作的数量
d04874f487 2023-06-29 1356: 如果player是nil则返回卡的持有者的卡组
d04874f487 2023-06-29 1357: 如果seq=0,则是返回卡组最顶端;seq=1则是返回卡组最底端;
d04874f487 2023-06-29 1358: 其余情况则是返回最顶端并且标记需要洗卡组
d04874f487 2023-06-29 1359: 
d04874f487 2023-06-29 1360: ●int Duel.SendtoExtraP(Card|Group targets, int player|nil, int reason)
d04874f487 2023-06-29 1361: 以reason原因把灵摆卡targets表侧表示送去玩家player的额外卡组,返回值是实际被操作的数量
d04874f487 2023-06-29 1362: 如果player是nil则返回卡的持有者的额外卡组
d04874f487 2023-06-29 1363: 
d04874f487 2023-06-29 1364: ●Group Duel.GetOperatedGroup()
d04874f487 2023-06-29 1365: 此函数返回之前一次卡片操作实际操作的卡片组。包括
d04874f487 2023-06-29 1366: Duel.Destroy, Duel.Remove, Duel.SendtoGrave,
d04874f487 2023-06-29 1367: Duel.SendtoHand, Duel.SendtoDeck, Duel.SendtoExtraP, Duel.Release,
d04874f487 2023-06-29 1368: Duel.ChangePosition, Duel.SpecialSummon, Duel.DiscardDeck
d04874f487 2023-06-29 1369: 
d04874f487 2023-06-29 1370: ●void Duel.Summon(int player, Card c, bool ignore_count, Effect e|nil[, int min=0, int zone=0x1f])
d04874f487 2023-06-29 1371: 让玩家 player 以效果e对c[在区域 zone]进行通常召唤(非set),至少使用min个祭品
d04874f487 2023-06-29 1372: 如果e=nil,那么就按照一般的通常召唤规则进行通常召唤
d04874f487 2023-06-29 1373: 如果ignore_count=true,则忽略每回合的通常召唤次数限制
d04874f487 2023-06-29 1374: 
d04874f487 2023-06-29 1375: ●void Duel.SpecialSummonRule(int player, Card c[, int sumtype=0])
d04874f487 2023-06-29 1376: 让玩家player对c[用 sumtype 方式]进行特殊召唤手续(?)
d04874f487 2023-06-29 1377: 
d04874f487 2023-06-29 1378: ●void Duel.SynchroSummon(int player, Card c, Card tuner|nil[, Group mg|nil])
d04874f487 2023-06-29 1379: 让玩家player以tuner作为调整,场上的卡[或mg]为素材,对c进行同调召唤手续
d04874f487 2023-06-29 1380: 
d04874f487 2023-06-29 1381: ●void Duel.XyzSummon(int player, Card c, Group mg|nil[, min=0, max=0])
d04874f487 2023-06-29 1382: 让玩家player用场上的卡[或mg][选min-max个素材]对c进行XYZ召唤手续
d04874f487 2023-06-29 1383: mg非空且min为0则直接把mg全部作为XYZ素材
d04874f487 2023-06-29 1384: 
d04874f487 2023-06-29 1385: ●void Duel.MSet(int player, Card c, bool ignore_count, Effect e|nil[,int min=0, int zone=0x1f])
d04874f487 2023-06-29 1386: 让玩家 player 以效果e对c[在区域 zone]进行通常召唤的Set,至少使用min个祭品
d04874f487 2023-06-29 1387: 如果e=nil,那么就按照一般的通常召唤规则进行通常召唤
d04874f487 2023-06-29 1388: 如果ignore_count=true,则忽略每回合的通常召唤次数限制
d04874f487 2023-06-29 1389: 
d04874f487 2023-06-29 1390: ●void|int Duel.SSet(int player, Card|Group targets[, int target_player=player, bool confirm=true])
d04874f487 2023-06-29 1391: 让玩家player把targets盖放到target_player的魔法陷阱区, confirm 表示是否需要确认
d04874f487 2023-06-29 1392: 若targets为Group,则返回成功操作的数量
d04874f487 2023-06-29 1393: 
d04874f487 2023-06-29 1394: ●bool|Card Duel.CreateToken(int player, int code)
d04874f487 2023-06-29 1395: 根据code新建一个衍生物并返回,该衍生物的拥有者为player,如果 player 不是 0或者1,则返回false
d04874f487 2023-06-29 1396: 
d04874f487 2023-06-29 1397: ●int Duel.SpecialSummon(Card|Group targets, int sumtype, int sumplayer, int target_player, bool nocheck, bool nolimit, int pos[, int zone=0xff])
d04874f487 2023-06-29 1398: 让玩家 sumplayer 以sumtype方式,pos表示形式把targets特殊召唤到target_player场上[的区域 zone]
d04874f487 2023-06-29 1399: 如果nocheck为true则无视卡的召唤条件,如果nolimit为true则无视卡的苏生限制
d04874f487 2023-06-29 1400: 返回值是特殊召唤成功的卡的数量
d04874f487 2023-06-29 1401: 
d04874f487 2023-06-29 1402: ●bool Duel.SpecialSummonStep(Card c, int sumtype, int sumplayer, int target_player, bool nocheck, bool nolimit, int pos[, int zone=0xff])
d04874f487 2023-06-29 1403: 此函数是Duel.SpecialSummon的分解过程,只特殊召唤一张卡c ,其他参数用法和 Duel.SpecialSummon 一样
d04874f487 2023-06-29 1404: 此函数用于一个效果同时特殊召唤多张参数不同的卡
d04874f487 2023-06-29 1405: 此函数必须和Duel.SpecialSummonComplete一起使用
d04874f487 2023-06-29 1406: 返回值表示是否特殊召唤成功
d04874f487 2023-06-29 1407: 
d04874f487 2023-06-29 1408: ●void|int Duel.SpecialSummonComplete()
d04874f487 2023-06-29 1409: 此函数在确定复数个Duel.SpecialSummonStep调用完毕之后调用,用于触发事件
d04874f487 2023-06-29 1410: 
d04874f487 2023-06-29 1411: ●bool Duel.IsCanAddCounter(int player, int countertype, int count, Card c)
d04874f487 2023-06-29 1412: 检查玩家player能否向卡片c添加count个countertype类型的指示物,如果 player 不是 0或者1,则返回false
d04874f487 2023-06-29 1413: 
d04874f487 2023-06-29 1414: ●bool Duel.RemoveCounter(int player, int s, int o, int countertype, int count, int reason)
d04874f487 2023-06-29 1415: 让玩家player以reason为原因移除场上存在的countertype类型的count个指示物,返回值表示是否成功
d04874f487 2023-06-29 1416: s表示对player来说的己方的可移除指示物的位置,o表示对player来说的对方的可移除指示物的位置
d04874f487 2023-06-29 1417: 
d04874f487 2023-06-29 1418: ●bool Duel.IsCanRemoveCounter(int player, int s, int o, int countertype, int count, int reason)
d04874f487 2023-06-29 1419: 检查玩家player以reason为原因是否能移除场上的countertype类型的count个指示物
d04874f487 2023-06-29 1420: s表示对player来说的己方的可移除指示物的位置,o表示对player来说的对方的可移除指示物的位置
d04874f487 2023-06-29 1421: 
d04874f487 2023-06-29 1422: ●int Duel.GetCounter(int player, int s, int o, int countertype)
d04874f487 2023-06-29 1423: 返回场上存在的countertype类型的指示物的数量
d04874f487 2023-06-29 1424: s表示对player来说的己方的可移除指示物的位置,o表示对player来说的对方的可移除指示物的位置
d04874f487 2023-06-29 1425: 
d04874f487 2023-06-29 1426: ●int Duel.ChangePosition(Card|Group targets, int au[, int ad=au, int du=au, int dd=au, bool noflip=false, bool setavailable=false])
d04874f487 2023-06-29 1427: 改变targets的表示形式返回实际操作的数量,若只有2个参数,则不管什么表示形式,都变成 第二个参数 代表的形式
d04874f487 2023-06-29 1428: 表侧攻击表示 = au
d04874f487 2023-06-29 1429: 里侧攻击表示 = ad
d04874f487 2023-06-29 1430: 表侧守备表示 = du
d04874f487 2023-06-29 1431: 里侧守备表示 = dd
d04874f487 2023-06-29 1432: 如果noflip=true则不触发反转效果(但会触发反转时的诱发效果)
d04874f487 2023-06-29 1433: 如果setavailable=true则对象之后变成里侧也发动反转效果
d04874f487 2023-06-29 1434: 
d04874f487 2023-06-29 1435: ●int Duel.Release(Card|Group targets, int reason)
d04874f487 2023-06-29 1436: 以reason原因解放targets ,返回值是实际解放的数量
d04874f487 2023-06-29 1437: 如果reason含有REASON_COST,则不会检查卡片是否不受效果影响
d04874f487 2023-06-29 1438: 
d04874f487 2023-06-29 1439: ●bool Duel.MoveToField(Card c, int move_player, int target_player, int dest, int pos, bool enable)
d04874f487 2023-06-29 1440: 让玩家move_player把c移动的target_player的场上,返回值表示是否成功
d04874f487 2023-06-29 1441: dest只能是LOCATION_MZONE或者LOCATION_SZONE,pos表示可选表示形式, enable 表示是否立刻适用c的效果
d04874f487 2023-06-29 1442: 
d04874f487 2023-06-29 1443: ●bool Duel.ReturnToField(Card c[, int pos, int zone=0xff])
d04874f487 2023-06-29 1444: 把c以表示形式pos返回到场上[的区域 zone],pos默认值是离场前的表示形式,返回值表示是否成功
d04874f487 2023-06-29 1445: c必须是以REASON_TEMPORARY原因离场,并且离场后没有离开过那个位置
d04874f487 2023-06-29 1446: 
d04874f487 2023-06-29 1447: ●void Duel.MoveSequence(Card c, int seq)
d04874f487 2023-06-29 1448: 移动c的序号,通常用于在场上换格子或者在卡组中移动到最上方或者最下方
d04874f487 2023-06-29 1449: 
d04874f487 2023-06-29 1450: ●void Duel.SwapSequence(Card c1, Card c2)
d04874f487 2023-06-29 1451: 交换c1和c2的位置
d04874f487 2023-06-29 1452: 
d04874f487 2023-06-29 1453: ●void Duel.Activate(Effect e)
d04874f487 2023-06-29 1454: 发动效果e(?)
d04874f487 2023-06-29 1455: 
d04874f487 2023-06-29 1456: ●void Duel.SetChainLimit(function f)
d04874f487 2023-06-29 1457: 设定连锁条件,f的函数原型为 bool f(e,ep,tp)
d04874f487 2023-06-29 1458: e表示要限制连锁的效果,ep表示要限制连锁的玩家,tp表示发动该效果的玩家
d04874f487 2023-06-29 1459: 在cost或者target处理中调用此函数可以限制可以连锁的效果的种类(如超融合)
d04874f487 2023-06-29 1460: 如果f返回false表示不能连锁,一旦设置连锁条件后发生了新的连锁那么连锁条件将会解除
d04874f487 2023-06-29 1461: 
d04874f487 2023-06-29 1462: ●void Duel.SetChainLimitTillChainEnd(function f)
d04874f487 2023-06-29 1463: 功能同Duel.SetChainLimit,但是此函数设定的连锁条件直到连锁结束才会解除
d04874f487 2023-06-29 1464: 
d04874f487 2023-06-29 1465: ●Effect Duel.GetChainMaterial(int player)
d04874f487 2023-06-29 1466: 返回玩家player受到的连锁素材的效果,此函数仅用于融合类卡的效果
d04874f487 2023-06-29 1467: 
d04874f487 2023-06-29 1468: ●void Duel.ConfirmDecktop(int player, int count)
d04874f487 2023-06-29 1469: 确认玩家player卡组最上方count张卡
d04874f487 2023-06-29 1470: 
d04874f487 2023-06-29 1471: ●void Duel.ConfirmExtratop(int player, int count)
d04874f487 2023-06-29 1472: 确认玩家player额外卡组里侧的卡 最上方count张卡
d04874f487 2023-06-29 1473: 
d04874f487 2023-06-29 1474: ●void Duel.ConfirmCards(int player, Card|Group targets)
d04874f487 2023-06-29 1475: 给玩家player确认targets
d04874f487 2023-06-29 1476: 
d04874f487 2023-06-29 1477: ●void Duel.SortDecktop(int sort_player, int target_player, int count)
d04874f487 2023-06-29 1478: 让玩家sort_player对玩家target_player的卡组最上方count张卡进行排序,最先选的卡在最上面,然后下面是第二张选择的卡,以此类推
d04874f487 2023-06-29 1479: 最多只能排序16张卡
d04874f487 2023-06-29 1480: 
d04874f487 2023-06-29 1481: ●bool[,Group,int,int,Effect,int,int] Duel.CheckEvent(int event[, bool get_info])
d04874f487 2023-06-29 1482: 检查当前是否是event时点
d04874f487 2023-06-29 1483: 若get_info=true并且是正确的时点,则还返回触发时点的信息 eg,ep,ev,re,r,rp
d04874f487 2023-06-29 1484: 
d04874f487 2023-06-29 1485: ●void Duel.RaiseEvent(Group|Card eg, int code, Effect re, int r, int rp, int ep, int ev)
d04874f487 2023-06-29 1486: 以eg,ep,ev,re,r,rp触发一个时点 code
d04874f487 2023-06-29 1487: 
d04874f487 2023-06-29 1488: ●void Duel.RaiseSingleEvent(Card eg, int code, Effect re, int r, int rp, int ep, int ev)
d04874f487 2023-06-29 1489: 以eg,ep,ev,re,r,rp为卡片ec触发一个单体时点 code
d04874f487 2023-06-29 1490: 
d04874f487 2023-06-29 1491: ●bool Duel.CheckTiming(int timing)
d04874f487 2023-06-29 1492: 检查当前是否是timing提示时点
d04874f487 2023-06-29 1493: TIMING_DRAW_PHASE			=0x1			--抽卡阶段时点
d04874f487 2023-06-29 1494: TIMING_STANDBY_PHASE		=0x2        	--准备阶段时点
d04874f487 2023-06-29 1495: TIMING_MAIN_END				=0x4        	--主要阶段结束时点
d04874f487 2023-06-29 1496: TIMING_BATTLE_START			=0x8        	--战斗阶段开始时点
d04874f487 2023-06-29 1497: TIMING_BATTLE_END			=0x10       	--战斗阶段结束时点
d04874f487 2023-06-29 1498: TIMING_END_PHASE			=0x20       	--结束阶段时点
d04874f487 2023-06-29 1499: TIMING_SUMMON				=0x40       	--召唤时点
d04874f487 2023-06-29 1500: TIMING_SPSUMMON				=0x80       	--特殊召唤时点
d04874f487 2023-06-29 1501: TIMING_FLIPSUMMON			=0x100      	--翻转召唤时点
d04874f487 2023-06-29 1502: TIMING_MSET					=0x200			--放置怪兽时点
d04874f487 2023-06-29 1503: TIMING_SSET					=0x400      	--放置魔陷时点
d04874f487 2023-06-29 1504: TIMING_POS_CHANGE			=0x800      	--表示形式变更时点
d04874f487 2023-06-29 1505: TIMING_ATTACK				=0x1000     	--攻击宣言时点
d04874f487 2023-06-29 1506: TIMING_DAMAGE_STEP			=0x2000     	--伤害步骤时点
d04874f487 2023-06-29 1507: TIMING_DAMAGE_CAL			=0x4000     	--伤害计算时点
d04874f487 2023-06-29 1508: TIMING_CHAIN_END			=0x8000     	--连锁结束时点
d04874f487 2023-06-29 1509: TIMING_DRAW					=0x10000    	--抽卡时点(不是抽卡阶段
d04874f487 2023-06-29 1510: TIMING_DAMAGE				=0x20000    	--造成伤害时点
d04874f487 2023-06-29 1511: TIMING_RECOVER				=0x40000		--回复时点
d04874f487 2023-06-29 1512: TIMING_DESTROY				=0x80000    	--破坏时点
d04874f487 2023-06-29 1513: TIMING_REMOVE				=0x100000   	--除外时点
d04874f487 2023-06-29 1514: TIMING_TOHAND				=0x200000   	--加入手卡时点(检索、回收等)
d04874f487 2023-06-29 1515: TIMING_TODECK				=0x400000   	--回卡组时点
d04874f487 2023-06-29 1516: TIMING_TOGRAVE				=0x800000   	--进墓地时点
d04874f487 2023-06-29 1517: TIMING_BATTLE_PHASE			=0x1000000  	--战斗阶段时点
d04874f487 2023-06-29 1518: TIMING_EQUIP				=0x2000000  	--装备时点
d04874f487 2023-06-29 1519: TIMING_BATTLE_STEP_END		=0x4000000  	--戰鬥步驟結束時
d04874f487 2023-06-29 1520: 
d04874f487 2023-06-29 1521: ●int,int Duel.GetEnvironment()
d04874f487 2023-06-29 1522: 返回两个值,表示当前场地代号,以及当前场地效果的来源玩家
d04874f487 2023-06-29 1523: 场地代号指当前生效的场地卡的代号,或者海神的巫女等卡把场地变化效果的值
d04874f487 2023-06-29 1524: 来源玩家指当前生效的场地卡的控制者,或者海神的巫女等卡的控制者
d04874f487 2023-06-29 1525: 
d04874f487 2023-06-29 1526: ●bool Duel.IsEnvironment(int code[, int player=PLAYER_ALL, int loc = LOCATION_FZONE + LOCATION_ONFIELD])
d04874f487 2023-06-29 1527: 检查场地代号是否是code [,来源玩家是否是 player][,生效区域是否在 loc 内]
d04874f487 2023-06-29 1528: 场地代号指当前生效的场地卡的代号,或者海神的巫女把场地变化效果的值
d04874f487 2023-06-29 1529: 来源玩家指当前生效的场地卡的控制者,或者海神的巫女等卡的控制者
d04874f487 2023-06-29 1530: 
d04874f487 2023-06-29 1531: ●void Duel.Win(int player, int win_reason)
d04874f487 2023-06-29 1532: 当前效果处理完令player以win_reason决斗胜利
d04874f487 2023-06-29 1533: 
d04874f487 2023-06-29 1534: ●int Duel.Draw(int player, int count, int reason)
d04874f487 2023-06-29 1535: 让玩家player以原因reason抽count张卡,返回实际抽的卡的数量
d04874f487 2023-06-29 1536: 如果reason含有REASON_RULE则此次抽卡不受“不能抽卡”的效果的影响
d04874f487 2023-06-29 1537: 
d04874f487 2023-06-29 1538: ●int Duel.Damage(int player, int value, int reason[, bool is_step=false])
d04874f487 2023-06-29 1539: 以reason原因给与玩家player造成value的伤害,返回实际收到的伤害值
d04874f487 2023-06-29 1540: 如果受到伤害变成回复等效果的影响时,返回值为0.
d04874f487 2023-06-29 1541: is_step为true则是伤害/恢复LP过程的分解,需要调用Duel.RDComplete()触发时点
d04874f487 2023-06-29 1542: 
d04874f487 2023-06-29 1543: ●int Duel.Recover(int player, int value, int reason[, bool is_step=false])
d04874f487 2023-06-29 1544: 以reason原因使玩家player回复value的LP,返回实际的回复值
d04874f487 2023-06-29 1545: 如果受到回复变成伤害等效果的影响时,返回值为0.
d04874f487 2023-06-29 1546: is_step为true则是伤害/恢复LP过程的分解,需要调用Duel.RDComplete()触发时点
d04874f487 2023-06-29 1547: 
d04874f487 2023-06-29 1548: ●void Duel.RDComplete()
d04874f487 2023-06-29 1549: 在调用Duel.Damage/Duel.Recover时,若is_step参数为true,则需调用此函数触发时点
d04874f487 2023-06-29 1550: 
d04874f487 2023-06-29 1551: ●bool Duel.Equip(int player, Card c1, Card c2[, bool up=true, bool is_step=false])
d04874f487 2023-06-29 1552: 把c1作为玩家player的装备卡装备给c2,返回值表示是否成功
d04874f487 2023-06-29 1553: up=false则保持装备卡之前的表示形式
d04874f487 2023-06-29 1554: is_step=true则是装备过程的分解,需要配合Duel.EquipComplete使用
d04874f487 2023-06-29 1555: 
d04874f487 2023-06-29 1556: ●void Duel.EquipComplete()
d04874f487 2023-06-29 1557: 在调用Duel.Equip时,若is_step参数为true,则需调用此函数触发时点
d04874f487 2023-06-29 1558: 
d04874f487 2023-06-29 1559: ●bool Duel.GetControl(Card|Group targets, int player[, int reset_phase=0, int reset_count=0, int zone=0xff])
d04874f487 2023-06-29 1560: 让玩家 player [直到 reset_count 次 reset_phase 时][在区域 zone]得到 targets 的控制权,返回值表示是否成功
d04874f487 2023-06-29 1561: reset_phase ,reset_count 若要使用,必须都用
d04874f487 2023-06-29 1562: PHASE_DRAW			=0x01	--抽卡阶段
d04874f487 2023-06-29 1563: PHASE_STANDBY		=0x02	--准备阶段
d04874f487 2023-06-29 1564: PHASE_MAIN1			=0x04	--主要阶段1
d04874f487 2023-06-29 1565: PHASE_BATTLE_START	=0x08	--战斗阶段开始
d04874f487 2023-06-29 1566: PHASE_BATTLE_STEP	=0x10	--战斗步驟
d04874f487 2023-06-29 1567: PHASE_DAMAGE		=0x20	--伤害步驟
d04874f487 2023-06-29 1568: PHASE_DAMAGE_CAL	=0x40	--伤害计算时
d04874f487 2023-06-29 1569: PHASE_BATTLE		=0x80	--战斗阶段結束
d04874f487 2023-06-29 1570: PHASE_MAIN2			=0x100	--主要阶段2
d04874f487 2023-06-29 1571: PHASE_END			=0x200	--结束阶段
d04874f487 2023-06-29 1572: 
d04874f487 2023-06-29 1573: ●bool Duel.SwapControl(Card|Group targets1, Card|Group targets2[, int reset_phase=0, int reset_count=0])
d04874f487 2023-06-29 1574: 交换targets1与targets2的控制权,返回值表示是否成功
d04874f487 2023-06-29 1575: 第三个第四个参数同 Duel.GetControl
d04874f487 2023-06-29 1576: 
d04874f487 2023-06-29 1577: ●bool Duel.CheckLPCost(int player, int cost)
d04874f487 2023-06-29 1578: 检查玩家player是否能支付cost点lp
d04874f487 2023-06-29 1579: 
d04874f487 2023-06-29 1580: ●void Duel.PayLPCost(int player, int cost)
d04874f487 2023-06-29 1581: 让玩家player支付cost点lp
d04874f487 2023-06-29 1582: 
d04874f487 2023-06-29 1583: ●int Duel.DiscardDeck(int player, int count, int reason)
d04874f487 2023-06-29 1584: 以原因reason把玩家player的卡组最上端count张卡送去墓地,返回实际转移的数量
d04874f487 2023-06-29 1585: 
d04874f487 2023-06-29 1586: ●int Duel.DiscardHand(int player, function f, int min, int max, int reason, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1587: 过滤函数让玩家player选择并以reason原因丢弃满足筛选条件f兵不等于ex的min-max张手卡
d04874f487 2023-06-29 1588: 第7个参数开始为额外参数
d04874f487 2023-06-29 1589: 
d04874f487 2023-06-29 1590: ●void Duel.DisableShuffleCheck([bool disable=true])
d04874f487 2023-06-29 1591: 使下一个操作不检查是否需要洗切卡组或手卡
d04874f487 2023-06-29 1592: 注:如果不调用此函数,
d04874f487 2023-06-29 1593: 除了调用Duel.DiscardDeck和Duel.Draw之外从卡组中取出卡或者把卡加入手卡
d04874f487 2023-06-29 1594: 或者把卡加入卡组(非最上端或最底端)时,系统会自动在效果处理结束时洗切卡组或手卡
d04874f487 2023-06-29 1595: 如果不希望如此,比如从卡组顶端除外一张卡等操作,那么需要调用此函数
d04874f487 2023-06-29 1596: 此函数仅保证紧接着的一次操作不会进行洗卡检测
d04874f487 2023-06-29 1597: 
d04874f487 2023-06-29 1598: ●void Duel.ShuffleDeck(int player)
d04874f487 2023-06-29 1599: 手动洗切玩家player的卡组
d04874f487 2023-06-29 1600: 注:会重置洗卡检测的状态
d04874f487 2023-06-29 1601: 
d04874f487 2023-06-29 1602: ●void Duel.ShuffleExtra(int player)
d04874f487 2023-06-29 1603: 手动洗切玩家player的额外卡组
d04874f487 2023-06-29 1604: 
d04874f487 2023-06-29 1605: ●void Duel.ShuffleHand(int player)
d04874f487 2023-06-29 1606: 手动洗切玩家player的手卡
d04874f487 2023-06-29 1607: 注:会重置洗卡检测的状态
d04874f487 2023-06-29 1608: 
d04874f487 2023-06-29 1609: ●void Duel.ShuffleSetCard(Group g)
d04874f487 2023-06-29 1610: 洗切覆盖的卡片组 g (实例:魔术礼帽),若g中有表侧表示的卡,则此函数无效
d04874f487 2023-06-29 1611: 此函数现在可以洗切魔陷区的覆盖卡
d04874f487 2023-06-29 1612: 
d04874f487 2023-06-29 1613: ●void Duel.ChangeAttacker(Card c[, bool ignore_count=false])
d04874f487 2023-06-29 1614: 将攻击怪兽变为c
d04874f487 2023-06-29 1615: 若 ignore_count=true 则原来的攻击怪兽不视为攻击过
d04874f487 2023-06-29 1616: 
d04874f487 2023-06-29 1617: ●bool Duel.ChangeAttackTarget(Card c|nil)
d04874f487 2023-06-29 1618: 将攻击对象变为c,c为nil表示直接攻击,返回值表示是否成功转移攻击对象
d04874f487 2023-06-29 1619: 
d04874f487 2023-06-29 1620: ●void Duel.CalculateDamage(Card c1, Card c2[, bool new_attack=false])
d04874f487 2023-06-29 1621: 令c1与c2进行战斗伤害计算(c1 攻击 c2)
d04874f487 2023-06-29 1622: 若 new_attack=true 则视为 攻击的卡进行过攻击宣言(?)
d04874f487 2023-06-29 1623: 
d04874f487 2023-06-29 1624: ●int Duel.GetBattleDamage(int player)
d04874f487 2023-06-29 1625: 返回玩家player在本次战斗中受到的伤害
d04874f487 2023-06-29 1626: 
d04874f487 2023-06-29 1627: ●void Duel.ChangeBattleDamage(int player, int value[, bool check=true])
d04874f487 2023-06-29 1628: 把玩家player在本次战斗中受到的伤害变成value,若 check=false 则原本战斗伤害就算为0也改变伤害
d04874f487 2023-06-29 1629: 
d04874f487 2023-06-29 1630: ●void Duel.ChangeTargetCard(int chainc, Group g)
d04874f487 2023-06-29 1631: 把连锁chainc的对象换成g
d04874f487 2023-06-29 1632: 
d04874f487 2023-06-29 1633: ●void Duel.ChangeTargetPlayer(int chainc, in player)
d04874f487 2023-06-29 1634: 把连锁chainc的对象玩家换成player
d04874f487 2023-06-29 1635: 
d04874f487 2023-06-29 1636: ●void Duel.ChangeTargetParam(int chainc, int param)
d04874f487 2023-06-29 1637: 把连锁chainc的参数换成param
d04874f487 2023-06-29 1638: 
d04874f487 2023-06-29 1639: ●void Duel.BreakEffect()
d04874f487 2023-06-29 1640: 中断当前效果,使之后的效果处理视为不同时处理,此函数会造成错时点
d04874f487 2023-06-29 1641: 
d04874f487 2023-06-29 1642: ●void Duel.ChangeChainOperation(int chainc, function f)
d04874f487 2023-06-29 1643: 把连锁chainc的效果的处理函数换成f,用于实现“把效果变成”等的效果
d04874f487 2023-06-29 1644: f(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 1645: 
d04874f487 2023-06-29 1646: ●bool Duel.NegateActivation(int chainc)
d04874f487 2023-06-29 1647: 使连锁chainc的发动无效,返回值表示是否成功
d04874f487 2023-06-29 1648: 
d04874f487 2023-06-29 1649: ●bool Duel.NegateEffect(int chainc)
d04874f487 2023-06-29 1650: 使连锁chainc的效果无效,返回值表示是否成功
d04874f487 2023-06-29 1651: 
d04874f487 2023-06-29 1652: ●void Duel.NegateRelatedChain(Card c, int reset)
d04874f487 2023-06-29 1653: 使和卡片c有关的连锁都无效化,发生reset事件则重置,reset 默认包含 RESET_CHAIN
d04874f487 2023-06-29 1654: 
d04874f487 2023-06-29 1655: ●void Duel.NegateSummon(Card|Group targets)
d04874f487 2023-06-29 1656: 使正在召唤·反转召唤·特殊召唤的targets的召唤无效
d04874f487 2023-06-29 1657: 
d04874f487 2023-06-29 1658: ●void Duel.IncreaseSummonedCount([Card c])
d04874f487 2023-06-29 1659: 手动增加1次玩家[对于卡片c]的已经通常召唤过的次数
d04874f487 2023-06-29 1660: 
d04874f487 2023-06-29 1661: ●bool Duel.CheckSummonedCount([Card c])
d04874f487 2023-06-29 1662: 检查回合玩家本回合是否还能通常召唤[卡片c]
d04874f487 2023-06-29 1663: 
d04874f487 2023-06-29 1664: ●int Duel.GetLocationCount(int player, int location[, int use_player, int reason = LOCATION_REASON_TOFIELD, int zone=0xff])
d04874f487 2023-06-29 1665: 返回玩家player的场上location可用的[区域 zone 里的]空格数
d04874f487 2023-06-29 1666: location只能是LOCATION_MZONE或者LOCATION_SZONE
d04874f487 2023-06-29 1667: reason为LOCATION_REASON_TOFIELD或LOCATION_REASON_CONTROL
d04874f487 2023-06-29 1668: ##第三个第四个额外参数与凯撒斗技场等限制格子的效果有关
d04874f487 2023-06-29 1669: 
d04874f487 2023-06-29 1670: ●int Duel.GetMZoneCount(int player[, Group|Card targets, int use_player, int reason = LOCATION_REASON_TOFIELD, int zone=0xff])
d04874f487 2023-06-29 1671: 返回玩家player场上[targets 离开后]可用的[区域 zone 里的]怪兽区数量
d04874f487 2023-06-29 1672: ##第三个第四个额外参数与凯撒斗技场等限制格子的效果有关
d04874f487 2023-06-29 1673: 
d04874f487 2023-06-29 1674: ●int Duel.GetLocationCountFromEx(int player[, int reason_player=player, Group|Card targets|nil, Card sc, int zone=0xff])
d04874f487 2023-06-29 1675: 返回玩家player场上[假如因玩家 reason_player 的原因让 targets 离场后,把卡片 sc 在 zone 区域特殊召唤]可用的 能让额外卡组的怪兽 出场的空格数
d04874f487 2023-06-29 1676: 
d04874f487 2023-06-29 1677: ●int Duel.GetUsableMZoneCount(int player[, int use_player])
d04874f487 2023-06-29 1678: 返回玩家player场上[对于 use_player 来说]可用的怪兽区数量(?)
d04874f487 2023-06-29 1679: 
d04874f487 2023-06-29 1680: ●Group Duel.GetLinkedGroup(int player, int s_range, int o_range)
d04874f487 2023-06-29 1681: 返回以玩家player来看的 s_range 和 o_range 区域的处于连接状态的卡片组[其实只要后面2个参数不为0就行,只要不为0,都会变成LOCATION_MZONE](?)
d04874f487 2023-06-29 1682: 
d04874f487 2023-06-29 1683: ●int Duel.GetLinkedGroupCount(int player, int s_range, int o_range)
d04874f487 2023-06-29 1684: 返回以玩家player来看的 s_range 和 o_range 区域的处于连接状态的卡片的数量(?)
d04874f487 2023-06-29 1685: 
d04874f487 2023-06-29 1686: ●int Duel.GetLinkedZone(int player)
d04874f487 2023-06-29 1687: 返回以玩家player来看的所有连接区域
d04874f487 2023-06-29 1688: 
d04874f487 2023-06-29 1689: ●Card Duel.GetFieldCard(int player, int location, int seq)
d04874f487 2023-06-29 1690: 返回玩家player的场上位于location序号为seq的卡,常用于获得场地区域·灵摆区域的卡
d04874f487 2023-06-29 1691: 注:召唤·反转召唤·特殊召唤 之际 的卡无法获取
d04874f487 2023-06-29 1692: 
d04874f487 2023-06-29 1693: ●bool Duel.CheckLocation(int player, int location, int seq)
d04874f487 2023-06-29 1694: 检查玩家player的场上位于location序号为seq的空格是否可用
d04874f487 2023-06-29 1695: 
d04874f487 2023-06-29 1696: ●int Duel.GetCurrentChain()
d04874f487 2023-06-29 1697: 返回当前正在处理的连锁序号
d04874f487 2023-06-29 1698: 
d04874f487 2023-06-29 1699: ●... Duel.GetChainInfo(int chainc, ...)
d04874f487 2023-06-29 1700: 返回连锁chainc的信息,如果chainc=0,则返回当前正在处理的连锁的信息
d04874f487 2023-06-29 1701: 此函数根据传入的参数个数按顺序返回相应数量的返回值参数可以是:
d04874f487 2023-06-29 1702: CHAININFO_CHAIN_COUNT               连锁序号
d04874f487 2023-06-29 1703: CHAININFO_TRIGGERING_EFFECT         连锁的效果
d04874f487 2023-06-29 1704: CHAININFO_TRIGGERING_PLAYER         连锁的玩家
d04874f487 2023-06-29 1705: CHAININFO_TRIGGERING_CONTROLER      连锁发生位置所属玩家
d04874f487 2023-06-29 1706: CHAININFO_TRIGGERING_LOCATION       连锁发生位置
d04874f487 2023-06-29 1707: CHAININFO_TRIGGERING_SEQUENCE       连锁发生的位置的序号
d04874f487 2023-06-29 1708: CHAININFO_TARGET_CARDS              连锁的对象卡片组
d04874f487 2023-06-29 1709: CHAININFO_TARGET_PLAYER             连锁的对象玩家
d04874f487 2023-06-29 1710: CHAININFO_TARGET_PARAM              连锁的对象参数
d04874f487 2023-06-29 1711: CHAININFO_DISABLE_REASON            连锁被无效的原因效果
d04874f487 2023-06-29 1712: CHAININFO_DISABLE_PLAYER            连锁被无效的原因玩家
d04874f487 2023-06-29 1713: CHAININFO_CHAIN_ID                  连锁的唯一标识
d04874f487 2023-06-29 1714: CHAININFO_TYPE                      连锁卡片的类型(怪兽·魔法·陷阱)
d04874f487 2023-06-29 1715: CHAININFO_EXTTYPE                   连锁卡片的具体类型(例如同调怪兽·永续魔法·反击陷阱)
d04874f487 2023-06-29 1716: 举例:
d04874f487 2023-06-29 1717: Duel.GetChainInfo(0,CHAININFO_TRIGGERING_LOCATION,CHAININFO_TARGET_CARDS)
d04874f487 2023-06-29 1718: 将会返回当前连锁发生的位置和对象卡
d04874f487 2023-06-29 1719: 
d04874f487 2023-06-29 1720: ●Group,int,int,Effect,int,int Duel.GetChainEvent(int chainc)
d04874f487 2023-06-29 1721: 返回连锁 chainc 的相关参数,如果 chainc=0,则返回当前正在处理的连锁的相关参数
d04874f487 2023-06-29 1722: 返回6个参数,eg,ep,ev,re,r,rp
d04874f487 2023-06-29 1723: 
d04874f487 2023-06-29 1724: ●Card,... Duel.GetFirstTarget()
d04874f487 2023-06-29 1725: 返回当前连锁的所有的对象卡,一般只有一个对象时使用
d04874f487 2023-06-29 1726: ##多个对象也能使用,剩下的对象依次按顺序返回,但是很容易记错对象的顺序,所以不建议对多个对象使用
d04874f487 2023-06-29 1727: 
d04874f487 2023-06-29 1728: ●int Duel.GetCurrentPhase()
d04874f487 2023-06-29 1729: 返回当前的阶段
d04874f487 2023-06-29 1730: 
d04874f487 2023-06-29 1731: ●void Duel.SkipPhase(int player, int phase, int reset_flag, int reset_count[, int value])
d04874f487 2023-06-29 1732: 跳过玩家player的phase阶段,并在特定的阶段后reset,reset参数和效果相同
d04874f487 2023-06-29 1733: #value只对phase=PHASE_BATTLE才有用,value=1跳过战斗阶段的结束步骤,用于“变成回合结束阶段”等(招财猫王,闪光弹)
d04874f487 2023-06-29 1734: 
d04874f487 2023-06-29 1735: ●bool Duel.IsDamageCalculated()
d04874f487 2023-06-29 1736: 用于在伤害阶段检查是否已经计算了战斗伤害
d04874f487 2023-06-29 1737: 
d04874f487 2023-06-29 1738: ●Card Duel.GetAttacker()
d04874f487 2023-06-29 1739: 返回此次战斗攻击的卡
d04874f487 2023-06-29 1740: 
d04874f487 2023-06-29 1741: ●Card|nil Duel.GetAttackTarget()
d04874f487 2023-06-29 1742: 返回此次战斗被攻击的卡,如果返回nil表示是直接攻击
d04874f487 2023-06-29 1743: 
d04874f487 2023-06-29 1744: ●bool Duel.NegateAttack()
d04874f487 2023-06-29 1745: 无效此次攻击,返回值表示是否成功
d04874f487 2023-06-29 1746: 此次攻击已经被其他效果无效或导致攻击的卡不能攻击则返回false
d04874f487 2023-06-29 1747: 
d04874f487 2023-06-29 1748: ●void Duel.ChainAttack([Card c])
d04874f487 2023-06-29 1749: 使攻击卡[或卡片c]可以再进行1次攻击(比如 大开辟,破灭的女王)
d04874f487 2023-06-29 1750: 
d04874f487 2023-06-29 1751: ●void Duel.Readjust()
d04874f487 2023-06-29 1752: 刷新场上的卡的信息
d04874f487 2023-06-29 1753: 非特定情况或者不清楚原理请勿使用此函数以免形成死循环
d04874f487 2023-06-29 1754: 
d04874f487 2023-06-29 1755: ●void Duel.AdjustInstantly([Card c])
d04874f487 2023-06-29 1756: 手动刷新场上[受到卡片c影响]的卡的无效状态
d04874f487 2023-06-29 1757: 
d04874f487 2023-06-29 1758: ●Group Duel.GetFieldGroup(int player, int s, int o)
d04874f487 2023-06-29 1759: 返回以player来看的指定位置的卡,s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1760: 
d04874f487 2023-06-29 1761: ●int Duel.GetFieldGroupCount(int player, int s, int o)
d04874f487 2023-06-29 1762: 同 Duel.GetFieldGroup ,只是返回的是卡的数量
d04874f487 2023-06-29 1763: 
d04874f487 2023-06-29 1764: ●Group Duel.GetDecktopGroup(int player, int count)
d04874f487 2023-06-29 1765: 返回玩家player的卡组最上方的count张卡
d04874f487 2023-06-29 1766: 
d04874f487 2023-06-29 1767: ●Group Duel.GetExtraTopGroup(int player, int count)
d04874f487 2023-06-29 1768: 返回玩家player的额外卡组表侧表示的卡中最上方的count张卡
d04874f487 2023-06-29 1769: 
d04874f487 2023-06-29 1770: ●Group Duel.GetMatchingGroup(function f|nil, int player, int s, int o, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1771: 过滤函数,返回以player来看的指定位置满足过滤条件f并且不等于ex的卡
d04874f487 2023-06-29 1772: s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1773: 第6个参数开始为额外参数
d04874f487 2023-06-29 1774: 
d04874f487 2023-06-29 1775: ●int Duel.GetMatchingGroupCount(function f|nil, int player, int s, int o, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1776: 过滤函数,返回以player来看的指定位置满足过滤条件f并且不等于ex的卡的数量
d04874f487 2023-06-29 1777: s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1778: 第6个参数开始为额外参数
d04874f487 2023-06-29 1779: 
d04874f487 2023-06-29 1780: ●Card Duel.GetFirstMatchingCard(function f|nil, int player, int s, int o, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1781: 过滤函数,返回以player来看的指定位置满足过滤条件f并且不等于ex的第一张卡,没有则返回nil
d04874f487 2023-06-29 1782: s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1783: 第6个参数开始为额外参数
d04874f487 2023-06-29 1784: 
d04874f487 2023-06-29 1785: ●bool Duel.IsExistingMatchingCard(function f|nil, int player, int s, int o, int count, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1786: 过滤函数,检查以player来看的指定位置是否存在至少count张满足过滤条件f并且不等于ex的卡
d04874f487 2023-06-29 1787: s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1788: 第7个参数开始为额外参数
d04874f487 2023-06-29 1789: 
d04874f487 2023-06-29 1790: ●Group Duel.SelectMatchingCard(int sel_player, function f|nil, int player, int s, int o, int min, int max, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1791: 过滤函数,让玩家sel_player选择以player来看的指定位置满足过滤条件f并且不等于ex的min-max张卡
d04874f487 2023-06-29 1792: s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1793: 第9个参数开始为额外参数
d04874f487 2023-06-29 1794: 
d04874f487 2023-06-29 1795: ●Group Duel.GetReleaseGroup(int player[, bool use_hand=false])
d04874f487 2023-06-29 1796: 返回玩家player可解放(非上级召唤用)的卡片组, use_hand=true 则包括手卡
d04874f487 2023-06-29 1797: 
d04874f487 2023-06-29 1798: ●integer Duel.GetReleaseGroupCount(int player[, bool use_hand=false])
d04874f487 2023-06-29 1799: 返回玩家player可解放(非上级召唤用)的卡片数量, use_hand=true 则包括手卡
d04874f487 2023-06-29 1800: 
d04874f487 2023-06-29 1801: ●bool Duel.CheckReleaseGroup(int player, function f|nil, int count, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1802: 检查玩家player场上是否存在至少count张满足过滤条件f并且不等于ex的可解放的卡(非上级召唤用)
d04874f487 2023-06-29 1803: 第5个参数开始为额外参数
d04874f487 2023-06-29 1804: 
d04874f487 2023-06-29 1805: ●Group Duel.SelectReleaseGroup(int sel_player, function f|nil, int min, int max, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1806: 过滤函数,让玩家sel_player从场上选择min-max张不等于ex的满足条件f的可解放的卡(非上级召唤用)
d04874f487 2023-06-29 1807: 第6个参数开始为额外参数
d04874f487 2023-06-29 1808: 
d04874f487 2023-06-29 1809: ●bool Duel.CheckReleaseGroupEx(int player, function f|nil, int count, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1810: 检查玩家player场上·手卡是否存在至少count张满足过滤条件f并且不等于ex的可解放的卡(非上级召唤用)
d04874f487 2023-06-29 1811: 第5个参数开始为额外参数
d04874f487 2023-06-29 1812: 
d04874f487 2023-06-29 1813: ●Group Duel.SelectReleaseGroupEx(int player, function f|nil, int min, int max, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1814: 过滤函数,让玩家player从场上·手卡选择min-max张满足过滤条件f并且不等于ex的可解放的卡(非上级召唤用)
d04874f487 2023-06-29 1815: 第6个参数开始为额外参数
d04874f487 2023-06-29 1816: 
d04874f487 2023-06-29 1817: ●Group Duel.GetTributeGroup(Card c)
d04874f487 2023-06-29 1818: 返回场上用于通常召唤c可解放(上级召唤用)的卡片组
d04874f487 2023-06-29 1819: 
d04874f487 2023-06-29 1820: ●int Duel.GetTributeCount(Card c[, Group mg, bool ex=false])
d04874f487 2023-06-29 1821: 返回场上[或mg中]用于通常召唤c的祭品数量,ex=true则允许对方场上的怪兽(太阳神之翼神龙-球体形)
d04874f487 2023-06-29 1822: 此数量不一定等于Duel.GetTributeGroup的返回值中的卡片数量
d04874f487 2023-06-29 1823: 因为某些卡可以作为多个祭品来使用
d04874f487 2023-06-29 1824: 
d04874f487 2023-06-29 1825: ●Group Duel.CheckTribute(Card c, int min[, int max=min|nil, Group mg|nil, int toplayer=c:GetControler()|nil, int zone=0x1f|nil])
d04874f487 2023-06-29 1826: 判断场上[或mg中]是否存在用于通常召唤c[到toplayer场上的区域 zone]的min[到max]个祭品
d04874f487 2023-06-29 1827: 
d04874f487 2023-06-29 1828: ●Group Duel.SelectTribute(int player, Card c, int min, int max[, Group mg|nil, int toplayer=c:GetControler()|nil])
d04874f487 2023-06-29 1829: 让玩家player从场上[或mg中]选择用于通常召唤c的min-max个祭品,召唤到 toplayer 场上
d04874f487 2023-06-29 1830: 
d04874f487 2023-06-29 1831: ●int Duel.GetTargetCount(function f|nil, int player, int s, int o, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1832: 基本同Duel.GetMatchingGroupCount ,不同之处在于需要追加判定卡片是否能成为当前正在处理的效果的对象
d04874f487 2023-06-29 1833: 
d04874f487 2023-06-29 1834: ●bool Duel.IsExistingTarget(function f|nil, int player, int s, int o, int count, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1835: 基本同Duel.IsExistingMatchingCard ,不同之处在于需要追加判定卡片是否能成为当前正在处理的效果的对象
d04874f487 2023-06-29 1836: 
d04874f487 2023-06-29 1837: ●Group Duel.SelectTarget(int sel_player, function f|nil, int player, int s, int o, int min, int max, Card|Group ex|nil, ...)
d04874f487 2023-06-29 1838: 基本同Duel.SelectMatchingCard ,不同之处在于此函数会同时将当前正在处理的连锁的对象设置成选择的卡
d04874f487 2023-06-29 1839: 
d04874f487 2023-06-29 1840: ●Group Duel.SelectFusionMaterial(int player, Card c, Group g[, Card gc|nil, int chkf=PLAYER_NONE])
d04874f487 2023-06-29 1841: 让玩家player从g中选择一组[必须包含gc在内的]融合怪兽c的融合素材
d04874f487 2023-06-29 1842: ##根据c的种类为EFFECT_FUSION_MATERIAL的效果的Operation操作
d04874f487 2023-06-29 1843: 
d04874f487 2023-06-29 1844: ●void Duel.SetFusionMaterial(Group g)
d04874f487 2023-06-29 1845: 设置g为需要使用的融合素材
d04874f487 2023-06-29 1846: 
d04874f487 2023-06-29 1847: ●void Duel.SetSynchroMaterial(Group g)
d04874f487 2023-06-29 1848: 设置g为需要使用的同调素材
d04874f487 2023-06-29 1849: 
d04874f487 2023-06-29 1850: ●Group Duel.SelectSynchroMaterial(int player, Card c, function f1|nil, function f2|nil, int min, int max[, Card smat|nil, Group mg|nil])
d04874f487 2023-06-29 1851: 让玩家player从场上[或mg中]选择用于同调c需要的[必须包含smat在内(如果有mg~=nil则忽略此参数)]满足条件的一组素材
d04874f487 2023-06-29 1852: f1是 1 只需要满足的过滤条件,f2是 min-max 只需要满足的过滤条件
d04874f487 2023-06-29 1853: f1,f2 之中,至少有一种为调整的条件
d04874f487 2023-06-29 1854: 
d04874f487 2023-06-29 1855: ●bool Duel.CheckSynchroMaterial(Card c, function f1|nil, function f2|nil, int min, int max[, Card smat|nil, Group mg|nil])
d04874f487 2023-06-29 1856: 检查场上[或mg中]是否存在一组[必须包括smat在内的(如果有mg~=nil则忽略此参数)]满足条件的卡作为同调召唤c的素材
d04874f487 2023-06-29 1857: f1是 1 只需要满足的过滤条件,f2是 min-max 只需要满足的过滤条件
d04874f487 2023-06-29 1858: f1,f2 之中,至少有一种为调整的条件
d04874f487 2023-06-29 1859: 
d04874f487 2023-06-29 1860: ●Group Duel.SelectTunerMaterial(int player, Card c, Card tuner, function f1|nil, function f2|nil, int min, int max[, Group mg|nil])
d04874f487 2023-06-29 1861: 让玩家从场上[或mg中]选择用于同调c需要的满足条件的以tuner作为调整的min-max张卡的一组素材
d04874f487 2023-06-29 1862: f1是 1 只需要满足的过滤条件,f2是 min-max 只需要满足的过滤条件
d04874f487 2023-06-29 1863: 
d04874f487 2023-06-29 1864: ●bool Duel.CheckTunerMaterial(Card c, Card tuner, function f1|nil, function f2|nil, int min, int max[, Group mg|nil])
d04874f487 2023-06-29 1865: 检查场上[或mg中]是否存在一组以tuner作为调整,并且满足条件的卡作为同调召唤c的素材
d04874f487 2023-06-29 1866: f1是 1 只需要满足的过滤条件,f2是 min-max 只需要满足的过滤条件
d04874f487 2023-06-29 1867: 
d04874f487 2023-06-29 1868: ●Group Duel.GetRitualMaterial(int player)
d04874f487 2023-06-29 1869: 返回玩家player可用的用于仪式召唤素材的卡片组
d04874f487 2023-06-29 1870: 包含手上,场上可解放的以及墓地的仪式魔人等卡
d04874f487 2023-06-29 1871: 
d04874f487 2023-06-29 1872: ●void Duel.ReleaseRitualMaterial(Group g)
d04874f487 2023-06-29 1873: 解放仪式用的素材g,如果是墓地的仪式魔人等卡则除外
d04874f487 2023-06-29 1874: 
d04874f487 2023-06-29 1875: ●Group Duel.GetFusionMaterial(int player)
d04874f487 2023-06-29 1876: 返回玩家player可用的用于融合召唤素材的卡片组
d04874f487 2023-06-29 1877: 包含手卡·场上的怪兽的以及受 EFFECT_EXTRA_FUSION_MATERIAL 影响的卡
d04874f487 2023-06-29 1878: 
d04874f487 2023-06-29 1879: ●void Duel.SetSelectedCard(Card|Group cards)
d04874f487 2023-06-29 1880: 将准备由Duel.GrabSelectedCard读取的卡片/卡片组设置为cards。
d04874f487 2023-06-29 1881: 单独使用没有意义,要配合Duel.GrabSelectedCard来读取。
d04874f487 2023-06-29 1882: 用于多个函数先后使用,又无法相互传递数据时的参数传递。
d04874f487 2023-06-29 1883: 
d04874f487 2023-06-29 1884: ●void Duel.SetTargetCard(Card|Group targets)
d04874f487 2023-06-29 1885: 把当前正在处理的连锁的对象设置成targets
d04874f487 2023-06-29 1886: 注,这里的对象指的的广义的对象,包括不取对象的效果可能要处理的对象
d04874f487 2023-06-29 1887: 
d04874f487 2023-06-29 1888: ●void Duel.ClearTargetCard()
d04874f487 2023-06-29 1889: 把当前正在处理的连锁的对象全部清除
d04874f487 2023-06-29 1890: 
d04874f487 2023-06-29 1891: ●void Duel.SetTargetPlayer(int player)
d04874f487 2023-06-29 1892: 把当前正在处理的连锁的对象玩家设置成player
d04874f487 2023-06-29 1893: 
d04874f487 2023-06-29 1894: ●void Duel.SetTargetParam(inte param)
d04874f487 2023-06-29 1895: 把当前正在处理的连锁的对象参数设置成param
d04874f487 2023-06-29 1896: 
d04874f487 2023-06-29 1897: ●void Duel.SetOperationInfo(int chainc, int category, Card|Group targets, int count, int target_player, int target_param)
d04874f487 2023-06-29 1898: 设置当前处理的连锁的操作信息此操作信息包含了效果处理中确定要处理的效果分类
d04874f487 2023-06-29 1899: 比如潜行狙击手需要设置CATEGORY_DICE,但是不能设置CATEGORY_DESTROY,因为不确定
d04874f487 2023-06-29 1900: 对于破坏效果,targets需要设置成发动时可能成为连锁的影响对象的卡,
d04874f487 2023-06-29 1901: 并设置count为发动时确定的要处理的卡的数量
d04874f487 2023-06-29 1902: 比如黑洞发动时,targets需要设定为场上的所有怪兽,count设置成场上的怪的数量
d04874f487 2023-06-29 1903: 对于需要移动卡片位置的CATEGORY_SPECIAL_SUMMON,CATEGORY_TOHAND,CATEGORY_TODECK等分类,
d04874f487 2023-06-29 1904: 如果要处理的卡是确定的(比如取对象),则设置targets为这些卡,count为数量,
d04874f487 2023-06-29 1905: 如果要处理的卡是不确定的(效果处理时才能确定,一般是不取对象的效果),
d04874f487 2023-06-29 1906: 	则设置targets为nil,count为预计要处理的卡的数量,
d04874f487 2023-06-29 1907: 	target_player为预计要处理的卡的持有者(不确定就为0)
d04874f487 2023-06-29 1908: 	target_param为预计要处理的卡的位置
d04874f487 2023-06-29 1909: 例如增援:SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
d04874f487 2023-06-29 1910: 操作信息用于很多效果的发动的检测,例如星尘龙,王家长眠之谷等
d04874f487 2023-06-29 1911: 
d04874f487 2023-06-29 1912: ●bool[,Card|Group,int,int,int] Duel.GetOperationInfo(int chainc, int category)
d04874f487 2023-06-29 1913: 返回连锁chainc的category分类的操作信息,存在的话,则返回值为5个, chainc=0 则是表示当前连锁
d04874f487 2023-06-29 1914: 第一个返回值是false的话表示不存在该分类
d04874f487 2023-06-29 1915: 后4个返回值对应Duel.SetOperationInfo的后4个参数:Card|Group targets, int count, int target_player, int target_param
d04874f487 2023-06-29 1916: 
d04874f487 2023-06-29 1917: ●int Duel.GetOperationCount(int chainc)
d04874f487 2023-06-29 1918: 返回连锁chainc包含的操作分类的数量
d04874f487 2023-06-29 1919: 
d04874f487 2023-06-29 1920: ●bool Duel.CheckXyzMaterial(Card c, function f|nil, int lv, int min, int max, Group mg|nil)
d04874f487 2023-06-29 1921: 检查场上[或mg中]是否存在XYZ召唤c的XYZ用等级为lv的min-max个满足条件f的叠放素材
d04874f487 2023-06-29 1922: 
d04874f487 2023-06-29 1923: ●Group Duel.SelectXyzMaterial(int player, Card c, function f|nil, int lv, int min, int max[, Group mg|nil])
d04874f487 2023-06-29 1924: 让玩家player为XYZ怪兽c从场上[或mg中]选择XYZ用等级为lv的min-max个满足条件f的叠放素材
d04874f487 2023-06-29 1925: 
d04874f487 2023-06-29 1926: ●void Duel.Overlay(Card c, Card|Group ocard)
d04874f487 2023-06-29 1927: 把ocard作为c的叠放卡叠放
d04874f487 2023-06-29 1928: 
d04874f487 2023-06-29 1929: ●Group Duel.GetOverlayGroup(int player, int s, int o)
d04874f487 2023-06-29 1930: 返回以player来看的指定位置的所有叠放的卡
d04874f487 2023-06-29 1931: s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1932: 
d04874f487 2023-06-29 1933: ●int Duel.GetOverlayCount(int player, int s, int o)
d04874f487 2023-06-29 1934: 返回以player来看的指定位置的所有叠放的卡的数量
d04874f487 2023-06-29 1935: s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1936: 
d04874f487 2023-06-29 1937: ●bool Duel.CheckRemoveOverlayCard(int player, int s, int o, int count, int reason)
d04874f487 2023-06-29 1938: 检查player能否以原因reason移除以player来看的指定位置至少count张卡
d04874f487 2023-06-29 1939: s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1940: 
d04874f487 2023-06-29 1941: ●bool Duel.RemoveOverlayCard(int player, int s, int o, int min, int max, int reason)
d04874f487 2023-06-29 1942: 让player以reason原因移除以player来看的指定位置的min-max张叠放卡,返回值表示是否成功
d04874f487 2023-06-29 1943: s代表以player来看的自己的位置,o代表以player来看的对方的位置
d04874f487 2023-06-29 1944: 
d04874f487 2023-06-29 1945: ●void Duel.Hint(int hint_type, int player, int desc)
d04874f487 2023-06-29 1946: 给玩家player发送hint_type类型的消息提示,提示内容为desc
d04874f487 2023-06-29 1947: #hint_type只能为以下类型:
d04874f487 2023-06-29 1948: #HINT_SELECTMSG		将提示内容写入缓存,用于选择卡片的提示,例如Duel.SelectMatchingCard等
d04874f487 2023-06-29 1949: #HINT_OPSELECTED	向player提示“对方选择了:...”,常用于向对方玩家提示选择发动了什么效果
d04874f487 2023-06-29 1950: #HINT_CARD			此时desc应为卡号,手动显示卡片发动的动画,常用于提示不入连锁的处理
d04874f487 2023-06-29 1951: #HINT_RACE			此时desc应为种族,向player提示“对方宣言了:...”种族
d04874f487 2023-06-29 1952: #HINT_ATTRIB		此时desc应为属性,向player提示“对方宣言了:...”属性
d04874f487 2023-06-29 1953: #HINT_CODE			此时desc应为卡号,向player提示“对方宣言了:...”卡片
d04874f487 2023-06-29 1954: #HINT_NUMBER		此时desc视为单纯的数字,向player提示“对方选择了:...”数字
d04874f487 2023-06-29 1955: #HINT_MESSAGE		弹出一个对话框显示信息
d04874f487 2023-06-29 1956: #HINT_EVENT			将提示内容写入缓存,用于时点的提示信息(诱发即时效果的提示)
d04874f487 2023-06-29 1957: #HINT_EFFECT		同HINT_CARD
d04874f487 2023-06-29 1958: 
d04874f487 2023-06-29 1959: ●void Duel.HintSelection(Group g)
d04874f487 2023-06-29 1960: 手动为g显示被选为对象的动画效果,并记录这些卡被选为对象(广义的)
d04874f487 2023-06-29 1961: 
d04874f487 2023-06-29 1962: ●bool Duel.SelectEffectYesNo(int player, Card c[, int desc=95])
d04874f487 2023-06-29 1963: 让玩家player选择是否发动卡片c的效果[提示文字可以自行用desc替换,desc 用 aux.Stringid 获取]
d04874f487 2023-06-29 1964: 
d04874f487 2023-06-29 1965: ●bool Duel.SelectYesNo(int player, int desc)
d04874f487 2023-06-29 1966: 让玩家player选择是或否
d04874f487 2023-06-29 1967: 
d04874f487 2023-06-29 1968: ●int Duel.SelectOption(int player, int desc1, ...)
d04874f487 2023-06-29 1969: 让玩家选择选项,从第二个参数开始,每一个参数代表一条选项
d04874f487 2023-06-29 1970: 返回选择的选项的序号(从0开始)
d04874f487 2023-06-29 1971: 
d04874f487 2023-06-29 1972: ●void Duel.SelectSequence()
d04874f487 2023-06-29 1973:  此函数只有一个 check_action_permission 操作,不知何用
d04874f487 2023-06-29 1974: 
d04874f487 2023-06-29 1975: ●int Duel.SelectPosition(int player, Card c, int pos)
d04874f487 2023-06-29 1976: 让玩家player选择c的表示形式并返回
d04874f487 2023-06-29 1977: 
d04874f487 2023-06-29 1978: ●int Duel.SelectDisableField(int player, int count, int s, int o, int filter)
d04874f487 2023-06-29 1979: 让玩家player选择指定位置满足标记条件filter的count个可用的空格,并返回选择位置的标记
d04874f487 2023-06-29 1980: 常用于选择区域不能使用或移动怪兽格子
d04874f487 2023-06-29 1981: ##位置标记的定义如下
d04874f487 2023-06-29 1982: ##flag = 0;
d04874f487 2023-06-29 1983: ##seq为在玩家p,位置l中选择的格子序号
d04874f487 2023-06-29 1984: ##for(int32 i = 0; i < count; ++i) {
d04874f487 2023-06-29 1985: ##	flag |= 1 << (seq[i] + (p[i] == player ? 0 : 16) + (l[i] == LOCATION_MZONE ? 0 : 8));
d04874f487 2023-06-29 1986: ##}
d04874f487 2023-06-29 1987: 
d04874f487 2023-06-29 1988: ●int Duel.AnnounceRace(int player, int count, int available)
d04874f487 2023-06-29 1989: 让玩家player从可选的种族中宣言count个种族
d04874f487 2023-06-29 1990: available是所有可选种族的组合值,可以自行组合
d04874f487 2023-06-29 1991: RACE_ALL			=0x1ffffff	--全种族
d04874f487 2023-06-29 1992: RACE_WARRIOR		=0x1		--战士
d04874f487 2023-06-29 1993: RACE_SPELLCASTER	=0x2		--魔法师
d04874f487 2023-06-29 1994: RACE_FAIRY			=0x4		--天使
d04874f487 2023-06-29 1995: RACE_FIEND			=0x8		--恶魔
d04874f487 2023-06-29 1996: RACE_ZOMBIE			=0x10		--不死
d04874f487 2023-06-29 1997: RACE_MACHINE		=0x20		--机械
d04874f487 2023-06-29 1998: RACE_AQUA			=0x40		--水
d04874f487 2023-06-29 1999: RACE_PYRO			=0x80		--炎
d04874f487 2023-06-29 2000: RACE_ROCK			=0x100		--岩石
d04874f487 2023-06-29 2001: RACE_WINDBEAST		=0x200		--鸟兽
d04874f487 2023-06-29 2002: RACE_PLANT			=0x400		--植物
d04874f487 2023-06-29 2003: RACE_INSECT			=0x800		--昆虫
d04874f487 2023-06-29 2004: RACE_THUNDER		=0x1000		--雷
d04874f487 2023-06-29 2005: RACE_DRAGON			=0x2000		--龙
d04874f487 2023-06-29 2006: RACE_BEAST			=0x4000		--兽
d04874f487 2023-06-29 2007: RACE_BEASTWARRIOR	=0x8000		--兽战士
d04874f487 2023-06-29 2008: RACE_DINOSAUR		=0x10000	--恐龙
d04874f487 2023-06-29 2009: RACE_FISH			=0x20000	--鱼
d04874f487 2023-06-29 2010: RACE_SEASERPENT		=0x40000	--海龙
d04874f487 2023-06-29 2011: RACE_REPTILE		=0x80000	--爬虫类
d04874f487 2023-06-29 2012: RACE_PSYCHO			=0x100000	--念动力
d04874f487 2023-06-29 2013: RACE_DEVINE			=0x200000	--幻神兽
d04874f487 2023-06-29 2014: RACE_CREATORGOD		=0x400000	--创造神
d04874f487 2023-06-29 2015: RACE_WYRM			=0x800000	--幻龙
d04874f487 2023-06-29 2016: RACE_CYBERSE		=0x1000000	--电子界
d04874f487 2023-06-29 2017: 
d04874f487 2023-06-29 2018: ●int Duel.AnnounceAttribute(int player, int count, int available)
d04874f487 2023-06-29 2019: 让玩家player从可选的属性中宣言count个属性
d04874f487 2023-06-29 2020: available是所有可选属性的组合值,可以自行组合
d04874f487 2023-06-29 2021: ATTRIBUTE_EARTH		=0x01		--地
d04874f487 2023-06-29 2022: ATTRIBUTE_WATER		=0x02		--水
d04874f487 2023-06-29 2023: ATTRIBUTE_FIRE		=0x04		--炎
d04874f487 2023-06-29 2024: ATTRIBUTE_WIND		=0x08		--风
d04874f487 2023-06-29 2025: ATTRIBUTE_LIGHT		=0x10		--光
d04874f487 2023-06-29 2026: ATTRIBUTE_DARK		=0x20		--暗
d04874f487 2023-06-29 2027: ATTRIBUTE_DEVINE	=0x40		--神
d04874f487 2023-06-29 2028: 
d04874f487 2023-06-29 2029: ●int Duel.AnnounceLevel(int player[, int min=1|nil, int max=12|nil, ...])
d04874f487 2023-06-29 2030: 让玩家宣言一个[min-max]等级并返回
d04874f487 2023-06-29 2031: 
d04874f487 2023-06-29 2032: ●int Duel.AnnounceCard(int player[, int type=(TYPE_MONSTER | TYPE_SPELL | TYPE_TRAP)])
d04874f487 2023-06-29 2033: 让玩家player宣言一个[type类型的]卡片代号(比如:禁止令)
d04874f487 2023-06-29 2034: 
d04874f487 2023-06-29 2035: ●int Duel.AnnounceCardFilter(int player, ...)
d04874f487 2023-06-29 2036: 让玩家player宣言一个满足条件的卡片代号,条件是额外参数,并且都是 int 类型,用于宣言某些特定范围的卡
d04874f487 2023-06-29 2037: 例如:虚空俏丽魔术师
d04874f487 2023-06-29 2038: c28776350.announce_filter={TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_NOT}
d04874f487 2023-06-29 2039: local ac=Duel.AnnounceCardFilter(tp,table.unpack(c28776350.announce_filter))
d04874f487 2023-06-29 2040: 因为主卡组里不可能存在 TYPE_FUSION, TYPE_SYNCHRO, TYPE_XYZ, TYPE_LINK 这些类型的卡,所以将它们排除在可以宣言的卡名里。
d04874f487 2023-06-29 2041: 虽然直接用 Duel.AnnounceCard 也行,但是这种写法可以避免无意义宣言
d04874f487 2023-06-29 2042: 
d04874f487 2023-06-29 2043: ●int Duel.AnnounceType(int player[, int antype=70|71|72])
d04874f487 2023-06-29 2044: 让玩家player宣言一个卡片类型(怪兽·魔法·陷阱)
d04874f487 2023-06-29 2045: 别想着直接宣言 复合类型(永续魔法 等)
d04874f487 2023-06-29 2046: 
d04874f487 2023-06-29 2047: ●int,int Duel.AnnounceNumber(int player, int number, ...)
d04874f487 2023-06-29 2048: 让玩家player宣言一个数字
d04874f487 2023-06-29 2049: 从第二个参数开始,每一个参数代表一个可宣言的数字
d04874f487 2023-06-29 2050: 第一个返回值是宣言的数字,第二个返回值是宣言数字在所有选项中的位置
d04874f487 2023-06-29 2051: 
d04874f487 2023-06-29 2052: ●int Duel.AnnounceCoin(int player[, int antype=60|61])
d04874f487 2023-06-29 2053: 让玩家player宣言硬币的正反面
d04874f487 2023-06-29 2054: 
d04874f487 2023-06-29 2055: ●... Duel.TossCoin(int player, int count)
d04874f487 2023-06-29 2056: 让玩家player投count(<=5)次硬币,返回值为count个结果,0或者1, 正面是 1,反面是0
d04874f487 2023-06-29 2057: 
d04874f487 2023-06-29 2058: ●... Duel.TossDice(int player, int count1[, int count2 = 0])
d04874f487 2023-06-29 2059: 让玩家player投count1次骰子[,1-player投count2次骰子](count1+count2<=5)
d04874f487 2023-06-29 2060: 返回值为count1+count2个结果,1-6
d04874f487 2023-06-29 2061: 
d04874f487 2023-06-29 2062: ●int Duel.RockPaperScissors([bool repeat=true])
d04874f487 2023-06-29 2063: 猜拳,若 repeat=false 则只猜一次;否则就是直到分出胜负为止。返回胜利的玩家号码
d04874f487 2023-06-29 2064: 
d04874f487 2023-06-29 2065: ●int,int,int,int,int Duel.GetCoinResult()
d04874f487 2023-06-29 2066: 返回当前投硬币的结果
d04874f487 2023-06-29 2067: 
d04874f487 2023-06-29 2068: ●int,int,int,int,int Duel.GetDiceResult()
d04874f487 2023-06-29 2069: 返回当前掷骰子的结果
d04874f487 2023-06-29 2070: 
d04874f487 2023-06-29 2071: ●void Duel.SetCoinResult(int res, ... )
d04874f487 2023-06-29 2072: 强行修改投硬币的结果为res ,最多5个参数,res只能是 0 或 1, ,其他全算作 0
d04874f487 2023-06-29 2073: 此函数用于永续的EVENT_TOSS_COIN事件中
d04874f487 2023-06-29 2074: 
d04874f487 2023-06-29 2075: ●void Duel.SetDiceResult(int res, ...)
d04874f487 2023-06-29 2076: 强行修改投骰子的结果为res ,最多5个参数,res只能是 1~255, ,其他数字全算作 1
d04874f487 2023-06-29 2077: 此函数用于永续的EVENT_TOSS_DICE事件中
d04874f487 2023-06-29 2078: 
d04874f487 2023-06-29 2079: ●Effect|nil,... Duel.IsPlayerAffectedByEffect(int player, int code)
d04874f487 2023-06-29 2080: 检查player是否受到种类为code的效果影响,如果有就返回该效果,没有则返回nil
d04874f487 2023-06-29 2081: 
d04874f487 2023-06-29 2082: ●bool Duel.IsPlayerCanDraw(int player[, int count=0])
d04874f487 2023-06-29 2083: 检查玩家player是否可以效果抽[count张]卡
d04874f487 2023-06-29 2084: 
d04874f487 2023-06-29 2085: ●bool Duel.IsPlayerCanDiscardDeck(int player, int count)
d04874f487 2023-06-29 2086: 检查玩家player是否可以把卡组顶端count张卡送去墓地
d04874f487 2023-06-29 2087: 
d04874f487 2023-06-29 2088: ●bool Duel.IsPlayerCanDiscardDeckAsCost(int player, int count)
d04874f487 2023-06-29 2089: 检查玩家player能否把卡组顶端count张卡送去墓地作为cost
d04874f487 2023-06-29 2090: 
d04874f487 2023-06-29 2091: ●bool Duel.IsPlayerCanSummon(int player[, int sumtype, Card c])
d04874f487 2023-06-29 2092: 检查玩家player是否可以通常召唤[c,以sumtype方式]
d04874f487 2023-06-29 2093: 如果需要可选参数,则必须全部使用
d04874f487 2023-06-29 2094: 仅当玩家收到“不能上级召唤”等效果的影响时返回false
d04874f487 2023-06-29 2095: 
d04874f487 2023-06-29 2096: ●bool Duel.IsPlayerCanSpecialSummon(int player[, int sumtype, int sumpos, int target_player, Card c])
d04874f487 2023-06-29 2097: 检查玩家player能否特殊召唤[c到target_player场上,以sumtype召唤方式,sumpos表示形式]
d04874f487 2023-06-29 2098: 如果需要可选参数,则必须全部使用
d04874f487 2023-06-29 2099: 
d04874f487 2023-06-29 2100: ●bool Duel.IsPlayerCanFlipSummon(int player, Card c)
d04874f487 2023-06-29 2101: 检查玩家player是否可以反转召唤c
d04874f487 2023-06-29 2102: 
d04874f487 2023-06-29 2103: ●bool Duel.IsPlayerCanSpecialSummonMonster(int player, int code[, int setcode|nil, int type|nil, int atk|nil, int def|nil, int level|nil, int race|nil, int attribute|nil, int  pos=POS_FACEUP, int target_player=player, int sumtype=0])
d04874f487 2023-06-29 2104: 检查玩家player是否可以[以sumtype 方式][以 pos 表示形式]特殊召唤 给定参数的怪兽到target_player场上
d04874f487 2023-06-29 2105: 此函数通常用于判定是否可以特招token和陷阱怪兽
d04874f487 2023-06-29 2106: 
d04874f487 2023-06-29 2107: ●bool Duel.IsPlayerCanSpecialSummonCount(int player, int count)
d04874f487 2023-06-29 2108: 检查玩家player能否特殊召唤count次
d04874f487 2023-06-29 2109: 
d04874f487 2023-06-29 2110: ●bool Duel.IsPlayerCanRelease(int player, Card c)
d04874f487 2023-06-29 2111: 检查玩家player是否能解放c
d04874f487 2023-06-29 2112: 
d04874f487 2023-06-29 2113: ●bool Duel.IsPlayerCanRemove(int player, Card c)
d04874f487 2023-06-29 2114: 检查玩家player是否能除外c
d04874f487 2023-06-29 2115: 
d04874f487 2023-06-29 2116: ●bool Duel.IsPlayerCanSendtoHand(int player, Card c)
d04874f487 2023-06-29 2117: 检查玩家是否能把c送去手卡
d04874f487 2023-06-29 2118: 
d04874f487 2023-06-29 2119: ●bool Duel.IsPlayerCanSendtoGrave(int player, Card c)
d04874f487 2023-06-29 2120: 检查玩家是否能把c送去墓地
d04874f487 2023-06-29 2121: 
d04874f487 2023-06-29 2122: ●bool Duel.IsPlayerCanSendtoDeck(int player, Card c)
d04874f487 2023-06-29 2123: 检查玩家是否能把c送去卡组
d04874f487 2023-06-29 2124: 
d04874f487 2023-06-29 2125: ●bool Duel.IsPlayerExtraSummoned(int player)
d04874f487 2023-06-29 2126: 检查玩家是否进行过额外的通常召唤
d04874f487 2023-06-29 2127: 
d04874f487 2023-06-29 2128: ●bool Duel.IsChainNegatable(int chainc)
d04874f487 2023-06-29 2129: 检查连锁chainc的发动能否被无效
d04874f487 2023-06-29 2130: 
d04874f487 2023-06-29 2131: ●bool Duel.IsChainDisablable(int chainc)
d04874f487 2023-06-29 2132: 检查连锁chainc的效果能否被无效
d04874f487 2023-06-29 2133: 
d04874f487 2023-06-29 2134: ●bool Duel.CheckChainTarget(int chainc, Card c)
d04874f487 2023-06-29 2135: 检查c是否是连锁chainc的效果的正确的对象
d04874f487 2023-06-29 2136: 
d04874f487 2023-06-29 2137: ●bool Duel.CheckChainUniqueness()
d04874f487 2023-06-29 2138: 检查当前连锁中是否存在同名卡的发动,返回true表示无同名卡
d04874f487 2023-06-29 2139: 
d04874f487 2023-06-29 2140: ●int,... Duel.GetActivityCount(int player, int activity_type, ...)
d04874f487 2023-06-29 2141: 返回player进行对应的activity_type操作的次数
d04874f487 2023-06-29 2142: activity_type为以下类型
d04874f487 2023-06-29 2143: ACTIVITY_SUMMON         =1	--召唤(不包括通常召唤的放置)
d04874f487 2023-06-29 2144: ACTIVITY_NORMALSUMMON   =2	--通常召唤(包括通常召唤的放置)
d04874f487 2023-06-29 2145: ACTIVITY_SPSUMMON       =3	--特殊召唤
d04874f487 2023-06-29 2146: ACTIVITY_FLIPSUMMON     =4	--反转召唤
d04874f487 2023-06-29 2147: ACTIVITY_ATTACK         =5	--攻击
d04874f487 2023-06-29 2148: ACTIVITY_BATTLE_PHASE   =6	--进入战斗阶段
d04874f487 2023-06-29 2149: 
d04874f487 2023-06-29 2150: ●bool Duel.CheckPhaseActivity()
d04874f487 2023-06-29 2151: 检查玩家在当前阶段是否有操作(是否处于阶段开始时,如七皇之剑)
d04874f487 2023-06-29 2152: 
d04874f487 2023-06-29 2153: ●void Duel.AddCustomActivityCounter(int counter_id, int activity_type, function f)
d04874f487 2023-06-29 2154: 设置操作类型为activity_type、代号为counter_id的计数器,放在initial_effect函数内
d04874f487 2023-06-29 2155: f为过滤函数,以Card类型为参数,返回值为false的卡片进行以下类型的操作,计数器增加1(目前最多为1)
d04874f487 2023-06-29 2156: activity_type为以下类型
d04874f487 2023-06-29 2157: ACTIVITY_SUMMON         =1	--召唤(不包括通常召唤的set)
d04874f487 2023-06-29 2158: ACTIVITY_NORMALSUMMON   =2	--通常召唤(包括通常召唤的set)
d04874f487 2023-06-29 2159: ACTIVITY_SPSUMMON       =3	--特殊召唤
d04874f487 2023-06-29 2160: ACTIVITY_FLIPSUMMON     =4	--反转召唤
d04874f487 2023-06-29 2161: ACTIVITY_ATTACK         =5	--攻击
d04874f487 2023-06-29 2162: ACTIVITY_CHAIN          =7	--发动效果
d04874f487 2023-06-29 2163: 
d04874f487 2023-06-29 2164: ●int Duel.GetCustomActivityCount(int counter_id, int player, int activity_type)
d04874f487 2023-06-29 2165: 代号为counter_id的计数器的计数,返回player进行以下操作的次数(目前最多为1)
d04874f487 2023-06-29 2166: activity_type为以下类型
d04874f487 2023-06-29 2167: ACTIVITY_SUMMON         =1	--召唤(不包括通常召唤的set)
d04874f487 2023-06-29 2168: ACTIVITY_NORMALSUMMON   =2	--通常召唤(包括通常召唤的set)
d04874f487 2023-06-29 2169: ACTIVITY_SPSUMMON       =3	--特殊召唤
d04874f487 2023-06-29 2170: ACTIVITY_FLIPSUMMON     =4	--反转召唤
d04874f487 2023-06-29 2171: ACTIVITY_ATTACK         =5	--攻击
d04874f487 2023-06-29 2172: ACTIVITY_CHAIN          =7	--发动效果
d04874f487 2023-06-29 2173: 
d04874f487 2023-06-29 2174: ●int Duel.GetBattledCount(int player)
d04874f487 2023-06-29 2175: 返回玩家player这回合战斗过的次数
d04874f487 2023-06-29 2176: 
d04874f487 2023-06-29 2177: ●bool Duel.IsAbleToEnterBP()
d04874f487 2023-06-29 2178: 检查回合玩家能否进入战斗阶段
d04874f487 2023-06-29 2179: 
d04874f487 2023-06-29 2180: #●bool Duel.VenomSwampCheck(Effect e, Card c)
d04874f487 2023-06-29 2181: #蛇毒沼泽专用。把攻击力被其效果变成0的卡片破坏
d04874f487 2023-06-29 2182: 
d04874f487 2023-06-29 2183: ●void Duel.SwapDeckAndGrave(int player)
d04874f487 2023-06-29 2184: 现世与冥界的逆转专用。把玩家player的卡组和墓地交换
d04874f487 2023-06-29 2185: 
d04874f487 2023-06-29 2186: ●void Duel.MajesticCopy(Card c1, Card c2)
d04874f487 2023-06-29 2187: 救世星龙专用。把c2记述的效果复制给c1
d04874f487 2023-06-29 2188: 强制发动的效果可以选择是否发动
d04874f487 2023-06-29 2189: 
d04874f487 2023-06-29 2190: ●int,int,.. Duel.ReadCard(int|Card target, int type, int type2, ..)
d04874f487 2023-06-29 2191: 返回卡片target(或是卡号为target的卡)的type的信息。
d04874f487 2023-06-29 2192: type可以是以下之一:
d04874f487 2023-06-29 2193: CARDDATA_CODE			1
d04874f487 2023-06-29 2194: CARDDATA_ALIAS			2
d04874f487 2023-06-29 2195: CARDDATA_SETCODE		3
d04874f487 2023-06-29 2196: CARDDATA_TYPE			4
d04874f487 2023-06-29 2197: CARDDATA_LEVEL			5
d04874f487 2023-06-29 2198: CARDDATA_ATTRIBUTE		6
d04874f487 2023-06-29 2199: CARDDATA_RACE			7
d04874f487 2023-06-29 2200: CARDDATA_ATTACK			8
d04874f487 2023-06-29 2201: CARDDATA_DEFENSE		9
d04874f487 2023-06-29 2202: CARDDATA_LSCALE			10
d04874f487 2023-06-29 2203: CARDDATA_RSCALE			11
d04874f487 2023-06-29 2204: CARDDATA_LINK_MARKER	12
d04874f487 2023-06-29 2205: 
d04874f487 2023-06-29 2206: ●int Duel.Exile(Card|Group target, int reason)
d04874f487 2023-06-29 2207: 以reason的原因把target直接消灭。返回被消灭的卡的数量。
d04874f487 2023-06-29 2208: 
d04874f487 2023-06-29 2209: ●void Duel.DisableActionCheck(bool enabled)
d04874f487 2023-06-29 2210: 打开或关闭DisableActionCheck模式。
d04874f487 2023-06-29 2211: 在DisableActionCheck模式下,可以在禁止进行决斗操作的处理(如condition以及target的chk==0的部分)进行决斗操作,不会出现Action is not allowed的报错。
d04874f487 2023-06-29 2212: 
d04874f487 2023-06-29 2213: ●void Duel.SetMetatable(Card|Group|Effect target, table mt)
d04874f487 2023-06-29 2214: 将target的元表属性设置为mt。
d04874f487 2023-06-29 2215: 此函数用途和lua内置函数setmetatable相同,只是针对YGOPro内的userdata属性而设计的。
d04874f487 2023-06-29 2216: 
d04874f487 2023-06-29 2217: ●void Duel.MoveTurnCount()
d04874f487 2023-06-29 2218: 把回合数直接向前推进1回合。此操作会改变双方的客户端显示,以及加时赛的处理。
d04874f487 2023-06-29 2219: 
d04874f487 2023-06-29 2220: ●Group Duel.GetCardsInZone(int player, int zone)
d04874f487 2023-06-29 2221: 获取以player的视野,zone区域的所有卡。
d04874f487 2023-06-29 2222: 
d04874f487 2023-06-29 2223: ●bool Duel.XyzSummonByRose(int player, Card xyzcard, Card c1, Card c2)
d04874f487 2023-06-29 2224: 用c1和c2这2张卡为素材把XYZ卡XYZ召唤。XYZ召唤时,c1的等级当作和c2相同。
d04874f487 2023-06-29 2225: 
d04874f487 2023-06-29 2226: ●void Duel.LoadScript(string filename)
d04874f487 2023-06-29 2227: 加载文件名是filename的脚本。该函数会自动在脚本目录下搜索脚本文件进行加载。
d04874f487 2023-06-29 2228: 
d04874f487 2023-06-29 2229: ●int Duel.SelectField(int player, int flag1, int flag2, int count)
d04874f487 2023-06-29 2230: 让玩家player选择场地。flag1为低位,flag2为高位,两者合并组成可选区域;count为可以选择的数量。
d04874f487 2023-06-29 2231: 返回值是选择的场地。
d04874f487 2023-06-29 2232: 
d04874f487 2023-06-29 2233: ●void Duel.LinkSummon(int player, Card pcard, Group mg|nil[, Card lcard, int minc, int maxc])
d04874f487 2023-06-29 2234: 让玩家player以mg[中除lcard以外的最少minc,最多maxc张卡]为素材将pcard连接召唤。
d04874f487 2023-06-29 2235: 
d04874f487 2023-06-29 2236: ●Card Duel.GetBattleMonster(int player)
d04874f487 2023-06-29 2237: 返回由player操控的正处于战斗中的怪兽。如果没有战斗或没有目标则会返回nil。
d04874f487 2023-06-29 2238: 
d04874f487 2023-06-29 2239: ●bool Duel.IsSummonCancelable()
d04874f487 2023-06-29 2240: 返回当前进行特殊召唤的行为是否可以回滚并撤销。
d04874f487 2023-06-29 2241: 
d04874f487 2023-06-29 2242: ●Card|Group Duel.GrabSelectedCard()
d04874f487 2023-06-29 2243: 返回由Duel.SetSelectedCard设置的卡片或卡片组。
d04874f487 2023-06-29 2244: 单独使用没有意义,必须先用Duel.SetSelectedCard进行设置。
d04874f487 2023-06-29 2245: 
d04874f487 2023-06-29 2246: ●void Duel.ClearOperationInfo(int chainc)
d04874f487 2023-06-29 2247: 将chainc的OperationInfo清除。用于如堕天使复制并使用墓地效果之类,卡片效果不应当被响应的情况。
d04874f487 2023-06-29 2248: 
d04874f487 2023-06-29 2249: ●bool Duel.IsPlayerCanMSet(int player[, int sumtype, Card scard])
d04874f487 2023-06-29 2250: 检查玩家player是否可以[以sumtype的召唤方式将scard]盖放。
d04874f487 2023-06-29 2251: 如果要加入后面的可选参数,则所有两个可选参数都必须加上。
d04874f487 2023-06-29 2252: 
d04874f487 2023-06-29 2253: ●bool Duel.IsPlayerCanSSet(int player[, Card scard])
d04874f487 2023-06-29 2254: 检查玩家player是否可以[将scard]盖放。
d04874f487 2023-06-29 2255: 
d04874f487 2023-06-29 2256: ●bool Duel.IsPlayerCanAdditionalSummon(int player)
d04874f487 2023-06-29 2257: 检查玩家player是否有通常召唤外的召唤次数。
d04874f487 2023-06-29 2258: 
d04874f487 2023-06-29 2259: ========== aux ============
d04874f487 2023-06-29 2260: ##只说明常用的函数
d04874f487 2023-06-29 2261: ●int aux.Stringid(int code, int id)
d04874f487 2023-06-29 2262: 用于索引卡号为code的卡片第id个(从0开始)效果提示
d04874f487 2023-06-29 2263: 
d04874f487 2023-06-29 2264: ●Card aux.Next(Group g)
d04874f487 2023-06-29 2265: 卡片组 g 的迭代器,指针会先指向第一张卡,然后每次调用这函数指向下一张卡,通常用在需要对g中的卡片进行操作的时候
d04874f487 2023-06-29 2266: 例如:
d04874f487 2023-06-29 2267: 	local g=Group.CreateGroup()
d04874f487 2023-06-29 2268: 	for tc in aux.Next(g) do
d04874f487 2023-06-29 2269: 	end
d04874f487 2023-06-29 2270: 等价于:
d04874f487 2023-06-29 2271: 	local g=Group.CreateGroup()
d04874f487 2023-06-29 2272: 	local tc=g:GetFirst()
d04874f487 2023-06-29 2273: 	while tc do
d04874f487 2023-06-29 2274: 		tc=g:GetNext()
d04874f487 2023-06-29 2275: 	end
d04874f487 2023-06-29 2276: 
d04874f487 2023-06-29 2277: ●void aux.BeginPuzzle()
d04874f487 2023-06-29 2278: 开始残局
d04874f487 2023-06-29 2279: ##此函数注册3个全局效果:
d04874f487 2023-06-29 2280: ##回合结束时玩家的基本分变成0
d04874f487 2023-06-29 2281: ##跳过抽卡阶段与准备阶段
d04874f487 2023-06-29 2282: 
d04874f487 2023-06-29 2283: ●bool aux.IsDualState(Effect e)
d04874f487 2023-06-29 2284: 检查二重怪兽e:GetHandler()是否是再度召唤状态(用于效果的Condition属性)
d04874f487 2023-06-29 2285: 常用于二重怪兽再度召唤获得的效果e的Condition属性
d04874f487 2023-06-29 2286: 
d04874f487 2023-06-29 2287: ●bool aux.IsNotDualState(Effect e)
d04874f487 2023-06-29 2288: aux.IsDualState的反义(用于效果的Condition属性)
d04874f487 2023-06-29 2289: 
d04874f487 2023-06-29 2290: ●bool aux.DualNormalCondition(Effect e)
d04874f487 2023-06-29 2291: 检查二重怪兽e:GetHandler()是否为被视为通常怪兽的状态(用于效果的Condition属性)
d04874f487 2023-06-29 2292: 
d04874f487 2023-06-29 2293: ●void aux.EnableDualAttribute(Card c)
d04874f487 2023-06-29 2294: 为c添加二重怪兽属性
d04874f487 2023-06-29 2295: 
d04874f487 2023-06-29 2296: ●void aux.EnableSpiritReturn(Card c, int event1,...)
d04874f487 2023-06-29 2297: 为c添加灵魂怪兽结束阶段回到手卡的效果(发生事件event1,...的回合,结束阶段回到手卡)
d04874f487 2023-06-29 2298: 
d04874f487 2023-06-29 2299: ●bool aux.IsUnionState(Effect e)
d04874f487 2023-06-29 2300: 检查同盟怪兽e:GetHandler()是否处于同盟装备的状态(用于效果的Condition属性)
d04874f487 2023-06-29 2301: 
d04874f487 2023-06-29 2302: ●void aux.SetUnionState(Card c)
d04874f487 2023-06-29 2303: 为c添加同盟怪兽属性
d04874f487 2023-06-29 2304: 
d04874f487 2023-06-29 2305: ●bool aux.CheckUnionEquip(Card uc, Card tc)
d04874f487 2023-06-29 2306: 检查同盟怪兽uc能否作为同盟装备在怪兽tc上
d04874f487 2023-06-29 2307: 
d04874f487 2023-06-29 2308: ●function Auxiliary.TargetEqualFunction(function f, any value, ...)
d04874f487 2023-06-29 2309: 一般用在效果注册里,返回的是一个 有 bool 返回值类型的 函数,第3个参数开始为额外参数
d04874f487 2023-06-29 2310: function Auxiliary.TargetEqualFunction(f,value,...)
d04874f487 2023-06-29 2311: 	local ext_params={...}
d04874f487 2023-06-29 2312: 	return	function(effect,target)
d04874f487 2023-06-29 2313: 				return f(target,table.unpack(ext_params))==value
d04874f487 2023-06-29 2314: 			end
d04874f487 2023-06-29 2315: end
d04874f487 2023-06-29 2316: 
d04874f487 2023-06-29 2317: ●function Auxiliary.TargetBoolFunction(function f,...)
d04874f487 2023-06-29 2318: 一般用在效果注册里,返回的是一个 有 bool 返回值类型的 函数,第2个参数开始为额外参数
d04874f487 2023-06-29 2319: function Auxiliary.TargetBoolFunction(f,...)
d04874f487 2023-06-29 2320: 	local ext_params={...}
d04874f487 2023-06-29 2321: 	return	function(effect,target)
d04874f487 2023-06-29 2322: 				return f(target,table.unpack(ext_params))
d04874f487 2023-06-29 2323: 			end
d04874f487 2023-06-29 2324: end
d04874f487 2023-06-29 2325: 
d04874f487 2023-06-29 2326: ●function aux.FilterEqualFunction(function f, any value, ...)
d04874f487 2023-06-29 2327: 用于过滤满足单一过滤条件 f ,且值为 value 的卡,,返回的是一个 有 bool 返回值类型的 函数, 第3个参数开始为额外参数
d04874f487 2023-06-29 2328: function Auxiliary.FilterEqualFunction(f,value,...)
d04874f487 2023-06-29 2329: 	local ext_params={...}
d04874f487 2023-06-29 2330: 	return	function(target)
d04874f487 2023-06-29 2331: 				return f(target,table.unpack(ext_params))==value
d04874f487 2023-06-29 2332: 			end
d04874f487 2023-06-29 2333: end
d04874f487 2023-06-29 2334: 
d04874f487 2023-06-29 2335: ●function aux.FilterBoolFunction(function f, ...)
d04874f487 2023-06-29 2336: 用于过滤满足单一过滤条件 f 的卡,,返回的是一个 有 bool 返回值类型的 函数,第2个参数开始为额外参数
d04874f487 2023-06-29 2337: function Auxiliary.FilterBoolFunction(f,...)
d04874f487 2023-06-29 2338: 	local ext_params={...}
d04874f487 2023-06-29 2339: 	return	function(target)
d04874f487 2023-06-29 2340: 				return f(target,table.unpack(ext_params))
d04874f487 2023-06-29 2341: 			end
d04874f487 2023-06-29 2342: end
d04874f487 2023-06-29 2343: 
d04874f487 2023-06-29 2344: ●function aux.Tuner(function f, ...)
d04874f487 2023-06-29 2345: 用于过滤满足单一过滤条件 f 的调整,,返回的是一个 有 bool 返回值类型的 函数,只要求是 调整怪兽的话,就写 aux.Tuner(nil)
d04874f487 2023-06-29 2346: 第2个参数开始为额外参数
d04874f487 2023-06-29 2347: 
d04874f487 2023-06-29 2348: ●function aux.NonTuner(function f, ...)
d04874f487 2023-06-29 2349: 用于过滤满足单一过滤条件 f 的调整以外的卡,,返回的是一个 有 bool 返回值类型的 函数,只要求是 调整以外的怪兽的话,就写 aux.NonTuner(nil)
d04874f487 2023-06-29 2350: 第2个参数开始为额外参数
d04874f487 2023-06-29 2351: 
d04874f487 2023-06-29 2352: ●Card|Group|Effect|int|bool|string|nil|function|table|any aux.GetValueType(any value)
d04874f487 2023-06-29 2353: 返回 value 在lua中的type
d04874f487 2023-06-29 2354: 
d04874f487 2023-06-29 2355: ●Group aux.GetMustMaterialGroup(int player , int code)
d04874f487 2023-06-29 2356: 如果 player 受到效果种类 code 影响,则返回受到影响的卡
d04874f487 2023-06-29 2357: 目前代码中涉及的code有 EFFECT_MUST_BE_SMATERIAL, EFFECT_MUST_BE_XMATERIAL, EFFECT_MUST_BE_FMATERIAL, EFFECT_MUST_BE_LMATERIAL ,都是 必须成为素材的效果
d04874f487 2023-06-29 2358: 
d04874f487 2023-06-29 2359: ●bool aux.MustMaterialCheck(Card|Group value, int player , int code)
d04874f487 2023-06-29 2360: 检查 value 中是否有 player 受到效果种类 code 影响的卡或者卡片组
d04874f487 2023-06-29 2361: 目前代码中涉及的code有 EFFECT_MUST_BE_SMATERIAL, EFFECT_MUST_BE_XMATERIAL, EFFECT_MUST_BE_FMATERIAL, EFFECT_MUST_BE_LMATERIAL ,都是 必须成为素材的检测
d04874f487 2023-06-29 2362: 
d04874f487 2023-06-29 2363: ●bool aux.MustMaterialCounterFilter(Card c, Group g)
d04874f487 2023-06-29 2364: 如果 g 中 包含 c ,则返回 false
d04874f487 2023-06-29 2365: 
d04874f487 2023-06-29 2366: ●void aux.AddSynchroProcedure(Card c, function f1|nil, function f2|nil, int minc[, int maxc=99])
d04874f487 2023-06-29 2367: 为c添加同调召唤手续
d04874f487 2023-06-29 2368: f1为 1 只满足的过滤条件,并且必须为调整;f2为 minc [~ maxc]只满足的过滤条件
d04874f487 2023-06-29 2369: 
d04874f487 2023-06-29 2370: ●void aux.AddSynchroProcedure2(Card c, function f1, function f2)
d04874f487 2023-06-29 2371: 等价于aux.AddSynchroProcedure(c,f1,f2,1,1)
d04874f487 2023-06-29 2372: 
d04874f487 2023-06-29 2373: ●void aux.AddSynchroMixProcedure(Card c, function f1|nil, function f2|nil, function f3|nil, function f4|nil, int minc, int maxc)
d04874f487 2023-06-29 2374: 为c添加同调召唤手续,
d04874f487 2023-06-29 2375: f1,f2,f3 为 1 只满足的过滤条件,f4为 minc [~ maxc]只满足的过滤条件
d04874f487 2023-06-29 2376: f1,f2,f3,f4 之中,至少有一种为调整
d04874f487 2023-06-29 2377: f2 和 f3 若为nil,则等价于aux.AddSynchroProcedure(c,f1,f4,minc[, maxc])
d04874f487 2023-06-29 2378: 
d04874f487 2023-06-29 2379: ●function aux.TuneMagicianFilter(Card c, Effect e)
d04874f487 2023-06-29 2380: 调弦之魔术师(73941492)专用,,返回的是一个 有 bool 返回值类型的 函数 f(e,c)
d04874f487 2023-06-29 2381: 
d04874f487 2023-06-29 2382: ●function aux.TuneMagicianCheckX(Card c, Group sg, Effect e)
d04874f487 2023-06-29 2383: 调弦之魔术师(73941492)专用
d04874f487 2023-06-29 2384: 
d04874f487 2023-06-29 2385: ●void aux.AddXyzProcedure(Card c, function f|nil, int lv, int ct[, function alterf|nil, int desc|nil, int maxc=ct, function op|nil])
d04874f487 2023-06-29 2386: 为c添加XYZ召唤手续
d04874f487 2023-06-29 2387: 用满足条件 f 的等级为 lv 的 ct[-maxc] 只怪兽进行叠放
d04874f487 2023-06-29 2388: 或者在单个怪兽(通常是XYZ怪兽)上叠放
d04874f487 2023-06-29 2389: alterf 为这个怪兽满足的条件,desc为描述,op为叠放时需要的操作(比如 希望皇龙)
d04874f487 2023-06-29 2390: 
d04874f487 2023-06-29 2391: ●void aux.AddXyzProcedureLevelFree(Card c, function f|nil, function gf|nil, int minc, int maxc[, function alterf|nil, int desc|nil, function op|nil])
d04874f487 2023-06-29 2392: 为c添加XYZ召唤手续
d04874f487 2023-06-29 2393: 用满足条件 f 的卡片组里,满足 gf 的 minc[-maxc] 只怪兽进行叠放,f 为必要条件,gf 为额外条件
d04874f487 2023-06-29 2394: 或者在单个怪兽(通常是XYZ怪兽)上叠放
d04874f487 2023-06-29 2395: alterf为这个怪兽满足的条件,desc为描述,op为叠放时需要的操作(比如 闪光No.0 希望之异热同心)
d04874f487 2023-06-29 2396: 
d04874f487 2023-06-29 2397: ●void aux.AddFusionProcMix(Card c, bool sub, bool insf, ...)
d04874f487 2023-06-29 2398: 为c 添加融合召唤手续
d04874f487 2023-06-29 2399: 用额外参数里的卡各1张为融合素材,额外参数的类型 可以是 function 或者 卡密(int code),传入 code 相当于传入 function(code) return c:IsFusionCode(code) end
d04874f487 2023-06-29 2400: sub表示能否使用融合代替素材,insf 为false表示必须用素材融合召唤。若这只怪兽融合召唤只能使用上述的卡进行,sub 和 insf 都要填 false
d04874f487 2023-06-29 2401: #以下融合函数这2个参数相同
d04874f487 2023-06-29 2402: 
d04874f487 2023-06-29 2403: ●void aux.AddFusionProcMixRep(Card c, bool sub, bool insf, (function f1)|(int code1), int minc, int maxc, ...)
d04874f487 2023-06-29 2404: 为c 添加融合召唤手续
d04874f487 2023-06-29 2405: 用满足f1 的怪兽 minc-maxc 只,和 额外参数里 各1只的怪兽为融合素材,
d04874f487 2023-06-29 2406: 额外参数的类型 可以是 function 或者 卡密(int code),传入 code 相当于传入 function(code) return c:IsFusionCode(code) end
d04874f487 2023-06-29 2407: 
d04874f487 2023-06-29 2408: ●void aux.AddFusionProcCode2(Card c, int code1, int code2, bool sub, bool insf)
d04874f487 2023-06-29 2409: 为c 添加融合召唤手续
d04874f487 2023-06-29 2410: 用卡号为code1和code2的2只怪兽为融合素材
d04874f487 2023-06-29 2411: 等价于 aux.AddFusionProcMix(c,sub,insf,code1,code2)
d04874f487 2023-06-29 2412: 
d04874f487 2023-06-29 2413: ●void aux.AddFusionProcCode3(Card c, int code1, int code2, int code3, bool sub, bool insf)
d04874f487 2023-06-29 2414: 为c 添加融合召唤手续
d04874f487 2023-06-29 2415: 用卡号为code1,code2,code3的3只怪兽为融合素材
d04874f487 2023-06-29 2416: 等价于 aux.AddFusionProcMix(c,sub,insf,code1,code2,code3)
d04874f487 2023-06-29 2417: 
d04874f487 2023-06-29 2418: ●void aux.AddFusionProcCode4(Card c, int code1, int code2, int code3, int code4, bool sub, bool insf)
d04874f487 2023-06-29 2419: 为c 添加融合召唤手续
d04874f487 2023-06-29 2420: 用卡号为code1,code2,code3,code4的4只怪兽为融合素材
d04874f487 2023-06-29 2421: 等价于 aux.AddFusionProcMix(c,sub,insf,code1,code2,code4)
d04874f487 2023-06-29 2422: 
d04874f487 2023-06-29 2423: ●void aux.AddFusionProcCodeRep(Card c, int code, int cc, bool sub, bool insf)
d04874f487 2023-06-29 2424: 为c 添加融合召唤手续
d04874f487 2023-06-29 2425: 用 cc 个相同的怪兽为融合素材,code为卡号
d04874f487 2023-06-29 2426: 等价于 aux.AddFusionProcMix(c,sub,insf,table.unpack(tcode)) ,tcode 是包含 cc 个 code 的表
d04874f487 2023-06-29 2427: 
d04874f487 2023-06-29 2428: ●void aux.AddFusionProcCodeRep2(Card c, int code, int minc, int maxc, bool sub, bool insf)
d04874f487 2023-06-29 2429: 为c 添加融合召唤手续
d04874f487 2023-06-29 2430: 用 minc-maxc 个相同的怪兽为融合素材,code为卡号
d04874f487 2023-06-29 2431: 等价于 aux.AddFusionProcMixRep(c,sub,insf,code1,minc,maxc)
d04874f487 2023-06-29 2432: 
d04874f487 2023-06-29 2433: ●void aux.AddFusionProcCodeFun(Card c, int code, function f, int cc, bool sub, bool insf)
d04874f487 2023-06-29 2434: 为c 添加融合召唤手续
d04874f487 2023-06-29 2435: 用卡号号为 code 的1只怪兽,和 cc 个满足条件f 的怪兽为融合素材
d04874f487 2023-06-29 2436: 等价于 aux.AddFusionProcMix(c,sub,insf,code1,table.unpack(fun)),fun 是包含 cc 个 满足条件 f 的卡的表
d04874f487 2023-06-29 2437: 
d04874f487 2023-06-29 2438: ●void aux.AddFusionProcFun2(Card c, function f1, function f2, bool insf)
d04874f487 2023-06-29 2439: 为c 添加融合召唤手续
d04874f487 2023-06-29 2440: 用满足条件 f1 与 f2 的怪兽 各1只为融合素材
d04874f487 2023-06-29 2441: 等价于 aux.AddFusionProcMix(c,false,insf,f1,f2)
d04874f487 2023-06-29 2442: 
d04874f487 2023-06-29 2443: ●void aux.AddFusionProcFunRep(Card c, function f, int cc, bool insf)
d04874f487 2023-06-29 2444: 为c 添加融合召唤手续
d04874f487 2023-06-29 2445: 用 cc 个 满足相同条件 f 的怪兽为融合素材
d04874f487 2023-06-29 2446: 等价于 aux.AddFusionProcMix(c,false,insf,table.unpack(fun)),fun 是包含 cc 个 满足条件 f 的卡的表
d04874f487 2023-06-29 2447: 
d04874f487 2023-06-29 2448: ●void aux.AddFusionProcFunRep2(Card c, function f, int minc, int maxc, bool insf)
d04874f487 2023-06-29 2449: 为c 添加融合召唤手续
d04874f487 2023-06-29 2450: 用 minc-maxc 个 满足相同条件 f 的怪兽为融合素材
d04874f487 2023-06-29 2451: 等价于 aux.AddFusionProcMixRep(c,false,insf,f,minc,maxc)
d04874f487 2023-06-29 2452: 
d04874f487 2023-06-29 2453: ●void aux.AddFusionProcFunFun(Card c, function f1, function f2, int cc, bool sub, bool insf)
d04874f487 2023-06-29 2454: 为c 添加融合召唤手续
d04874f487 2023-06-29 2455: 用满足过滤条件 f1 的1只怪兽 ,和满足过滤条件 f2 的 cc 只怪兽为融合素材
d04874f487 2023-06-29 2456: 等价于 aux.AddFusionProcMix(c,false,insf,f1,table.unpack(fun)),fun 是包含 cc 个 满足条件 f2 的卡的表
d04874f487 2023-06-29 2457: 
d04874f487 2023-06-29 2458: ●void aux.AddFusionProcFunFunRep(Card c, function f1, function f2, int minc, int maxc, bool sub, bool insf)
d04874f487 2023-06-29 2459: 为c 添加融合召唤手续
d04874f487 2023-06-29 2460: 用满足过滤条件 f1 的1只怪兽 ,和满足过滤条件 f2 的 minc-maxc 只怪兽为融合素材
d04874f487 2023-06-29 2461: 等价于 aux.AddFusionProcMixRep(c,false,insf,f2,minc,maxc,f1)
d04874f487 2023-06-29 2462: 
d04874f487 2023-06-29 2463: ●void aux.AddFusionProcCodeFunRep(Card c, int code, function f, int minc, int maxc, bool sub, bool insf)
d04874f487 2023-06-29 2464: 为c 添加融合召唤手续
d04874f487 2023-06-29 2465: 用卡号为 code 的1只怪兽 ,和满足过滤条件 f 的 minc-maxc 只怪兽为融合素材
d04874f487 2023-06-29 2466: 等价于 aux.AddFusionProcMixRep(c,sub,insf,f,minc,maxc,code1)
d04874f487 2023-06-29 2467: 
d04874f487 2023-06-29 2468: ●void aux.AddFusionProcCode2FunRep(Card c, int code1, int code2, function f, int minc, int maxc, bool sub, bool insf)
d04874f487 2023-06-29 2469: 为c 添加融合召唤手续
d04874f487 2023-06-29 2470: 用卡号为 code1,code2 的各1只怪兽 ,和满足过滤条件 f 的 minc-maxc 只怪兽为融合素材
d04874f487 2023-06-29 2471: 等价于 aux.AddFusionProcMixRep(c,sub,insf,f,minc,maxc,code1,code2)
d04874f487 2023-06-29 2472: 
d04874f487 2023-06-29 2473: ●void aux.AddFusionProcShaddoll(Card c, int attribute)
d04874f487 2023-06-29 2474: 影依融合怪兽专用,attribute 为需要的属性
d04874f487 2023-06-29 2475: 
d04874f487 2023-06-29 2476: ●void aux.AddRitualProcGreater(Card c, function filter)
d04874f487 2023-06-29 2477: 为c添加仪式召唤效果
d04874f487 2023-06-29 2478: filter 为仪式怪兽满足的条件,素材的仪式等级之和可以超过仪式怪兽的原本等级
d04874f487 2023-06-29 2479: 
d04874f487 2023-06-29 2480: ●void aux.AddRitualProcGreaterCode(Card c, int code)
d04874f487 2023-06-29 2481: 为c添加仪式召唤效果
d04874f487 2023-06-29 2482: code 为仪式怪兽卡号,素材的仪式等级之和可以超过仪式怪兽的原本等级
d04874f487 2023-06-29 2483: 等价于:aux.AddRitualProcGreater(c,aux.FilterBoolFunction(Card.IsCode,code)),并添加 fit_monster=code
d04874f487 2023-06-29 2484: 
d04874f487 2023-06-29 2485: ●void aux.AddRitualProcEqual(Card c, function filter)
d04874f487 2023-06-29 2486: 为c添加仪式召唤效果
d04874f487 2023-06-29 2487: filter 为仪式怪兽满足的条件,素材的仪式等级之和必须等于仪式怪兽的原本等级
d04874f487 2023-06-29 2488: 
d04874f487 2023-06-29 2489: ●void aux.AddRitualProcEqualCode(Card c, int code)
d04874f487 2023-06-29 2490: 为c添加仪式召唤效果
d04874f487 2023-06-29 2491: code 为仪式怪兽卡号,素材的仪式等级之和必须等于仪式怪兽的原本等级
d04874f487 2023-06-29 2492: 等价于:aux.AddRitualProcEqual(c,aux.FilterBoolFunction(Card.IsCode,code)) ,并添加 fit_monster=code
d04874f487 2023-06-29 2493: 
d04874f487 2023-06-29 2494: ●void aux.AddRitualProcEqual2(Card c, function filter)
d04874f487 2023-06-29 2495: 为c添加仪式召唤效果
d04874f487 2023-06-29 2496: filter 为仪式怪兽满足的条件,素材的仪式等级之和必须等于仪式怪兽的等级(此等级可能会因为其他卡效果改变)
d04874f487 2023-06-29 2497: 
d04874f487 2023-06-29 2498: ●void aux.AddRitualProcEqual2Code(Card c, int code)
d04874f487 2023-06-29 2499: 为c添加仪式召唤效果
d04874f487 2023-06-29 2500: code 为仪式怪兽卡号,素材的等级之和必须等于仪式怪兽的等级
d04874f487 2023-06-29 2501: 等价于:aux.AddRitualProcEqual2(c,aux.FilterBoolFunction(Card.IsCode,code)) ,并添加 fit_monster=code
d04874f487 2023-06-29 2502: 
d04874f487 2023-06-29 2503: ●void aux.AddRitualProcEqual2Code2(Card c, int code1, int code2)
d04874f487 2023-06-29 2504: 为c添加仪式召唤效果
d04874f487 2023-06-29 2505: code1,code2 为仪式怪兽卡号,素材的等级之和必须等于仪式怪兽的等级
d04874f487 2023-06-29 2506: 等价于:aux.AddRitualProcEqual2(c,aux.FilterBoolFunction(Card.IsCode,code1,code2)) ,并添加 fit_monster={code1,code2}
d04874f487 2023-06-29 2507: 
d04874f487 2023-06-29 2508: ●void aux.EnablePendulumAttribute(Card c[, active_effect=true])
d04874f487 2023-06-29 2509: 为灵摆怪兽c添加灵摆怪兽属性(灵摆召唤,灵摆卡的发动)
d04874f487 2023-06-29 2510: active_effect=false则不注册灵摆卡“卡的发动”的效果
d04874f487 2023-06-29 2511: 
d04874f487 2023-06-29 2512: ●void aux.EnableReviveLimitPendulumSummonable(Card c[, int location=0xff])
d04874f487 2023-06-29 2513: 如果 怪兽 c 从 location 灵摆召唤,也能解除苏生限制(?) (超天新龙 异色眼革命龙 (16306932))
d04874f487 2023-06-29 2514: 
d04874f487 2023-06-29 2515: ●void aux.AddLinkProcedure(Card c, function f|nil, int minc[, int maxc=99, function gf|nil])
d04874f487 2023-06-29 2516: 为c添加连接召唤手续
d04874f487 2023-06-29 2517: 用 minc-maxc 个满足过滤条件 f [的卡片组里满足过滤条件 gf ]的怪兽作为连接素材
d04874f487 2023-06-29 2518: 
d04874f487 2023-06-29 2519: ●void aux.GetLinkCount(Card c)
d04874f487 2023-06-29 2520: 返回卡片 c 作为连接素材时当做的素材数量
d04874f487 2023-06-29 2521: function Auxiliary.GetLinkCount(c)
d04874f487 2023-06-29 2522: 	if c:IsType(TYPE_LINK) and c:GetLink()>1 then
d04874f487 2023-06-29 2523: 		return 1+0x10000*c:GetLink()
d04874f487 2023-06-29 2524: 	else return 1 end
d04874f487 2023-06-29 2525: end
d04874f487 2023-06-29 2526: 
d04874f487 2023-06-29 2527: ●bool aux.IsMaterialListCode(Card c, int code])
d04874f487 2023-06-29 2528: 检测 c 是否是有卡名 code 为素材的卡
d04874f487 2023-06-29 2529: c.material
d04874f487 2023-06-29 2530: 
d04874f487 2023-06-29 2531: ●bool aux.IsMaterialListSetCard(Card c, int setcode])
d04874f487 2023-06-29 2532: 检测 c 是否是有字段 setcode 为素材的卡
d04874f487 2023-06-29 2533: c.material_setcode
d04874f487 2023-06-29 2534: 
d04874f487 2023-06-29 2535: ●bool aux.IsCodeListed(Card c, int code])
d04874f487 2023-06-29 2536: 检测 c 是否是有卡名 code 记述的卡
d04874f487 2023-06-29 2537: c.card_code_list
d04874f487 2023-06-29 2538: 
d04874f487 2023-06-29 2539: ●int aux.GetColumn(Card c, int player=0)
d04874f487 2023-06-29 2540: 返回以 player 来看的卡片 c 所在的那一列的序号,不包含 场地区域,从左到右 分别是 0~4
d04874f487 2023-06-29 2541: 
d04874f487 2023-06-29 2542: ●int aux.MZoneSequence(int seq)
d04874f487 2023-06-29 2543: 返回怪兽区的序号,从左到右 分别是 0~4 ,若在 额外怪兽区,则返回 左 1 或者 右 3
d04874f487 2023-06-29 2544: 
d04874f487 2023-06-29 2545: ●bool aux.disfilter1(Card c)
d04874f487 2023-06-29 2546: 检测是否是 可以被无效效果的 怪兽
d04874f487 2023-06-29 2547: function Auxiliary.disfilter1(c)
d04874f487 2023-06-29 2548: 	return c:IsFaceup() and not c:IsDisabled() and (not c:IsType(TYPE_NORMAL) or c:GetOriginalType()&TYPE_EFFECT~=0)
d04874f487 2023-06-29 2549: end
d04874f487 2023-06-29 2550: 
d04874f487 2023-06-29 2551: ●bool aux.bdcon(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2552: 检测 e:GetHandler() 是否和本次战斗有关,通常用于 EVENT_BATTLE_DESTROYING 的 condition
d04874f487 2023-06-29 2553: function Auxiliary.bdcon(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2554: 	local c=e:GetHandler()
d04874f487 2023-06-29 2555: 	return c:IsRelateToBattle()
d04874f487 2023-06-29 2556: end
d04874f487 2023-06-29 2557: 
d04874f487 2023-06-29 2558: ●bool aux.bdocon(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2559: 检测 e:GetHandler() 是否和本次战斗有关,通常用于 EVENT_BATTLE_DESTROYING,并且是与对方怪兽战斗 的 condition
d04874f487 2023-06-29 2560: function Auxiliary.bdocon(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2561: 	local c=e:GetHandler()
d04874f487 2023-06-29 2562: 	return c:IsRelateToBattle() and c:IsStatus(STATUS_OPPO_BATTLE)
d04874f487 2023-06-29 2563: end
d04874f487 2023-06-29 2564: 
d04874f487 2023-06-29 2565: ●bool aux.bdgcon(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2566: 检测 e:GetHandler() 是否和本次战斗有关,通常用于 EVENT_BATTLE_DESTROYING,并且战斗破坏对方怪兽送去墓地 的 condition
d04874f487 2023-06-29 2567: function Auxiliary.bdgcon(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2568: 	local c=e:GetHandler()
d04874f487 2023-06-29 2569: 	local bc=c:GetBattleTarget()
d04874f487 2023-06-29 2570: 	return c:IsRelateToBattle() and bc:IsLocation(LOCATION_GRAVE) and bc:IsType(TYPE_MONSTER)
d04874f487 2023-06-29 2571: end
d04874f487 2023-06-29 2572: 
d04874f487 2023-06-29 2573: ●bool aux.bdogcon(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2574: 检测 e:GetHandler() 是否和本次战斗有关,通常用于 EVENT_BATTLE_DESTROYING,并且是与对方怪兽战斗并战斗破坏对方怪兽送去墓地 的 condition
d04874f487 2023-06-29 2575: function Auxiliary.bdogcon(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2576: 	local c=e:GetHandler()
d04874f487 2023-06-29 2577: 	local bc=c:GetBattleTarget()
d04874f487 2023-06-29 2578: 	return c:IsRelateToBattle() and c:IsStatus(STATUS_OPPO_BATTLE) and bc:IsLocation(LOCATION_GRAVE) and bc:IsType(TYPE_MONSTER)
d04874f487 2023-06-29 2579: end
d04874f487 2023-06-29 2580: 
d04874f487 2023-06-29 2581: ●bool aux.dogcon(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2582: 检测 e:GetHandler() 是否是从自己场上被对方破坏送去墓地 SetCondition
d04874f487 2023-06-29 2583: function Auxiliary.dogcon(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2584: 	local c=e:GetHandler()
d04874f487 2023-06-29 2585: 	return c:GetPreviousControler()==tp and c:IsReason(REASON_DESTROY) and rp==1-tp
d04874f487 2023-06-29 2586: end
d04874f487 2023-06-29 2587: 
d04874f487 2023-06-29 2588: ●bool aux.exccon(Effect e)
d04874f487 2023-06-29 2589: 这张卡送去墓地的回合 不能发动这个效果 的简单写法 SetCondition
d04874f487 2023-06-29 2590: function aux.exccon(e)
d04874f487 2023-06-29 2591: 	return Duel.GetTurnCount()~=e:GetHandler():GetTurnID() or e:GetHandler():IsReason(REASON_RETURN)
d04874f487 2023-06-29 2592: end
d04874f487 2023-06-29 2593: 
d04874f487 2023-06-29 2594: ●bool aux.chainreg(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2595: 死亡魔导龙(81059524)用了此函数,其实就是相当于
d04874f487 2023-06-29 2596: function aux.chainreg(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2597: 	if e:GetHandler():GetFlagEffect(1)==0 then
d04874f487 2023-06-29 2598: 		e:GetHandler():RegisterFlagEffect(1,RESET_EVENT+RESETS_STANDARD-RESET_TURN_SET+RESET_CHAIN,0,1)
d04874f487 2023-06-29 2599: 	end
d04874f487 2023-06-29 2600: end
d04874f487 2023-06-29 2601: 
d04874f487 2023-06-29 2602: ●bool aux.imval1(Effect e, Card c)
d04874f487 2023-06-29 2603: 不会成为攻击对象的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2604: function aux.imval1(e,c)
d04874f487 2023-06-29 2605: 	return not c:IsImmuneToEffect(e)
d04874f487 2023-06-29 2606: end
d04874f487 2023-06-29 2607: 
d04874f487 2023-06-29 2608: ●bool aux.indsval(Effect e, Effect re, int rp)
d04874f487 2023-06-29 2609: 不会被自己的卡的效果破坏的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2610: function aux.indsval(e,re,rp)
d04874f487 2023-06-29 2611: 	return rp==e:GetHandlerPlayer()
d04874f487 2023-06-29 2612: end
d04874f487 2023-06-29 2613: 
d04874f487 2023-06-29 2614: ●bool aux.indoval(Effect e, Effect re, int rp)
d04874f487 2023-06-29 2615: 不会被对方的卡的效果破坏的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2616: function aux.indoval(e,re,rp)
d04874f487 2023-06-29 2617: 	return rp==1-e:GetHandlerPlayer()
d04874f487 2023-06-29 2618: end
d04874f487 2023-06-29 2619: 
d04874f487 2023-06-29 2620: ●bool aux.tgsval(Effect e, Effect re, int rp)
d04874f487 2023-06-29 2621: 不会成为自己的卡的效果对象的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2622: function aux.tgsval(e,re,rp)
d04874f487 2023-06-29 2623: 	return rp==e:GetHandlerPlayer()
d04874f487 2023-06-29 2624: end
d04874f487 2023-06-29 2625: 
d04874f487 2023-06-29 2626: ●bool aux.tgoval(Effect e, Effect re, int rp)
d04874f487 2023-06-29 2627: 不会成为对方的卡的效果对象的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2628: function aux.tgoval(e,re,rp)
d04874f487 2023-06-29 2629: 	return rp==e:GetHandlerPlayer()
d04874f487 2023-06-29 2630: end
d04874f487 2023-06-29 2631: 
d04874f487 2023-06-29 2632: ●bool aux.nzatk(Card c)
d04874f487 2023-06-29 2633: 攻击力不为0的表侧表示的怪兽的过滤函数的简单写法
d04874f487 2023-06-29 2634: function aux.nzatk(c)
d04874f487 2023-06-29 2635: 	return c:IsFaceup() and c:GetAttack()>0
d04874f487 2023-06-29 2636: end
d04874f487 2023-06-29 2637: 
d04874f487 2023-06-29 2638: ●bool aux.nzdef(Card c)
d04874f487 2023-06-29 2639: 守备力不为0的表侧表示的怪兽的过滤函数的简单写法
d04874f487 2023-06-29 2640: function aux.nzdef(c)
d04874f487 2023-06-29 2641: 	return c:IsFaceup() and c:GetDefense()>0
d04874f487 2023-06-29 2642: end
d04874f487 2023-06-29 2643: 
d04874f487 2023-06-29 2644: ●bool aux.sumreg(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2645: 妖仙兽 阎魔巳裂(39853199)和一些其他卡(49249907,93368494)用了此函数,不过此函数★意★义★不★明★。
d04874f487 2023-06-29 2646: 54109233 虽然没用此函数,但是用了一样的写法,同样是★意★义★不★明★,其实就是相当于
d04874f487 2023-06-29 2647: function aux.sumreg(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2648: 	local tc=eg:GetFirst()
d04874f487 2023-06-29 2649: 	local code=e:GetLabel()
d04874f487 2023-06-29 2650: 	while tc do
d04874f487 2023-06-29 2651: 		if tc:GetOriginalCode()==code then
d04874f487 2023-06-29 2652: 			tc:RegisterFlagEffect(code,RESET_EVENT+0x1ec0000+RESET_PHASE+PHASE_END,0,1)
d04874f487 2023-06-29 2653: 		end
d04874f487 2023-06-29 2654: 		tc=eg:GetNext()
d04874f487 2023-06-29 2655: 	end
d04874f487 2023-06-29 2656: end
d04874f487 2023-06-29 2657: 
d04874f487 2023-06-29 2658: ●bool aux.fuslimit(Effect e, Effect se, int sp, int st)
d04874f487 2023-06-29 2659: 不能用 融合召唤 以外的方式召唤(广义的) 的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2660: se 指召唤这张卡的效果, sp 是召唤的玩家, st 是召唤的类型
d04874f487 2023-06-29 2661: function aux.fuslimit(e,se,sp,st)
d04874f487 2023-06-29 2662: 	return st&SUMMON_TYPE_FUSION==SUMMON_TYPE_FUSION
d04874f487 2023-06-29 2663: end
d04874f487 2023-06-29 2664: 
d04874f487 2023-06-29 2665: ●bool aux.ritlimit(Effect e, Effect se, int sp, int st)
d04874f487 2023-06-29 2666: 不能用 仪式召唤 以外的方式召唤(广义的) 的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2667: se 指召唤这张卡的效果, sp 是召唤的玩家, st 是召唤的类型
d04874f487 2023-06-29 2668: function aux.ritlimit(e,se,sp,st)
d04874f487 2023-06-29 2669: 	return st&SUMMON_TYPE_RITUAL==SUMMON_TYPE_RITUAL
d04874f487 2023-06-29 2670: end
d04874f487 2023-06-29 2671: 
d04874f487 2023-06-29 2672: ●bool aux.synlimit(Effect e, Effect se, int sp, int st)
d04874f487 2023-06-29 2673: 不能用 同调召唤 以外的方式召唤(广义的) 的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2674: se 指召唤这张卡的效果, sp 是召唤的玩家, st 是召唤的类型
d04874f487 2023-06-29 2675: function aux.synlimit(e,se,sp,st)
d04874f487 2023-06-29 2676: 	return st&SUMMON_TYPE_SYNCHRO==SUMMON_TYPE_SYNCHRO
d04874f487 2023-06-29 2677: end
d04874f487 2023-06-29 2678: 
d04874f487 2023-06-29 2679: ●bool aux.xyzlimit(Effect e, Effect se, int sp, int st)
d04874f487 2023-06-29 2680: 不能用 XYZ召唤 以外的方式召唤(广义的) 的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2681: se 指召唤这张卡的效果, sp 是召唤的玩家, st 是召唤的类型
d04874f487 2023-06-29 2682: function aux.xyzlimit(e,se,sp,st)
d04874f487 2023-06-29 2683: 	return st&SUMMON_TYPE_XYZ==SUMMON_TYPE_XYZ
d04874f487 2023-06-29 2684: end
d04874f487 2023-06-29 2685: 
d04874f487 2023-06-29 2686: ●bool aux.penlimit(Effect e, Effect se, int sp, int st)
d04874f487 2023-06-29 2687: 不能用 灵摆召唤 以外的方式召唤(广义的) 的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2688: se 指召唤这张卡的效果, sp 是召唤的玩家, st 是召唤的类型
d04874f487 2023-06-29 2689: function aux.penlimit(e,se,sp,st)
d04874f487 2023-06-29 2690: 	return st&SUMMON_TYPE_PENDULUM==SUMMON_TYPE_PENDULUM
d04874f487 2023-06-29 2691: end
d04874f487 2023-06-29 2692: 
d04874f487 2023-06-29 2693: ●bool aux.linklimit(Effect e, Effect se, int sp, int st)
d04874f487 2023-06-29 2694: 不能用 连接召唤 以外的方式召唤(广义的) 的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2695: se 指召唤这张卡的效果, sp 是召唤的玩家, st 是召唤的类型
d04874f487 2023-06-29 2696: function aux.linklimit(e,se,sp,st)
d04874f487 2023-06-29 2697: 	return st&SUMMON_TYPE_LINK==SUMMON_TYPE_LINK
d04874f487 2023-06-29 2698: end
d04874f487 2023-06-29 2699: 
d04874f487 2023-06-29 2700: ●bool aux.damcon1(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2701: 玩家 tp 受到伤害 这个条件的简单写法,,用在效果注册里 SetCondition
d04874f487 2023-06-29 2702: function aux.damcon1(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2703: 	local e1=Duel.IsPlayerAffectedByEffect(tp,EFFECT_REVERSE_DAMAGE)
d04874f487 2023-06-29 2704: 	local e2=Duel.IsPlayerAffectedByEffect(tp,EFFECT_REVERSE_RECOVER)
d04874f487 2023-06-29 2705: 	local rd=e1 and not e2
d04874f487 2023-06-29 2706: 	local rr=not e1 and e2
d04874f487 2023-06-29 2707: 	local ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_DAMAGE)
d04874f487 2023-06-29 2708: 	if ex and (cp==tp or cp==PLAYER_ALL) and not rd and not Duel.IsPlayerAffectedByEffect(tp,EFFECT_NO_EFFECT_DAMAGE) then
d04874f487 2023-06-29 2709: 		return true
d04874f487 2023-06-29 2710: 	end
d04874f487 2023-06-29 2711: 	ex,cg,ct,cp,cv=Duel.GetOperationInfo(ev,CATEGORY_RECOVER)
d04874f487 2023-06-29 2712: 	return ex and (cp==tp or cp==PLAYER_ALL) and rr and not Duel.IsPlayerAffectedByEffect(tp,EFFECT_NO_EFFECT_DAMAGE)
d04874f487 2023-06-29 2713: end
d04874f487 2023-06-29 2714: 
d04874f487 2023-06-29 2715: ●bool aux.qlifilter(Effect e, Effect te)
d04874f487 2023-06-29 2716: 机壳怪兽通用抗性(不受原本等级·阶级比这张卡等级低的怪兽效果影响)的过滤函数的简单写法,用在效果注册里 SetValue
d04874f487 2023-06-29 2717: te 是 将要影响到 e:GetHandler() 的效果
d04874f487 2023-06-29 2718: function aux.qlifilter(e,te)
d04874f487 2023-06-29 2719: 	if te:IsActiveType(TYPE_MONSTER) and te:IsActivated() then
d04874f487 2023-06-29 2720: 		local lv=e:GetHandler():GetLevel()
d04874f487 2023-06-29 2721: 		local ec=te:GetOwner()
d04874f487 2023-06-29 2722: 		if ec:IsType(TYPE_LINK) then
d04874f487 2023-06-29 2723: 			return false
d04874f487 2023-06-29 2724: 		elseif ec:IsType(TYPE_XYZ) then
d04874f487 2023-06-29 2725: 			return ec:GetOriginalRank()<lv
d04874f487 2023-06-29 2726: 		else
d04874f487 2023-06-29 2727: 			return ec:GetOriginalLevel()<lv
d04874f487 2023-06-29 2728: 		end
d04874f487 2023-06-29 2729: 	else
d04874f487 2023-06-29 2730: 		return false
d04874f487 2023-06-29 2731: 	end
d04874f487 2023-06-29 2732: end
d04874f487 2023-06-29 2733: 
d04874f487 2023-06-29 2734: ●bool aux.gbspcon(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2735: 剑斗兽通用效果(用「剑斗兽」怪兽的效果特殊召唤)的过滤条件的简单写法,用在效果注册里 SetCondition
d04874f487 2023-06-29 2736: 2619149,4253484,31247589,42592719,65984457,78868776,  虽然写法不同,但是没问题
d04874f487 2023-06-29 2737: function aux.gbspcon(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2738: 	local st=e:GetHandler():GetSummonType()
d04874f487 2023-06-29 2739: 	return st>=(SUMMON_TYPE_SPECIAL+100) and st<(SUMMON_TYPE_SPECIAL+150)
d04874f487 2023-06-29 2740: end
d04874f487 2023-06-29 2741: 
d04874f487 2023-06-29 2742: ●bool aux.evospcon(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp)
d04874f487 2023-06-29 2743: 进化龙通用效果(用「进化虫」怪兽的效果特殊召唤)的过滤条件的简单写法,用在效果注册里 SetCondition
d04874f487 2023-06-29 2744: function aux.evospcon(e,tp,eg,ep,ev,re,r,rp)
d04874f487 2023-06-29 2745: 	local st=e:GetHandler():GetSummonType()
d04874f487 2023-06-29 2746: 	return st>=(SUMMON_TYPE_SPECIAL+150) and st<(SUMMON_TYPE_SPECIAL+180)
d04874f487 2023-06-29 2747: end
d04874f487 2023-06-29 2748: 
d04874f487 2023-06-29 2749: ●function aux.NecroValleyFilter(function f)
d04874f487 2023-06-29 2750: 根据过滤条件f返回一个新的过滤条件:满足f并且不受王家长眠之谷的影响的卡
d04874f487 2023-06-29 2751: function Auxiliary.NecroValleyFilter(f)
d04874f487 2023-06-29 2752: 	return	function(target,...)
d04874f487 2023-06-29 2753: 				return f(target,...) and not (target:IsHasEffect(EFFECT_NECRO_VALLEY) and Duel.IsChainDisablable(0))
d04874f487 2023-06-29 2754: 			end
d04874f487 2023-06-29 2755: end
d04874f487 2023-06-29 2756: 
d04874f487 2023-06-29 2757: ●bool aux.bfgcost(Effect e, int tp, Group eg, int ep, int ev, Effect re, int r, int rp, int chk)
d04874f487 2023-06-29 2758: 把这张卡除外 的过滤条件的简单写法,,用在效果注册的 cost 里
d04874f487 2023-06-29 2759: function aux.bfgcost(e,tp,eg,ep,ev,re,r,rp,chk)
d04874f487 2023-06-29 2760: 	if chk==0 then return e:GetHandler():IsAbleToRemoveAsCost() end
d04874f487 2023-06-29 2761: 	Duel.Remove(e:GetHandler(),POS_FACEUP,REASON_COST)
d04874f487 2023-06-29 2762: end
d04874f487 2023-06-29 2763: 
d04874f487 2023-06-29 2764: ●bool aux.ExceptThisCard(Effect e)
d04874f487 2023-06-29 2765: 若 e:GetHandler() 与效果 e 有联系,则返回 e:GetHandler() ,否则返回 nil
d04874f487 2023-06-29 2766: function aux.ExceptThisCard(e)
d04874f487 2023-06-29 2767: 	local c=e:GetHandler()
d04874f487 2023-06-29 2768: 	if c:IsRelateToEffect(e) then return c else return nil end
d04874f487 2023-06-29 2769: end
d04874f487 2023-06-29 2770: 
d04874f487 2023-06-29 2771: ========== Debug ==========
d04874f487 2023-06-29 2772: ●void Debug.Message(any msg)
d04874f487 2023-06-29 2773: 显示消息
d04874f487 2023-06-29 2774: 
d04874f487 2023-06-29 2775: ●Card Debug.AddCard(int code, int owner, int player, int location, int seq, int pos[, bool proc=false])
d04874f487 2023-06-29 2776: 添加卡片,将卡号为code的卡片的持有者设置为owner,以表示形式pos放置在player的场上位于location上序号为seq的格子处
d04874f487 2023-06-29 2777: proc=true则完成正规召唤程序(即解除苏生限制)
d04874f487 2023-06-29 2778: 
d04874f487 2023-06-29 2779: ●void Debug.SetPlayerInfo(int playerid, int lp, int startcount, int drawcount)
d04874f487 2023-06-29 2780: 设置玩家信息,基本分为lp,初始手卡为startcount张,每回合抽drawcount张
d04874f487 2023-06-29 2781: 在残局当中, playerid :自己=0,对方=1
d04874f487 2023-06-29 2782: 
d04874f487 2023-06-29 2783: ●void Debug.PreSummon(Card c, int sum_type[, int sum_location=0])
d04874f487 2023-06-29 2784: 设置卡片c的召唤信息:以 sum_type 方法(通常召唤、特殊召唤等)[从 sum_location]出场
d04874f487 2023-06-29 2785: 
d04874f487 2023-06-29 2786: ●bool Debug.PreEquip(Card equip_card, Card target)
d04874f487 2023-06-29 2787: 为target添加装备equip_card ,返回值表示是否成功
d04874f487 2023-06-29 2788: 
d04874f487 2023-06-29 2789: ●void Debug.PreSetTarget(Card c, Card target)
d04874f487 2023-06-29 2790: 把target选为c的永续对象
d04874f487 2023-06-29 2791: 
d04874f487 2023-06-29 2792: ●void Debug.PreAddCounter(Card c, int counter_type[, int count=0])
d04874f487 2023-06-29 2793: 为c添加count个counter_type的指示物
d04874f487 2023-06-29 2794: 
d04874f487 2023-06-29 2795: ●void Debug.ReloadFieldBegin(int flag[, int rule=3])
d04874f487 2023-06-29 2796: 以选项flag开始布局
d04874f487 2023-06-29 2797: 	flag 残局: DUEL_ATTACK_FIRST_TURN+DUEL_SIMPLE_AI
d04874f487 2023-06-29 2798: 		 大师1规则: DUEL_OBSOLETE_RULING
d04874f487 2023-06-29 2799: 	rule=4 是新大师规则
d04874f487 2023-06-29 2800: 
d04874f487 2023-06-29 2801: ●void Debug.ReloadFieldEnd()
d04874f487 2023-06-29 2802: 布局结束
d04874f487 2023-06-29 2803: 
d04874f487 2023-06-29 2804: ●void Debug.SetAIName(string name)
d04874f487 2023-06-29 2805: 设置AI的名字,最大长度 100 个字符(1个汉字2个字符)
d04874f487 2023-06-29 2806: 
d04874f487 2023-06-29 2807: ●void Debug.ShowHint(string msg)
d04874f487 2023-06-29 2808: 显示消息提示框,最大长度 1024 个字符(1个汉字2个字符)