一个为Mindustry游戏添加多种逻辑扩展功能的模组,支持嵌套逻辑、单位绑定控制、字符串处理、弹药自定义等高级功能。
该指令允许玩家在逻辑代码中实现调用栈和嵌套执行,支持三种操作类型:
- push操作:将变量或值压入指定栈的指定索引
- call操作:执行嵌套的逻辑代码块
- pop操作:从指定栈的指定索引读取值到变量
- 多栈支持:可以创建和使用多个独立的栈
- 自动回收:超时的栈元素会自动被清理
- 嵌套深度限制:防止无限递归
nestedlogic push <variable> <index> <stackName>
nestedlogic call <logicName> <encodedNestedCode>
nestedlogic pop <variable> <index> <stackName>
- 支持多层嵌套(最大深度5层)
- 与主逻辑共享变量作用域和链接
- 提供可视化编辑器
- 支持语言包和tooltip提示
该指令允许玩家绑定和控制指定类型和数量的单位。
- 单位类型绑定:可以绑定到特定单位类型(如@poly、@dagger等)
- 数量控制:指定要绑定的单位数量
- 三种工作模式:
- 模式1:不进行控制方检查 - 只要单位有效且类型匹配,就会被保留在单位池中,不管当前被谁控制
- 模式2:LogicAI控制检查 - 只有被LogicAI控制的非玩家单位才会被保留在单位池中
- 模式3:专属控制检查 - 只有被当前执行器控制的LogicAI单位才会被保留在单位池中
- 单位变量存储:将当前单位和索引存储到指定变量
unitBindGroup <type> <count> <mode> <unitVar> <indexVar>
type:目标单位类型标识(如@poly、@dagger)count:要绑定的单位数量mode:控制模式(1、2、3)unitVar:存储当前单位的变量名indexVar:存储单位索引的变量名
该指令允许玩家将两个字符串合并为一个字符串。
stringmerge <outputVar> <string1> <string2>
outputVar:存储合并结果的变量名string1:第一个要合并的字符串string2:第二个要合并的字符串
- 支持合并数字和字符串
- 结果长度限制为220字符
- 与Mindustry逻辑系统无缝集成
该指令集允许玩家创建和自定义各种类型的弹药。
创建一种新的弹药类型。
语法:
createammo <ammoType> <id>
参数说明:
ammoType:弹药类型,可选值包括BasicBullet、BombBullet、LaserBullet、LightningBullet、MissileBullet、FireBullet、ArtilleryBulletid:用于标识该弹药的唯一ID
修改、删除或在世界中创建弹药。
语法:
setammo <operation> <ammoProperty> <id> <value> [team] [x] [y] [rotation]
参数说明:
operation:操作类型,可选值包括set(修改属性)、remove(删除弹药)、create(在世界中创建弹药)ammoProperty:要修改的弹药属性,如damage、speed、lifetime等id:弹药的唯一IDvalue:要设置的属性值team(可选): 团队ID,用于create操作x(可选): X坐标,用于create操作y(可选): Y坐标,用于create操作rotation(可选): 旋转角度,用于create操作
该指令提供了多种快速控制单位的操作,允许绕过原版单位控制的冷却时间限制,实现更高效的单位控制。
- 物品操作:快速从建筑取物和向建筑放物
- Payload操作:快速获取和放置Payload(单位或建筑)
- 协助建造:协助其他单位进行建造
- 无冷却限制:绕过原版单位控制的冷却时间
-
itemTake:从指定建筑获取物品
- 参数:
from(来源建筑)、item(物品类型)、amount(数量) - 功能:从指定建筑中获取指定数量的物品
- 参数:
-
itemDrop:将物品放入指定建筑或丢弃
- 参数:
to(目标建筑)、amount(数量) - 功能:将当前物品放入指定建筑或丢弃
- 参数:
-
payTake:获取Payload(单位或建筑)
- 参数:
takeUnits(是否获取单位)、x(X坐标)、y(Y坐标) - 功能:在指定位置获取Payload(可以是单位或建筑)
- 参数:
-
payDrop:放置Payload
- 参数:
x(X坐标)、y(Y坐标) - 功能:在指定位置放置当前Payload
- 参数:
-
assist:协助其他单位建造
- 参数:
assister(协助者单位)、target(目标单位) - 功能:让协助者单位复制目标单位的建造计划并协助建造
- 参数:
fastunitcontrol <type> <param1> <param2> <param3>
- 无冷却时间限制,可实现更频繁的单位操作
- 支持多种单位控制操作,功能全面
- 与原版单位控制指令兼容
- 提高单位控制效率,适合自动化逻辑
- 高效的资源运输系统
- 快速的Payload处理
- 协作建造系统
- 高频单位操作逻辑
扩展了逻辑指令的类别,为新指令提供合适的分类。
提供可配置的调试日志功能,帮助开发者和玩家排查问题。
- 编译mod生成jar文件
- 将jar文件放入Mindustry游戏的mods文件夹
- 启动游戏,在模组列表中启用该mod
# 定义变量
set myVar 100
# 将变量压入默认栈的索引0
nestedlogic push myVar 0 default
# 清空变量
set myVar 0
# 从栈中恢复变量值
nestedlogic pop myVar 0 default
# 输出结果(应该是100)
print myVar
# 绑定3个多足单位到变量currentUnit和indexUnit,使用模式2
unitBindGroup @poly 3 2 currentUnit indexUnit
# 控制当前单位移动
ucontrol currentUnit move 100 100
# 合并两个字符串
stringmerge greeting "Hello, " "Commander!"
# 输出结果
print greeting
# 创建一种新的基本子弹
createammo BasicBullet "mybullet"
# 设置子弹属性
setammo set damage "mybullet" 50
setammo set speed "mybullet" 10
作者: meesst 版本: 1.0.1 兼容性: Mindustry 151.1+
- 嵌套逻辑指令支持多层嵌套,但请注意不要超过最大深度5层
- 确保合理设置最大绑定数量,避免过多占用单位资源
- 在共享组模式下,多个控制器共享单位池,请注意协调控制逻辑
- 当不再需要控制单位时,建议显式解绑以释放资源
- 弹药创建和设置指令需要特权权限,仅在服务器端或单机游戏中可用
- 可以在游戏设置中启用调试日志,帮助排查问题
- 添加了128*128像素的mod图标
- 修改了build.gradle配置,确保图标被正确包含在编译后的jar包中
- 初始版本
- 添加了嵌套逻辑指令(push、call、pop)
- 添加了单位绑定组指令
- 添加了字符串合并指令
- 添加了弹药创建和设置指令
- 添加了快速单位控制功能
- 支持自定义类别和图标
- 支持语言包和tooltip提示
- 添加了可配置的调试日志功能
欢迎提交Issue和Pull Request,帮助改进这个模组!
本项目采用MIT许可证,详见LICENSE文件。