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

注册 登录

QQ登录

只需一步,快速开始

查看: 4244|回复: 13
打印 上一主题 下一主题

[心得] 七日杀A16.4DLL源码分享——基于饥荒MOD

[复制链接]

2

主题

48

帖子

172

积分

中级玩家

Rank: 3Rank: 3

贡献度
9
金元
1358
积分
172
精华
0
注册时间
2018-11-26
跳转到指定楼层
主题
发表于 2020-2-9 17:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 飞沙流年 于 2020-2-9 17:14 编辑

最近因为疫情的原因,闲来没事就开始看七日杀的源码(这里的源码说的是七日杀的源码,是反编译dll文件,而不是单纯修改xml文件),路径: \7DaysToDie_Data\Managed\ 下的dll文件。
因为时间的关系,本人也没有把所有的类都看完,这里跟大家分享下查看的方式以及我目前所了解到的内容,以方便大家可以更好的自定义mod。
可修改内容:
     1) 自定义版本  如把alpha 16.4改为自己的mod名称
     2) 玩家最大饱食度和口渴度
     3) 饥荒mod自带的食物变质 (可自定义变质方式,变质时间,变质成的物品)
     4) 自定义天气(可设置一年四季,风、雨、雪、雾,每种天气的作用时间和大小,温度湿度的变化)
     5) 设置每种物品的左键和右键(可自定义生成的物品,各种玩家生命属性的加减程度)
1、反编译工具dnSpy  
提供一个下载地址:https://www.jb51.net/softs/556366.html,大家也可以自行百度下载
2、反编译dll文件
这里主要用到的dll文件为:Assembly-CSharp.dll和 Mods.dll,如图
用dnspy打开后,会自动加载当前目录相关的其他dll文件
1> Assembly-CSharp.dll文件
该文件为七日杀默认的文件,所有的七日杀预设信息均在该dll文件里面,打开目录下的{},下面是所有的内置函数
该文件可以编辑常见的属性,如自定义版本、玩家最大饱食度和口渴度等
Constants类下面为定义的常量,如:版本号,默认为Alph 16.4 这种
items.xml里面食物的获取食物和水分的值经常跟界面上的加值不一致,原因也是dll里面玩家饱食度和口渴度的默认值不是100,如下图,在constants类里面,可以把玩家饱食度和口渴度都改成100,默认是72
其他属性的修改,可以自行看其他的类。
2> Mods.dll文件
该文件为mod修改文件。需依赖SDX.Core.dll和SDX.Payload.dll文件
饥荒mod自定义类的全局设置类:MorteHelpers
食物变质 MorteFoodSpoilage
饥荒mod中食物变质的原理:
增加foodSpoilImmune 食物变质免疫时间属性,在食物变质类的食物变质函数中读取该属性,并根据设置的时间获取对应的物品,从容器中(玩家背包或其他储物箱)移除到达设定时间的物品,然后再在容器中增加相应的替换物品
读取容器所有物品中属性里包含自定义的过期属性的物品,放入集合中
具体的物品变质逻辑:这里可以自定义,另外可以增加容器的判断,如容器是冰箱的话,就不变质或者重新定义属性中的变质时间
自定义item行为
item的行为全部为itemAction开头的类
这里可以自定义item行为类,然后加入自己想要的逻辑
修改后的item行为需要在items.xml中专门配置才可生效
——Class属性值改为自定义的mod行为类
天气系统MorteWeather
饥荒默认提供了7种不同的天气,可以自行根据游戏天数,游戏时间,白天黑夜等设置具体天气。
如:可以根据时间设置一年四季,每个时间段执行固定的天气,或者白天晴天或者下雨,晚上大雾或者下雪。
7种默认天气:
饥荒自带四季:一年365天
    60-90天 小雨
    90-120天 大雨
    120-150天 小雪
    150-180天  大雪
    180-210天  暴雪
    210-225天  小雪
    225-250天  小雪
其他天数,执行biomes.xml中配置的天气系统,即根据不同地形执行天气。
可自定义天气规则
目前本人知道的大概就这些,且是基于七日杀16.4饥荒mod,希望对想要自己定义mod的朋友有所帮助,如有疑问或其他建议,大家一起回帖交流。

评分

1

查看全部评分

回复

使用道具 举报

2

主题

48

帖子

172

积分

中级玩家

Rank: 3Rank: 3

贡献度
9
金元
1358
积分
172
精华
0
注册时间
2018-11-26
舒服的沙发
 楼主| 发表于 2020-2-9 17:06 | 只看该作者
好无语啊,不能上传图片
回复 支持 反对

使用道具 举报

2

主题

48

帖子

172

积分

中级玩家

Rank: 3Rank: 3

