• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Ищу Mimiron
ArhangelSM
Чемпион
Ищу мимирона под новую ревизию или как исправить это
дано
Код
  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 *"
Сообщение # 1 отредактировано ArhangelSM - Среда, 07.05.2014, 12:46
_dm666
<3 Death Metal
Естественно, что ошибка будет. Это равносильно тому, что ты в круг будешь вставлять треугольник.
Тебе надо получить объект, а не число(в твоем случае guid).
Как я понял, ф-ция должна шептать определенному таргету, вот таргет и ищи.
И вообще что значит "Ищу мимирона"? Ты пытаешься найти этого существа через его guid?
Сообщение # 2 написано 07.05.2014 в 15:18
ArhangelSM
Чемпион
Цитата _dm666 ()
Это равносильно тому, что ты в круг будешь вставлять треугольник.

это я и так понял что входные параметры не соответствуют, поэтому и спрашиваю кто знает как поправить, Ищу мимирона то есть boss_mimiron.cpp 2104 года)
Сообщение # 3 написано 07.05.2014 в 15:31
_dm666
<3 Death Metal
Цитата ArhangelSM ()
входные параметры не соответствуют, поэтому и спрашиваю кто знает как поправить

Правильно мыслишь. А теперь думай логически, какой там нужен аргумент.
Смысл жить на готовом? Учись сам, пиши сюда то, что не можешь разобрать после N количества времени, потраченного на поиск. Напиши сюда хоть, что ты хочешь конкретно реализовать в этой функции.
Сообщение # 4 написано 07.05.2014 в 15:35
ArhangelSM
Чемпион
сижу с утра пытаюсь перенести мимирона со старой ревизии поправил все изминенные свойств и функции осталось только это, пробовал подогнать talk но после этого ошибки по всему ядру... то означает Talk трогать не вариант остается переписать саму функцию но как! в этом вся загвостка
Сообщение # 5 отредактировано ArhangelSM - Среда, 07.05.2014, 15:40
Max[i]mus
Doom&Core © Dev
Цитата ArhangelSM ()
Ищу мимирона то есть boss_mimiron.cpp 2104 года)

Однако рано еще) Исправь дату...
Сообщение # 6 написано 07.05.2014 в 15:49
ArhangelSM
Чемпион
в смысле?)
Сообщение # 7 написано 07.05.2014 в 15:50
Dimitro
Praise the sun!
Цитата ArhangelSM ()
Talk(SAY_MKII_SLAY, Mimiron);

Заменить на Talk(SAY_MKII_SLAY); и т.д.
Неужели так сложно посмотреть сотни аналогичных мест где применяется этот метод?
Arcanum Core © Dev.
Для запросов на выдачу наград/снятие замечаний есть темы в Работе Портала. Не пишите по этому поводу в личку.
Сообщение # 8 написано 07.05.2014 в 16:14
ArhangelSM
Чемпион
Цитата Dimitro ()
Заменить на Talk(SAY_MKII_SLAY); и т.д.

видел, но не думал что стоит просто тупа стереть

Добавлено (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)
---------------------------------------------
я что сверх вопрос задал или что?

Сообщение # 9 отредактировано ArhangelSM - Среда, 07.05.2014, 16:42
_dm666
<3 Death Metal
А посмотреть ошибку в гугле нельзя? В студии указывается номер ошибки при компиляции. На MSDN есть все ошибки и их решения.
Сообщение # 10 написано 08.05.2014 в 11:23
ArhangelSM
Чемпион
перевод смотрел но смысла не понял в чем конкретна ошибка
Сообщение # 11 написано 08.05.2014 в 11:24
_dm666
<3 Death Metal
ArhangelSM, скинь всю функцию.
Сообщение # 12 написано 08.05.2014 в 11:47
ArhangelSM
Чемпион
Код
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
_dm666
<3 Death Metal
Пока что только одно могу предложить: затри default: return; и вынеси Position destination вне свитча.
Сообщение # 14 написано 08.05.2014 в 12:39
ArhangelSM
Чемпион
Цитата Dimitro ()
Заменить на Talk(SAY_MKII_SLAY); и т.д.

походу не канает, он говорит одно предложение и все, дальше тупит стоит
Сообщение # 15 написано 11.05.2014 в 13:58
_dm666
<3 Death Metal
А тебе что надо дальше?
Сообщение # 16 написано 11.05.2014 в 14:23
  • Страница 1 из 1
  • 1
Поиск: