资讯详情

资讯详情

MCreator 实体雷击触发器(When Struck by Lightning)完全指南:配置、依赖与生成代码解析

低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载导读本文围绕 MCreator 中生物Living Entity元素的被闪电击中When struck by lightning触发器展开它会在自定义生物被雷击的瞬间执行一个流程Procedure是制作雷击变身闪电召唤掉落等玩法的基础事件入口。读完本文你将掌握该触发器的编辑器配置位置、可用的流程依赖变量以及它在 NeoForge 生成代码中如何通过覆写thunderHit方法落地从而能独立在 MCreator 工作区中设计并调试此类雷击事件逻辑。触发器是什么触发条件与语义原帮助文档de_DE 版本 及对应的 zh_CN 版本对该触发器的定义非常简洁当该实体被一道闪电击中时触发执行该流程。也就是说只要 Minecraft 世界中存在一个闪电实体LightningBolt与你的自定义生物发生雷击命中交互该事件就会被抛出。典型来源包括自然雷暴天气降下的闪电、玩家使用引雷Channeling附魔三叉戟召唤的闪电以及其他模组或指令如/summon minecraft:lightning_bolt生成的闪电。在 MCreator 编辑器中的位置与配置该触发器属于生物Living Entity元素的**事件Events**区块与实体被玩家右击实体受伤实体死亡实体掉落等触发器并列集中展示在生物编辑界面的同一面板中。从源码可以确认它的完整注册方式在 LivingEntityGUI.java 中它通过ProcedureSelector构建onStruckByLightning new ProcedureSelector(this.withEntry(entity/when_struck_by_lightning), mcreator, L10N.t(elementgui.living_entity.event_struck_by_lightning), AbstractProcedureSelector.Side.SERVER, Dependency.fromString(x:number/y:number/z:number/world:world/entity:entity));其中this.withEntry(entity/when_struck_by_lightning)直接关联到本文所基于的帮助文档路径plugins/mcreator-localization/help/语言/entity/when_struck_by_lightning.md帮助面板中展示的正是这份说明界面显示名取自本地化键elementgui.living_entity.event_struck_by_lightning例如中文为实体被雷击时、德文为Wenn vom Blitz getroffen见 texts_zh_CN.properties 与 texts_de_DE.propertiesSide.SERVER表明该触发器产生的流程运行在服务端适合执行改变世界状态、伤害实体、掉落物品等逻辑参数列表明确声明了该触发器向流程暴露的五个依赖见下文。用户在该选择器中选定的流程会被保存到生物数据模型LivingEntity的onStruckByLightning字段上LivingEntity.java并在界面保存时写回工作区LivingEntityGUI.java。可用依赖变量Dependencies选中该触发器后在流程编辑器中可用的依赖变量与含义如下依赖类型含义xnumber被雷击实体当前的 X 坐标ynumber被雷击实体当前的 Y 坐标znumber被雷击实体当前的 Z 坐标worldworld实体所在的世界/维度对象可用于放置方块、生成闪电等操作entityentity被闪电击中的实体本身这五个依赖正是 LivingEntityGUI.java 中Dependency.fromString(x:number/y:number/z:number/world:world/entity:entity)所声明的集合。由于雷击事件天然携带位置信息这类流程最常用的就是在 (x, y, z) 附近执行区域操作或对 entity 执行状态变更。生成代码剖析thunderHit 覆写选中该触发器并生成模组后MCreator 会在自定义实体的 Java 源码中覆写 NeoForge/Minecraft 的thunderHit方法。两个 NeoForge 生成器1.21.1 版模板 与 26.3.x 版模板的生成逻辑完全一致#if hasProcedure(data.onStruckByLightning) Override public void thunderHit(ServerLevel serverWorld, LightningBolt lightningBolt) { super.thunderHit(serverWorld, lightningBolt); procedureCode data.onStruckByLightning, { x: this.getX(), y: this.getY(), z: this.getZ(), entity: this, world: this.level() }/ } /#if这段模板揭示了三个底层事实触发时机thunderHit(ServerLevel, LightningBolt)是 Minecraft 实体在服务端被闪电击中时由游戏引擎调用的回调。当你的自定义实体遭遇闪电时该覆写方法即被执行因此触发器的时机与游戏内雷击命中事件完全同步。依赖注入方式模板将流程中使用的x/y/z/entity/world分别映射为this.getX()、this.getY()、this.getZ()、this与this.level()。也就是说流程运行时拿到的entity就是被雷击的自定义实体实例本身world即其所在的ServerLevel。默认行为保留覆写方法第一行先调用super.thunderHit(serverWorld, lightningBolt)因此原版被闪电击中后着火等默认行为依然生效用户的流程是在默认行为之后追加执行的自定义逻辑。模板外层使用#if hasProcedure(data.onStruckByLightning)做条件包裹只有用户确实为该生物选择了流程时才会生成这段覆写代码未配置时生成的实体类不包含任何雷击相关逻辑从而保持生成的类干净精简。典型使用场景基于以上依赖与生成机制该触发器适合实现以下玩法雷击进化/变身流程中判断entity的类型满足条件时将实体替换为更强的变体或为实体施加状态效果如力量、速度雷击掉落在x/y/z坐标生成自定义掉落物、经验球或触发另一个流程连锁闪电通过world在世界中再次召唤LightningBolt制造二次雷击区域事件将x/y/z传给区域操作例如雷击点周围方块被烧毁、生成自定义结构等玩法保护检测到雷击后为entity施加防雷效果、恢复生命实现避雷针式的自定义生物特性。由于流程运行在服务端这些逻辑天然具备多人联机下的权威性不需要额外处理客户端同步。注意事项与适用边界仅适用于生物Living Entity元素从源码看该触发器只注册于LivingEntityGUI的事件面板中LivingEntityGUI.java普通生物群系、物品等其他元素类型没有此事件仅适用于基于实体类的生成器其生成代码位于 NeoForge 生成器的livingentity模板中数据包Datapack与资源包Resource Pack生成器不涉及实体类生成因此该触发器只在生成 Java 模组时生效触发条件是实体被雷击而非闪电生成若你想在闪电落地的瞬间无论是否击中实体执行逻辑应改用世界/位置类事件或在流程中另行监听闪电实体生成而非本触发器默认雷击伤害/着火行为仍然存在由于模板先调用super.thunderHit(...)原版雷击伤害与引燃逻辑不会被覆盖如需完全免疫需在流程中自行处理生命值恢复或清除着火状态。小结实体被雷击时是 MCreator 生物元素中一个服务端流程触发器通过 LivingEntityGUI.java 注册、在 LivingEntity.java 中持久化、并由 livingentity.java.ftl 覆写thunderHit生成落地代码。它向流程暴露x/y/z/world/entity五个依赖是搭建雷击类自定义生物玩法最直接、最可靠的事件入口。配合 MCreator 流程编辑器中的条件判断与实体操作块即可在几分钟内完成一套完整的雷击事件玩法。赞分享低代码代码生成桌面应用游戏开发【免费下载链接】MCreatorMCreator is an open-source software used to make Minecraft Java Edition mods, Minecraft Bedrock Edition Add-Ons, resource packs, and data packs using an intuitive easy-to-learn interface or with an integrated code editor. It is used worldwide by Minecraft players, aspiring mod developers, for education, online classes, and STEM workshops.项目地址https://gitcode.com/gh_mirrors/mc/MCreator点击查看免费下载相关推荐MCreator 方块被弹射物击中事件详解触发器配置、依赖注入与代码生成原理MCreator 方块被弹射物击中事件详解触发器配置、依赖注入与代码生成原理 当箭矢、雪球、末影珍珠或自定义弹射物命中自定义方块时MCreator 提供低代码代码生成桌面应用游戏开发MCreator 实体「攻击击退Attack Knockback」参数完全指南原理、设置与生成代码解析MCreator 实体「攻击击退Attack Knockback」参数完全指南原理、设置与生成代码解析 本指南围绕 MCreator 活体实体Livin低代码代码生成桌面应用游戏开发MCreator 实体「初始生成」触发器On Initial Spawn详解配置、依赖变量与 NeoForge 底层实现MCreator 实体「初始生成」触发器On Initial Spawn详解配置、依赖变量与 NeoForge 底层实现 导读 本文围绕 MCreator低代码代码生成桌面应用游戏开发上一篇USB Army Knife项目架构解析从硬件抽象到攻击模块下一篇vim-slime 目标系统对比tmux、screen、neovim 等11种环境的配置指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
觉得有用,分享给同行:

为您的企业打造数字门面

稳重轻奢商务风格,端正雅致视觉,长效耐看不易过时。

立即咨询 →