跳转至内容
  • 版块
  • 最新
  • 标签
  • 热门
  • 用户
  • 群组
折叠
品牌标识
  1. 主页
  2. 苍茫之境 (SOC)
  3. 给开发组,关于 “策略卡” 和 “多重判断”的 一点建议。

给开发组,关于 “策略卡” 和 “多重判断”的 一点建议。

已定时 已固定 已锁定 已移动 苍茫之境 (SOC)
1服
15 帖子 5 发布者 116 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 川 离线
    川 离线
    川禾
    写于 最后由 编辑
    #5

    [quote]原帖由 [i]deviljz[/i] 于 2013-11-22 10:41 发表 [url=http://bbs.xyz-soft.com/redirect.php?goto=findpost&pid=827089&ptid=53154][img]http://bbs.xyz-soft.com/images/common/back.gif[/img][/url]
    你这个问题需要的是加个hp最低的同伴卡 [/quote]

    似乎没有这个策略卡吧?

    我想与其 增加更多的 单个策略卡,为什么不调整下 多重卡的 作用呢?

    1 条回复 最后回复
    0
    • D 离线
      D 离线
      deviljz
      写于 最后由 编辑
      #6

      我想了下,现在按照你说的这样设置策略:

      如果距离我6米内,有同伴的HP小于50%成立 多重

      并且对我周围6米内,HP最低的我方 恢复术

      应该是会对hp最低的同伴用,顺序反过来设置到是会出现你说的情况。你确认这样设置真的会对非同伴治疗的话那就是有BUG。

      1 条回复 最后回复
      0
      • K 离线
        K 离线
        kooh
        写于 最后由 编辑
        #7

        如果距离我6米内,有同伴的HP小于50%成立 多重
        并且对我周围6米内,HP最低的我方 恢复术

        做个证明,是对我方的最低hp使用,不是对同伴的最低hp使用
        现在的多重判定没有进一步的筛选作用,没有起交集,只起触发条件,没有选择目标

        [[i] 本帖最后由 kooh 于 2013-11-22 12:50 编辑 [/i]]

        1 条回复 最后回复
        0
        • K 离线
          K 离线
          kooh
          写于 最后由 编辑
          #8

          然后最高最低卡,不应该是单选一个的
          比如最低防御, 同一个本里,很多怪都是相同的防御, 希望都能选上,然后可以使用攻击最高最低这类的多重,进一步筛选到特定的怪物, 如果没有这个多重,就默认的最近

          1 条回复 最后回复
          0
          • D 离线
            D 离线
            deviljz
            写于 最后由 编辑
            #9

            我仔细查了下程序,原因比较复杂,我简单说明下。

            soc的策略,在游戏里表现出来分为“条件”和“行为”2部分,而实际在逻辑上分为“条件”、“目标”、“行为”3部分。我举2个例子来帮助理解这一点:
            例子1:当我方有人HP<50%时,使用治疗术。
            例子2:当我方有人HP<50%时,使用火球术。

            在例子1中,条件:“当我方有人HP<50%时”,目标:“我方HP<50%的人”,行为:“使用治疗术”。
            在例子2中,条件:“当我方有人HP<50%时”,目标:“最近的敌人”,行为:“使用火球术”。

            可以看出,“目标”这一项是没有直接体现在游戏策略设置中的,而且系统根据设置的策略判断应该选择什么样的目标,这是为了简化玩家设置策略的复杂度。

            如何根据玩家设置的策略,选择出一个符合玩家期望的目标,这是我们在策略系统开发中遇到的最大问题。尤其是在多重判定卡的问题上有很多可能出现的问题,最开始我们考虑多重判定卡按照每条策略的交集来选择目标,这时出现了例3的问题:
            例子3:
            当自身HP<50%时,并且
            对HP最高的敌人,使用火球术。

            如果按照交集处理,例子3的第一条策略的目标是“自己”,第二条策略的目标是“HP最高的敌人”,交集出来是空集,那么在2个条件都满足的情况下,只会对最近敌方目标使用火球术(这也是系统为了防止满足条件而不做出任何行动这种情况的默认处理:满足条件而找不到合适目标时对最近目标使用),但是显然设置这条策略的目的只是把第一条策略当作条件,而不想要把满足第一条策略的目标作为技能目标,这时候玩家就无法达到设置这条策略的目的。也就是说,如果按照交集处理,只要2个条件卡目标类型不一样(一个是敌方满足xx,一个是我方满足xx),出来的一定是空集,只会满足条件时对最近目标使用技能。

            为了解决这个问题,我们把多重判定卡反过来处理,首先把周围所有我方敌方目标都加进列表,然后只会把“明确排除的目标”从列表里去除,最后从列表里选出合适的目标使用技能。在这里我用顶楼的例子来分析下:
            例子4:
            如果距离我6米内,有同伴的HP小于50%成立 多重
            并且对我周围6米内,HP最低的我方 恢复术

            比如楼主组了个5人队,5×5=25个角色,敌方Boss1个。
            策略开始:列表里有25个我方+Boss1。
            执行第一条:判断楼主5个同伴的HP,其中有1个<50%,其他4个>=50%,这4个被排除掉。
            执行完第一条:列表里还有21个我方+Boss1。
            执行第二条:对列表里所有我方目标循环,找到一个HP最低的,对他使用回复术,这时候就有可能把同伴以外的角色作为目标。

            之所以会产生这种情况,是因为这样设置策略可以有2种理解:
            理解1:
            条件:“HP<50%的同伴”并且“HP最低的我方”
            目标:“HP<50%的同伴”并且“HP最低的我方”
            行为:使用回复术
            理解2:
            条件:“HP<50%的同伴”并且“HP最低的我方”
            目标:“HP最低的我方”
            行为:使用回复术
            楼主是按照理解1来的,系统是按照理解2执行的(当然还排除了某些明确排除的目标),这时候看起来理解1是比较合理的,但是如果条件1稍微修改下:
            例子5:
            如果距离我6米内,有[color=Red]敌方[/color]的HP小于50%成立 多重
            并且对我周围6米内,HP最低的我方 恢复术
            把策略1的同伴换成敌方,这时候2种理解就变成:
            理解1:
            条件:“HP<50%的敌方”并且“HP最低的我方”
            目标:“HP<50%的敌方”并且“HP最低的我方”
            行为:使用回复术
            理解2:
            条件:“HP<50%的敌方”并且“HP最低的我方”
            目标:“HP最低的我方”
            行为:使用回复术
            在这种情况下理解1的目标是空集,最终只会对最近目标使用回复术,这时候就反过来了,是理解2比较合理。

            可以看出,正因为“目标”这个因素没有直接体现在策略设置中,所以会对复杂策略会有不同的解释,而系统不论怎样最终只能选择1种理解,不管系统选择的是理解1还是理解2,都会在某些情况下看起来合理而在另一些情况下看起来不合理。所以我觉得解决这个问题的比较简单的方法还是加个hp最低的同伴卡比较好。

            1 条回复 最后回复
            0
            • K 离线
              K 离线
              kooh
              写于 最后由 编辑
              #10

              我方和敌方的问题确实没想到

              多重的时候,玩家肯定是以最后一条为真正目标,也就是使用的技能目标
              应该已技能使用的目标作为初始父集,策略卡中与初始父集没交集的都不应该做目标选择,只做条件判断
              技能目标是我方的时候,关于敌方的策略卡都只做条件不做目标选择
              技能目标是敌方的时候,关于我方的策略卡都只做条件不做目标选择
              技能目标是自己的时候,目标已经肯定是自己,所有的策略卡都只做条件,不做目标选择
              目前只发现这3种类型的技能目标

              例子4:
              1.如果距离我6米内,有同伴的HP小于50%成立 多重
              2.周围6米内,HP最低的我方 恢复术

              这样先判定恢复是对我方使用, 于是以我方的所有目标作为父集选择,标记目标为我方
              然后判断第一条多重,同伴的HP小于50%成立
              满足条件后,继续判断是否需要进行目标筛选,不满足就继续使用上一次的集合
              因为是恢复和策略卡都是判定我方,满足条件,进行目标筛选,执行后,就剩下小于50%hp的同伴了
              再继续最低hp判断,结果就是

              条件:“HP<50%的同伴”并且“HP最低的我方”
              目标:“HP<50%的同伴”并且“HP最低的我方”
              行为:使用恢复术

              例子5:
              如果距离我6米内,有敌方的HP小于50%成立 多重
              并且对我周围6米内,HP最低的我方 恢复术

              这样先判定恢复是对我方使用, 于是以我方的所有目标作为父集选择,标记目标为我方
              然后判断第一条多重,敌方的HP小于50%成立
              满足条件,继续判断是否目标筛选
              因为是恢复是我方判定,策略卡是低防判定,不满足条件,不继续筛选
              还是使用父集的我方全员进行下一条判断
              再继续最低hp判断,结果就是在我方人堆里选择hp最低了

              新例子1:
              如果距离我6米内,有同伴的HP小于50%成立 多重
              并且对我周围6米内,有敌方HP小于50%成立 恢复术

              恢复是目标我方技能
              第一条, 是我方条件,进行筛选,选择了符合条件的几个同伴
              第二条, 是敌方条件,不继续筛选,使用上面筛选下来的结果作为技能目标

              结果就是
              条件 “同伴的HP小于50%成立”并且“有敌方HP小于50%成立”
              目标 “同伴的HP小于50%成立”

              新例子2:
              如果距离我6米内,有同伴的HP小于50%成立 多重
              并且对我周围6米内,有敌方HP小于50%成立 火球

              第一条策略是选择我方,火球是敌方目标,不一致,不筛选目标
              第二条是敌方判断,筛选目标
              结果就是
              条件 “同伴的HP小于50%成立”并且“有敌方HP小于50%成立”
              目标 “有敌方HP小于50%成立”

              新栗子3:
              如果距离我6米内,有同伴的HP小于50%成立 多重
              并且对我周围6米内,有敌方HP小于50%成立 自愈

              自愈的目标固定为自己,其他的策略卡只为条件判断,不做目标筛选

              结果就是
              条件 “同伴的HP小于50%成立”并且“有敌方HP小于50%成立”
              目标 自己

              1 条回复 最后回复
              0
              • D 离线
                D 离线
                deviljz
                写于 最后由 编辑
                #11

                你说的这个做法基本就是我们发现交集方法的问题后,第一个想到的做法。

                当时给目标分了很多类型:自己、不包括自己的同伴、不包括同伴的友方、我方召唤物、Boss、Boss以外的敌人、死亡的友方、死亡的敌人。每一种类型自己取交集筛选,最后让技能根据自己的需要去选择合适的目标。

                这东西当时做了好久,结果快做完遇到致命问题整个给砍掉改成现在的做法了,问题是时间久远,当时具体遇到什么问题我现在想不起来了。

                1 条回复 最后回复
                0
                • 3 离线
                  3 离线
                  38465
                  写于 最后由 编辑
                  #12

                  求一张敌方最高/最低战斗力判定卡

                  1 条回复 最后回复
                  0
                  • K 离线
                    K 离线
                    kooh
                    写于 最后由 编辑
                    #13

                    没那么复杂的,技能目标就3类情况
                    我方,敌方和固定自己,其中自己是特殊情况
                    其他的交给策略卡目标是敌方还是我方筛选就行了,这里也只有2类
                    其他的不包括自己,boss,boss以外,我方召唤物什么的,都是我方或者敌方的子集.直接递归求交集就行

                    1 条回复 最后回复
                    0
                    • 川 离线
                      川 离线
                      川禾
                      写于 最后由 编辑
                      #14

                      嗯 程序上的问题确实比较复杂。。。。。。

                      “目标”这个因素没有直接体现在策略设置中

                      这个解释很好,也是我想希望可以加强的地方

                      [color=Red]让策略卡使用的技能有更加明确的指向性。[/color]

                      而对于 多重 卡取交集的想法,完美实现确实有难度。

                      [[i] 本帖最后由 川禾 于 2013-11-22 19:16 编辑 [/i]]

                      1 条回复 最后回复
                      0
                      • B 离线
                        B 离线
                        BIP魂
                        写于 最后由 编辑
                        #15

                        难得看见这么长的回复……

                        1 条回复 最后回复
                        0
                        回复
                        • 在新帖中回复
                        登录后回复
                        • 从旧到新
                        • 从新到旧
                        • 最多赞同


                        • 登录

                        • 没有帐号? 注册

                        • 登录或注册以进行搜索。
                        © 2026 xyz-soft.com
                        沪ICP备10216881号-1
                        • 第一个帖子
                          最后一个帖子
                        0
                        • 版块
                        • 最新
                        • 标签
                        • 热门
                        • 用户
                        • 群组