В этой статье я расскажу как создать простой мод для Luanti, руда, инструменты, рецепты крафта и броня (потребуется мод 3d_armor)
И так, приступим к делу!
Для начала создадим директорию с названием мода в директории mods в файлах игры, в моем случае это moretools, а после создадим директорию textures в директории мода, потом создади исполняемый файл init.lua и mod.conf
Должно получиться так:
mymod/
- textures/
- - mymod_node.png
- init.lua
- mod.conf
После мы должны отредактировать файл mod.conf вот так:
Code: Select all
mod_name = moretools
depends = 3d_armor
Code: Select all
3d_armor, default
Тогда директория должна выглядеть так:
mymod/
- textures/
- - mymod_node.png
- init.lua
- depends.txt
- mod.conf
Следующий шаг редактирование исполняемого файла init.lua
Советую заполнить как у меня:
Code: Select all
--Load Mod
local S = minetest.get_translator()
local path = minetest.get_modpath(minetest.get_current_modname())
dofile(path .. "/tools.lua")
dofile(path .. "/ores.lua")
dofile(path .. "/recipes.lua")
dofile(path .. "/armor.lua")
Двигаемся дальше, регистрация руды:
Code: Select all
minetest.register_craftitem("moretools:amethyst_lump", {
description = ("Amethyst lump"),
inventory_image = "amethyst_lump.png",
})
minetest.register_craftitem("moretools:amethyst_ingot", {
description = ("Amethyst ingot"),
inventory_image = "amethyst_ingot.png",
})
minetest.register_node("moretools:amethyst_ore", {
description = ("Amethyst ore"),
tiles = {"default_stone.png^amethyst_ore.png"},
groups = {cracky=3, stone=1},
drop = 'moretools:amethyst_lump',
})
minetest.register_ore({
ore_type = "scatter",
ore = "moretools:amethyst_ore",
wherein = "default:stone",
clust_scarcity = 10*10*10,
clust_num_ores = 5,
clust_size = 5,
y_min = -31000,
y_max = -1500,
})
Code: Select all
--Крафты
minetest.register_craft({
output = "moretools:amethyst_pickaxe",
recipe = {
{"moretools:amethyst_ingot", "moretools:amethyst_ingot", "moretools:amethyst_ingot"},
{"", "default:stick", ""},
{"", "default:stick", ""},
},
})
--Плавка
minetest.register_craft({
type = "cooking",
output = "moretools:amethyst_ingot",
recipe = "moretools:amethyst",
cooktime = 5,
})
Code: Select all
minetest.register_tool("moretools:copper_pickaxe", {
description = ("Copper Pickaxe"),
inventory_image = "copper_pickaxe.png",
tool_capabilities = {
full_punch_interval = 1.0,
max_drop_level=1,
groupcaps={
cracky = {times={[1]=4.50, [2]=1.80, [3]=0.90}, uses=20, maxlevel=2},
},
damage_groups = {fleshy=4},
},
sound = {breaks = "default_tool_breaks"},
groups = {pickaxe = 1}
})
Самое интересное, броня:
Code: Select all
armor:register_armor(":moretools:helmet_amethyst", {
description = ("Amethyst Helmet"),
inventory_image = "moretools_inv_helmet_amethyst.png",
groups = {armor_head=1, armor_heal=12, armor_use=100, armor_fire=1},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=1, level=3},
})
armor:register_armor(":moretools:chestplate_amethyst", {
description = ("Amethyst Chestplate"),
inventory_image = "moretools_inv_chestplate_amethyst.png",
groups = {armor_torso=1, armor_heal=12, armor_use=100, armor_fire=1},
armor_groups = {fleshy=20},
damage_groups = {cracky=2, snappy=1, level=3},
})
armor:register_armor(":moretools:leggins_amethyst", {
description = ("Amethyst Leggins"),
inventory_image = "moretools_inv_leggins_amethyst.png",
groups = {armor_legs=1, armor_heal=12, armor_use=100, armor_fire=1},
armor_groups = {fleshy=20},
damage_groups = {cracky=2, snappy=1, level=3},
})
armor:register_armor(":moretools:boots_amethyst", {
description = ("Amethyst Boots"),
inventory_image = "moretools_inv_boots_amethyst.png",
groups = {armor_feet=1, armor_heal=12, armor_use=100, physics_speed=1,
physics_jump=0.5, armor_fire=1},
armor_groups = {fleshy=15},
damage_groups = {cracky=2, snappy=1, level=3},
})
И так, подводим итоги:
Вы научились создавать базовый мод для Luanti, надеюсь помог, удачи в продвижении!