86302786 发表于 2023-8-28 23:02

【教程】自制mod的教程,初学,分享。

*看论坛一直没有,简单的分享一下如何制作mod,因为也是初学者,不保证全都能说对。

一、制作mod需要的工具
1、ExportTool
用于解包游戏文件,相当于游戏专用的winrar。
作者网址:https://github.com/Norbyte/lslib/releases
目前解包data目录下的Shared.pak、Gustav.pak两个文件基本就能满足需求。
2、文本搜索工具,anytxt searcher,用于定位技能所在的文件。
3、论坛大佬写的博得3查询工具,用于查各技能的名称。
https://bbs.blacksheepgame.com/thread-6442806-1-1.html
4、论坛内的斧子和ct,用于添加技能状态等。

二、mod作用原理
1、游戏在启动时,会调用mod里的指令。
2、如果指令名相同,mod的指令会覆盖原指令。
3、游戏会检查指令是否符合指令逻辑,不符合的话,大概率会卡在游戏读取。

三、如何被mod管理器读取
1、mod内文件树如下图,“mod name”,就是你要做的mod名称。

\Localization\English\mod name.xml,是各种描述文件,比如技能名、状态名等,英文mod的汉化就是在这里完成。
\Mods\mod name\meta.lsx,mod管理工具所需要的文件。
\Public\mod name\Stats\Generated\Data\mod name.txt,是mod本体文件。
2、meta.lsx的注意事项
meta.lsx内容如下,需要注意的地方会加入红色注释。
<?xml version="1.0" encoding="UTF-8"?>
<save>
<version major="4" minor="0" revision="0" build="77"/>
<region id="Config">
<node id="root"><children>                <node id="Dependencies"/>
                <node id="ModuleInfo">
                  <attribute id="Author" type="LSWString" value="yourname"/>          #作者名,会显示在mod管理器中#
                  <attribute id="CharacterCreationLevelName" type="FixedString" value=""/>
                  <attribute id="Description" type="LSWString" value=""/>
                  <attribute id="Folder" type="LSWString" value="mod name"/>         #路径名,需要和名为mod name的文件夹相同,如\Mods\mod name\和\Public\mod name#                  <attribute id="GMTemplate" type="FixedString" value=""/>
                  <attribute id="LobbyLevelName" type="FixedString" value=""/>
                  <attribute id="MD5" type="LSString" value=""/>
                  <attribute id="MainMenuBackgroundVideo" type="FixedString" value=""/>
                  <attribute id="MenuLevelName" type="FixedString" value=""/>
                  <attribute id="Name" type="FixedString" value="mod name"/>
                  <attribute id="NumPlayers" type="uint8" value="4"/>
                  <attribute id="PhotoBooth" type="FixedString" value=""/>
                  <attribute id="StartupLevelName" type="FixedString" value=""/>
                  <attribute id="Tags" type="LSWString" value=""/>
                  <attribute id="Type" type="FixedString" value="Add-on"/>         #应该是mod的类型,这里是增加额外的内容的意思#
                  <attribute id="UUID" type="FixedString" value="26a06ca3-d933-4150-b15d-8ca702c2a411"/>   #uuid标识,唯一代号,随便编一个或者用bg3-modders-multitool生成一个#                  <attribute id="Version" type="int32" value="268435456"/>
                  <children>
                        <node id="PublishVersion">
                            <attribute id="Version" type="int32" value="268435456"/>
                        </node>
                        <node id="Scripts"/>
                        <node id="TargetModes">
                            <children>
                              <node id="Target">
                                    <attribute id="Object" type="FixedString" value="Story"/>
                              </node>
                            </children>
                        </node>
                  </children>
                </node>
            </children>
      </node>
    </region>
</save>
四、修改实操举例说明
1、想实现的功能为,以“魅惑人类”为原型,新增一个法术“倾国倾城”,效果为可魅惑多人,且目标一致保持被魅惑状态。
2、使用ExportTool解包游戏目录\Baldurs Gate 3\Data下Shared.pak、Gustav.pak两个文件。

