3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

楼主: 陌.小皓
打印 上一主题 下一主题

[MOD制作教程] 【MOD开发实例】Script Hook V For .NET(C#开发GTAV MOD)

  [复制链接]

12

主题

328

帖子

1227

积分

游戏狂人

Rank: 6Rank: 6

贡献度
175
金元
5173
积分
1227
精华
1
注册时间
2010-10-11

3DM MOD站(白银)

QQ
跳转到指定楼层
主题
发表于 2015-5-10 11:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 陌.小皓 于 2015-5-10 12:38 编辑

【前言】
目前国内研究、开发MOD的玩家并不多,但国内很多玩家其实是有编程基础的,楼主在编程方面也是个菜鸟,只是希望能有更多的人来研究、开发MOD。

【什么是 Script Hook V For .NET
Script Hook V For .NET是国外玩家基于Script Hook V开发出来的一个asi脚本,该脚本可以使游戏支持读取使用.net语言(如:C#、VB)开发出来的脚本,Script Hook V For .NET是一个开源项目(开源是指源代码是公开的,任何人都可以下载到源代码,进行开发或修改),目前国外还有支持Lua的扩展,有兴趣的玩家可以自行上国外论坛获取。

Script Hook V For .Net工作原理】
上面说过,其实Script Hook V For .NET就是一个.asi脚本脚本,游戏运行后Script Hook V会加载所有的asi脚本,加载了Script Hook V For .NET后,Script Hook V For .NET又会遍历游戏目录“scripts”文件夹下的所有后缀名为“.cs”、“.vb”、“.dl”脚本。(这里说个小知识,C#编译出来的DLL或EXE等并不像其他语言一样,编译出来的只是中间语言,类似JAVA,详情大家可以自行百度)

【原作者相关】
原贴地址:http://gtaforums.com/topic/78990 ... -script-hook-v-net/
github地址:https://github.com/crosire/scripthookvdotnet/releases

【准备工作】
1.首先请确保你安装了Microsoft .NET Framework 4.5Microsoft Visual C++ Redistributable Package for Visual Studio 2013 (x64)
2.下载Script Hook V,将压缩包内“bin”文件夹下的所有内容解压到你的游戏目录(该地址下载下来的Script Hook V附带了一个内置修改器,如果你不想要内置修改器,只需要把里面的“NativeTrainer.asi”删除即可);
3.下载Script Hook V For .Net,将压缩包内的内容解压到你的游戏目录(该地址下载下来的Script Hook V For .NET附带了一个例子,如果你不要想,只需要把压缩包内“scripts”文件夹清空即可)。
这里我提供一个下载地址(点击下载),里面包含了最新的Script Hook VScript Hook V For .Net下载好后把压缩包里所有内容解压到游戏目录下即可,完成这步就可以省略上面的2、3两步。

【其他说明】
1.C#是.net的主要语言,也是楼主比较熟悉的语言,所以下来的示例,会使用C#作为开发语言;
2.本文中所提到的MOD均为脚本类的,不是修改模型、资源等类型。

【开发示例】
首先准备好一个开发环境(IDE),这里楼主自己用的Visual Studio 2012,大家可以自行百度,2013、2012都可以,当然你也可以Notepad++之类的文本编辑软件,上面说过Script Hook V For .Net是可以直接加载后缀为.cs或.vb的脚本的。

接下来我们就开发一个按下某个快捷键,可以使主角周围车辆爆炸的脚本:

1.首先打开Visual Studio 2012,新建一个C#的类库项目,.NET Framework 版本改为4.5:




2.添加引用,引用ScriptHookVDotNet.dll




3.把不需要的引用可以删除掉;

4.下面是完整的代码,代码我都做了备注:
<

5.生成项目,生成好的项目会在你项目目录中


6.生成好后,把生成好的DLL复制到游戏目录下的“scripts”目录




7.进入游戏测试


测试成功,就说明OK了,在实际中如果测试失败,游戏目录下会有一个“ScriptHookVDotNet.log”文件,里面会有详细的日志。
【示例源码】
GTAV Script Example.zip (9.05 KB, 下载次数: 359)

【特别说明】
1.“GTA.Native.Function.Call”这个函数可以运行Native类的所有函数;
2.有部分Native类的函数Script Hook V For .NET的作者已经为我们封装好,可以直接调用,如果没有的就到Native类数据库查找就可以了。(Native类数据库:http://www.dev-c.com/nativedb/

评分

3

查看全部评分

回复

使用道具 举报

2

主题

147

帖子

1114

积分

游戏狂人

Rank: 6Rank: 6

贡献度
116
金元
6497
积分
1114
精华
0
注册时间
2009-7-23
舒服的沙发
发表于 2022-6-8 13:35 | 只看该作者
感谢LZ分享,技术一流啊
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2025-4-2 01:16 , Processed in 0.106176 second(s), 20 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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