• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 72,  comments - 4,  trackbacks - 0

            mythos中的ai是并發的棧式狀態機:

            拿wolf作為例子:
            一。配置文件:
            在ai目錄中的wolf.xml配置它所有的行為(包括每個行為發生機率,參數,以及執行函數):
            其中執行函數以及對應skillid如下:
            1.
              <nBehaviorId>move - approach target</nBehaviorId>
              <nSkillId>monster melee</nSkillId>
            2.
              <nBehaviorId>skill - do skill</nBehaviorId>
              <nSkillId>monster melee</nSkillId>
            3.
              <nBehaviorId>skill - do skill</nBehaviorId>
              <nSkillId>Fidget</nSkillId>
            4.
              <nBehaviorId>move - wander</nBehaviorId>
              <nSkillId/>

            二。ai更新:
               SrvGameTick--》GameEventsProcess--》AI_Update()
              在AI_Update中遍歷執行該unit的所有行為(behavior) :
              1. sBehaviorApproachTarget()
                 查找對應的目標,發出朝它移動指令
                
              1. sBehaviorDoSkill()
                 如果有目標則執行sSkillExecute進行技能施放
                
              2. ...類似功能處理
             
              。。。
             
              【說明】:
                mythos的行為是并發的棧式,最大可以有5個棧, 用
                int nIndex = tContext.pnStack[ tContext.nStackCurr ]這樣的結構進行處理,
                通過pTable->pBehaviors[ nIndex ]得到對應的行為處理函數進行執行處理。
                   
                a. 并發:
                每執行完一個行為函數后 tContext.pnStack[ tContext.nStackCurr ]++; 這樣就換到unit的下一個行為函數再執行。
               
                b. 進入棧(子函數):
                tContext.nStackCurr為棧下標,初始tContext.nStackCurr=0,即為第0個棧,
                可以設置tContext.nStackCurr++;并且tContext.pnStack[ tContext.nStackCurr ]=nBranchTo(要走的分支號)。這樣來
                執行分支函數。 當分支函數完成時tContext.nStackCurr--再回來上一級。
               
                另外有些行為函數是執行一次的,執行完了就會把它從列表中刪除。下次不會再遍歷到.


            posted on 2012-08-13 09:51 flipcode 閱讀(181) 評論(0)  編輯 收藏 引用
            久久国产精品久久国产精品| 日日狠狠久久偷偷色综合0| 亚洲AV无一区二区三区久久| 精品久久亚洲中文无码| 99久久免费国产精精品| 精品人妻伦一二三区久久| 久久久久久亚洲精品影院| 亚洲国产精品无码久久久秋霞2| 91久久精一区二区三区大全| 久久九九青青国产精品| 香蕉久久久久久狠狠色| 亚洲成人精品久久| 亚洲中文久久精品无码| 99久久伊人精品综合观看| 亚洲AV成人无码久久精品老人| 大美女久久久久久j久久| 蜜臀久久99精品久久久久久小说| 久久99精品国产99久久| 伊人久久大香线蕉亚洲五月天 | 精品国产99久久久久久麻豆| 日本福利片国产午夜久久| 精品久久久无码21p发布| 人妻少妇精品久久| 久久伊人精品青青草原高清| 午夜精品久久久久久99热| 精品国产热久久久福利| 韩国三级大全久久网站| 久久天天躁狠狠躁夜夜96流白浆| 亚洲国产精品一区二区三区久久 | 一本大道加勒比久久综合| 乱亲女H秽乱长久久久| 四虎影视久久久免费| 日本高清无卡码一区二区久久 | 国产综合精品久久亚洲| 人人狠狠综合久久亚洲88| 91精品国产91久久久久久青草| 九九精品99久久久香蕉| 97久久精品午夜一区二区| 久久99国产精品99久久| 久久精品草草草| 久久综合九色综合久99|