• Страница 1 из 1
  • 1
Модератор форума: Dimitro  
Отправить на вэйпоинт через ядро и отследить
Explain
Капрал
Приветствую, необходимо отправить нпц на вэйпоинт и отследить когда нпц дойдёт, всё это через ядро. Пытался сделать сделать следующим образом:
1. Загрузил вэйпоинт в ядро:
Код
INSERT INTO waypoints (`entry`, `pointid`, `position_x`, `position_y`, `position_z`, `point_comment`) VALUES (@ENTRY, 1, @POS_X, @POS_Y, @POS_Z, 'Comment');

2. Отправил нпц:
Код
me->GetMotionMaster()->MovePoint(0, Pos[0];);

3. Отлавливаю:
Код
void WaypointReached(uint32 waypointId) OVERRIDE
{
    switch (waypointId)
    {
    case 1:
  Спеть_песню();
  Сплясать();
  break;
    }
}

Нпц идёт, но хука не получается, подскажите, пжлста, что не так. Советовали отправлять через MovePath, но откуда берётся path_id и где он прописывается не разобрался, с этим тоже прошу помочь по возможности.

Добавлено (26.03.2017, 16:07)
---------------------------------------------
Разобрался, можно закрыть тред:
1. Отправляю через
Код
//Первый аргумент - waypoint_id в хуке
me->GetMotionMaster()->MovePoint(0, -10000.11f, 100.11111f, 10.1111f);

2. Хук
Код
void MovementInform(uint32 type, uint32 waypoint_id) OVERRIDE
{
   switch (waypoint_id)
   {
   case 0:
      Пляшем();
      break;
   }
}
Сообщение # 1 отредактировано Explain - Воскресенье, 26.03.2017, 16:08
Stormtrooper
Командир
так всё-таки откуда берётся path_id?
всё облазил - ну нигде ничего похожего нет
более того - в одном из скриптов ядра попробовал от балды поставить цифру но никаких ошибок не получил
Если помог, ставь плюсик в репу :)

Сообщение # 2 написано 28.03.2017 в 15:48
Incorrect
Капрал
Цитата Stormtrooper ()
так всё-таки откуда берётся path_id?

Если ты про аргумент метода MotionMaster::MovePath, то это id из таблицы waypoint_data
Сообщение # 3 написано 29.03.2017 в 07:30
  • Страница 1 из 1
  • 1
Поиск: