[Вопрос] Проверка координат
|
|
pein | Дата: Среда, 26 Октября 2011, 23:36:32 | Сообщение # 1 |
9 уровень
Группа: Проверенные
Сообщений: 1114
Награды: 1
Репутация: 272
Блокировки:
| Ну у меня такая система, событие отряд вошол в область = позиция юнита А0001* с расшерениями (100, 100,) действие удамить входящий юнит где А0001* - юнит на карте. Вопрос как сделать так чтоб тригер срабатывал не на 1го юнита а на весь тип юнитов А0001* На гуи я не знаю как сделать и не думаю что можна, может на джасс можно както ? я не силен в нем
|
|
|
|
[san9] | Дата: Четверг, 27 Октября 2011, 00:10:21 | Сообщение # 2 |
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
| pein, Заноси в отряд каждого юнита на карте Потом проверяй есть ли кто рядом с ним на n расстоянии.
|
|
|
|
pein | Дата: Четверг, 27 Октября 2011, 00:13:26 | Сообщение # 3 |
9 уровень
Группа: Проверенные
Сообщений: 1114
Награды: 1
Репутация: 272
Блокировки:
| [san9], я так и делаю Quote (pein) отряд вошол в область = позиция юнита А0001* с расшерениями (100, 100,) простоо надо чтоб в событие вместо 1го юнита стоял тип юнитов
|
|
|
|
[san9] | Дата: Четверг, 27 Октября 2011, 00:20:15 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
| pein, Ты не так делаешь Чтото типо так
Code Событие: Каждые 1 сек //можно меньше таймер сделать Условие: Действие: Отряд - Выбрать каждого юнита в (Вся карта) цикл: Если\то\иначе Если: Тип юнита(выбранный юнит) == твой тип То: Отряд - выбрать каждого юнита - юниты в диапозоне - Юниты в (200) (Позиция юнита(выбранный юнит)) цикл: Если\то\инче Если: //тут свои проверки делай То: //тут действия над юнитами который рядом с нужными юнитами Иначе:
Сообщение отредактировал [san9] - Четверг, 27 Октября 2011, 00:21:00 |
|
|
|
pein | Дата: Четверг, 27 Октября 2011, 00:31:54 | Сообщение # 5 |
9 уровень
Группа: Проверенные
Сообщений: 1114
Награды: 1
Репутация: 272
Блокировки:
| [san9], функция должна роботать на протяжение игры а как минимум Quote (|san9|) Каждые 1 сек //можно меньше таймер сделать и Quote (|san9|) Отряд - Выбрать каждого юнита в (Вся карта) будут тупить систему
|
|
|
|
[san9] | Дата: Четверг, 27 Октября 2011, 00:33:25 | Сообщение # 6 |
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
| pein, Могу написать на jass не лагающую систему если осилишь с импортом.
|
|
|
|
pein | Дата: Четверг, 27 Октября 2011, 00:41:21 | Сообщение # 7 |
9 уровень
Группа: Проверенные
Сообщений: 1114
Награды: 1
Репутация: 272
Блокировки:
| [san9], ок я знаю джасс но оч плохо но импортить смогу
|
|
|
|
[san9] | Дата: Четверг, 27 Октября 2011, 00:46:32 | Сообщение # 8 |
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
| pein, Скажи тогда более подробную информацию.
Надо проверять есть ли какой либо юнит рядом со всеми юнитами на картами определённого типа? Каких юнитов проверять?(героев,простых,воздушных или всех.Добавлено (27 Октябрь 2011, 00:43:52) --------------------------------------------- И что с ними делать. Добавлено (27 Октябрь 2011, 00:46:32) --------------------------------------------- а ну и врагов или союзников
|
|
|
|
Mep3aB4uK | Дата: Четверг, 27 Октября 2011, 04:22:36 | Сообщение # 9 |
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
| pein, Если ты хочешь сделать типо мины, то как вариант... даешь этому типу юнитов атаку 1-1 С: атакован У:Атакующий равно А0001 Д:бла-бла
|
|
|
|
Ty3uK | Дата: Четверг, 27 Октября 2011, 07:04:19 | Сообщение # 10 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| GetUnitTypeId(юнит) == 'тип юнита'
|
|
|
|
lawson | Дата: Четверг, 27 Октября 2011, 10:09:01 | Сообщение # 11 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| Quote (Mep3aB4uK) Если ты хочешь сделать типо мины, то как вариант ЧТо за чушь. У меня спелл который по действую схож на мины. Я просто создаю даммика с мне нужной моделькой, создаю под ним rect и локальный триггер на регистрацию входящих в него (rect) юнитов.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
Сообщение отредактировал lawson - Четверг, 27 Октября 2011, 10:09:46 |
|
|
|
Mep3aB4uK | Дата: Четверг, 27 Октября 2011, 12:15:01 | Сообщение # 12 |
9 уровень
Группа: Проверенные
Сообщений: 1019
Награды: 0
Репутация: 135
Блокировки:
| lawson, А если подумать.... как проще будет(ему), и без создания областей,которые тоже жрут память(не значительно но все же)
|
|
|
|
Ty3uK | Дата: Четверг, 27 Октября 2011, 13:29:04 | Сообщение # 13 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Рект не жрет много памяти. Рект- не область. Это объект. Создавай его в локалку и все хорошо. Памяти будет есть не больше, чем дамми, эффект или молния Добавлено (27 Октябрь 2011, 13:29:04) --------------------------------------------- Дуся осадил, сказал что много ректов != много молний. Лагает сильнее. От себя: Но если автору не нужен постоянный рект- думаю будет норм
|
|
|
|
pein | Дата: Четверг, 27 Октября 2011, 17:43:09 | Сообщение # 14 |
9 уровень
Группа: Проверенные
Сообщений: 1114
Награды: 1
Репутация: 272
Блокировки:
| фишка в том что данная нарабтка должна работать круглосуточно в игре.. Quote (Ty3uK) GetUnitTypeId(юнит) == 'тип юнита' и темо можна както замиксить на джасе в событие?Добавлено (27 Октябрь 2011, 17:43:09) --------------------------------------------- local real x = I2R(GetUnitPointValueByType('hgry')) local real y = I2R(GetUnitPointValueByType('hgry')) как исправить чтоб х и у были координатами юнита типа hgry
|
|
|
|
[san9] | Дата: Четверг, 27 Октября 2011, 17:56:08 | Сообщение # 15 |
10 уровень
Группа: Проверенные
Сообщений: 1500
Награды: 1
Репутация: 286
Блокировки:
| pein, Опиши нормально что ты хочеш сделать я сделаю.
|
|
|
|
Ty3uK | Дата: Четверг, 27 Октября 2011, 17:58:26 | Сообщение # 16 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| local unit u = local real x local real y if GetUnitType(u) == 'hgry' then set x = GetWidgetX(u) set y = GetWidgetY(u) endifДобавлено (27 Октябрь 2011, 17:58:26) --------------------------------------------- После юнит = пиши твоего юнита (триггерюнит и т.д.)
|
|
|
|
pein | Дата: Четверг, 27 Октября 2011, 18:08:11 | Сообщение # 17 |
9 уровень
Группа: Проверенные
Сообщений: 1114
Награды: 1
Репутация: 272
Блокировки:
| Quote (Ty3uK) local unit u = local real x local real y if GetUnitType(u) == 'hgry' then set x = GetWidgetX(u) set y = GetWidgetY(u) endif это должно бить в условие к примеру так У: юнит вошол в область (позиция юнита u с расшерениями 50, 50) call RegionAddRect(rectRegion, Rect( x - 50*0.5, y - 50*0.5, x + 50*0.5, y + 50*0.5 )) не знаю как задать 2 переменных х и у пока задал их так local real x = I2R(GetUnitPointValueByType('hgry')) local real y = I2R(GetUnitPointValueByType('hgry')) но ето не правильно
|
|
|
|
lawson | Дата: Четверг, 27 Октября 2011, 18:30:44 | Сообщение # 18 |
Группа: Проверенные
Сообщений: 3482
Награды: 0
Репутация: 974
Блокировки:
| pein, Как создавать ректы есть наработка.
Nic nie wiem bo mam chuj. редактирую посты! ВСЕ!
|
|
|
|
pein | Дата: Четверг, 27 Октября 2011, 18:35:44 | Сообщение # 19 |
9 уровень
Группа: Проверенные
Сообщений: 1114
Награды: 1
Репутация: 272
Блокировки:
| это не то
|
|
|
|
Hexing | Дата: Суббота, 05 Ноября 2011, 19:20:48 | Сообщение # 20 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote У: юнит вошол в область (позиция юнита u с расшерениями 50, 50) этого не описать двумя переменными - x и y попробуйте использовать trigger с event-ом вход на RegionAddRect(rectRegion, Rect( x - 50*0.5, y - 50*0.5, x + 50*0.5, y + 50*0.5 )) -- тоесть на rectRegion и действие - KillUnit(GetEnteringUnit()) p.s. это реализуемо на триггерах... Нужен пример, скажите, скину ссылку в лс
|
|
|
|