设置好目录后,按Extract Package解包。
3、是用数据查询软件找到“魅惑人类”的英文技能名“Target_CharmPerson”。

这里会出现很多类似的技能名,实际上就是同一种技能的变种,我们做的mod也是如此。
在查找技能名时,不带后缀的那个就是我们要找的目标。
4、用anytxt searcher查找该技能名所在的文件,软件需要先建立索引。

找到指令为new entry "Target_CharmPerson"的文件。
在这里为\Public\Shared\Stats\Generated\Data\Spell_Target.txt
5、打开\mod name\Public\mod name\Stats\Generated\Data\mod name.txt文件。
将new entry "Target_CharmPerson"整段命令复制进去。
6、先解释下各行指令的意义。
new entry "Target_CharmPerson"            #指令名称#
type "SpellData"                                    #数据类型,这里指的是本条指令是相关于一个技能的数据# data "SpellType" "Target"                        #技能类型,这里指的是有目标型的法术,意味着它需要一个目标来施放#data "Level" "1"                                     #技能级别,这里指的是1环法术#
data "SpellSchool" "Enchantment"         #技能流派,这里指的是惑控流派#
data "TargetRadius" "18"                        #技能影响的范围,也就是施法者与目标的距离。#data "SpellRoll" "not SavingThrow(Ability.Wisdom, SourceSpellDC(),AdvantageOnCharmPerson())"               #用于判定技能成功的骰判条件,这里使用了一个条件,表示如果目标没有通过智力豁免检定(根据施法者的法术 DC 和魅惑时的优势情况),则法术会成功。#data "SpellSuccess" "ApplyStatus(CHARMED,100,10)"                #技能成功后,目标被施加 "CHARMED"(被魅惑)状态,持续10回合。# data "TargetConditions" "not Item() and not Self() and Character() and Tagged('HUMANOID') and not Tagged('UNDEAD') and not (not Player(context.Source) and IsCrowdControlled(context.Target)) "             #描述了施放技能的目标条件。这里的条件是目标必须是"Character"(角色)、不是"Ally"(盟友)、不是不死人。#data "Icon" "Spell_Enchantment_CharmPerson"         #使用的法术图标。# data "DisplayName" "hc3df2c93gdd42g4c64g82faga4c5cd24f049;1"                #显示在游戏中的法术名称。# data "Description" "h50cad90fg8a5eg486cg85e3g4b0b969ceedc;7"               #法术的描述。# data "ExtraDescription" "h4c9bff86g74d3g443cg8db8gb5e515776d71;4"                #额外的法术描述。# data "TooltipAttackSave" "Wisdom"                #显示在鼠标悬停时的攻击或豁免描述。# data "TooltipStatusApply" "ApplyStatus(CHARMED,100,10)"                #显示在鼠标悬停时的状态应用描述。# data "TooltipUpcastDescription" "04cc3403-f67a-4747-b49e-a1802cc7a6ad"                #这个数据定义了在游戏界面中,当玩家通过升级法术时,鼠标悬停在法术上时显示的升级描述。# data "TooltipPermanentWarnings" "967064bf-5cdf-44c7-a17c-86924aa04ae7;676ef361-c11d-4e5a-bcae-3b0332cbebf5"                #这个数据定义了在游戏界面中,当玩家查看法术描述时可能显示的永久警告信息。# data "CastSound" "Spell_Cast_Control_CharmPerson_L1to3"                #施法的声音效果。# data "TargetSound" "Spell_Impact_Control_CharmPerson_L1to3"                #法术影响目标时的声音效果。# data "VocalComponentSound" "Vocal_Component_CharmPerson"                #声音组件的声音效果。# data "CastTextEvent" "Cast"                #施法时显示的文本事件。# data "CycleConditions" "Character() and not Ally() and not Dead()"                #描述了循环施法条件。# data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:1"                #使用法术的消耗。# data "SpellAnimation" "554a18f7-952e-494a-b301-7702a85d4bc9,,;,,;af94aac1-d8eb-4ccb-9520-694ade11b61c,,;f5db4001-b136-4c48-9aa4-026c4a7dd3b7,,;22dfbbf4-f417-4c84-b39e-2039315961e6,,;,,;5bfbe9f9-4fc3-4f26-b112-43d404db6a89,,;,,;,,"                #法术动画效果。# data "VerbalIntent" "Control"                #法术的口头意图。# data "SpellFlags" "HasVerbalComponent;HasSomaticComponent;IsSpell;HasHighGroundRangeExtension;IgnorePreviouslyPickedEntities"                #法术的标志,如是否有口头组件、手势组件等。# data "RechargeValues" "5-6"                #法术的冷却回合范围。# data "HitAnimationType" "None"                #法术命中后的动画效果。# data "MemoryCost" "1"                #使用法术的记忆消耗。# data "PrepareEffect" "d7ff6074-0dee-46eb-84c2-fed6118b0cc3"                #施法准备效果。# data "CastEffect" "238adc5b-64e5-474a-b5fa-c4c5d032a21b"                #施法效果。# data "TargetEffect" "5cd08691-b441-43e1-b9d7-14668e4affa5"                #目标效果。# data "BeamEffect" "ef76e96c-3b6e-41f1-8d62-7c8813ca7624"                #法术的光束效果。# 7、修改,红字为修改部分,绿色为需要删除的部分。
new entry "Target_CharmPerson_qingguoqingcheng"
type "SpellData"
data "SpellType" "Target"
data "Level" "1"
data "SpellSchool" "Enchantment"
data "TargetRadius" "90"                #5倍施法距离#
data "SpellRoll" "not SavingThrow(Ability.Wisdom, SourceSpellDC(),AdvantageOnCharmPerson())"               #删掉语句,不做豁免判断#
data "SpellSuccess" "ApplyStatus(CHARMED,100,10)"             #删掉语句,不做豁免判断#data "SpellProperties" "ApplyStatus(CHARMED,100,-1)"                   #增加data "SpellProperties"语句,意为法术作用效果, "ApplyStatus(CHARMED,100,-1)" 为给目标添加CHARMED状态,“-1”即为永久#data "AmountOfTargets" "9"            #新增条目,意思为可以最多选择9个目标,相当于法术升环#data "TargetConditions" "not Item() and not Self() and Character() and Tagged('HUMANOID') and not Tagged('UNDEAD') and not (not Player(context.Source) and IsCrowdControlled(context.Target)) "                #删掉绿的,即可魅惑非人生物,其他类型为enemy()、 party()、ally()等,用and连接,前面加not即为“非”,比如 not self()就是不包括自己#
data "Icon" "Spell_Enchantment_CharmPerson"
data "DisplayName" "qingguoqingcheng;1"                 #更改技能名称,第8步讲#
data "Description" "qingguoqingcheng_Des;2"            #更改技能名称,第8步讲#   data "ExtraDescription" "h4c9bff86g74d3g443cg8db8gb5e515776d71;4"
data "TooltipAttackSave" "Wisdom"
data "TooltipStatusApply" "ApplyStatus(CHARMED,100,-1)"
data "TooltipUpcastDescription" "04cc3403-f67a-4747-b49e-a1802cc7a6ad"
data "TooltipPermanentWarnings" "967064bf-5cdf-44c7-a17c-86924aa04ae7;676ef361-c11d-4e5a-bcae-3b0332cbebf5"
data "CastSound" "Spell_Cast_Control_CharmPerson_L1to3"
data "TargetSound" "Spell_Impact_Control_CharmPerson_L1to3"
data "VocalComponentSound" "Vocal_Component_CharmPerson"
data "CastTextEvent" "Cast"
data "CycleConditions" "Character() and not Ally() and not Dead()"
data "UseCosts" "ActionPoint:1;SpellSlotsGroup:1:1:1"             #删掉消耗,即可无限使用此技能#
data "SpellAnimation" "554a18f7-952e-494a-b301-7702a85d4bc9,,;,,;af94aac1-d8eb-4ccb-9520-694ade11b61c,,;f5db4001-b136-4c48-9aa4-026c4a7dd3b7,,;22dfbbf4-f417-4c84-b39e-2039315961e6,,;,,;5bfbe9f9-4fc3-4f26-b112-43d404db6a89,,;,,;,,"
data "VerbalIntent" "Control"
data "SpellFlags" "HasVerbalComponent;HasSomaticComponent;IsSpell;HasHighGroundRangeExtension;IgnorePreviouslyPickedEntities"
data "RechargeValues" "5-6"                   #删掉CD#
data "HitAnimationType" "None"
data "MemoryCost" "1"
data "PrepareEffect" "d7ff6074-0dee-46eb-84c2-fed6118b0cc3"          #可以换成更炫酷的法术起手式,用其他技能的同类数据代替这条即可,下同#
data "CastEffect" "238adc5b-64e5-474a-b5fa-c4c5d032a21b"
data "TargetEffect" "5cd08691-b441-43e1-b9d7-14668e4affa5"
data "BeamEffect" "ef76e96c-3b6e-41f1-8d62-7c8813ca7624"改到此处,就等于新创造了一个名为“Target_CharmPerson_qingguoqingcheng”的技能,保存退出。
8、为“Target_CharmPerson_qingguoqingcheng”赋名,第七步紫色部分。
用记事本打开\Localization\Englishn\mod name.xml(自建也可以,但随便找一个小mod解包更改比较方便),添加下列语句。
意思是定义"qingguoqingcheng"为倾国倾城,"qingguoqingcheng_Des" 为靠你的姿色颠倒众生。
对应第7步的紫色部分。
<?xml version="1.0" encoding="utf-8"?>
<contentList>
        <content contentuid="qingguoqingcheng" version="1">倾国倾城</content>
        <content contentuid="qingguoqingcheng_Des" version="1">靠你的姿色颠倒众生。</content>

