Danial
offline
Опыт:
1,342Активность: |
Ограничение на количество выполнений цикла
Скажите, какое максимальное число раз может быть выполнен цикл? Вот, допустим, я создаю триггер «Cycle» с таким действием:
И в результате вижу, что цикл выполнился не 10 000 раз, как я того хотел, а только 6520 раз. А последняя функция вообще проигнорировалась. Если же положить «exitwhen i > 6520» или меньшее число, что тригер будет выполнен правильно (см. скрин 2).
Значил ли всё это, что циклы в Jass’е не могут выполняться больше 6520 раз? И что делать, если нужен цикл, который бы выполнялся 10 000 или большее число раз? Отредактировано ShadoW DaemoN, 30.01.2012 в 07:27. |
30.01.2012, 07:01 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
vladfaust
offline
Опыт:
12,764Активность: |
Не знаю насчет лимитов. Попробуй в одном триггере несколько циклов. В первом лимит 6520, во втором (10000-6520). |
30.01.2012, 07:09 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Danial
offline
Опыт:
1,342Активность: |
Если вложить несколько циклов в один, то результат останется таким же. Действие call KillUnit( gg_unit_hpea_0000 ) опять не выполнено и call DisplayTextToForce( GetPlayersAll(), I2S(i) ) 10 000 раз не запущенно (см скрин в приложении).
Отредактировано Danial, 01.02.2012 в 13:05. |
30.01.2012, 07:34 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Msey
????
offline
Опыт:
67,346Активность: |
Danial:
потому что у тебя включено новое форматирование что мешает разбить цикл на несколько? |
30.01.2012, 08:00 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
youtube
сктыщь
offline
Опыт:
8,025Активность: |
как вариант переместить это действие, за цикл
и число будет больше |
30.01.2012, 08:07 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
См посты тоадкопа например =) т.е. правильное решение - бить поток на части с пом ExecuteFunc |
30.01.2012, 08:17 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Danial
offline
Опыт:
1,342Активность: |
Msey, разбить цикл на несколько я не могу, потому что в моём примере он выполнятся даже не 6520, а около 50 раз (видимо, чем сложнее функция, которая должна выполнятся, тем быстрее вылетит цикл). Это будут километры кода, если разбить на множество циклов…
Youtube, дело в том, что я хочу даже не столько запустить цикл 10 000 раз, сколько выполнить какое-то действие 10 000 раз. В моём примере это действие call DisplayTextToForce( GetPlayersAll(), I2S(i) ), но это только для примера. На самом деле там десятки различных функций и вложенных циклов…
ScorpioT1000, чё-то не доходит до меня, как в пределах одной функции запустить 10 000 раз одно действие с помощью ExecuteFunc… Можно какой-нибудь пример хотя бы в самом общем виде? |
30.01.2012, 09:41 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
offline
Опыт: отключен
|
|
30.01.2012, 09:52 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|