找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 462|回复: 14

DNF贴吧发教程教一半的dog 好多

[复制链接]

4098

主题

3万

回帖

12万

积分

出神入化

积分
124065
发表于 2025-9-11 15:39:50 | 显示全部楼层 |阅读模式
教程教一半留一半,给你留个联系方式引流,恶心到我了,问个nut 回调添加职业名obj要收我100,各种奇葩,然后我用deepseek搞懂了,还让它重新给我写了一套更简洁的削弱角色的减伤nut挂载,要知道deepseek 这么好用,鬼还找他们坑,想知道怎么操作的给我留言,我毫无保留的给你们说我怎么操作的,可能也不是特别完善,但实际测试过有效,还有就是把抗魔值的第三位数改成50,角色就会被削弱50%,改成20%,就削弱80%。
阿荣社区欢迎你(bbs.vul7.com)
回复

使用道具 举报

4098

主题

3万

回帖

12万

积分

出神入化

积分
124065
 楼主| 发表于 2025-9-11 15:40:12 | 显示全部楼层
::DUNGEON_DAMAGE_TABLE <- {
[2] = 1,
//副本ID] = 10, 副本减伤90%
}
// 配置加载函数
function loadDamageConfig() {
if (!("dungeonDamageConfigLoaded" in ::getroottable())) {
::dungeonDamageConfigLoaded <- false;
}
if (::dungeonDamageConfigLoaded) return;
try {
local config = sq_ReadJson(CONFIG_PATH);
if ("table" in config) {
::DUNGEON_DAMAGE_TABLE <- clone config.table;
::dungeonDamageConfigLoaded = true;
} else {
throw "Missing 'table' field";
}
} catch(e) {
::DUNGEON_DAMAGE_TABLE <- {};
::dungeonDamageConfigLoaded = true;
}
}
// 怪物防御应用函数
function applyMonsterDefense(monster) {
if (!monster) return;
loadDamageConfig();
local scriptPath = "shennai_948028091/damage_control/dungeon_damage_control.nut";
if (CNSquirrelAppendage.sq_IsAppendAppendage(monster, scriptPath))
return;
local appendage = CNSquirrelAppendage.sq_AppendAppendage(
monster,
null,
-1,
false,
scriptPath,
true
);
appendage.getVar("isDefenseApp").set_bool(true);
appendage.sq_AddFunctionName("onSetHp", "onMonsterHpChange");
}
// HP变化回调函数
function onMonsterHpChange(appendage, newHp, attacker) {
if (!appendage || !appendage.getVar("isDefenseApp").get_bool())
return newHp;
local monster = appendage.getParent();
if (!monster || newHp >= monster.getHp())
return newHp;
local dungeonId = getCurrentDungeonId();
local damageValue = (dungeonId in ::DUNGEON_DAMAGE_TABLE)
? ::DUNGEON_DAMAGE_TABLE[dungeonId]
: 100;
local damageRate = damageValue.tofloat() / 100.0;
if (damageRate < 0.0) damageRate = 0.0;
if (damageRate > 1.0) damageRate = 1.0;
local currentHp = monster.getHp();
local realDamage = (currentHp - newHp).tofloat() * damageRate;
local finalHp = currentHp - realDamage;
return (finalHp < 1 && currentHp > 1) ? 1 : finalHp.tointeger();
}
// 获取副本ID函数
function getCurrentDungeonId() {
local stage = sq_GetGlobalUdpModuleStage();
if (!stage) return -1;
local dungeon = sq_GetDungeonByStage(stage);
if (!dungeon) return -1;
return dungeon.getDungeonIndex();
}
// 怪物处理器
::monsterProcessor <- {
lastCheckTime = 0,
function process(obj) {
if (!obj || !sq_IsGame()) return;
local now = sq_GetGlobalTime();
if (now - lastCheckTime < 1000) return;
this.lastCheckTime = now;
local monsters = sq_GetMonsterPool(null);
foreach(monster in monsters) {
if (monster && monster.isObjectType(OBJECTTYPE_MONSTER)) {
applyMonsterDefense(monster);
}
}
}
}
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4098