</contentList>9、保存文件,然后打开ExportTool,将mod name.xml封包为mod name.lcoa。

10、封包mod。

注意version是博德3,compression是no compression(不压缩)。
11、导入试验。

mod添加,成功。
12、进入游戏测试,用斧子添加技能Target_CharmPerson_qingguoqingcheng。



游戏测试,成功。
13、修改的基本原理应该都讲得差不多了。
其他的还需要各位自己摸索。





usay 发表于 2023-8-28 23:22

支持一下

THEROWE 发表于 2023-8-29 00:44

本帖最后由 THEROWE 于 2023-8-29 00:50 编辑

三、如何被mod管理器读取
1、mod内文件树如下图,“mod name”,就是你要做的mod名称。

\Localization\English\mod name.xml,是各种描述文件,比如技能名、状态名等,英文mod的汉化就是在这里完成。
\Mods\mod name\meta.lsx,mod管理工具所需要的文件。
\Public\mod name\Stats\Generated\Data\mod name.txt,是mod本体文件。

请问这一步的文件是在哪里看?

治神天狼 发表于 2023-8-29 01:37

np大佬,感谢教程

zhangyining1 发表于 2023-8-29 09:07

我想知道类似于控制人类这种只有单一目标生效的专注法术,应该如何在保持专注的前提下对多个目标生效

