![]() |
Всем привет, снова.
У меня есть код, взятый из примеров работы с plugin-sdk, который спавнит пешехода. Я его немного переделал, но проблема конкретно не в этом. Вот код: C++: Код:
floatТак вот, я хочу постоянно обновлять позицию педа, чтоб она была равна текущей позиции игрока. Педа он спавнит, все ок, но вот при попытке создать бесконечный цикл, в котором будет постоянно обновляться его координаты, игра тупо крашится и ничего не работает. Внятной документации по plugin-sdk я не нашел, приходиться изучать все самому методом тыка, но сейчас, нужна помощь знающих людей, ибо я уже не знаю что делать. |
Тебе нельзя такие циклы использовать ибо они вызываются в основном потоке игры и по этому у тебя происходит зависание. Тебе как раз надо просто в основном потоке игры использовать таймеры вместо задержки для обновления позиции gameProcessEvent, что и есть основным потоком игры грубо говоря. Создавать для такого отдельный поток не рекомендую вообще.
|
Цитата:
Цитата:
Вместо цикла, для обновления позиции, я использую gameProcessEvent. Правильно? То есть, это должно выглядить как то так? C++: Код:
Events |
Да. За CTimer я хз, не работал с ним, но я не вижу тут проверки на указатель и тебе все это можно в общей функе делать. Нет смысла разный код пихать в один и тот же элемент. Хотя кому как удобней)
|
Цитата:
Проверку на указатель сделаю, само собой C++: Код:
staticНаписал такой вот код, но все равно крашит. Что тут не так? Сейчас кину полный код: C++: Код:
voidХорошо, я решил сделать так. В одном gameProcessEvent, я создаю педа и в нем же постоянно обновляю его позицию. Только вот незадача, gameProcessEvent это цикл, значит педов будет создаваться дофига и это крашнет игру. А вне gameProcessEvent создать невозможно, тоже крашнет. Как быть? Нужна наводка, пожалуйста, дальше сам разберусь Я уже и класс пытался создать, чтоб создать новый поток, где будет обновление координат, но это тоже не увенчалось успехом Всё! Я всё решил, сам разобрался)) Кароче, сPed *ped объявил глобальной переменной, в одной функции создавал самого педа, в другой функции я синхронизировал его с игроком. После этого, просто C++: Код:
pluginДля обеих функций))) Спасибо Dark_KnightЗа наводку, видел бы ты радость на моем лице сейчас) |
Самое интересное в том, что это все можно в одну функцию запихать и не мучатся . Если мне еще не показалось, то тут еще у тебя утечка памяти.
|
Цитата:
Благо, написал все таки рабочий вариант. а тебе +rep |
| Время: 01:53 |