主题

3万

回帖

12万

积分

出神入化

积分
124065
 楼主| 发表于 2025-9-11 15:40:35 | 显示全部楼层
然后自己在sqr脚本文件里面建个文件,把这个代码复制粘贴到里面
然后:
sqr/
├── 你自己建的文件夹/
│   └── 你自己建的文件夹/
│       └── 你自己建的文件.nut  # 新建文件文件//这里面添加上面那一大串代码
├── second_passive_object/
│   └──  所有职业的procappend文件夹/
│       ├── 格斗职业名文件//比如:swordsman文件夹打开后,里面有个文件是:procappend.nut,再打开这个文件
│       │   └── procappend.nut  # 添加monsterProcessor调用
│       └── swordsman/ //鬼剑职业名
│           └── procappend.nut  //回调文件
└── loadstate.nut  //左边这个文件夹在sqr文件的最下面; 添加:sq_RunScript("你自己建的文件的路劲.nut");
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4007

主题

3万

回帖

12万

积分

出神入化

积分
122768
发表于 2025-9-11 15:41:26 | 显示全部楼层
二楼没了
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4098

主题

3万

回帖

12万

积分

出神入化

积分
124065
 楼主| 发表于 2025-9-11 15:41:36 | 显示全部楼层
6ZO+5o6lOiBodHRwczovL3Bhbi5iYWlkdS5jb20vcy8xTEdwSTVCUWk2TkxWT1VISWxqNkExUT9wd2Q9OHZ0aSDmj5Dlj5bnoIE6IDh2dGkgCg==
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3446

主题

3万

回帖

11万

积分

出神入化

积分
111461
发表于 2025-9-11 15:42:11 | 显示全部楼层
我在DAF群里说了下类似的问题玲珑直接把我踢出群聊了。你也快了,影响到圈子圈你就等死吧你
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4098

主题

3万

回帖

12万

积分

出神入化

积分
124065
 楼主| 发表于 2025-9-11 15:42:38 | 显示全部楼层
这不是很正常吗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4098

主题

3万

回帖

12万

积分

出神入化

积分
124065
 楼主| 发表于 2025-9-11 15:43:21 | 显示全部楼层
大佬能不能看下我最新发的贴,这个问题困扰我好多天了,大概就是我看pvf里有某某技能的相关文件,但学技能的时候没有,我该怎么给它弄出来呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3446

主题

3万

回帖

11万

积分

出神入化

积分
111461
发表于 2025-9-11 15:43:39 | 显示全部楼层
顺便问一句 deepseek在哪搞
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4098

主题

3万

回帖

12万

积分

出神入化

积分
124065
 楼主| 发表于 2025-9-11 15:44:19 | 显示全部楼层