zhangyining1 发表于 2023-8-29 09:08

参考高级隐身术长休无专注,有的时候真的不方便,自己属性啊,带的mod戒指,隐蔽豁免太高,npc干脆找你队友对话去了。

86302786 发表于 2023-8-29 11:09

THEROWE 发表于 2023-8-29 00:44
三、如何被mod管理器读取
1、mod内文件树如下图,“mod name”,就是你要做的mod名称。



自建也可以,最方便的就是找个mod解包。

86302786 发表于 2023-8-29 11:29

zhangyining1 发表于 2023-8-29 09:07
我想知道类似于控制人类这种只有单一目标生效的专注法术,应该如何在保持专注的前提下对多个目标生效 ...

data "AmountOfTargets" "9"这一行就是同时对多目标生效的。隐形术加上这条,就可以一次隐形全队。


更简单的办法,是加上这两行,
data "AreaRadius" "18"
data "TargetConditions" "Ally()"
技能就会变成一个范围魔法,作用效果为盟友,点一下全队隐形。

不过同时需要删除,data "TargetRadius" "90" 和data "AmountOfTargets" "9" 。
就是说取消单体目标选择,



但若想要分别用几次技能作用几个人,那就要删掉专注了。


删掉专注的方法是,
找到data "SpellFlags" 这一行的"IsConcentration",删掉这个标签就可以。



