青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

posts - 311, comments - 0, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

三、CreatureAI

 

CreatureAI這個類并不大,構造函數要傳一個Creature的指針,然后就是20來個接口函數。

構造函數:

explicit CreatureAI(Creature* creature) : m_creature(creature) {}

接口函數不多,可以全部列出來:

// Called if IsVisible(Unit *who) is true at each *who move, reaction at visibility zone enter

virtual void MoveInLineOfSight(Unit *) {}

// Called for reaction at enter to combat if not in combat yet (enemy can be NULL)

virtual void EnterCombat(Unit* /*enemy*/) {}

// Called for reaction at stopping attack at no attackers or targets

virtual void EnterEvadeMode() {}

// Called at reaching home after evade

virtual void JustReachedHome() {}

// Called at any heal cast/item used (call non implemented)

virtual void HealBy(Unit * /*healer*/, uint32 /*amount_healed*/) {}

// Called at any Damage to any victim (before damage apply)

virtual void DamageDeal(Unit * /*done_to*/, uint32 & /*damage*/) {}

// Called at any Damage from any attacker (before damage apply)

// Note: it for recalculation damage or special reaction at damage

// for attack reaction use AttackedBy called for not DOT damage in Unit::DealDamage also

virtual void DamageTaken(Unit * /*done_by*/, uint32 & /*damage*/) {}

// Called when the creature is killed

virtual void JustDied(Unit *) {}

// Called when the creature kills a unit

virtual void KilledUnit(Unit *) {}

// Called when the creature summon successfully other creature

virtual void JustSummoned(Creature* ) {}

virtual void SummonedCreatureDespawn(Creature* /*unit*/) {}

// Called when hit by a spell

virtual void SpellHit(Unit*, const SpellEntry*) {}

// Called when spell hits creature's target

virtual void SpellHitTarget(Unit*, const SpellEntry*) {}

// Called when the creature is target of hostile action: swing, hostile spell landed, fear/etc)

virtual void AttackedBy(Unit* attacker);

// Called when creature is spawned or respawned (for reseting variables)

virtual void JustRespawned() {}

// Called at waypoint reached or point movement finished

virtual void MovementInform(uint32 /*MovementType*/, uint32 /*Data*/) {}

// Called at text emote receive from player

virtual void ReceiveEmote(Player* /*pPlayer*/, uint32 /*text_emote*/) {}

// Called when creature attack expected (if creature can and no have current victim)

// Note: for reaction at hostile action must be called AttackedBy function.

virtual void AttackStart(Unit *) {}

// Is unit visible for MoveInLineOfSight

virtual bool IsVisible(Unit *) const { return false; }

// Called when victim entered water and creature can not enter water

virtual bool canReachByRangeAttack(Unit*) { return false; }

// Called at World update tick

virtual void UpdateAI(const uint32 /*diff*/) {}

可以看到,大部分接口是事件觸發(fā)和消息通知。UpdateAI我放到最后,這個和別的接口函數不同,是負責AI狀態(tài)的更新處理。

以CreatureAI為基類,派生出了PetAI、CreatureEventAI、GuardAI、ReactorAI、AggressAI、TotemAI和NullCreatureAI 7類基本AI。Creature的AIM_Initialize()函數,對AI進行初始化,根據Creature的類型選擇不同的AI。值得提出的是,Mangos還支持ScriptAI,對于非寵物類的生物支持擴展腳本AI。Mangos的腳本系統(tǒng)我還沒有怎么看,有空研究下。

可以看到Mangos的AI設計還是比較傳統(tǒng)的,Creature類相當于身體和物理存在,干很多“傻大粗”的事情;AI相當于Creature的大腦,對事件進行響應和處理,指揮著身體物理存在進行反應。

