饥荒改饥荒5格装备mod栏代码

& 【饥荒游戏DLC1巨人王朝】五格装备栏mod,backpack and
查看: 3581|回复: 0
UID1943456主题阅读权限30帖子精华0积分359金钱2829 荣誉3 人气28 在线时间1218 小时评议0
Lv.3游侠中级会员, 积分 359, 距离下一级还需 141 积分
帖子精华0积分359金钱2829 荣誉3 人气28 评议0
本帖最后由 fanbu 于
23:29 编辑
【饥荒游戏DLC1巨人王朝】五格装备栏mod,backpack and amulet slots
原发布页:
支持rog巨人王朝资料片,五格装备栏mod,提供额外的背包栏和项链栏。装备这类物品不再不占护甲和帽子栏位。
注意和知名mod,rpg hud 55 冲突,不要一起用!出了问题,别怪没提醒你。因为那个mod自带5格装备栏,没必要画蛇添足再用这个mod实现5格装备栏。
版本2013oct03
=-=-==-==-=-=-=-==-=-==-=-
新版原发布贴
Backpack and Amulet Slots
五格装备栏mod,带额外背包,额外项链装备格,支持rog巨人王朝
Afro1967新版,老版本作者停更了,afro1967给接手过来。
版本2014jun30
-=-=-=-===-=-==
Powered by饥荒mod 制作教程_百度经验
&&&&&&&&&电竞/单机
分享有回报:
饥荒mod 制作教程
制作一个一个mod ,然后有很多人用你做的mod,可以说是一件十分有意义的事,但是对于新手来说,看着那些程序代码,他不认识你,你不认识他,想要学习mod,又没有一个mod制作教程, 现在我就满足大家的愿望,写一个有关mod制作与饥荒游戏代码的贴子。-----------------------------------------------------------------------------
【1】一个完整的英文版饥荒(用来查看物品的英文)
&【2】Textool (用来制作图片)
【3】 SciTE软件(用来修改代码 用记事本也行但是不方便)
【4】还有一些图片编辑软件 等等
mod 入门 这一章主要是来讲mod 原理 和如何做一个简易mod
饥荒mod的原理 注:此原理只适用于饥荒 这个游戏 别的游戏不知道 饥荒mod主要的原理有三种类型 【1】 直接在modmain.lua 文件里调用全局函数(表) 并进行修改 【2】 在替换路径相同的同名文件 (把某mod文件夹看做饥荒里的data 文件夹 路径相同且同名的 就会被替换{源文件还在 只是饥荒把新的文件看做旧的来运行}) 这样做的方式跟直接修改代码的一样,但是源文件不会被损坏,如果出现错误把mod卸掉就行 【3】 新增一些文件,与饥荒里的文件不同名的 或者路径不相同的
如何新建一个mod 【1】任意一个地方 新建一个文件夹,这个文件夹的名称就是你新mod的名称
( 我这里用 czf为例 )【2】在文件夹czf里 新建一个名为modmain.Lua 的文本档案 ,一个mod的雏形就这样诞生了 。注:这时czf文件夹就相当于你饥荒里的data文件夹 而modmain就是用来调用全局函数(表)的文件,用lua语言在里面调用就行了 【3】一些物品属性是局部变量的,不能在这个文件里调用与改变,我们就要用替换法来修改 【4】Modmain.Lua文件还可以用来写注释,说明这个mod是谁做的 用来做什么的 什么时候做的等等
修改一些简单代码 制作一个mod,要功能齐全是一件很不容易的事,最好有一个团队来合作 我就以修改人物生命上限为例【找生命上限的方法可以用来寻找别的属性】--------------------------------------------------------------------------- 【1】首先我们要知道要修改的代码在哪里,我们知道人物生命上限是150 我们打开饥荒文件夹 搜索150 一共找到33个文件 既然是代码 我们把lua文件外的文件不理他们【2】还剩下21个 既然是人物生命上限 不关地图什么事,把路径里有map(地图)的也忽略 【3】还剩下12个 生命的英文是health 我们在这12个文件里一个一个搜索health 如果没有就忽略掉(这里有一个简单的方法,用SciTE软件同时打开12个再用find all(搜索全部)不用十几秒12个文件就搜索完了) 【4】还剩下4个 因为 生命上限是150 所以我们就看看在health附近有没有150 最终找到了在tuning 文件里的表TUNING 里的WILSON_HEALTH 数值为150 我们就确定了WILSON_HEALTH为人物生命代码 而且在定义表TUNING={}前面没有加local 说明这是一个全局的表 【【【总结】】】】以上这个方法虽然很繁琐 但是最有效果 当然我们可以用对比法 这个方法以后再说
制作一个简简单单的mod(重点)打开1.3所制作的czf 文件夹 打开里面的modmain.lua 在里面输入 【【【【--修改人物生命mod --夜尽天明制作于 TUNING.WILSON_HEALTH=10000】】】改完后 记得save(保存) 好了 这时的czf 文件夹已经不再是一个普通的文件夹了 他是一个mod 一个你自己制作的mod
替换法是一种比较常用到的方法,因为他可以修改局部变量,在饥荒里 局部变量可比全局变量多得多,原理见1.2 里 2.1先来一个容易的 【【做一个mod之前要想好是做什么的 才会有地方下手】】】 我以修改树木掉落为例,用饥荒英文版可以知道 树木英文是evergreens 我们打开...\data\scripts\prefabs\evergreens.lua (当然你搜索evergreens也行) 树木的掉落物木头的英文是log 我们就"sind all "log 总共用三处地方有log 再有 松果的英文是pinecone 这下很明白了 树木掉落就在evergreens.lua文件里的 【【【【【 ocal builds = { normal = { file="evergreen_new", prefab_name="evergreen", normal_loot = {"log", "log", ""}, short_loot = {"log"}, tall_loot = {"log", "log", "log", "pinecone", "pinecone"}, drop_pinecones=true, leif="leif", }, 】】】】】】】 先不急,我们是在做mod,备份evergreens.lua 到一个用1.3 新建的mod里 路径就是D:\your mod name(你的mod)\scripts\prefabs\evergreens.lua 之后 修改mod里的evergreens.lua 文件 好了之后记得save 【【见附件里的 砍树掉落木头翻三倍 mod】
2.2再来一个简单的 【【【【【【【方法教程-----对比法】】】】】】 我以 light (点燃) 为例 [1]先找到可以点燃物品的工具的lua(以下简称 *) 如火杖(firestaff.lua) 火把(torch.lua)等等 不可以点燃物品的工具的lua(以下简称 +) 如 斧子(axe.lua) 锄头(pickaxe.lua)等等 [2]用scite 打开 这四个文件对比 把* 和+ 代码相同的删掉(不保存 没事) 把*里不相同的删掉 把+里不相同的删掉 【【【特别说明一下 anim:SetBank("pickaxe") anim:SetBuild("pickaxe") anim:PlayAnimation("idle") 在每个物品里都会出现这三行 我就认为他们是相同的)】】】】 [3]到最后 也许会剩下几行,那就关闭一个(不保存)重开 删 掉刚才剩下的一部分 保存(记得备份)进入游戏看看,是不是想要的 最后剩下inst:AddComponent("lighter") 这就是 light 代码了 (其实直接看英文就知道了hehe ~~~~) [4]开始修改了,在axe.Lua 或你想的工具 在fn 函数里 添加 inst:AddComponent("lighter") 这个工具就有light 功能了 噢耶! [5]先不急,我们是在做mod,备份axe.lua 到一个用1.3 新建的mod里 路径就是D:\your mod name(你的mod)\scripts\prefabs\axe.lua 之后 修改mod里的axe.lua 文件 好了之后记得save
2.3从一行变两行 2.2里最终的结果是一行代码 接下来的结果将会是两行代码 我们要修改物品叠加上限,利用对比法 可以轻松找到(轻松???)物品叠加的代码是 【【【【【【【inst:AddComponent("stackable") <ponents.stackable.maxsize = TUNING.STACK_SIZE_SMALLITEM 】】】】】】 在不可叠加物品里写上这段代码 物品就可以叠加了 【见附件里的 狗牙陷阱叠加.rar】
在饥荒里 我们可以随意添加一个个物品 或者动物(只要你做的出模型而且会ui) 一个物品分成 【1】 图片部分(tex) 【2】 主代码部分 【3】 附属代码 【4】注册码部分(在6月5日后已经放在附属码里)
tex 图片制作 Tex 图片是饥荒里的图片格式 你在游戏里见到的所有东东(包括菜单)都是用一张张tex图片拼成的 在饥荒里 我认为的图片分成两部分 一是tex图片 还有就是 人物模型(anim) tex图片 可以用textool 导入和导出 注意导入格式而已
-----------------------------------------------------------------------------------------怎样知道图片格式呢 打开一张tex 图片(饥荒里的) 看窗口的最下面一行 如图:格式就是DXT5 大小64*64 是1D的 MIPMAPS 为1
---------------------------------------------------------------------------------------------打开TEXCreator.exe 出现如下界面 1.黑色的是你图片要导入图片的路径 2.深绿色是你新tex图片的保存路径 3.红色的选择DXT5 4.黄色的选择 1D 5.绿色的选第一个 6.蓝色的不要点 7.粉红色的也不要点 8.深蓝色的是开始导入依照上面的方法,如果进入游戏出错,可以更换图片格式
人物模型制作 用上面的方法导入一张人物模型 人物模型格式见anim文件夹里的压缩文件 (导出 anim 里的某个人物模型tex图片 用图形编辑软件修改(背景要透明))【【【【注意图片大小 【【【注意大小 【【大小【】】】】】】】】】】 之后导入成一个新的tex 文件 ---------------------------------------------------------------------------------------------------关键来了 注意看 备份一个anim 里的压缩文件(就是你要修改的那个人物模型) 打开备份好的压缩文件(注意 是用 winrar 打开 不是解压) 把上面更改好tex 文件改名为atlas-0.tex 【【【【【关键 关键关键关键关键关键】】】】】 把这个tex 拖入刚才打开的压缩文件的窗口里 弹出一个窗口 你选择替换文件 终于好了 一个新的人物模型就这样诞生了0.0
主代码部分 这个你可以选择一个与你新物品相似的 物品的lua文件 作为模板 可是要更改一些东西 我以log.lua为例
---------------------------------------------------------------------------------------第一行的 local assets= { Asset("ANIM", "data/anim/log.zip"), Asset("IMAGE", "data/inventoryimages/log.tex"), } 这些要改成你的新物品的
----------------------------------------------------------------------------------14 15行的 inst.AnimState:SetBank("log") inst.AnimState:SetBuild("log") 也要改
------------------------------------------------------------------------------------------------------最后一行的return Prefab( "common/inventory/log", fn, assets) 也要改
--------------------------------------------------------------------------------------------这些改好之后,可以再新增一些代码进去,用上面所说的两种找代码的方法 主代码基本就好了
附属代码部分 他来自哪里 一个物品的来源有 【1】掉落(树啊 怪物啊) 【2】制作(界面边上的建造栏) 【3】天上掉的(15版的地震会掉石头 不过我不知道怎么修改,忽略掉)
-------------------------------------------------------------------------------------------物品掉落可以修改那个怪物 或者植物的lua 文件 见2.1 制作物品可以用Recipe 函数来弄 就会在下面详解 天上掉的方法忽略掉
他要去哪里 【1】 工具(…有无限耐久) 【2】可以吃【【【【inst:AddComponent("perishable") <ponents.perishable:SetPerishTime(TUNING.PERISH_SUPERSLOW) <ponents.perishable:StartPerishing() <ponents.perishable.onperishreplacement = "spoiled_food"】】 【3】 可以烧(【【inst:AddComponent("fuel") <ponents.fuel.fuelvalue = TUNING.MED_FUEL】】】】】 【4】可以制作东西(【【【Recipe】】】 【5】可以给别的动物(这个我不会 等以后更新) 只想到这么多了 以后再补充
你到底叫什么东东 更改人物语言文件 从而使物品有一个名字 【【【【strings.lua文件】】
在6.5 日 版之后 注册码会包含在附属码里 注册码 注册码就像一个名单一样 如果你没有在里面登记 你的物品就会被饥荒忽略掉 修改方法如下 【1】在你的新mod 文件夹里 创建一个名为prefabs.xml 的文本档案 复制下面的代码进去(或者自己去饥荒data文件夹里的prefabs.xml 里看格式) &Prefabs& &Defs& &Prefab name='物品名称' pathname='common/inventory/物称' file='.mods\scripts\prefabs\物品名称.lua' desc=''& &Assets& &Asset type='ANIM' file='mods/Strong Sword/anim/物品模型(地上).zip' flags='0' /& &Asset type='ANIM' file='mods/Strong Sword/anim/物品模型(手上).zip' flags='0' /& &Asset type='IMAGE' file='mods/Strong Sword/inventoryimages/物品图片.tex' flags='0' /& &/Assets& &Deps& &/Deps& &/Prefab& &/Defs& &Files& &File name='prefabs/物品主代码.lua'/& &/Files& &/Prefabs& 如果有多个 格式详见饥荒原版prefabs.xml (注意语法要符合 xml 语法)
整理一下下 【1】新建一个mod 【2】把人物模型的压缩包放在 【3】你的mod名称\anim\ 里 【4】把 图片放在…\ inventoryimages\里 【5】把主代码放在(和掉落代码一起)放在 ……\ scripts\ prefabs\里 【6】把prefabs.xml 放在你的mod文件夹里 好了 一个历经千辛万苦的mod 就这样好了
.1 recipes 函数 外国教程见附件内的配方函数文件夹,用百度翻译看看就行了 格式【(self, name, ingredients, tab, level, placer, min_spacing)】 self 不用定义 (不知道为什么) name 是你想制造物品的代码(注意不是名称,有些物品的代码与名称不一样) ingredients 【{中文} 材料】 tad 在那一行建造 (工具,光照) 等等 level 科技等级(0~3) placer 外形 (就像猪屋在建造时的绿色部分)------------------------------------------------------- min_spacing 是最小间距的意思 (可以在builder.lua spiderqueenbrain.lua deployable.lua pinecone.lua plantables.lua turfs.lua walls.lua 这些文件里改变 walls的间距是0)----------------------------------------------------- 而且这是一个全局变量 可以在modmain 里直接调用 格式如下 【STRINGS = GLOBAL.STRINGS RECIPETABS = GLOBAL.RECIPETABS Recipe = GLOBAL.Recipe Ingredient = GLOBAL.Ingredient --把这里的局部变量换成全局的 STRINGS.RECIPE_DESC.GEARS = "for czf shine" Recipe("marble", {Ingredient("rocks", 20)}, RECIPETABS.REFINE, 3)】---------------------------------------------------------------------------
4.2 叠加上限 【见附件里的狗牙】 【inst:AddComponent("stackable") <ponents.stackable.maxsize = TUNING.STACK_SIZE_SMALLITEM】 在不能叠加的物品lua里的fn 函数里的任意位置加上上面的带码 就行了 【 调用addcomponent库里的 stackable(中文可叠起堆放的,易叠起堆放的) 定义参数 maxsize(最大值)为TUNING.STACK_SIZE_SMALLITEM(可以直接写成一个你的叠加上限的数值如)】 这种函数类型还有很多,你可以打开随便一个物品的lua 查看。直接把代码用百度翻译你你就知道什么意思了。
&增加几率 我们可以用math.random 来产生随机数,有三种调用方式: 第一:不带参数,将产生 [0,1)范围内的随机数. 第二:带一个参数n,将产生1 &= x &= n范围内的随机数x. 第三:带两个参数a和b,将产生a &= x &= b范围内的随机数x 【local czf1={} local czf=math.random(100) if czf &= 20 then czf1[1]="log" elseif czf &=50 then czf1[1]="log" czf1[2]="log" else czf1[1]="log" czf1[2]="log" czf1[3]="log" end】 在evergreen是文件里加上上面代码(不能在fn函数里) 之后把 【sparse = { file="evergreen_new_2", prefab_name="evergreen_sparse", normal_loot = {"log","log"}, short_loot = {"log"}, tall_loot = {"log", "log","log"}, drop_pinecones=false, leif="leif_sparse",】 改成【sparse = { file="evergreen_new_2", prefab_name="evergreen_sparse", normal_loot = czf, short_loot = czf, tall_loot = czf, drop_pinecones=false, leif="leif_sparse",】 注 以上代码有可能不成功{}
附件下载地址
/share/link?shareid=&uk=
textool官网(会更新textool 目前最高1.3版)http://www.dev-zilla.net/kleistudio/
国外mod教程/showthread.php?10817-TUTORIAL-Creating-a-Mod-using-the-Mod-System/showthread.php?18685-Tutorial-My-first-mod-creating-a-new-stat
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
第1期你不知道的iPad技巧1293次分享
第1期win7电脑那些事2187次分享
第2期新人玩转百度经验342次分享
第1期Win8.1实用小技巧1032次分享
第1期小白装大神495次分享
请扫描分享到朋友圈◇本站云标签
◇热点推荐

我要回帖

更多关于 1559802 的文章

 

随机推荐