圆梦时刻 发表于 2023-8-29 13:39

好教程贴,支持下

usay 发表于 2023-8-29 14:21

本帖最后由 usay 于 2023-8-29 15:15 编辑

如果要改为可复活敌人包括非人类生物,要如何添加呢?要怎么修改才有效呢?
new entry "Teleportation_Resurrection"
type "SpellData"
data "SpellType" "Teleportation"
data "TargetRadius" "9"
data "AreaRadius" "9"
data "LineOfSightFlags" "AddSourceHeight"
data "Height" "0"
data "Acceleration" "0"
data "TargetConditions" "not Character()"
data "OriginSpellProperties" "RegainHitPoints(1); Resurrect(100,1);RestoreResource(Movement, 100%, 0);UseActionResource(ActionPoint,100%,0);UseActionResource(BonusActionPoint,100%,0);ApplyStatus(RESURRECTING, 100, 1)"
data "OriginTargetConditions" "not Tagged('BLOCK_RESURRECTION') and not Self() and not Item() and (Dead() or IsDowned() or HasStatus('PETRIFIED')) and Tagged('PLAYABLE')"
data "TeleportSelf" "No"
data "TeleportSurface" "No"
data "Icon" "Skill_Air_Teleportation"
data "DisplayName" "h7b0dbfb5g2729g476bg92e7gbe8148deb3fd;1"
data "PreviewCursor" "Cast"
data "CastTextEvent" "Cast"
data "CycleConditions" "not Tagged('BLOCK_RESURRECTION') and not Self() and not Item() and Dead() and Player()"
data "UseCosts" "ActionPoint:1"
data "SpellAnimation" "414bbf02-2918-4f01-83fb-1ddc7a588d88,,;,,;7abe77ed-9c77-4eac-872c-5b8caed070b6,,;cb171bda-f065-4520-b470-e447f678ba1f,,;0c5dcc83-fa78-41da-b6a5-440b5ea30936,,;,,;bea988a0-2ec5-40d8-a67e-ffbd7454bc53,,;,,;,,"
data "SpellFlags" "IsSpell;RangeIgnoreVerticalThreshold;HasVerbalComponent;HasSomaticComponent;IgnorePreviouslyPickedEntities;CannotTargetItems"
data "VerbalIntent" "Healing"
data "PrepareEffect" "1162f3ba-ed65-4cd0-9e1f-5882414c0097"
data "CastEffect" "ab2e7fd5-7785-41ba-84b0-5d0c0b115757"
data "DisappearEffect" "7d410cdd-7de8-49ae-b232-5ca6a04b5220"
data "SpellSoundMagnitude" "Big"
data "Sheathing" "Sheathed"

zhangyining1 发表于 2023-8-29 15:00

本帖最后由 zhangyining1 于 2023-8-29 15:33 编辑

86302786 发表于 2023-8-29 11:29
data "AmountOfTargets" "9"这一行就是同时对多目标生效的。隐形术加上这条, ...
晚上我有空的时候测试一下,但人类控制术似乎不单单是多个目标施法就能解决的,
我记得幻惑法师有了分裂惑控(惑控目标+1)后,
用控制人类,虽然可以选中2个单位,但是总是最后一个生效,另一个无效,相当于对2个人每个人都释放了控制人类,但后释放的控制人类会导致前面释放的控制人类失效

我想要实现的功能是,保持人类施法专注的前提下,对于多个目标生效

THEROWE 发表于 2023-8-29 16:53

86302786 发表于 2023-8-29 11:09
自建也可以,最方便的就是找个mod解包。

十分感谢,解包mod的话也是用ExportTool就可以了吗

usay 发表于 2023-8-29 18:00

usay 发表于 2023-8-29 14:21
如果要改为可复活敌人包括非人类生物,要如何添加呢?要怎么修改才有效呢?
new entry "Teleportation_Resu ...

