找回密码
 立即注册
查看: 4870|回复: 0

[学习笔记] 关于APC

[复制链接]

566

主题

95

回帖

3212

积分

管理员

积分
3212

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主荣誉管理论坛元老

QQ
发表于 2023-12-20 12:03:34 | 显示全部楼层 |阅读模式
前言:本教程是我看豆腐百科里面翻译的韩文文档,然后靠着自己的一些C语言基础,再加上一些大佬的解答,从而得出的一些经验。希望能帮到一些想要修改apc的人。(本人技术有限,如有错误欢迎指出。)我暂时就研究了一下剑圣·索德罗斯,所以就拿它为例:
一般apc都包含这几个文件:

其中action应该是用来调用animation显示各种贴图的。soldoros.aic是人偶主文件,其他文件都要在这里声明。先来讲.aic文件:

  
*按键设置
-  用法示例:
[key  stream]  //密钥名称(可选),密钥文件名
`combo``  combo attack.key`  //键名:`combo`,索引:0
`AICharacter  / cuwaki / key / a.key`  //键名:`a`,索引:1
```AICharacter  / cuwaki / key /  s.key` //键名:`s`,索引:2
[/  key stream]
-  在[key  stream]中列出密钥名称和密钥文件名称
-   键名是可选的,不得以“.key”结尾。当它以“.key”结尾时,它被识别为密钥文件名
-   省略键的名称,或您输入的``删除路径和文件名扩展的关键,并自动分配到的键名
-  键名称按顺序从0开始分配
-   在ai文件的[return]处使用键名和分配的索引
-   密钥文件名是相对路径减去脚本路径或没有路径的输入文件名。
如果未输入路径,则该文件位于包含aic文件的目录中的子目录“key”下。
*  APC的派对指定功能
1.将固定的成员分配给aic文件
-  固定成员的成员索引从1开始使用
-  未更改指定的固定成员
-  固定党员的数量几乎没有限制。
指定方法)
[party  member]  //会员索引,APC索引
1  20402 // 1号是反铲
2  5004 //第2号是阿拉德战役
3  605 //第3号骨扫描
[/party  member]
2.自动注册:自动注册,无需指定
-  0号指向自己。
-  按-1,-2,-3的顺序注册
-   如果党员消失(死亡),则重新分配索引以填充空号码
-  自动登记的党员人数几乎没有限制。
3.如何使用注册的党员
-  在ai文件中使用prist party  buff功能之前指定party成员
-  [set party member] {member  index}:指定buff技能的党员
4.相关附加组件:用于ai文件
-  [party member  alive]:检查指定的成员是否处于活动状态。
-  [party member hp] {comparison}  {value}:检查指定成员的hp
5.用法示例:ai文件
[think]  [设置党员] 2  //在2中指定注册的党员
[think]  [party member  alive]
[true]
[think]  [party member  hp]`%>`50
[true]  [return]`a`  //使用分配给第2方的第2方的FastHill技能。
[false]  [return]  -1
[/think]
[false]
[return]  -1
[/think]
[/think]
*  APC的被动对象创建禁止功能。
1.将被动对象索引分配给aic文件。
如何指定
[limit   passiveobject]
1  //索引
1  //索引
....
[/  limit  passiveobject]
2.使用此命令让apc在执行某些操作时创建另一个对象而不是指定的对象。
*标记功能
[check  accountitem] 0   //是否系统检查该帐户是否归因1.复选框(缺省值),检查无0.3)中,当不能使用的用品的超过70代表APC系统gwitem检查
接下来是ai文件
这个理解函数和关键字的语法就行了。
1.  * .ai这是什么?
ai是一个脚本,用于对角色进行编程以确定要执行的操作。
它的编程类似于c语言编程。   (当然,更不方便但是-_-)
2.  * .ai
ai的类型
.ai文件按目的划分。让我简要介绍一下你。
2.1。  Action.ai
它用于攻击,buff等。
返回值是.aic(AI   C字符)文件。
它与[key   stream]中指定的键输入文件1:1匹配,用于执行它。
2.2。   DestinationSelect.ai
这用于确定选择要移动到的目标的模式。
其返回值是表示预编码的目标决策模式的数字。
(有关确定较低目的地的方法,请参阅数值表)
-  有关更多信息,请参阅`destination  select.rtf`。
2.3。  Event.ai
它用于确定事件发生时要采取的操作。
返回值是.aic(AI   C字符)文件。
它与[key   stream]中指定的键输入文件1:1匹配,用于执行它。
2.4。  MoveMethod.ai
它用于选择移动到目的地时的移动方式。
返回值决定是跳转,转到破折号还是走路。
(根据底部运动方法参考数值表)
3.引入条件变量
`输入条件变量时是可选的
3.1。  `[void]`=没有输入
3.2。  `[mind]`=
3.3。   `[hp]`=当前的健康状况
3.4。  `[mp]`=当前的马力
3.5。  `[好战]`=侵略
3.6。   `[目标距离]`=与当前目标的像素距离
3.7。   `[random]`=从0到99的随机值(续!)
3.8。  `[last  result]`=上一次操作的结果(某些特定函数在这里放置值)
3.9。   `[武器类型]`=表示武器的类型。
近战=刺客,服装,牧师,战斗图像=   0
范围=格雷罗,巫师=  1 </  FONT>
3.10。  `[target  state]`=当前目标的状态(站立,坐下,伤害,跳跃等)
每个州都有一个固定的数字(参见下面每个州的数字表)
3.11。   `[state]`=当前状态(站立,坐下,伤害,跳跃等)
每个州都有一个固定的数字(参见下面每个州的数字表)
3.12。   `[event]`=事件类型(伤害,攻击等)
每个州都有一个固定的号码(请参阅下面每个事件的数字表)
3.13。  `[attack success]`=攻击成功(攻击 -  事件.ai)
怎么用)[思考]  [攻击成功] 1
3.14。  `[hit]`=是否被击中(当你受伤时 -  Event.ai)
怎么用)[思考]  [点击] 1
3.15。   `[element]`=命中或命中Daisy的属性(攻击或破坏时 - Event.ai)
如何使用)[think]   [element]`attribute`
3.16。  `[cast]`=是否使用施法技能(技能.-  Event.ai)
怎么用)[思考]  [铸造] 1
3.17。  `[distance]`=检查与对手的距离(攻击或破坏时 -  Event.ai)
怎么用)[思考]  [距离]`距离'
3.18。  `[my active  status]`=检查我的状态变化(Continuously - Action.ai)
怎么用)[思考]  [我的活跃状态]
3.19。  `[my state]`=检查我的状态(不断 -  Action.ai)
如何使用)[思考]  [我的州]`州`
3.20。  `[target  state]`=检查对手的状态(攻击或破坏时 - Event.ai,持续 - Action.ai)
如何使用)[思考]   [目标国家]`州`
3.21。  `[my active status  on]`=检查我的状态变化(仅在状态变化时 - Event.ai)
怎么用)[思考]  [我的活跃状态]
3.22。  `[target active  status]`=检查对方的状态(攻击或破坏时 - Event.ai)
怎么用)[思考]  [目标活跃状态]
3.23。  `[attack  type]`=检查我的攻击类型(攻击或破坏时 - Event.ai)
如何使用)[思考]   [攻击类型]`类型`
3.24。  `[目标类型]`=检查对手的攻击类型(攻击或破坏时 -  Event.ai)
如何使用)[思考]   [目标类型]`类型`
3.25。  `[攻击条件]`=检查我的击球情况(攻击或破坏时 -  Event.ai)
怎么用)[思考]   [攻击条件]`击中条件`
3.26。  `[使用技巧]`=检查你是否使用特定技能(技能.-  Event.ai)
如何使用)[思考]   [使用技巧]技能指数
3.27。  `[stat change]`=比较hp或mp(不断 -  Action.ai)
怎么用)[思考]  [stat change] [hp /  mp]
3.28。  `[cooltime]`=指定冷却时间(指定时应用 -  Action.ai,Event.ai)
怎么用)[思考]  [酷时间]
[true]  [返回] 1
-   在[true]中应用[return]时应用[cooltime]
-   [cooltime]必须在[return]之前立即定义[return]
3.29。  `[my death]`=检查我何时去世(当我死的时候 -  Event.ai)
怎么用)[想]  [我的死] 1
3.30。  `[target  death]`=检查对手是否死亡(当对手死亡时 - Event.ai)
怎么用)[思考]  [目标死亡] 1
3.31。  `[复活]`=检查我是否复活(当我复活时 -  Event.ai)
怎么用)[思考]  [复活] 1
3.32。  `[combo]`=比较组合数字(在攻击时 -  Event.ai)
怎么用)[思考]  [组合]
3.33。  `[Aerial]`=比较空中组合数字(在攻击时 -  Event.ai)
如何使用)[思考]   [航空]`比较方法`数字
3.34。  `[overkill]`=检查对手是否过度杀伤(当对手死亡时  - Event.ai)
怎么用)[思考]  [矫枉过正] 1
3.35。  [set friend character]  =设置友好角色(DestinationSelect.ai)
怎么用)[设置好友角色]   {AI角色码}
3.36。  [set target monster]  =设置目标怪物(DestinationSelect.ai)
如何使用)[设定目标怪物]  {怪物数量}  {团队(`敌人`或'中立'或'朋友')}
3.37。  [set friend object]  =设置友好对象(DestinationSelect.ai)
怎么用)[设置好友对象]   {对象号码}
3.38。  [set bound]  =指定APC移动范围(DestinationSelect.ai)
如何使用)[设定界限]  {前视距离} {后视距离} {向上视距}  {向下视距}
3.39。  [自动攻击方向]  =设置按下该键时APC方向是否自动指向敌人。
默认值为1,这会阻止其工作。
怎么用)[自动攻击方向]  {1或0}
3.40。 [我的攻击]  =检查APC的攻击技巧
怎么用)[我的攻击]  {技能号码}
3.41  [my hp down]  =检查hp减少的时间
怎么用)[我的hp  down] {`+`或'%`}  {数值}
例)[我的hp  down]`%`90
3.42  [check use skill]  =检查特定技能是否可用
怎么用)[检查使用技巧]   {技能号码}
3.43  [检查技能]  =您可以检查特定技能的开/关状态
-  使用[check skill on]检查技能列表是指“on off  skill list.rtf”文件
如何使用)[检查技巧]  {技能数字}
示例:[think]  [检查技巧] 52  //检查肉波是否打开/关闭
[true]  //当肉体的波浪开启时
[返回]`a`
[false]   //如果关闭了肉体的波浪
[返回]`s`
[/认为]
==================================================   ============================
==================================================   ============================
4.算术函数简介
`>  =`
例)`[hp]``>   =`1000.0
如果当前运行状况大于或等于1000,则为True
`%> =`
说明)用于查明输入的条件值是否为当前值,最大值是否与%一样大。
例)`[hp]``%> =`20.0
如果健康状况大于或等于最大健康状况的20%,则为真
``==
例)`[hp]``==`99.0
如果当前健康状况等于99,则为真
`%==`
`>`
`%>'
`<=`
`%<=`
`<`
`%<`
`check  random()`
说明)执行随机概率检查。
例)`[void]``check  random()`30.0  100.0
真实的,有30%的几率
`check  bonus  random()`
描述)为成功概率和随机随机检查添加随机奖励。
例)`[warlike]``check  bonus  random()`30.0 100.0
30  +真实的纵火概率
`在范围()中
例)`[hp]``在范围()中,100.0   500.0
如果当前运行状况大于或等于100且小于或等于500.0,则为True
`get  random()`
例)`[void]``get  random()`0.0  100.0
在[last   result]中,插入0到99之间的随机值。
`是攻击区域()的目标
例)`[void]``攻击区域中的目标()`100.0(上一个)15.0(后退)50.0(上)50.0(下)
如果当前目标位于之前,之后,之前或之下指定的区域中,则为True
`攻击区域的敌人数量()`
例)`[void]``攻击区域的敌人数量()`100.0(上一个)15.0(后退)50.0(上)50.0(下)
前,后,上,下指定区域内的敌人数量输入[最后结果]。
`是cooltime()中的技巧
例)`[void]``是cooltime()`46.0的技巧
如果技能46目前处于冷却状态,则为真
`攻击区数()
怎么用)[void]`攻击区域的数量()`{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(Mangrep  99)</ FONT>
例如,/  Script / AICharacter /cuwaki /  aai / action.ai。
[ai模式]
`攻击/增益等各种攻击模式//   ai的目的
`[[Think]]``[void]``攻击区域的敌人数量()`160.0  30.0 20.0 20.0 //计算此范围内的敌人数量。
`[思考]``[最后的结果]``==`0.0   //没有敌人
`[true]``[return]`-1   //什么都不做
`[FALSE]`
`[think]``[last  result]``==`1.0 //  1敌人
`[TRUE]`
`[think]``[void]``get  random()`0.0  100.0
`[think]``[last  result]``> =`50.0  // 50%概率
`[true]``[return]`4  //  Upper
`[false]``[return]`3   //曝光
`[FALSE]`
`[think]``[last  result]``> =`3.0  //超过3个敌人
`[true]``[return]`3  //执行按键数3  -
`[false]`//如果你有两个
`[think]``[void]``get  random()`0.0  100.0
`[think]``[last  result]``> =`50.0  // 50%概率
`[true]``[return]`1  //执行击键0 -  上斜线
`[false]``[return]`2  //执行按键1  -
[/  ai模式]
==================================================   ============================
==================================================   ============================
*按状态编号表(所有必须误)
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.0  Dash
==============================================================================
==============================================================================
`慢'0
冻结1
“毒药”2
`stun`  3
“诅咒”4
`盲人'5
`闪电`6
`stone`  7
“睡觉”8
`烧'9
'武器突破'10
`出血`11
`haste`  12
“祝福”13
`element`  14
`迷惑`15
`hold`  16
`armor  break`17
“任何”18
`all`100*  Example.ai  =难度:程序员等级5(Mangrep 99)</ FONT>
例如,/  Script / AICharacter /cuwaki /  aai / action.ai。
[ai模式]
`攻击/增益等各种攻击模式//   ai的目的
`[[Think]]``[void]``攻击区域的敌人数量()`160.0  30.0 20.0 20.0 //计算此范围内的敌人数量。
`[思考]``[最后的结果]``==`0.0   //没有敌人
`[true]``[return]`-1   //什么都不做
`[FALSE]`
`[think]``[last  result]``==`1.0 //  1敌人
`[TRUE]`
`[think]``[void]``get  random()`0.0  100.0
`[think]``[last  result]``> =`50.0  // 50%概率
`[true]``[return]`4  //  Upper
`[false]``[return]`3   //曝光
`[FALSE]`
`[think]``[last  result]``> =`3.0  //超过3个敌人
`[true]``[return]`3  //执行按键数3  -
`[false]`//如果你有两个
`[think]``[void]``get  random()`0.0  100.0
`[think]``[last  result]``> =`50.0  // 50%概率
`[true]``[return]`1  //执行击键0 -  上斜线
`[false]``[return]`2  //执行按键1  -
[/  ai模式]
==================================================   ============================
==================================================   ============================
*按状态编号表(所有必须误)
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.0  Dash
==============================================================================
==============================================================================
`慢'0
冻结1
“毒药”2
`stun`  3
“诅咒”4
`盲人'5
`闪电`6
`stone`  7
“睡觉”8
`烧'9
'武器突破'10
`出血`11
`haste`  12
“祝福”13
`element`  14
`迷惑`15
`hold`  16
`armor  break`17
“任何”18
`all`100
--------------------------------------------
以28号为例,以下数据均为比例值,并不是准确数值。
文件为   28.aic
[character  status rate]  
20  70 1 5 2 5 2 5 2 5 1 30 30  1.200000 1.300000 1 70 1.400000 1 1 1 1 1 1 1 5 1 80  1 10 1 10 1 1 1 1 1  0.300000 10 1 1
按照数值顺序排列是
1.HP上限
2.MP上限
3.力量
4.体力
5.智力
6.精神
7.物品栏负重上限
8.每分钟回复HP
9.每分钟回复MP
10.移动速度
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.软件源码资源来源于网络,如有侵权请联系我们!
2.侵权联系邮箱:48165603@qq.com 收到邮件的24小时内删帖!
3.资源开源分享均为网络资源,开源发布立场不代表本站!
4.请勿侵犯正版软件,尊重正版版权作者的劳动成果!
5.欢迎广大开发作者来本站投稿,开源鸭有你更精彩!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表