<?xml version="1.0"?>
<rss version="2.0"><channel><title>&#x7AD9;&#x52A1;&#x516C;&#x544A; &#x6700;&#x65B0;&#x7684;&#x4E3B;&#x9898;</title><link>https://lwxining.com/forum/2-%E7%AB%99%E5%8A%A1%E5%85%AC%E5%91%8A/</link><description>&#x7AD9;&#x52A1;&#x516C;&#x544A; &#x6700;&#x65B0;&#x7684;&#x4E3B;&#x9898;</description><language>zh</language><item><title>&#x9EA6;&#x5757;&#x4E16;&#x754C;</title><link>https://lwxining.com/topic/2-%E9%BA%A6%E5%9D%97%E4%B8%96%E7%95%8C/</link><description><![CDATA[<p>麦块世界 https://maikuai.world，专属《我的世界》爱好者的综合交流论坛。这里聚集无数热爱方块世界的玩家，涵盖游戏方方面面精彩内容。你可以分享独具匠心的建筑作品、脑洞十足的生存冒险、精巧复杂的红石机械，也能交流光影材质美化、模组整合搭配、游戏版本适配等游玩技巧。论坛内设服务器搭建、高阶指令运用、游戏故障排查、资源素材共享等技术板块，为萌新答疑，供大神切磋。社区氛围和睦友善，没有门槛隔阂，无论刚入门的新手，还是深耕多年的资深玩家，都能在此畅谈玩法、展示创作、结识同好伙伴，一同探索方块天地里无穷无尽的创意与乐趣。<span class="ipsEmoji" title="smiling face with hearts">🥰</span></p><p><img class="ipsImage ipsImage_thumbnailed ipsRichText__align--block ipsRichText__align--width-custom" data-fileid="1" src="https://lwxining.com/uploads/monthly_2026_05/Survival.thumb.png.b0203c7c2eca20233c69997346078e7d.png" alt="Survival.png" title="" width="1000" height="562" data-full-image="https://lwxining.com/uploads/monthly_2026_05/Survival.png.acf3d8db8b873c754ee73e88024fadfb.png" style="--i-media-width: 708px;" loading="lazy"></p>]]></description><guid isPermaLink="false">2</guid><pubDate>Sun, 24 May 2026 11:34:37 +0000</pubDate></item><item><title>&#x5982;&#x4F55;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x4F60;&#x81EA;&#x5DF1;&#x7684;&#x8D77;&#x6E90;</title><link>https://lwxining.com/topic/4-%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E4%BD%A0%E8%87%AA%E5%B7%B1%E7%9A%84%E8%B5%B7%E6%BA%90/</link><description><![CDATA[<p>起源的附属模组之所以这么多，很大程度上是因为起源自己提供了一套API，便于任何人来创建或修改起源（比如<a rel="external nofollow" href="https://www.mcmod.cn/class/6993.html">起源++</a>有足足几十个起源）。不过原模组的开发文档是全英文，而且很长，并不利于国内玩家开发。基于此，我决定动笔写一份比较通俗易懂的入门教程，希望能够帮助大家了解创建一个起源的流程。</p><p style="text-align:left;">如果语言能力允许，更推荐大家去阅读起源的开发文档，会更加有帮助：Origins Documentation。同时，在阅读本篇教程之前，也希望你已经理解了数据包的结构及JSON文件的写法。如果还没有，可以先阅读一下中文Minecraft wiki的相关内容。</p><p style="text-align:left;"><strong>零、前置准备</strong></p><p style="text-align:left;">由于创建起源需要我们大量创建并修改JSON文件，我强烈推荐大家使用微软开发的VS Code，并在扩展商店中搜索并下载Origins Mod Helper，可以有效提高开发效率，减少查wiki的时间。本文也正基于这种开发环境来讲解。如果你不会使用VS Code，推荐搜索相关教程，本文不再赘述。<span style="font-family: inherit;"><img src="https://i.mcmod.cn/editor/upload/20240205/1707121384_32899_aLvh.webp" alt="如何创建一个你自己的起源-第1张图片" class="ipsRichText__align--block" loading="lazy"></span></p><p style="text-align:left;"></p><p style="text-align:left;"><strong>一、创建一个数据包</strong></p><p style="text-align:left;">正如前文所说，起源的API是基于数据包的。如果我们想要创建一些独属于自己的起源，首先要创建一个数据包。第一步，创建一个名字只有英文大小写字母、数字和下划线的文件夹，随后在其中创建一个data文件夹和一个pack.mcmeta文件，详见教程:制作数据包 - Minecraft Wiki。</p><p style="text-align:left;">现在假定你已经创建了一个名为example的文件夹，并在其中创建了一个data文件夹并正确填写了pack.mcmeta。在data文件夹中，再创建一个名为origins的文件夹，和一个名字任取（不包括汉字）的文件夹，后者将是你数据包的主体，在游戏中也表现为你起源的命名空间ID将是这个名字（假定为foo）。</p><p style="text-align:left;">两个文件夹都会被用到，不过现在我们先点开foo文件夹（也就是名字任取的那个文件夹），在其中分别创建名为origins和名为powers的文件夹。顾名思义，前者用于设定起源，后者用于设定起源所对应的能力。</p><p style="text-align:left;"></p><p style="text-align:left;"><strong>二、创建一个起源</strong></p><p style="text-align:left;">在完成了上述步骤后，我们就可以着手开始创建一个属于自己的起源了。在<em>origins</em>文件夹中创建一个名字任取（不包括汉字）的文本文件，将其命名为&lt;<em>起源名&gt;.json</em>。注意，该文件的扩展名应该是.json，文件类型属于JSON文件。假定我们想要创建一个名为<em>bar</em>的起源，那么我们就应该将其命名为<em>bar.json</em>。</p><p style="text-align:left;">现在打开这个JSON文件，其中当然什么也没有。先输入一对大括号，随后按照下图的方式为你的起源设定名字（name）、图标（icon）、影响值（impact）及能力列表（powers）。图中的<em>upgrades</em>为可选项，如果你希望这个起源能在达成进度后变成另外一个起源，你才会用到<em>upgrades</em>这个键。</p><p style="text-align:left;">需要注意，<em>item</em>的值是游戏中已存在的物品。<em>impact</em>仅接受0-3的整数。由于现在我们还没有创建任何一个能力，所以你可以暂时把<em>powers</em>的列表空着，等完成能力创建之后，再来填写<em>powers</em>。</p><p style="text-align:left;"><span style="font-family: inherit;"><img src="https://i.mcmod.cn/editor/upload/20240205/1707122378_32899_BPzZ.webp" alt="如何创建一个你自己的起源-第2张图片" class="ipsRichText__align--block" loading="lazy"></span></p><p style="text-align:left;"><strong>三、创建能力</strong></p><p style="text-align:left;">创建能力是起源附属开发的最重量级的部分。由于本人精力所限，这一部分并不会讲解能力类型，大部分的能力类型需要大家自己看开发文档，或者是依照别的附属模组的方式来模仿着写出一个能力。</p><p style="text-align:left;">在<em>powers</em>文件夹中，创建一个<em>&lt;能力名&gt;.json</em>文件。随后打开这个文件，并以一对大括号起手，随后输入<em>"type"</em>来设定能力类型，输入<em>"name"</em>来设定能力名字，输入<em>"description"</em>来设定能力的描述。下图是一个比较简单的能力实现。其作用是当玩家杀死生物时，给予玩家2格饱食度和2格饥饿值，冷却为1刻（其实就是没有冷却）。其中<em>origins:self_action_on_kill</em>就是指会在玩家杀死生物时触发的能力。</p><p style="text-align:left;"><span style="font-family: inherit;"><img src="https://i.mcmod.cn/editor/upload/20240205/1707123110_32899_lfJs.webp" alt="如何创建一个你自己的起源-第3张图片" class="ipsRichText__align--block" loading="lazy"></span></p><p style="text-align:left;">对大部分能力来说，复杂的部分在于填写<em>entity_action</em>（对玩家的作用）, <em>bientity_action</em>（对另一交互实体的作用）和<em>condition</em>（能力触发的额外条件）。下图就是一个比较复杂的示例。该能力的作用是：</p><p style="text-align:left;">当能力<em>ignisian:ignisian_wrath_toggle</em>激活时（<em>condition</em>），</p><p style="text-align:left;">每1刻（<em>interval</em>）</p><p style="text-align:left;">都对玩家附近1格以内(<em>entity_action:type,radius</em>)</p><p style="text-align:left;">活着的生物(<em>bientity_condition</em>)</p><p style="text-align:left;">造成(<em>bientity_action</em>)</p><p style="text-align:left;">5点(<em>amount</em>)</p><p style="text-align:left;">无视护甲、类型为怪物攻击(<em>source</em>)</p><p style="text-align:left;">的伤害。</p><p style="text-align:left;"><span style="font-family: inherit;"><img src="https://i.mcmod.cn/editor/upload/20240205/1707123469_32899_cTnv.webp" alt="如何创建一个你自己的起源-第4张图片" class="ipsRichText__align--block" loading="lazy"></span>需要说明，上面那个图之所以看起来不像一个单独的能力，是因为这个能力属于一个更大的能力当中，这个更大的能力的能力类型是multiple。multiple能力类型允许我们在一个JSON文件内创建多个单独能力，并以<em>&lt;命名空间ID&gt;:&lt;大能力名&gt;_&lt;小能力名&gt;</em>的形式被调用。同时，这其中的所有能力也可以以<em>&lt;命名空间ID&gt;:&lt;大能力名&gt;</em>的形式被同时调用。例如，上图当中的能力在游戏中可以以<em>ignisian:ignisian_wrath_damage</em>的形式被调用，也可以与其他能力一起，作为<em>ignisian:ignisian_wrath</em>能力被调用。</p><p style="text-align:left;">换句话说，你可以将multiple能力理解为一个能力的集合。集合中的元素可以被单独调用，也可以与其他元素一起，作为一个集合被调用。</p><p style="text-align:left;"></p><p style="text-align:left;"><strong>四、注册起源</strong></p><p style="text-align:left;">在创建完能力、填写完起源的能力列表之后，我们还有一步需要完成，就是注册起源。打开<em>&lt;数据包&gt;/data/origins</em>文件夹，创建一个名为<em>origin_layers</em>的文件夹，再创建一个origins.json文件，随后输入：</p><div class="ipsRichText__table-wrapper"><table style="min-width: 40px;"><colgroup><col style="min-width:20px;"><col style="min-width:20px;"></colgroup><tbody><tr><td colspan="1" rowspan="1"><p>1</p><p>2</p><p>3</p><p>4</p><p>5</p></td><td colspan="1" rowspan="1"><p><code>{</code></p><p><code>    "replace":false,</code></p><p><code>    "allow_random":true,</code></p><p><code>    "origins":[]</code></p><p><code>}</code></p></td></tr></tbody></table></div><p style="text-align:left;">并在中括号中填入你刚刚创建的起源的名称，比如foo:bar等等。你也可以使用逗号分隔并添加多个起源。</p><p style="text-align:left;">顺便讲解一下起源层的概念：</p><p style="text-align:left;">如果你安装了<a rel="external nofollow" href="http://www.mcmod.cn/class/3134.html">起源：职业</a>模组，你会发现在你选择完起源之后，还可以选择对应的职业。前者是原模组就有的origins层，而后者则是起源：职业所创建的另一个起源层。如果存在多个起源层，那么玩家可以选择多个起源，并拥有这些起源的所有能力。</p><p style="text-align:left;">如果你希望实现大类套小类的效果，那么你可以另外创建一个起源层。如果你希望你的起源与原版的起源互斥，那么就使用origin层即可。</p><p style="text-align:left;"></p><p style="text-align:left;">replace即代表你所创建的这个起源层是否会替换同名的起源层。如果你在上文的origin.json中把replace设为true，那么进入游戏后你只能看到自己创建的起源，而看不到原版提供的起源。</p><p style="text-align:left;">allow_random就是指你创建的这些起源是否放到随机起源池当中。</p><p style="text-align:left;"></p><p style="text-align:left;"><strong>五、总结</strong></p><p style="text-align:left;">本篇教程粗略地为大家讲解了创建一个起源的总体流程。由于本人精力所限，本篇教程主要以示例为主，没有特别详细地介绍各个键值对的作用及写法。我推荐大家参考<a rel="external nofollow" href="https://www.mcmod.cn/class/6993.html">起源++</a>模组当中的起源和能力，写出一个独属于自己的起源。</p>]]></description><guid isPermaLink="false">4</guid><pubDate>Mon, 25 May 2026 12:40:52 +0000</pubDate></item><item><title>&#x6D4B;&#x8BD5;2</title><link>https://lwxining.com/topic/3-%E6%B5%8B%E8%AF%952/</link><description><![CDATA[<p>仍无法</p><p>
<a class="ipsAttachLink" href="https://lwxining.com/applications/core/interface/file/attachment.php?id=2&amp;key=88d33b5b0816c45988e554e5335867c2" data-fileExt='webp' data-fileid='2' data-filekey='88d33b5b0816c45988e554e5335867c2'>8c8454ef0041b7a84625295877c1daaa.webp</a></p>]]></description><guid isPermaLink="false">3</guid><pubDate>Mon, 25 May 2026 02:29:58 +0000</pubDate></item></channel></rss>
