XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Trokkin
L u a
offline
Опыт: 352
Активность:
Наполовину работающий JASS триггер
В процессе воплощения одной моей задумки, понадобилось заполнить всю карту зданиями одного типа, что реализовывалось бы триггером, написанным мной на JASS-е, и всё вроде как работало... До определённого момента - триггер заполнял только треть нужной мне карты. Немного поэкспериментировав с триггером, я выяснил, что чем больше действий описано в триггере, тем меньше он создаёт юнитов, т.е. исполняет функцию CreateUnit(). Также, функции, вызываемые в конце триггера также не работают. Триггер просто обрывает свою работу на определённом моменте, видимо, когда достигается лимит вызванных функций. Отделение содержимого цикла в отдельную функцию не помогло. Решения я так и не нашёл, по этому пишу сюда за помощью в проблеме. Карта с триггером прикладывается.
Прикрепленные файлы
Тип файла: w3x Bone Lands.w3x (106.1 Кбайт, 6 просмотров )
Старый 14.03.2015, 13:04
Melissa
Я всегда хочу как лучше!
offline
Опыт: 30,496
Активность:
вейтом разделяй по ~900 действий.
Старый 14.03.2015, 13:23
adic3x

offline
Опыт: 107,539
Активность:
Один триггер (условно говоря) может выполнить ограниченное количество jass инструкций (для разный действий из редактора выполняется разное количество jass инструкций). Если хотите подробности - ищите "поток".
Старый 14.03.2015, 13:45
Trokkin
L u a
offline
Опыт: 352
Активность:
Спасибо, wait помог, теперь всё работает.
Старый 14.03.2015, 14:12
Tapper
Ололо
offline
Опыт: 1,882
Активность:
Trokkin:
Спасибо, wait помог, теперь всё работает.
Все же вейт как-то не практично, лучше делай как сказал Адольф.
Старый 14.03.2015, 16:34
SirNickolas

offline
Опыт: 32
Активность:
Wait имеет вероятность в любой ситуации упасть по необъяснимым причинам. Лучше запускать части кода через ExecuteFunc.
Старый 14.03.2015, 17:03
ScorpioT1000
Работаем
online
Опыт: отключен
Старый 16.03.2015, 13:03
Pippetz
Silenced by Pippetz
offline
Опыт: 1,015
Активность:
Код не смотрел, но:
  1. Вейт по определению уг
  2. Соответственно пункту 1 - удовлетворившись решением через вейт сейчас, можешь сильно пожалеть потом, если планируешь совершенствоваться как кодер
  3. Из личного опыта - "триггер просто обрывает свою работу на определённом моменте" может быть симптомом того, что в этот момент должно произойти что-то, чего почему-либо произойти не может, так что отладка с простановкой в разные "моменты" в помощь
Старый 16.03.2015, 14:38
Melissa
Я всегда хочу как лучше!
offline
Опыт: 30,496
Активность:
Для внезапных умников был написан пост №3. Читаем. делаем отладку у себя в мозу, проверяем.
Melissa добавил:
И №6 кстати тоже, да.
Старый 16.03.2015, 20:35
adic3x

offline
Опыт: 107,539
Активность:
Wait имеет вероятность в любой ситуации упасть по необъяснимым причинам. Лучше запускать части кода через ExecuteFunc.
У меня кстати никогда проблем с Wait (и TriggerSleepAction) не возникало. Возможно потому, что я ими почти никогда не пользовался.
Старый 17.03.2015, 22:36
Clamp
Lost in space
offline
Опыт: 71,258
Активность:
Каждый раз, когда ты используешь вейт, где-то в мире умирает котёнок.
Старый 17.03.2015, 23:24
Melissa
Я всегда хочу как лучше!
offline
Опыт: 30,496
Активность:
Особенно если юзаешь wait for condition или wait for sound
Старый 18.03.2015, 00:25
ScorpioT1000
Работаем
online
Опыт: отключен
Нормально вейты работают, не надо упарываться. Только юзать аналог polledwait от векса, т.к. в дефолтном утечки, а простой слип не учитывает паузы
ScorpioT1000 добавил:
Вот тут даже есть пример как с вейтом выделяются юниты по удаленности xgm.guru/p/wc3/sc-sorted-selector
Старый 18.03.2015, 16:41
Melissa
Я всегда хочу как лучше!
offline
Опыт: 30,496
Активность:
ScorpioT1000:
т.к. в дефолтном утечки
?
Если без трололо, то вейт плох невозможностью изменения длительности, когда он уже начался и неточностью, если ставить вейт больше 0.1 - будет неточность от 0.05 вплоть до нескольких сек(при длительных вейтах)
Старый 18.03.2015, 17:41
adic3x

offline
Опыт: 107,539
Активность:
то вейт плох невозможностью изменения длительности, когда он уже начался и неточностью, если ставить вейт больше 0.1 - будет неточность от 0.05 вплоть до нескольких сек(при длительных вейтах)
А зачем вам такая точность? Приведите пример.
Старый 18.03.2015, 18:47
Melissa
Я всегда хочу как лучше!
offline
Опыт: 30,496
Активность:
ADOLF:
А зачем вам такая точность? Приведите пример.
на вскидку
нужно удалять входящих юнитов через 12 секунд после входа, челлендж -мини-игра скажем.
вейт 12 сек оставит юнитов несколько дольше, чем нужно.
И да, все знают, что таймерами грамотнее, кэпы
Melissa добавил:
Ещё неточность вейтов будет неудобна в роликах, но в синематике благо почти всегда актуальнее wait for condition или wait for sound, а не обычный вейт.
Старый 18.03.2015, 20:46
adic3x

offline
Опыт: 107,539
Активность:
нужно удалять входящих юнитов через 12 секунд после входа, челлендж -мини-игра скажем.
вейт 12 сек оставит юнитов несколько дольше, чем нужно.
На 0.02 секунды? Вы серьезно?
Ещё неточность вейтов будет неудобна в роликах
Бедные Близы, и как они вообще на GUI сделали всю стандартную кампанию...
Старый 19.03.2015, 22:35
Clamp
Lost in space
offline
Опыт: 71,258
Активность:
ADOLF:
А зачем вам такая точность? Приведите пример.
Движение снарядов же.
Старый 20.03.2015, 06:50
Melissa
Я всегда хочу как лучше!
offline
Опыт: 30,496
Активность:
ADOLF:
На 0.02 секунды? Вы серьезно?
больше вообще-то, всегда случайная, для справки. Запустите таймер, поэкспериментируйте.
ADOLF:
Бедные Близы, и как они вообще на GUI сделали всю стандартную кампанию...
Я вообще всё на них делаю, всех жанров, никаких проблем не испытываю.
Clamp:
А зачем вам такая точность? Приведите пример.
Движение снарядов же.
:trollface:

Отредактировано Melissa, 20.03.2015 в 11:38.
Старый 20.03.2015, 11:38
Clamp
Lost in space
offline
Опыт: 71,258
Активность:
Melissa:
Запустите таймер, поэкспериментируйте.
Сказал чувак '12 года регистрации автору cJass и нескольких крупных проектов.
Старый 20.03.2015, 16:45
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 14:27.