100品质符咒及衍生的可能性

收藏人数:178
点赞次数:919
下载次数:1763
资源大小:4.15 KB

资源介绍


详细介绍

简单简介

在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制作者有所帮助



文件说明

Mod截图

相关作品

100品质符咒及衍生的可能性 |

albert3378的其他作品

  • 100品质符咒及衍生的可能性