下面可以看下寵物AI的一段代碼:

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            一区二区久久| 久久狠狠久久综合桃花| 欧美精品啪啪| 国产美女诱惑一区二区| 欧美日韩成人免费| 乱中年女人伦av一区二区| 正在播放亚洲| 亚洲老板91色精品久久| 日韩亚洲欧美一区| 亚洲三级免费电影| 亚洲国产欧美另类丝袜| 欧美福利专区| 日韩亚洲一区二区| 亚洲欧美日韩另类精品一区二区三区| 国产欧美一区二区三区久久人妖 | 蜜臀久久99精品久久久久久9 | 欧美一区二区三区精品电影| 99视频精品在线| 欧美呦呦网站| 亚洲精品婷婷| 久久久久亚洲综合| 欧美日本在线看| 狠狠狠色丁香婷婷综合久久五月| 亚洲国产精品一区二区第一页| 99riav久久精品riav| 欧美一区综合| 亚洲激情女人| 欧美一区二区三区在线观看| 欧美激情一区二区三区在线视频观看| 国产精品高潮呻吟久久av黑人| 亚洲国产三级| 免费成人黄色av| 欧美一区1区三区3区公司| 欧美日韩一区二区精品| 亚洲高清不卡一区| 久久手机免费观看| 欧美在线高清视频| 国产美女在线精品免费观看| 亚洲综合日韩中文字幕v在线| 欧美黄色成人网| 久久亚洲高清| 91久久在线| 亚洲欧洲精品一区二区| 另类图片国产| 激情综合色综合久久| 亚洲欧美一区二区激情| 亚洲永久在线| 在线欧美视频| 亚洲黄色高清| 国产精品v欧美精品v日本精品动漫| 一本一本a久久| 亚洲综合欧美日韩| 影音先锋亚洲电影| 亚洲精品久久久久久一区二区| 欧美无砖砖区免费| 久久婷婷麻豆| 国产精品h在线观看| 久久精品视频免费观看| 美女网站久久| 久久久之久亚州精品露出| 伊人蜜桃色噜噜激情综合| 欧美成人69| 一本久道久久综合婷婷鲸鱼| 欧美www在线| 欧美成人午夜激情视频| 亚洲国产成人久久| 亚洲美女黄色片| 亚洲欧洲三级| 久久国产精彩视频| 欧美激情偷拍| 伊人婷婷欧美激情| 欧美激情视频免费观看| 欧美一区亚洲二区| 久久精品国产99国产精品| 日韩亚洲精品视频| 久久久精品国产一区二区三区 | 亚洲黄页一区| 欧美激情精品久久久久久黑人| 欧美午夜激情小视频| 久久亚洲欧美国产精品乐播| 一本色道久久综合| 亚洲三级影片| 欧美国产视频一区二区| 欧美国产高清| 91久久久久久国产精品| 欧美韩国一区| 99在线|亚洲一区二区| 亚洲欧美日韩区| 韩国av一区二区三区四区| 亚洲自拍偷拍麻豆| 久久免费视频这里只有精品| 国内精品福利| 欧美寡妇偷汉性猛交| 99视频热这里只有精品免费| 亚洲无人区一区| 国产丝袜一区二区| 久久噜噜噜精品国产亚洲综合| 欧美成年人视频| 亚洲永久精品大片| 伊人男人综合视频网| 欧美天堂亚洲电影院在线播放 | 最新国产精品拍自在线播放| 欧美激情1区2区| 久久精品日韩一区二区三区| 亚洲国产精品久久久久婷婷884| 亚洲麻豆国产自偷在线| 国产香蕉久久精品综合网| 欧美日韩亚洲高清| 久久久国产成人精品| 99精品久久免费看蜜臀剧情介绍| 久久夜色精品国产噜噜av| 亚洲视频一区二区在线观看 | 久久精品免费播放| 亚洲性视频网站| 99这里只有久久精品视频| 老牛嫩草一区二区三区日本| 亚洲一区尤物| 亚洲免费视频在线观看| 中文在线资源观看网站视频免费不卡 | 一本色道久久加勒比精品| 最新亚洲一区| 日韩天天综合| 亚洲无玛一区| 午夜精品久久99蜜桃的功能介绍| 一区二区日本视频| 一本大道久久a久久精品综合| 亚洲精品国产拍免费91在线| 亚洲美女电影在线| 亚洲一区二区三区四区在线观看 | 欧美性色综合| 韩国视频理论视频久久| 怡红院精品视频| 99re视频这里只有精品| 午夜久久一区| 免费久久99精品国产自在现线| 久久亚洲国产成人| 亚洲美女淫视频| 亚洲精华国产欧美| 亚洲精品一区二区三区蜜桃久| 99av国产精品欲麻豆| 欧美另类变人与禽xxxxx| 国产情人综合久久777777| 亚洲激情成人在线| 久久久久久亚洲精品杨幂换脸| 亚洲国产精品久久久| 欧美一区二区三区的| 欧美精品成人在线| 影音国产精品| 免费亚洲电影在线| 香蕉av777xxx色综合一区| 欧美黄污视频| 亚洲毛片在线看| 一区二区三区精品国产| 久久免费精品视频| 亚洲一区二区三区精品在线观看| 久久国产精品久久久久久电车| 国产综合网站| 国产精品在线看| 国产精品久久久久久久久久久久| 久久精品视频免费观看| 亚洲欧美三级伦理| 亚洲欧洲一区二区在线观看| 亚洲国产成人精品久久| 欧美在线1区| 一区二区三区精品久久久| 精品91视频| 国产欧美日韩另类一区| 在线一区日本视频| 欧美大片免费观看| 亚洲茄子视频| 在线视频免费在线观看一区二区| 欧美日韩精品福利| 亚洲男人天堂2024| 欧美一区二区女人| 亚洲美女少妇无套啪啪呻吟| 亚洲福利视频在线| 欧美新色视频| 久久伊人免费视频| av成人福利| 国产精品v日韩精品| 久久久亚洲人| 欧美日韩亚洲一区在线观看| 欧美成人精品三级在线观看| 亚洲美女精品成人在线视频| 亚洲视频综合| 99精品免费| 久久综合久久美利坚合众国| 一区二区高清| 欧美成人午夜剧场免费观看| 欧美一级二区| 欧美视频在线观看一区二区| 欧美超级免费视 在线| 国产一区二区三区不卡在线观看| 亚洲国产精品精华液网站| 国产视频欧美视频| 一区二区三区欧美日韩| 一区二区三区不卡视频在线观看| 午夜在线观看免费一区| 亚洲少妇在线| 欧美日韩精品二区|