已深度思考(用时25秒)
根据描述,这个配置行控制抗魔值对属性的影响:
[evil rate]
99 1 100 100
第一个值(99):抗魔值不足时的属性惩罚下限(百分比)
第二个值(1):抗魔值不足时每点抗魔缺失的惩罚比例(每缺失1点抗魔减少1%属性?)
第三个值(100):抗魔值达标时的属性加成上限(百分比)
第四个值(100):抗魔值达标时每点抗魔超出的加成比例(每超出1点抗魔增加1%属性?)
想要实现:无论抗魔值是否达标,都降低属性(即始终处于惩罚状态)
修改方案:
将第一个值(惩罚下限)设为0,这样即使抗魔为0,属性也会降到0%
将第二个值(惩罚比例)设为正值,这样随着抗魔不足,惩罚会加剧
将第三个值(加成上限)设为0,这样抗魔达标时也不会有加成
将第四个值(加成比例)设为0,这样超出的抗魔不会带来加成
例如:
[evil rate]
0 1 0 0
解释:
当抗魔不足时:属性 = 0% + (抗魔值 * 1%),但因为抗魔值不足(低于要求),所以实际上会得到一个负的惩罚,但由于下限是0%,所以实际属性不会低于0%?这并不符合要求。
实际上,这个配置可能的工作方式可能是这样的:
设:
required = 副本要求的抗魔值
actual = 玩家实际抗魔值
diff = actual - required (如果实际低于要求,则为负数)
如果 diff < 0 (抗魔不足):
属性惩罚 = max( 第一个值, 第二个值 * |diff| ) 即属性最多降到第一个值(百分比),每差1点抗魔就减少第二个值%的属性
最终属性 = 原始属性 * (1 - 属性惩罚/100) [注意:这里可能是减法,也可能是乘法,具体看实现]
如果 diff >= 0 (抗魔达标或超出):
属性加成 = min( 第三个值, 第四个值 * diff ) 即属性最多加到第三个值(百分比),每超出1点抗魔就增加第四个值%的属性
最终属性 = 原始属性 * (1 + 属性加成/100)
所以,如果我们希望无论抗魔值多少,属性都降低,可以这样设置:
抗魔不足时:我们设置一个很高的惩罚,确保属性降到很低(比如降到1%)
第一个值 = 99 表示最低只能保留1%的属性(因为100-99=1%?) 注意:这里可能是直接表示保留的百分比,也可能是惩罚值。需要看具体实现。
但是根据问题描述,我们想要的是即使抗魔够,也要降低属性。那么我们可以:
方案一:修改游戏逻辑,在计算抗魔影响后,再额外乘以一个系数(比如0.5),但这需要改代码。
方案二:利用配置,设置一个很高的抗魔要求,使得所有玩家都达不到要求,从而触发惩罚。
方案三:修改配置参数,使得抗魔达标时不是加成而是惩罚。
然而,从配置的四个参数来看,它没有提供在抗魔达标时进行惩罚的参数。因此,我们需要改变思路:
我们可以将抗魔要求设置得非常高,以至于玩家不可能达到,这样所有玩家都会进入抗魔不足的惩罚区间,然后我们控制惩罚的幅度。
例如:
将副本要求的抗魔值设置为一个极高的值(比如99999),然后配置:
[evil rate]
99 1 0 0
这样,所有玩家都会因为抗魔不足而受到惩罚,惩罚的结果是属性最多降到1%(因为100-99=1)。
但是,这样设置后,玩家之间的抗魔差异依旧会影响属性:抗魔高的玩家惩罚少,抗魔低的玩家惩罚多。
如果我们希望无论抗魔高低,所有玩家在该副本的属性都降低到固定比例(比如50%),那么我们需要:
将第一个值设置为50(表示惩罚下限为50%,即属性最多降到50%),第二个值设置为0(表示不随抗魔差值额外惩罚),这样所有玩家都会统一降到50%。
配置:
[evil rate]
50    0    0    0
解释:
当抗魔不足时,属性直接降到50%(因为第二个值是0,所以不计算差值惩罚,直接取第一个值作为惩罚)
当抗魔达标时,属性加成上限为0(即不加成),所以属性保持原样(100%)?这不符合要求。
解释:    当抗魔不足时,属性直接降到50%(因为第二个值是0,所以不计算差值惩罚,直接取第一个值作为惩          罚)    当抗魔达标时,属性加成上限为0(即不加成),所以属性保持原样(100%)?这不符合要求。
所以,我们需要确保所有玩家都进入惩罚区间,因此必须让副本的抗魔要求高于玩家能达到的抗魔值。
因此,步骤:
修改副本的抗魔要求,设置一个非常高的值(比如99999)
配置evil rate为:
[evil rate]
50 0 0 0
这样,所有玩家都会因为抗魔不足(实际抗魔<99999)而触发惩罚,并且惩罚固定为50%(即属性变为50%)。
注意:第一个值50表示惩罚后保留的百分比?还是惩罚的百分比?需要看游戏实现。
根据原始配置:
99 1 100 100
原始意图可能是:
当抗魔不足时,属性保留 = max(100-99, 100 - 1*(差值)) 即至少保留1%属性。
当抗魔超出时,属性加成 = min(100, 100+100*(差值)) 即最多加到200%属性。
所以,第一个值99表示最多惩罚99%(保留1%),第二个值1表示每差1点抗魔惩罚1%。
那么,如果我们设置:
[evil rate]
50 0 0 0
抗魔不足时:属性保留 = max(100-50, 100 - 0*(差值)) = 50% (即属性降到50%)
抗魔达标时:属性加成 = min(0, 0+0*(差值)) = 0,所以属性为100%+0=100% (但我们希望这里也要惩罚)
所以,为了在抗魔达标时也受到惩罚,我们必须让玩家进入抗魔不足的区间,因此需要设置一个不可能达到的抗魔要求。
结论:
修改副本的抗魔要求(在副本配置中)为一个极高的值(比如99999),然后设置evil rate为:
[evil rate]
50 0 0 0
这样,所有玩家都会因为抗魔不足(实际抗魔<99999)而触发惩罚,并且惩罚固定为50%属性。
注意:如果游戏中有增加抗魔的机制(比如药剂、buff)使得玩家抗魔超过了99999,那么这些玩家就会进入加成区间,属性变成100%以上。为了避免这种情况,我们可以把第三个值(加成上限)也设为0,第四个值设为0,这样即使抗魔超出,加成也是0,属性还是100%。但我们希望这些玩家也要被惩罚,所以还是不行。
因此,最保险的方法是将抗魔要求设置得足够高,确保任何玩家都不可能达到(比如设置成9999999)。这样所有玩家都在惩罚区间,属性都是50%。
如果无法修改副本的抗魔要求,那么就需要修改游戏代码,在计算抗魔影响后,统一乘以一个系数(比如0.5)来降低属性。
所以,具体方案取决于你能否修改副本的抗魔要求。
如果能修改副本抗魔要求:
复制  1. 找到副本配置(可能是dungeon.tbl或者具体副本的配置文件),将抗魔要求(evil值)改为9999999。  2. 修改evil rate配置为:        [evil rate]          50    0    0    0
如果不能修改副本抗魔要求:
复制  则需要修改游戏逻辑代码,在计算抗魔对属性的影响后,再乘以一个全局系数(比如0.5)。这需要找到计算抗魔影响的函数,并在其后添加一行乘法。
由于问题要求只通过evil rate配置来实现,且要同时影响抗魔不足和抗魔达标的情况,而配置本身不支持在达标时进行惩罚,所以只能通过设置高抗魔要求来强制所有玩家进入惩罚区间。
因此,请根据实际情况选择方案。
根据您的需求,您希望修改抗魔值系统,使得即使抗魔值足够也会降低属性。以下是修改方案和实现代码:
🔧 修改方案
在 [evil rate] 配置行中:
ini复制[evil rate]991100100
修改为:
ini复制[evil rate]1001100-1  ; 抗魔不足时降低属性,抗魔足够时也降低属性
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

4094

主题

3万

回帖

12万

积分

出神入化

积分
125027
发表于 2025-9-11 15:45:18 | 显示全部楼层
好帖,当浮一大白
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3893

主题

3万

回帖

11万

积分

管理员

积分
119459
发表于 2025-9-11 15:45:37 | 显示全部楼层
点赞,好贴

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3893

主题

3万

回帖

11万

积分

管理员

积分
119459
发表于 2025-9-11 15:46:30 | 显示全部楼层
好棒
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

发表于 2025-9-11 15:46:44 | 显示全部楼层
太正常了,教一半,弄你的一知半解,然后收费帮,真正的热心肠大佬越来越少了
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

3446

主题

3万

回帖

11万

积分

出神入化

积分
111461
发表于 2025-9-11 15:47:00 | 显示全部楼层
字也太多了,不看
阿荣社区欢迎你(bbs.vul7.com)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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