|
Архив - только для чтения |
| Модератор форума: andycrowz |
| Форум Корзина форума Корзина Ищу Mimiron |
| Ищу Mimiron |
Ищу мимирона под новую ревизию или как исправить это
дано Код void KilledUnit(Unit* /*who*/) { if (uint64 Mimiron = instance->GetData64(BOSS_MIMIRON)) { if (phase == PHASE_LEVIATHAN_SOLO__GLOBAL_1) { if (!urand(0, 5)) Talk(SAY_MKII_SLAY, Mimiron); } else if (!urand(0, 5)) Talk(SAY_V07TRON_SLAY, Mimiron); } } где Talk Код void CreatureAI::Talk(uint8 id, WorldObject const* whisperTarget /*= NULL*/) { sCreatureTextMgr->SendChat(me, id, whisperTarget); } и ошибка 1 IntelliSense: argument of type "uint64" is incompatible with parameter of type "const WorldObject *" |
Естественно, что ошибка будет. Это равносильно тому, что ты в круг будешь вставлять треугольник.
Тебе надо получить объект, а не число(в твоем случае guid). Как я понял, ф-ция должна шептать определенному таргету, вот таргет и ищи. И вообще что значит "Ищу мимирона"? Ты пытаешься найти этого существа через его guid?
Сообщение # 2 написано 07.05.2014 в 15:18
|
Сообщение # 3 написано 07.05.2014 в 15:31
|
Правильно мыслишь. А теперь думай логически, какой там нужен аргумент. Смысл жить на готовом? Учись сам, пиши сюда то, что не можешь разобрать после N количества времени, потраченного на поиск. Напиши сюда хоть, что ты хочешь конкретно реализовать в этой функции.
Сообщение # 4 написано 07.05.2014 в 15:35
|
сижу с утра пытаюсь перенести мимирона со старой ревизии поправил все изминенные свойств и функции осталось только это, пробовал подогнать talk но после этого ошибки по всему ядру... то означает Talk трогать не вариант остается переписать саму функцию но как! в этом вся загвостка
|
Заменить на Talk(SAY_MKII_SLAY); и т.д. Неужели так сложно посмотреть сотни аналогичных мест где применяется этот метод?
Arcanum Core © Dev.
Для запросов на выдачу наград/снятие замечаний есть темы в Работе Портала. Не пишите по этому поводу в личку.
Сообщение # 8 написано 07.05.2014 в 16:14
|
видел, но не думал что стоит просто тупа стереть Добавлено (07.05.2014, 16:41) --------------------------------------------- появилась еще одна ошибка в 4х местах в одном месте Код return; case EVENT_SUMMON_JUNK_BOT: for (uint8 n = 0; n < 2; n++) me->SummonCreature(NPC_JUNK_BOT, SummonPos[rand() % 9], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3 * IN_MILLISECONDS); events.RescheduleEvent(EVENT_SUMMON_ASSAULT_BOT, 10 * IN_MILLISECONDS, 0, PHASE_AERIAL_SOLO__GLOBAL_3); return; case EVENT_SUMMON_ASSAULT_BOT: me->SummonCreature(NPC_ASSAULT_BOT, SummonPos[rand() % 9], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS); if (gotMimironHardMode) for (uint8 i = 0; i < 2; i++) me->SummonCreature(NPC_EMERGENCY_BOT, SummonPos[rand() % 9], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3 * IN_MILLISECONDS); events.RescheduleEvent(EVENT_SUMMON_BOOM_BOT, 10 * IN_MILLISECONDS, 0, PHASE_AERIAL_SOLO__GLOBAL_3); return; case EVENT_SUMMON_BOOM_BOT: me->SummonCreature(NPC_BOOM_BOT, 2744.65f, 2569.46f, 364.397f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3 * IN_MILLISECONDS); events.RescheduleEvent(EVENT_SUMMON_JUNK_BOT, 10 * IN_MILLISECONDS, 0, PHASE_AERIAL_SOLO__GLOBAL_3); return; default: return; Код case EVENT_SUMMON_JUNK_BOT: initialization of 'destination' is skipped by 'case' label Код case EVENT_SUMMON_BOOM_BOT: initialization of 'destination' is skipped by 'case' label Код case EVENT_SUMMON_ASSAULT_BOT: initialization of 'destination' is skipped by 'case' label и одна тут Код events.RescheduleEvent(EVENT_SUMMON_JUNK_BOT, 10 * IN_MILLISECONDS, 0, PHASE_AERIAL_SOLO__GLOBAL_3); return; default: return; initialization of 'destination' is skipped by 'default' label Добавлено (08.05.2014, 11:17) |
Код void UpdateAI(uint32 diff) { if (!UpdateVictim() || phase == PHASE_IDLE) return; events.Update(diff); if (me->HasUnitState(UNIT_STATE_CASTING)) return; while (uint32 eventId = events.ExecuteEvent()) { switch (eventId) { case EVENT_PLASMA_BALL: if (phase == PHASE_AERIAL_SOLO__GLOBAL_3 && me->GetVictim()) { float x = me->GetVictim()->GetPositionX(); float y = me->GetVictim()->GetPositionY(); float z = me->GetVictim()->GetPositionZ(); if (me->IsWithinDist3d(x, y, z, 30.0f)) { me->GetMotionMaster()->Initialize(); DoCastVictim(SPELL_PLASMA_BALL); } else me->GetMotionMaster()->MovePoint(0, x, y, 380.04f); } else if (phase == PHASE_AERIAL_ASSEMBLED__GLOBAL_4 && me->GetVictim()) { if (me->GetVictim()->IsWithinDist3d(me->GetPositionX(), me->GetPositionY(), me->GetPositionZ(), 30.0f)) DoCastVictim(SPELL_PLASMA_BALL); else if (Unit* target = SelectTarget(SELECT_TARGET_NEAREST, 0, 0.0f, true)) DoCast(target, SPELL_PLASMA_BALL); } events.RescheduleEvent(EVENT_PLASMA_BALL, 2 * IN_MILLISECONDS); return; case EVENT_REACTIVATE_AERIAL: me->RemoveAurasDueToSpell(SPELL_MAGNETIC_CORE_VISUAL); Position destination; me->GetPosition(&destination); destination.m_positionZ = 380.04f; me->GetMotionMaster()->MoveTakeoff(1, destination); // Check if MoveTakeoff is ok here, a flying unit should have a landing animation, but... just 4 the case me->SetReactState(REACT_AGGRESSIVE); return; case EVENT_SUMMON_JUNK_BOT: for (uint8 n = 0; n < 2; n++) me->SummonCreature(NPC_JUNK_BOT, SummonPos[rand() % 9], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3 * IN_MILLISECONDS); events.RescheduleEvent(EVENT_SUMMON_ASSAULT_BOT, 10 * IN_MILLISECONDS, 0, PHASE_AERIAL_SOLO__GLOBAL_3); return; case EVENT_SUMMON_ASSAULT_BOT: me->SummonCreature(NPC_ASSAULT_BOT, SummonPos[rand() % 9], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 30 * IN_MILLISECONDS); if (gotMimironHardMode) for (uint8 i = 0; i < 2; i++) me->SummonCreature(NPC_EMERGENCY_BOT, SummonPos[rand() % 9], TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3 * IN_MILLISECONDS); events.RescheduleEvent(EVENT_SUMMON_BOOM_BOT, 10 * IN_MILLISECONDS, 0, PHASE_AERIAL_SOLO__GLOBAL_3); return; case EVENT_SUMMON_BOOM_BOT: me->SummonCreature(NPC_BOOM_BOT, 2744.65f, 2569.46f, 364.397f, 0, TEMPSUMMON_CORPSE_TIMED_DESPAWN, 3 * IN_MILLISECONDS); events.RescheduleEvent(EVENT_SUMMON_JUNK_BOT, 10 * IN_MILLISECONDS, 0, PHASE_AERIAL_SOLO__GLOBAL_3); return; default: return; } } } msdn Добавлено (08.05.2014, 12:01)
Сообщение # 13 написано 08.05.2014 в 12:01
|
| |||
| |||
