Сейчас 05:27:05 Четверг, 2 мая, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Краш цикла
[Вопрос] Краш цикла
MelodiaДата: Воскресенье, 15 Декабря 2013, 13:31:31 | Сообщение # 1
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Сел на днях редачить свою АОС-ку и у меня начал портачить триггер пмка героев.
Вроде бы ничего не затрагивал связанное с ним, но из-за вот ЭТОЙ(выделено красным) секции цикл выполняется лишь 1 раз а не 10. В чём дело - хз.
Промучался с проверкой часа три наверное, потом плюнул на всё и просто перенес данные объектов на копию и триггеры нове скопировал в копию.
Естесственно, всё работает.
Но всё же интересно, с какой радости вдруг этот триг перестал пахать? Его действия я и в другое место выносил, но всё равно только 1 раз цикл прочесывался вместо 10,
я даже пробовал ставить от 1 до 5+5 хДДД



Если отключить красную область - цикл прогоняется положенные 10 раз.
Что за чертовщина?
Причем, повторяю, в копии всё работает исправно.


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА


Сообщение отредактировал Melodia - Воскресенье, 15 Декабря 2013, 13:32:56
 

BorodachДата: Воскресенье, 15 Декабря 2013, 18:30:38 | Сообщение # 2
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Melodia, попробуй изменить цыкл Integer A, на свой Integer

Karamba
 

MelodiaДата: Воскресенье, 15 Декабря 2013, 18:59:15 | Сообщение # 3
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Borodach, окей

Добавлено (15 Декабря 2013, 18:59:15)
---------------------------------------------
Невероятно, но факт. Вроде замена локальной А на любую свою переменную в чём то другом помогать должно же? Ток не помню в чем, ы.

Превратил ГУИ в текст и заменил интеджер а на глобалку теперь пашет.
Однако - в чём проблема этих ашек бешек? В принципе я то на копии продолжаю делать-то, просто любопытно - почему ни с того ни ссего триггер самозапоролся?


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА


Сообщение отредактировал Melodia - Воскресенье, 15 Декабря 2013, 19:04:14
 

BorodachДата: Воскресенье, 15 Декабря 2013, 19:50:40 | Сообщение # 4
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Melodia, Вполне возможно что месте с этим цыклом запускался еще один с переменной Integer A, и перебивали друг друга hmm

Karamba
 

MelodiaДата: Воскресенье, 15 Декабря 2013, 20:10:35 | Сообщение # 5
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Borodach, ну дык у меня довольно-таки много таких триггеров О_о
я конечно всегда старался, чтобы периоды в триггерах были такие, чтобы не совпадало время их срабатывания(не помню почему), но их там ммммммм много вообщем, вроде не глюкают. А мб мне кажется, что не глюкают...


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BorodachДата: Понедельник, 16 Декабря 2013, 14:36:59 | Сообщение # 6
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Melodia, Их совпадение маловероятное, они работают мгновенно. Но если цыкл А в цыкле А, то это будет такая билибирда, ну или цыкл с вейтом

Karamba
 

SirNikolasДата: Понедельник, 16 Декабря 2013, 14:38:27 | Сообщение # 7
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Цитата Melodia ()
чтобы не совпадало время их срабатывания
И еще раз: в war3 НЕТ многопоточности.
Один триггер может прервать работу другого только в результате реакции на событие, которое тот вызвал (простейший пример - нанесение урона: всем известен случай, когда триггер запускает сам себя, уходя в бесконечную рекурсию). Либо тот другой вызывает wait.


 

MelodiaДата: Понедельник, 16 Декабря 2013, 15:10:20 | Сообщение # 8
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Borodach ()
Но если цыкл А в цыкле А, то это будет такая билибирда, ну или цыкл с вейтом

Ну до такого у меня, слава прокурору, ни разу ума не хватало. Хотя не, вейты пробовал, но потом понял, что если в сумме вейт будет дольше секунды - там всё поломается, ОДНАКО - в Экономке у мну фишки двигаются как раз-таки циклом с вейтом, противоречие моим же словам - там можно двинуться и на 30 клеток с вейтом 0.00(0.10), что в сумме дольше секунды. %)

SirNikolas, эмм, не совсем догоняю, но у меня в кратком виде вот что:
в начале игры юниты распихиваются по группам (для разных модов).
После настроек запускается триг Setup all, где после определенных действий следует вейт 3 сек и запускается вот этот триг Pick. потом снова вейт в сетапе пару сек и дальше пляшется.
Ну вот. Оно вседа работало, а вот ситуация, что вдруг перестало пахать, хоть я и не вмешивал ничего по типу периодических триггеров с циклом, которые бы выполнялись до пика героев, хоп - 1 раз только стало прогоняться, для красного игрока. остал копию, копирнул на неё все изменения - пашет, а в "оригинале" - не пашет. Че за чудеса


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

ExtrematorДата: Понедельник, 16 Декабря 2013, 17:36:28 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Цитата Melodia ()
Вроде замена локальной А на любую свою переменную
Базовые "Integer A/B" не являются локальными...
 

MelodiaДата: Понедельник, 16 Декабря 2013, 18:14:03 | Сообщение # 10
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Extremator ()
Базовые "Integer A/B" не являются локальными

ну теперь понятно :D

Добавлено (16 Декабря 2013, 18:14:03)
---------------------------------------------
ну вообщем - опять-таки - в чём абсурд, абсурд в том, что если я пытаюсь приравнять Unit[A] хоть к чему-то(даже если отключить красную область и написать действие "создать пехотинца") - то цикл будет 1 раз делаться. Такая вот канитель. :p


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА


