炉石兄弟吧 关注:41,932贴子:577,148

【教程贴】关于sim书写接口函数

只看楼主收藏回复

看到贴吧在吧主大大带领下迎来了新血液,很好幸,这个帖子是打开贴吧后,看到有人在问怎么书写sim
这里我给大家介绍一下HB常用的接口函数,
基本要求:没门槛,只要学就能会
进阶要求:懂一些编程思想和c系列或者java系列语言结构
吧主的博客里面我看着有三篇写sim类函数的,就是战吼、亡语、光环等特效(磁力、突袭冲锋啥的不是),有兴趣可以去看看,我这里主要讲如何写战吼等接口函数之中的内容


IP属地:天津1楼2020-02-07 19:21回复
    搬板凳做好


    IP属地:广东2楼2020-02-07 19:23
    收起回复


      IP属地:江苏来自iPhone客户端3楼2020-02-07 19:27
      收起回复
        首先说一下sim接口函数吧,和吧主大大博客一样,以1.17版本为样板
        sim这些接口函数的虚定义在SimTemplate.cs文件中
        进去打开可以看到有战吼亡语等接口的声明,贴个图

        oncardplay就是法术牌的定义啥的,以此类推,吧主博客里面有,我这里不介绍了


        IP属地:天津4楼2020-02-07 19:27
        收起回复
          赶上大佬直播


          IP属地:浙江来自Android客户端5楼2020-02-07 19:31
          回复

            以大闸蟹为例子,讲里面如何写,图是我自己写的大闸蟹代码
            大闸蟹有亡语、磁力、回响,我首先说亡语
            亡语的ondeatheattle函数中,有callkid方法,这个是playfield中写的类方法他需要传入的参数为一个CardDB.card类,这个类在CardDB.cs文件中可以找到,就职一张卡的定义,callkid功能就是召唤一个传入的随从,比方说
            callkid(a,b,true)就是再b处位置召唤a,这里没有写a和b的类型但是自己注意,true是bool变量就是自己回合的标志


            IP属地:天津6楼2020-02-07 19:37
            回复
              但是有人会说,自己要写的卡不是召唤随从特效呢,这里就到了本帖子的重点了,大闸蟹代码中,callkid是playfield的一个类方法,其他所有的类都在playfield中定义,就是playfield.cs文件,其中就有callkid接口定义,我贴个图
              在其他地方可以找到别的方法,下面再举个例子


              IP属地:天津7楼2020-02-07 19:42
              收起回复
                赶上直播,感谢大佬


                IP属地:福建8楼2020-02-07 19:46
                回复
                  这个好,很多人还不知道怎么入手学习


                  IP属地:黑龙江来自Android客户端9楼2020-02-07 19:47
                  回复
                    上面就是写一些不太复杂的卡特效,但是还有一些卡牌,要写的东西很多,我这里找了一张经典卡恐狼前锋,使相邻随从获得+1攻击力,贴上代码图

                    可以看到,不只是简单引用miniongetadjacentbuff接口函数(贴buff接口),还要写一堆东西
                    这里以这个张卡作为模板,其他代码写的是搜索场上随从,判断是否和恐狼前锋相邻


                    IP属地:天津11楼2020-02-07 19:55
                    回复
                      非常感谢,学习了


                      来自Android客户端13楼2020-02-07 20:02
                      回复
                        接12楼补10楼
                        playfield中方法很多,整个playfield.cs有7500行,里面的接口各种各样,如果有好心人整理出来发到贴吧里我觉得精品贴没跑了,因为实在太多了所以很多人认不全,用的时候现找,找不到只能自己魔改,比方我在写机械骑的时候没找到磁力接口,自己在sim中魔改光环特效为磁力,走了很多弯路,这些工作量大而繁琐。下接11楼


                        IP属地:天津14楼2020-02-07 20:06
                        回复

                          11楼又又被吞了,发图,幸好打字之后留了本地备份


                          IP属地:天津15楼2020-02-07 20:08
                          收起回复
                            一直不知道怎么入手,学习了


                            IP属地:福建16楼2020-02-07 20:10
                            回复
                              补完了被吞的楼层,现在再来说恐狼前锋,
                              我发的图中有一行代码为foreach (Minion m in p.ownMinions),
                              p.ownMinions不是一个类方法,而是一个类接口,就是自己场上随从列表,在playfield.cs中可以看到playfield类中的各个类成员,也有很多,我这里也拿几个例子说,
                              敌人奥秘数量public int enemySecretCount = 0;
                              自己的奥秘列表public List<CardDB.cardIDEnum> ownSecretsIDList = new List<CardDB.cardIDEnum>();
                              我方英雄public Minion ownHero;
                              我方随从列表public List<Minion> ownMinions = new List<Minion>();
                              敌方随从列表public List<Minion> enemyMinions = new List<Minion>();


                              IP属地:天津17楼2020-02-07 20:18
                              回复