9thNerZul
forum/warcraft3
offline
Опыт:
4,869Активность: |
Проверка:есть ли юнит определенного типа в группе
Тригер принцип работы обьяснять не нужно, в принципе в чем суть: берется н число юнитов и добавляется в группу причем нужно чтобы в группу не добавились юниты одного и того же типа, чтоб не было группы с 3пехотинцами и 2 стрелками нужно чтоб было единично каждый тип.2 группы из одной данные переносятся в другую за учетом одного.Set unit first on group 1 Команда pick all units from unit group 2 and do action if unit type(picked unit) = unit type(выбранный нами) than remove picked unit from unit group 2 add unit(выбранный)to unit group 2.Этот способ мне кажется крайне неудобным, может есть другой способ? Пишу систематично на скорую руку так что типо ошибки в коде виноваты не говорите:) |
16.02.2009, 23:07 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
9thNerZul, а ты не поддерживаешь вариант недобавления этого юнита в группу сразу, что б потом не проверять, в группе он или нет?
|
17.02.2009, 00:26 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
9thNerZul
Как вариант: делаешь интовый массив на каждую группу, добавлешь туда рав коды добавленных в группу юнитов, при пик юнита, смотришь, есть ли такой рав код в массиве, если есть, то не добавляешь его в группу. |
17.02.2009, 05:02 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
NETRAT
offline
Опыт:
83,712Активность: |
индексировать типы юнитов и сопоставлять им флаг наличия в группе + ссылку на юнита в группе, при добавлении сверять флаг и удалять обьект по ссылке(если он не мертв или еще чего)
тут понадобится либо кеш, либо сдвиг равкодов типов + массив ссылка на обьект может выполнять функцию флага (если 0 то отсутствует) |
17.02.2009, 14:45 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
9thNerZul
forum/warcraft3
offline
Опыт:
4,869Активность: |
Не это конечно круто вы написали тут, а пример в действии можно? |
05.03.2009, 18:09 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
9thNerZul
Попозже будет тебе пример. не читай vJass manual, пиши все методом тыка, и дотыкаешься |
05.03.2009, 18:22 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
9thNerZul
forum/warcraft3
offline
Опыт:
4,869Активность: |
Цитата:
Я и так все методом тыка делаю:)Иначе не задавал бы таких вопросов. |
|
05.03.2009, 18:42 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
9thNerZul
Вообще, замени группу массивом юнитов обернутым структурой. Мороки будет гораздо меньше. Четко будешь знать какие у тебя в ней типы. |
05.03.2009, 18:46 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
9thNerZul
forum/warcraft3
offline
Опыт:
4,869Активность: |
Цитата:
if CountUnitsInGroup(GetUnitsOfTypeIdAll(GetUnitTypeId(GetEnumUnit()))) > 1 а ты вкурсе тут 2 БЖ функции) |
|
05.03.2009, 19:08 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
MF
Что-то вокруг не так
offline
Опыт:
26,594Активность: |
9thNerZul
Я что-то подобное говорил? Я рекомендовал отказаться от групп как таковых. В твоем случае это будет довольно таки удобное решение. |
05.03.2009, 19:09 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
9thNerZul
forum/warcraft3
offline
Опыт:
4,869Активность: |
Цитата:
Можешь пример в карте я чёто неочень понимаю как это сделать. |
|
05.03.2009, 19:28 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
9thNerZul
forum/warcraft3
offline
Опыт:
4,869Активность: |
Мне нужно чтоб при вводе определённой команды брались юниты в текущем выборе игрока(выбранные игроком)) и добавлялись в группу только чтоб не повторяясь там дальше я уже сделаю чё надо ну впринципе я хотел дальше прогнать эту группу по циклу и написать сообщения игроку какие типы юнита в группе.Это офф главное чтоб именно брались юниты выбранные игроком который написал сообщение и потом какими то махинациями попадали в группу при этом чтобы не повторялись.
9thNerZul добавил: Цитата:
Да я чё то попробывал неробит) |
|
05.03.2009, 19:36 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Артте
Open up your eyes
offline
Опыт:
23,423Активность: |
Мб как-то так? Если что-писал ночью, за юзание BJ не ругайте |
06.03.2009, 00:56 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|