只狼游戏相关内容交流群:1102710456、667938183,欢迎热爱只狼的小伙伴加群交流。
也非常欢迎对本Wiki中尚未新建的页面进行图片或文字投稿,编辑方法参见:编辑帮助。
本Wiki包含与单机游戏《只狼:影逝二度》相关的各类内容,包括常用攻略、人物介绍、数据整理等。
只狼游戏相关内容交流群:1102710456、667938183,欢迎热爱只狼的小伙伴加群交流。
也非常欢迎对本Wiki中尚未新建的页面进行图片或文字投稿,编辑方法参见:编辑帮助。
Esdtool
阅读
2024-03-29更新
最新编辑:琐帝BNU
阅读:
更新日期:2024-03-29
最新编辑:琐帝BNU
简介
EsdTool或EsdStudio用于解包或打包只狼中的talkesdbnd文件,这些文件控制着主角与各种NPC对话互动时的功能。
用Yabber也能进行解包,但是解包出来的文件无法编辑;
使用EsdTool解包的同时,还会解码这些Python脚本文件,以便进行查看或编辑。
获取方式:
EsdTool:https://github.com/thefifthmatt/ESDLang/releases
EsdStudio:https://github.com/GompDS/ESDStudio
使用方法
初次使用时,将需要解包的talkesdbnd文件拖到“esdtool.exe”程序上,然后执行初始设置:
第一步,程序会询问游戏类型,并给出了支持的游戏列表。填入:sdt,表示要解包的是只狼的游戏文件(sdt即Shadows Die Twice);
第二步,程序会提示用UXM进行解包并询问游戏路径,填入游戏启动程序所在文件夹的路径,如F:\SteamLibrary\steamapps\common\Sekiro;
第三步,程序询问是否创建备份文件,y表示是,n表示否,按照需要进行填写;
第四步,程序会有一长串提示,涉及同时编辑多个文件,此处直接按回车即可。
然后程序就会开始进行解包(如果报错了,那么我也不知道怎么回事)。
报错的解决办法:多换几台电脑试试,或者找一个其他modder要一下解包好的原始文件。
经过测试,就算解包的时候报错无法解包,也不影响打包(也就是说从其他地方得到解包后的文件,也可以在自己电脑上打包)
打包方式:将“mxx_00_00_00-only”文件夹拖到“esdtool.exe”程序上即可自动进行打包。
由于打包时会先对代码进行编译,如果代码中出现错误的话,将编译不通过,进而无法打包。打包失败时请先检查程序。
部分词条整理
由于此类MOD编辑需要积累大量的函数指令,本Wiki中对部分词条和用法进行收录。
请善用Ctrl+F的搜索功能。
- AddTalkListData:无条件增加一个选项
- AddTalkListData(2, 15000120, 6001):为鬼佛增加休息选项,イベントテキスト.fmg文件中查找/修改/添加选项名称,15000120为休息(イベントテキスト=event text);2为TalkListEntryResult,也就是此选项要执行的功能编号
- AddTalkListDataIf:满足条件时增加一个选项
- AddTalkListDataIf(GetEventStatus(6205) == 1 or GetEventStatus(6207) == 1, 4, 15000140, 6001):为鬼佛增加“购买道具”选项,也在イベントテキスト.fmg;第一项为条件,条件返回true时显示此选项,否则不显示;第二项4为TalkListEntryResult,也就是此选项要执行的功能编号
- GetEventStatus:判断此事件进程是否开启;EventStatus即事件中的Event Flag的Status,开启返回1,关闭返回0
- GetTalkListEntryResult():获取选择某一选项后对应的功能编号
- StartWarpMenuInit(-1):启动佛渡菜单
- OpenSkillMenu():启动学习技能菜单
- OpenRegularShop(1030, 1039):启动商店页面,第一个参数关联ShopLineUP参数组,第二个不知道
- ComparePlayerInventoryNumber(3, 5100, 0, 98, 0):库存数对比,5100为“增加攻击力次数”,关联道具组,98为数量,其他参数未知,库存数大于等于输入数量时返回1,否则返回0
- OpenGenericDialog(7, action1, 1, 0, 1):弹出提示对话框(就是那种巫女正在安静的沉睡之类的显示在下面的),文本为action1所在位置,也是イベントテキスト.fmg
- PlayerEquipmentQuantityChange(3, 1200, -1 * val2):改变玩家的道具数,1200为技能点,负数表示减少道具数量
- DoesSelfHaveSpEffect(SpEffectID):判断当前talk对应的实体是否带有此特效,带有返回1,反之返回0
- GiveSpEffectToPlayer(SpEffectID):向玩家添加特效
- EquipNinjutsu(goods1):忍杀忍术位置装备goods1,对应物品组的参数(13000030-13000032的文本显示不知为何没有执行)
- GetItemHeldNumLimit(3, goods48):读取并返回此道具的持有数上限
- RequestUnlockTrophy(8):解锁成就(也就是说事件和talk都能用于解锁成就)
- GetEstusAllocation(0),返回伤药葫芦上限,0作用未知(Estus为元素瓶,因为偷懒保留了魂系命名?)
- EnableCharmHardships(n):开启或关闭困难模式,n=1开启,0关闭
- EstusAllocationUpdate(GetEstusAllocation(0) + 1, 0),伤药葫芦上限+1
- GetItemFromItemLot(lot1):赠与掉落物品参数组的东西
- CompareBonfireState(1):检查鬼佛是否激活,0未激活,1激活
- PlayCutsceneAndWarpPlayer(cgID, CutscenePlayMode.Skippable, 1002630, MapID, 0, 10000):播放CG并传送,cgID=0时不播放,第二项表示此cg可以跳过,第三项为目的地的实体ID,第四项为地图大区名,10=平田,其余未知