而且修改了一两条代码后卡在100加载也不知道哪里出了问题

86302786 发表于 2023-8-29 21:23

usay 发表于 2023-8-29 14:21
如果要改为可复活敌人包括非人类生物,要如何添加呢?要怎么修改才有效呢?
new entry "Teleportation_Resu ...

主要影响的是这两句:
1、data "OriginTargetConditions" "not Tagged('BLOCK_RESURRECTION') and not Self() and not Item() and (Dead() or IsDowned() or HasStatus('PETRIFIED')) and Tagged('PLAYABLE')"
每一个标签的意思如下:
not Tagged('BLOCK_RESURRECTION'):排除了被标记为'BLOCK_RESURRECTION'的目标,这意味着无法对这些目标使用法术,即这些目标不能被复活。
not Self():排除了施法者自己作为目标,避免法术对自身生效。
not Item():排除了物品作为目标,确保法术只能对生物目标生效。
(Dead() or IsDowned() or HasStatus('PETRIFIED')):这是一个组合条件,表示目标需要满足以下三种状态之一:已死亡、已倒地或被石化。
Tagged('PLAYABLE'):目标必须被标记为'PLAYABLE',表示目标是可以控制的玩家角色。



2、data "CycleConditions" "not Tagged('BLOCK_RESURRECTION') and not Self() and not Item() and Dead() and Player()"
not Tagged('BLOCK_RESURRECTION'):排除了被标记为'BLOCK_RESURRECTION'的目标,这表示法术无法在循环中继续对这些目标生效,即这些目标不能被复活。
not Self():排除了施法者自己作为目标,确保法术在循环中不会对自身生效。
not Item():排除了物品作为目标,确保法术只能在循环中对生物目标生效。
Dead():目标必须处于已死亡状态,即已经死亡。
Player():目标必须是玩家角色,这表示法术只能在循环中对玩家角色进行复活。



删掉这两个标签应该就可以了。

usay 发表于 2023-8-29 21:46

86302786 发表于 2023-8-29 21:23
主要影响的是这两句:
1、data "OriginTargetConditions" "not Tagged('BLOCK_RESURRECTION') and not Se ...

感激不尽!

THEROWE 发表于 2023-8-29 22:55

楼主你好,方便把你改的这个mod文件上传一下吗,我不知道为什么技能描述改不过来,还是魅惑人类原本的描述,我想直接用你的改一改技能效果之类的,感激不尽

usay 发表于 2023-8-30 00:50

你好,这是我修改的控制不死生物,现在可以控制所有,但是我想让他控制多个目标,即使加上去data "AmountOfTargets" "9" ,也会在第二个目标选择后取消第一个,这个有办法解决吗,而且被控制的目标不会跟随施法者。
new entry "Target_Control_Anyone"
type "SpellData"
data "SpellType" "Target"
data "TargetRadius" "20"
data "TargetConditions" "not Item() and not Dead() and not Self() and Character())
data "SpellProperties" "ApplyStatus(CONTROL_UNDEAD,100,-1)"
data "Icon" "Action_Paladin_ControlUndead"
data "DisplayName" "Control_Anyone;1"
data "Description" "Control_Anyone_Des;3"
data "CastSound" "Spell_Cast_Paladin_Oathbreaker_ControlUndead_L1to3"
data "TargetSound" "Spell_Impact_Paladin_Oathbreaker_ControlUndead_L1to3"
data "PreviewCursor" "Cast"
data "CastTextEvent" "Cast"
data "SpellAnimation" "83fb0115-57dd-4cce-ac40-87182b2865e2,,;,,;2da41f71-3471-4ac8-a268-63983acbe88c,,;70c2d89d-98bd-4462-82e2-8e30e9c727be,,;42014429-21fb-412d-bba6-0f8216f5e502,,;,,;43fa5e31-ad7e-47a9-9ca2-f6d40ba8e1cf,,;,,;,,"
data "VerbalIntent" "Control"
data "SpellStyleGroup" "Class"
data "PrepareEffect" "c218f05b-1e12-4298-beff-e4d33a5fa5a5"
data "CastEffect" "48da415b-91d2-49e9-8192-9d1e434b9866"
data "SpellSoundMagnitude" "Normal"

