本帖最后由 ww1437599567 于 2025-1-20 13:04 编辑
前言 添加功能:主动技能 主动技能是一个大型的功能系统,和她城子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键的同时发射弓箭释放);
step1:相关资源的添加 ① 音效 首先,下载我提供的音效资源,将他们复制到Sounds文件夹内。 然后我们需要把他们加载进去,并赋予他们相关的引用名字等等。打开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
复制代码 |
注意!每一行有且只有一个空格哦!!注意检查,不能多也不能少,会报错。 然后我们将第二段音效代码复制进去,复制到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
复制代码 |
② 模型文件和贴图的导入 复制我提供的模型文件到Resource文件夹内,复制我提供的贴图文件到Textures文件夹内。
并在module.ini最后添加加载资源的代码: - load_mod_resource = wb_plus_item
- load_mod_resource = wb_plus_animations
- load_mod_resource = wb_plus_user_interface_b
复制代码 |
③ 添加粒子效果 打开particle_systems.txt文件,将下面的代码复制到最后,并添加计数器+21。
④ 添加模型代码 打开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
复制代码 |
⑤ 添加动画代码 打开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
复制代码 |
⑥ 添加场景代码 打开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
复制代码 |
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}: 多 重 箭 !
复制代码
|
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 <txt代码>
复制代码 |
最终的效果就是这样: ② 初始化参数函数: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), # 设置某个槽的值,设置拥有多重箭
复制代码
|
③ 其他脚本函数
我就不一一介绍了,大家将下面的脚本函数添加到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进行反编译后修改源码(不知道怎么反编译的看我前面的基础介绍):
这里小地图源码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,定位到到这里就行:
② 我们给的源码需要注意的有三部分:
1. 触发器的触发频率(就是第一行这个ti_after_mission_start, 0.000000, 0.000000, # -20.000000 0.000000 0.000000),我在后面都已经注释了,实际填的时候是写什么,大家不清楚的参考一下,也可以自己去查骑砍官方的表ti_after_mission_start对应什么数字;
2. 触发器条件代码。顾名思义,就是触发器需要满足条件才能触发下面的实际代码,大家正常编译成txt就行,这里和实际代码要分开进行编译,也就是说一个mt需要编译两次;
3. 触发器执行的实际代码。也就是触发器实际执行的代码,正常编译即可。
③ 最终的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
- (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,然后按照下面的模板和源码进行编译,到相应位置进行替换
- (store_trigger_param_1, ":var_0"),
- (call_script, "script_duochong_and_lianzhu", ":var_0"),
复制代码
|
注意哈!!!所有弓都要添加,不添加就无法用出多重箭和连珠箭哦!!!弓对应的id名可以通过魔球查看,魔球里面也可以添加武器触发器,但是好像有问题。
|