目前已收纳:
-
秒搜(及其他技能buff修改)
-
踹门
-
快捷使用安全箱、背包物品(扔雷、换弹)及可添加到快捷键栏位
-
无极变倍瞄准镜倍率急速切换(不用磨叽等动画)
如果有其他自改dll比较有用的功能,欢迎补充分享!
一些现成的mod,3.11可用:
使用任意位置物品,作者已停更,不知道3.11这个能不能用
github:UseItemsAnywhere
dnSpy下载:
dnSpy下载可以直接使用2020年6.1.8版本,github-dnSpy。原项目已停档,24年还在更新的在这里,dnSpyEx
如果上不去github,我传的618版本蓝奏云:6.1.8版本dnSpy
要改的dll位置:
EscapeFromTarkov_Data\Managed\Assembly-CSharp.dll
请提前备份这个文件。然后删除它旁边的同名备份文件(可能没有,是相同大小的.bak,不是同名-fill的)。
建议同时删除客户端校验它的文件,位于
SPT_Data\Launcher\Patches\SPT-core\EscapeFromTarkov_Data\Managed\同名.dll.delta
如何使用dnSpy修改:
文件-打开,选择Assembly-CSharp.dll。如果你想全局搜索一个关键词,不是ctrl+F(这个只能搜当前打开的文本框),而是ctrl+shift+K(可以搜所有程序集内容)
如果你的代码函数都是红色(=错误),或编译保存时出问题:
修改dll前请先运行一次塔科夫客户端!进入主界面就行,不需要进图。
额外用dnSpy打开managed文件夹内所有的dll文件,加载到左侧列表以供调用。
不要开着客户端服务端!
一、任意踹门修改
实现功能:对任意门都可以踹开。这个主要是对于没有钥匙的门也可以踹,例如本来不让进的房间。
如果还想开保险箱、某些带锁内容,请使用万能钥匙mod,例如mega-mod或open sename。
搜索 BreachSuccessRoll 找到对应段落,右键-编辑方法(C#),将代码修改为这样,然后编译、保存。
(如果搜不到,就搜canBeBreached)
public bool BreachSuccessRoll(Vector3 yourPosition) { bool canBeBreached = this.CanBeBreached; if (this.Operatable) { Vector3 vector = base.transform.TransformPoint(this.viewTarget1) - yourPosition; Vector3 a = base.GetDoorRotation(this.GetAngle(EDoorState.Shut)) * WorldInteractiveObject.GetRotationAxis(this.DoorForward, base.transform); Vector3 b = base.GetDoorRotation(this.GetAngle(EDoorState.Open)) * WorldInteractiveObject.GetRotationAxis(this.DoorForward, base.transform); Vector3 vector2 = a + b; Vector2.Dot(new Vector2(vector.x, vector.z).normalized, new Vector2(vector2.x, vector2.z).normalized); return true; } return false; }
二、秒搜,及其他技能buff
Ctrl+Shift+K 搜索 IntellectLearningSpeed 选择EFT.SkillManager的一项
(或者手动从左侧列表找Assembly-CSharp.dll\EFT\SkillManager,点击SkillManager本体)
找到位置后,里面好几段的代码都是控制各种技能buff幅度的。
可以Ctrl+F搜 PerLevel 关键词,依次找到各种技能的等级成长控制数值。
可参考坛内帖子,技能buff参数列表翻译,然后想改什么就自己改什么。
对于秒搜:
搜索 AttentionEliteLuckySearch 找到 带.Elite(0.5f).PerLevel(0.0f)的一段,然后右键、编辑方法,把它改成你喜欢的。精英秒搜就是Elite(1.0f),你想慢慢升级就Elite(1f).PerLevel(0.02f)逐渐从0到100%秒搜,或者无条件秒搜PerLevel(1.0f)。
某个技能.Elite(xx).PerLevel(yy).Max(zz)的含义:
精英时,优先使用Elite(xx)的指定数值。
非精英时,PerLevel(0.02f)是每级2%,或者Max(1.0f)是指定50级时100%,它会自动处理为每级2%。
不要同时使用Max和PerLevel。
三、修改快捷使用背包、安全箱物品
搜索 FastAccessSlots 找到对应代码,然后给
BindAvailableSlotsExtended
FastAccessSlots
上述两项的列表中都添加下面的内容,就是允许直接使用XXX内物品,且可以用0~9快捷键使用。
EquipmentSlot.SecuredContainer 安全箱
EquipmentSlot.Backpack 背包
四、瞄准镜倍率切换速度加快
搜索 ScopeZoomHandler 然后点击列表任意内容,此时会在这个名字的代码段里。
Ctrl+F 搜索 deltatime,找到这样一行
float maxDelta = this.Single_2 * Mathf.Abs(this.float_3) * Time.deltaTime * 10f;
如上在最后加上 * 10f,就是切换倍率动画速度10倍。改成你喜欢的速度就行。
暂时自用的内容就这些。欢迎分享其他的。
补充:
5. 修改镭射激光瞄准点的大小
搜索LaserBeam.LateUpdate,找到LateUpdate()段落的这两行
float num = Mathf.Lerp(this.PointSizeClose, this.PointSizeFar, raycastHit.distance / this.MaxDistance);
float num2 = (1f - raycastHit.distance / this.MaxDistance) * this.IntensityFactor;
第一个num是光点大小,第二个num是射线光亮强度,都是一个与距离有关的函数。
可以改为
float num = 2.0f * Mathf.Lerp……就是2倍光点大小,我只改了这个,基本50米激光红点很明显,再远了也没人想腰射吧……
float num2 = (2f - ray……就是激光可视距离有2倍远,或者2倍粗?不过这个我感觉不太出来……
6. 降低普通地雷、阔剑地雷伤害
搜索 collateralDamageRange 找到MineField部分,然后文中搜索 DamageInfoStruct 找到 Damage、Armordamage、StaminaBurnRate、PenetrationPower,分别是伤害、甲伤、减耐力、穿甲度,可以在每一项后面加上 * 0.2f 就是0.2倍。这几个是普通地雷的伤害情况。
搜索 Minedirectional 找到这个部分,然后文中搜索 DamageInfoStruct 也是这几项。如果修改时报错,提示readonly什么的,就去代码里把readonly变量的readonly这个词去掉。阔剑的伤害改0.01f之后还是能路过4S店有纪律被秒,似乎还有什么别的影响。
数值改完点编译会报错,不能退出保存,3.11开始就不行了,3.10还是可以改的
你不会出这个问题?
左侧列表全部加载后确实可以编译了,编译完了点保存又跳红了,怎么操作?
任意踹门
是修改哪个文件?没看明白,在哪里搜“BreachSuccessRoll”?