贡献度
9
金元
1358
积分
172
精华
0
注册时间
2018-11-26
硬硬的板凳
 楼主| 发表于 2020-2-9 17:15 | 只看该作者
很神奇的不能发图片,如果有同学有兴趣一起研究就发信息给我吧,能看懂的就自己看吧,唉~
回复 支持 反对

使用道具 举报

2

主题

48

帖子

172

积分

中级玩家

Rank: 3Rank: 3

贡献度
9
金元
1358
积分
172
精华
0
注册时间
2018-11-26
冰凉的地板
 楼主| 发表于 2020-2-9 17:18 | 只看该作者
自定义天气

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

2

主题

48

帖子

172

积分

中级玩家

Rank: 3Rank: 3

贡献度
9
金元
1358
积分
172
精华
0
注册时间
2018-11-26
5#
 楼主| 发表于 2020-2-11 12:40 | 只看该作者
DLL类路径,dnspy反编译工具打开相应的dll文件,一次打开到{}目录,下面的所有类如下

Assembly-CSharp.dll 包含所有七日杀初始的信息


本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

2

主题

48

帖子

172

积分

中级玩家

Rank: 3Rank: 3

贡献度
9
金元
1358
积分
172
精华
0
注册时间
2018-11-26
6#
 楼主| 发表于 2020-2-11 12:41 | 只看该作者
版主能否不限制我每天上传图片的大小?不然我要分好几天才能传完
回复 支持 反对

使用道具 举报

2

主题

48

帖子

172

积分

中级玩家

Rank: 3Rank: 3

贡献度
9
金元
1358
积分
172
精华
0
注册时间
2018-11-26
7#
 楼主| 发表于 2020-2-11 12:49 | 只看该作者
constants类为全局常量类,里面包含了很多预定义属性,包括:版本信息,xml文件读取目录,玩家饱食度等


本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

2

主题

48

帖子

172

积分

中级玩家

Rank: 3Rank: 3

贡献度
9
金元
1358
积分
172
精华
0
注册时间
2018-11-26
8#
 楼主| 发表于 2020-2-11 12:57 | 只看该作者
dll编辑方法:打开的类右键->编辑类,在打开的窗口修改内容,修改后,点击下方的编辑,没有错误的话,点击dnspy左上角文件->全部保存,重启游戏生效。
备注:游戏运行状态下,保存会报错,需关闭游戏才能保存修改。


本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

2

主题

48

帖子

172

积分

中级玩家

Rank: 3Rank: 3

贡献度
9
金元
1358
积分
172
精华
0
注册时间
2018-11-26
9#
 楼主| 发表于 2020-2-11 13:07 | 只看该作者
自定义天气系统:
饥荒默认设置了7种天气,每种天气都可以自行修改,或直接自定义自己想要的天气效果。
饥荒默认一年时间为365天,每种天气默认执行时间,在帖子一楼已经有了。
下面是我自己测试的天气规则:随机获取一种天气,然后执行。
备注:天气规则函数大概是游戏时间每隔1小时执行一次,具体时间没做测试。 可以根据游戏时间等自定义季节以及想要的天气变化,如:增加每日天气预报功能等。



本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

0

主题

14

帖子

14

积分

新手玩家

Rank: 1

贡献度
0
金元
139
积分
14
精华
0
注册时间
2020-6-28
10#
发表于 2020-7-25 22:10 | 只看该作者
666666,厉害厉害!
回复 支持 反对

使用道具 举报

0

主题

14

帖子

14

积分

新手玩家

Rank: 1

贡献度
0
金元
139
积分
14
精华
0
注册时间
2020-6-28
11#
发表于 2020-7-25 22:14 | 只看该作者
大佬有群吗,可以一起讨论讨论学习学习吗?
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分

游戏菜鸟

Rank: 1

贡献度
0
金元
10
积分
1
精华
0
注册时间
2021-2-21
12#
发表于 2021-2-21 11:05 | 只看该作者
玩家名字属性在哪里,我想改个中文的,和颜色。
回复 支持 反对

使用道具 举报

0

主题

48

帖子

48

积分

初级玩家

Rank: 2

贡献度
0
金元
480
积分
48
精华
0
注册时间
2021-3-21
13#
发表于 2021-4-5 05:53 | 只看该作者
看看看
回复 支持 反对

使用道具 举报

0

主题

9

帖子

12

积分

新手玩家

Rank: 1

贡献度
0
金元
120
积分
12
精华
0
注册时间
2019-12-27
14#
发表于 2023-10-16 14:29 | 只看该作者
大佬,你知道xml解密的api在哪吗
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-2-7 19:36 , Processed in 0.113666 second(s), 15 queries , Memcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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