
自动将 .CS 转换为 IVSDK.net 游戏内
嘿,IVSDK.net的用户们,厌倦了看到所有这些你无法使用的酷炫.cs模组吗?现在,你可以在游戏内实时转换,就能使用它们了!还有.vb模组也一样!
查看大图IVSDKScriptCompiler 0.3(实验性)
在 IV-SDK .NET 下,像 ScriptHookDotNet 1.7.1.9 那样,从 .cs / .vb 源代码运行 ScriptHookDotNet 脚本。
一些较旧的模组以源代码形式发布,例如 ChopShop.cs。ScriptHookDotNet 1.7.1.9 可以直接运行这些源代码,但 IV-SDK .NET 只加载已编译好的 .net.dll 文件,因此这些模组无法生效。IVSDKScriptCompiler 解决了这个问题。游戏启动时,它会把每个源脚本编译成 .net.dll,然后 IV-SDK .NET 会像加载其他任何 ScriptHookDotNet 模组一样加载它。
已在 IV-SDK .NET 1.9.1 上测试。它不依赖游戏版本。
源代码、完整文档和问题反馈:https://github.com/bassisthip63-ui/IVSDKScriptCompiler
你需要什么
- 安装了 IV-SDK .NET 1.9.x 并带有 ScriptHookDotNet 支持 的 GTA IV 或 EFLC:必须存在
IVSDKDotNet\bin\ScriptHookDotNet.dll。 - .NET Framework 4.x。 所有受支持的 Windows 版本都已自带它。
此下载包含的内容
IVSDKScriptCompiler\
TheReadMe.md 此文件
LICENSE
TheFiles\ 模组本体
IVSDKDotNet\scripts\IVSDKScriptCompiler.ivsdk.dll
TheTestScript\ 可选的测试脚本
scripts\HelloSource.net.cs
安装
- 将
TheFiles中的IVSDKDotNet文件夹复制到你的 GTA IV 文件夹(包含GTAIV.exe的那个文件夹),并让它与已存在的IVSDKDotNet文件夹合并。模组最终会位于此处:GTA IV\ GTAIV.exe IVSDKDotNet\ scripts\ IVSDKScriptCompiler.ivsdk.dll <- 此处 - 启动游戏一次。IV-SDK .NET 控制台(F4)会显示
IVSDKScriptCompiler 0.3: looking for source scripts。
快速测试(可选)
TheTestScript\scripts\HelloSource.net.cs 是一个很小的 测试脚本,仅用于表明模组正在工作。
- 将它复制到游戏的主
scripts文件夹,即GTAIV.exe旁边的那个文件夹(不是IVSDKDotNet\scripts)。 - 启动游戏。在你获得控制权几秒后,屏幕上会显示:
HelloSource.net.cs: compiled from source and running - 之后从
scripts中删除HelloSource.net.cs。它的编译文件会在下次启动时自动删除。
使用方法
将源脚本放到 ScriptHookDotNet 1.7.1.9 所要求的位置,即游戏的 scripts 文件夹,然后启动游戏:
GTA IV\
scripts\
ChopShop.cs <- 模组的源脚本
ChopShop.compiled.net.dll <- 自动生成;IV-SDK .NET 加载此文件
- 新增或更改的脚本 会在游戏启动时编译,并在同一次启动中加载。
- 未更改的脚本 不会再次编译,因此后续启动会保持快速。
- 要移除模组,请删除其
.cs/.vb文件。它的.compiled.net.dll会在下次启动时删除。 - 编辑了脚本? 请重启游戏。脚本仅在游戏启动时编译。
- 在
IVSDKDotNet\scripts\中,只有命名为*.net.cs/*.net.vb的文件会被编译,因为该文件夹也存放 IV-SDK .NET 自身的文件。
需要其他库的脚本可以添加一行,例如 //#reference SomeLibrary.dll(VB:'#reference SomeLibrary.dll)。
如果脚本未加载
请检查 IVSDKDotNet\IVSDKScriptCompiler.log 或 F4 控制台。编译错误会列出文件、行号和消息。存在错误的脚本只会不加载;游戏和你的其他模组会继续运行。
- 最常见原因: 脚本使用了较新的 C# 语法。Windows 内置的编译器支持 C# 5 / VB 11。旧的 ScriptHookDotNet 脚本没有问题,但像
$"..."字符串或?.之类的内容将无法编译。 - 无害: IV-SDK .NET 自身的日志会为每个源脚本显示两行黄色文字,例如 "The file 'ChopShop.cs' is not a IV-SDK .NET or ScriptHookDotNet script file." IV-SDK .NET 也会查看源文件,它自身无法加载该文件,并会跳过它。实际加载的是编译后的副本。
杀毒软件说明
- 游戏启动时,此模组会运行 Windows 自带的 C# / VB 编译器(来自 .NET Framework 4 的
csc.exe/vbc.exe)。这就是 .NET 内置编译的工作方式,ScriptHookDotNet 1.7.1.9 也是如此。它还会在你的源脚本旁边写入.compiled.net.dll文件。 - 它只在
scripts\、IVSDKDotNet\scripts\及其日志中读写。它没有网络访问权限,也不会接触注册表或游戏内存。 - 发布版 dll 已使用 Microsoft Defender 扫描。如果你的杀毒软件仍然标记它,你可以使用包含的
build.bat从 GitHub 上的源代码自行构建,并请报告该误报。
卸载
删除 IVSDKDotNet\scripts\IVSDKScriptCompiler.ivsdk.dll、它生成的任何 *.compiled.net.dll 文件,以及 IVSDKDotNet\IVSDKScriptCompiler.log。
致谢与许可
作者 bassisthip63-ui,与 Claude(Anthropic)共同编写。MIT 许可证,请参阅 LICENSE。
IV-SDK .NET 由 ItsClonkAndre 开发。此模组不属于它,也未获得其作者认可。GTA IV 是 Rockstar Games / Take-Two Interactive 的商标;此模组与他们无关。
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。