Доброго времени суток всем. Как обычно расписываю важные пункты заранее:
- Я не профессиональный коддер
- Я не профессиональный пользователь Редактора W3
- Я не понимаю Jass и прочие виды кода
- Я прошу помочь в самом глупом формате мира
Описание вопроса:
У меня есть Действие в триггере, которое мне подсказал пользователь rsfghd, для того чтобы сократить "утечки" (Код ниже вырванный из всего контекста, я просто хочу в нем разобраться полностью.)
У меня есть Действие в триггере, которое мне подсказал пользователь rsfghd, для того чтобы сократить "утечки" (Код ниже вырванный из всего контекста, я просто хочу в нем разобраться полностью.)
call GroupEnumUnitsInRect( udg_PlayGroup, bj_mapInitialPlayableArea, udg_Temp)
Я понимаю его в таком виде: Он закидывает определенные объекты по логической переменной "Temp", в ранее созданную переменную отряда "PlayGroup", на территории игровой области "mapInitialPlayableArea". Возможно формулировка не до конца идеальна, но суть вроде работы я понимаю.
Я хочу более обширно понять следующее:
- Как можно ссылаться на ранее созданную область? Вместо "mapInitialPlayableArea"
- Как можно указать понятие "В диапазоне (RANGE ранее реальной переменной) от ранее созданной точки переменной". Вместо "mapInitialPlayableArea"
Дополнительная информация:
- Я изучал статьи, но я слишком глуп видимо, ибо не мог догнать какой код нужно туда вбить, дабы получить необходимый результат;
- Я пробовал засовывать разные методы Вместо "mapInitialPlayableArea" (методом тыка). Но результат был отрицательный
- Пожалуйста, можете дать ответ в формате "Это - делает это, Вместо "mapInitialPlayableArea""
Заранее всем спасибо за помощь!
Уважаемые Администраторы сайта - не блокируйте мой Вопрос из-за того что здесь может показаться что несколько вопросов. Но это одна тема вопроса, просто нелогично будет с моей стороны создавать каждый отдельно :(
Принятый ответ
Привет! Поковырялся чуток, прикладываю скрин, видео и карту. Буквально: скачиваешь редактор JNGP это продвинутый редактор позволяющий без вазелина с маслом вкатиться в жасс. Чтобы ссылаться на ранее созданную область вместо "mapInitialPlayableArea" необходимо создать область(кто бы мог подумать xd) , создать триггер гуишный, в нём создать например событие юнит входит в область, выбрать эту область, затем конвертировать в жасс и найти это событие, в нем найти параметр rect у функции(в скобочках между запятыми, в видосе подробнее), рекомендую для этого JNGP , он собственно показывает где какой параметр у функций, плюс в нем можно собсна посмотреть все функции чо они делают чо умеют и тогдалее, для оптимизации.
Чтобы выбрать всех в диапазоне нужно будет использовать другую нативку:
Вместо g мелкой вставляешь какую хочешь группу, если не то вставишь то JNGP тебе подскажет в чём ты ошибся и что надо исправить. вместо filter пишешь свой фильтр, ну там в видосе подробнее.
Вместо g мелкой вставляешь какую хочешь группу, если не то вставишь то JNGP тебе подскажет в чём ты ошибся и что надо исправить. вместо filter пишешь свой фильтр, ну там в видосе подробнее.
(Это для области) call GroupEnumUnitsInRange(g,GetRectCenterX(gg_rct________________000),GetRectCenterY(gg_rct________________000),900,Condition(function filter) )
(Это для юнита) call GroupEnumUnitsInRange(g,GetUnitX(gg_unit_hfoo_0000),GetUnitY(gg_unit_hfoo_0000),900,Condition(function filter) )
Полный код, разбираемый в видео:
function filter takes nothing returns boolean
call BJDebugMsg("сработало!"+GetUnitName(GetFilterUnit()))
call DestroyEffect(AddSpecialEffectTarget("Abilities\\Spells\\Human\\Flare\\FlareCaster.mdl",GetFilterUnit(),"origin"))
return GetOwningPlayer(GetFilterUnit()) == Player(0)
endfunction
function Trig_____________________________________001_Actions takes nothing returns nothing
local group g = CreateGroup()
call GroupEnumUnitsInRect(g,gg_rct________________000,Condition(function filter) )
call GroupEnumUnitsInRange(g,GetRectCenterX(gg_rct________________000),GetRectCenterY(gg_rct________________000),900,Condition(function filter) )
call GroupEnumUnitsInRange(g,GetUnitX(gg_unit_hfoo_0000),GetUnitY(gg_unit_hfoo_0000),900,Condition(function filter) )
call DestroyGroup(g)
set g = null
call BJDebugMsg("сработало!")
endfunction
//===========================================================================
function InitTrig_____________________________________001 takes nothing returns nothing
set gg_trg_____________________________________001 = CreateTrigger( )
call TriggerAddAction( gg_trg_____________________________________001, function Trig_____________________________________001_Actions )
endfunction
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Я читал аннотацию, читал вики по JASS, но есть люди, которые не имеют такое прекрасное мышление как у Вас. Это я вам как Маркетолог говорю.
nazarpunk:
nazarpunk:
nazarpunk:
Я уже указывал область через гуи "gg_rct_...". Но область у меня записывается в переменную, а не ранее созданная на карте. И я также указывал "udg_newpoint" Вместо "mapInitialPlayableArea". Триггер не выполнял поиск по новой области.
nazarpunk:
Но, заранее вам дам ответ на ваше следующее сообщение "Сложно посмотреть нотацию по другим функциям?" - да как бы не сложно, просто я сюда пришел получить помощь от умных ребят. Дабы закрыть тот момент когда Я САМОСТОЯТЕЛЬНО не могу закрыть этот вопрос долгие часы. Или на данном сайте можно задавать вопросы только "гиппер сложные"?
Такое чувство будто я зарабатываю на хобби, в котором меня ругают что я глуповат -_-"
Хотя если я не использую call GroupEnumUnitsInRect и использую простое действие - то все работает.
Но даже этот вырванный не работает. (событие Каждые 10 сек)
Отредактирован Keparis9
Вместо g мелкой вставляешь какую хочешь группу, если не то вставишь то JNGP тебе подскажет в чём ты ошибся и что надо исправить. вместо filter пишешь свой фильтр, ну там в видосе подробнее.
Спасибо ОГРОМНОЕ за помощь! Все разжевали и показали. Как по мне проделана большая работа!
Не ожидал такой обратной связи) С утра встал и залип на час)