饥荒mod制作教程--物品(食物)(农作物)--02

上一篇“饥荒mod物品(食物)该篇主讲贴图--01”


上一篇没有给myfood的合成表,所以只能控制台调出
那么可以在modmain里加上
STRINGS = GLOBAL.STRINGS                                        --这一段只是为了后面少点字
RECIPETABS = GLOBAL.RECIPETABS
Recipe = GLOBAL.Recipe
Ingredient = GLOBAL.Ingredient
TECH = GLOBAL.TECH


STRINGS.NAMES.MYFOOD = "My Food Pizza"          --给myfood命名
STRINGS.CHARACTERS.GENERIC.DESCRIBE.MYFOOD = "It's a pizza."  --检视时人物所说的
STRINGS.RECIPE_DESC.MYFOOD = "Delicious!"    --合成栏里的介绍


local myfood_recipe = AddRecipe("myfood",
{Ingredient("cutstone", 1), Ingredient("bird_egg", 1)},              --决定成分
RECIPETABS.FARM, TECH.NONE,          --添加在食物一栏,所需科技:无
nil, nil, nil, 1, nil,                   --数字指的是 一次做出几个
"images/inventoryimages/myfood.xml", "myfood.tex")

在modinfo里面,
联机版请加上这两句(务必):
dst_compatible = true
all_clients_require_mod = true


以上是对上一篇的补充,下面我们希望myfood可以在农场中被种出来,
(pizza能被种出来感觉怪怪的,于是我换了一个物品"pear",我们希望它可以被种出来)


那么先上一个自定义种子被农场种出来自定义物品的模板
链接:http://pan.baidu.com/s/1eRCSaWi 密码:phsa
(该物品是一个“梨子”,scml模板是老崔传给我的)


我们现在想做一个新的农作物,比如叫mycrop


我们需要准备的图片
1."mycrop"在物品栏的图片"mycrop.png"
2."mycrop"在地上的图片(同样也是在农场中被种出来的时候的图片,也就是只要准备一张)
3."mycrop"的种子"mycrop_seeds"在物品栏的图片 "mycrop_seeds.png"
4."mycrop_seeds"(种子放在地上的图片为原始种子的样子,所以不用准备)
注意:物品栏物品的图片大小有着严格要求,可以先拖一张模板图片进ps,然后删掉图片,保留图层,把你准备好的图片拖进去...


·将myfood.png,mycrop_seeds.png转成tex,放进images\inventoryimages
同时需要两个同名的xml文件,(已经有了,改下名字就好,xml里面的xxx.tex 名字也记得改)


·modmain里面
记得添加这两个物品


然后这一段
local function pickproduct(inst)
	
local VEGGIES = 
{	
	carrot = {seed_weight = 3,},
	corn = {seed_weight = 3,},	
	pumpkin = {seed_weight = 1,},
	eggplant = {seed_weight = 1,},	
	cave_banana = {seed_weight = 1,},
	watermelon = {seed_weight = 1,},
	durian = {seed_weight = 0.5,},	
	pomegranate = {seed_weight = 0.5,},	
	dragonfruit = {seed_weight = 0.5,},
	pear = {seed_weight = 3,},        --给pear一个权重,越大种出来的机率越大,pear记得改名mycrop
}


	local total_w = 0
	for k,v in pairs(VEGGIES) do
		total_w = total_w + (v.seed_weight or 1)
	end
	
	local rnd = math.random()*total_w
	for k,v in pairs(VEGGIES) do
		rnd = rnd - (v.seed_weight or 1)
		if rnd <= 0 then
			return k
		end
	end
	
	return "carrot"
end


AddPrefabPostInit("seeds",function(inst)


	inst.components.plantable.product = pickproduct


end)


·scripts\prefabs里两个文件 记得改名,打开里面的所有pear 也要改成mycrop
mycrop_seeds.lua里面有一句
inst.components.plantable.product = "mycrop"  --这句决定种出来的产品


·最重要一步来了
exported\pear\pear01里面"pear01-0.png"用ps打开、 删掉梨子的图 、mycrop的图放进去、调整下大小位置之类的。(切记不可直接把mycrop的图丢进去,因为图层大小不能改变),这张图决定mycrop在农场中的位置,放的太高的话,种出来可能是悬空的
pear01文件夹更名为mycrop01,里面四张图片名字含有pear的也全换成mycrop,(其他三张图不用管)
pear.scml用notepad++打开,ctrl+F,将pear全部替换成mycrop,pear.scml也改成mycrop.scml


这样就ok 可以进游戏了






·关于ktool(不大喜欢这个软件,反编译难免出错,还是说下用法)


anim文件夹里面zip解压得到三个文件,anim.bin;atlas-0.tex;build.bin,下面用ktool将这三个文件转成能被spriter打开的scml


·将三个文件放到一个纯英文路径(最好能和ktool在同一个盘,省得多事)
比如我现在的三个文件在C:\F\DSTmod\pic下面,该文件为待转化的


·还需要一个文件夹接收转换后的文件,就C:\F\DSTmod\output好了


·明确ktool的exe的路径,比如我是C:\F\DSTmod\TOOL\ktools\krane.exe


下一步打开cmd(请快捷键WIN+R,键入cmd回车)


进入ktool所在的盘,假如在d盘,那就键入 d: 回车


进入所在的盘后,分别输入  krane.exe路径 待转化文件夹路径 输出路径
我这里是:
C:\F\DSTmod\TOOL\ktools\krane.exe C:\F\DSTmod\pic C:\F\DSTmod\output 回车
(这三个路径刚才已经明确了,请复制粘贴<右键粘贴>,三个路径 空格 隔开)


此时output下,有了一个或多个文件夹以及一个xxx.scml 
打开文件夹,可以看到几张图片,接下来就是回到刚才替换图片的那一步了





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章