炉石兄弟吧 关注:41,797贴子:576,340

图文详解如何添加新卡

只看楼主收藏回复

感觉以前的添加教程太复杂,根据我个人经验,发一下添加新卡的图文教程


1楼2019-09-11 16:15回复
    首先,我们找到这个文件夹 地址:Hearthbuddy\Routines\DefaultRoutine\Silverfish\data
    然后打开这个文件


    2楼2019-09-11 16:17
    收起回复
      能否私发一份兄弟?


      IP属地:江西来自Android客户端3楼2019-09-11 17:10
      回复
        加我q?


        IP属地:江西来自Android客户端5楼2019-09-11 17:11
        收起回复
          不需要txt文件,可以直接用github上的HearthSim组织下的HearthDb项目。
          已经解析好了数据


          IP属地:上海6楼2019-09-11 17:44
          收起回复
            打开之后,
            我们看到的就是卡牌的描述,这个文件的作用大概就是让脚本知道有这张卡。
            比如在这里添加“砰砰博士”之后,脚本会在没其他牌的时候打出砰砰博士,但是这样脚本是把砰砰当成战争傀儡打出,不会带任何配合之类。


            7楼2019-09-11 18:13
            收起回复
              添加完carddb.txt之后,下一步就是添加卡牌的sim文件。sim文件就是对卡牌效果的详细描述,目的是让脚本知道这张牌该如何打出,打出的对象是什么,如编号为sim_AT_001的炎枪术,
              这里第一行的大意是这个卡能造成8点伤害,
              第二行大意是这张牌要指向一个随从使用。


              9楼2019-09-11 18:28
              回复
                sim文件的位置在 Hearthbuddy\Routines\DefaultRoutine\Silverfish\cards
                每张卡都有对应的代码,第一个下划线后的字母代表这张卡所处的版本,后面那个是版本编号。
                下一步就是编写sim文件,这一步其实很简单,就是复制粘贴,把原有的卡牌效果组合一下,甚至直接替换,比如5 5/5老牛的sim直接用大螺丝的替换然后把8改成5就行。因为很多东西都是原本脚本定义过的,直接拿来用就行,不是很推荐创新,非要创新记得备份。
                有一点要注意,那就是有的卡不止一个sim文件,比如骑士的重锤,重锤有4个不同的sim,分别代表重锤的不同形态,添加sim文件的时候,一定要把4个文件都写进去。


                10楼2019-09-11 18:52
                收起回复
                  添加完sim之后还剩最后一步,就是让脚本知道你添加了这些卡的使用方法,打开 Hearthbuddy\Routines\DefaultRoutine\Silverfish\ai\CardDB.cs 文件,在cardIDEbum的末尾(大概4600行左右) 中添加卡牌的编号


                  11楼2019-09-11 19:01
                  回复
                    然后在cardName 的末尾添加你的卡牌名称(似乎可中可英文)
                    最后在15000行左右按照
                    case cardIDEnum.卡牌编号:
                    return new Sim_卡牌编号();
                    的格式添加
                    这样就成功向兄弟添加新卡了


                    12楼2019-09-11 19:06
                    回复
                      有件事忘了说了,这样添加新卡有一点不足,那就是:你只是告诉兄弟怎么使用这张卡,但是没有告诉他什么时候该出这张卡,比如兄弟是很有可能做出 “我方场上6个10/10,然后兄弟下了个末日的”情况。
                      想要避免这种事情发生,只能是设置惩罚值或者是优先级,这些就让吧主出来教吧,太复杂了


                      13楼2019-09-11 19:21
                      收起回复
                        干货 收藏一下


                        IP属地:山东来自iPhone客户端14楼2019-09-11 19:26
                        回复
                          感谢分享,学习了


                          IP属地:广西15楼2019-09-11 19:36
                          回复
                            感谢加精,多说几句吧。
                            一张卡,他自己有一个默认的优先级(我自己定义的名称),优先级越高就越优先被打出。
                            比如你有7费,你手里一张王砰砰,一张战争傀儡,王砰砰优先级是10,战争傀儡是20,那么脚本就会打出战争傀儡而不是王砰砰。
                            设置优先级我个人发现的是三种方法:
                            1.直接设置卡牌/英雄技能的优先级,位置在 hearthbuddy\Routines\DefaultRoutine\Silverfish\behavior\control\_combo.txt,
                            书写规则为 cardvalue : 卡牌编号, 自定义优先级
                            2.设置combo优先级 ,这个其实就是设置一些简单配合,文件位置同上,如:
                            炎术士放狗 NEW1_020,20;EX1_538,150;mana:5;bonus:200;
                            铜须剑圣:LOE_077,20;CS2_181,30;mana:6;bonus 100;
                            伺机待发硬币,EX1_145,30;GAME_005,20;mana0;bonus:150;
                            书写规则为:第一张卡的编号),(打出卡的优先度);(第二张卡的编号),(优先度);mana:(总共消耗的法力值);bonus:(整套combo的优先度)
                            3.反向优先级,又叫惩罚值,惩罚值越高,越不会被打出。文件位置在:hearthbuddy\Routines\DefaultRoutine\Silverfish\ai\PenalityManager.cs ,这个就让吧主以后出攻略吧,我对这个不是很懂


                            16楼2019-09-12 10:26
                            收起回复
                              先收藏下


                              IP属地:浙江来自Android客户端17楼2019-09-12 10:37
                              回复