Возникла такая проблема... Почему-то последний кейс выполняется много раз подряд. В чем проблема, не подскажете? Код struct npc_moveAI : public ScriptedAI { npc_moveAI(Creature *c) : ScriptedAI(c) {}
bool canMove; int moveCount;
void Reset() { canMove = false; moveCount = 0; me->SetSpeed(MOVE_RUN, 1.0f, true); } void MovementInform(uint32 type, uint32 id) { if (type != POINT_MOTION_TYPE) return; moveCount++; } void UpdateAI(const uint32 diff) { if (canMove) { switch(moveCount) { case 0: me->GetMotionMaster()->MovePoint(1, 5459.8012f, -2685.8188f, 1456.6988f); me->MonsterYell("Go", LANG_UNIVERSAL, 0); break; case 1: me->GetMotionMaster()->MovePoint(2, 5457.4658f, -2726.5480f, 1454.8999f); break; case 2: me->GetMotionMaster()->MovePoint(3, 5431.3808f, -2797.8142f, 1462.6180f); break; case 3: me->MonsterYell("There!", LANG_UNIVERSAL, 0); me->HandleEmoteCommand(EMOTE_ONESHOT_SPELL_CAST_OMNI); if (Unit *pTrigger = me->SummonCreature(NPC_TRIGGER, 5431.3808f, -2797.8142f, 1462.6180f, 4.71239f, TEMPSUMMON_MANUAL_DESPAWN)) { _triggerGUID = pTrigger->GetGUID(); pTrigger->SetObjectScale(2.0f); pTrigger->SetDisplayId(pTrigger->ToCreature()->GetCreatureTemplate()->Modelid1); pTrigger->CastSpell(pTrigger, SPELL_WILFRED_PORTAL, false); } me->HandleEmoteCommand(EMOTE_ONESHOT_SPELL_CAST_OMNI); if (Creature* pPortal = me->SummonCreature(NPC_WILFRED_PORTAL, 5431.3808f, -2797.8142f, 1462.6180f, 4.71239f, TEMPSUMMON_MANUAL_DESPAWN)) { pPortal->SetReactState(REACT_PASSIVE); pPortal->SetObjectScale(2.0f); pPortal->CastSpell(pPortal, SPELL_WILFRED_PORTAL, false); _portalGUID = pPortal->GetGUID(); } break; } ScriptedAI::UpdateAI(diff); }
Сообщение # 1 написано 20.06.2014 в 03:26
|
For example Код void Reset() { _Reset(); events.Reset(); me->GetMotionMaster()->MovePoint(4659700, -1699.160f, -2388.110f, 341.540f); me->SetSpeed(MOVE_FLIGHT, 2.5f); }
Owner Celestia™ Project
Сообщение # 2 написано 20.06.2014 в 08:28
|
Сообщение # 3 написано 20.06.2014 в 11:17
|