weluoluo 发表于 2023-8-30 09:55

楼主你好,想问一个和有点无关的问题哈,就是我下了一个mod里面有些装备的效果是增加额外伤害,就是每一发奥术飞弹都会有额外伤害类型。我自己用CE只能改成武器或者徒手加伤害,这个额外伤害怎么搞都弄不上去,你知道这个该怎么弄吗‘

86302786 发表于 2023-8-30 19:04

usay 发表于 2023-8-30 00:50
你好,这是我修改的控制不死生物,现在可以控制所有,但是我想让他控制多个目标,即使加上去data "AmountOf ...

问题出在“CONTROL_UNDEAD”这个状态里面的“SG_Dominated”,是唯一的。
改成其他组,比如“SG_None”,即可把多个对象变成自己人,但无法跟随。
目前还没找到怎么修改“SG_Dominated”限制的方法。

86302786 发表于 2023-8-30 19:05

weluoluo 发表于 2023-8-30 09:55
楼主你好,想问一个和有点无关的问题哈,就是我下了一个mod里面有些装备的效果是增加额外伤害,就是每一发 ...

ce不太清楚,不好意思。

zhangyining1 发表于 2023-8-30 19:14

86302786 发表于 2023-8-30 19:04
问题出在“CONTROL_UNDEAD”这个状态里面的“SG_Dominated”,是唯一的。
改成其他组,比如“SG_None”, ...

现在出了<可招募所有NPC或生物为队友>mod
大佬有兴趣参考一下吗?

usay 发表于 2023-8-30 19:25

86302786 发表于 2023-8-30 19:04
问题出在“CONTROL_UNDEAD”这个状态里面的“SG_Dominated”,是唯一的。
改成其他组,比如“SG_None”, ...

牛逼了

usay 发表于 2023-8-30 19:41

请问如果要是想要改成可以复活任何人但是不要有物体怎么改呢,我删除了那两个词条data "OriginTargetConditions" "not Tagged('BLOCK_RESURRECTION') and not Self() and not Item() and (Dead() or IsDowned() or HasStatus('PETRIFIED')) and Tagged('PLAYABLE')"和data "CycleConditions" "not Tagged('BLOCK_RESURRECTION') and not Self() and not Item() and Dead() and Player()以后,复活的时候物品也可以移动,我的理解是这还有一种瞬移功能。
new entry "Teleportation_Resurrection"
type "SpellData"
data "SpellType" "Teleportation"
data "TargetRadius" "9"
data "AreaRadius" "9"
data "LineOfSightFlags" "AddSourceHeight"
data "Height" "0"
data "Acceleration" "0"
data "TargetConditions" "not Character()"
data "OriginSpellProperties" "RegainHitPoints(1); Resurrect(100,1);RestoreResource(Movement, 100%, 0);UseActionResource(ActionPoint,100%,0);UseActionResource(BonusActionPoint,100%,0);ApplyStatus(RESURRECTING, 100, 1)"
data "OriginTargetConditions" "not Tagged('BLOCK_RESURRECTION') and not Self() and not Item() and (Dead() or IsDowned() or HasStatus('PETRIFIED')) and Tagged('PLAYABLE')"
data "TeleportSelf" "No"
data "TeleportSurface" "No"
data "Icon" "Skill_Air_Teleportation"
data "DisplayName" "h7b0dbfb5g2729g476bg92e7gbe8148deb3fd;1"
data "PreviewCursor" "Cast"
data "CastTextEvent" "Cast"
data "CycleConditions" "not Tagged('BLOCK_RESURRECTION') and not Self() and not Item() and Dead() and Player()"
data "UseCosts" "ActionPoint:1"
data "SpellAnimation" "414bbf02-2918-4f01-83fb-1ddc7a588d88,,;,,;7abe77ed-9c77-4eac-872c-5b8caed070b6,,;cb171bda-f065-4520-b470-e447f678ba1f,,;0c5dcc83-fa78-41da-b6a5-440b5ea30936,,;,,;bea988a0-2ec5-40d8-a67e-ffbd7454bc53,,;,,;,,"
data "SpellFlags" "IsSpell;RangeIgnoreVerticalThreshold;HasVerbalComponent;HasSomaticComponent;IgnorePreviouslyPickedEntities;CannotTargetItems"
data "VerbalIntent" "Healing"
data "PrepareEffect" "1162f3ba-ed65-4cd0-9e1f-5882414c0097"
data "CastEffect" "ab2e7fd5-7785-41ba-84b0-5d0c0b115757"
data "DisappearEffect" "7d410cdd-7de8-49ae-b232-5ca6a04b5220"
data "SpellSoundMagnitude" "Big"
data "Sheathing" "Sheathed"

