[{"input":["{作用目标}?"],"name":"AddAp","type":"Action","doc":"+ 是正常的怒气产消,会用于正常逻辑的怒气消耗\n+ 默认目标为自己\n+ 仅使用一次,是指本次释放技能所有被勾选“仅使用一次”的addAp节点最多加一次\n","args":[{"name":"add","type":"int","desc":"点数"},{"name":"once","type":"boolean?","desc":"是否只加一次"}],"desc":"加怒气点"},{"name":"AddSkillLevel","type":"Action","doc":"+ 战斗过程增加的技能等级,可增可减\n+ 没有携带该技能时返回失败\n+ 技能等级最高可达上限,最低到1\n","args":[{"name":"skillid","type":"int","desc":"skillid"},{"name":"add","type":"lua","desc":"增加等级"}],"desc":"增加技能等级"},{"input":["变量"],"name":"AddValue","type":"Action","doc":"+ 所输入变量为空,返回失败\n+ 变量稳定加1\n","args":[{"name":"add","type":"lua?","desc":"值"}],"desc":"自增"},{"name":"AlwaysFail","type":"Decorator","doc":"+ 只能有一个子节点,多个仅执行第一个\n+ 不管子节点是否成功都返回失败\n","desc":"始终返回失败"},{"name":"AlwaysSuccess","type":"Decorator","doc":"+ 只能有一个子节点,多个仅执行第一个\n+ 不管子节点是否成功都返回成功\n","desc":"始终返回成功"},{"input":["[数组]"],"name":"ArrayRandomOne","type":"Action","doc":"+ 输入数组为空,输出变量为空\n","output":["{随机值}"],"desc":"数组随机取一值"},{"input":["[路点]","{作用单位}"],"name":"BezierCurve","type":"Action","doc":"+ 子弹专用运动曲线,人物带测\n+ 飞行过程返回正在运行,抵达返回成功,前端假象,后端瞬移,最好不要在飞行过程做碰撞\n+ 所输入路点少于两个返回失败\n","args":[{"name":"time","type":"int","desc":"时间"},{"name":"bullet","type":"boolean?","desc":"子弹"}],"desc":"贝塞尔曲线运动"},{"input":["{对象}?"],"name":"BossTalk","type":"Action","doc":"+ 使用event_level表中的事件ID(事件逻辑见事件表)\n","args":[{"name":"event_id","type":"int","desc":"事件ID"}],"desc":"BOSS对话"},{"input":["{目标}"],"name":"Break","type":"Action","doc":"+ 没有目标、怪物不可控、霸体返回失败\n+ 打断对方所有正在运行技能,会打断行为树中的LockAction(会打断被动、不会打断AI)\n+ 禁止移动(lockAction)被打断会进入待机状态\n","args":[{"name":"time","type":"lua?","desc":"时间(帧)"},{"name":"gravity","type":"boolean?","desc":"禁止重力"},{"name":"move","type":"boolean?","desc":"禁止移动"},{"name":"jump","type":"boolean?","desc":"禁止跳跃"},{"name":"face","type":"boolean?","desc":"禁止转向"},{"name":"skill1","type":"boolean?","desc":"禁止普攻"},{"name":"skill2","type":"boolean?","desc":"禁止自动技能"},{"name":"skill3","type":"boolean?","desc":"禁止主动技能"},{"name":"skill4","type":"boolean?","desc":"禁止二段跳"},{"name":"ap","type":"boolean?","desc":"无法回怒"}],"desc":"打断并设置新状态"},{"name":"BulletDie","type":"Action","doc":"+ 子弹专用,非子弹返回失败\n","desc":"子弹销毁"},{"input":["{跟随目标}"],"name":"BulletFollow","type":"Action","doc":"+ 不能在跟随过程做碰撞检测\n+ 后端为时间到时瞬移至跟随目标(本质上无实际无移动过程)【无延迟情况下强制抵达】\n+ 跟随过程返回正在运行,到达后返回成功,无目标返回失败\n","args":[{"name":"time","type":"int","desc":"时间"},{"name":"vx","type":"int?","desc":"x初速度"},{"name":"vy","type":"int?","desc":"y初速度"}],"desc":"子弹跟随"},{"input":["{目标单位}"],"name":"CanHitBack","type":"Condition","doc":"+ 目标是主角、可击退的怪物(配表)且不处于霸体状态(目前不包括机器人与召唤物)则返回成功\n+ 其他情况或没有目标时返回失败\n","desc":"是否可以击退"},{"name":"CanLaunch","type":"Condition","doc":"# 返回失败的情况:\n+ 没有携带该技能(配表)\n+ 处于CD状态\n+ 所释放技能的类型处于lockAction状态\n+ 被动技能\n+ 怒气技能需求怒气不足\n","args":[{"name":"skillid","type":"int","desc":"技能id"}],"desc":"技能是否可释放"},{"name":"CanNormalAttack","type":"Condition","doc":"+ 判定该单位所携带的所有普攻技能是否可释放\n+ 失败条件跟CanLaunch相同\n","desc":"是否可释放普通攻击"},{"input":["{目标}"],"name":"ChangeAiVars","type":"Action","doc":"+ 改变指定单位的AI行为树的变量,无目标时返回失败\n+ 变量是即时修改,若选择立即执行则强制该行为树再次执行(需要处理重复执行问题)\n","args":[{"name":"now","type":"boolean?","desc":"立即执行"}],"desc":"修改AI行为树变量"},{"name":"ChangeBulletPath","type":"Action","doc":"+ 子弹轨迹在前端与后端中存在偏差,不要做过于浮夸的轨迹与碰撞\n+ 子弹专用,其他地方返回失败\n","args":[{"name":"vx","type":"int?","desc":"x初速度"},{"name":"vy","type":"int?","desc":"y初速度"},{"name":"ax","type":"int?","desc":"x加速度"},{"name":"ay","type":"int?","desc":"y加速度"},{"name":"terrain","type":"boolean?","desc":"地形检测"}],"desc":"改变子弹轨迹"},{"name":"ChangeSkillCd","type":"Action","doc":"+ 没有携带技能返回失败,cd最低为0\n+ 不会影响当前已经进入的冷却时间\n","args":[{"name":"skillid","type":"int","desc":"skillid"},{"name":"percent","type":"lua?","desc":"千分比"},{"name":"add","type":"lua?","desc":"固定值"}],"desc":"改变技能cd"},{"name":"ChangeSkillTrigger","type":"Action","doc":"+ 调整触发类技能触发几率(直接替换表中数值)\n+ 没有携带技能时返回失败\n","args":[{"name":"skillid","type":"lua","desc":"技能id"},{"name":"t1","type":"lua?","desc":"t1"},{"name":"t2","type":"lua?","desc":"t2"},{"name":"id","type":"lua?","desc":"id"},{"name":"p","type":"lua?","desc":"p"}],"desc":"修改技能触发几率"},{"name":"ChangeSkillVars","type":"Action","doc":"+ 即将废弃\n","args":[{"name":"skillid","type":"int","desc":"技能id"}],"desc":"修改技能行为树变量"},{"name":"Check","type":"Condition","doc":"+ 做简单数值公式判定,返回成功或失败\n","args":[{"name":"value","type":"lua?","desc":"值"}],"desc":"检查True或False"},{"name":"CheckCollision","type":"Condition","doc":"+ 注意普朗克时间常量12帧,子弹实际情况下并非连续过程,速度不可过快\n+ 共享碰撞,所有同一技能的标记了的子弹共享碰撞记录\n+ 碰撞规则在子弹表中配置\n+ 返回结果为数组\n","output":["[{目标单位}]"],"args":[{"name":"type","type":"string?","desc":"单位类型"},{"name":"share_skill","type":"boolean?","desc":"共享碰撞"}],"desc":"碰撞检测"},{"name":"CheckMapLevel","type":"Condition","args":[{"name":"id","type":"int?","desc":"副本id"},{"name":"is_pvp","type":"boolean?","desc":"是否为pvp"}],"desc":"检查副本类型"},{"name":"ChildTree","type":"Decorator","doc":"+ 不能死循环(原则上不可套娃)\n+ 不可接子节点\n+ 返回子树根节点结果\n","args":[{"name":"tree","type":"string","desc":"行为树"}],"desc":"子树"},{"input":["值(int)"],"name":"Cmp","type":"Condition","doc":"+ 若值为空,返回失败\n+ 非整数类型可能会报错\n","args":[{"name":"value","type":"lua?","desc":"值"},{"name":"gt","type":"int?","desc":">"},{"name":"ge","type":"int?","desc":">="},{"name":"eq","type":"int?","desc":"=="},{"name":"le","type":"int?","desc":"<="},{"name":"lt","type":"int?","desc":"<"}],"desc":"比较值大小"},{"input":["{对象}"],"name":"CmpAttr","type":"Condition","doc":"+ 属性值使用attr表中小写英文字段\n+ 也可获取hp、ap\n","args":[{"name":"key","type":"string","desc":"字段"},{"name":"gt","type":"int?","desc":">"},{"name":"ge","type":"int?","desc":">="},{"name":"eq","type":"int?","desc":"=="},{"name":"le","type":"int?","desc":"<="},{"name":"lt","type":"int?","desc":"<"}],"desc":"比较属性值"},{"input":["{对象}"],"name":"CmpAttrPercent","type":"Condition","doc":"+ 对象默认自己\n+ 字段名只能填hp与ap\n","args":[{"name":"key","type":"string","desc":"字段(hp\/ap)"},{"name":"gt","type":"int?","desc":">"},{"name":"ge","type":"int?","desc":">="},{"name":"eq","type":"int?","desc":"=="},{"name":"le","type":"int?","desc":"<="},{"name":"lt","type":"int?","desc":"<"}],"desc":"比较属性值(千分比)"},{"input":["{对象}"],"name":"CmpHp","type":"Condition","doc":"+ 对象默认自己\n","args":[{"name":"gt","type":"int?","desc":">"},{"name":"ge","type":"int?","desc":">="},{"name":"eq","type":"int?","desc":"=="},{"name":"le","type":"int?","desc":"<="},{"name":"lt","type":"int?","desc":"<"}],"desc":"比较血量百分比"},{"name":"CmpShareHp","type":"Condition","doc":"+ 直接针对地图中的公共血量\n","args":[{"name":"gt","type":"int?","desc":">"},{"name":"ge","type":"int?","desc":">="},{"name":"eq","type":"int?","desc":"=="},{"name":"le","type":"int?","desc":"<="},{"name":"lt","type":"int?","desc":"<"}],"desc":"比较公共血量(千分比)"},{"input":["{目标}?"],"name":"CreateBuff","type":"Action","doc":"+ 原则上AI行为树不可使用\n+ BUFF效果根据分类会受到对应属性(抗性)影响(具体查表)\n+ BUFF叠加规则见表中配置,可自叠\n+ BUFF的ID必须填第一层ID,否则会当第一层ID使用\n+ 该节点所填BUFF变量(持续时间、属性千分比)将会覆盖原BUFF表中持续时间\n+ 怪物不可控会使怪物直接免疫控制分类的BUFF\n+ 作用目标默认自己\n+ 除非buffid不存在返回失败,否则永远返回成功\n+ 属性如果使用公式,需要用双号括起来,{\\[1011\\]=\"atk*2\"}\n","args":[{"name":"buffid","type":"lua","desc":"buffid"},{"name":"stack","type":"int","desc":"层数"},{"name":"time","type":"lua?","desc":"持续时间(帧)"},{"name":"attrs","type":"lua?","desc":"属性(覆盖)"},{"name":"attrs_per","type":"lua?","desc":"属性千分比(覆盖)"}],"desc":"创建Buff"},{"input":["{以目标为中心}"],"name":"CreateBullet","type":"Action","doc":"+ 先创建的子弹表现层级低于后创建的,此处先后为该节点先后(不管延时)\n+ 延迟创建不算计子弹存活时间,延迟创建后无法打断,除非死亡\n+ 不在空中创建,起始坐标点在空中返回失败\n+ 目标默认自己\n+ 不在地里创建,设定后会做地形检测\n","args":[{"name":"id","type":"int","desc":"子弹id"},{"name":"x","type":"int","desc":"x"},{"name":"y","type":"int","desc":"y"},{"name":"vx","type":"int?","desc":"x初速度"},{"name":"vy","type":"int?","desc":"y初速度"},{"name":"ax","type":"int?","desc":"x加速度"},{"name":"ay","type":"int?","desc":"y加速度"},{"name":"time","type":"int?","desc":"飞行时间"},{"name":"by_bullet","type":"boolean?","desc":"以子弹为中心"},{"name":"terrain","type":"boolean?","desc":"不在地里创建"},{"name":"nospace","type":"boolean?","desc":"不在空中创建"},{"name":"delay","type":"int?","desc":"延时"}],"desc":"创建子弹"},{"input":["{相对目标}"],"name":"CreateSummon","type":"Action","doc":"+ 与主角同向,会调整召唤物的初始朝向\n","output":["{召唤物}"],"args":[{"name":"id","type":"int","desc":"召唤物id"},{"name":"x","type":"lua?","desc":"x偏移量"},{"name":"y","type":"lua?","desc":"y偏移量"},{"name":"no_select","type":"boolean?","desc":"无法被命中"},{"name":"same_face","type":"boolean?","desc":"与主角同向"},{"name":"time","type":"lua?","desc":"持续时间"},{"name":"die_together","type":"boolean?","desc":"与主同死"}],"desc":"创建召唤物"},{"name":"DebugHitCount","type":"Action","doc":"+ 统计本单位的所以技能的伤害次数(该单位的任意行为树中)\n","desc":"测试伤害次数"},{"input":["{目标}"],"name":"DispelBuff","type":"Action","doc":"+ 驱散成功与否收到驱散几率属性影响\n+ 无目标返回失败\n+ 来源默认是技能释放者,无来源技能默认自己\n","desc":"驱散buff"},{"input":["{起始单位}?","{目标单位}"],"name":"Distance","type":"Action","doc":"+ 计算两个单位的距离\n+ 目标为空返回失败\n","output":["距离(int)"],"desc":"计算距离"},{"input":["{作用目标}?"],"name":"DropAp","type":"Action","doc":"+ 受到击退怒气抵抗属性影响,原则上不可写负\n+ 来源默认是技能释放者,无来源技能默认自己\n+ 是否生效一次,是指本次释放技能所有被勾选“仅使用一次”的addAp节点最多加一次\n","args":[{"name":"add","type":"int","desc":"点数"},{"name":"once","type":"boolean?","desc":"是否生效一次"}],"desc":"击退怒气"},{"name":"FindEnemy","type":"Condition","doc":"+ 返回单目标,判定优先级:威胁值最高,当威胁值相等时选最近那一个\n+ 没找到返回失败\n","output":["目标单位"],"args":[{"name":"x","type":"int?","desc":"x"},{"name":"y","type":"int?","desc":"y"},{"name":"w","type":"lua?","desc":"宽"},{"name":"h","type":"lua?","desc":"高"},{"name":"type","type":"string?","desc":"查找类型"},{"name":"monster_type","type":"int?","desc":"怪物类型"},{"name":"bullet","type":"boolean?","desc":"以子弹为中心"},{"name":"no_collision","type":"boolean?","desc":"忽略碰撞体积"},{"name":"self_collision","type":"boolean?","desc":"考虑自身体积"},{"name":"dis_priority","type":"boolean?","desc":"距离优先"}],"desc":"查找敌人"},{"name":"FindEnemyCanAttack","type":"Condition","doc":"+ 使用monster中的攻击范围进行判定\n+ 没找到返回失败\n","output":["{目标单位}"],"desc":"查找攻击范围内敌人"},{"name":"FindEnemyFloor","type":"Condition","doc":"+ 找当前平台怪物,不包括斜坡\n+ 没找到返回失败\n","output":["[{目标}]"],"desc":"寻找本平台的敌人"},{"name":"FindEnemyList","type":"Condition","doc":"+ 返回数组\n+ 没找到返回失败\n","output":["[{目标单位}]"],"args":[{"name":"x","type":"int?","desc":"x"},{"name":"y","type":"int?","desc":"y"},{"name":"w","type":"lua?","desc":"宽"},{"name":"h","type":"lua?","desc":"高"},{"name":"count","type":"int?","desc":"最大数量"},{"name":"type","type":"string?","desc":"查找类型"},{"name":"monster_type","type":"int?","desc":"怪物类型"},{"name":"bullet","type":"boolean?","desc":"以子弹为中心"},{"name":"no_collision","type":"boolean?","desc":"忽略碰撞体积"},{"name":"self_collision","type":"boolean?","desc":"考虑自身体积"},{"name":"dis_priority","type":"boolean?","desc":"距离优先"}],"desc":"查找多个敌人"},{"name":"FindFriendList","type":"Condition","doc":"+ 跟FindEnemyList一样,仅限友军\n","output":["[{目标单位}]"],"args":[{"name":"x","type":"int?","desc":"x"},{"name":"y","type":"int?","desc":"y"},{"name":"w","type":"lua?","desc":"宽"},{"name":"h","type":"lua?","desc":"高"},{"name":"count","type":"int?","desc":"最大数量"},{"name":"type","type":"string?","desc":"查找类型"},{"name":"bullet","type":"boolean?","desc":"以子弹为中心"},{"name":"self_collision","type":"boolean?","desc":"考虑自身体积"},{"name":"no_collision","type":"boolean?","desc":"忽略碰撞体积"}],"desc":"查找多个友军"},{"name":"FindMonstersById","type":"Condition","doc":"+ 获取地图中特定ID的怪物\n+ 没有的话也会返回成功\n","output":["[{怪物(数组)}]"],"args":[{"name":"monsterid","type":"int","desc":"怪物id"}],"desc":"根据id查找怪物"},{"input":["{目标单位}"],"name":"FindPath","type":"Condition","doc":"+ 填写终点自动返回路点(移动路径),需要使用movePath进行移动\n+ 没有找到路径则返回失败\n","output":["[路点]"],"args":[{"name":"x","type":"int?","desc":"终点坐标x"},{"name":"y","type":"int?","desc":"终点坐标y"},{"name":"only_move","type":"boolean?","desc":"只能移动"}],"desc":"寻路"},{"input":["{目标}"],"name":"FloorMove","type":"Action","doc":"+ 移动到设定目标的一个随机距离位置(该位置在第一次执行时随机,之后固定)\n+ 没有目标时返回失败\n+ 需要跟找本平台敌人节点配合\n","args":[{"name":"rand","type":"int?","desc":"随机范围"}],"desc":"本平台移动"},{"input":["{单位}","{跟随目标}"],"name":"Follow","type":"Action","doc":"+ 跟随过程中无法被选中XXXXX,本质上为瞬移\n+ 后端为时间到时瞬移至跟随目标(本质上无实际无移动过程)【无延迟情况下强制抵达】\n+ 跟随过程返回正在运行,到达后返回成功,无目标返回失败\n","args":[{"name":"time","type":"int","desc":"时间"},{"name":"vx","type":"int?","desc":"x初速度"},{"name":"vy","type":"int?","desc":"y初速度"}],"desc":"跟随"},{"input":["[{数组}]"],"name":"ForEach","type":"Composite","doc":"+ 遍历数组,并对每个数组里的值进行一次运算\n+ 执行逻辑为并行执行\n","output":["{变量}"],"desc":"遍历数组"},{"input":["{单位}"],"name":"ForceShift","type":"Action","doc":"+ 跟主动位移区分,会受到霸体影响,且会触发临击稳如泰山属性\n+ 边界限制后不会掉落平台,前提是无y轴位移\n+ 不选择以自身为方向时,正为右,负为左\n","output":["实际位移距离(int)"],"args":[{"name":"x","type":"int","desc":"x"},{"name":"y","type":"int","desc":"y"},{"name":"time","type":"int","desc":"时间(帧)"},{"name":"myface","type":"boolean?","desc":"以自己的方向为基准"},{"name":"relatively","type":"boolean?","desc":"相对方向"},{"name":"border","type":"boolean?","desc":"边界限制"}],"desc":"强制位移"},{"input":["{单位}"],"name":"GetAiVars","type":"Action","doc":"+ 如果所输入单位无AI,返回失败\n+ 不传目标默认自己\n+ 原行为树中的值修改不会影响拷贝过来的值\n+ 若那边值不存在,这边得到的输出值为空,并不会返回失败\n","output":["{变量1}","{变量2}","{变量3}","{变量4}","{变量5}"],"args":[{"name":"key1","type":"string?","desc":"变量1名称"},{"name":"key2","type":"string?","desc":"变量2名称"},{"name":"key3","type":"string?","desc":"变量3名称"},{"name":"key4","type":"string?","desc":"变量4名称"},{"name":"key5","type":"string?","desc":"变量5名称"}],"desc":"获取Ai行为树变量"},{"input":["单位"],"name":"GetAp","type":"Action","doc":"+ 必定返回成功\n","output":["怒气"],"desc":"获取单位当前怒气"},{"input":["数组"],"name":"GetArrayCount","type":"Action","doc":"+ 若数组为空,返回失败\n","output":["值"],"desc":"取数组的长度"},{"input":["数组"],"name":"GetArrayItem","type":"Action","doc":"+ 若数组为空,返回失败\n+ 索引超出数组大小,输出空值\n","output":["值"],"args":[{"name":"index","type":"int","desc":"索引(从1开始)"}],"desc":"取数组的一个元素"},{"input":["{单位}"],"name":"GetAttr","type":"Action","doc":"+ 属性名称,英文小写\n","output":["{属性值}"],"args":[{"name":"key","type":"string","desc":"属性名称"}],"desc":"获取单位属性"},{"input":["{单位}"],"name":"GetAttrs","type":"Action","doc":"+ 属性名称,英文小写\n","output":["{属性1}","{属性2}","{属性3}","{属性4}","{属性5}"],"args":[{"name":"key1","type":"string?","desc":"属性1名称"},{"name":"key2","type":"string?","desc":"属性2名称"},{"name":"key3","type":"string?","desc":"属性3名称"},{"name":"key4","type":"string?","desc":"属性4名称"},{"name":"key5","type":"string?","desc":"属性5名称"}],"desc":"获取单位属性"},{"name":"GetAvatarCount","type":"Action","doc":"+ 默认全地图\n","output":["数量(int)"],"args":[{"name":"camp","type":"int?","desc":"阵营1\/2"},{"name":"role","type":"boolean?","desc":"角色"},{"name":"monster","type":"boolean?","desc":"怪物"},{"name":"bullet","type":"boolean?","desc":"子弹"},{"name":"robot","type":"boolean?","desc":"机器人"}],"desc":"获取单位数量"},{"input":["{单位}"],"name":"GetAvatarPos","type":"Action","doc":"+ 返回的坐标为地图绝对坐标\n+ 单位为空返回失败\n","output":["{坐标}"],"desc":"获取单位坐标"},{"name":"GetBuffStack","type":"Action","doc":"+ 必须为首层ID\n+ 当同ID的BUFF同时存在不止一个时,按最大层数的BUFF的结果\n","output":["层数(int)"],"args":[{"name":"buffid","type":"int?","desc":"首层id"}],"desc":"获取buff层数"},{"name":"GetBuffTime","type":"Action","doc":"+ 获取BUFF当前剩余时间\n+ 当同ID的BUFF同时存在不止一个时,按最大层数的BUFF的结果\n","output":["帧数(int)"],"args":[{"name":"buffid","type":"int?","desc":"首层id"}],"desc":"获取buff时间"},{"name":"GetConf","type":"Action","doc":"+ 慎重使用\n+ 可获取任意表中的字段\n+ 填错可能会报错\n","output":["{值}"],"args":[{"name":"name","type":"string","desc":"表名"},{"name":"id","type":"lua","desc":"索引"},{"name":"key","type":"string","desc":"字段"}],"desc":"获取配置"},{"name":"GetCurFrame","type":"Action","doc":"+ 返回一个服务器启动至今的一个时间,用于相减\n","output":["帧(int)"],"desc":"获取当前时间帧"},{"name":"GetFightState","type":"Action","doc":"+ 测试用\n","output":["时间"],"args":[{"name":"gravity","type":"boolean?","desc":"禁止重力"},{"name":"move","type":"boolean?","desc":"禁止移动"},{"name":"jump","type":"boolean?","desc":"禁止跳跃"},{"name":"face","type":"boolean?","desc":"禁止转向"},{"name":"skill1","type":"boolean?","desc":"禁止普攻"},{"name":"skill2","type":"boolean?","desc":"禁止瞬发"},{"name":"skill3","type":"boolean?","desc":"禁止吟唱"},{"name":"skill4","type":"boolean?","desc":"禁止蓄力"},{"name":"super_armor","type":"boolean?","desc":"霸体"},{"name":"select","type":"boolean?","desc":"无法被选中"},{"name":"ap","type":"boolean?","desc":"无法回怒"}],"desc":"获取战斗状态时长(只能选一种状态)"},{"name":"GetFubenRemainTime","type":"Action","doc":"+ 若副本无剩余时间,返回失败\n","output":["时间\/秒(int)"],"desc":"获取副本剩余时间"},{"name":"GetHighestHurtRole","type":"Action","doc":"+ 若全相等随便返回一个\n","output":["{单位}"],"desc":"获取当前最高输出玩家单位"},{"name":"GetLauncher","type":"Action","output":["{单位}"],"desc":"获取释放者"},{"input":["单位"],"name":"GetLv","type":"Action","doc":"+ 必定返回成功\n","output":["等级"],"desc":"获取单位等级"},{"name":"GetMonsterCountInRange","type":"Action","output":["数量(int)"],"args":[{"name":"monsterid","type":"int?","desc":"怪物id"},{"name":"x","type":"int?","desc":"x"},{"name":"y","type":"int?","desc":"y"},{"name":"w","type":"lua?","desc":"宽"},{"name":"h","type":"lua?","desc":"高"},{"name":"bullet","type":"boolean?","desc":"以子弹为中心"},{"name":"no_collision","type":"boolean?","desc":"忽略碰撞体积"}],"desc":"获取范围内怪物数量"},{"input":["{对象}"],"name":"GetRoleName","type":"Action","doc":"+ 主角为空,返回失败\n","output":["名字(string)"],"desc":"获取主角名字"},{"name":"GetRuneEntry","type":"Action","doc":"+ 没有词条返回失败\n","output":["(int)"],"args":[{"name":"entryid","type":"int","desc":"词条id"}],"desc":"获取符文词条属性"},{"name":"GetSelfAvatar","type":"Action","output":["{单位}"],"desc":"获取自己的单位"},{"input":["单位"],"name":"GetSkillIds","type":"Action","doc":"+ 测试用\n","output":["技能id列表"],"desc":"获取单位所有技能id"},{"name":"GetSkillLevel","type":"Action","doc":"+ 没携带技能返回失败\n","output":["等级(int)"],"args":[{"name":"skillid","type":"int","desc":"skillid"}],"desc":"获取技能等级"},{"input":["{单位}"],"name":"GetStat","type":"Action","doc":"+ 非主角返回失败\n","output":["同时击杀","连杀"],"desc":"获取统计数据"},{"name":"GetTotemRefine","type":"Action","output":["图腾id","精练等级(int)"],"args":[{"name":"part","type":"int","desc":"部位"}],"desc":"获取图腾精练等级"},{"name":"GetTotemRefineAttr","type":"Action","doc":"+ 没有携带图腾返回默认值\n","output":["值(int)"],"args":[{"name":"part","type":"int","desc":"部位"},{"name":"idx","type":"int","desc":"属性(1,2,3)"}],"desc":"图腾之力属性"},{"input":["{对象}"],"name":"HasBuff","type":"Condition","doc":"+ 可以只填分类\n+ 单位默认自己\n","args":[{"name":"type","type":"int?","desc":"分类"},{"name":"buffid","type":"int?","desc":"指定buffid(首层)"}],"desc":"Buff是否存在"},{"input":["目标"],"name":"HitBack","type":"Action","args":[{"name":"time","type":"int","desc":"时间(帧)"},{"name":"w","type":"int","desc":"距离"}],"desc":"击退"},{"input":["{目标}"],"name":"Hurt","type":"Action","doc":"+ 在伤害公式表可见详细流程\n+ 目标为空返回失败\n","args":[{"name":"count","type":"int?","desc":"次数"},{"name":"add","type":"lua?","desc":"最终伤害加成(千分比)"},{"name":"recover","type":"lua?","desc":"吸血(千分比)"},{"name":"dmg_var","type":"lua?","desc":"技能伤害千分比"},{"name":"dmg_const","type":"lua?","desc":"技能固定伤害"},{"name":"attenuate","type":"lua?","desc":"伤害衰减"},{"name":"no_hit_action","type":"boolean?","desc":"不播受击"}],"desc":"造成伤害"},{"input":["{目标}"],"name":"HurtPercent","type":"Action","doc":"+ 跟hurt一样,除了是根据血量进行伤害计算,会受伤害免疫影响\n+ 目标为空返回失败\n","args":[{"name":"percent","type":"lua?","desc":"伤害(千分比)"},{"name":"max_hp","type":"boolean?","desc":"基于最大血量(默认当前血量)"},{"name":"no_hit_action","type":"boolean?","desc":"不播受击"}],"desc":"造成百分比伤害"},{"input":["{目标}"],"name":"HurtWithoutSrc","type":"Action","args":[{"name":"count","type":"int?","desc":"次数"},{"name":"value","type":"lua?","desc":"伤害值"}],"desc":"伤害之无中生有"},{"input":["{单位}"],"name":"Idle","type":"Action","desc":"待机"},{"input":["{敌人}"],"name":"InAlertRange","type":"Condition","doc":"+ 根据monster表中的警戒范围进行判定\n+ 敌人为空或敌人已经死亡返回失败\n","desc":"敌人处于警戒范围内"},{"input":["{敌人}"],"name":"InAttackRange","type":"Condition","doc":"+ 根据monster表中的攻击范围进行判定\n+ 敌人为空或敌人已经死亡返回失败\n","desc":"敌人处于攻击范围内"},{"input":["{敌人}"],"name":"InPatrolRange","type":"Condition","doc":"+ 根据monster表中的巡逻范围进行判定\n+ 敌人为空或敌人已经死亡返回失败\n","desc":"敌人处于巡逻范围内"},{"name":"IsBulletDeath","type":"Condition","desc":"子弹是否已死亡"},{"input":["{单位(默认自己)}"],"name":"IsDeath","type":"Condition","desc":"是否已死亡"},{"name":"IsEmpty","type":"Condition","output":["[数组]"],"desc":"数组是否为空"},{"name":"IsIdle","type":"Condition","desc":"正在待机"},{"input":["{对象}"],"name":"IsInSky","type":"Condition","doc":"+ 不在地面上全当浮空\n","desc":"否为悬空"},{"input":["{对象}"],"name":"IsMonster","type":"Condition","desc":"否为怪物"},{"name":"IsMoving","type":"Condition","desc":"正在移动"},{"input":["{对象}"],"name":"IsRole","type":"Condition","desc":"否为主角"},{"input":["单位"],"name":"IsSlant","type":"Condition","doc":"+ 相对面向,x,y偏移按自己面向控制\n","args":[{"name":"x","type":"lua","desc":"x"},{"name":"y","type":"lua","desc":"y"},{"name":"face","type":"boolean?","desc":"相对面向"}],"desc":"否为为斜坡(以单位为中心点)"},{"input":["{目标\/默认自己}"],"name":"Jump","type":"Action","args":[{"name":"vspeed","type":"int","desc":"纵向初速度"},{"name":"hspeed","type":"int","desc":"横向初速度"},{"name":"time","type":"int?","desc":"时间"},{"name":"no_gravity","type":"boolean?","desc":"是否忽略重力"}],"desc":"跳跃"},{"input":["{目标}"],"name":"LaunchSkill","type":"Action","doc":"+ 本身也会进行技能冷却判定\n+ 技能转向按目标碰撞体积中心做判定(仅计算x轴)\n","args":[{"name":"skillid","type":"int","desc":"技能id"},{"name":"face","type":"boolean?","desc":"改变朝向"}],"desc":"释放技能"},{"input":["{目标}"],"name":"LaunchSkillWithWeight","type":"Action","doc":"+ 当多个技能都可以满足释放条件时,按权重释放,被动技能不参与\n","output":["{技能id}"],"desc":"放范围内权重最大的技能"},{"name":"ListenDie","type":"Action","doc":"+ 第一次执行返回成功,之后执行返回失败\n","desc":"侦听击杀"},{"input":["{目标}"],"name":"ListenKill","type":"Action","doc":"+ 第一次执行返回成功,之后执行返回失败\n","desc":"侦听击杀"},{"name":"ListenRealive","type":"Action","doc":"+ 第一次执行返回成功,之后执行返回失败\n","desc":"侦听复活"},{"input":["{目标(默认自己)}"],"name":"ListenSkill","type":"Action","doc":"+ 第一次执行返回成功,之后执行返回失败\n","args":[{"name":"skillid","type":"int?","desc":"技能id"},{"name":"type","type":"int?","desc":"技能类型"}],"desc":"侦听技能释放"},{"input":["{伤害来源}","伤害值int"],"name":"ListenUnderAttack","type":"Action","doc":"+ 第一次执行返回成功,之后执行返回失败\n","args":[{"name":"exclude","type":"int?","desc":"排除技能id"},{"name":"no_select","type":"boolean?","desc":"包含无敌单位"}],"desc":"侦听被攻击"},{"input":["物品id"],"name":"ListenUseItem","type":"Action","doc":"+ 第一次执行返回成功,之后执行返回失败\n","desc":"侦听使用物品"},{"name":"LockAction","type":"Action","doc":"+ 状态间不相互影响,重复效果取最大值\n+ 无特殊情况下仅用做技能过程设定单位状态\n","args":[{"name":"time","type":"lua","desc":"时间(帧)"},{"name":"gravity","type":"boolean?","desc":"禁止重力"},{"name":"move","type":"boolean?","desc":"禁止移动"},{"name":"jump","type":"boolean?","desc":"禁止跳跃"},{"name":"face","type":"boolean?","desc":"禁止转向"},{"name":"skill1","type":"boolean?","desc":"禁止普攻"},{"name":"skill2","type":"boolean?","desc":"禁止自动技能"},{"name":"skill3","type":"boolean?","desc":"禁止主动技能"},{"name":"skill4","type":"boolean?","desc":"禁止二段跳"},{"name":"super_armor","type":"boolean?","desc":"霸体"},{"name":"select","type":"boolean?","desc":"无法被选中"},{"name":"ap","type":"boolean?","desc":"无法回怒"}],"desc":"锁定行为"},{"name":"Loop","type":"Composite","args":[{"name":"count","type":"lua?","desc":"次数"}],"desc":"循环执行"},{"input":["数组1","数组2","数组3","数组4"],"name":"MergeList","type":"Action","doc":"+ 拼接会去除重复项\n+ 不同类别数组可拼接,后果自负\n","output":["[数组]"],"desc":"合并数组"},{"name":"MonsterFindDefendPath","type":"Condition","doc":"+ 根据mappic_json里的路点进行移动(仅用于进击的怪怪)\n+ 无路点时返回失败\n","output":["[路点]"],"desc":"怪物塔防寻路"},{"name":"MonsterFindEnemy","type":"Condition","doc":"+ 无目标返回失败\n","output":["[{目标}]"],"args":[{"name":"type","type":"string?","desc":"查找类型"},{"name":"no_collision","type":"boolean?","desc":"忽略碰撞体积"},{"name":"self_collision","type":"boolean?","desc":"考虑自身体积"},{"name":"threat","type":"boolean?","desc":"威胁值优先"}],"desc":"怪物寻敌(读配置警戒范围)"},{"name":"MonsterPatrol","type":"Action","doc":"+ 在平台上进行monster表中的巡逻范围(半径)\n","args":[{"name":"rand","type":"int?","desc":"随机范围"}],"desc":"怪物巡逻"},{"input":["{目标}"],"name":"MoveAway","type":"Action","doc":"+ 无目标返回失败\n+ 无法转向或无法移动返回失败\n+ 抵达地形边界返回失败\n+ 不会返回正在运行状态\n"},{"input":["[路点]"],"name":"MovePath","type":"Action","doc":"+ 根据路点依次进行移动\n+ 路点少于两个返回失败\n+ 无法移动返回失败\n+ 每达到一个目的地移除一个路点\n+ 不会返回正在运行状态\n","desc":"寻路移动"},{"name":"MoveRandom","type":"Action","doc":"+ 无法移动返回失败\n+ 移动过程中返回正在运行状态,达到目的地返回成功\n","args":[{"name":"face","type":"boolean?","desc":"只向前随机"},{"name":"range","type":"int?","desc":"范围"}],"desc":"随机移动"},{"input":["{目标}"],"name":"MoveToAtkPos","type":"Action","doc":"+ 偏移量务必保证少于所拥有技能的攻击范围\n","args":[{"name":"offset","type":"int?","desc":"偏移量"},{"name":"collision","type":"boolean?","desc":"考虑碰撞体积"}],"desc":"移动到攻击位置"},{"input":["{目标}"],"name":"MoveToTarget","type":"Action","doc":"+ 客户端专用\n","args":[{"name":"rand","type":"int?","desc":"随机范围"},{"name":"no_collision","type":"boolean?","desc":"忽略碰撞体积"}],"desc":"移动到目标(客户端)"},{"input":["{目标}"],"name":"NormalAttack","type":"Action","doc":"+ 默认使用所携带技能中的普攻\n+ 有两个时会出问题,会根据怪物攻击范围做一次是否能打到人的判定\n","args":[{"name":"face","type":"boolean?","desc":"转向"}],"desc":"普通攻击"},{"name":"Not","type":"Decorator","doc":"+ 将子节点的返回值取反\n","desc":"取反"},{"name":"NotMoving","type":"Condition","desc":"不处于移动中"},{"input":["变量"],"name":"NotNull","type":"Condition","doc":"+ 判断变量是否为空\n","desc":"非空"},{"name":"Once","type":"Composite","doc":"+ 可以接多个子节点,子节点默认全部执行\n+ 被打断后该节点后的子节点依旧不会执行\n+ 该节点执行后永远返回成功\n","args":[{"name":"frame","type":"boolean?","desc":"本帧内"}],"desc":"只执行一次"},{"name":"Parallel","type":"Composite","doc":"执行所有子节点并返回成功\n","desc":"并行执行"},{"name":"Passive1010100","type":"Action","args":[{"name":"lock","type":"int","desc":"间隔"},{"name":"ex1","type":"int?","desc":"排除技能id"},{"name":"ex2","type":"int?","desc":"排除技能id"},{"name":"ex3","type":"int?","desc":"排除技能id"},{"name":"ex4","type":"int?","desc":"排除技能id"},{"name":"ex5","type":"int?","desc":"排除技能id"}],"desc":"战士被动"},{"name":"Passive1010200","type":"Action","args":[{"name":"lock","type":"int","desc":"间隔"},{"name":"ex1","type":"int?","desc":"排除技能id"},{"name":"ex2","type":"int?","desc":"排除技能id"},{"name":"ex3","type":"int?","desc":"排除技能id"},{"name":"ex4","type":"int?","desc":"排除技能id"},{"name":"ex5","type":"int?","desc":"排除技能id"}],"desc":"炮手被动"},{"name":"PetFollow","type":"Condition","desc":"宠物跟随"},{"name":"ProbExec","type":"Composite","doc":"+ 并行执行所有子节点\n+ 随机失败时返回失败,否则必定返回成功\n","args":[{"name":"prob","type":"lua","desc":"概率(千分比)"}],"desc":"随机执行"},{"input":["[{被拉单位}]"],"name":"PullToBullet","type":"Action","doc":"+ 本质上是瞬移,过程不可见\n+ 拉去到子弹坐标\n","args":[{"name":"time","type":"int","desc":"时间\/帧"}],"desc":"拉取到子弹"},{"input":["[{被拉单位}]"],"name":"PullToSelf","type":"Action","doc":"+ 本质上是瞬移,过程不可见\n","args":[{"name":"time","type":"int?","desc":"时间\/帧"}],"desc":"拉取到自己"},{"input":["{目的单位}","[{被拉单位}]"],"name":"PullToTarget","type":"Action","doc":"+ 本质上是瞬移,过程不可见\n","args":[{"name":"time","type":"int?","desc":"时间\/帧"}],"desc":"拉取目标"},{"input":["{目标(默认自己)}"],"name":"PurgeBuff","type":"Action","doc":"+ 净化成功与否收到净化几率属性影响\n","desc":"净化buff"},{"name":"RandomExec","type":"Composite","doc":"+ 随机执行一个子节点\n+ 不支持Running类的子点\n","args":[{"name":"w1","type":"int?","desc":"权重1"},{"name":"w2","type":"int?","desc":"权重2"},{"name":"w3","type":"int?","desc":"权重3"},{"name":"w4","type":"int?","desc":"权重4"},{"name":"w5","type":"int?","desc":"权重5"},{"name":"w6","type":"int?","desc":"权重6"},{"name":"w7","type":"int?","desc":"权重7"},{"name":"w8","type":"int?","desc":"权重8"},{"name":"w9","type":"int?","desc":"权重9"},{"name":"w10","type":"int?","desc":"权重10"}],"desc":"随机执行"},{"name":"RandomParallel","type":"Composite","doc":"+ 随机选取若干子节点并行执行,过程无序\n+ 随机数量不得超过子节点\n+ 子节点不支持返回正在运行状态(wait之类)\n","args":[{"name":"count","type":"lua","desc":"数量"}],"desc":"随机并行执行"},{"name":"RangeHurt","type":"Action","doc":"+ findEnemyList+forEach+Hurt,必定成功\n","args":[{"name":"x","type":"int?","desc":"x"},{"name":"y","type":"int?","desc":"y"},{"name":"w","type":"lua?","desc":"宽"},{"name":"h","type":"lua?","desc":"高"},{"name":"max","type":"int?","desc":"数量上限"},{"name":"type","type":"string?","desc":"查找类型"},{"name":"add","type":"lua?","desc":"最终伤害加成(千分比)"},{"name":"recover","type":"lua?","desc":"吸血(千分比)"},{"name":"dmg_var","type":"lua?","desc":"技能伤害千分比"},{"name":"dmg_const","type":"lua?","desc":"技能固定伤害"},{"name":"no_hit_action","type":"boolean?","desc":"不播受击"},{"name":"bullet","type":"boolean?","desc":"以子弹为中心"},{"name":"no_collision","type":"boolean?","desc":"忽略碰撞体积"},{"name":"count","type":"int?","desc":"伤害次数"}],"desc":"范围伤害"},{"input":["{目标}"],"name":"RealDamage","type":"Action","doc":"+ 无视伤害免疫\n+ 目标可以是单个或多个\n","args":[{"name":"count","type":"int?","desc":"次数"},{"name":"extra","type":"lua?","desc":"固定值"},{"name":"no_hit_action","type":"boolean?","desc":"不播受击"}],"desc":"真实伤害"},{"name":"Realive","type":"Action","desc":"复活"},{"input":["{目标}"],"name":"RecoverHp","type":"Action","doc":"+ 秘密回血不会触发飘字,血条会变\n","args":[{"name":"percent","type":"lua?","desc":"千分比"},{"name":"add","type":"lua?","desc":"固定值"},{"name":"secret","type":"boolean?","desc":"秘密回血(不通知客户端)"}],"desc":"恢复血量(默认恢复至max)"},{"name":"RemoveBuff","type":"Action","doc":"+ 强制移除BUFF,不受任何影响,用于逻辑处理\n","args":[{"name":"buffid","type":"int?","desc":"buffid"},{"name":"type","type":"int?","desc":"分类"},{"name":"stack","type":"int","desc":"层数"}],"desc":"移除buff"},{"input":["[路点]"],"name":"RotatePath","type":"Action","doc":"+ 路点进行角度偏移\n+ 以原点坐标(0,0)进行旋转,逆时针\n","args":[{"name":"angle","type":"int","desc":"角度"}],"desc":"设置路点"},{"input":["{目标(默认自己)}"],"name":"SecKill","type":"Action","doc":"+ 无视一切,直接死亡\n","desc":"秒杀单位"},{"name":"Selector","type":"Composite","doc":"+ 一直往下执行,有子节点返回成功则返回成功,若全部节点返回失败则返回失败\n+ 子节点是或的关系\n","desc":"选择执行"},{"name":"Sequence","type":"Composite","doc":"+ 一直往下执行,有子节点返回成功则返回成功,若全部节点返回失败则返回失败\n+ 子节点是或的关系\n","desc":"顺序执行"},{"name":"SetFace","type":"Action","doc":"+ 1为右,-1为左\n+ 指定朝向优先\n","args":[{"name":"anti","type":"boolean?","desc":"反向"},{"name":"face","type":"int?","desc":"指定朝向"}],"desc":"设置朝向"},{"name":"SetFightState","type":"Action","args":[{"name":"state","type":"string","desc":"状态"},{"name":"time","type":"lua?","desc":"持续时间"}],"desc":"设置战斗状态"},{"name":"SetInvincibleState","type":"Action","args":[{"name":"active","type":"boolean?","desc":"是否激活"},{"name":"time","type":"lua?","desc":"持续时间"}],"desc":"设置免疫伤害状态"},{"input":["变量"],"name":"SetNull","type":"Action","doc":"+ 将变量置空\n","desc":"设置为空"},{"name":"SetPath","type":"Action","doc":"+ 贝塞尔曲线专用贝塞尔曲线专用\n","output":["[数组]"],"args":[{"name":"x1","type":"int?","desc":"x1"},{"name":"y1","type":"int?","desc":"y1"},{"name":"x2","type":"int?","desc":"x2"},{"name":"y2","type":"int?","desc":"y2"},{"name":"x3","type":"int?","desc":"x3"},{"name":"y3","type":"int?","desc":"y3"}],"desc":"设置路点"},{"input":["{单位}?","{坐标}"],"name":"SetPos","type":"Action","doc":"+ 根据地图位置瞬移\n","args":[{"name":"x","type":"int?","desc":"x"},{"name":"y","type":"int?","desc":"y"}],"desc":"瞬移到坐标点"},{"input":["{对象}(默认自己)"],"name":"SetState","type":"Action","doc":"+ BOSS专用\n","args":[{"name":"time","type":"lua?","desc":"持续时间"},{"name":"WEAK","type":"boolean?","desc":"虚弱"}],"desc":"设置状态(单选)"},{"input":["变量"],"name":"SetValue","type":"Action","args":[{"name":"value","type":"lua?","desc":"值"}],"desc":"设置变量"},{"input":["{单位}"],"name":"Shift","type":"Action","doc":"+ 主动位移不受霸体影响,不会触发临击稳如泰山,过程霸体\n","output":["实际位移距离(int)"],"args":[{"name":"x","type":"int","desc":"x"},{"name":"y","type":"int","desc":"y"},{"name":"time","type":"int","desc":"时间(帧)"},{"name":"myface","type":"boolean?","desc":"以自己的方向为基准"},{"name":"relatively","type":"boolean?","desc":"相对方向"},{"name":"border","type":"boolean?","desc":"边界限制"}],"desc":"主动位移"},{"input":["作用单位"],"name":"Teleport","type":"Action","doc":"+ 进行相对坐标瞬移\n","args":[{"name":"x","type":"int","desc":"x偏移"},{"name":"y","type":"int","desc":"y偏移"}],"desc":"瞬移"},{"name":"Trace","type":"Action","doc":"+ 测试用,可打印任意变量或值\n","args":[{"name":"value","type":"lua?","desc":"值"}],"desc":"打印日志"},{"name":"UnlockAction","type":"Action","args":[{"name":"gravity","type":"boolean?","desc":"重力"},{"name":"move","type":"boolean?","desc":"移动"},{"name":"jump","type":"boolean?","desc":"跳跃"},{"name":"face","type":"boolean?","desc":"转向"},{"name":"skill1","type":"boolean?","desc":"普攻"},{"name":"skill2","type":"boolean?","desc":"自动技能"},{"name":"skill3","type":"boolean?","desc":"主动技能"},{"name":"skill4","type":"boolean?","desc":"二段跳"},{"name":"super_armor","type":"boolean?","desc":"霸体"},{"name":"select","type":"boolean?","desc":"选中"},{"name":"ap","type":"boolean?","desc":"回怒"}],"desc":"解除锁定行为(无效)"},{"name":"Wait","type":"Action","doc":"+ 仅影响当前行为树\n","args":[{"name":"time","type":"lua","desc":"帧数"}],"desc":"等待"}]