0%

空手(手)

空手是 Luanti 里最基础的“工具”,可以挖方块、打人,不同游戏效果会不一样。空手就是你啥也不拿时的默认状态。


隐形的“空手机制”

  • 你拿着非工具物品(比如石头)时,效果 = 空手
  • 用不对口的工具挖方块(比如用镐挖泥土),速度 = 空手,且不掉耐久
  • 只要能徒手挖的方块,都会按空手速度计算

Minetest Game 里的空手

空手能挖一些软方块,但速度很慢:
沙子、泥土、木头、树叶、玻璃等都能徒手挖。

空手属性:

  • 攻击间隔:0.9 秒
  • 伤害:1 点生命值(0.5 颗心)
  • 指向距离:4 格

常用挖掘速度(徒手)

  • 泥土、沙子:0.70 秒
  • 苹果树叶、草块:0.40 秒
  • 苹果树树干:3.50 秒
  • 苹果木木板:2.0 秒

创造模式下的空手

在 MTG 创造模式里,空手直接超神

  • 指向距离拉到 10 格
  • 伤害提升到 10 点(5 颗心)
  • 几乎能秒挖所有方块
  • 挖掘速度大幅加快

你的第一个生物

这篇教程带你从零做一只简单的攻击型怪物,名字叫 Bloblet(小绿团)
教程会教你实体(entity)基础用法——凡是比方块更“能动”的东西,全都靠实体实现。

前提:你已经有一个基础模组 mymod,要编辑 mymod/init.lua
版本要求:Luanti 5.5.0 及以上

阅读全文 »

分组(Groups)

分组是 Luanti 里方块、物品、工具的核心分类机制。
任何东西都可以属于一个或多个分组,也可以不属于任何分组。
分组主要用于:合成配方、伤害计算、挖掘时间,以及各种游戏逻辑。


小提示

下面这些是 Minetest Game 默认分组,其他游戏/模组可能会魔改,不一定通用。


用于合成配方的普通分组

  • wood:木头类
  • stone:石头、圆石、石砖、沙漠石、沙漠石砖
  • sand:沙子、沙漠沙
  • flora:花(蒲公英、玫瑰、郁金香等)+ 小型植物
  • leaves:树叶

决定伤害与挖掘时间的分组

  • oddly_breakable_by_hand:徒手就能挖掉
  • crumbly:松软类(泥土、沙子)→ 铲子最快
  • cracky:坚硬类(石头类)→ 最快
  • choppy:可砍断类(树、木板)→ 最快
  • fleshy:生物/玩家血肉类 → 伤害最高
  • snappy:易剪断类(树叶、植物、线、薄金属)→ 剑可挖,但掉耐久快
  • explody:极易被炸飞

特殊分组(节选)

  • dig_immediate:瞬间挖掘
  • soil:土壤组,树苗能在上面生长

游戏主题重实现

主菜单里负责背景、标题栏等主题的逻辑,默认是用 mm_game_theme(在 game_theme.lua 里)实现的。
如果你只是想给所有页面统一用一张背景 + 一个标题图,完全没必要去啃这套复杂逻辑。


mm_game_theme 到底干了啥?

它本质就是封装调用了这个核心函数:
core.set_background
用来设置:背景、顶部标题、底部栏、覆盖层。

函数用法:

1
core.set_background(类型, 图片路径, 是否平铺, 最小尺寸)
  • type:background(背景)、overlay(覆盖层)、header(顶部标题)、footer(底部)
  • tile:是否平铺(只对背景有效)
  • minsize:平铺前最小缩放尺寸

极简重写示例(直接抄就能用)

下面是来自 Voxelmanip Classic 的超简方案,
直接替换掉 mm_game_theme,实现静态背景 + 固定标题

1
2
3
4
5
6
7
8
-- 设置顶部标题
core.set_background('header', defaulttexturedir .. "menu_header.png")

-- 设置主背景
core.set_background('background', defaulttexturedir .. "menu_bg.png")

-- 关闭云层动画
core.set_clouds(false)

把这段代码放进 init_globals() 函数里
直接删掉原来调用 mm_game_theme 的代码就行。

脱离 ContentDB 分发游戏

这篇教你不依赖官方商店,把你的 Luanti 游戏打包成独立客户端发布。
前提:你得会从源码编译 Luanti。

Luanti 引擎本身没有官方一键导出功能,游戏默认都走 ContentDB、在游戏内安装。但因为 Luanti 是自由软件,你可以fork 引擎 → 改头换面 → 绑定你的游戏 → 独立发布

阅读全文 »

开发问题排查


Lua API 常见坑

先把 Lua 5.1 官方手册吃透,少犯低级错误!

Q:我写了新类,但调用方法报“userdata value”错误

A:你忘了注册类!
C++ 暴露给 Lua 的对象默认是裸 userdata,必须配 __index__metatable 才能当对象用。
照着 LuaPerlinNoiseRegister() 写法抄,并且在 scriptapi_export() 里调用。

阅读全文 »

开发工具

这一页整理了开发 Luanti 游戏/模组、改引擎必备的实用工具,全是圈内人常用的神器!

阅读全文 »

开发环境配置

前言

写模组随便用啥编辑器都行,但强烈建议用支持 LSP(语言服务器协议) 的编辑器,能自动补全、报错误,开发爽到飞起。

支持 LSP 的常见编辑器:

  • Visual Studio Code
  • Kate
  • NeoVim
  • Helix
阅读全文 »

调试(Debug)

调试界面默认按 F5 打开,里面全是 Luanti 的技术参数,对开发者超有用,普通玩家最常用的就是看坐标

按 F5 可以循环切换这几种模式:

  • 关闭调试
  • 显示调试信息
  • 调试信息 + 性能曲线图
  • 调试信息 + 线框模式(需要 debug 权限)
阅读全文 »

制作材质包

材质包就是一个装图片的文件夹,文件名和原版保持一致就能替换贴图。Luanti 对材质包要求极低,基本是个游戏都能用。

阅读全文 »