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

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*/) {}

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

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

可以看到Mangos的AI設計還是比較傳統的,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>
            欧美日韩亚洲一区二区三区在线| 欧美激情亚洲精品| 狠狠狠色丁香婷婷综合久久五月| 欧美一区91| 小辣椒精品导航| 国产日韩一区二区| 久久亚洲国产精品一区二区| 久久成人18免费网站| 一区二区三区在线不卡| 欧美激情小视频| 欧美激情欧美激情在线五月| 亚洲午夜激情在线| 亚洲一区黄色| 黄色成人在线网址| 亚洲成人在线网站| 欧美精选在线| 午夜精品久久久久久久男人的天堂| 亚洲午夜久久久久久尤物| 国产亚洲人成a一在线v站| 久久夜色撩人精品| 欧美激情综合色| 午夜精品久久久久久久久久久久 | 亚洲男人第一av网站| 一区二区三区欧美激情| 国产日韩欧美成人| 欧美成人综合| 国产精品色一区二区三区| 快播亚洲色图| 欧美午夜精品久久久久久人妖| 久久av红桃一区二区小说| 久久综合网色—综合色88| 亚洲综合日韩在线| 麻豆精品一区二区av白丝在线| 亚洲一区www| 久久综合色8888| 欧美在线视频免费观看| 猛干欧美女孩| 久久精品视频一| 欧美日韩性视频在线| 理论片一区二区在线| 国产精品―色哟哟| 亚洲国产99精品国自产| 国内自拍视频一区二区三区| 亚洲免费大片| 亚洲肉体裸体xxxx137| 羞羞色国产精品| 中文在线资源观看网站视频免费不卡| 欧美在线一区二区| 亚洲欧美精品伊人久久| 欧美成人国产一区二区| 久久久久久夜精品精品免费| 国产精品免费网站在线观看| 亚洲国产合集| 亚洲福利视频在线| 久久精品国产69国产精品亚洲| 亚洲欧美欧美一区二区三区| 欧美乱妇高清无乱码| 欧美激情第二页| 在线观看欧美视频| 久久高清国产| 久久婷婷影院| 激情综合激情| 久久九九全国免费精品观看| 久久九九国产精品| 国产美女高潮久久白浆| 亚洲一级在线| 欧美在线观看一区| 国产女主播在线一区二区| 亚洲天堂男人| 欧美在线日韩精品| 国产日韩成人精品| 欧美亚洲一区在线| 久久精品网址| 一区在线观看视频| 久久综合国产精品| 欧美成人在线免费观看| 亚洲韩国一区二区三区| 欧美成在线视频| 91久久久久久久久| 一区二区三区精品视频| 欧美午夜精品久久久久久浪潮 | 午夜一区二区三区在线观看| 国产精品自在线| 久久电影一区| 亚洲国产精品ⅴa在线观看| 最新国产の精品合集bt伙计| 欧美精品激情在线观看| 亚洲网友自拍| 久久精品女人| 亚洲精品欧美日韩| 国产精品国产三级国产专播精品人 | 国产一区视频观看| 久久久噜噜噜久久| 亚洲经典在线| 性伦欧美刺激片在线观看| 国产一区二区三区高清在线观看 | 久久久噜噜噜久久中文字免| 欧美成人在线影院| 亚洲午夜性刺激影院| 国产精品一区二区欧美| 玖玖视频精品| 一区二区三区四区五区精品| 久久久777| 一区二区三区www| 韩国一区电影| 欧美看片网站| 久久男人资源视频| 一本一道久久综合狠狠老精东影业 | 亚洲毛片一区| 国产情人节一区| 欧美www在线| 午夜视频一区二区| 亚洲精品视频二区| 久久在线91| 亚洲中字在线| 亚洲国内欧美| 韩国精品久久久999| 欧美日韩一区二区高清| 久久久久久久一区| 亚洲影院在线| 日韩视频不卡中文| 免费日韩视频| 久久激情综合| 亚洲一区二区精品视频| 最新中文字幕一区二区三区| 国产日韩精品一区二区浪潮av| 欧美黄色小视频| 久久久久99| 亚洲欧美日韩另类| 在线视频精品一区| 最新亚洲激情| 欧美大成色www永久网站婷| 久久久久一区二区三区| 西西裸体人体做爰大胆久久久| 夜夜爽99久久国产综合精品女不卡 | 欧美国产高清| 欧美电影免费观看| 久久久久国产免费免费| 久久成人av少妇免费| 午夜久久资源| 亚洲欧美综合网| 亚洲一区二区三区精品视频 | 久久国产视频网| 性欧美video另类hd性玩具| 一区二区欧美视频| 一本一本久久| 亚洲在线1234| 一区二区三区日韩| 中文国产成人精品| 一区二区免费在线观看| 制服丝袜激情欧洲亚洲| 中文精品视频| 亚洲天堂男人| 欧美一区二区三区免费在线看| 亚洲欧美中文另类| 欧美在线视频一区二区三区| 久久精品国产成人| 久久久人成影片一区二区三区观看 | 午夜精品福利一区二区蜜股av| 亚洲在线视频免费观看| 香蕉成人啪国产精品视频综合网| 亚洲欧美国产精品桃花| 久久国产精品免费一区| 久久一区二区三区国产精品| 美女黄网久久| 亚洲国产精品视频一区| 99精品国产在热久久婷婷| 亚洲视频国产视频| 久久精品国产91精品亚洲| 老司机aⅴ在线精品导航| 欧美黄色大片网站| 欧美视频在线一区二区三区| 国产毛片精品国产一区二区三区| 狠狠久久五月精品中文字幕| 亚洲欧洲在线免费| 亚洲欧美一区二区激情| 久久久久久久久综合| 欧美激情一区二区三区高清视频| 99av国产精品欲麻豆| 欧美一区二视频| 欧美a一区二区| 国产欧美婷婷中文| 亚洲国产精品女人久久久| 亚洲一区二区三区国产| 久久久久久精| 99精品国产热久久91蜜凸| 久久精品国产亚洲一区二区| 欧美激情中文字幕一区二区| 国产一区二区三区在线观看网站| 亚洲精品视频免费观看| 欧美中文字幕久久| 亚洲欧洲免费视频| 欧美在线播放| 欧美日韩性视频在线| 在线免费日韩片| 欧美影院一区| 夜夜嗨av一区二区三区免费区| 久久久久久夜| 国产日韩av一区二区| 亚洲一线二线三线久久久|