骑马与砍杀中文站论坛

用户名  找回密码
 注册(Register!)

QQ登录

只需一步,快速开始

帖子
购买CDKEY 衣谷三国
查看: 3839|回复: 4

[分享] 【主动技能】 功能添加 适用潘德原版和任意mod

[复制链接]

8

主题

14

回帖

7

积分

平民

Rank: 1

UID
3009042
第纳尔
45
精华
0
互助
0
荣誉
0
贡献
0
魅力
2
注册时间
2018-6-22
鲜花(3) 鸡蛋(0)
发表于 2025-1-12 17:19:04 | 显示全部楼层 |阅读模式
本帖最后由 ww1437599567 于 2025-1-20 13:04 编辑

前言
由于中文站审核太慢了,所以我决定把相关的功能教程分开一些。相关的资源和基础,大家可以去我的这个帖子找:【超详细万字教程】一些功能添加 适用潘德原版和任意子mod
添加功能:主动技能
主动技能是一个大型的功能系统,和她城子mod里面的功能一样,是可以进行完全或者部分关闭的(还未增加关闭的功能,后续添加)。现推出一个试玩版本,试玩版本里面包含了更新的:特殊战利品机制、boss和全局血条、主动技能三个功能系统。试玩版,玩家一出来就获得全部主动技能。
主动技能是移植的泡菜里面的功能,主要分为以下几个部分:
    ① 气力条。开启主动技能-基础版后,主角血条下方会出现一个气力条,这个力气条就是你使用相关主动技能需要消耗的”蓝条“,如果气力不足,是无法使用相关主动技能的;
    ② 气力条的最大值和玩家的铁骨挂钩,气力会随时间缓慢恢复,恢复速度随铁骨等级增加而增加;
    ③ 主动技能需要开启战场小地图功能才能使用;目前ai拥有的特技增加了:马姐:烽火燎原;狼叔:风卷残云;眼珠子:末日风暴;其他步战的boss还有哪些大家给我说一下,我加入测试。
    ④【主动技能】耗气奔跑-提高移动速度,仅地上,耗气(使用方法:若为玩家,则按住左alt键不放移动,跑动等级越高加速效果越明显);
    ⑤【主动技能】风卷残云-释放者周围瞬发范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),带击倒,耗气(若为玩家,则轻触E键释放),伤害值受强击等级影响;
    ⑥【主动技能】地龙震雷-释放者周围瞬发范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),仅地上,带击倒和吸血,耗气(若为玩家,则轻触Z键释放),伤害值受强击等级影响;
    ⑦【主动技能】霸王崩山劲-释放者周围蓄力范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),仅地上,带吹飞,耗气(若为玩家,则按住E键蓄力释放),伤害值受强击等级影响;
    ⑧【主动技能】烽火燎原-释放者周围蓄力范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),仅马上,耗气(若为玩家,则按住E键蓄力释放),伤害值受强击等级影响;
    ⑨【主动技能】末日风暴-释放者周围蓄力持续范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),仅马上,带击倒,耗气(若为玩家,则按住前进键的同时按住左ctrl键蓄力释放),伤害值受骑术等级影响;
    ⑩【主动技能】死神之吻-蓄力远程范围真实伤害(每释放10次永久增加1点伤害,可无限叠加),带概率混乱和伤害暴击,仅武器为弓,耗气(若为玩家,则按住F键的同时发射弓箭释放),伤害值受强弓等级影响;
    【主动技能】气击模式-攻击附带额外真实伤害,耗气(若为玩家,则轻触鼠标中键开启\关闭气击模式),伤害值受强击等级影响;
    【主动技能】斗气暴击-气击模式下的额外真实伤害提升为1.5倍(仅近战提升),伤害值受强击等级影响;
    【主动技能】连珠箭-消耗3支箭,远程发射4支较为集中的箭,仅武器为弓,耗气(若为玩家,则按住左alt键的同时发射弓箭释放);
    【主动技能】多重箭-消耗3支箭,远程发射4支较为分散的箭,仅武器为弓,耗气(若为玩家,则按住Q键的同时发射弓箭释放);


主动技能-风卷残云.jpg
主动技能-霸王崩山击.jpg
step1:相关资源的添加
主动技能相关资源引用.zip (686.35 KB, 下载次数: 13)
① 音效
首先,下载我提供的音效资源,将他们复制到Sounds文件夹内。
音效资源.jpg
然后我们需要把他们加载进去,并赋予他们相关的引用名字等等。打开sounds.txt文件,需要添加两个地方,并修改两个计数器
其中一个地方就是大约1350行前面(这里会看到一个计数值,这是第二段代码的计数值,第一段代码的计数值在前面),将我们提供的第一段音效代码复制进去,记得第一段的计数器值+23
(点击展开 / 收起)
注意!每一行有且只有一个空格哦!!注意检查,不能多也不能少,会报错。
主动技能-音效-第一段-代码添加.jpg
然后我们将第二段音效代码复制进去,复制到sounds.txt最后就行了。还是记得计数器+22。
(点击展开 / 收起)
主动技能-音效-第二段-代码添加.jpg
② 模型文件和贴图的导入
复制我提供的模型文件到Resource文件夹内,复制我提供的贴图文件到Textures文件夹内。

并在module.ini最后添加加载资源的代码:
(点击展开 / 收起)
主动技能-模型复制进文件夹.jpg
③ 添加粒子效果
打开particle_systems.txt文件,将下面的代码复制到最后,并添加计数器+21。
(点击展开 / 收起)
主动技能-资源添加-粒子效果2.jpg
④ 添加模型代码
打开meshes.txt文件,将下面的代码复制到最后,并添加计数器+1。
(点击展开 / 收起)
主动技能-资源添加-mesh.jpg
⑤ 添加动画代码
打开actions.txt文件,动画代码修改不是在最后添加,而且将系统预留的代码替换掉,计数器不变(注意每行开头的空格数量,不要多也不要少)。
我们替换的是预留的unused_human_anim_64到unused_human_anim_75,源码如下:
(点击展开 / 收起)
主动技能-资源添加-动画22222.jpg
主动技能-动画2.png
⑥ 添加场景代码
打开scene_props.txt文件,将下面的代码复制到最后,并添加计数器+6。
(点击展开 / 收起)
主动技能-资源添加-场景.jpg
step2:添加相关变量
打开variables.txt,在文件最后加入如下代码:
(点击展开 / 收起)
step3:添加相关字符串和翻译
① 打开strings.txt,在最后添加如下代码,然后计数器+25。
(点击展开 / 收起)
② 打开该文件路径".\languages\cns\game_strings.csv"​添加在后面即可:
(点击展开 / 收起)
主动技能-添加-字符串和翻译2.png
step4:添加相关脚本函数
① 战场初始化参数函数:pm_init_mt_param
(点击展开 / 收起)
这个在scripts.txt中设置好了之后,还要将它的调用触发放在mt里面:
(点击展开 / 收起)
mt构造的模板我放这了,大家自行编译成txt后进行拼接:
(点击展开 / 收起)
最终的效果就是这样:
主动技能-战场初始化函数.png
初始化参数函数:pm_init_param
这个函数我们之前就定义过了,大家可以去看我主贴的基础篇。需要在函数的后面增加一些代码就行(需要测试玩家和ai的技能,将相应的地方的注释取消即可):
(点击展开 / 收起)

主动技能-初始化函数.png

其他脚本函数
我就不一一介绍了,大家将下面的脚本函数添加到scipts.txt中就行:


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)

step5:添加ui相关代码
添加ui稍微复杂一点,主要是针对小地图的ui代码的修改。打开presentations.txt,搜索prsnt_mini_map,定位到如下图的位置,其中需要改的地方,图中我已经标出来了,后续需要使用MBCodeEditor进行反编译后修改源码(不知道怎么反编译的看我前面的基础介绍):
主动技能-ui代码.png
这里小地图源码1这里反编译之后,在(presentation_set_duration, 999999), 代码之前添加我们的源码;小地图源码2这里反编译之后,在首行和尾行分别添加我提供的源码。(由于我之前弄了boss血条的功能,所以首行的之前加过了):
(点击展开 / 收起)


(点击展开 / 收起)

step6:添加mt相关代码
添加的战场触发器比较多,我以第一个mt给大家详细说明步骤,后面我就直接贴源码了。


(点击展开 / 收起)



① 添加的位置。添加位置还是在我们的野战战场的位置,mission_templates.txt搜索lead_charge,定位到到这里就行:
主动技能-mt添加位置.jpg
② 我们给的源码需要注意的有三部分:
    1. 触发器的触发频率(就是第一行这个ti_after_mission_start, 0.000000, 0.000000,  # -20.000000 0.000000 0.000000),我在后面都已经注释了,实际填的时候是写什么,大家不清楚的参考一下,也可以自己去查骑砍官方的表ti_after_mission_start对应什么数字
    2. 触发器条件代码。顾名思义,就是触发器需要满足条件才能触发下面的实际代码,大家正常编译成txt就行,这里和实际代码要分开进行编译,也就是说一个mt需要编译两次
    3. 触发器执行的实际代码。也就是触发器实际执行的代码,正常编译即可。
主动技能-触发器格式.jpg
③ 最终的mt代码怎么连接。我们的mt代码这三部分就是这样连接的:-20.000000 0.000000 0.000000  15 12 1 1224979098644774912 505 3 1224979098644774912 383 4900 505 3 1224979098644774912 376 0 505 3 1224979098644774912 378 0 505 3 1224979098644774912 372 0 3 0 2133 2 1224979098644774913 0 12 1 1224979098644774912 1718 2 1224979098644774914 1224979098644774912 540 3 1224979098644774914 363 1 2133 2 1224979098644774913 1 3 0 31 2 1224979098644774913 1 1810 2 1224979098644774915 1080863910568920310 31 2 1224979098644774915 0  19 1780 2 1 0 722 2 1 -5000 1970 1 1 1974 2 1080863910568920310 0 720 2 1 300 1970 1 1 1974 2 1080863910568920311 0 720 2 1 300 1970 1 1 1974 2 1080863910568920312 0 720 2 1 300 1970 1 1 1974 2 1080863910568920313 0 720 2 1 300 1970 1 1 1974 2 1080863910568920314 0 720 2 1 300 1970 1 1 1974 2 1080863910568920315 0
解释一下,这里的红色就是第一部分的触发频率,我源码里面的注释(也就是# 后面的)已经给了;第二部分就是橙色的部分,其中第一个数字15是代码行数,跟一个空格然后是代码第三部分就是蓝色部分,其中第一个数字19是代码行数,跟一个空格,然后是代码。每个部分之间的连接是两个空格,这里一定要注意。格式一旦出错,是会出bug的。
ps:特别说明:有可能第二部分一个代码也没有,那就直接代码行数写0,然后跟两个空格,接第三部分就行。-20.000000 0.000000 0.000000 0  19 1780 2 1 0 722 2 1 -5000 1970 1 1 1974 2 1080863910568920310 0 720 2 1 300 1970 1 1 1974 2 1080863910568920311 0 720 2 1 300 1970 1 1 1974 2 1080863910568920312 0 720 2 1 300 1970 1 1 1974 2 1080863910568920313 0 720 2 1 300 1970 1 1 1974 2 1080863910568920314 0 720 2 1 300 1970 1 1 1974 2 1080863910568920315 0
主动技能-mt格式-实际添加.jpg


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


(点击展开 / 收起)


step7:添加多重箭和连珠箭触发相关代码
打开我们的item_kinds1.txt,然后按照下面的模板和源码进行编译,到相应位置进行替换
(点击展开 / 收起)

(点击展开 / 收起)

注意哈!!!所有弓都要添加,不添加就无法用出多重箭和连珠箭哦!!!弓对应的id名可以通过魔球查看,魔球里面也可以添加武器触发器,但是好像有问题。
主动技能-添加多重箭触发器.jpg


鲜花鸡蛋

karl-leung  在2025-1-15 08:46  送朵鲜花  并说:我非常同意你的观点,送朵鲜花鼓励一下

2

主题

38

回帖

12

积分

随仆

Rank: 1

UID
3476600
第纳尔
120
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2023-1-18
鲜花(0) 鸡蛋(0)
发表于 2025-1-18 13:00:45 来自手机 | 显示全部楼层
加油加油来自: Android客户端

0

主题

2

回帖

1

积分

平民

Rank: 1

UID
2526910
第纳尔
16
精华
0
互助
0
荣誉
0
贡献
0
魅力
0
注册时间
2015-5-30
鲜花(0) 鸡蛋(0)
发表于 2025-1-19 19:18:22 | 显示全部楼层
请问step1中说的音效资源在哪下载啊

8

主题

14

回帖

7

积分

平民

Rank: 1

UID
3009042
第纳尔
45
精华
0
互助
0
荣誉
0
贡献
0
魅力
2
注册时间
2018-6-22
鲜花(3) 鸡蛋(0)
 楼主| 发表于 2025-1-20 11:34:40 来自手机 | 显示全部楼层
青铜树 发表于 2025-1-19 19:18
请问step1中说的音效资源在哪下载啊

忘记放链接里,我更新一下来自: Android客户端

16

主题

199

回帖

110

积分

见习骑士

Rank: 3

UID
1404850
第纳尔
835
精华
0
互助
9
荣誉
0
贡献
0
魅力
13
注册时间
2013-6-9
鲜花(38) 鸡蛋(0)
发表于 2025-2-24 14:54:47 | 显示全部楼层
emmm,死神之吻的混乱效果,跟 俘虏、溃军 这些有很强的联动,我当时修了一堆bug……
建议在每个 mst 前面,最开始的单位死亡事件(-26.0)前放一个触发器,若单位 slot 35 大于0,则根据 slot 34 还原回他的 team id ,这起码能避免很多bug……
然后在从混乱中恢复的地方,最好加一条 若非所有敌人都击败了 (neg|1003), 才会恢复。不然有时候会意外闪退。
在进入场景之处,重新初始化一下 kiss_agent 为 -1 ,不然一些上一把 飞吻还在飞的时候就退出战场 ,下一把刚进战场可能会报错 或 发生意外现象……
死神之吻检测方式得改下,不然 火器 和 弩 会在装填的时候(才检测到后备弹药减少)才会发射飞吻。
进入混乱 与 恢复混乱 还得加个判断,因为在获取 agent 的 party id 的时候,可能返回 -1 (例如 村庄战),这时候再去获取 party 的 faction 会代码返回 false 结果,即 同时被魅惑了 但又进入else造成了伤害。
另外,飞吻在海战图里还得单独修复一下弹道z轴,不然没法亲到的
您需要登录后才可以回帖 登录 | 注册(Register!)

本版积分规则

Archiver|手机版|小黑屋|骑马与砍杀中文站

GMT+8, 2025-3-14 19:37 , Processed in 0.173588 second(s), 27 queries , Gzip On, MemCached On.

Powered by Discuz! X3.4 Licensed

© 2001-2023 Discuz! Team.

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