Don't Starve LuaJIT 优化补丁
QQ群: 348368954
请务必备份您的存档,因为我们无法保证插件不会导致存档损坏!
使用独立开服工具需要注意,设置中服务器禁用luajit选项是无效的,你应该直接去除luajit启动服务器
- windows x64
-
windows x86 - linux x64
-
linux x86 - macos
- andorid
- switch
- windows x64
-
windows x86 - linux
- macos
- andorid
- switch
功能描述:
完全解决加密mod不兼容luajit的问题,除非代码依赖了lua语言的未定义行为
赞助: ██████████████████░░ (436/500)
功能描述:
不损失任何性能地加密mod,加密后仅能在luajit上运行
功能描述:
预计减少卡顿情况.(ps: 预计你懂的😄)
极大减少stopworld时间,减少逻辑帧过长导致的卡顿
赞助: ░░░░░░░░░░░░░ (0/500)
功能描述:
支持pc玩家跨平台游戏.(ps: 🫓)
- 先在游戏根目录下的mods文件夹中创建一个新的文件夹,名字随意取,比如luajit_mod
- 然后把所有的文件复制到该目录
直接运行install.bat(windows) install_linux.sh
install_linux.sh可能需要执行chmod +x ./install_linux.sh赋予权限
将所有 bin64/windows 文件复制到游戏目录下的 bin64 文件夹中
比如 C:\steamapps\Don't Starve Together\bin64\
启动游戏,按 ` 键并键入
print(jit)
我只在 ubuntu 上测试过,但如果有人能提供 steamos 环境,我也可以在 steamos 上测试,哈哈!
- 将所有
bin64/linux文件复制到游戏目录下的bin64文件夹中 - 将原始游戏可执行文件
dontstarve_steam_x64重命名为dontstarve_steam_x64_1 - 创建内容为
dontstarve_steam_x64的新文件:
#!/bin/bash
export LD_LIBRARY_PATH=./lib64
export LD_PRELOAD=./lib64/libInjector.so
./dontstarve_steam_x64_1 "$@"- 运行 shell
chmod +x ./dontstarve_steam_x64 - 搞定
-
创建一个属于自己的证书,比如名字为Dontstarve
-
打开shell
-
切换到自己的游戏路径
cd /Users/*/Library/Application Support/Steam/steamapps/common/Don't Starve Together/dontstarve_steam.app -
sudo codesign -fs Dontstarve ./dontstarve_steam.app -
创建一个新的权限管理文件,比如叫
my.xml,内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.get-task-allow</key>
<true/>
</dict>
</plist>sudo codesign -d --entitlements ./my.xml ./dontstarve_steam.app- 将所有
bin64/osx文件复制到游戏目录下的MacOS文件夹中 - 将原始游戏可执行文件
dontstarve_steam重命名为dontstarve_steam_1 - 创建内容为
dontstarve_steam的新文件:
#!/bin/bash
export DYLD_INSERT_LIBRARIES=./libInjector.dylib
./dontstarve_steam_1- 运行 shell
chmod +x ./dontstarve_steam
在游戏中启用名为dontstarveluajit2的mod
如果没有任何其他问题,现在可以在右下角的版本号看到luajit
在modinfo里面添加兼容性标记
对于没有兼容标记的MOD,将会根据SlowTailCall或者AutoDetectEncryptedMod选项.
对启发式检测到加密MOD的代码, 自动启用堆栈兼容性
luajit_compatible = true --表示不依赖堆栈深度
--或者
luajit_compatible = {
dep_tailcall = false --表示不依赖堆栈深度
}一般只有加密mod会严重依赖了堆栈深度, 比如说最常见的使用了
local target_level = 2
for i =0,255 do
local info = debug.getinfo(i, 'f')
if info.func == Target_func then
assert(i == target_level) -- i变量就是堆栈深度
end
end如果遗漏了你的捐赠,请联系我
| 姓名 | 金额 | 原因 | 模组id |
|---|---|---|---|
| Dv**ce | 50RMB | 兼容MOD | Accomplishments |
| a*t | 20RMB | 无 | (兼容mod) |
| 冰*羊 | 30RMB | 兼容MOD | 自动崩溃恢复 |
| 冰*羊 | 30RMB | 兼容MOD | 性能优化包 |
| Dv**ce | 30RMB | 开发TRACY功能 | |
| 18**30 | 20RMB | 无 | (兼容mod) |
| 18**30 | 20RMB | 兼容虚拟机环境 | |
| Dv**ce | 100RMB | 无 | (兼容mod) |
| 18**30 | 30RMB | 修复BUG | |
| 预*微笑 | 100RMB | MACOS | |
| 储*佛丝 | 50RMB | ||
| 轮回**剑 | 30RMB | (兼容mod) | |
| 大*雄 | 166RMB | (改进加密兼容性) | |
| 星*☆ | 100RMB |