usay 发表于 2023-8-30 19:42

我尝试加一下not item 但是不起作用。

goenitza 发表于 2023-8-31 09:29

请教几个小问题:1、能不能修改某个物品使用以后的效果呢?比如喝加血药剂解毒,点击睡袋学会奥术飞弹这种;2、自定义的某个法术点击以后会提示选择用不用升环,怎么取消呢?谢谢大佬

usay 发表于 2023-8-31 16:46

已经解决就是修改给我标出来那两条前后对应无比感谢!

86302786 发表于 2023-9-2 01:04

usay 发表于 2023-8-30 19:42
我尝试加一下not item 但是不起作用。

复活其实就是一种传送技能。我自己做的一个传送魔法,就是用复活改的。
可以传送人物和物品。
new entry "HX_QG_QIANLIBULIUXING"
type "SpellData"
data "SpellType" "Teleportation"
data "TargetRadius" "90"
data "AreaRadius" "90"
data "LineOfSightFlags" "AddSourceHeight"
data "Height" "0"
data "Acceleration" "0"
data "TargetConditions" "not Character()"
data "OriginSpellProperties" ""
data "OriginTargetConditions" ""
data "TeleportSelf" "no"
data "TeleportSurface" "yes"
data "Icon" "Spell_Transmutation_Blink_Teleport"
data "DisplayName" "HXQGqianlibuliuxing;1"
data "Description" "HXQGqianlibuliuxing_des;1"
data "PreviewCursor" "Cast"
data "CastTextEvent" "Cast"
data "CycleConditions" ""
data "UseCosts" ""
data "SpellAnimation" "414bbf02-2918-4f01-83fb-1ddc7a588d88,,;,,;7abe77ed-9c77-4eac-872c-5b8caed070b6,,;cb171bda-f065-4520-b470-e447f678ba1f,,;0c5dcc83-fa78-41da-b6a5-440b5ea30936,,;,,;bea988a0-2ec5-40d8-a67e-ffbd7454bc53,,;,,;,,"
data "SpellFlags" "IsSpell;RangeIgnoreVerticalThreshold;HasVerbalComponent;HasSomaticComponent"
data "VerbalIntent" "Healing"
data "PrepareEffect" "1162f3ba-ed65-4cd0-9e1f-5882414c0097"
data "CastEffect" "ab2e7fd5-7785-41ba-84b0-5d0c0b115757"
data "DisappearEffect" "7d410cdd-7de8-49ae-b232-5ca6a04b5220"
data "SpellSoundMagnitude" "Big"
data "Sheathing" "Sheathed"




usay 发表于 2023-9-2 01:12

86302786 发表于 2023-9-2 01:04
复活其实就是一种传送技能。我自己做的一个传送魔法,就是用复活改的。
可以传送人物和物品。
new entry...

我在去掉那俩词条加上限制发现可用,我知道他这个是传送的,我认为他可能是对应的就修改,然后生效了还是谢谢你!

Benny214 发表于 2023-9-3 14:11

正好可以学习,感谢楼主分享!

onepiece111 发表于 2023-9-3 15:01

context.Target.ArmorType ~= ArmorType.None
大佬是否知道这一段是什么作用,在目标条件里摘出来的。

页: [1] 2
查看完整版本: 【教程】自制mod的教程,初学,分享。