Сообщение отредактировал Melodia - Понедельник, 16 Декабря 2013, 18:14:20
 

BorodachДата: Вторник, 17 Декабря 2013, 14:30:36 | Сообщение # 11
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Скинуть триггер можешь?

Karamba
 

MelodiaДата: Вторник, 17 Декабря 2013, 15:12:36 | Сообщение # 12
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Borodach, Вот

CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BorodachДата: Вторник, 17 Декабря 2013, 18:08:28 | Сообщение # 13
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Что за "триггер хаос" ??? попытки понять все это провалились... Можно было попробовать найти ошибку выводом сообщения, но там триггер обрезан

Karamba
 

MelodiaДата: Вторник, 17 Декабря 2013, 18:21:14 | Сообщение # 14
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Borodach, триггер не обрезан, просто без данных об объекте он негоден. :D

Цитата Borodach ()
попытки понять все это провалились...

А чего непонятного? О_о Мне вот наоборот в каше джасса разобраться трудно, сколько не пытался номера Киллов смертей ассистов у Карабаса понять - так и не врубился в его систему. Сделал свою. +бесит что просто так не скопируешь пачку дейстаий и не отображает сразу, где используется удаляемая переменная.

я даже больше скажу - очень короткий триг, раньше он выглядел ваще адски.
Что в нем происходит(Сверху вниз):

От 1 до 10
если игрок играет то
сделать 11 или 12 игрока союзниками с ним

Далее идет красная секция -
в зависимости от мода выбирается группа, из которой будет выбран случайный юнит и задан как Unit[integer A]

Далее -
присваиваем имя игрока, даем свиток тп, устанавливаем "последнее хп" как 1000 - для "камбеков" надо, "Почти пропал".
Добавляем в выбор, устанавливаем точку героя, включаем триггер движения точек.
Подводим камеру.

Если это тип героя ХХХ то создать специальный юнит нужный.

Если это компьютер - учим ему приоритетные скиллы

Цикл заканчивается
Убираются юниты группы 1 - в ней находятся ВСЕ герои, таким образом группы всех модов чисты.
Разрушаем все остальные группы модов.

Вот и всё, что сложного?)


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Вторник, 17 Декабря 2013, 18:41:39 | Сообщение # 15
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Я уже третий день залипаю на этом скриншоте и я не перестаю верить в свою победу.
А тем временем, о чем карта?
 

MelodiaДата: Вторник, 17 Декабря 2013, 18:52:20 | Сообщение # 16
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Bibo,
Цитата Melodia ()
Сел на днях редачить свою АОС-ку

Добавлено (17 Декабря 2013, 18:52:20)
---------------------------------------------
Вооот ета мапа


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Вторник, 17 Декабря 2013, 18:55:14 | Сообщение # 17
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Твердо могу сказать только одно, нужно продолжать переосмысливать триггер, такое огромное количество действий и условий в пределах одного цикла, это как минимум вульгарно, ну и как следствие вырвиглаз.
 

MelodiaДата: Вторник, 17 Декабря 2013, 19:01:38 | Сообщение # 18
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Bibo, то есть по твоему ЭТО - много?)))) хДДД

Добавлено (17 Декабря 2013, 19:01:38)
---------------------------------------------
хочешь я тебе скину цикл с Bejeweled ?
Ты же точно повесишься.
Кстати, Биджуелд содержит всего 12 триггеров, причем не слишком больших, несмотря на адский объём заковырок.


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Вторник, 17 Декабря 2013, 19:12:11 | Сообщение # 19
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
Да, по моему это очень много, а то что бесконечность не предел, я и на своем опыте убедился.
 

MelodiaДата: Вторник, 17 Декабря 2013, 19:16:30 | Сообщение # 20
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
вообще-то больше 900 с чем-то итераций за 1 хап ты не сделаешь. Поэтому части триггера там отделены вейтом 0.00 сек.

То есть, цикл от 1 жо 13
---------------цикл от 1 жо 53
-----------------------------цикл от 1 жо 25

В любом случае до конца не доделается, т.к. общее количество действий уже больше 900 с копецками.
Мб на джассе это как-то обходят...
А мультиборд для справки ещё меньше действий в цикле позволяет выполнить.


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

BiboДата: Вторник, 17 Декабря 2013, 19:37:19 | Сообщение # 21
Группа: Проверенные
Сообщений: 741
Награды: 0
Блокировки:
А стоило ли делать эту ремарку на цитату Базза Лайтера? В общем, я в себя если что-то, я все равно думаю, что какие-то может быть что-то.
 

MelodiaДата: Вторник, 17 Декабря 2013, 19:46:41 | Сообщение # 22
Группа: Проверенные
Сообщений: 8026
Награды: 5
Репутация: 5041
Блокировки:
Цитата Bibo ()
А стоило ли делать эту ремарку на цитату Базза Лайтера? В общем, я в себя если что-то, я все равно думаю, что какие-то может быть что-то.

http://www.youtube.com/watch?v....a7zpVIA

Добавлено (17 Декабря 2013, 19:46:41)
---------------------------------------------
даже вот


CM wars 1.15
ЭПОХА АНИМИРОВАННЫХ ТРИГГИРАФ ПРЕШЛА
 

Форум о Warcraft 3 » Раздел для картостроителей » GUI / Jass » [Вопрос] Краш цикла
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz