Как подождать в if\than\else?
|
|
Ajaccio | Дата: Воскресенье, 20 Февраля 2011, 22:14:21 | Сообщение # 51 |
7 уровень
Группа: Проверенные
Сообщений: 299
Награды: 1
Репутация: 239
Блокировки:
| Хм, я конечно GUI плохо помню, однако не могу понять логику построения. Функция "Отряд - Выбрать каждого юнита в..." по порядку обрабатывает всех юнитов группы. Вы же хотите при обработке группы поставить паузу -> пока не пройдет эта пауза функция не преступит к следующему юниту отряда. Также Warcraft наверняка палит эту паузу в неподходящем месте и просто обрывает работу... В общем нельзя ставить там паузу. Надо бы запоминать отряд, а потом работать с ним снова: 1) Отряд - Выбрать каждого юнита в... <Ваши условия> - > делать действия до паузы. 2) Запомнить этот отряд в переменную. 3) Подождать сколько нужно. 4) Отряд - Выбрать каждого юнита в... <Запомненной группе> - > делать действия после паузы.
XOR EAX, EAX MOV EAX, 00H ;; NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO.
|
|
|
|
ZanaraZ | Дата: Понедельник, 21 Февраля 2011, 08:06:59 | Сообщение # 52 |
5 уровень
Группа: Проверенные
Сообщений: 120
Награды: 0
Репутация: 28
Блокировки:
| Можно сделать немного другим способом выбрать юнит и тд и тп перед вейтом заноси их в переменную в даном случае у тебя это Unit123 = выбраный юнит потом не в нося в цикл делаеш вайт на 5 секунд а далее уже действие с переменной Unit123
Набрался мозгов, теперь буду себя сдерживать
|
|
|
|
Master12 | Дата: Понедельник, 21 Февраля 2011, 16:46:24 | Сообщение # 53 |
8 уровень
Группа: Проверенные
Сообщений: 775
Награды: 0
Репутация: 184
Блокировки:
| ZanaraZ, если вносить выбранных юнитов в переменную отряд, то внесется только один((
Говори, что бы я тебя увидел.
Сообщение отредактировал Master12 - Понедельник, 21 Февраля 2011, 16:46:31 |
|
|
|
ZanaraZ | Дата: Понедельник, 21 Февраля 2011, 19:02:16 | Сообщение # 54 |
5 уровень
Группа: Проверенные
Сообщений: 120
Награды: 0
Репутация: 28
Блокировки:
| Quote (Master12) внесется только один(( неправда сам лично делал вносится весь отряд (я столкнулся с 1 случаем где мне надо сравнивать 2 отряда переменные помогли) так что если ты устанавливаеш переменную как выбранный юнит то внесутся все
Набрался мозгов, теперь буду себя сдерживать
|
|
|
|
Master12 | Дата: Понедельник, 21 Февраля 2011, 20:45:59 | Сообщение # 55 |
8 уровень
Группа: Проверенные
Сообщений: 775
Награды: 0
Репутация: 184
Блокировки:
| Quote (Master12) Пониаешь, событие переодическое, и период не равен wait. Мне нужно работать именно с теми юнитами, которые сейчас были выбраны, а если я занесу их в отряд, то в течении 5 секунд нагромаздяться кучу юнитов и встанут все одновременно... Добавлено (21-02-2011, 20:45) --------------------------------------------- Kartoha, можешь подсказать, или ты иссяк?
Говори, что бы я тебя увидел.
Сообщение отредактировал Master12 - Понедельник, 21 Февраля 2011, 20:43:02 |
|
|
|
Kartoha | Дата: Понедельник, 21 Февраля 2011, 21:02:24 | Сообщение # 56 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| Master12, попробуй так, немного используется JASS, но зато должно сработать: Group - переменная типа группа Триггер: Событие - Время Periodic Event Условия: --- Действия: CS: local group g Set Group = (твои юниты) Отряд - Pick Every Units In Group And Do Actions делаеш все действия до вэйта Перед вэйтом: СS: set g = udg_Group Wait (сколько надо) CS: set udg_Group = g Отряд - Pick Every Units In Group And Do Actions твои действия CS: call DestroyGroup (g)
Сообщение отредактировал Kartoha - Понедельник, 21 Февраля 2011, 21:04:32 |
|
|
|
Master12 | Дата: Понедельник, 21 Февраля 2011, 21:20:53 | Сообщение # 57 |
8 уровень
Группа: Проверенные
Сообщений: 775
Награды: 0
Репутация: 184
Блокировки:
| Kartoha, спасибо! Локалки это что-то))
Говори, что бы я тебя увидел.
|
|
|
|
rixt7956 | Дата: Понедельник, 21 Февраля 2011, 21:27:04 | Сообщение # 58 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| В самом конце еще вставь set g=null иначе могут лаги начаться
|
|
|
|
Kartoha | Дата: Понедельник, 21 Февраля 2011, 21:33:46 | Сообщение # 59 |
10 уровень
Группа: Ветераны
Сообщений: 2851
Награды: 1
Блокировки:
| rixt7956, а разве call DestroyGroup не очищает переменную?
|
|
|
|
rixt7956 | Дата: Понедельник, 21 Февраля 2011, 21:36:04 | Сообщение # 60 |
9 уровень
Группа: Проверенные
Сообщений: 1097
Награды: 0
Репутация: 153
Блокировки:
| Так же можно циклом удалять юнитов из группы, занося их в массив, и потом во втором цикле заносить их обратно в группу. Добавлено (21-02-2011, 21:35) --------------------------------------------- Блин, не в той теме написал. Добавлено (21-02-2011, 21:36) --------------------------------------------- Нет, не очищает.
|
|
|
|