简单简介
在3DM Mod站下载了不起的修仙模拟器最新的100品质符咒及衍生的可能性 Mod,由albert3378制作。albert3378在我们的平台上分享了这个免费且高质量的游戏模组,让玩家们可以享受到更加丰富的游戏体验。快来3DM Mod站下载并尝试吧!
详细介绍
Mod作者: albert3378 Mod版本: 1.0 Mod大小: 4.15 KB 更新时间: 2019-01-21 02:02:55 发布时间: 2019-01-21 02:02:55
详细说明
之前http://bbs.blacksheepgame.com/forum.php ... extra=#pid223621877我的这个帖子中利用修改事件曲线救国达成了100符咒的目标。
之后我通过借鉴Cosmos069的帖子有了做MOD的思路,(特别感谢!)
然后制作成了一个事件体系,且不与原有事物干涉,具体操作情况本帖会详细说明:
MOD由四个部分组成
PART 1 创造一个事件
Settings\MapStories下所属的所有文件都是触发事件
之前我们要做的是开一个箱子得到100品质的符咒,那么我们就要先创造一个开箱事件。
Settings\MapStories\System.xml文件最后几项都是箱子事件。
<Story Name="Story_Item_StoneBox2" Parent="BaseFillingStory">
<DisplayName>古旧石匣</DisplayName>
<Desc>从山岩之中挖掘出来的石匣,看上去有些年代了,不知道里面有什么东西。</Desc>
<Kind>None</Kind>
<Selections>
<li>
<Display>打开</Display>
<OKResult>
<![CDATA[
story:RemoveBindItem();
local nR = me:RandomInt(1, 23);
if nR <= 4 then
me:AddMsg("[NAME]打开石匣,发现其中装有一瓶丹药。");me:DropAwardItemFromCache(story.ItemCache4, 1);
elseif nR <= 8 then
me:AddMsg("[NAME]打开石匣,发现其中藏有一些珍贵的材料。");me:DropAwardItemFromCache(story.ItemCache3, 1);
elseif nR <= 12 then
me:AddMsg("[NAME]打开石匣,竟然在其中发现一本书册。");me:DropEsotericFromCache(story.ItemCache, 1);
elseif nR <= 16 then
me:AddMsg("[NAME]打开石匣,竟然在其中发现一门神通。");me:DropEsotericFromCache(story.ItemCache2, 1);
elseif nR <= 20 then
me:AddMsg("[NAME]打开石匣,竟然在其中发现一本秘籍。");me:DropRandomItem("Esoterica");
else
if world:IsGongUnLocked("Gong_5_Tu") == false then
me:AddMsg("[NAME]打开石匣,瞬间一道七彩光华直冲云霄,这平凡无奇的石匣中竟然藏有一本上古失传的功法传承。");me:UnLockGong("Gong_5_Tu");
else
me:AddMsg("[NAME]打开石匣,竟然在其中发现一门神通。");me:DropEsotericFromCache(story.ItemCache2, 1);
end
end
]]>
</OKResult>
</li>
</Selections>
</Story>上面这段代码是自带的一个开箱事件(未修改过的),古旧石匣是这类事件中比较复杂的一个。有许多的条件判定,有随机性。
<Story Name="Story_Item_LunHui_Box2" Parent="BaseFillingStory">
<DisplayName>神符匣</DisplayName>
<Desc>杨树随身携带的神符匣,其中藏有一张绝品符咒。</Desc>
<Kind>None</Kind>
<Selections>
<li>
<Display>打开</Display>
<OKResult>
<![CDATA[
me:AddMsg("[NAME]开了神符匣,取出其中的物件。");me:DropSpell(2, "", 1);story:RemoveBindItem();
]]>
</OKResult>
</li>
</Selections>
</Story>上面这段代码也是自带的一个开箱事件(未修改过的),神符匣或者太一神匣都是这类事件,单一性必然发生。
还有一种匣子就是想要做成 选A得C,选B得D 但是,我还没有在游戏里遇到过,先知道有这么回事。
于是已经存在的开箱事件基本就是 电脑替你选 你自己选 你没得选 三种情况。
在制作MOD的过程中,需要哪一种就选哪一种。我这里选择了非欧鉴定——电脑替你选,来制作一个事件。
每一次开箱都是爽到不能呼吸的感觉,貌似跟十连抽一样上瘾。基于第一中情况制作单独MOD文件:放到Settings\MapStories\下,名字随便起,后缀名.xml
<Stories><List>
<Story Name="Story_Item_ShenFuBox1" Parent="BaseFillingStory">
<DisplayName>逍遥神符匣</DisplayName>
<Desc>逍遥仙府失落在世俗的神符匣,其中装有一张绝品符咒。</Desc>
<Kind>None</Kind>
<Selections>
<li>
<Display>打开</Display>
<OKResult>
<![CDATA[
story:RemoveBindItem();
local nR = me:RandomInt(1, 24);
if nR <= 3 then
me:AddMsg("[NAME]打开石匣,这平凡无奇的石匣中竟然藏有一张上古失传的符箓。");me:DropSpell(2, "Spell_Zizaiqinshen", 1);
elseif nR <= 6 then
me:AddMsg("[NAME]打开石匣,这平凡无奇的石匣中竟然藏有一张上古失传的符箓。");me:DropSpell(2, "Spell_Biguqubing", 1);
elseif nR <= 9 then
me:AddMsg("[NAME]打开石匣,这平凡无奇的石匣中竟然藏有一张上古失传的符箓。");me:DropSpell(2, "Spell_Changledishen", 1);
elseif nR <= 12 then
me:AddMsg("[NAME]打开石匣,这平凡无奇的石匣中竟然藏有一张上古失传的符箓。");me:DropSpell(2, "Spell_Yinyangshenxing", 1);
elseif nR <= 15 then
me:AddMsg("[NAME]打开石匣,这平凡无奇的石匣中竟然藏有一张上古失传的符箓。");me:DropSpell(2, "Spell_Wenwushenshi", 1);
elseif nR <= 18 then
me:AddMsg("[NAME]打开石匣,这平凡无奇的石匣中竟然藏有一张上古失传的符箓。");me:DropSpell(2, "Spell_Shenqintiangong", 1);
elseif nR <= 21 then
me:AddMsg("[NAME]打开石匣,这平凡无奇的石匣中竟然藏有一张上古失传的符箓。");me:DropSpell(2, "Spell_Shennongfengrao", 1);
elseif nR <= 22 then
me:AddMsg("[NAME]打开石匣,瞬间一道七彩光华直冲云霄,这平凡无奇的石匣中竟然藏有一张上古失传的传承符箓。");me:DropSpell(2, "Spell_BeidouSevenStar", 1);
else
me:AddMsg("[NAME]打开石匣,瞬间一道七彩光华直冲云霄,这平凡无奇的石匣中竟然藏有一张上古失传的传承符箓。");me:DropSpell(2, "Spell_NandouCrossStar", 1);
end
]]>
</OKResult>
</li>
</Selections>
</Story>
</List></Stories>Story_Item_ShenFuBox1是事件针对物品箱子Item_ShenFuBox1发生的,下面是事件的名字和描述,<kind>行是类型。
然后就是打开动作,打开下面就是决定这个箱子的打开方式。
me:RandomInt(1, 24); 是随机数,买彩票。就是从1到24由电脑随机抽一个数,判定在elseif nR <= * then的哪一个区间,
比如抽到了7,判定if nR <= 3 then不包括7,那么下一行elseif nR <= 6 then,还不包括,
继续下一行elseif nR <= 9 then,发现属于这个范围,那么就执行elseif nR <= 9 then这条下面的事件:
me:AddMsg("[NAME]打开石匣,这平凡无奇的石匣中竟然藏有一张上古失传的符箓。");me:DropSpell(2, "Spell_Changledishen", 1);
由于本人没有学过编程 me:AddMsg 大概意思是增加信息(猜测)me:DropSpell 我理解为:玩家掉落符咒(级别,名字,品质)
于是就掉落名为Spell_Changledishen,材料为2级的100品质符咒
这个开箱的过程就结束了。但是,留下了三个问题:
1事件已经存在了,但箱子还不存在,箱子是什么属性的。
2创造了箱子以后,在游戏里我们得到这个箱子,即箱子是哪里来的?
3箱子的装什么的什么,装什么样的符咒。
PART 2 创造一个物品
Settings\ThingDef文件夹下都是物品相关的信息,包括改出来没有用的天蚕丝,及其他还没有开发或着放弃开发的物品,跑远了,收。
Settings\ThingDef\Item\Item_System.xml文件有之前作为参考的箱子的属性
这部分不用多赘述,你使用什么样事件的箱子,那么你创造箱子的也要使用该类型的定义。
这部分相对比较简单。就是使你的箱子与事件保持一致。名字和描述也要保持一致。
然后制作单独MOD文件:放到Settings\ThingDef\Item\下,名字随便起,后缀名.xml
<ThingDefs><List>
<ThingDef Type="Item" Name="Item_ShenFuBox1" Parent="MaterialBase">
<ThingName>逍遥神符匣</ThingName>
<MaxStack>1</MaxStack>
<TexPath>res\Sprs\object\object_shixiazi01</TexPath>
<Desc>逍遥仙府失落在世俗的神符匣,其中装有一张绝品符咒。</Desc>
<Beauty>1</Beauty>
<Rate>9</Rate>
<ElementKind>None</ElementKind>
<Tags>
<Tag Name="_StoneBox" Level="1"/>
</Tags>
<Flammability>
<Flammability>0</Flammability>
</Flammability>
<Item Lable="Other">
<FabaoSuffix>匣</FabaoSuffix>
</Item>
<StoryBnts>
<li Name="打开" Desc="试着打开这个匣子" Story="Story_Item_ShenFuBox1" Cost="5" Icon="res/Sprs/ui/icon_hand"/>
</StoryBnts>
</ThingDef>
</List></ThingDefs>
这部分就结束了。
PART 3 箱子哪里来的
箱子可以从好多渠道获得,但是我还不想和原有事物冲突,于是从历练入手,什么样的东西我都可以拥有
Settings\World\是“天下”这部分的配置文件,\Settings\World\Places是地点文件
地点分为三级Level1.xml,Level2.xml,Level3.xml这三部分。这三部分都是系统原有地点,实际上地图还是很大的
给我们添加新的历练地点提供了方便,也使我们的MOD不与原文件冲突
<Places><List>
<Place Name="Place_BirthPlace15" Parent="Place_Level2Base">
<Location X="1272" Y="667"/>
<Icon>res/Sprs/map/map_shan01</Icon>
<DisplayName>仙府旧址</DisplayName>
<Desc>昔日逍遥仙府坐落于此,至今只留下一片废弃的遗迹,据说是仙府缔造者把仙府整体传送到了仙界。</Desc>
<UnLocked>1</UnLocked>
<Events>
<li Name="HighFind" Rate="1"/>
</Events>
<HighProduce>
<li>
<ThingDef>Item_ShenFuBox1</ThingDef>
<Count>1</Count>
<Rate>0.6</Rate>
</li>
</HighProduce>
</Place>
</List></Places>
<Place Name="Place_BirthPlace15" Parent="Place_Level2Base">中Place_BirthPlace15是出生地点的意思,游戏本体自带4个出生历练点,我们这里编成5号。
<Location X="1272" Y="667"/>这行是这个地点的坐标。选择两个出生历练点或自己门派与出生历练点的中间,那个地方一定是没有新的历练地点的
<Icon>res/Sprs/map/map_shan01</Icon>这个是在大地图上的图标。下面是地点名字与描述。然后,<UnLocked>1</UnLocked>是否解锁然后是比较重要的:
<Events>
<li Name="HighFind" Rate="1"/>
</Events>
发生什么样的事件,这里设置的事件是高级探索,事件可以查看Settings\MapStories下的文件进行设定
<HighProduce>
<li>
<ThingDef>Item_ShenFuBox1</ThingDef>
<Count>1</Count>
<Rate>0.6</Rate>
</li>
</HighProduce>
这段是事件的结果HighFind对的HighProduce,Find对Produce。等待,于是我们得到了在创造的地点上历练得到了之前想要的箱子Item_ShenFuBox1。
<Count>1</Count>是数量 <Rate>0.6</Rate>是几率
PART 4 自定义符咒
这部分内容可以参考http://bbs.blacksheepgame.com/thread-5838195-1-1.html的帖子,再次感谢
要注意编辑符咒的格式,空格和TAB的多一个少一个会影响能否正常使用。
这是一种思路的尝试,并不是成品,不是伸手党的福音
最后,希望能给各位想要做“好故事”的MOD制作者有所帮助