Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Скрипты (http://mangos.ytdb.ru/forumdisplay.php?f=19)
-   -   Равномерное передвижение NPC (http://mangos.ytdb.ru/showthread.php?t=750)

MuTaToR 16.04.2010 21:07

Равномерное передвижение NPC
 
как сделать чтоб равномерно передвигался.
Код:

        m_creature->GetMap()->CreatureRelocation(m_creature, -5087, -11253, 0.5, m_creature->GetOrientation());
        m_creature->SendMonsterMove(-5087,-11253, 0.5, 0, 0, 1500);

с начало бежит быстро, а подходя ближе к точке замедляется.

PSZ 17.04.2010 12:05

Зачем хаки использовать, если есть MovePoint()?

MuTaToR 17.04.2010 12:33

когда спрашивал мне указали на эти 2 функции, и потом я их смотрел в скрипте с иллиданом.
вроде разобрался, спс.

YuruY 17.04.2010 12:41

Цитата:

Сообщение от PSZ (Сообщение 4631)
Зачем хаки использовать, если есть MovePoint()?

А если они группой идут?

PSZ 17.04.2010 23:20

А какая разница? Ну всем MovePoint(). Или одному MovePoint, остальным - MoveChase(). Тут уже надо конкретные задачи рассматривать.

MuTaToR 23.04.2010 21:00

А не подскажите где тут ошибка? он проходит только в 1 точку, а во 2 не хочет...
Код:

        if(MoveTime < uiDiff)
        {
            switch(MovePoint)
            {
                case 0:
                    m_creature->GetMotionMaster()->MovePoint(0, -5095.5, -11249.5, 1);
                    MoveTime = 8700;
                    MovePoint++;
                    break;
                case 1:
                    m_creature->GetMotionMaster()->MovePoint(0, -5089.5, -11253, 1);
                    MoveTime = 63000;
                    MovePoint++;
                    break;

во втором MovePoint точку вместо нуля ставил 1, не помогает.
Это может быть из-за того что функция и переменная с одинаковым именем? Мне кажется что не из-за этого.

rsa 23.04.2010 21:20

Курим маны на предмет MovementInform, грузим все точки сразу и двигаем моба по траектории. Или если ты хочешь заставить работать свою конструкцию, лови ручками приход его в точку 0, кидай ->GetMotionMaster()->MovementExpired() и только после этого давай следующую точку 0, а то она для него так и остается непройденной...

YuruY 23.04.2010 21:21

В тринити реализовано, ест таблица для этого "creature_formations", но в точке разворота группы косяк, не заметен игрокам, но разрабам виден. ;)

Lordronn 03.08.2010 23:40

Код:

MovePoint++;
на
Код:

++MovePoint;

nuclear 04.08.2010 17:28

Разница какая?

MangMan 04.08.2010 17:41

Код:

i++
сперва использозуется значение и, потом увеличивается значение (постинкремент). Операция с переменной
Код:

++i
сперва увеличивается значение, потом используется. Это будет копия результата операции с переменной

nuclear 04.08.2010 18:33

Я знаю. Тут разница какая? Но пусть ответит Lordronn

rsa 05.08.2010 07:09

Ничего он не ответит. Бред потому что ;)

LordJZ 05.08.2010 07:15

Не бред, пре-инкрементация работает быстрее, чем пост-инкрементация.

KiriX 05.08.2010 12:12

Цитата:

Сообщение от LordJZ (Сообщение 12004)
Не бред, пре-инкрементация работает быстрее, чем пост-инкрементация.

Возможно, но в данном случае ничего принципиально не меняет.

rsa 05.08.2010 12:13

Цитата:

Сообщение от LordJZ (Сообщение 12004)
Не бред, пре-инкрементация работает быстрее, чем пост-инкрементация.

может посчитаешь количество микросекунд экономии с учетом что счетчик щелкнет 3-5 раз всего?

RomanRom2 05.08.2010 12:20

Цитата:

Сообщение от LordJZ (Сообщение 12004)
Не бред, пре-инкрементация работает быстрее, чем пост-инкрементация.

теоритически - да. на практике нет никакой разницы в современных компиляторах. они давно уже умеют оптимизировать эти участки кода.


Текущее время: 16:33. Часовой пояс GMT +3.

ru-mangos.ru - Русское сообщество MaNGOS