阿荣社区机器人 发表于 2025-8-1 09:39:26

人人都可以简单入门nut(第二期)关于变量名和调试台。

emmmmm摸鱼了几天开始更第二期,如果上一期有认真听课的朋友,现在应该随便就可以写一个加各种属性的ap文件!!看到有人还是说看不懂。这里稍微讲一下ap的逻辑和对比装备的equ写法的一些区别。如果还是看不懂那就真没办法了。

http://tiebapic.baidu.com/forum/w%3D580/sign=7bd4463dd1dda144da096cba82b7d009/d3abd1fc1e178a82ce029d8eb003738da977e874.jpg?tbpicau=2025-08-12-05_6f128f7a8160b232033838a79ccf377a

http://tiebapic.baidu.com/forum/w%3D580/sign=b341f621fe0e7bec23da03e91f2eb9fa/e2919901a18b87d6ad3f4931410828381f30fd29.jpg?tbpicau=2025-08-12-05_e75194f19acf7ac5a34de378b646407c
这个是装备上的写法。如果nut要实现上面的属性就要这么写

http://tiebapic.baidu.com/forum/w%3D580/sign=fad77c7a454f78f0800b9afb49310a83/b69c8eef76c6a7efcf214a08bbfaaf51f3de6622.jpg?tbpicau=2025-08-12-05_c41c643d93856edf9e14b911d75793eb

http://tiebapic.baidu.com/forum/w%3D580/sign=b57bb0178f3d70cf4cfaaa05c8dcd1ba/85a73634349b033b91f01ef453ce36d3d539bd36.jpg?tbpicau=2025-08-12-05_99f5bb7e556a715ef274468e42df1d3e
如果对pvf里装备equ有点理解的可以对比一下nut和装备equ的写法和区别。然后可以按照上一期的视频来写其他属性了。
稍等会来更新第二期要讲的变量名和调试台的作用 !!!

阿荣社区采集员 发表于 2025-8-1 09:39:53

大佬牛逼

xiaomi 发表于 2025-8-1 09:40:27

这是要教会我们?必须收藏

xiaomi 发表于 2025-8-1 09:41:22

顶贴

阿荣社区采集员 发表于 2025-8-1 09:42:22

感谢大佬无私奉献

阿荣社区机器人 发表于 2025-8-1 09:42:48

顶帖

admin 发表于 2025-8-1 09:42:59

求日更

阿荣社区采集员2 发表于 2025-8-1 09:43:43

真打算教会我
太给力了

阿荣社区采集员2 发表于 2025-8-1 09:44:19

牛的

阿荣社区采集员2 发表于 2025-8-1 09:45:09

顶顶顶🤩

阿荣社区采集员3 发表于 2025-8-1 09:45:40

好强

阿荣社区机器人 发表于 2025-8-1 09:45:45

第二期正式内容开始!
工欲善其事,必先利其器~光会写还不行,还要知道哪里错了。代码怎么会跑不起来~所以就需要一个提示错误的工具!怎么去打开调试台,目前据我了解有2个办法第一个是自带调试台的exe登录器或者调用大佬分享的血条震动插件可以打开调试台



打开了上游戏就会有一个单独的调试框


那有这个控制台对于写这个代码有什么意义?
我们就可以实时输出一些信息判断代码有没有跑起来或者我们的代码有没有报错!




通过输出我们可以判断出procappend函数只要角色在图里就会一直输出一直执行!调试函数我们可以优先使用这个函数进行测试~
不同的函数执行的条件也不一样,有调试台就可以测试出那个时候函数会运行!

阿荣社区机器人 发表于 2025-8-1 09:46:10


emmmm中间有一张图好像吞掉了
print("procAppend " + 22222);
这个就是输出的指令。前面是名字。+后面是输出的内容。
所有用到的工具或者文件教程结束我会上传到度盘到时候会分享出来!

阿荣社区采集员3 发表于 2025-8-1 09:46:24

赶上直播了

阿荣社区机器人 发表于 2025-8-1 09:46:29

到现在我们已经学会了动态调试nut(外置文件)
控制台输出信息实时反馈代码信息
接下来讲讲对象!这里所的对象是具体到哪一个目标
我们回到一开始的代码!

// 检查 appendage 对象是否存在
// 如果 appendage 为空或未定义,则退出当前函数
if (!appendage) return;
// 获取 appendage 对象的父对象
local parentObj = appendage.getParent();
// 从父对象中获取对应的 SQR 角色对象
// sq_GetCNRDObjectToSQRCharacter 是一个自定义函数,用于将 CNRD 对象转换为 SQR 角色对象
local obj = sq_GetCNRDObjectToSQRCharacter(parentObj);
重点看前面的几行。第一行就是有一个判断(if)有写过equ的应该都不陌生
意思是如果怎么怎么样后面就怎么怎么样的意思
if (!appendage) return;
如果ap不存在就不执行下面的内容
如果ap存在就接着往下执行
// 获取 appendage 对象的父对象
local parentObj = appendage.getParent();
// 从父对象中获取对应的 SQR 角色对象
// sq_GetCNRDObjectToSQRCharacter 是一个自定义函数,用于将 CNRD 对象转换为 SQR 角色对象
local obj = sq_GetCNRDObjectToSQRCharacter(parentObj);
获取到ap的源对象,其实也是角色本身。下面一行是转化为角色对象
换成人话就是只要我们在这个代码下面调用obj这个代码系统就知道obj是角色本身!
代码里最难的就是准确的获取到精准的对象这个后面也会提及
再往下看
local power = 100;
这个power是我们自己定义的。所有的定义都是为了代码的可读性这个 power完全可以不写
包括上面的obj也是为了可读性让我们写后续的东西提高可读性
// 尝试从 appendage 对象中获取状态标识为 "100301495" 的变化状态
// sq_getChangeStatus 是一个自定义函数,用于获取特定标识的变化状态
local change_appendage = appendage.sq_getChangeStatus("100301495");
// 检查是否成功获取到变化状态
if (!change_appendage) {
// 如果没有获取到变化状态,则创建一个新的变化状态
// 调用 appendage 对象的 sq_AddChangeStatus 方法添加新的变化状态
// 参数解释:
// "100301495": 状态标识,唯一标识这个变化状态
// obj: 目标对象,变化状态将应用于此对象
// obj: 源对象,变化状态的来源对象
// 5000: 持续时间,单位可能是毫秒,表示变化状态的持续时间为5000毫秒(5秒)
// CHANGE_STATUS_TYPE_COOLTIME_DECLINE: 变化状态类型,这里表示冷却时间递减类型
// true: 布尔值参数,可能表示变化状态是否可叠加
// -power: 变化值,这里为 -100,表示减少100点力量或能量值
change_appendage = appendage.sq_AddChangeStatus("100301495", obj, obj, 5000,
CHANGE_STATUS_TYPE_COOLTIME_DECLINE, true, -power);
}
再到下面如果状态有变化的话附加一个属性给角色本身
change_appendage = appendage.sq_AddChangeStatus("100301495", obj, obj, 5000,
CHANGE_STATUS_TYPE_COOLTIME_DECLINE, true, -power);
这个属性就是冷却时间减少附加对象是我们角色自己obj
附加的对象也是我们自己obj
这里后面的power上面我们定义的100
如果不是为了可读性完全可以不写直接改成
change_appendage = appendage.sq_AddChangeStatus("100301495", sq_GetCNRDObjectToSQRCharacter(parentObj), sq_GetCNRDObjectToSQRCharacter(parentObj), 5000,
CHANGE_STATUS_TYPE_COOLTIME_DECLINE, true, -100);
obj也可以改回去
页: [1]
查看完整版本: 人人都可以简单入门nut(第二期)关于变量名和调试台。