admin 发表于 2023-12-20 12:03:34

关于APC

前言:本教程是我看豆腐百科里面翻译的韩文文档,然后靠着自己的一些C语言基础,再加上一些大佬的解答,从而得出的一些经验。希望能帮到一些想要修改apc的人。(本人技术有限,如有错误欢迎指出。)我暂时就研究了一下剑圣·索德罗斯,所以就拿它为例:一般apc都包含这几个文件:
其中action应该是用来调用animation显示各种贴图的。soldoros.aic是人偶主文件,其他文件都要在这里声明。先来讲.aic文件:
*按键设置-用法示例://密钥名称(可选),密钥文件名`combo``combo attack.key`//键名:`combo`,索引:0`AICharacter/ cuwaki / key / a.key`//键名:`a`,索引:1```AICharacter/ cuwaki / key /s.key` //键名:`s`,索引:2 -在中列出密钥名称和密钥文件名称-   键名是可选的,不得以“.key”结尾。当它以“.key”结尾时,它被识别为密钥文件名-   省略键的名称,或您输入的``删除路径和文件名扩展的关键,并自动分配到的键名-键名称按顺序从0开始分配-   在ai文件的处使用键名和分配的索引-   密钥文件名是相对路径减去脚本路径或没有路径的输入文件名。如果未输入路径,则该文件位于包含aic文件的目录中的子目录“key”下。 *APC的派对指定功能1.将固定的成员分配给aic文件-固定成员的成员索引从1开始使用-未更改指定的固定成员-固定党员的数量几乎没有限制。指定方法)//会员索引,APC索引120402 // 1号是反铲25004 //第2号是阿拉德战役3605 //第3号骨扫描 2.自动注册:自动注册,无需指定-0号指向自己。-按-1,-2,-3的顺序注册-   如果党员消失(死亡),则重新分配索引以填充空号码-自动登记的党员人数几乎没有限制。 3.如何使用注册的党员-在ai文件中使用prist partybuff功能之前指定party成员- {memberindex}:指定buff技能的党员 4.相关附加组件:用于ai文件-:检查指定的成员是否处于活动状态。- {comparison}{value}:检查指定成员的hp 5.用法示例:ai文件[设置党员] 2//在2中指定注册的党员`%>`50`a`//使用分配给第2方的第2方的FastHill技能。-1-1 *APC的被动对象创建禁止功能。1.将被动对象索引分配给aic文件。如何指定1//索引1//索引.... 2.使用此命令让apc在执行某些操作时创建另一个对象而不是指定的对象。 *标记功能 0   //是否系统检查该帐户是否归因1.复选框(缺省值),检查无0.3)中,当不能使用的用品的超过70代表APC系统gwitem检查 接下来是ai文件 这个理解函数和关键字的语法就行了。1.* .ai这是什么?ai是一个脚本,用于对角色进行编程以确定要执行的操作。它的编程类似于c语言编程。   (当然,更不方便但是-_-)2.* .aiai的类型.ai文件按目的划分。让我简要介绍一下你。2.1。Action.ai它用于攻击,buff等。返回值是.aic(AI   C字符)文件。它与中指定的键输入文件1:1匹配,用于执行它。2.2。   DestinationSelect.ai这用于确定选择要移动到的目标的模式。其返回值是表示预编码的目标决策模式的数字。(有关确定较低目的地的方法,请参阅数值表)-有关更多信息,请参阅`destinationselect.rtf`。2.3。Event.ai它用于确定事件发生时要采取的操作。返回值是.aic(AI   C字符)文件。它与中指定的键输入文件1:1匹配,用于执行它。2.4。MoveMethod.ai它用于选择移动到目的地时的移动方式。返回值决定是跳转,转到破折号还是走路。(根据底部运动方法参考数值表) 3.引入条件变量`输入条件变量时是可选的 3.1。``=没有输入3.2。``=3.3。   ``=当前的健康状况3.4。``=当前的马力3.5。`[好战]`=侵略3.6。   `[目标距离]`=与当前目标的像素距离3.7。   ``=从0到99的随机值(续!)3.8。``=上一次操作的结果(某些特定函数在这里放置值)3.9。   `[武器类型]`=表示武器的类型。近战=刺客,服装,牧师,战斗图像=   0范围=格雷罗,巫师=1 </FONT> 3.10。``=当前目标的状态(站立,坐下,伤害,跳跃等)每个州都有一个固定的数字(参见下面每个州的数字表) 3.11。   ``=当前状态(站立,坐下,伤害,跳跃等)每个州都有一个固定的数字(参见下面每个州的数字表) 3.12。   ``=事件类型(伤害,攻击等)每个州都有一个固定的号码(请参阅下面每个事件的数字表) 3.13。``=攻击成功(攻击 -事件.ai)怎么用)[思考][攻击成功] 1 3.14。``=是否被击中(当你受伤时 -Event.ai)怎么用)[思考][点击] 1 3.15。   ``=命中或命中Daisy的属性(攻击或破坏时 - Event.ai)如何使用)   `attribute` 3.16。``=是否使用施法技能(技能.-Event.ai)怎么用)[思考][铸造] 1 3.17。``=检查与对手的距离(攻击或破坏时 -Event.ai)怎么用)[思考][距离]`距离' 3.18。``=检查我的状态变化(Continuously - Action.ai)怎么用)[思考][我的活跃状态] 3.19。``=检查我的状态(不断 -Action.ai)如何使用)[思考][我的州]`州` 3.20。``=检查对手的状态(攻击或破坏时 - Event.ai,持续 - Action.ai)如何使用)[思考]   [目标国家]`州` 3.21。``=检查我的状态变化(仅在状态变化时 - Event.ai)怎么用)[思考][我的活跃状态] 3.22。``=检查对方的状态(攻击或破坏时 - Event.ai)怎么用)[思考][目标活跃状态] 3.23。``=检查我的攻击类型(攻击或破坏时 - Event.ai)如何使用)[思考]   [攻击类型]`类型` 3.24。`[目标类型]`=检查对手的攻击类型(攻击或破坏时 -Event.ai)如何使用)[思考]   [目标类型]`类型` 3.25。`[攻击条件]`=检查我的击球情况(攻击或破坏时 -Event.ai)怎么用)[思考]   [攻击条件]`击中条件` 3.26。`[使用技巧]`=检查你是否使用特定技能(技能.-Event.ai)如何使用)[思考]   [使用技巧]技能指数 3.27。``=比较hp或mp(不断 -Action.ai)怎么用)[思考] 3.28。``=指定冷却时间(指定时应用 -Action.ai,Event.ai)怎么用)[思考][酷时间][返回] 1-   在中应用时应用-   必须在之前立即定义 3.29。``=检查我何时去世(当我死的时候 -Event.ai)怎么用)[想][我的死] 1 3.30。``=检查对手是否死亡(当对手死亡时 - Event.ai)怎么用)[思考][目标死亡] 1 3.31。`[复活]`=检查我是否复活(当我复活时 -Event.ai)怎么用)[思考][复活] 1 3.32。``=比较组合数字(在攻击时 -Event.ai)怎么用)[思考][组合] 3.33。``=比较空中组合数字(在攻击时 -Event.ai)如何使用)[思考]   [航空]`比较方法`数字 3.34。``=检查对手是否过度杀伤(当对手死亡时- Event.ai)怎么用)[思考][矫枉过正] 1 3.35。=设置友好角色(DestinationSelect.ai)怎么用)[设置好友角色]   {AI角色码} 3.36。=设置目标怪物(DestinationSelect.ai)如何使用)[设定目标怪物]{怪物数量}{团队(`敌人`或'中立'或'朋友')} 3.37。=设置友好对象(DestinationSelect.ai)怎么用)[设置好友对象]   {对象号码} 3.38。=指定APC移动范围(DestinationSelect.ai)如何使用)[设定界限]{前视距离} {后视距离} {向上视距}{向下视距} 3.39。[自动攻击方向]=设置按下该键时APC方向是否自动指向敌人。默认值为1,这会阻止其工作。怎么用)[自动攻击方向]{1或0} 3.40。 [我的攻击]=检查APC的攻击技巧怎么用)[我的攻击]{技能号码} 3.41=检查hp减少的时间怎么用)[我的hpdown] {`+`或'%`}{数值}例)[我的hpdown]`%`903.42=检查特定技能是否可用怎么用)[检查使用技巧]   {技能号码} 3.43[检查技能]=您可以检查特定技能的开/关状态-使用检查技能列表是指“on offskill list.rtf”文件 如何使用)[检查技巧]{技能数字}示例:[检查技巧] 52//检查肉波是否打开/关闭//当肉体的波浪开启时[返回]`a`   //如果关闭了肉体的波浪[返回]`s`[/认为] ==================================================   ==============================================================================   ============================ 4.算术函数简介 `>=`例)```>   =`1000.0如果当前运行状况大于或等于1000,则为True `%> =`说明)用于查明输入的条件值是否为当前值,最大值是否与%一样大。例)```%> =`20.0如果健康状况大于或等于最大健康状况的20%,则为真 ``==例)```==`99.0如果当前健康状况等于99,则为真 `%==` `>` `%>' `<=` `%<=` `<` `%<` `checkrandom()`说明)执行随机概率检查。例)```checkrandom()`30.0100.0真实的,有30%的几率 `checkbonusrandom()`描述)为成功概率和随机随机检查添加随机奖励。例)```checkbonusrandom()`30.0 100.030+真实的纵火概率 `在范围()中例)```在范围()中,100.0   500.0如果当前运行状况大于或等于100且小于或等于500.0,则为True `getrandom()`例)```getrandom()`0.0100.0在中,插入0到99之间的随机值。 `是攻击区域()的目标例)```攻击区域中的目标()`100.0(上一个)15.0(后退)50.0(上)50.0(下)如果当前目标位于之前,之后,之前或之下指定的区域中,则为True `攻击区域的敌人数量()`例)```攻击区域的敌人数量()`100.0(上一个)15.0(后退)50.0(上)50.0(下)前,后,上,下指定区域内的敌人数量输入[最后结果]。 `是cooltime()中的技巧例)```是cooltime()`46.0的技巧如果技能46目前处于冷却状态,则为真 `攻击区数()怎么用)`攻击区域的数量()`{forward}   {back} {top} {bottom} {`enemy` /`neutral` /`friend` /`all`} {`monster` /   character` /`apc` /`passive object` /`summon` /`all`}   {index(如果没有选中则为-1)或name}如果索引或名称是`character`,则可以使用作业(请参阅OperatingValue.lst作为作业名称) '是area()中的目标对象'*指定指定范围或地图中的目标怎么用){Precedence}{Back} {Top} {Below}{Index} {How} select}*检查是否启用了范围检查。如果为1,则在引用之前,之后,之上和之下的值的范围内找到索引对象。如果为0,则在整个地图中搜索。*选择方法为0:默认值1:更近2:随机。无论距离如何,首先发现0,1表示接近,2表示随机。 *Example.ai =难度:程序员等级5(Mangrep99)</ FONT> 例如,/Script / AICharacter /cuwaki /aai / action.ai。 `攻击/增益等各种攻击模式//   ai的目的 `[]````攻击区域的敌人数量()`160.030.0 20.0 20.0 //计算此范围内的敌人数量。 `[思考]``[最后的结果]``==`0.0   //没有敌人````-1   //什么都不做 ```````==`1.0 //1敌人```````getrandom()`0.0100.0`````> =`50.0// 50%概率````4//Upper````3   //曝光```````> =`3.0//超过3个敌人````3//执行按键数3- ``//如果你有两个`````getrandom()`0.0100.0`````> =`50.0// 50%概率````1//执行击键0 -上斜线````2//执行按键1- ==================================================   ==============================================================================   ============================ *按状态编号表(所有必须误) 0.0//站立1.0//坐下2.0//永远坐着3.0//伤害4.0//向下5.0//死6.0//跳7.0//跳跃攻击8.0//攻击9.0//持有10.0//扔11.0//破折号12.0//冲刺攻击13.0//获取项目14.0// buff ==================================================   ==============================================================================   ============================ *按事件编号表(一切都必须弄错) 0.0=当我攻击敌人时1.0=如果我被敌人击中2.0= ==================================================   ==============================================================================   ============================ *目的地确定方法-   在DestinationSelect.ai中,与返回值对应的目标匹配方法如下所示 跟踪0个目标1与目标保持距离2逃离目标3围绕目标4只是徘徊5移动到特定的友好角色6移动到特定怪物7移动特定的友好角色8移动特定的友好对象9移动特定的怪物10旁路跟踪11与目标保持恒定距离(应用随机值)12跟踪特定目标(跟踪找到的对象是区域中的目标对象())13跟踪最近的友方怪物14.保持目标距离扩展版本(与目标保持距离)15.保持目标距离扩展版本(与目标1保持距离)16.与目标扩展版保持距离17.与目标扩展版保持距离18.保持目标扩展版本的距离19追踪敌人的后方(如果你在前面,你应该回去看后面)20如果你与敌人对齐,请避免向上或向下21逃生时,您将跑到y轴的顶部或底部移动到第22位锯齿形23在敌人周围保持恒定距离。   (保持一段距离,与敌人保持距离)24隐藏在最近的目标被动对象后面。25逃到一个你看不到的地方,然后避开y轴的上/下26逃离两面墙 ============================================================================================================================================================ *移动方法的数字表(所有错误) 0.0走路转到1.0Dash ============================================================================================================================================================ `慢'0冻结1“毒药”2`stun`3“诅咒”4`盲人'5`闪电`6`stone`7“睡觉”8`烧'9'武器突破'10`出血`11`haste`12“祝福”13`element`14`迷惑`15`hold`16`armorbreak`17“任何”18`all`100*Example.ai=难度:程序员等级5(Mangrep 99)</ FONT> 例如,/Script / AICharacter /cuwaki /aai / action.ai。 `攻击/增益等各种攻击模式//   ai的目的 `[]````攻击区域的敌人数量()`160.030.0 20.0 20.0 //计算此范围内的敌人数量。 `[思考]``[最后的结果]``==`0.0   //没有敌人````-1   //什么都不做 ```````==`1.0 //1敌人```````getrandom()`0.0100.0`````> =`50.0// 50%概率````4//Upper````3   //曝光```````> =`3.0//超过3个敌人````3//执行按键数3- ``//如果你有两个`````getrandom()`0.0100.0`````> =`50.0// 50%概率````1//执行击键0 -上斜线````2//执行按键1- ==================================================   ==============================================================================   ============================ *按状态编号表(所有必须误) 0.0//站立1.0//坐下2.0//永远坐着3.0//伤害4.0//向下5.0//死6.0//跳7.0//跳跃攻击8.0//攻击9.0//持有10.0//扔11.0//破折号12.0//冲刺攻击13.0//获取项目14.0// buff ==================================================   ==============================================================================   ============================ *按事件编号表(一切都必须弄错) 0.0=当我攻击敌人时1.0=如果我被敌人击中2.0= ==================================================   ==============================================================================   ============================ *目的地确定方法-   在DestinationSelect.ai中,与返回值对应的目标匹配方法如下所示 跟踪0个目标1与目标保持距离2逃离目标3围绕目标4只是徘徊5移动到特定的友好角色6移动到特定怪物7移动特定的友好角色8移动特定的友好对象9移动特定的怪物10旁路跟踪11与目标保持恒定距离(应用随机值)12跟踪特定目标(跟踪找到的对象是区域中的目标对象())13跟踪最近的友方怪物14.保持目标距离扩展版本(与目标保持距离)15.保持目标距离扩展版本(与目标1保持距离)16.与目标扩展版保持距离17.与目标扩展版保持距离18.保持目标扩展版本的距离19追踪敌人的后方(如果你在前面,你应该回去看后面)20如果你与敌人对齐,请避免向上或向下21逃生时,您将跑到y轴的顶部或底部移动到第22位锯齿形23在敌人周围保持恒定距离。   (保持一段距离,与敌人保持距离)24隐藏在最近的目标被动对象后面。25逃到一个你看不到的地方,然后避开y轴的上/下26逃离两面墙 ============================================================================================================================================================ *移动方法的数字表(所有错误) 0.0走路转到1.0Dash ============================================================================================================================================================ `慢'0冻结1“毒药”2`stun`3“诅咒”4`盲人'5`闪电`6`stone`7“睡觉”8`烧'9'武器突破'10`出血`11`haste`12“祝福”13`element`14`迷惑`15`hold`16`armorbreak`17“任何”18`all`100 --------------------------------------------以28号为例,以下数据均为比例值,并不是准确数值。文件为   28.aic 2070 1 5 2 5 2 5 2 5 1 30 301.200000 1.300000 1 70 1.400000 1 1 1 1 1 1 1 5 1 801 10 1 10 1 1 1 1 10.300000 10 1 1 按照数值顺序排列是1.HP上限2.MP上限3.力量4.体力5.智力6.精神7.物品栏负重上限8.每分钟回复HP9.每分钟回复MP10.移动速度11.攻击速度12.施放速度13.硬直14.跳跃力15.重量16.命中率17.火属性抗性18.冰属性抗性19.暗属性抗性20.光属性抗性21.减速抗性22.冰冻抗性23.中毒抗性24.眩晕抗性25.诅咒抗性26.失明抗性27.感电抗性28.石化抗性29.睡眠抗性30.灼伤抗性31.破除武器抗性32.出血抗性33.穿刺抗性34.回避率35.混乱抗性36.束缚抗性37.破除护甲抗性
页: [1]
查看完整版本: 关于APC