本帖最后由 ww1437599567 于 2025-1-20 13:04 编辑
前言由于中文站审核太慢了,所以我决定把相关的功能教程分开一些。相关的资源和基础,大家可以去我的这个帖子找:【超详细万字教程】一些功能添加 适用潘德原版和任意子mod添加功能:主动技能主动技能是一个大型的功能系统,和她城子mod里面的功能一样,是可以进行完全或者部分关闭的(还未增加关闭的功能,后续添加)。现推出一个试玩版本,试玩版本里面包含了更新的:特殊战利品机制、boss和全局血条、主动技能三个功能系统。试玩版,玩家一出来就获得全部主动技能。主动技能是移植的泡菜里面的功能,主要分为以下几个部分: ① 气力条。开启主动技能-基础版后,主角血条下方会出现一个气力条,这个力气条就是你使用相关主动技能需要消耗的”蓝条“,如果气力不足,是无法使用相关主动技能的; ② 气力条的最大值和玩家的铁骨挂钩,气力会随时间缓慢恢复,恢复速度随铁骨等级增加而增加; ③ 主动技能需要开启战场小地图功能才能使用;目前ai拥有的特技增加了:马姐:烽火燎原;狼叔:风卷残云;眼珠子:末日风暴;其他步战的boss还有哪些大家给我说一下,我加入测试。 ④【主动技能】耗气奔跑-提高移动速度,仅地上,耗气(使用方法:若为玩家,则按住左alt键不放移动,跑动等级越高加速效果越明显); ⑤【主动技能】风卷残云-释放者周围瞬发范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),带击倒,耗气(若为玩家,则轻触E键释放),伤害值受强击等级影响; ⑥【主动技能】地龙震雷-释放者周围瞬发范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),仅地上,带击倒和吸血,耗气(若为玩家,则轻触Z键释放),伤害值受强击等级影响; ⑦【主动技能】霸王崩山劲-释放者周围蓄力范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),仅地上,带吹飞,耗气(若为玩家,则按住E键蓄力释放),伤害值受强击等级影响; ⑧【主动技能】烽火燎原-释放者周围蓄力范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),仅马上,耗气(若为玩家,则按住E键蓄力释放),伤害值受强击等级影响; ⑨【主动技能】末日风暴-释放者周围蓄力持续范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),仅马上,带击倒,耗气(若为玩家,则按住前进键的同时按住左ctrl键蓄力释放),伤害值受骑术等级影响; ⑩【主动技能】死神之吻-蓄力远程范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),带概率混乱和伤害暴击,仅武器为弓,耗气(若为玩家,则按住F键的同时发射弓箭释放),伤害值受强弓等级影响; ⑪【主动技能】气击模式-攻击附带额外真实伤害,耗气(若为玩家,则轻触鼠标中键开启\关闭气击模式),伤害值受强击等级影响; ⑫【主动技能】斗气暴击-气击模式下的额外真实伤害提升为1.5倍(仅近战提升),伤害值受强击等级影响; ⑬【主动技能】连珠箭-消耗3支箭,远程发射4支较为集中的箭,仅武器为弓,耗气(若为玩家,则按住左alt键的同时发射弓箭释放); ⑭【主动技能】多重箭-消耗3支箭,远程发射4支较为分散的箭,仅武器为弓,耗气(若为玩家,则按住Q键的同时发射弓箭释放);
主动技能-风卷残云.jpg (130.59 KB, 下载次数: 23)
下载附件
保存到相册
2025-1-12 23:09 上传
主动技能-霸王崩山击.jpg (158.64 KB, 下载次数: 26)
下载附件
保存到相册
2025-1-12 23:09 上传
step1:相关资源的添加
主动技能相关资源引用.zip
(686.35 KB, 下载次数: 71)
2025-1-20 13:01 上传
点击文件名下载附件
① 音效首先,下载我提供的音效资源,将他们复制到Sounds文件夹内。
音效资源.jpg (142.65 KB, 下载次数: 28)
下载附件
保存到相册
2025-1-12 17:14 上传
然后我们需要把他们加载进去,并赋予他们相关的引用名字等等。打开sounds.txt文件,需要添加两个地方,并修改两个计数器。其中一个地方就是大约1350行前面(这里会看到一个计数值,这是第二段代码的计数值,第一段代码的计数值在前面),将我们提供的第一段音效代码复制进去,记得第一段的计数器值+23: (点击展开 / 收起)jineng_en_stk.mp3 2721
jineng_explosion1.wav 2721
jineng_explosion2.wav 2721
jineng_explosion3.wav 2721
jineng_man_ha.ogg 2721
jineng_man_jiqi.ogg 2721
jineng_man_s_ha.ogg 2721
jineng_select.ogg 2721
jineng_thunder1.wav 2721
jineng_thunder1_s.wav 2721
jineng_troll_hit_1.mp3 2721
jineng_troll_hit_2.mp3 2721
jineng_troll_hit_3.mp3 2721
jineng_woman_ha.wav 2721
jineng_woman_he.wav 2721
jineng_woman_he_2.wav 2721
jineng_woman_s_ha.wav 2721
jineng_Zombi_hit_1.wav 2721
jineng_Zombi_hit_2.wav 2721
jineng_Zombi_hit_3.wav 2721
yed8s_jdujt.ogg 2721
yedmogai_jdujt.ogg 2721
guangjian.ogg 2721复制代码注意!每一行有且只有一个空格哦!!注意检查,不能多也不能少,会报错。
主动技能-音效-第一段-代码添加.jpg (117.29 KB, 下载次数: 26)
下载附件
保存到相册
2025-1-12 17:14 上传
然后我们将第二段音效代码复制进去,复制到sounds.txt最后就行了。还是记得计数器+22。 (点击展开 / 收起)snd_man_ha 2721 1 1351 0
snd_woman_ha 1953 1 1360 0
snd_explosion1 2720 1 1348 0
snd_thunder1 2720 1 1355 0
snd_thunder1_ex 2720 1 1356 0
snd_man_jiqi 2720 1 1352 0
snd_woman_jiqi 2720 1 1362 0
snd_man_s_ha 2720 1 1353 0
snd_woman_s_ha 2720 1 1363 0
snd_explosion2 2720 1 1349 0
snd_explosion3 2720 1 1350 0
snd_en_stk 2720 1 1347 0
snd_skill_select 2720 1 1354 0
snd_woman_huiwu 2720 2 1362 0 1361 0
snd_troll_hit 1440 3 1357 0 1358 0 1359 0
snd_Zombi_hit 1952 3 1364 0 1365 0 1366 0
snd_mogai_mission_kill 2720 1 0 0
snd_mogaiguijiao 2177 1 1367 0
snd_mogaiguijiao1 2177 1 1368 0
snd_pistol_shot12 2721 1 1346 0
snd_pistol_guangjian 2721 1 1369 0
snd_pistol_guan 1953 1 1348 0复制代码
主动技能-音效-第二段-代码添加.jpg (108.28 KB, 下载次数: 21)
下载附件
保存到相册
2025-1-12 17:15 上传
② 模型文件和贴图的导入复制我提供的模型文件到Resource文件夹内,复制我提供的贴图文件到Textures文件夹内。
并在module.ini最后添加加载资源的代码: (点击展开 / 收起)load_mod_resource = wb_plus_item
load_mod_resource = wb_plus_animations
load_mod_resource = wb_plus_user_interface_b复制代码
主动技能-模型复制进文件夹.jpg (182.41 KB, 下载次数: 24)
下载附件
保存到相册
2025-1-12 17:15 上传
③ 添加粒子效果打开particle_systems.txt文件,将下面的代码复制到最后,并添加计数器+21。 (点击展开 / 收起)psys_fire_glow_1_plus 530 prt_mesh_fire_2 1 0.020000 0.200000 0.000000 10.000000 0.000000
0.500000 0.900000 1.000000 0.000000
0.000000 0.900000 1.000000 0.900000
0.000000 0.700000 1.000000 0.700000
0.000000 0.400000 1.000000 0.400000
0.000000 2.000000 1.000000 2.000000
0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000
0.000000 0.000000
psys_fire_sparks_up 8722 prt_sparks_mesh_1 80 0.500000 0.200000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.300000 0.200000 3.000000 0.100000
0.170000 0.170000 0.010000 0.000000 0.000000 1.200000 0.000000
0.000000 0.000000
psys_fire_sparks_down 8722 prt_sparks_mesh_1 80 0.500000 0.200000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.300000 0.200000 3.000000 0.100000
0.170000 0.170000 0.010000 0.000000 0.000000 -1.200000 0.000000
0.000000 0.000000
psys_fire_sparks_left 8722 prt_sparks_mesh_1 80 0.500000 0.200000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.300000 0.200000 3.000000 0.100000
0.170000 0.170000 0.010000 1.200000 0.000000 0.000000 0.000000
0.000000 0.000000
psys_fire_sparks_right 8722 prt_sparks_mesh_1 80 0.500000 0.200000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.300000 0.200000 3.000000 0.100000
0.170000 0.170000 0.010000 0.000000 1.200000 0.000000 0.000000
0.000000 0.000000
psys_fire_sparks_up_red 8722 prt_sparks_mesh_1 80 0.500000 0.200000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.950000 1.000000 0.950000
0.100000 0.100000 1.000000 0.100000
0.100000 0.200000 1.000000 0.200000
0.300000 0.200000 3.000000 0.100000
0.170000 0.170000 0.010000 0.000000 0.000000 1.200000 0.000000
0.000000 0.000000
psys_fire_sparks_down_red 8722 prt_sparks_mesh_1 80 0.500000 0.200000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.950000 1.000000 0.950000
0.100000 0.100000 1.000000 0.100000
0.100000 0.200000 1.000000 0.200000
0.300000 0.200000 3.000000 0.100000
0.170000 0.170000 0.010000 0.000000 0.000000 -1.200000 0.000000
0.000000 0.000000
psys_fire_sparks_left_red 8722 prt_sparks_mesh_1 80 0.500000 0.200000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.950000 1.000000 0.950000
0.100000 0.100000 1.000000 0.100000
0.100000 0.200000 1.000000 0.200000
0.300000 0.200000 3.000000 0.100000
0.170000 0.170000 0.010000 1.200000 0.000000 0.000000 0.000000
0.000000 0.000000
psys_fire_sparks_right_red 8722 prt_sparks_mesh_1 80 0.500000 0.200000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.950000 1.000000 0.950000
0.100000 0.100000 1.000000 0.100000
0.100000 0.200000 1.000000 0.200000
0.300000 0.200000 3.000000 0.100000
0.170000 0.170000 0.010000 0.000000 1.200000 0.000000 0.000000
0.000000 0.000000
psys_dust_1 12818 prt_mesh_dust_1 20 2.000000 10.000000 0.050000 10.000000 39.000000
0.200000 0.500000 1.000000 0.000000
0.000000 1.000000 1.000000 1.000000
0.000000 0.950000 1.000000 0.950000
0.000000 0.830000 1.000000 0.830000
0.000000 2.000000 1.000000 3.500000
5.000000 5.000000 1.000000 5.000000 5.000000 0.500000 0.500000
130.000000 0.500000
psys_dust_1_dark 12818 prt_mesh_dust_1 20 3.200000 10.000000 0.010000 10.000000 39.000000
0.200000 0.500000 1.000000 0.000000
0.000000 0.000000 1.000000 0.000000
0.000000 0.000000 1.000000 0.000000
0.000000 0.000000 1.000000 0.000000
0.000000 2.000000 1.000000 3.500000
5.000000 5.000000 1.200000 5.000000 5.000000 0.500000 0.500000
130.000000 0.500000
psys_sparks_1 512 prt_sparks_mesh_1 120 0.300000 0.000000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.100000 0.070000 1.000000 0.030000
0.500000 0.500000 0.040000 0.000000 0.000000 -3.300000 0.000000
0.000000 0.000000
psys_sparks_2 512 prt_sparks_mesh_1 120 0.300000 0.000000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.100000 0.070000 1.000000 0.030000
0.500000 0.500000 0.010000 3.000000 0.000000 -3.000000 0.000000
0.000000 0.000000
psys_sparks_3 512 prt_sparks_mesh_1 120 0.300000 0.000000 0.000000 3.000000 10.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.100000 0.070000 1.000000 0.030000
0.500000 0.500000 0.040000 -3.000000 0.000000 -3.000000 0.000000
0.000000 0.000000
psys_fire_s 12818 prt_mesh_fire_1 50 2.000000 0.000000 -1.300000 10.000000 0.000000
0.500000 0.500000 1.000000 0.000000
0.500000 1.000000 1.000000 0.900000
0.500000 0.700000 1.000000 0.300000
0.500000 0.200000 1.000000 0.000000
0.000000 4.000000 1.000000 10.000000
8.000000 8.000000 0.600000 4.000000 4.000000 0.100000 0.100000
250.000000 0.500000
psys_fire_1 70144 prt_sparks_mesh_1 35 1.000000 1.500000 -0.200000 60.000000 40.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.600000 0.420000 3.000000 0.900000
3.000000 4.000000 0.200000 -25.000000 25.000000 0.000000 0.100000
250.000000 0.500000
psys_fire_2 70144 prt_sparks_mesh_1 35 1.000000 1.500000 -0.200000 60.000000 40.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.600000 0.420000 3.000000 0.900000
3.000000 4.000000 0.200000 25.000000 25.000000 0.000000 0.100000
250.000000 0.500000
psys_fire_3 70144 prt_sparks_mesh_1 35 1.000000 1.500000 -0.200000 60.000000 40.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.600000 0.420000 3.000000 0.900000
3.000000 4.000000 0.200000 0.000000 25.000000 0.000000 0.100000
250.000000 0.500000
psys_fire_4 70144 prt_sparks_mesh_1 35 1.000000 1.500000 -0.200000 60.000000 40.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.600000 0.420000 3.000000 0.900000
3.000000 4.000000 0.200000 -25.000000 -5.000000 0.000000 0.100000
250.000000 0.500000
psys_fire_5 70144 prt_sparks_mesh_1 35 1.000000 1.500000 -0.200000 60.000000 40.000000
0.600000 1.000000 1.000000 1.000000
0.100000 0.700000 1.000000 0.700000
0.100000 0.500000 1.000000 0.500000
0.100000 0.100000 1.000000 0.100000
0.600000 0.420000 3.000000 0.900000
3.000000 4.000000 0.200000 25.000000 -5.000000 0.000000 0.100000
250.000000 0.500000
psys_doomsday_storm 12818 prt_mesh_fire_1 25 0.500000 0.100000 0.000000 10.000000 0.000000
0.500000 0.400000 1.000000 0.400000
0.500000 0.300000 1.000000 0.400000
0.500000 0.300000 1.000000 0.300000
0.500000 0.700000 1.000000 0.800000
0.500000 1.000000 1.000000 2.500000
1.800000 2.700000 2.000000 0.000000 0.000000 0.400000 0.000000
100.000000 0.200000
psys_fire_wind 12818 prt_mesh_fire_1 35 0.600000 0.200000 -0.200000 10.000000 0.000000
0.500000 0.500000 1.000000 0.000000
0.500000 1.000000 1.000000 0.900000
0.500000 0.000000 1.000000 0.000000
0.500000 1.000000 1.000000 0.900000
0.000000 0.400000 1.000000 1.000000
0.400000 0.200000 0.010000 0.000000 0.000000 0.400000 0.100000
100.000000 0.500000复制代码
主动技能-资源添加-粒子效果2.jpg (101.7 KB, 下载次数: 21)
下载附件
保存到相册
2025-1-12 22:30 上传
④ 添加模型代码打开meshes.txt文件,将下面的代码复制到最后,并添加计数器+1。 (点击展开 / 收起)mesh_status_energy_bar 0 status_energy_bar 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.000000 1.000000 1.000000复制代码
主动技能-资源添加-mesh.jpg (132.99 KB, 下载次数: 28)
下载附件
保存到相册
2025-1-12 17:16 上传
⑤ 添加动画代码打开actions.txt文件,动画代码修改不是在最后添加,而且将系统预留的代码替换掉,计数器不变(注意每行开头的空格数量,不要多也不要少)。我们替换的是预留的unused_human_anim_64到unused_human_anim_75,源码如下: (点击展开 / 收起)unused_human_anim_64 17408 58720337 1
2.100000 anim_human 40200 40275 516 204 0.0 0.0 0.0 0.300000
unused_human_anim_65 17408 58720337 1
2.800000 anim_human_02 350 382 9 0 0.800000 -1.800000 0.0 0.500000
unused_human_anim_66 17408 192938065 1
3.000000 anim_human 42000 42084 9 0 0.0 0.0 0.0 0.0
unused_human_anim_67 1026 176160848 1
2.200000 anim_human 45400 45453 515 0 0.0 0.0 0.0 0.0
unused_human_anim_68 1024 176160848 1
0.900000 strikes3_head 14 48 4 0 0.0 0.0 0.0 0.0
unused_human_anim_69 1024 176160848 1
0.900000 strikes3_head 309 346 4 0 0.0 0.0 0.0 0.0
unused_human_anim_70 1024 176160848 1
0.900000 strikes3_abdomen 105 150 4 0 0.0 0.0 0.0 0.0
unused_human_anim_71 1024 176160848 1
0.900000 strikes3_abdomen 4 43 4 0 0.0 0.0 0.0 0.0
unused_human_anim_72 1024 176160848 1
1.000000 fjcy 0 52 2 0 0.0 0.0 0.0 0.0
unused_human_anim_73 1024 176160848 1
0.350000 uppercut 0 17 7 0 0.0 0.0 0.0 0.0
unused_human_anim_74 1024 176160848 1
0.500000 uppercut 17 34 6 0 0.0 0.0 0.0 0.0
unused_human_anim_75 1026 176160848 1
5.000000 anim_human 45400 45453 515 0 0.0 0.0 0.0 0.0复制代码
主动技能-资源添加-动画22222.jpg (79.74 KB, 下载次数: 23)
下载附件
保存到相册
2025-1-20 13:04 上传
主动技能-动画2.png (980.6 KB, 下载次数: 45)
下载附件
保存到相册
2025-1-12 17:34 上传
⑥ 添加场景代码打开scene_props.txt文件,将下面的代码复制到最后,并添加计数器+6。 (点击展开 / 收起)spr_peng1 598016 0 0 peng1 0
spr_peng2 598016 0 0 peng2 0
spr_peng3 598016 0 0 peng3 0
spr_peng4 598016 0 0 peng4 0
spr_peng5 598016 0 0 peng5 0
spr_peng6 598016 0 0 peng6 0
复制代码
主动技能-资源添加-场景.jpg (57.61 KB, 下载次数: 23)
下载附件
保存到相册
2025-1-12 17:17 上传
step2:添加相关变量打开variables.txt,在文件最后加入如下代码: (点击展开 / 收起)key_special_skills
key_darkness_thund
key_doomsday_storm
key_bleach_kiss
key_energy_strike
current_commander
d_kiss_ammo_or_dis
d_kiss_dis
d_kiss_bet
gather_begin
ready
p_leadership
p_ironflesh
vitality
fengbao_agent
kiss_agent
battle_camera_y
battle_camera_z
energy_bar
energy_restore_time
energy_drop_time
sprint_time
flashing_time
flashing_switch
key_sprint
shu_lian
shu_lian_max
ai_shu_lian
ues_add
key_curr_player_ready_active_skill
key_multiple_shot
key_multishot_arrow复制代码step3:添加相关字符串和翻译① 打开strings.txt,在最后添加如下代码,然后计数器+25。 (点击展开 / 收起)str_energy_restored energy_restored
str_not_enough_energy not_enough_energy
str_gather_finished Gather_finished
str_delivered_damage_zhudong Delivered_{reg1}_damage.
str_delivered_passive_damage_zhudong delivered_passive_damage_zhudong
str_wounded_by {s1}_wounded_by_{s2}.
str_killed_by {s1}_killed_by_{s2}.
str_into_chao into_chao
str_recovery recovery
str_delivered_ene Delivered_ene
str_received_ener Received_ener
str_start_up_energy Start_up_energy
str_quit_energy_str Quit_energy_str
str_need_you_level_not_l Need_you_Level_not_l
str_darkness_thund Darkness_thund
str_doomsday_storm Doomsday_storm
str_clouly_storm Clouly_storm
str_bleach_kiss Bleach_Kiss
str_prairie_fire Prairie_fire
str_powerful_strike Powerful_strike
str_can_t_use_this_skill Can_t_use_this_skill
str_the_doomsday_storm_stopped The_Doomsday_storm_stopped!_Too_slow!
str_arrows_is_not_enough arrows_is_not_enough
str_multishot_arro multishot_arro
str_multiple_shot multiple_shot复制代码
② 打开该文件路径".\languages\cns\game_strings.csv"添加在后面即可: (点击展开 / 收起)str_energy_restored|气 力 恢 复 !
str_not_enough_energy|气 力 不 足 !
str_gather_finished|集 气 完 成 !
str_delivered_damage_zhudong|给 对 方 {reg15}点 伤 害( 主 动 技 能 伤 害 )
str_delivered_passive_damage_zhudong|受 到 {reg16}点 伤 害( 主 动 技 能 伤 害 )
str_wounded_by|{s1}被 {s2}击 晕 了( 主 动 技 能 伤 害 )
str_killed_by|{s1}被 {s2}杀 了( 主 动 技 能 伤 害 )
str_into_chao|{s2}的 {s1}陷 入 混 乱 !
str_recovery|{s2}的 {s1}从 混 乱 中 恢 复 !
str_delivered_ene|施 加 {reg1}点 气 击 伤 害 !
str_received_ener|受 到 {reg1}点 气 击 伤 害 !
str_start_up_energy|{s1}启 动 气 击 模 式 !
str_quit_energy_str|{s1}退 出 气 击 模 式 !
str_need_you_level_not_l|需 要 等 级 不 低 于 10 、 智 力 不 低 于 12、 铁 骨 、强 击 不 低 于 6才 能 启 用 !
str_darkness_thund|{s1}:地 龙 震 雷 !!
str_doomsday_storm|{s1}:末 日 风 暴 !!
str_clouly_storm|{s1}:风 卷 残 云 !!
str_bleach_kiss|{s1}:死 神 之 吻 !!
str_prairie_fire|{s1}:烽 火 燎 原 !!
str_powerful_strike|{s1}:霸 王 崩 山 劲 !!
str_can_t_use_this_skill|骑 马 时 不 可 用 !
str_the_doomsday_storm_stopped|末 日 风 暴 停 止 , 骑 速 过 低 !!
str_arrows_is_not_enough|箭 支 不 足 !
str_multishot_arro|{s1}: 连 珠 箭 !
str_multiple_shot|{s1}: 多 重 箭 !复制代码
主动技能-添加-字符串和翻译2.png (470.28 KB, 下载次数: 21)
下载附件
保存到相册
2025-1-12 20:47 上传
step4:添加相关脚本函数① 战场初始化参数函数:pm_init_mt_param (点击展开 / 收起)(assign, "$gather_begin", 6),
(assign, "$energy_restore_time", 0),
(assign, "$flashing_time", 0),
(assign, "$energy_drop_time", 0),
(assign, "$sprint_time", 0),
(assign, "$is_open_show_health", 0), # 设置mt开始不显示全局血条,需要按V键显示
(assign, "$ready", 0),
(store_skill_level, "$p_leadership", "skl_leadership", "$current_commander"), # 获取当前兵种的统御值
(store_skill_level, "$p_ironflesh", "skl_ironflesh", "$current_commander"), # 获取当前兵种的铁骨值
(store_attribute_level, ":tmp_ca_strength", "$current_commander", ca_strength), # 获取当前兵种的力量
(store_attribute_level, ":tmp_ca_agility", "$current_commander", ca_agility), # 获取当前兵种的敏捷
(store_attribute_level, ":tmp_ca_intelligence", "$current_commander", ca_intelligence), # 获取当前兵种的智力
(val_add, ":tmp_ca_strength", ":tmp_ca_agility"),
(store_add, ":tmp_preperties", ":tmp_ca_strength", ":tmp_ca_intelligence"),
(store_div, "$vitality", ":tmp_preperties", 2), # 将三个属性值相加并除以2
(assign, "$fengbao_agent", -1),
(assign, "$d_kiss_ammo_or_dis", -1),
(assign, "$kiss_agent", -1),
# (assign, "$battle_camera_y", -150),
# (assign, "$battle_camera_z", 180),复制代码这个在scripts.txt中设置好了之后,还要将它的调用触发放在mt里面: (点击展开 / 收起) (ti_before_mission_start, 0.000000, 0.000000, # -19.000000 0.000000 0.000000
[
],
[
(call_script, "script_pm_init_mt_param"), # 只需要编译这里就行了
]),复制代码mt构造的模板我放这了,大家自行编译成txt后进行拼接: (点击展开 / 收起)-19.000000 0.000000 0.000000 0 1
主动技能-战场初始化函数.png (230.68 KB, 下载次数: 21)
下载附件
保存到相册
2025-1-12 18:21 上传
② 初始化参数函数:pm_init_param这个函数我们之前就定义过了,大家可以去看我主贴的基础篇。需要在函数的后面增加一些代码就行(需要测试玩家和ai的技能,将相应的地方的注释取消即可):
(点击展开 / 收起)
(troop_set_slot, "$current_commander", 359, 4900), # 开局气力调满
#(display_message, "str_other_party_gained_morale", 0x0000FF),
(assign, "$key_special_skills", key_e), # 定义风卷残云技能的按键
(assign, "$key_darkness_thund", key_z), # 定义地龙震雷技能的按键
(assign, "$key_doomsday_storm", key_left_control), # 定义末日风暴技能的按键
(assign, "$key_bleach_kiss", key_f), # 定义死神之吻技能的按键
(assign, "$key_energy_strike", key_middle_mouse_button), # 定义气击模式的按键
(assign, "$key_sprint", key_left_alt), # 这里是奔跑的按键
(assign, "$key_multiple_shot", key_q), # 这里是多重箭的按键
(assign, "$key_multishot_arrow", key_left_alt), # 这里是连珠箭的按键
# (assign, "$key_open_show_health", key_v), # 这里是显示全局血量的按键
(assign, "$current_commander", "trp_player"), # 当前的控制士兵对象
(assign, "$shu_lian_max", 9999), # 这个全局变量是最多加多少伤害:"$shu_lian_max"
(assign, "$shu_lian", 10), # 这个全局变量是使用多少次加1点伤害:"$shu_lian"
(assign, "$ai_shu_lian", 0), # 设置ai的技能伤害加成
# 模板: 按照这个格式设置boss的技能就行,我以眼珠子为例
#(troop_set_slot, "trp_hero_eyegrim", 358, 1), # “吞噬者”艾格雷姆设置为boss(boss必须有这一行)
#(troop_set_slot, "trp_hero_eyegrim", 374, 1), # “吞噬者”艾格雷姆能恢复气力(boss必须有这一行)
#(troop_set_slot, "trp_hero_eyegrim", 365, 1), # 设置“吞噬者”艾格雷姆拥有风暴狂涌(设置主要的范围伤害主动技能,可以根据boss是马上还是步战等进行配置,可以同时配置马上和步战的范围技能-ps:万一落马了呢)
#(troop_set_slot, "trp_hero_eyegrim", 367, 1), # 设置“吞噬者”艾格雷姆拥有气劲爆发(辅助技能:这个建议设置,尤其是近身boss,射箭的建议不设置)
#(troop_set_slot, "trp_hero_eyegrim", 368, 1), # 设置“吞噬者”艾格雷姆拥有气劲强化(辅助技能:这个建议设置,尤其是近身boss,射箭的建议不设置)
#(troop_set_slot, "trp_hero_eyegrim", 369, 1), # 设置“吞噬者”艾格雷姆拥有连珠速射(辅助技能:有弓的考虑,没弓和箭的boss设置了也没有用)
#(troop_set_slot, "trp_hero_eyegrim", 370, 1), # 设置“吞噬者”艾格雷姆拥有箭雨纷飞(辅助技能:有弓的考虑,没弓和箭的boss设置了也没有用)
# 设置相关主动技能,以下是玩家(不要开启玩家的,下面的代码是我测试用的,玩家的技能要靠读书获取)
# (troop_set_slot, "$current_commander", 381, 1), # 玩家能否使用奔跑(只针对玩家,对ai没用)
# (troop_set_slot, "$current_commander", 360, 1), # 设置某个槽的值,设置拥有风卷残云
# (troop_set_slot, "$current_commander", 362, 1), # 设置某个槽的值,设置拥有地龙震雷
# (troop_set_slot, "$current_commander", 363, 1), # 设置某个槽的值,设置拥有霸王崩山劲
# (troop_set_slot, "$current_commander", 364, 1), # 设置某个槽的值,设置拥有烽火燎原
# (troop_set_slot, "$current_commander", 365, 1), # 设置某个槽的值,设置拥有末日风暴
# (troop_set_slot, "$current_commander", 366, 1), # 设置某个槽的值,设置拥有死神之吻
# (troop_set_slot, "$current_commander", 367, 1), # 设置某个槽的值,设置拥有气击模式
# (troop_set_slot, "$current_commander", 368, 1), # 设置某个槽的值,设置拥有斗气暴击
# (troop_set_slot, "$current_commander", 369, 1), # 设置某个槽的值,设置拥有连珠箭
# (troop_set_slot, "$current_commander", 370, 1), # 设置某个槽的值,设置拥有多重箭复制代码
主动技能-初始化函数.png (172.63 KB, 下载次数: 21)
下载附件
保存到相册
2025-1-12 18:28 上传
③ 其他脚本函数
我就不一一介绍了,大家将下面的脚本函数添加到scipts.txt中就行:
(点击展开 / 收起)
("active_skill_ui_func",
[
(store_script_param, ":cur_time", 1),
(troop_get_slot, ":tmp_curr_en", "$current_commander", 359),
(get_player_agent_no, ":tmp_player_agent"),
#(display_message, "str_energy_restored", 0xFF0000),
(try_begin),
(neg|ge, ":cur_time", "$energy_restore_time"),
(assign, "$energy_restore_time", ":cur_time"),
(try_end),
(try_begin),
(neg|ge, ":cur_time", "$flashing_time"),
(assign, "$flashing_time", ":cur_time"),
(try_end),
(try_begin),
(neg|ge, ":cur_time", "$energy_drop_time"),
(assign, "$energy_drop_time", ":cur_time"),
(try_end),
(try_begin),
(neg|ge, ":cur_time", "$sprint_time"),
(assign, "$sprint_time", ":cur_time"),
(try_end),
(try_begin),
(neg|ge, ":tmp_curr_en", 5000),
(neg|key_is_down, "$key_sprint"), # 是否正在奔跑
(neg|eq, "$ready", 2), # 是否正在蓄力ready!=2
(neg|main_hero_fallen, 0),
(neg|agent_slot_ge, ":tmp_player_agent", 372, 1), # agent的槽33的值为0则关闭气击模式
(try_begin),
(store_sub, ":var_3", ":cur_time", "$energy_restore_time"),
(ge, ":var_3", 200),
(assign, "$energy_restore_time", ":cur_time"),
(val_add, ":tmp_curr_en", "$p_ironflesh"),
(val_min, ":tmp_curr_en", 5000),
(troop_set_slot, "$current_commander", 359, ":tmp_curr_en"),
(try_begin),
(ge, ":tmp_curr_en", 5000),
(display_message, "str_energy_restored"),
(try_end),
(store_div, ":var_4", ":tmp_curr_en", 5),
(val_add, ":var_4", 8),
(position_set_x, pos1, ":var_4"),
(position_set_y, pos1, 650),
(overlay_set_size, "$energy_bar", pos1),
(overlay_set_color, "$energy_bar", 15854762),
(try_end),
(try_end),
(try_begin),
(this_or_next|agent_slot_ge, ":tmp_player_agent", 372, 1), # agent的槽33的值为1则开启气击模式
(eq, "$ready", 2),
(try_begin),
(neg|gt, "$flashing_switch", 0), # flashing_switch小于等于0
(store_sub, ":var_3", ":cur_time", "$flashing_time"),
(ge, ":var_3", 250),
(overlay_animate_to_color, "$energy_bar", 250, 16724736),
(store_add, "$flashing_time", ":cur_time", 250),
(assign, "$flashing_switch", 1),
(else_try),
(eq, "$flashing_switch", 1),
(store_sub, ":var_5", ":cur_time", "$flashing_time"),
(ge, ":var_5", 250),
(overlay_animate_to_color, "$energy_bar", 250, 15854762),
(store_add, "$flashing_time", ":cur_time", 250),
(assign, "$flashing_switch", 0),
(try_end),
(try_begin),
(troop_slot_eq, "$current_commander", 365, 1), # 末日风暴
(eq, "$key_curr_player_ready_active_skill", "$key_doomsday_storm"), # 判断当前玩家是放末日风暴吗
(eq, "$ready", 2),
#(neg|num_active_teams_le, 1),
(store_sub, ":var_3", ":cur_time", "$energy_drop_time"),
(ge, ":var_3", 200),
(assign, "$energy_drop_time", ":cur_time"),
(val_sub, ":tmp_curr_en", 50),
(troop_set_slot, "$current_commander", 359, ":tmp_curr_en"),
(try_end),
(try_begin),
(neg|gt, ":tmp_curr_en", 2),
(assign, "$ready", 0),
(overlay_animate_to_color, "$energy_bar", 1000, 15854762),
(display_message, "str_not_enough_energy"), # 气力不足
(try_end),
(store_div, ":var_4", ":tmp_curr_en", 5),
(val_add, ":var_4", 8),
(position_set_x, pos1, ":var_4"),
(position_set_y, pos1, 650),
(overlay_set_size, "$energy_bar", pos1),
(try_end),
(try_begin),
(ge, ":tmp_curr_en", 30),
(neg|main_hero_fallen, 0),
(agent_get_horse, ":var_6", ":tmp_player_agent"),
(neg|ge, ":var_6", 0),
(try_begin),
(troop_slot_eq, "$current_commander", 381, 1), # 能否使用奔跑
(key_is_down, "$key_sprint"),
(troop_slot_eq, "$current_commander", 361, 0),
(store_attribute_level, ":var_7", "$current_commander", ca_agility),
(store_sub, ":var_8", 63, ":var_7"),
(store_skill_level, ":var_9", skl_athletics, "$current_commander"),
(store_sub, ":var_10", 15, ":var_9"),
(val_div, ":var_8", 3),
(store_add, ":var_11", ":var_10", ":var_8"),
(val_div, ":var_11", 2),
(val_max, ":var_11", 10),
(troop_set_slot, "$current_commander", 361, ":var_11"),
#(val_mul, ":var_10", 1),
(val_add, ":var_9", 600),
(val_min, ":var_9", 600),
(agent_set_speed_modifier, ":tmp_player_agent", ":var_9"),
(try_end),
(try_begin),
(troop_slot_ge, "$current_commander", 361, 1),
(this_or_next|game_key_clicked, gk_character_window),
(neg|key_is_down, "$key_sprint"),
(troop_set_slot, "$current_commander", 361, 0),
(agent_set_speed_modifier, ":tmp_player_agent", 100),
(try_end),
(troop_slot_eq, "$current_commander", 381, 1), # 能否使用奔跑
(key_is_down, "$key_sprint"),
(this_or_next|game_key_is_down, gk_move_left),
(this_or_next|game_key_is_down, gk_move_right),
(this_or_next|game_key_is_down, gk_move_forward),
(game_key_is_down, gk_move_backward),
(store_sub, ":var_3", ":cur_time", "$sprint_time"),
(ge, ":var_3", 50),
(assign, "$sprint_time", ":cur_time"),
(troop_get_slot, ":var_12", "$current_commander", 361),
(val_sub, ":tmp_curr_en", ":var_12"),
(val_sub, ":tmp_curr_en", 10),
(val_max, ":tmp_curr_en", 1),
(troop_set_slot, "$current_commander", 359, ":tmp_curr_en"),
(try_begin),
(neg|ge, ":tmp_curr_en", 30),
(troop_set_slot, "$current_commander", 361, 0), # 361是奔跑相关
(display_message, "str_not_enough_energy"),
(agent_set_speed_modifier, ":tmp_player_agent", 100),
(try_end),
(store_div, ":var_4", ":tmp_curr_en", 5),
(val_add, ":var_4", 8),
(position_set_x, pos1, ":var_4"),
(position_set_y, pos1, 650),
(overlay_set_size, "$energy_bar", pos1),
(try_end),
(try_begin),
(this_or_next|main_hero_fallen, 0),
(key_clicked, key_tab),
(troop_slot_ge, "$current_commander", 361, 1),
(troop_set_slot, "$current_commander", 361, 0),
(agent_set_speed_modifier, ":tmp_player_agent", 100),
(try_end),
]),复制代码
(点击展开 / 收起)
("sp_skill_damage_display",
[
(store_script_param, ":var_0", 1), # 收到伤害的agent
(store_script_param, ":var_1", 2), # 实际伤害
(store_script_param, ":var_2", 3), # 施加伤害的agent
(store_agent_hit_points, ":var_3", ":var_0", 1), # 造成绝对生命值
(val_sub, ":var_3", ":var_1"),
(agent_set_hit_points, ":var_0", ":var_3"),
(get_player_agent_no, ":var_4"),
(try_begin), # 如果施加伤害的是玩家,就显示技能打了多少伤害
(eq, ":var_2", ":var_4"),
(assign, reg15, ":var_1"),
(display_message, "str_delivered_damage_zhudong"),
(try_end),
(try_begin), # 如果受到伤害的是玩家,就显示技能受到多少伤害
(eq, ":var_0", ":var_4"),
(assign, reg16, ":var_1"),
(display_message, "str_delivered_passive_damage_zhudong", 0xFF3300),
(try_end),
(try_begin),
(neg|ge, ":var_3", 1),
(try_begin),
#(eq, ":var_2", ":var_4"),
(agent_get_troop_id, ":var_5", ":var_0"),
#(agent_get_troop_id, ":var_7", ":var_2"),
(str_store_troop_name, s1, ":var_5"),
(agent_get_troop_id, ":var_7", ":var_2"),
(str_store_troop_name, s2, ":var_7"),
# (try_begin),
# (troop_is_hero, ":var_5"),
# (display_message, "str_wounded_by", 0x33CC99),
# (else_try),
# (display_message, "str_killed_by", 0x33CC99),
# (try_end),
# (set_show_messages, 0),
(agent_deliver_damage_to_agent, ":var_2", ":var_0", 300),
# (set_show_messages, 1),
#(else_try),
# (agent_deliver_damage_to_agent, ":var_2", ":var_0", 300),
(try_end),
(try_end),
]),复制代码
(点击展开 / 收起)
("calc_zhudong_damage", # 计算主动技能的伤害值,最终结果存储在reg20中
[
(store_script_param, ":curr_troop_id", 1), # 传入的troop
(store_script_param, ":calc_id", 2), # 计算的id,不同的技能用不用的计算方法: 1风卷残云;2地龙震雷;3霸王崩山;4烽火燎原;5末日风暴;6死神之吻;7气击模式;8斗气暴击
#(agent_get_troop_id, ":curr_troop_id", ":curr_agent"), # 获取troop
# 获取相关的技能点
(store_skill_level, ":var_skl_power_strike", skl_power_strike, ":curr_troop_id"), # 获取强击2
(assign, ":dst_damage", 0), # 最终的伤害值
# 计算公式:基础伤害+技能等级加成+熟练度加成385是临时的,386是正式加伤害的
# 这个全局变量是使用多少次加1点伤害:"$shu_lian"
# 这个全局变量是最多加多少伤害:"$shu_lian_max"
(try_begin), # 气击模式
(eq, ":calc_id", 7),
(val_add, ":dst_damage", 8),
(val_mul, ":var_skl_power_strike", 1),
(val_add, ":dst_damage", ":var_skl_power_strike"),
(else_try), # 斗气暴击
(eq, ":calc_id", 8),
(val_add, ":dst_damage", 8),
(val_mul, ":var_skl_power_strike", 2),
(val_add, ":dst_damage", ":var_skl_power_strike"),
(else_try),
(this_or_next|eq, ":calc_id", 1),
(this_or_next|eq, ":calc_id", 2),
(this_or_next|eq, ":calc_id", 3),
(this_or_next|eq, ":calc_id", 4),
(this_or_next|eq, ":calc_id", 5),
(eq, ":calc_id", 6),
# 需要获取是否是同伴
(assign, ":tmp_is_npc", 0), # 如果是同伴,则需要限制熟练度
(try_begin),
(this_or_next|eq, ":curr_troop_id", "trp_player"), # 玩家自己
(this_or_next|eq, ":curr_troop_id", "trp_npc_adonja"), # 安 冬 嘉
(this_or_next|eq, ":curr_troop_id", "trp_npc_leslie"), # 莱 丝 莉
(this_or_next|eq, ":curr_troop_id", "trp_npc_ansen"), # 安 森
(this_or_next|eq, ":curr_troop_id", "trp_npc_riva"), # 丽 娃
(this_or_next|eq, ":curr_troop_id", "trp_npc_kassim"), # 卡 西 姆
(this_or_next|eq, ":curr_troop_id", "trp_npc_lethaldiran"), # 里 萨 迪 兰
(this_or_next|eq, ":curr_troop_id", "trp_npc_jocelyn"), # 乔 斯 林 爵 士
(this_or_next|eq, ":curr_troop_id", "trp_npc_alistair"), # 阿 利 斯 泰 爵 士
(this_or_next|eq, ":curr_troop_id", "trp_npc_rayne"), # 雷 恩 爵 士
(this_or_next|eq, ":curr_troop_id", "trp_npc_julia"), # 朱 莉 娅
(this_or_next|eq, ":curr_troop_id", "trp_npc_frederick"), # 弗 雷 德 里
(this_or_next|eq, ":curr_troop_id", "trp_npc_ediz"), # 艾 迪 兹
(this_or_next|eq, ":curr_troop_id", "trp_npc_sara"), # “ 狐 狸 精 ” 莎 拉
(this_or_next|eq, ":curr_troop_id", "trp_npc_donavan"), # 多 诺 万
(this_or_next|eq, ":curr_troop_id", "trp_npc_diev"), # 迪 耶 夫 沃 登 森
(this_or_next|eq, ":curr_troop_id", "trp_npc_alyssa"), # 艾 莉 莎
(this_or_next|eq, ":curr_troop_id", "trp_npc_roland"), # 罗 兰 爵 士
(this_or_next|eq, ":curr_troop_id", "trp_npc_kaverra"), # 卡 薇 拉
(this_or_next|eq, ":curr_troop_id", "trp_npc_sigismund"), # 西 吉 斯 蒙 德 · 辛 克 莱
(this_or_next|eq, ":curr_troop_id", "trp_npc_boadice"), # 宝 黛 丝
(this_or_next|eq, ":curr_troop_id", "trp_hero_Wendiiaelf"), # 温 蒂 尔 芙
(this_or_next|eq, ":curr_troop_id", "trp_John_Doukas"), # 约 翰 · 杜 卡 斯
(eq, ":curr_troop_id", "trp_kingdom_1_pretender"), # 潘 德 的 达 利 昂 爵 士
# (this_or_next|eq, ":curr_troop_id", "trp_Servant_1"), # “ 剑 帝 ” 杰 克 · 赛 尔 特
# (this_or_next|eq, ":curr_troop_id", "trp_Servant_2"), # “尖 耳” 斯 宾 薇 尔
# (this_or_next|eq, ":curr_troop_id", "trp_Servant_3"), # “ 女 仆 ” 摩 尔 迦 娜
# (this_or_next|eq, ":curr_troop_id", "trp_Mercenary_npc9_2"), # 烬
# (this_or_next|eq, ":curr_troop_id", "trp_hero_alaric"), # 喧闹者
# (this_or_next|eq, ":curr_troop_id", "trp_malian"), # " 女 武 神 " 妮 亚
# (this_or_next|eq, ":curr_troop_id", "trp_senie"), # " 色 孽 神 选 " 莲 雅
# (this_or_next|eq, ":curr_troop_id", "trp_BOSS_Jier"), # 精 灵 伊 巴 蕾 拉
# (this_or_next|eq, ":curr_troop_id", "trp_BOSS_Jierji"), # 精 灵 巴 克
# (this_or_next|eq, ":curr_troop_id", "trp_ALLK_npc2_1_11_11"), # “ 异 端 大 祭 司 ” 莱 米
# (this_or_next|eq, ":curr_troop_id", "trp_heretic_leader"), # 厄 兰 基 露
# (this_or_next|eq, ":curr_troop_id", "trp_myst_leader"), # 史 尔 基
# (this_or_next|eq, ":curr_troop_id", "trp_singal_leader"), # 芬 涅 尔
# (this_or_next|eq, ":curr_troop_id", "trp_vanskerry_leader"), # “鹰 之 团”冲 锋 队 长 格 斯
# (this_or_next|eq, ":curr_troop_id", "trp_snake_leader"), # 洛 菲 尔
# (this_or_next|eq, ":curr_troop_id", "trp_npc_aila"), #“ 侍 山 圣 女 ” 贝 拉
# (eq, ":curr_troop_id", "trp_npc_Lisi"), #“ 湖 神 仙 女 ” 莉 莉 丝
(assign, ":tmp_is_npc", 1),
(try_end),
(try_begin), # 风卷残云
(eq, ":calc_id", 1),
(val_add, ":dst_damage", 5), # 基础伤害
(val_add, ":dst_damage", ":var_skl_power_strike"),
(try_begin),
(eq, ":tmp_is_npc", 1),
(troop_get_slot, ":curr_shulian_value", ":curr_troop_id", 386),
(val_add, ":dst_damage", ":curr_shulian_value"),
(else_try),
(val_add, ":dst_damage", 20), # 敌人AI额外伤害
(try_end),
(else_try), # 地龙震雷
(eq, ":calc_id", 2),
(val_add, ":dst_damage", 15), # 基础伤害
(val_add, ":dst_damage", ":var_skl_power_strike"),
(try_begin),
(eq, ":tmp_is_npc", 1),
(troop_get_slot, ":curr_shulian_value", ":curr_troop_id", 388),
(val_add, ":dst_damage", ":curr_shulian_value"),
(else_try),
(val_add, ":dst_damage", 20), # 敌人AI额外伤害
(try_end),
(else_try), # 霸王崩山
(eq, ":calc_id", 3),
(val_add, ":dst_damage", 15), # 基础伤害
(val_add, ":dst_damage", ":var_skl_power_strike"),
(try_begin),
(eq, ":tmp_is_npc", 1),
(troop_get_slot, ":curr_shulian_value", ":curr_troop_id", 390),
(val_add, ":dst_damage", ":curr_shulian_value"),
(else_try),
(val_add, ":dst_damage", 20), # 敌人AI额外伤害
(try_end),
(else_try), # 烽火燎原
(eq, ":calc_id", 4),
(val_add, ":dst_damage", 15), # 基础伤害
(val_add, ":dst_damage", ":var_skl_power_strike"),
(try_begin),
(eq, ":tmp_is_npc", 1),
(troop_get_slot, ":curr_shulian_value", ":curr_troop_id", 392),
(val_add, ":dst_damage", ":curr_shulian_value"),
(else_try),
(val_add, ":dst_damage", 20), # 敌人AI额外伤害
(try_end),
(else_try), # 末日风暴
(eq, ":calc_id", 5),
(val_add, ":dst_damage", 5), # 基础伤害
(store_skill_level, ":var_skl_riding", skl_riding, ":curr_troop_id"), # 获取骑术7-1
(val_add, ":dst_damage", ":var_skl_riding"),
(try_begin),
(eq, ":tmp_is_npc", 1),
(troop_get_slot, ":curr_shulian_value", ":curr_troop_id", 394),
(val_add, ":dst_damage", ":curr_shulian_value"),
(else_try),
(val_add, ":dst_damage", 15), # 敌人AI额外伤害
(try_end),
(else_try), # 死神之吻
(eq, ":calc_id", 6),
(val_add, ":dst_damage", 15), # 基础伤害
(store_skill_level, ":var_skl_power_draw", skl_power_draw, ":curr_troop_id"), # 获取强弓4
(val_add, ":dst_damage", ":var_skl_power_draw"),
(try_begin),
(eq, ":tmp_is_npc", 1),
(troop_get_slot, ":curr_shulian_value", ":curr_troop_id", 396),
(val_add, ":dst_damage", ":curr_shulian_value"),
(else_try),
(val_add, ":dst_damage", 20), # 敌人AI额外伤害
(try_end),
(try_end),
(try_end),
# 最后伤害进行上下5点的浮动
(store_sub, ":dst_damage_min", ":dst_damage", 5),
(store_add, ":dst_damage_max", ":dst_damage", 5),
(val_max, ":dst_damage_min", 1),
(store_random_in_range, reg20, ":dst_damage_min", ":dst_damage_max"), # 这里存储浮动的值
(assign, reg19, ":dst_damage"), # 这里存储没有浮动的值
]),复制代码
(点击展开 / 收起)
("xuan_feng",
[
(troop_get_type, ":var_0", "$current_commander"),
(try_begin), # 播放释放技能生效
(this_or_next|eq, ":var_0", 2),
(eq, ":var_0", 1),
(play_sound, "snd_woman_ha"), # 声音资源
(else_try),
(play_sound, "snd_man_ha"), # 声音资源
(try_end),
# 释放成功的消息提示
(str_store_troop_name, s1, "$current_commander"),
(display_message, "str_clouly_storm", 0xCC22CC),
(assign, ":var_1", 0),
(assign, ":var_2", 700),
(get_player_agent_no, ":var_3"),
(agent_get_horse, ":var_4", ":var_3"),
(try_begin),
(neg|ge, ":var_4", 0),
(agent_set_animation, ":var_3", "anim_unused_human_anim_72"), # 动作资源
(else_try),
(agent_set_animation, ":var_3", "anim_unused_human_anim_72", 1), # 动作资源
(try_end),
(agent_get_position, pos12, ":var_3"),
(position_move_z, pos12, 50),
(particle_system_burst, "psys_dust_1", pos12, 15), # 释放技能粒子特效资源
(particle_system_burst, "psys_dust_1", pos12, 15), # 释放技能粒子特效资源
# (store_div, ":var_5", "$vitality", 4),
# (val_min, ":var_5", 8),
# (store_mul, ":var_6", "$vitality", 2),
# (val_add, ":var_6", "$shu_lian"),
# (val_add, ":var_6", 1),
# (store_mul, ":var_7", "$vitality", 2),
# (val_add, ":var_7", 1),
(store_random_in_range, ":var_5", 10, 15),
(call_script, "script_calc_zhudong_damage", "$current_commander", 1),
(assign, ":tmp_damage", reg20),
(agent_get_team, ":var_8", ":var_3"),
(try_for_agents, ":var_9"),
(neg|eq, ":var_9", ":var_3"), # 不是玩家
(neg|ge, ":var_1", ":var_5"),
(agent_is_alive, ":var_9"),
(agent_get_position, pos2, ":var_9"),
(get_distance_between_positions, ":var_10", pos12, pos2),
(neg|ge, ":var_10", ":var_2"),
(try_begin),
(agent_is_human, ":var_9"),
(agent_get_team, ":var_11", ":var_9"),
(teams_are_enemies, ":var_11", ":var_8"),
#(store_random_in_range, ":var_12", ":var_7", ":var_6"),
(try_begin),
(this_or_next|neg|ge, ":var_10", 500),
(gt, ":tmp_damage", 35),
(assign, ":var_13", "anim_unused_human_anim_67"), # 敌人被击动作资源,战团自带的应该
(else_try),
(store_random_in_range, ":var_13", "anim_unused_human_anim_68", "anim_unused_human_anim_72"), # 敌人被击动作资源 战团自带的应该
(try_end),
(agent_get_troop_id, ":var_14", ":var_9"),
(troop_get_type, ":var_15", ":var_14"),
(try_begin),
(eq, ":var_15", 0),
(agent_play_sound, ":var_9", "snd_man_hit"), # 敌人被击生效资源
(else_try),
(eq, ":var_15", 1),
(agent_play_sound, ":var_9", "snd_woman_hit"), # 敌人被击生效资源
(else_try),
(eq, ":var_15", 2),
(agent_play_sound, ":var_9", "snd_Zombi_hit"), # 敌人被击生效资源
(else_try),
# (eq, ":var_15", 3),
(agent_play_sound, ":var_9", "snd_troll_hit"), # 敌人被击生效资源
(try_end),
(try_begin),
(agent_get_horse, ":var_16", ":var_9"),
(ge, ":var_16", 0),
(agent_set_animation, ":var_16", "anim_horse_rear"), # 马匹被击动作资源,战团自带的应该
(agent_play_sound, ":var_16", "snd_neigh"), # 马匹被击生效资源
(set_show_messages, 0),
(agent_deliver_damage_to_agent, ":var_3", ":var_16", ":tmp_damage"),
(set_show_messages, 1),
(agent_set_animation, ":var_9", ":var_13", 1),
(else_try),
(agent_set_animation, ":var_9", ":var_13"),
(try_end),
(call_script, "script_sp_skill_damage_display", ":var_9", ":tmp_damage", ":var_3"),
(val_add, ":var_1", 1),
(else_try),
(neg|agent_is_human, ":var_9"),
(agent_get_rider, ":var_17", ":var_9"),
(neg|ge, ":var_17", 0),
(agent_set_animation, ":var_9", "anim_horse_rear"), # 马匹被击动作资源,战团自带的应该
(agent_play_sound, ":var_9", "snd_neigh"), # 马匹被击生效资源
(set_show_messages, 0),
(agent_deliver_damage_to_agent, ":var_3", ":var_9", ":tmp_damage"),
(set_show_messages, 1),
(try_end),
(try_end),
(play_sound, "snd_explosion1"), # 技能释放声效资源
(troop_get_slot, ":curr_shulian_tmp_value", "$current_commander", 385), # 风卷残云临时值
(val_add, ":curr_shulian_tmp_value", 1),
(troop_set_slot, "$current_commander", 385, ":curr_shulian_tmp_value"),
(try_begin),
(ge, ":curr_shulian_tmp_value", "$shu_lian"),
(troop_get_slot, ":curr_shulian_value", "$current_commander", 386),
(val_add, ":curr_shulian_value", 1),
(val_min, ":curr_shulian_value", "$shu_lian_max"),
(troop_set_slot, "$current_commander", 386, ":curr_shulian_value"),
(troop_set_slot, "$current_commander", 385, 0),
(try_end),
]),复制代码
(点击展开 / 收起)
("ai_xuan_feng",
[
(store_script_param_1, ":tmp_curr_troop_agent_no"), # 获取传入进来的操作代理对象
(agent_get_troop_id, ":tmp_troop_id", ":tmp_curr_troop_agent_no"), # 获取troop的id
(assign, ":xuanfeng_flag", 1), # 释放风卷残云就为1
# 获取人物性别播放音效
(troop_get_type, ":tmp_troop_gender", ":tmp_troop_id"),
(try_begin),
(this_or_next|eq, ":tmp_troop_gender", 2),
(eq, ":tmp_troop_gender", 1),
(agent_play_sound, ":tmp_curr_troop_agent_no", "snd_woman_ha"),
(else_try),
(agent_play_sound, ":tmp_curr_troop_agent_no", "snd_man_ha"),
(try_end),
(agent_get_position, pos12, ":tmp_curr_troop_agent_no"),
(get_player_agent_no, ":tmp_player_agent_id"), # 获取了玩家的代理id
# 释放技能动作
(agent_get_horse, ":tmp_troop_horse_agent", ":tmp_curr_troop_agent_no"), # 返回对象骑的马对象代理,没有骑=-1
(try_begin), # 骑马了,只能是ai放风卷残云
(neg|eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(troop_slot_eq, ":tmp_troop_id", 360, 1), # 兵种是否拥有风卷残云
(ge, ":tmp_troop_horse_agent", 0),
(agent_set_animation, ":tmp_curr_troop_agent_no", "anim_unused_human_anim_72", 1),
(assign, ":xuanfeng_flag", 1),
(else_try), # 没骑马的情况,可以ai放风卷残云,也可以ai或者玩家放地雷震龙
(try_begin), # 玩家释放地龙震雷
(eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(eq, "$key_curr_player_ready_active_skill", "$key_darkness_thund"), # 判断当前玩家是放地雷震龙吗
(troop_slot_eq, ":tmp_troop_id", 362, 1), # 兵种是否拥有地龙震雷
(agent_set_animation, ":tmp_curr_troop_agent_no", "anim_release_slashleft_twohanded"),
(assign, ":xuanfeng_flag", 2),
(else_try), # 电脑释放地龙震雷
(neg|eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(troop_slot_eq, ":tmp_troop_id", 362, 1), # 兵种是否拥有地龙震雷
(agent_set_animation, ":tmp_curr_troop_agent_no", "anim_release_slashleft_twohanded"),
(assign, ":xuanfeng_flag", 2),
(else_try), # 电脑释放风卷残云
(neg|eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(troop_slot_eq, ":tmp_troop_id", 360, 1), # 兵种是否拥有风卷残云
(agent_set_animation, ":tmp_curr_troop_agent_no", "anim_unused_human_anim_72"),
(assign, ":xuanfeng_flag", 1),
(try_end),
(try_end),
(position_move_z, pos12, 20),
(assign, ":tmp_is_add_health", 0),
(try_begin), # 玩家释放地龙震雷
(eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(eq, "$key_curr_player_ready_active_skill", "$key_darkness_thund"), # 判断当前玩家是放地雷震龙吗
(troop_slot_eq, ":tmp_troop_id", 362, 1), # 兵种是否拥有地龙震雷
(particle_system_burst, "psys_dust_1_dark", pos12, 15), # 新增粒子特效
(particle_system_burst, "psys_dust_1_dark", pos12, 15),
(particle_system_burst, "psys_dust_1_dark", pos12, 30),
(agent_play_sound, ":tmp_curr_troop_agent_no", "snd_thunder1"), # 新增声效特效
(str_store_troop_name, s1, ":tmp_troop_id"),
(display_message, "str_darkness_thund", 0x663300),
(assign, ":tmp_is_add_health", 5),
(assign, ":xuanfeng_flag", 2),
(else_try), # 电脑释放地龙震雷
(neg|eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(troop_slot_eq, ":tmp_troop_id", 362, 1), # 兵种是否拥有地龙震雷
(particle_system_burst, "psys_dust_1_dark", pos12, 15), # 新增粒子特效
(particle_system_burst, "psys_dust_1_dark", pos12, 15),
(particle_system_burst, "psys_dust_1_dark", pos12, 30),
(agent_play_sound, ":tmp_curr_troop_agent_no", "snd_thunder1"), # 新增声效特效
(play_sound, "snd_thunder1_ex"), # 如果不是玩家控制,还会释放额外音效
(str_store_troop_name, s1, ":tmp_troop_id"),
(display_message, "str_darkness_thund", 0x663300),
(assign, ":tmp_is_add_health", 5),
(assign, ":xuanfeng_flag", 2),
(else_try), # 电脑释放风卷残云
(neg|eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(troop_slot_eq, ":tmp_troop_id", 360, 1), # 兵种是否拥有风卷残云
(particle_system_burst, "psys_dust_1", pos12, 15),
(particle_system_burst, "psys_dust_1", pos12, 15),
(agent_play_sound, ":tmp_curr_troop_agent_no", "snd_explosion1"),
(str_store_troop_name, s1, ":tmp_troop_id"),
(display_message, "str_clouly_storm", 0xCC22CC),
(assign, ":xuanfeng_flag", 1),
(try_end),
# 获取计算技能伤害所需的属性
# (store_attribute_level, ":tmp_ca_strength", ":tmp_troop_id", ca_strength),
# (store_attribute_level, ":tmp_ca_agility", ":tmp_troop_id", ca_agility),
# (store_attribute_level, ":tmp_ca_intelligence", ":tmp_troop_id", ca_intelligence),
# (val_add, ":tmp_ca_strength", ":tmp_ca_agility"),
# (store_add, ":tmp_total_preperties", ":tmp_ca_strength", ":tmp_ca_intelligence"), # 获取力敏智属性总和
# (store_div, ":tmp_total_preperties_div2", ":tmp_total_preperties", 2),
# (store_div, ":tmp_total_preperties_div8", ":tmp_total_preperties_div2", 4),
# (val_min, ":tmp_total_preperties_div8", 10),
# (val_add, ":tmp_total_preperties", 40),
# (val_clamp, ":tmp_total_preperties_div2", 20, 80),
# (assign, ":tmp_curr_en", 0),
#(assign, ":var_12", 0),
(assign, ":var_13", 700),
(call_script, "script_calc_zhudong_damage", ":tmp_troop_id", ":xuanfeng_flag"),
(assign, ":tmp_damage", reg20),
# (try_begin), # 进行技能伤害修正
# (neg|eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"), # 电脑释放
# (val_add, ":tmp_total_preperties", 50), #原始值50
# (val_add, ":var_13", "$ai_shu_lian"), # 原始值300
# (val_add, ":tmp_total_preperties_div8", 5),
# (try_end),
(agent_get_team, ":tmp_agent_get_team", ":tmp_curr_troop_agent_no"),
(store_random_in_range, ":tmp_total_preperties_div8", 10, 15),
(try_for_agents, ":tmp_for_agent_index"), # 遍历所有的agent
(neg|ge, ":tmp_curr_en", ":tmp_total_preperties_div8"),
(agent_is_alive, ":tmp_for_agent_index"),
(agent_get_position, pos2, ":tmp_for_agent_index"),
(get_distance_between_positions, ":var_16", pos12, pos2),
(neg|ge, ":var_16", ":var_13"),
(try_begin),
(agent_is_human, ":tmp_for_agent_index"),
(agent_get_team, ":var_17", ":tmp_for_agent_index"),
(teams_are_enemies, ":var_17", ":tmp_agent_get_team"),
#(store_random_in_range, ":var_18", ":tmp_total_preperties_div2", ":tmp_total_preperties"),
# (try_begin),
# (eq, ":tmp_for_agent_index", ":tmp_player_agent_id"),
# (val_div, ":var_18", 2),
# (try_end),
(agent_get_troop_id, ":var_19", ":tmp_for_agent_index"),
(troop_get_type, ":var_20", ":var_19"),
(try_begin),
(eq, ":var_20", 0),
(agent_play_sound, ":tmp_for_agent_index", "snd_man_hit"),
(else_try),
(eq, ":var_20", 1),
(agent_play_sound, ":tmp_for_agent_index", "snd_woman_hit"),
(else_try),
(eq, ":var_20", 2),
(agent_play_sound, ":tmp_for_agent_index", "snd_Zombi_hit"),
(else_try),
(eq, ":var_20", 3),
(agent_play_sound, ":tmp_for_agent_index", "snd_troll_hit"),
(try_end),
(try_begin),
(agent_get_horse, ":tmp_troop_horse_agent", ":tmp_for_agent_index"),
(gt, ":tmp_troop_horse_agent", 0),
(agent_set_animation, ":tmp_for_agent_index", "anim_unused_human_anim_67", 1),
(agent_play_sound, ":tmp_troop_horse_agent", "snd_neigh"),
(try_begin), # 如果是ai就不打印伤害值显示
(neg|eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(set_show_messages, 0),
(agent_deliver_damage_to_agent, ":tmp_curr_troop_agent_no", ":tmp_troop_horse_agent", ":tmp_damage"),
(set_show_messages, 1),
(agent_set_animation, ":tmp_troop_horse_agent", "anim_horse_rear"),
(else_try),
(eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(agent_set_animation, ":tmp_troop_horse_agent", "anim_horse_rear"),
(agent_deliver_damage_to_agent, ":tmp_curr_troop_agent_no", ":tmp_troop_horse_agent", ":tmp_damage"),
(try_end),
(else_try),
(agent_set_animation, ":tmp_for_agent_index", "anim_unused_human_anim_75"), # 新增动作资源
(try_end),
(call_script, "script_sp_skill_damage_display", ":tmp_for_agent_index", ":tmp_damage", ":tmp_curr_troop_agent_no"),
(try_begin),
# 如果tmp_is_add_health大于0,则获取吸血的参数
(gt, ":tmp_is_add_health", 0),
(val_add, ":tmp_is_add_health", 1),
(try_end),
(val_add, ":tmp_curr_en", 1),
(else_try),
(neg|agent_is_human, ":tmp_for_agent_index"),
(agent_get_rider, ":var_21", ":tmp_for_agent_index"),
(neg|ge, ":var_21", 0),
(agent_set_animation, ":tmp_for_agent_index", "anim_horse_rear"),
(agent_play_sound, ":tmp_for_agent_index", "snd_neigh"),
(set_show_messages, 0),
(agent_deliver_damage_to_agent, ":tmp_curr_troop_agent_no", ":tmp_for_agent_index", ":tmp_damage"),
(set_show_messages, 1),
#(val_add, ":var_12", 1),
(try_end),
(try_end),
# (try_begin), # 如果是ai释放
# (neg|eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
# (val_add, ":tmp_curr_en", ":var_12"),
# (ge, ":tmp_curr_en", 1),
# (store_agent_hit_points, ":var_22", ":tmp_curr_troop_agent_no"),
# (val_add, ":var_22", ":tmp_curr_en"),
# (agent_set_hit_points, ":tmp_curr_troop_agent_no", ":var_22"),
# (try_end),
# 吸血
(store_agent_hit_points, ":curr_relative_health", ":tmp_curr_troop_agent_no", 0),
(val_add, ":curr_relative_health", ":tmp_is_add_health"),
(agent_set_hit_points, ":tmp_curr_troop_agent_no", ":curr_relative_health", 0),
# 最后加熟练度伤害
(try_begin),
(eq, ":xuanfeng_flag", 1),
(troop_get_slot, ":curr_shulian_tmp_value", ":tmp_troop_id", 385), # 风卷残云临时值
(val_add, ":curr_shulian_tmp_value", 1),
(troop_set_slot, ":tmp_troop_id", 385, ":curr_shulian_tmp_value"),
(try_begin),
(ge, ":curr_shulian_tmp_value", "$shu_lian"),
(troop_get_slot, ":curr_shulian_value", ":tmp_troop_id", 386),
(val_add, ":curr_shulian_value", 1),
(val_min, ":curr_shulian_value", "$shu_lian_max"),
(troop_set_slot, ":tmp_troop_id", 386, ":curr_shulian_value"),
(troop_set_slot, ":tmp_troop_id", 385, 0),
(try_end),
(else_try),
(eq, ":xuanfeng_flag", 2),
(troop_get_slot, ":curr_shulian_tmp_value", ":tmp_troop_id", 387), # 地雷震龙临时值
(val_add, ":curr_shulian_tmp_value", 1),
(troop_set_slot, ":tmp_troop_id", 387, ":curr_shulian_tmp_value"),
(try_begin),
(ge, ":curr_shulian_tmp_value", "$shu_lian"),
(troop_get_slot, ":curr_shulian_value", ":tmp_troop_id", 388),
(val_add, ":curr_shulian_value", 1),
(val_min, ":curr_shulian_value", "$shu_lian_max"),
(troop_set_slot, ":tmp_troop_id", 388, ":curr_shulian_value"),
(troop_set_slot, ":tmp_troop_id", 387, 0),
(try_end),
(try_end),
]),复制代码
(点击展开 / 收起)
("gather_energy",
[
(try_begin),
(eq, "$gather_begin", 0),
(store_mission_timer_b_msec, "$gather_begin"),
(try_end),
(get_player_agent_no, ":var_0"),
(agent_get_horse, ":var_1", ":var_0"),
(try_begin),
(neg|ge, ":var_1", 0),
(agent_set_animation, ":var_0", "anim_unused_human_anim_73"),
(try_end),
(store_mission_timer_b_msec, ":var_2"),
(val_sub, ":var_2", "$gather_begin"),
(try_begin),
(eq, "$ready", -1),
(troop_get_type, ":var_3", "$current_commander"),
(try_begin),
(eq, ":var_3", 1),
(play_sound, "snd_woman_jiqi"),
(else_try),
(play_sound, "snd_man_jiqi"),
(try_end),
(agent_get_position, pos1, ":var_0"),
(try_begin),
(ge, ":var_1", 0),
(position_move_z, pos1, 360),
(try_begin),
(eq, "$key_curr_player_ready_active_skill", "$key_special_skills"), # 判断当前玩家是按下的风卷残云的键吗
(this_or_next|troop_slot_eq, "$current_commander", 363, 1), # 兵种是否拥有霸王崩山劲或烽火燎原
(troop_slot_eq, "$current_commander", 364, 1),
(agent_get_horse, ":var_4", ":var_0"),
(agent_set_animation, ":var_0", "anim_ride_rear"),
(agent_set_animation, ":var_4", "anim_horse_rear"),
(try_end),
(else_try),
(position_move_z, pos1, 260),
(try_end),
(particle_system_burst, "psys_sparks_1", pos1, 0),
(position_move_x, pos1, -160),
(particle_system_burst, "psys_sparks_2", pos1, 0),
(position_move_x, pos1, 320),
(particle_system_burst, "psys_sparks_3", pos1, 0),
(assign, "$ready", -2),
(try_end),
(try_begin),
#(eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(ge, ":var_2", 2000),
(eq, "$key_curr_player_ready_active_skill", "$key_doomsday_storm"), # 判断当前玩家是放末日风暴吗
(troop_slot_eq, "$current_commander", 365, 1), # 兵种是否拥有末日风暴
(agent_get_horse, ":var_1", ":var_0"),
(ge, ":var_1", 0),
(play_sound, "snd_man_ha"),
(assign, "$fengbao_agent", ":var_0"),
(assign, "$ready", 2),
(str_store_troop_name, s1, "$current_commander"),
(display_message, "str_doomsday_storm", 0x8186C3),
# 玩家加末日风暴的熟练度
(troop_get_slot, ":curr_shulian_tmp_value", "$current_commander", 393), # 风卷残云临时值
(val_add, ":curr_shulian_tmp_value", 1),
(troop_set_slot, "$current_commander", 393, ":curr_shulian_tmp_value"),
(try_begin),
(ge, ":curr_shulian_tmp_value", "$shu_lian"),
(troop_get_slot, ":curr_shulian_value", "$current_commander", 394),
(val_add, ":curr_shulian_value", 1),
(store_div, ":half_shu_lian_max", "$shu_lian_max", 2),
(val_min, ":curr_shulian_value", ":half_shu_lian_max"),
(troop_set_slot, "$current_commander", 394, ":curr_shulian_value"),
(troop_set_slot, "$current_commander", 393, 0),
(try_end),
(else_try),
(ge, ":var_2", 1000),
#(eq, ":tmp_curr_troop_agent_no", ":tmp_player_agent_id"),
(eq, "$key_curr_player_ready_active_skill", "$key_special_skills"), # 判断当前玩家是按下的风卷残云的键吗
(this_or_next|troop_slot_eq, "$current_commander", 363, 1), # 兵种是否拥有霸王崩山劲或烽火燎原
(troop_slot_eq, "$current_commander", 364, 1),
(assign, "$ready", 1),
(assign, "$gather_begin", 0),
(try_begin),
(eq, "$ready", 1),
(assign, "$ready", 0),
(get_player_agent_no, ":var_0"),
(agent_get_horse, ":var_1", ":var_0"),
(try_begin),
(troop_slot_eq, "$current_commander", 363, 1),
(neg|ge, ":var_1", 0),
(call_script, "script_cf_beng_shan_jin", ":var_0"),
#(display_message, "str_powerful_strike", 0xFFCC00),
(else_try),
(ge, ":var_1", 0),
(troop_slot_eq, "$current_commander", 364, 1),
(call_script, "script_yu_jian_liao_yuan", ":var_0"),
#(display_message, "str_prairie_fire", 0xFF0000),
(try_end),
(store_mul, ":var_5", "$p_ironflesh", 350),
(store_sub, ":var_6", 6500, ":var_5"),
(val_clamp, ":var_6", 2000, 4990),
(troop_get_slot, ":var_7", "$current_commander", 359),
(val_sub, ":var_7", ":var_6"),
(troop_set_slot, "$current_commander", 359, ":var_7"),
#(troop_set_slot, "$current_commander", 359, 4900),
(assign, reg29, 2),
(try_end),
(try_end),
]),复制代码
(点击展开 / 收起)
("yu_jian_liao_yuan",
[
(store_script_param_1, ":tmp_curr_troop_agent_no"), # 获取传入进来的操作代理对象
(agent_get_troop_id, ":tmp_troop_id", ":tmp_curr_troop_agent_no"), # 获取troop的id
(troop_get_type, ":var_0", ":tmp_troop_id"),
(try_begin),
(eq, ":var_0", 1),
(play_sound, "snd_woman_s_ha"),
(else_try),
(play_sound, "snd_man_s_ha"),
(try_end),
(str_store_troop_name, s1, ":tmp_troop_id"),
(display_message, "str_prairie_fire", 0xFF0000),
(assign, ":var_1", 0),
(assign, ":var_2", 1200),
#(get_player_agent_no, ":var_3"),
(agent_set_animation, ":tmp_curr_troop_agent_no", "anim_release_slash_horseback_left", 1),
(agent_get_horse, ":var_4", ":tmp_curr_troop_agent_no"),
(agent_set_animation, ":var_4", "anim_horse_rear"),
(agent_get_position, pos12, ":tmp_curr_troop_agent_no"),
(position_move_z, pos12, 20),
(particle_system_burst, "psys_fire_s", pos12, 20),
(particle_system_burst, "psys_fire_s", pos12, 20),
(particle_system_burst, "psys_dust_1", pos12, 15),
(particle_system_burst, "psys_dust_1", pos12, 15),
# (store_div, ":var_5", "$vitality", 3),
# (val_min, ":var_5", 15),
# (store_mul, ":var_6", "$vitality", 4),
(store_random_in_range, ":var_5", 10, 15),
(call_script, "script_calc_zhudong_damage", ":tmp_troop_id", 4),
(assign, ":tmp_damage", reg20),
(get_player_agent_no, ":tmp_curr_player_agent"),
# (try_begin),
# (eq, ":tmp_curr_troop_agent_no", ":tmp_curr_player_agent"),
# (val_add, ":var_6", "$shu_lian"),
# (else_try),
# (val_add, ":var_6", "$ai_shu_lian"),
# (try_end),
# (store_mul, ":var_7", "$vitality", 2),
(agent_get_team, ":var_8", ":tmp_curr_troop_agent_no"),
(try_for_agents, ":var_9"),
(neg|ge, ":var_1", ":var_5"), # 限制范围伤害的数量
(neg|eq, ":var_9", ":tmp_curr_troop_agent_no"),
(agent_get_team, ":var_10", ":var_9"),
(teams_are_enemies, ":var_10", ":var_8"),
(agent_is_alive, ":var_9"),
(agent_get_position, pos2, ":var_9"),
(get_distance_between_positions, ":var_11", pos12, pos2),
(neg|ge, ":var_11", ":var_2"),
# (store_random_in_range, ":var_12", ":var_7", ":var_6"),
(try_begin),
(agent_is_human, ":var_9"),
(agent_set_animation, ":var_9", "anim_unused_human_anim_66"),
(agent_get_troop_id, ":var_13", ":var_9"),
(troop_get_type, ":var_14", ":var_13"),
(try_begin),
(eq, ":var_14", 0),
(agent_play_sound, ":var_9", "snd_man_hit"),
(else_try),
(eq, ":var_14", 1),
(agent_play_sound, ":var_9", "snd_woman_hit"),
(else_try),
(eq, ":var_14", 2),
(agent_play_sound, ":var_9", "snd_Zombi_hit"),
(else_try),
(eq, ":var_14", 3),
(agent_play_sound, ":var_9", "snd_troll_hit"),
(try_end),
(call_script, "script_sp_skill_damage_display", ":var_9", ":tmp_damage", ":tmp_curr_troop_agent_no"),
(try_begin),
(agent_get_horse, ":var_15", ":var_9"),
(ge, ":var_15", 0),
(set_show_messages, 0),
(agent_deliver_damage_to_agent, ":tmp_curr_troop_agent_no", ":var_15", ":tmp_damage"),
(set_show_messages, 1),
(try_end),
(val_add, ":var_1", 1),
(else_try),
(agent_get_rider, ":var_16", ":var_9"),
(neg|ge, ":var_16", 0),
(agent_set_animation, ":var_9", "anim_horse_rear"),
(agent_play_sound, ":var_9", "snd_neigh"),
(set_show_messages, 0),
(agent_deliver_damage_to_agent, ":tmp_curr_troop_agent_no", ":var_9", ":tmp_damage"),
(set_show_messages, 1),
(try_end),
(try_end),
(play_sound, "snd_explosion2"),
# 增加烽火燎原的熟练度
(troop_get_slot, ":curr_shulian_tmp_value", ":tmp_troop_id", 391), # 烽火燎原临时值
(val_add, ":curr_shulian_tmp_value", 1),
(troop_set_slot, ":tmp_troop_id", 391, ":curr_shulian_tmp_value"),
(try_begin),
(ge, ":curr_shulian_tmp_value", "$shu_lian"),
(troop_get_slot, ":curr_shulian_value", ":tmp_troop_id", 392),
(val_add, ":curr_shulian_value", 1),
(val_min, ":curr_shulian_value", "$shu_lian_max"),
(troop_set_slot, ":tmp_troop_id", 392, ":curr_shulian_value"),
(troop_set_slot, ":tmp_troop_id", 391, 0),
(try_end),
]),复制代码
(点击展开 / 收起)
("cf_beng_shan_jin",
[
(store_script_param_1, ":tmp_curr_troop_agent_no"), # 获取传入进来的操作代理对象
(agent_get_troop_id, ":tmp_troop_id", ":tmp_curr_troop_agent_no"), # 获取troop的id
(troop_get_type, ":var_0", ":tmp_troop_id"),
(try_begin),
(eq, ":var_0", 1),
(play_sound, "snd_woman_s_ha"),
(else_try),
(play_sound, "snd_man_s_ha"),
(try_end),
(str_store_troop_name, s1, ":tmp_troop_id"),
(display_message, "str_powerful_strike", 0xFFCC00),
(assign, ":var_1", 0),
(assign, ":var_2", 1000),
#(get_player_agent_no, ":var_3"),
(agent_set_animation, ":tmp_curr_troop_agent_no", "anim_unused_human_anim_74"),
(agent_get_position, pos12, ":tmp_curr_troop_agent_no"),
(position_move_z, pos12, 50),
(particle_system_burst, "psys_dust_1", pos12, 15),
(position_move_z, pos12, -30),
(particle_system_burst, "psys_fire_s", pos12, 20),
(particle_system_burst, "psys_fire_1", pos12, 10),
(particle_system_burst, "psys_fire_2", pos12, 10),
(particle_system_burst, "psys_fire_3", pos12, 10),
(particle_system_burst, "psys_fire_4", pos12, 10),
(particle_system_burst, "psys_fire_5", pos12, 10),
# (store_div, ":var_4", "$vitality", 3),
# (val_add, ":var_4", 5),
# (val_min, ":var_4", 18),
# (store_mul, ":var_5", "$vitality", 4),
(store_random_in_range, ":var_4", 10, 15),
(call_script, "script_calc_zhudong_damage", ":tmp_troop_id", 3),
(assign, ":tmp_damage", reg20),
(get_player_agent_no, ":tmp_curr_player_agent"),
# (try_begin),
# (eq, ":tmp_curr_troop_agent_no", ":tmp_curr_player_agent"),
# (val_add, ":var_5", "$shu_lian"),
# (else_try),
# (val_add, ":var_5", "$ai_shu_lian"),
# (try_end),
# #(val_add, ":var_5", "$shu_lian"),
# (store_mul, ":var_6", "$vitality", 2),
(agent_get_team, ":var_7", ":tmp_curr_troop_agent_no"),
(try_for_agents, ":var_8"),
(neg|eq, ":var_8", ":tmp_curr_troop_agent_no"),
(agent_get_team, ":var_9", ":var_8"),
(teams_are_enemies, ":var_9", ":var_7"),
(agent_is_alive, ":var_8"),
(neg|ge, ":var_1", ":var_4"),
(agent_get_position, pos2, ":var_8"),
(get_distance_between_positions, ":var_10", pos12, pos2),
(neg|ge, ":var_10", ":var_2"),
(try_begin),
(agent_is_human, ":var_8"),
(neg|ge, ":var_10", 120),
(store_sub, ":var_11", 120, ":var_10"),
(val_mul, ":var_11", -1),
(position_move_y, pos2, ":var_11"),
(position_set_z_to_ground_level, pos2),
(agent_set_position, ":var_8", pos2),
(try_end),
(try_begin),
(agent_is_human, ":var_8"),
# (store_random_in_range, ":var_12", ":var_6", ":var_5"),
(call_script, "script_sp_skill_damage_display", ":var_8", ":tmp_damage", ":tmp_curr_troop_agent_no"),
(store_random_in_range, ":var_13", "anim_unused_human_anim_64", "anim_unused_human_anim_66"),
(agent_set_animation, ":var_8", ":var_13"),
(agent_get_troop_id, ":var_14", ":var_8"),
(troop_get_type, ":var_15", ":var_14"),
(try_begin),
(eq, ":var_15", 0),
(agent_play_sound, ":var_8", "snd_man_hit"),
(else_try),
(eq, ":var_15", 1),
(agent_play_sound, ":var_8", "snd_woman_hit"),
(else_try),
(eq, ":var_15", 2),
(agent_play_sound, ":var_8", "snd_Zombi_hit"),
(else_try),
(eq, ":var_15", 3),
(agent_play_sound, ":var_8", "snd_troll_hit"),
(try_end),
(try_begin),
(agent_get_horse, ":var_16", ":var_8"),
(ge, ":var_16", 0),
(agent_play_sound, ":var_16", "snd_neigh"),
(agent_set_hit_points, ":var_16", 0, 0),
(set_show_messages, 0),
(agent_deliver_damage_to_agent, ":tmp_curr_troop_agent_no", ":var_16", ":tmp_damage"),
(set_show_messages, 1),
(try_end),
(val_add, ":var_1", 1),
(else_try),
(agent_get_rider, ":var_17", ":var_8"),
(neg|ge, ":var_17", 0),
(agent_set_hit_points, ":var_8", 0, 0),
(agent_play_sound, ":var_8", "snd_neigh"),
(set_show_messages, 0),
(agent_deliver_damage_to_agent, ":tmp_curr_troop_agent_no", ":var_8", ":tmp_damage"),
(set_show_messages, 1),
(try_end),
(try_end),
(play_sound, "snd_explosion2"),
# (agent_get_position, pos13, ":tmp_curr_troop_agent_no"),
# (position_move_z, pos13, 200),
# (scene_prop_get_instance, ":var_18", "spr_peng1", 0),
# (prop_instance_set_position, ":var_18", pos13),
# (scene_prop_get_instance, ":var_19", "spr_peng2", 0),
# (prop_instance_set_position, ":var_19", pos13),
# (scene_prop_get_instance, ":var_20", "spr_peng3", 0),
# (prop_instance_set_position, ":var_20", pos13),
# (scene_prop_get_instance, ":var_21", "spr_peng4", 0),
# (prop_instance_set_position, ":var_21", pos13),
# (scene_prop_get_instance, ":var_22", "spr_peng5", 0),
# (prop_instance_set_position, ":var_22", pos13),
# (scene_prop_get_instance, ":var_23", "spr_peng6", 0),
# (prop_instance_set_position, ":var_23", pos13),
# (copy_position, pos2, pos13),
# (position_move_y, pos2, 2000),
# (position_set_z_to_ground_level, pos2),
# (position_move_z, pos2, 50),
# (prop_instance_animate_to_position, ":var_18", pos2, 100),
# (copy_position, pos2, pos13),
# (position_move_y, pos2, -2000),
# (position_set_z_to_ground_level, pos2),
# (position_move_z, pos2, 50),
# (prop_instance_animate_to_position, ":var_19", pos2, 100),
# (copy_position, pos2, pos13),
# (position_move_x, pos2, -2000),
# (position_set_z_to_ground_level, pos2),
# (position_move_z, pos2, 50),
# (prop_instance_animate_to_position, ":var_20", pos2, 100),
# (copy_position, pos2, pos13),
# (position_move_x, pos2, 2000),
# (position_set_z_to_ground_level, pos2),
# (position_move_z, pos2, 50),
# (prop_instance_animate_to_position, ":var_21", pos2, 100),
# (copy_position, pos2, pos13),
# (position_move_x, pos2, -1500),
# (position_move_y, pos2, 1500),
# (position_set_z_to_ground_level, pos2),
# (position_move_z, pos2, 50),
# (prop_instance_animate_to_position, ":var_22", pos2, 100),
# (copy_position, pos2, pos13),
# (position_move_x, pos2, 1500),
# (position_move_y, pos2, 1500),
# (position_set_z_to_ground_level, pos2),
# (position_move_z, pos2, 50),
# (prop_instance_animate_to_position, ":var_23", pos2, 100),
# 增加霸王崩山劲的熟练度
(troop_get_slot, ":curr_shulian_tmp_value", ":tmp_troop_id", 389), # 霸王崩山劲临时值
(val_add, ":curr_shulian_tmp_value", 1),
(troop_set_slot, ":tmp_troop_id", 389, ":curr_shulian_tmp_value"),
(try_begin),
(ge, ":curr_shulian_tmp_value", "$shu_lian"),
(troop_get_slot, ":curr_shulian_value", ":tmp_troop_id", 390),
(val_add, ":curr_shulian_value", 1),
(val_min, ":curr_shulian_value", "$shu_lian_max"),
(troop_set_slot, ":tmp_troop_id", 390, ":curr_shulian_value"),
(troop_set_slot, ":tmp_troop_id", 389, 0),
(try_end),
# (try_begin), # ai释放就是直接在里面复原
# (neg|eq, ":tmp_curr_troop_agent_no", ":tmp_curr_player_agent"),
# #(get_player_agent_no, ":var_0"),
# (agent_get_position, pos13, ":tmp_curr_troop_agent_no"),
# (position_move_z, pos13, -5000),
# (scene_prop_get_instance, ":var_1", "spr_peng1", 0),
# (prop_instance_animate_to_position, ":var_1", pos13, 20),
# (scene_prop_get_instance, ":var_2", "spr_peng2", 0),
# (prop_instance_animate_to_position, ":var_2", pos13, 20),
# (scene_prop_get_instance, ":var_3", "spr_peng3", 0),
# (prop_instance_animate_to_position, ":var_3", pos13, 20),
# (scene_prop_get_instance, ":var_4", "spr_peng4", 0),
# (prop_instance_animate_to_position, ":var_4", pos13, 20),
# (scene_prop_get_instance, ":var_5", "spr_peng5", 0),
# (prop_instance_animate_to_position, ":var_5", pos13, 20),
# (scene_prop_get_instance, ":var_6", "spr_peng6", 0),
# (prop_instance_animate_to_position, ":var_6", pos13, 20),
# (try_end),
]),复制代码
(点击展开 / 收起)
("ai_chong_ci",
[
(store_script_param_1, ":var_0"),
(agent_get_position, pos12, ":var_0"),
(get_player_agent_no, ":var_1"),
(agent_get_troop_id, ":tmp_troop_id", ":var_0"),
# (assign, ":var_2", 50),
# (try_begin),
# (eq, ":var_0", ":var_1"),
# (assign, ":var_2", 35),
# (try_end),
# (assign, ":var_3", 15),
(call_script, "script_calc_zhudong_damage", ":tmp_troop_id", 5),
(assign, ":tmp_damage", reg20),
(assign, ":var_4", 8),
(assign, ":var_5", 0),
(assign, ":var_6", 400),
(agent_get_team, ":var_7", ":var_0"),
(try_for_agents, ":var_8"),
(neg|ge, ":var_5", ":var_4"),
(agent_is_human, ":var_8"),
(agent_is_alive, ":var_8"),
(agent_get_team, ":var_9", ":var_8"),
(teams_are_enemies, ":var_9", ":var_7"),
(agent_get_position, pos2, ":var_8"),
(get_distance_between_positions, ":var_10", pos12, pos2),
(neg|ge, ":var_10", ":var_6"),
# (store_random_in_range, ":var_11", ":var_3", ":var_2"),
# (try_begin),
# (eq, ":var_8", ":var_1"),
# (val_div, ":var_11", 2),
# (try_end),
(agent_set_animation, ":var_8", "anim_unused_human_anim_67"),
(agent_get_troop_id, ":var_12", ":var_8"),
(troop_get_type, ":var_13", ":var_12"),
(try_begin),
(eq, ":var_13", 0),
(agent_play_sound, ":var_8", "snd_man_hit"),
(else_try),
(eq, ":var_13", 1),
(agent_play_sound, ":var_8", "snd_woman_hit"),
(else_try),
(eq, ":var_13", 2),
(agent_play_sound, ":var_8", "snd_Zombi_hit"),
(else_try),
(agent_play_sound, ":var_8", "snd_troll_hit"),
(try_end),
(call_script, "script_sp_skill_damage_display", ":var_8", ":tmp_damage", ":var_0"),
(val_add, ":var_5", 1),
(try_begin),
(agent_get_horse, ":var_14", ":var_8"),
(ge, ":var_14", 0),
(agent_set_animation, ":var_14", "anim_horse_rear"),
(agent_play_sound, ":var_14", "snd_neigh"),
(set_show_messages, 0),
(val_add, ":var_11", 30),
(agent_deliver_damage_to_agent, ":var_0", ":var_14", ":tmp_damage"),
(set_show_messages, 1),
(try_end),
(try_end),
(agent_play_sound, ":var_0", "snd_explosion3"),
# (try_begin),
# (neg|eq, ":var_0", ":var_1"),
# (agent_play_sound, ":var_0", "snd_explosion3"),
# (agent_play_sound, ":var_0", "snd_explosion3"),
# (try_end),
]),复制代码
(点击展开 / 收起)
("duochong_and_lianzhu",
[
(store_script_param_1, ":var_0"),
(try_begin),
(agent_is_human, ":var_0"),
(assign, ":tmp_used_qili", 500), # 释放多重箭和连珠箭需要的耗气
(agent_get_troop_id, ":var_1", ":var_0"),
(this_or_next|troop_slot_eq, ":var_1", 369, 1), # 这个troop的槽177值为1则为多重箭、2则为连珠箭
(troop_slot_eq, ":var_1", 370, 1),
(agent_get_wielded_item, ":var_2", ":var_0"), # 获取当前兵种手中的item
(item_get_type, ":tmp_curr_item_type", ":var_2"), # 获取当前兵种手中的武器类型
(eq, ":tmp_curr_item_type", itp_type_bow), # 判断物品类型是否是弓类型
(assign, ":var_3", 0),
(try_begin), # 判断如果是玩家,则用359的槽
(eq, ":var_1", "trp_player"),
(troop_get_slot, ":var_3", ":var_1", 359),
(else_try), # 判断如果不是玩家, 则用agent的槽
(neg|eq, ":var_1", "trp_player"),
(agent_get_slot, ":var_3", ":var_0", 383),
(try_end),
#(troop_get_slot, ":var_3", ":var_1", 359),
(gt, ":var_3", 1000), # 要大于1000才会使用多重和连珠箭
(get_player_agent_no, ":var_4"),
(assign, ":var_5", 0),
(try_begin),
(neg|eq, ":var_4", ":var_0"), # 如果agent不是玩家,则25%概率释放技能
(gt, ":var_3", ":tmp_used_qili"),
(store_random_in_range, ":var_6", 0, 100),
(troop_get_slot, ":var_43", ":var_1", 373),
(try_begin), # 如果373槽的值是0,则设定默认值为75
(eq, ":var_43", 0),
(assign, ":var_43", 75),
(try_end),
(ge, ":var_6", ":var_43"),
(assign, ":var_5", 1),
(else_try),
(eq, ":var_4", ":var_0"), # 如果agent是玩家
(this_or_next|key_is_down, "$key_multiple_shot"),
(key_is_down, "$key_multishot_arrow"),
(try_begin),
(neg|gt, ":var_3", ":tmp_used_qili"),
(display_message, "str_not_enough_energy"),
(else_try),
(assign, ":var_5", 1),
(try_end),
(try_end),
(eq, ":var_5", 1),
(assign, ":var_7", "itm_arrows"),
(try_for_range, ":var_8", 0, 4), # 检索四个装备槽的物品,这里是检索当前的弓
(agent_get_item_slot, ":var_9", ":var_0", ":var_8"),
(eq, ":var_9", ":var_2"),
(troop_get_inventory_slot_modifier, ":var_10", ":var_1", ":var_8"), # 检索修饰符
(try_end),
(assign, ":var_5", 0),
(try_for_range, ":var_8", 0, 4), # 检索四个装备槽的物品,这里是检索
(eq, ":var_5", 0),
(agent_get_item_slot, ":var_9", ":var_0", ":var_8"),
(gt, ":var_9", 0),
(assign, ":var_11", 0),
(try_begin), # 判断当前武器是否是弓类型
# (is_between, ":var_2", "itm_hunting_bow", "itm_hunting_crossbow"),
# (is_between, ":var_9", "itm_arrows", "itm_cartridges"),
(item_get_type, ":tmp_curr_item_type_bow", ":var_2"), # 获取当前兵种手中的武器类型
(eq, ":tmp_curr_item_type_bow", itp_type_bow), # 判断物品类型是否是弓类型
(item_get_type, ":tmp_curr_item_type_is_arrows", ":var_9"), # 检索四个装备槽的物品
(eq, ":tmp_curr_item_type_is_arrows", itp_type_arrows), # 判断物品类型是否是箭类型
# (neg|eq, ":var_9", "itm_bolts"),
# (neg|eq, ":var_9", "itm_steel_bolts"),
# (neg|eq, ":var_9", "itm_steel_nail"),
(assign, ":var_11", 1),
(else_try), # 判断当前武器是否是弩类型
# (is_between, ":var_2", "itm_hunting_crossbow", "itm_musket"),
# (this_or_next|eq, ":var_9", "itm_bolts"),
# (this_or_next|eq, ":var_9", "itm_steel_bolts"),
# (eq, ":var_9", "itm_steel_nail"),
(item_get_type, ":tmp_curr_item_type_is_crossbow", ":var_2"), # 获取当前兵种手中的武器类型
(eq, ":tmp_curr_item_type_is_crossbow", itp_type_crossbow), # 判断物品类型是否是弩类型
(item_get_type, ":tmp_curr_item_type_is_bolts", ":var_9"), # 检索四个装备槽的物品
(eq, ":tmp_curr_item_type_is_bolts", itp_type_bolts), # 判断物品类型是否是箭类型
(assign, ":var_11", 1),
(try_end),
(eq, ":var_11", 1),
(assign, ":var_12", 0),
(assign, ":var_13", "itm_arrows"), # 这里的var_13就是当前用的箭或弩的类型
(try_for_range, ":var_14", 0, 4),
(agent_get_item_slot, ":var_15", ":var_0", ":var_14"),
(eq, ":var_15", ":var_9"),
(agent_get_ammo_for_slot, ":var_16", ":var_0", ":var_14"),
(val_add, ":var_12", ":var_16"),
(assign, ":var_13", ":var_15"),
(try_end),
(try_begin),
(ge, ":var_12", 2),
(val_sub, ":var_12", 2),
(agent_set_ammo, ":var_0", ":var_9", ":var_12"),
(assign, ":var_7", ":var_13"),
(assign, ":var_5", 1),
(try_end),
(try_end),
(try_begin),
(eq, ":var_5", 0),
(eq, ":var_4", ":var_0"),
(display_message, "str_arrows_is_not_enough"),
(try_end),
(eq, ":var_5", 1),
(copy_position, pos20, pos1),
(str_store_troop_name, s1, ":var_1"),
(troop_get_type, ":var_17", ":var_1"),
(try_begin),
(eq, ":var_17", 1),
(play_sound, "snd_woman_huiwu"),
(else_try),
(play_sound, "snd_man_grunt"),
(try_end),
(val_sub, ":var_3", ":tmp_used_qili"),
(try_begin), # 判断如果是英雄单位, 则用troop的槽
(eq, ":var_1", "trp_player"),
(troop_set_slot, ":var_1", 359, ":var_3"),
(else_try), # 判断如果是非英雄单位, 则用agent的槽
(neg|eq, ":var_1", "trp_player"),
(agent_set_slot, ":var_0", 383, ":var_3"),
(try_end),
# (troop_set_slot, ":var_1", 359, ":var_3"),
# (try_begin),
# (eq, ":var_4", ":var_0"),
# (this_or_next|is_presentation_active, "prsnt_plus_default_interface"),
# (this_or_next|is_presentation_active, "prsnt_plus_battle_interface"),
# (this_or_next|is_presentation_active, "prsnt_plus_battle_interface_setting_panel"),
# (this_or_next|is_presentation_active, "prsnt_plus_battle_interface_indoor"),
# (is_presentation_active, "prsnt_plus_battle_interface_no_map"),
# (store_div, ":var_18", ":var_3", 5),
# (val_add, ":var_18", 8),
# (position_set_x, pos1, ":var_18"),
# (position_set_y, pos1, 880),
# (overlay_set_size, "$energy_bar", pos1),
# (try_end),
# 泡菜中的算法
(assign, ":var_19", 70000),
#(item_get_slot, ":var_20", ":var_2", 47),
(assign, ":var_20", 70),
(val_mul, ":var_20", 380),
(val_add, ":var_19", ":var_20"),
# 潘德G中的算法
# (assign,":var_19",70),
# (item_get_slot,":var_20",":var_2",16),
# (try_begin),
# (eq,":var_20",0),
# (assign,":var_20",90),
# (try_end),
# (val_mul,":var_20",38),
# (convert_to_fixed_point,":var_19"),
# (val_add,":var_19",":var_20"),
# (2176,":var_31",":var_1",3),
# (val_mul,":var_31",10),
# (val_add,":var_19",":var_31"),
(try_begin),
(neg|eq, ":var_4", ":var_0"), # 如果agent是不是玩家
(troop_slot_eq, ":var_1", 369, 1), # 这个troop的槽177值为1则为连珠箭
(store_skill_level, ":var_21", "skl_power_draw", ":var_1"),
(val_mul, ":var_21", 1000),
(val_add, ":var_19", ":var_21"),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_y, pos2, 100),
(position_move_z, pos2, 5),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_y, pos2, 200),
(position_move_z, pos2, 10),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_y, pos2, 300),
(position_move_z, pos2, 15),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
# 和玩家一个队伍,并且是英雄单位才显示
(try_begin),
(agent_get_team, ":tmp_player_team", ":var_4"), # 获取玩家的队伍
(agent_get_team, ":tmp_agent_team", ":var_0"), # 获取agent的队伍
(eq, ":tmp_player_team", ":tmp_agent_team"),
(troop_is_hero, ":var_1"), # 是否是英雄单位
(display_message, "str_multishot_arro"), # 连珠箭
(try_end),
(else_try),
(neg|eq, ":var_4", ":var_0"), # 如果agent是不是玩家
(troop_slot_eq, ":var_1", 370, 1), # 这个troop的槽177值为2则为多重箭
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_x, pos2, 5),
(position_rotate_z, pos2, -1),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_x, pos2, -5),
(position_rotate_z, pos2, 1),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
# 和玩家一个队伍,并且是英雄单位才显示
(try_begin),
(agent_get_team, ":tmp_player_team", ":var_4"), # 获取玩家的队伍
(agent_get_team, ":tmp_agent_team", ":var_0"), # 获取agent的队伍
(eq, ":tmp_player_team", ":tmp_agent_team"),
(troop_is_hero, ":var_1"), # 是否是英雄单位
(display_message, "str_multiple_shot"), # 多 重 箭 !
(try_end),
(else_try),
(eq, ":var_4", ":var_0"), # 如果agent是玩家
(key_is_down, "$key_multishot_arrow"),
(troop_slot_eq, ":var_1", 369, 1), # 这个troop的槽177值为1则为连珠箭
(store_skill_level, ":var_21", "skl_power_draw", ":var_1"),
(val_mul, ":var_21", 1000),
(val_add, ":var_19", ":var_21"),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_y, pos2, 100),
(position_move_z, pos2, 5),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_y, pos2, 200),
(position_move_z, pos2, 10),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_y, pos2, 300),
(position_move_z, pos2, 15),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(display_message, "str_multishot_arro"),
(else_try),
(eq, ":var_4", ":var_0"), # 如果agent是玩家
(key_is_down, "$key_multiple_shot"),
(troop_slot_eq, ":var_1", 370, 1), # 这个troop的槽177值为2则为多重箭
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_x, pos2, 5),
(position_rotate_z, pos2, -1),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(agent_get_look_position, pos3, ":var_0"),
(copy_position, pos2, pos1),
(position_copy_rotation, pos2, pos3),
(position_move_x, pos2, -5),
(position_rotate_z, pos2, 1),
(add_missile, ":var_0", 2, ":var_19", ":var_2", ":var_10", ":var_7", 0),
(display_message, "str_multiple_shot"), # 多重箭
(try_end),
(try_end),
]),复制代码
step5:添加ui相关代码
添加ui稍微复杂一点,主要是针对小地图的ui代码的修改。打开presentations.txt,搜索prsnt_mini_map,定位到如下图的位置,其中需要改的地方,图中我已经标出来了,后续需要使用MBCodeEditor进行反编译后修改源码(不知道怎么反编译的看我前面的基础介绍):
主动技能-ui代码.png (1.35 MB, 下载次数: 21)
下载附件
保存到相册
2025-1-12 21:08 上传
这里小地图源码1这里反编译之后,在(presentation_set_duration, 999999), 代码之前添加我们的源码;小地图源码2这里反编译之后,在首行和尾行分别添加我提供的源码。(由于我之前弄了boss血条的功能,所以首行的之前加过了):
(点击展开 / 收起)
(set_fixed_point_multiplier, 1000),
(create_mesh_overlay, reg1, "mesh_status_energy_bar"),
(position_set_x, pos1, 873),
(position_set_y, pos1, 55),
(overlay_set_position, reg1, pos1),
(overlay_set_color, reg1, 15854762),
(troop_get_slot, ":var_2", "$current_commander", 359),
(store_div, ":var_3", ":var_2", 5),
(val_add, ":var_3", 8),
(position_set_x, pos1, ":var_3"),
(position_set_y, pos1, 650),
(overlay_set_size, reg1, pos1),
(assign, "$energy_bar", reg1),复制代码
(点击展开 / 收起)
(store_trigger_param_1, ":var_0"),
# 中间是它原有的代码
(call_script, "script_active_skill_ui_func", ":var_0"),复制代码
step6:添加mt相关代码
添加的战场触发器比较多,我以第一个mt给大家详细说明步骤,后面我就直接贴源码了。
(点击展开 / 收起)
# 战斗开始时,准备霸王崩山劲的吹飞模型
(ti_after_mission_start, 0.000000, 0.000000, # -20.000000 0.000000 0.000000
[
(try_for_agents, ":var_2"), # 这里是将恶魔之吻和末日风暴和气击模式的是否使用的agent置为0
# (agent_get_troop_id, ":curr_troop", ":var_2"),
# (troop_set_slot, ":curr_troop", 401, 0),
(agent_set_slot, ":var_2", 383, 4900),
(agent_set_slot, ":var_2", 376, 0),
(agent_set_slot, ":var_2", 378, 0),
(agent_set_slot, ":var_2", 372, 0),
(try_end),
(assign, ":tmp_is_agent_has_beng_shan", 0),
(try_for_agents, ":var_2"),
(agent_get_troop_id, ":var_3", ":var_2"),
(troop_slot_eq, ":var_3", 363, 1), # 兵种是否拥有霸王崩山
(assign, ":tmp_is_agent_has_beng_shan", 1),
(try_end),
(eq, ":tmp_is_agent_has_beng_shan", 1),
(scene_prop_get_num_instances, ":var_0", "spr_peng1"),
(eq, ":var_0", 0),
],
[
(entry_point_get_position, pos1, 0),
(position_move_z, pos1, -5000),
(set_spawn_position, pos1),
(spawn_scene_prop, "spr_peng1", 0),
(position_move_x, pos1, 300),
(set_spawn_position, pos1),
(spawn_scene_prop, "spr_peng2", 0),
(position_move_x, pos1, 300),
(set_spawn_position, pos1),
(spawn_scene_prop, "spr_peng3", 0),
(position_move_x, pos1, 300),
(set_spawn_position, pos1),
(spawn_scene_prop, "spr_peng4", 0),
(position_move_x, pos1, 300),
(set_spawn_position, pos1),
(spawn_scene_prop, "spr_peng5", 0),
(position_move_x, pos1, 300),
(set_spawn_position, pos1),
(spawn_scene_prop, "spr_peng6", 0),
]),复制代码
① 添加的位置。添加位置还是在我们的野战战场的位置,mission_templates.txt搜索lead_charge,定位到到这里就行:
主动技能-mt添加位置.jpg (69.39 KB, 下载次数: 22)
下载附件
保存到相册
2025-1-12 21:20 上传
② 我们给的源码需要注意的有三部分:
1. 触发器的触发频率(就是第一行这个ti_after_mission_start, 0.000000, 0.000000, # -20.000000 0.000000 0.000000),我在后面都已经注释了,实际填的时候是写什么,大家不清楚的参考一下,也可以自己去查骑砍官方的表ti_after_mission_start对应什么数字;
2. 触发器条件代码。顾名思义,就是触发器需要满足条件才能触发下面的实际代码,大家正常编译成txt就行,这里和实际代码要分开进行编译,也就是说一个mt需要编译两次;
3. 触发器执行的实际代码。也就是触发器实际执行的代码,正常编译即可。
主动技能-触发器格式.jpg (121.02 KB, 下载次数: 22)
下载附件
保存到相册
2025-1-12 21:28 上传
③ 最终的mt代码怎么连接。我们的mt代码这三部分就是这样连接的:-20.000000 0.000000 0.000000 15 12 1 1224979098644774912 505 3 1224979098644774912 383 4900 505 3 1224979098644774912 376 0 505 3 1224979098644774912 378 0 505 3 1224979098644774912 372 0 3 0 2133 2 1224979098644774913 0 12 1 1224979098644774912 1718 2 1224979098644774914 1224979098644774912 540 3 1224979098644774914 363 1 2133 2 1224979098644774913 1 3 0 31 2 1224979098644774913 1 1810 2 1224979098644774915 1080863910568920310 31 2 1224979098644774915 0 19 1780 2 1 0 722 2 1 -5000 1970 1 1 1974 2 1080863910568920310 0 720 2 1 300 1970 1 1 1974 2 1080863910568920311 0 720 2 1 300 1970 1 1 1974 2 1080863910568920312 0 720 2 1 300 1970 1 1 1974 2 1080863910568920313 0 720 2 1 300 1970 1 1 1974 2 1080863910568920314 0 720 2 1 300 1970 1 1 1974 2 1080863910568920315 0
解释一下,这里的红色就是第一部分的触发频率,我源码里面的注释(也就是# 后面的)已经给了;第二部分就是橙色的部分,其中第一个数字15是代码行数,跟一个空格,然后是代码;第三部分就是蓝色部分,其中第一个数字19是代码行数,跟一个空格,然后是代码。每个部分之间的连接是两个空格,这里一定要注意。格式一旦出错,是会出bug的。
ps:特别说明:有可能第二部分一个代码也没有,那就直接代码行数写0,然后跟两个空格,接第三部分就行。-20.000000 0.000000 0.000000 0 19 1780 2 1 0 722 2 1 -5000 1970 1 1 1974 2 1080863910568920310 0 720 2 1 300 1970 1 1 1974 2 1080863910568920311 0 720 2 1 300 1970 1 1 1974 2 1080863910568920312 0 720 2 1 300 1970 1 1 1974 2 1080863910568920313 0 720 2 1 300 1970 1 1 1974 2 1080863910568920314 0 720 2 1 300 1970 1 1 1974 2 1080863910568920315 0
主动技能-mt格式-实际添加.jpg (102.88 KB, 下载次数: 27)
下载附件
保存到相册
2025-1-12 21:40 上传
(点击展开 / 收起)
(0.000000, 0.200000, 1.500000, # 0.000000 0.200000 1.500000
[
(neg|main_hero_fallen),
(neg|game_key_is_down, gk_defend),
(this_or_next|key_clicked, "$key_special_skills"), # 玩家按下了风卷残云按键
(this_or_next|key_clicked, "$key_darkness_thund"), # 玩家按下了地龙震雷按键
(this_or_next|key_clicked, "$key_doomsday_storm"), # 玩家按下了末日风暴按键
(key_clicked, "$key_bleach_kiss"), # 玩家按下了死亡之吻按键
(try_begin), # 记录玩家当前按下的按键到变量key_curr_player_ready_active_skill中
(key_clicked, "$key_special_skills"),
(assign, "$key_curr_player_ready_active_skill", "$key_special_skills"),
(else_try),
(key_clicked, "$key_darkness_thund"),
(assign, "$key_curr_player_ready_active_skill", "$key_darkness_thund"),
(else_try),
(key_clicked, "$key_doomsday_storm"),
(assign, "$key_curr_player_ready_active_skill", "$key_doomsday_storm"),
(else_try),
(key_clicked, "$key_bleach_kiss"),
(assign, "$key_curr_player_ready_active_skill", "$key_bleach_kiss"),
(try_end),
(neg|key_clicked, key_numpad_multiply),
(this_or_next|neg|troop_slot_eq, "$current_commander", 360, 0),
(this_or_next|neg|troop_slot_eq, "$current_commander", 363, 0),
(this_or_next|neg|troop_slot_eq, "$current_commander", 364, 0),
(this_or_next|neg|troop_slot_eq, "$current_commander", 362, 0),
(this_or_next|neg|troop_slot_eq, "$current_commander", 365, 0),
(neg|troop_slot_eq, "$current_commander", 366, 0),
(assign, "$d_kiss_ammo_or_dis", -1),
#(assign, "$d_kiss_dis", -1),
(assign, "$gather_begin", 0),
(assign, "$ready", 0),
],
[
(try_begin),
(neg|key_is_down, "$key_curr_player_ready_active_skill"),
(this_or_next|troop_slot_eq, "$current_commander", 360, 1), # 风卷残云
(this_or_next|troop_slot_eq, "$current_commander", 365, 1), # 末日风暴
(troop_slot_eq, "$current_commander", 362, 1), # 地龙震雷
(store_mul, ":var_0", "$p_ironflesh", 350),
(store_sub, ":var_1", 6500, ":var_0"),
(val_clamp, ":var_1", 2000, 4990),
(try_begin),
(eq, "$key_curr_player_ready_active_skill", "$key_darkness_thund"), # 判断当前玩家是放地雷震龙吗
(troop_slot_eq, "$current_commander", 362, 1), # 兵种是否拥有地龙震雷
(val_add, ":var_1", 500),
(else_try),
(eq, "$key_curr_player_ready_active_skill", "$key_doomsday_storm"), # 判断当前玩家是放末日风暴吗
(troop_slot_eq, "$current_commander", 365, 1), # 兵种是否拥有末日风暴
(assign, ":var_1", 4998),
(try_end),
(troop_get_slot, ":var_2", "$current_commander", 359),
(try_begin),
(neg|ge, "$ready", 1),
(neg|gt, ":var_2", ":var_1"),
(display_message, "str_not_enough_energy"),
(else_try),
(try_begin),
(eq, "$key_curr_player_ready_active_skill", "$key_darkness_thund"), # 判断当前玩家是放地雷震龙吗
(troop_slot_eq, "$current_commander", 362, 1), # 兵种是否拥有地龙震雷
(get_player_agent_no, ":var_3"),
(agent_get_horse, ":var_4", ":var_3"),
(try_begin),
(neg|ge, ":var_4", 0),
(call_script, "script_ai_xuan_feng", ":var_3"),
(val_sub, ":var_2", ":var_1"),
(troop_set_slot, "$current_commander", 359, ":var_2"),
#(troop_set_slot, "$current_commander", 359, 4900),
(else_try),
(display_message, "str_can_t_use_this_skill"),
(try_end),
(else_try),
(eq, "$key_curr_player_ready_active_skill", "$key_special_skills"), # 判断当前玩家是放风卷残云吗
(troop_slot_eq, "$current_commander", 360, 1), # 兵种是否拥有风卷残云
(eq, "$ready", 0),
(call_script, "script_xuan_feng"),
(val_sub, ":var_2", ":var_1"),
(troop_set_slot, "$current_commander", 359, ":var_2"),
#(troop_set_slot, "$current_commander", 359, 4900),
(try_end),
(try_end),
(else_try),
(key_is_down, "$key_curr_player_ready_active_skill"),
(this_or_next|troop_slot_eq, "$current_commander", 366, 1), # 死神之吻
(this_or_next|troop_slot_eq, "$current_commander", 365, 1), # 末日风暴
(this_or_next|troop_slot_eq, "$current_commander", 364, 1), # 烽火燎原
(troop_slot_ge, "$current_commander", 363, 1), # 霸王崩山劲
(troop_get_slot, ":var_2", "$current_commander", 359),
(store_mul, ":var_0", "$p_ironflesh", 350),
(store_sub, ":var_1", 6500, ":var_0"),
(val_clamp, ":var_1", 2000, 4990),
(try_begin),
(neg|gt, ":var_2", ":var_1"),
(display_message, "str_not_enough_energy"),
(else_try),
(try_begin),
(eq, "$key_curr_player_ready_active_skill", "$key_bleach_kiss"), # 判断当前玩家是按下的死神之吻的键吗
(troop_slot_eq, "$current_commander", 366, 1), # 死神之吻
(assign, "$d_kiss_ammo_or_dis", 0),
(get_player_agent_no, ":var_5"),
(agent_get_ammo, ":var_6", ":var_5"),
(ge, ":var_6", 1),
(assign, "$d_kiss_ammo_or_dis", ":var_6"),
(assign, "$d_kiss_bet", 0),
(else_try),
(eq, "$key_curr_player_ready_active_skill", "$key_special_skills"), # 判断当前玩家是按下的风卷残云的键吗
(this_or_next|troop_slot_eq, "$current_commander", 364, 1), # 烽火燎原
(troop_slot_ge, "$current_commander", 363, 1), # 霸王崩山劲
(assign, "$gather_begin", 0),
(assign, "$ready", -1),
(else_try),
(eq, "$key_curr_player_ready_active_skill", "$key_doomsday_storm"), # 判断当前玩家是按下的末日风暴的键吗
(troop_slot_eq, "$current_commander", 365, 1), # 末日风暴
(assign, "$gather_begin", 0),
(assign, "$ready", -1),
(try_end),
(try_end),
(try_end),
]),复制代码
(点击展开 / 收起)
(0.000000, 1.200000, 1.500000, # 0.000000 1.200000 1.500000
[
(neg|main_hero_fallen),
(neg|game_key_is_down, gk_defend),
(key_is_down, "$key_curr_player_ready_active_skill"),
(eq, "$key_curr_player_ready_active_skill", "$key_special_skills"), # 判断当前玩家是按下的风卷残云的键吗
(assign, ":tmp_is_can_xuli", 0),
(get_player_agent_no, ":tmp_player_agent_id"), # 获取了玩家的代理id
(agent_get_horse, ":tmp_troop_horse_agent", ":tmp_player_agent_id"), # 返回对象骑的马对象代理,没有骑=-1
(try_begin),
(neg|ge, ":tmp_troop_horse_agent", 0),
(troop_slot_eq, "$current_commander", 363, 1), # 兵种是否拥有霸王崩山劲
(assign, ":tmp_is_can_xuli", 1),
(else_try),
(ge, ":tmp_troop_horse_agent", 0),
(troop_slot_eq, "$current_commander", 364, 1), # 兵种是否拥有烽火燎原
(assign, ":tmp_is_can_xuli", 1),
(try_end),
(eq, ":tmp_is_can_xuli", 1),
# (this_or_next|troop_slot_eq, "$current_commander", 363, 1), # 兵种是否拥有霸王崩山劲或烽火燎原
# (troop_slot_eq, "$current_commander", 364, 1),
(neg|gt, "$ready", -1),
# (display_message, "str_use_xuli", 0xFF0F00),
(troop_get_slot, ":var_0", "$current_commander", 359),
(store_mul, ":var_1", "$p_ironflesh", 350),
(store_sub, ":var_2", 6500, ":var_1"),
(val_clamp, ":var_2", 2000, 4990),
(assign, reg29, 0),
(try_begin),
(neg|gt, ":var_0", ":var_2"),
(display_message, "str_not_enough_energy"),
(assign, reg29, 1),
(else_try),
# (display_message, "str_use_xuli", 0xFF0F00),
(call_script, "script_gather_energy"),
(try_end),
(ge, reg29, 1),
],
[
(try_begin),
(eq, reg29, 2),
(get_player_agent_no, ":var_0"),
(agent_get_position, pos13, ":var_0"),
(position_move_z, pos13, -5000),
(scene_prop_get_instance, ":var_1", "spr_peng1", 0),
(prop_instance_animate_to_position, ":var_1", pos13, 20),
(scene_prop_get_instance, ":var_2", "spr_peng2", 0),
(prop_instance_animate_to_position, ":var_2", pos13, 20),
(scene_prop_get_instance, ":var_3", "spr_peng3", 0),
(prop_instance_animate_to_position, ":var_3", pos13, 20),
(scene_prop_get_instance, ":var_4", "spr_peng4", 0),
(prop_instance_animate_to_position, ":var_4", pos13, 20),
(scene_prop_get_instance, ":var_5", "spr_peng5", 0),
(prop_instance_animate_to_position, ":var_5", pos13, 20),
(scene_prop_get_instance, ":var_6", "spr_peng6", 0),
(prop_instance_animate_to_position, ":var_6", pos13, 20),
(try_end),
]),复制代码
(点击展开 / 收起)
(0.000000, 1.200000, 1.500000, # 0.000000 1.200000 1.500000
[
(neg|main_hero_fallen),
(neg|game_key_is_down, gk_defend),
(key_is_down, "$key_curr_player_ready_active_skill"),
(eq, "$key_curr_player_ready_active_skill", "$key_special_skills"), # 判断当前玩家是按下的风卷残云的键吗
(assign, ":tmp_is_can_xuli", 0),
(get_player_agent_no, ":tmp_player_agent_id"), # 获取了玩家的代理id
(agent_get_horse, ":tmp_troop_horse_agent", ":tmp_player_agent_id"), # 返回对象骑的马对象代理,没有骑=-1
(try_begin),
(neg|ge, ":tmp_troop_horse_agent", 0),
(troop_slot_eq, "$current_commander", 363, 1), # 兵种是否拥有霸王崩山劲
(assign, ":tmp_is_can_xuli", 1),
(else_try),
(ge, ":tmp_troop_horse_agent", 0),
(troop_slot_eq, "$current_commander", 364, 1), # 兵种是否拥有烽火燎原
(assign, ":tmp_is_can_xuli", 1),
(try_end),
(eq, ":tmp_is_can_xuli", 1),
# (this_or_next|troop_slot_eq, "$current_commander", 363, 1), # 兵种是否拥有霸王崩山劲或烽火燎原
# (troop_slot_eq, "$current_commander", 364, 1),
(neg|gt, "$ready", -1),
# (display_message, "str_use_xuli", 0xFF0F00),
(troop_get_slot, ":var_0", "$current_commander", 359),
(store_mul, ":var_1", "$p_ironflesh", 350),
(store_sub, ":var_2", 6500, ":var_1"),
(val_clamp, ":var_2", 2000, 4990),
(assign, reg29, 0),
(try_begin),
(neg|gt, ":var_0", ":var_2"),
(display_message, "str_not_enough_energy"),
(assign, reg29, 1),
(else_try),
# (display_message, "str_use_xuli", 0xFF0F00),
(call_script, "script_gather_energy"),
(try_end),
(ge, reg29, 1),
],
[
(try_begin),
(eq, reg29, 2),
(get_player_agent_no, ":var_0"),
(agent_get_position, pos13, ":var_0"),
(position_move_z, pos13, -5000),
(scene_prop_get_instance, ":var_1", "spr_peng1", 0),
(prop_instance_animate_to_position, ":var_1", pos13, 20),
(scene_prop_get_instance, ":var_2", "spr_peng2", 0),
(prop_instance_animate_to_position, ":var_2", pos13, 20),
(scene_prop_get_instance, ":var_3", "spr_peng3", 0),
(prop_instance_animate_to_position, ":var_3", pos13, 20),
(scene_prop_get_instance, ":var_4", "spr_peng4", 0),
(prop_instance_animate_to_position, ":var_4", pos13, 20),
(scene_prop_get_instance, ":var_5", "spr_peng5", 0),
(prop_instance_animate_to_position, ":var_5", pos13, 20),
(scene_prop_get_instance, ":var_6", "spr_peng6", 0),
(prop_instance_animate_to_position, ":var_6", pos13, 20),
(try_end),
]),复制代码
(点击展开 / 收起)
# AI放地雷震龙和风卷残云、霸王崩山劲和烽火燎原
(3.000000, 0.000000, 5.000000, # 3.000000 0.000000 5.000000
[
(get_player_agent_no, ":var_0"),
(try_for_agents, ":var_2"),
#(eq, ":var_1", 0),
(neg|eq, ":var_2", ":var_0"),
(agent_is_alive, ":var_2"),
(agent_is_human, ":var_2"),
(agent_get_troop_id, ":var_3", ":var_2"),
(assign, ":var_4", 1),
(try_begin),
# AI释放地雷震龙
#(eq, ":var_3", "trp_jormungand"),
(this_or_next|troop_slot_eq, ":var_3", 362, 1), # 兵种是否拥有地龙震雷
(troop_slot_eq, ":var_3", 363, 1), # 兵种是否拥有霸王崩山
(agent_get_horse, ":var_5", ":var_2"),
(gt, ":var_5", 0),
(assign, ":var_4", 0),
(try_end),
(eq, ":var_4", 1),
#(troop_is_hero, ":var_3"),
(this_or_next|troop_slot_eq, ":var_3", 362, 1), # 兵种是否拥有地龙震雷
(this_or_next|troop_slot_eq, ":var_3", 363, 1), # 兵种是否拥有霸王崩山
(this_or_next|troop_slot_eq, ":var_3", 364, 1), # 兵种是否拥有烽火燎原
(troop_slot_eq, ":var_3", 360, 1), # 兵种是否拥有风卷残云
(store_skill_level, ":var_6", "skl_ironflesh", ":var_3"),
(val_mul, ":var_6", 300),
(store_sub, ":var_7", 6500, ":var_6"),
(val_clamp, ":var_7", 2700, 5000),
(assign, ":var_8", 0),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_3"),
# (troop_get_slot, ":var_8", ":var_3", 359),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_3"),
(agent_get_slot, ":var_8", ":var_2", 383),
# (try_end),
#(troop_get_slot, ":var_8", ":var_3", 359),
(gt, ":var_8", ":var_7"),
(agent_get_position, pos6, ":var_2"),
(agent_get_team, ":var_9", ":var_2"),
(assign, ":var_10", 0),
(try_for_agents, ":var_11"),
(neg|eq, ":var_11", ":var_2"), # var_2为释放者,不为受害者var_11本身
(agent_is_alive, ":var_11"),
(agent_is_human, ":var_11"),
(agent_get_team, ":var_12", ":var_11"),
(teams_are_enemies, ":var_12", ":var_9"),
(agent_get_position, pos1, ":var_11"),
(get_distance_between_positions, ":var_13", pos1, pos6),
(neg|ge, ":var_13", 700),
(val_add, ":var_10", 1),
(try_end),
(ge, ":var_10", 1),
(val_sub, ":var_8", ":var_7"),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_3"),
# (troop_set_slot, ":var_3", 359, ":var_8"),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_3"),
(agent_set_slot, ":var_2", 383, ":var_8"),
# (try_end),
#(troop_set_slot, ":var_3", 359, ":var_8"),
#(assign, ":var_1", 1),
(try_begin),
# AI释放风卷残云和地雷震龙
(this_or_next|troop_slot_eq, ":var_3", 362, 1), # 兵种是否拥有地龙震雷
(troop_slot_eq, ":var_3", 360, 1), # 兵种是否拥有风卷残云
(call_script, "script_ai_xuan_feng", ":var_2"),
(else_try),
(troop_slot_eq, ":var_3", 364, 1), # 兵种是否拥有烽火燎原
# 判断是否在马上
(agent_get_horse, ":tmp_troop_horse_agent", ":var_2"), # 返回对象骑的马对象代理,没有骑=-1
(ge, ":tmp_troop_horse_agent", 0),
(call_script, "script_yu_jian_liao_yuan", ":var_2"),
(else_try),
(troop_slot_eq, ":var_3", 363, 1), # 兵种是否拥有霸王崩山
(call_script, "script_cf_beng_shan_jin", ":var_2"),
(try_end),
(try_end),
#(eq, ":var_1", 1),
],
[
]),复制代码
(点击展开 / 收起)
# 末日风暴的释放检测
(0.000000, 0.000000, 0.000000, # 0.000000 0.000000 0.000000
[
(troop_slot_eq, "$current_commander", 365, 1), # 末日风暴
(try_begin),
(eq, "$ready", -1),
(game_key_clicked, gk_move_forward),
(troop_slot_eq, "$current_commander", 365, 1), # 末日风暴
(assign, "$gather_begin", 0),
(assign, "$ready", -2),
(try_end),
(game_key_is_down, gk_move_forward),
(eq, "$key_curr_player_ready_active_skill", "$key_doomsday_storm"), # 判断当前玩家是放末日风暴吗
(key_is_down, "$key_curr_player_ready_active_skill"),
(neg|main_hero_fallen),
(neg|game_key_is_down, gk_defend),
(neg|key_clicked, key_numpad_multiply),
(get_player_agent_no, ":var_0"),
(agent_get_horse, ":var_1", ":var_0"),
(ge, ":var_1", 0),
],
[
(troop_get_slot, ":var_0", "$current_commander", 359),
(ge, ":var_0", 3000), # 气力要大于等于3000
(neg|gt, "$ready", 0), #$ready <= 0
(call_script, "script_gather_energy"),
]),复制代码
(点击展开 / 收起)
# 默认风暴的持续检测,速度过低会停
(0.000000, 0.000000, 0.000000, # 0.000000 0.000000 0.000000
[
(ge, "$fengbao_agent", 0),
#(neg|num_active_teams_le, 1),
(try_begin),
(set_fixed_point_multiplier, 1000),
(agent_get_speed, pos1, "$fengbao_agent"),
(position_get_y, ":var_0", pos1),
(assign, reg1, 0),
(try_begin),
(get_player_agent_no, ":var_1"),
(eq, "$fengbao_agent", ":var_1"),
# (val_add, reg1, 2000),
(try_end),
(neg|ge, ":var_0", reg1), # reg1 < var_0
(display_message, "str_the_doomsday_storm_stopped"),
(assign, "$fengbao_agent", -1),
(assign, "$ready", 0),
(else_try),
(agent_is_alive, "$fengbao_agent"),
(agent_get_position, pos1, "$fengbao_agent"),
(position_move_y, pos1, 130),
(position_move_z, pos1, 30),
(particle_system_burst, "psys_doomsday_storm", pos1, 10),
(try_end),
],
[
]),复制代码
(点击展开 / 收起)
# AI默认风暴的持续检测,速度过低会停
(0.000000, 0.000000, 0.000000, # 0.000000 0.000000 0.000000
[
(get_player_agent_no, ":tmp_player_agent"),
(try_for_agents, ":tmp_index_agent"), # 这里开始遍历所有的agent,看哪些已经开了风暴了
(neg|eq, ":tmp_index_agent", ":tmp_player_agent"), # 遍历不为玩家
(agent_get_troop_id, ":curr_troop", ":tmp_index_agent"),
# 这是进行技能使用的判断
# (assign, ":is_open_mori", 0),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":curr_troop"),
# (troop_get_slot, ":is_open_mori", ":curr_troop", 401),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":curr_troop"),
# (agent_get_slot, ":is_open_mori", ":tmp_index_agent", 376),
# (try_end),
# (eq, ":is_open_mori", 1), # agent是否已经开启了末日风暴
(agent_slot_eq, ":tmp_index_agent", 376, 1), # agent是否已经开启了末日风暴
#(troop_get_slot, ":curr_agent_start_fengbao", ":curr_troop", 375), # 获取这个agent
#(assign, ":tmp_index_agent", ":tmp_index_agent"),
#(ge, "$fengbao_agent", 0),
#(neg|num_active_teams_le, 1),
(try_begin),
# (set_fixed_point_multiplier, 1000),
# (agent_get_speed, pos1, ":tmp_index_agent"),
# (position_get_y, ":var_0", pos1),
# (assign, reg1, 0),
# (try_begin),
# (get_player_agent_no, ":var_1"),
# (eq, ":tmp_index_agent", ":var_1"),
# # (val_add, reg1, 2000),
# (try_end),
# (neg|ge, ":var_0", reg1), # reg1 < var_0
# #(display_message, "str_the_doomsday_storm_stopped"),
# (agent_set_slot, ":tmp_index_agent", 376, 0), # 设置当前玩家是否使用风暴的agent
# (else_try),
(agent_is_alive, ":tmp_index_agent"),
(agent_get_position, pos1, ":tmp_index_agent"),
(position_move_y, pos1, 130),
(position_move_z, pos1, 30),
(particle_system_burst, "psys_doomsday_storm", pos1, 10),
(try_end),
(try_end),
],
[
]),复制代码
(点击展开 / 收起)
# 默认风暴的持续检测(伤害)
(0.600000, 0.000000, 0.000000, # 0.600000 0.000000 0.000000
[
#(neg|num_active_teams_le, 1),
(ge, "$fengbao_agent", 0),
(agent_is_alive, "$fengbao_agent"),
(call_script, "script_ai_chong_ci", "$fengbao_agent"),
(assign, ":var_0", 9),
(get_player_agent_no, ":var_1"),
(try_begin),
(eq, "$fengbao_agent", ":var_1"),
(eq, "$ready", 0),
(assign, ":var_0", 2),
(else_try),
(neg|eq, "$fengbao_agent", ":var_1"),
(agent_get_troop_id, ":var_2", "$fengbao_agent"),
(troop_get_slot, ":var_0", ":var_2", 359),
(val_sub, ":var_0", 180),
(val_max, ":var_0", 2),
(troop_set_slot, ":var_2", 359, ":var_0"),
(try_end),
(agent_get_horse, ":var_3", "$fengbao_agent"),
(this_or_next|neg|ge, ":var_3", 0),
(neg|gt, ":var_0", 2),
],
[
(assign, "$fengbao_agent", -1),
(assign, "$ready", 0),
]),复制代码
(点击展开 / 收起)
# AI默认风暴的持续检测(伤害)
(0.600000, 0.000000, 0.000000, # 0.600000 0.000000 0.000000
[
(get_player_agent_no, ":tmp_player_agent"),
(try_for_agents, ":tmp_index_agent"), # 这里开始遍历所有的agent,看哪些已经开了风暴了
(neg|eq, ":tmp_index_agent", ":tmp_player_agent"), # 遍历不为玩家
(agent_get_troop_id, ":curr_troop", ":tmp_index_agent"),
# 这是进行技能使用的判断
# (assign, ":is_open_mori", 0),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":curr_troop"),
# (troop_get_slot, ":is_open_mori", ":curr_troop", 401),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":curr_troop"),
# (agent_get_slot, ":is_open_mori", ":tmp_index_agent", 376),
# (try_end),
# (eq, ":is_open_mori", 1), # agent是否已经开启了末日风暴
(agent_slot_eq, ":tmp_index_agent", 376, 1), # agent是否已经开启了末日风暴
#(troop_get_slot, ":curr_agent_start_fengbao", ":curr_troop", 375), # 获取这个agent
#(neg|num_active_teams_le, 1),
#(assign, ":tmp_index_agent", ":tmp_index_agent"),
(agent_is_alive, ":tmp_index_agent"),
(call_script, "script_ai_chong_ci", ":tmp_index_agent"),
(assign, ":var_0", 9),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":curr_troop"),
# (troop_get_slot, ":var_0", ":curr_troop", 359),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":curr_troop"),
(agent_get_slot, ":var_0", ":tmp_index_agent", 383),
# (try_end),
#(troop_get_slot, ":var_0", ":curr_troop", 359),
(val_sub, ":var_0", 180),
(val_max, ":var_0", 2),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":curr_troop"),
# (troop_set_slot, ":curr_troop", 359, ":var_0"),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":curr_troop"),
(agent_set_slot, ":tmp_index_agent", 383, ":var_0"),
# (try_end),
#(troop_set_slot, ":curr_troop", 359, ":var_0"),
(str_store_troop_name, s1, ":curr_troop"),
#(assign, reg1, ":var_0"),
#(display_message, "str_other_party_gained_morale", 0xFF0000),
(agent_get_horse, ":var_3", ":tmp_index_agent"),
(this_or_next|neg|ge, ":var_3", 0),
(neg|gt, ":var_0", 1000),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":curr_troop"),
# (troop_set_slot, ":curr_troop", 401, 0),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":curr_troop"),
# (agent_set_slot, ":tmp_index_agent", 376, 0),
# (try_end),
(agent_set_slot, ":tmp_index_agent", 376, 0),
(try_end),
],
[
]),复制代码
(点击展开 / 收起)
# 末日风暴的AI相关mt
(0.000000, 0.000000, 0.000000, # 0.000000 0.000000 0.000000
[
#(neg|ge, "$fengbao_agent", 0), # 风暴的agent大于等于0
(get_player_agent_no, ":var_0"),
#(assign, ":var_1", 0),
(try_for_agents, ":var_2"), # 这里开始遍历所有的agent,看哪些符合开风暴的条件
#(eq, ":var_1", 0),
(neg|eq, ":var_2", ":var_0"), # 遍历不为玩家
(agent_is_alive, ":var_2"),
(agent_is_human, ":var_2"),
(agent_get_horse, ":var_3", ":var_2"),
(ge, ":var_3", 0),
(agent_get_troop_id, ":var_4", ":var_2"),
(neg|agent_slot_eq, ":var_2", 376, 1), # agent已经开启了末日风暴,就不进行检测了
#(troop_is_hero, ":var_4"),
(troop_slot_eq, ":var_4", 365, 1), # 末日风暴的槽
(assign, ":tmp_curr_en", 0),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_4"),
# (troop_get_slot, ":tmp_curr_en", ":var_4", 359),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_4"),
(agent_get_slot, ":tmp_curr_en", ":var_2", 383),
# (try_end),
#(troop_slot_ge, ":var_4", 359, 4900), # 获取气力
(ge, ":tmp_curr_en", 4900),
(agent_get_simple_behavior, ":var_5", ":var_2"),
(this_or_next|eq, ":var_5", 1),
(this_or_next|eq, ":var_5", 7),
(eq, ":var_5", 8),
(agent_get_position, pos6, ":var_2"),
(position_move_y, pos6, 1500),
(agent_get_team, ":var_6", ":var_2"),
(assign, ":var_7", 0),
(try_for_agents, ":var_8"),
(agent_is_alive, ":var_8"),
(agent_is_human, ":var_8"),
(agent_get_team, ":var_9", ":var_8"),
(teams_are_enemies, ":var_9", ":var_6"),
(agent_get_position, pos1, ":var_8"),
(get_distance_between_positions, ":var_10", pos1, pos6),
(neg|ge, ":var_10", 800),
(val_add, ":var_7", 1),
(try_end),
(ge, ":var_7", 2),
#(assign, ":var_1", 1),
# 这里符合开风暴的条件,并设置风暴的agent
(agent_set_slot, ":var_2", 376, 1), # 设置当前玩家是否使用风暴的agent
#(troop_set_slot, ":var_4", 375, ":var_2"), # 设置当前玩家的风暴agent
#(assign, "$fengbao_agent", ":var_2"),
#(agent_get_troop_id, ":var_11", "$fengbao_agent"),
(troop_get_type, ":var_12", ":var_4"),
(try_begin),
(this_or_next|eq, ":var_12", 2),
(eq, ":var_12", 1),
(agent_play_sound, ":var_2", "snd_woman_ha"),
(else_try),
(agent_play_sound, ":var_2", "snd_man_ha"),
(try_end),
(str_store_troop_name, s1, ":var_4"),
(display_message, "str_doomsday_storm", 0x8186C3),
# 玩家加末日风暴的熟练度
(troop_get_slot, ":curr_shulian_tmp_value", ":var_4", 393), # 末日风暴临时值
(val_add, ":curr_shulian_tmp_value", 1),
(troop_set_slot, ":var_4", 393, ":curr_shulian_tmp_value"),
(try_begin),
(ge, ":curr_shulian_tmp_value", "$shu_lian"),
(troop_get_slot, ":curr_shulian_value", ":var_4", 394),
(val_add, ":curr_shulian_value", 1),
(store_div, ":half_shu_lian_max", "$shu_lian_max", 2),
(val_min, ":curr_shulian_value", ":half_shu_lian_max"),
(troop_set_slot, ":var_4", 394, ":curr_shulian_value"),
(troop_set_slot, ":var_4", 393, 0),
(try_end),
(try_end),
#(eq, ":var_1", 1),
],
[
]),复制代码
(点击展开 / 收起)
# 玩家的死神之吻的伤害和混乱
(0.100000, 0.000000, 0.000000, # 0.100000 0.000000 0.000000
[
(ge, "$kiss_agent", 0),
(try_begin),
(neg|agent_is_alive, "$kiss_agent"),
(assign, "$kiss_agent", -1),
(else_try),
(agent_get_team, ":var_0", "$kiss_agent"),
(val_add, "$d_kiss_dis", 400),
(position_move_y, pos37, "$d_kiss_dis"),
(position_set_z_to_ground_level, pos37),
(position_move_z, pos37, 160),
(particle_system_burst, "psys_fire_wind", pos37, 5),
(particle_system_burst, "psys_fire_wind", pos37, 8),
(get_player_agent_no, ":var_1"),
(try_for_agents, ":var_2"),
(neg|ge, "$d_kiss_bet", 8),
(agent_is_alive, ":var_2"),
(agent_is_human, ":var_2"),
(agent_get_team, ":var_3", ":var_2"),
(teams_are_enemies, ":var_3", ":var_0"),
(troop_get_type, ":tmp_target_type", ":var_2"), # 我添加的,判断它是否是是男性和女性,才能被魅惑
(this_or_next|eq, ":tmp_target_type", 0),
(eq, ":tmp_target_type", 1),
(agent_get_position, pos1, ":var_2"),
(position_move_z, pos1, 150),
(get_distance_between_positions, ":var_4", pos1, pos37),
(neg|gt, ":var_4", 400),
(agent_get_horse, ":var_5", ":var_2"),
(try_begin),
(ge, ":var_5", 0),
(position_move_z, pos1, 100),
(try_end),
(particle_system_burst, "psys_fire_wind", pos1, 15),
(store_random_in_range, ":var_6", 0, 100),
(try_begin),
(agent_is_ally, ":var_2"),
(val_add, ":var_6", "$p_leadership"), # 统御越高,被魅惑概率越高
(try_end),
(try_begin),
(neg|ge, ":var_6", 35), # 修改魅惑概率
(neg|eq, ":var_2", ":var_1"),
(agent_set_slot, ":var_2", 34, ":var_3"),
(store_mission_timer_a, ":var_7"),
(agent_set_slot, ":var_2", 35, ":var_7"),
(agent_set_team, ":var_2", ":var_0"),
(agent_get_troop_id, ":var_8", ":var_2"),
(str_store_troop_name, s1, ":var_8"),
(agent_get_party_id, ":var_9", ":var_2"),
(ge, ":var_9", 0),
(store_faction_of_party, ":var_10", ":var_9"),
(str_store_faction_name, s2, ":var_10"),
(display_message, "str_into_chao", 0xFF3333), # {s2}的 {s1}陷 入 混 乱 !
(else_try),
# (store_random_in_range, ":var_11", 30, 70),
(call_script, "script_calc_zhudong_damage", "$current_commander", 6),
(assign, ":tmp_damage", reg20),
# (try_begin),
# (eq, ":var_2", ":var_1"),
# (val_div, ":var_11", 2),
# (try_end),
# (try_begin),
# (ge, ":var_11", 60),
# (assign, ":var_11", 400),
# (try_end),
(agent_set_animation, ":var_2", "anim_unused_human_anim_67"),
(agent_get_troop_id, ":var_12", ":var_2"),
(troop_get_type, ":var_13", ":var_12"),
(try_begin),
(eq, ":var_13", 1),
(agent_play_sound, ":var_2", "snd_woman_hit"),
(else_try),
(agent_play_sound, ":var_2", "snd_man_hit"),
(try_end),
(call_script, "script_sp_skill_damage_display", ":var_2", ":tmp_damage", "$kiss_agent"),
(try_end),
(val_add, "$d_kiss_bet", 1),
(try_end),
(try_end),
(this_or_next|ge, "$d_kiss_bet", 8),
(ge, "$d_kiss_dis", 15000),
],
[
(assign, "$kiss_agent", -1),
(assign, "$d_kiss_dis", -1),
]),复制代码
(点击展开 / 收起)
(1.000000, 0.000000, 15.000000, # 1.000000 0.000000 15.000000
[
],
[
(store_mission_timer_a, ":var_0"),
(ge, ":var_0", 20),
(try_for_agents, ":var_1"),
(agent_is_alive, ":var_1"),
(agent_is_human, ":var_1"),
(agent_get_slot, ":var_2", ":var_1", 35),
(agent_get_slot, ":var_3", ":var_1", 34),
(try_begin),
(ge, ":var_2", 1),
(store_sub, ":var_4", ":var_0", ":var_2"),
(ge, ":var_4", 60),
(agent_set_team, ":var_1", ":var_3"),
(agent_set_slot, ":var_1", 34, 0),
(agent_set_slot, ":var_1", 35, 0),
(agent_get_troop_id, ":var_5", ":var_1"),
(str_store_troop_name, s1, ":var_5"),
(agent_get_party_id, ":var_6", ":var_1"),
(ge, ":var_6", 0),
(store_faction_of_party, ":var_7", ":var_6"),
(str_store_faction_name, s2, ":var_7"),
(display_message, "str_recovery", 0x33FFAA), # 从混乱中苏醒
(try_end),
(try_end),
]),复制代码
(点击展开 / 收起)
(0.000000, 0.000000, 4.000000, # 0.000000 0.000000 4.000000
[
(eq, "$key_curr_player_ready_active_skill", "$key_bleach_kiss"), # 判断当前玩家是放死神之吻吗
(key_is_down, "$key_curr_player_ready_active_skill"),
#(neg|num_active_teams_le, 1), # 检测至少剩一个敌人才触发
(neg|main_hero_fallen),
(troop_slot_eq, "$current_commander", 366, 1), # 死神之吻的槽
(gt, "$d_kiss_ammo_or_dis", 0), # 需要当前的箭的数量必须大于0
(store_skill_level, ":var_0", "skl_ironflesh", "$current_commander"),
(val_mul, ":var_0", 300),
(store_sub, ":var_1", 6500, ":var_0"),
(val_clamp, ":var_1", 2000, 4900),
(troop_get_slot, ":var_2", "$current_commander", 359), # 获取当前控制角色的气力值
(gt, ":var_2", ":var_1"),
(get_player_agent_no, ":var_3"),
(agent_get_wielded_item, ":tmp_curr_item", ":var_3", 0), # 获取当前兵种手中的item
(ge, ":tmp_curr_item", 0),
(item_get_type, ":tmp_curr_item_type", ":tmp_curr_item"), # 获取当前兵种手中的武器类型
(eq, ":tmp_curr_item_type", itp_type_bow), # 判断物品类型是否是弓类型
(agent_get_ammo, ":var_4", ":var_3"),
# (ge, ":var_4", 1),
(agent_get_position, pos37, ":var_3"),
(position_move_z, pos37, 100),
(particle_system_burst, "psys_fire_wind", pos37, 1),
(store_sub, ":tmp_sub_ammo_1", "$d_kiss_ammo_or_dis", ":var_4"),
(eq, ":tmp_sub_ammo_1", 1),
#(neg|ge, ":var_4", "$d_kiss_ammo_or_dis"),
(val_sub, ":var_2", ":var_1"),
(troop_set_slot, "$current_commander", 359, ":var_2"), # 设置气力值为释放死神之吻后的气力值
#(troop_set_slot, "$current_commander", 359, 4900),
(assign, "$kiss_agent", ":var_3"),
(agent_get_look_position, pos1, ":var_3"),
(position_copy_rotation, pos37, pos1),
(assign, "$d_kiss_ammo_or_dis", 0),
(assign, "$d_kiss_dis", 0),
(assign, "$d_kiss_bet", 0),
(agent_get_troop_id, ":var_5", ":var_3"),
(troop_get_type, ":var_6", ":var_5"),
(try_begin),
(this_or_next|eq, ":var_6", 2),
(eq, ":var_6", 1),
(agent_play_sound, ":var_3", "snd_woman_ha"),
(else_try),
(agent_play_sound, ":var_3", "snd_man_ha"),
(try_end),
(str_store_troop_name, s1, ":var_5"),
(display_message, "str_bleach_kiss", 0xFF0088), # 释放死神之吻
# 提升死神之吻的熟练度
(troop_get_slot, ":curr_shulian_tmp_value", "$current_commander", 395), # 死神之吻临时值
(val_add, ":curr_shulian_tmp_value", 1),
(troop_set_slot, "$current_commander", 395, ":curr_shulian_tmp_value"),
(try_begin),
(ge, ":curr_shulian_tmp_value", "$shu_lian"),
(troop_get_slot, ":curr_shulian_value", "$current_commander", 396),
(val_add, ":curr_shulian_value", 1),
(val_min, ":curr_shulian_value", "$shu_lian_max"),
(troop_set_slot, "$current_commander", 396, ":curr_shulian_value"),
(troop_set_slot, "$current_commander", 395, 0),
(try_end),
],
[
]),复制代码
(点击展开 / 收起)
# 死神之吻的AI释放
(3.000000, 0.000000, 10.000000, # 3.000000 0.000000 10.000000
[
#(neg|main_hero_fallen),
#(neg|ge, "$kiss_agent", 0),
(get_player_agent_no, ":var_0"),
#(assign, ":var_1", 0),
(try_for_agents, ":var_2"),
#(eq, ":var_1", 0),
(neg|eq, ":var_2", ":var_0"), # 不是玩家
(agent_is_alive, ":var_2"),
(agent_is_human, ":var_2"),
(agent_get_troop_id, ":var_3", ":var_2"),
(neg|agent_slot_eq, ":var_2", 378, 1), # agent已经开启了死神之吻,就不进行检测了
#(troop_is_hero, ":var_3"),
(troop_slot_eq, ":var_3", 366, 1), # 死神之吻的槽
#(troop_slot_eq, ":var_3", 178, -1),
# 判断箭的数量是否大于1,判断是否拿的弓
(agent_get_wielded_item, ":tmp_curr_item", ":var_2", 0), # 获取当前兵种手中的item
(ge, ":tmp_curr_item", 0),
(item_get_type, ":tmp_curr_item_type", ":tmp_curr_item"), # 获取当前兵种手中的武器类型
(eq, ":tmp_curr_item_type", itp_type_bow), # 判断物品类型是否是弓类型
(agent_get_ammo, ":tmp_jian_nums", ":var_2"),
(gt, ":tmp_jian_nums", 0),
(agent_get_simple_behavior, ":var_4", ":var_2"),
#(this_or_next|eq, ":var_4", 1),
# (this_or_next|eq, ":var_4", 6),
# (eq, ":var_4", 5),
(agent_get_combat_state, ":var_5", ":var_2"),
(neg|eq, ":var_5", 7),
(store_skill_level, ":var_6", "skl_ironflesh", ":var_3"),
(val_mul, ":var_6", 400),
(store_sub, ":var_7", 6000, ":var_6"),
(val_clamp, ":var_7", 2000, 4900),
(assign, ":var_8", 0),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_3"),
# (troop_get_slot, ":var_8", ":var_3", 359),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_3"),
(agent_get_slot, ":var_8", ":var_2", 383),
# (try_end),
#(troop_get_slot, ":var_8", ":var_3", 359),
(gt, ":var_8", ":var_7"),
(agent_get_team, ":var_9", ":var_2"),
(agent_get_position, pos37, ":var_2"),
(assign, ":var_10", 0),
(try_for_agents, ":var_11"),
(eq, ":var_10", 0),
(agent_is_alive, ":var_11"),
(agent_is_human, ":var_11"),
(agent_get_team, ":var_12", ":var_11"),
(teams_are_enemies, ":var_12", ":var_9"),
(agent_get_position, pos1, ":var_11"),
(get_distance_between_positions, ":var_13", pos1, pos37),
(neg|ge, ":var_13", 14000),
(assign, ":var_10", 1),
(try_end),
(eq, ":var_10", 1),
#(assign, ":var_1", 1),
(val_sub, ":var_8", ":var_7"),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_3"),
# (troop_set_slot, ":var_3", 359, ":var_8"),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_3"),
(agent_set_slot, ":var_2", 383, ":var_8"),
# (try_end),
# (troop_set_slot, ":var_3", 359, ":var_8"),
(agent_get_look_position, pos1, ":var_2"),
(position_copy_rotation, pos37, pos1),
#(assign, "$d_kiss_ammo_or_dis", 0),
#(assign, "$d_kiss_bet", 0),
(agent_set_slot, ":var_2", 378, 1), # 设置当前玩家是否死神之吻的agent
#(troop_set_slot, ":var_3", 377, ":var_2"), # 设置当前玩家的死神之吻agent
#(assign, "$kiss_agent", ":var_2"),
(troop_get_type, ":var_15", ":var_3"),
(try_begin),
(this_or_next|eq, ":var_15", 2),
(eq, ":var_15", 1),
(agent_play_sound, ":var_2", "snd_woman_ha"),
(else_try),
(agent_play_sound, ":var_2", "snd_man_ha"),
(try_end),
(str_store_troop_name, s1, ":var_3"),
(display_message, "str_bleach_kiss", 0xFF0088),
# 熟练度提升
(troop_get_slot, ":curr_shulian_tmp_value", ":var_3", 395), # 死神之吻临时值
(val_add, ":curr_shulian_tmp_value", 1),
(troop_set_slot, ":var_3", 395, ":curr_shulian_tmp_value"),
(try_begin),
(ge, ":curr_shulian_tmp_value", "$shu_lian"),
(troop_get_slot, ":curr_shulian_value", ":var_3", 396),
(val_add, ":curr_shulian_value", 1),
(val_min, ":curr_shulian_value", "$shu_lian_max"),
(troop_set_slot, ":var_3", 396, ":curr_shulian_value"),
(troop_set_slot, ":var_3", 395, 0),
(try_end),
#(troop_set_slot, ":var_3", 378, 0),
(troop_set_slot, ":var_3", 379, 0),
(troop_set_slot, ":var_3", 380, 0),
(try_end),
#(eq, ":var_1", 1),
],
[
]),复制代码
(点击展开 / 收起)
# 死神之吻的AI伤害和混乱
(0.100000, 0.000000, 0.000000, # 0.100000 0.000000 0.000000
[
(get_player_agent_no, ":tmp_player_agent"),
(try_for_agents, ":tmp_index_agent"), # 这里开始遍历所有的agent,看哪些已经开了风暴了
(neg|eq, ":tmp_index_agent", ":tmp_player_agent"), # 遍历不为玩家
(agent_get_troop_id, ":curr_troop", ":tmp_index_agent"),
(agent_slot_eq, ":tmp_index_agent", 378, 1), # agent是否已经开启了死神之吻
#(troop_get_slot, ":curr_agent_sishen", ":curr_troop", 377), # 获取这个agent
(try_begin),
(neg|agent_is_alive, ":tmp_index_agent"),
(agent_set_slot, ":tmp_index_agent", 378, 0),
(else_try),
(agent_get_team, ":var_0", ":tmp_index_agent"),
(troop_get_slot, ":tmp_d_kiss_ammo_or_dis", ":curr_troop", 379),
(val_add, ":tmp_d_kiss_ammo_or_dis", 400),
(troop_set_slot, ":curr_troop", 379, ":tmp_d_kiss_ammo_or_dis"),
(position_move_y, pos37, ":tmp_d_kiss_ammo_or_dis"),
(position_set_z_to_ground_level, pos37),
(position_move_z, pos37, 160),
(particle_system_burst, "psys_fire_wind", pos37, 5),
(particle_system_burst, "psys_fire_wind", pos37, 8),
(get_player_agent_no, ":var_1"),
(try_for_agents, ":var_2"),
(troop_get_slot, ":tmp_d_kiss_bet", ":curr_troop", 380),
(neg|ge, ":tmp_d_kiss_bet", 8),
(agent_is_alive, ":var_2"),
(agent_is_human, ":var_2"),
(agent_get_team, ":var_3", ":var_2"),
(teams_are_enemies, ":var_3", ":var_0"),
(troop_get_type, ":tmp_target_type", ":var_2"), # 我添加的,判断它是否是是男性和女性,才能被魅惑
(this_or_next|eq, ":tmp_target_type", 0),
(eq, ":tmp_target_type", 1),
(agent_get_position, pos1, ":var_2"),
(position_move_z, pos1, 150),
(get_distance_between_positions, ":var_4", pos1, pos37),
(neg|gt, ":var_4", 400),
(agent_get_horse, ":var_5", ":var_2"),
(try_begin),
(ge, ":var_5", 0),
(position_move_z, pos1, 100),
(try_end),
(particle_system_burst, "psys_fire_wind", pos1, 15),
(store_random_in_range, ":var_6", 0, 100),
(try_begin),
(agent_is_ally, ":var_2"),
(val_add, ":var_6", "$p_leadership"), # 统御越高,被魅惑概率越高
(try_end),
(try_begin),
(neg|ge, ":var_6", 35), # 修改魅惑概率
(neg|eq, ":var_2", ":var_1"),
(agent_set_slot, ":var_2", 34, ":var_3"),
(store_mission_timer_a, ":var_7"),
(agent_set_slot, ":var_2", 35, ":var_7"),
(agent_set_team, ":var_2", ":var_0"),
(agent_get_troop_id, ":var_8", ":var_2"),
(str_store_troop_name, s1, ":var_8"),
(agent_get_party_id, ":var_9", ":var_2"),
(ge, ":var_9", 0),
(store_faction_of_party, ":var_10", ":var_9"),
(str_store_faction_name, s2, ":var_10"),
(display_message, "str_into_chao", 0xFF3333), # {s2}的 {s1}陷 入 混 乱 !
(else_try),
# (store_random_in_range, ":var_11", 20, 60),
# (try_begin),
# (eq, ":var_2", ":var_1"),
# (val_div, ":var_11", 2),
# (try_end),
# (try_begin),
# (ge, ":var_11", 50),
# (assign, ":var_11", 400),
# (try_end),
(call_script, "script_calc_zhudong_damage", ":curr_troop", 6),
(assign, ":tmp_damage", reg20),
(agent_set_animation, ":var_2", "anim_unused_human_anim_67"),
(agent_get_troop_id, ":var_12", ":var_2"),
(troop_get_type, ":var_13", ":var_12"),
(try_begin),
(eq, ":var_13", 1),
(agent_play_sound, ":var_2", "snd_woman_hit"),
(else_try),
(agent_play_sound, ":var_2", "snd_man_hit"),
(try_end),
(call_script, "script_sp_skill_damage_display", ":var_2", ":tmp_damage", ":tmp_index_agent"),
(try_end),
(troop_get_slot, ":tmp_d_kiss_bet", ":curr_troop", 380),
(val_add, ":tmp_d_kiss_bet", 1),
(troop_set_slot, ":curr_troop", 380, ":tmp_d_kiss_bet"),
(try_end),
(try_end),
(troop_get_slot, ":tmp_d_kiss_bet", ":curr_troop", 380),
(this_or_next|ge, ":tmp_d_kiss_bet", 8),
(troop_get_slot, ":tmp_d_kiss_ammo_or_dis", ":curr_troop", 379),
(ge, ":tmp_d_kiss_ammo_or_dis", 15000),
(agent_set_slot, ":tmp_index_agent", 378, 0),
(try_end),
],
[
]),复制代码
(点击展开 / 收起)
# 气击模式实际伤害
(ti_on_agent_hit, 0.000000, 0.000000, # -28.000000 0.000000, 0.000000
[
],
[
(store_trigger_param_1, ":var_0"), # 受到伤害的agent
(store_trigger_param_2, ":var_1"), # 造成伤害的agent
(store_trigger_param_3, ":var_2"), # 伤害值
(assign, ":var_3", reg0),
# (agent_get_slot, ":var_4", ":var_0", 26),
# (try_begin), # 盲猜这里应该是修复指挥官对士兵加成伤害的叠加
# (gt, ":var_4", 0),
# (agent_get_slot, ":var_5", ":var_0", 29), # 这个agent的29槽储存的是当前agent的绝对生命值
# (store_agent_hit_points, ":health_value", ":var_0", 1), # 返回生命值的绝对值
# (gt, ":var_5", ":health_value"),
# (store_sub, ":var_7", ":var_5", ":health_value"),
# (val_min, ":var_7", ":var_4"),
# (val_add, ":health_value", ":var_7"),
# (agent_set_hit_points, ":var_0", ":health_value", 1),
# (val_sub, ":var_4", ":var_7"),
# (val_max, ":var_4", 0),
# (agent_set_slot, ":var_0", 26, ":var_4"),
# (try_end),
(try_begin),
(agent_is_human, ":var_1"),
(agent_slot_ge, ":var_1", 372, 1),
(agent_get_troop_id, ":var_31", ":var_1"),
(troop_slot_eq, ":var_31", 367, 1), # 当前施加伤害的人是否拥有气击模式
# (assign, ":var_32", 0),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_31"),
# (troop_get_slot, ":var_32", ":var_31", 359),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_31"),
# (agent_get_slot, ":var_32", ":var_1", 383),
# (try_end),
(assign, ":var_32", 0),
(try_begin), # 判断如果是玩家,则用359的槽
(eq, ":var_31", "trp_player"),
(troop_get_slot, ":var_32", ":var_31", 359),
(else_try), # 判断如果不是玩家, 则用agent的槽
(neg|eq, ":var_31", "trp_player"),
(agent_get_slot, ":var_32", ":var_1", 383),
(try_end),
# (troop_get_slot, ":var_32", ":var_31", 359),
(try_begin),
(gt, ":var_32", 400),
(agent_set_slot, ":var_1", 372, 2),
#(agent_set_slot, ":var_0", 43, 1),
(store_attribute_level, ":var_33", ":var_31", ca_intelligence),
(val_mul, ":var_33", 10),
(val_min, ":var_33", 300),
(val_add, ":var_32", ":var_33"),
(val_sub, ":var_32", 400),
(agent_get_troop_id, ":var_31", ":var_1"),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_31"),
# (troop_set_slot, ":var_31", 359, ":var_32"),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_31"),
# (agent_set_slot, ":var_1", 383, ":var_32"),
# (try_end),
(try_begin), # 判断如果是英雄单位, 则用troop的槽
(eq, ":var_31", "trp_player"),
(troop_set_slot, ":var_31", 359, ":var_32"),
(else_try), # 判断如果是非英雄单位, 则用agent的槽
(neg|eq, ":var_31", "trp_player"),
(agent_set_slot, ":var_1", 383, ":var_32"),
(try_end),
# (troop_set_slot, ":var_31", 359, ":var_32"),
(else_try),
(agent_set_slot, ":var_1", 372, 0),
(try_begin),
(get_player_agent_no, ":var_34"),
(eq, ":var_34", ":var_1"),
(display_message, "str_not_enough_energy"),
(str_store_troop_name, s1, ":var_31"),
(display_message, "str_quit_energy_str", 0xFFFF33),
(try_end),
(try_end),
(try_end),
(try_begin),
(agent_slot_eq, ":var_1", 372, 2), # agent的槽33的值为1则开启气击模式
# (agent_slot_eq, ":var_1", 43, 1),
# (agent_set_slot, ":var_1", 43, 0),
(ge, ":var_2", 5),
(assign, ":var_8", -1),
(try_begin),
(ge, ":var_3", 0),
(item_get_type, ":var_8", ":var_3"),
(try_end),
(try_begin),
(eq, ":var_8", 8),
(assign, ":var_9", "skl_power_draw"),
(else_try),
(eq, ":var_8", 10),
(assign, ":var_9", "skl_power_throw"),
(else_try),
(eq, ":var_8", 9),
(assign, ":var_9", "skl_ironflesh"),
(else_try),
(assign, ":var_9", "skl_power_strike"),
(try_end),
(agent_get_troop_id, ":var_10", ":var_1"),
# (store_skill_level, ":var_11", ":var_9", ":var_10"),
# (store_mul, ":var_12", ":var_2", ":var_11"),
# (val_div, ":var_12", 10),
(call_script, "script_calc_zhudong_damage", ":var_31", 7),
(assign, ":tmp_damage", reg20),
(try_begin),
# (gt, ":var_12", 0),
(troop_slot_eq, ":var_10", 368, 1), # 斗气暴击
(call_script, "script_calc_zhudong_damage", ":var_31", 8),
(assign, ":tmp_damage", reg20),
(neg|eq, ":var_8", 8),
(neg|eq, ":var_8", 9),
(neg|eq, ":var_8", 10),
# (val_mul, ":var_12", 15),
# (val_div, ":var_12", 10),
(try_end),
# (store_random_in_range, ":var_13", -1, 2),
# (val_add, ":var_12", ":var_13"),
# (val_max, ":var_12", 1),
(store_agent_hit_points, ":var_14", ":var_0", 1),
(val_sub, ":var_14", ":tmp_damage"),
(agent_set_hit_points, ":var_0", ":var_14", 1),
# (agent_play_sound, ":var_0", "snd_en_stk"),
(try_begin),
(troop_slot_eq, ":var_10", 368, 1), # agent槽177的值等于3,则显示红色的粒子特效,斗气暴击
(neg|eq, ":var_8", 8),
(neg|eq, ":var_8", 9),
(neg|eq, ":var_8", 10),
(particle_system_burst, "psys_fire_sparks_up_red", pos0, 20),
(particle_system_burst, "psys_fire_sparks_down_red", pos0, 20),
(particle_system_burst, "psys_fire_sparks_left_red", pos0, 20),
(particle_system_burst, "psys_fire_sparks_right_red", pos0, 20),
(else_try),
(particle_system_burst, "psys_fire_sparks_up", pos0, 20),
(particle_system_burst, "psys_fire_sparks_down", pos0, 20),
(particle_system_burst, "psys_fire_sparks_left", pos0, 20),
(particle_system_burst, "psys_fire_sparks_right", pos0, 20),
(try_end),
(particle_system_burst, "psys_fire_glow_1_plus", pos0, 10),
(get_player_agent_no, ":var_15"),
(assign, reg1, ":tmp_damage"),
(try_begin),
(eq, ":var_1", ":var_15"),
(display_message, "str_delivered_ene", 0xFFFF33), # 施加 {reg1}点 气 击 伤 害 !
(else_try),
(eq, ":var_0", ":var_15"),
(display_message, "str_received_ener", 0xFFFF33), # 受到 {reg1}点 气 击 伤 害 !
(try_end),
(try_end),
(set_trigger_result, -1),
]),复制代码
(点击展开 / 收起)
# AI回气
(10.000000, 0.000000, 0.000000, # 10.000000, 0.000000, 0.000000
[
],
[
(get_player_agent_no, ":var_0"),
(try_for_agents, ":var_1"),
(agent_is_alive, ":var_1"),
(neg|eq, ":var_1", ":var_0"),
#(neg|eq, ":var_1", "$fengbao_agent"), # 既不是玩家,也没有开启末日风暴
(agent_get_troop_id, ":var_2", ":var_1"),
(troop_slot_eq, ":var_2", 374, 1), # AI能否恢复气力
#(troop_is_hero, ":var_2", ":var_1"),
(neg|agent_slot_eq, ":var_1", 372, 1), # AI没有进入气击模式
(neg|agent_slot_eq, ":var_1", 376, 1), # agent没有开启末日风暴
(neg|eq, ":var_2", "$current_commander"),
(assign, ":var_3", 0),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_2"),
# (troop_get_slot, ":var_3", ":var_2", 359),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_2"),
(agent_get_slot, ":var_3", ":var_1", 383),
# (try_end),
#(ge, ":var_3", 0),
(store_skill_level, ":var_4", "skl_ironflesh", ":var_2"),
(val_mul, ":var_4", 50),
(val_add, ":var_3", ":var_4"),
(val_min, ":var_3", 5000),
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_2"),
# (troop_set_slot, ":var_2", 359, ":var_3"),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_2"),
(agent_set_slot, ":var_1", 383, ":var_3"),
# (try_end),
(str_store_troop_name, s1, ":var_2"),
(assign, reg1, ":var_3"),
# (display_message, "str_other_party_gained_morale", 0xFF0000),
(try_end),
]),复制代码
(点击展开 / 收起)
# AI开启气击模式
(1.000000, 0.000000, 10.000000, # 1.000000 0.000000 10.000000
[
(store_mission_timer_a, reg1),
(ge, reg1, 15),
],
[
(get_player_agent_no, ":var_0"),
(try_for_agents, ":var_1"),
(neg|eq, ":var_1", ":var_0"),
(agent_is_alive, ":var_1"),
(agent_get_troop_id, ":var_2", ":var_1"),
#(troop_is_hero, ":var_2", ":var_1"),
#(troop_slot_eq, ":var_2", 56, 1),
(troop_slot_eq, ":var_2", 367, 1),
(agent_slot_eq, ":var_1", 372, 0), # agent的槽33的值为1则开启气击模式
# (try_begin), # 判断如果是英雄单位, 则用troop的槽
# (troop_is_hero, ":var_2"),
# (troop_get_slot, ":var_3", ":var_2", 359),
# (else_try), # 判断如果是非英雄单位, 则用agent的槽
# (neg|troop_is_hero, ":var_2"),
(agent_get_slot, ":var_3", ":var_1", 383),
# (try_end),
(store_random_in_range, ":var_4", 2000, ":var_3"),
(try_begin), # 当气力值大于3000则AI开启气击模式
(gt, ":var_4", 3000),
(agent_set_slot, ":var_1", 372, 1),
(try_end),
(try_end),
]),复制代码
(点击展开 / 收起)
# 玩家开启气击模式
(0.000000, 0.000000, 1.000000, # 0.000000 0.000000 1.000000
[
(key_clicked, "$key_energy_strike"),
(troop_slot_eq, "$current_commander", 367, 1), # 当前施加伤害的人是否拥有气击模式
(try_begin),
(troop_slot_eq, "$current_commander", 371, 0), # troop的槽56的值为1则满足开启气击的条件
(store_character_level, ":var_0", "$current_commander"),
(store_attribute_level, ":var_1", "$current_commander", ca_intelligence),
(store_skill_level, ":var_2", "skl_ironflesh", "$current_commander"),
(store_skill_level, ":var_3", "skl_power_strike", "$current_commander"),
(try_begin),
(this_or_next|neg|ge, ":var_0", 10),
(this_or_next|neg|ge, ":var_1", 12),
(this_or_next|neg|ge, ":var_2", 6),
(neg|ge, ":var_3", 6),
(display_message, "str_need_you_level_not_l"), # 需要等级不低于10、智力不低于12、铁骨、强击不低于6才能启用!
(else_try),
(ge, ":var_0", 10),
(ge, ":var_1", 12),
(ge, ":var_2", 6),
(ge, ":var_3", 6),
(troop_set_slot, "$current_commander", 371, 1), # troop的槽56的值为1则满足开启气击的条件
(try_end),
(try_end),
(troop_slot_eq, "$current_commander", 371, 1),
],
[
(get_player_agent_no, ":var_0"),
(try_begin),
(agent_slot_eq, ":var_0", 372, 0),
(agent_set_slot, ":var_0", 372, 1), # agent的槽33的值为1则开启气击模式
(play_sound, "snd_skill_select"),
(play_sound, "snd_skill_select"),
(str_store_troop_name, s1, "$current_commander"),
(display_message, "str_start_up_energy", 0xFFFF33), # {s1}启 动 气 击 模 式 !
(else_try),
(agent_slot_ge, ":var_0", 372, 1),
(agent_set_slot, ":var_0", 372, 0), # agent的槽33的值为0则关闭气击模式
(play_sound, "snd_skill_select"),
(play_sound, "snd_skill_select"),
(overlay_set_color, "$energy_bar", 15854762),
(str_store_troop_name, s1, "$current_commander"),
(display_message, "str_quit_energy_str", 0xFFFF33), # {s1}退 出 气 击 模 式 !
(try_end),
]),复制代码
step7:添加多重箭和连珠箭触发相关代码
打开我们的item_kinds1.txt,然后按照下面的模板和源码进行编译,到相应位置进行替换
(点击展开 / 收起)
-51.000000 2
(点击展开 / 收起)
(store_trigger_param_1, ":var_0"),
(call_script, "script_duochong_and_lianzhu", ":var_0"),复制代码
注意哈!!!所有弓都要添加,不添加就无法用出多重箭和连珠箭哦!!!弓对应的id名可以通过魔球查看,魔球里面也可以添加武器触发器,但是好像有问题。
主动技能-添加多重箭触发器.jpg (47.33 KB, 下载次数: 18)
下载附件
保存到相册
2025-1-20 12:53 上传