nic666
offline
Опыт:
5,612Активность: |
IssuePointOrder помогите с триггером
В карте см. тут
Искал ошибку 3 дня, вылетает варкрафт с сообщение Access Violation... Ошибка оказалась в строке "call IssuePointOrder( u, "move", nx ,y )" если ее удалить, то нет ошибки... Но это не интересно. Помогите пожалуйста с картой. Идея этого кода в том, что когда вычисляется что эффективность юнита равна нулю, - то юнит убегает на максимальной скорости. Проверяется потенциальный юнит через FIFO буффер-массив с интервалом 0.1 секунды, переполнение массива исключено... Код:
В коде 6911 это границы карты с большим запасом где-то еще на 256 точек... nic666 добавил: В карте Триггер откуда это вызывается называется Bypass nic666 добавил: а первопричина определяется в триггерах DMG to Left и DMG to Right - это атака одного из юнитов |
18.02.2009, 14:55 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Igores
НИИ 4А-Во! Кафедра Джасс.
offline
Опыт:
5,325Активность: |
Лучше создавай динамический триггер, с событием, где мана меньше 1, нечего грузить карту ненужным таймером. Не понял последнего условия, что оно делает? И сделай его через нативки, а не бж. Походу косяк в последнем условии.
Igores добавил: Для сведения Максимальная скорость 522, у тебя юнит че, всегда по горизонтали убегает?:-) |
18.02.2009, 15:31 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
PlayerDark
Coraline
offline
Опыт:
10,569Активность: |
Насколько я понимаю тут все глюки оттого что между отдачей приказа не стоит вейт. |
18.02.2009, 16:14 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
nic666
offline
Опыт:
5,612Активность: |
Igores
1. Не смотрели вы карту господин лентяй! Да посмотрите карту - юнит всегда по горизонтали бегает карта 32x128 дорожка там одна... 2. Для функции RAbsBJ нет нативы :) она тут единственная с BJ и это условие не важно... оно означает "когда бежать некуда, то не надо бежать", а надо атаковать пусть даже и не эффективно... 3. Удаление строки "call SetUnitMoveSpeed( u, 500 )" не исправляет проблемы - дело явно не в ней. 4. Зачем создавать динамические триггеры, когда это требуется практически всегда ?....... лучше сделать нормальный статический.... nic666 добавил: PlayerDark Цитата:
Если вас не затрудняет, обясните где именно надо поставить Wait |
|
18.02.2009, 16:31 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
PlayerDark
Coraline
offline
Опыт:
10,569Активность: |
nic666 прямо перед IssuePointOrder.
|
18.02.2009, 16:32 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Igores
НИИ 4А-Во! Кафедра Джасс.
offline
Опыт:
5,325Активность: |
PlayerDark, у меня в карте не стоит никаких вэйтов и всё работает нормально. Автор темы, ну тогда делай статичный триггер. Ту бж функцию можно самому написать, просто делаешь два условия и всё. Фиг знает в чем тут ошибка, вроде всё правильно. Хз, попробуй ставить в качестве координаты точки не нх, а нх-20:-)
|
18.02.2009, 16:55 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
nic666
offline
Опыт:
5,612Активность: |
не помогло... но кажется и не должно было... так как и так это не сразу запускается, а через минимум 0.1 секунды после события... |
18.02.2009, 18:13 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
PlayerDark
Coraline
offline
Опыт:
10,569Активность: |
Незнаю, тогда проблема не в коде а где то еще. IssuePointOrder часто вызывает вылет игры когда используется. |
18.02.2009, 19:31 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Igores
НИИ 4А-Во! Кафедра Джасс.
offline
Опыт:
5,325Активность: |
Ну, незнаю, просто у меня в спелле создается больше сотни пустышек, которым я даю приказ бежать в нужную точку, и все работает нормально. Автор, отправь спелл, посмотрю на досуге. |
18.02.2009, 22:05 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
возможен вариант смерти в потоке другом - тригеры зарегестрированные на приказа получение событие есть ли у вас? |
19.02.2009, 12:35 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
nic666
offline
Опыт:
5,612Активность: |
ADOLF
В первом посте ссылка на карту. Там есть триггеры на событие "юнит атакован". И именно в таком событии и вычисляется дамаж и наносится триггером, а если дамаж=0 то значит юнит должен бросать атаку и бежать... если непосредственно в этом триггере поставить вызов функции - то юнит не реагирует... Приходится разделять и в другом триге это делать, а в другом - ошибка вылетает. Не сразу а минут через 5-7... |
24.02.2009, 08:32 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
108,439Активность: |
ну анивей возможности тестить карту у меня нету, так что хз, я лишь сделал предположение |
24.02.2009, 10:09 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|