XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,324
Активность:
ScorpioT1000, ну щя автора дождёмся и с ним потолкуем, я попытался объяснить как этот алгоритм должен выглядеть, если не понял то притдётся писать пример для подражания....
Старый 11.02.2013, 15:47
Extremator

offline
Опыт: 39,522
Активность:
пикк юнитов внутри другово пикка чтоли?
дак если да, то через запись юнита из 1го пикка и обращение к нему через 2й по записи...
Старый 11.02.2013, 16:54
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
Extremator, пик юнитов от каждого юнита пикнутого каждую сек
тоесть этот юнит должен атаковать случайного юнита поблизости как то так
именно своего юнита (пренадлежащего игроку а не союзник )
quq_CCCP,
пробовал да не когда не юзал эту функцию раскрыть не получается никак
call IssueTargetOrder( Picked, "attack", GroupPickRandomUnit(g) )
атакуют друг друга но набрасываются и на героя хотя герой не выберается он вообще не состоит в группе
думаю может неуязвимость кастеру дать должно помочь щас тестану
проверил не которые все таки продолжают стоят хотя другие их лупят потом через 2-3 сек другие бьют
другие стоят я каждую 1 сек пикаю юнитов

Отредактировано Cosonic5, 11.02.2013 в 17:14.
Старый 11.02.2013, 16:57
ScorpioT1000
Работаем
offline
Опыт: отключен
могу предложить одно решение всего 1 энум + сортировки по координатам, оно должно быть быстрее, но врятли кто составит, даже quq_CCCP будет лень наверняка (а уж мне тем более все проверять)
Старый 11.02.2013, 17:17
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,324
Активность:
Cosonic5, Потому что велика вероятность что GroupPickRandomUnit(g) вернёт некорректного юнита из группы, потому что ты непроверяеш что юнит равен :
Piked
null
и тп, вроде неуязвимого, не досегаймого...
Старый 11.02.2013, 17:17
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
quq_CCCP, нет не проверяю
но как выделить рандомный юнит или пикнутый ведь все подняд выделяются получается
а раз каждую 1 сек то незнаю в хеш мож группу кидать с рандомными?
Старый 11.02.2013, 17:23
DimanTOoBS

offline
Опыт: 5,791
Активность:
Cosonic5, стало интересно и сделал способность
получилась агрилка акса, только агрит врагов друг на друга, приказ также не сбивается пока не пройдёт время или цель не сдохнет
Прикрепленные файлы
Тип файла: w3x Mass Confusion.w3x (14.0 Кбайт, 6 просмотров )
Старый 11.02.2013, 17:27
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
DimanTOoBS, ух ты щас гляну
Старый 11.02.2013, 17:30
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,324
Активность:
Вот функция выбора случайного юнита в радиусе, с проверкой годится ли он в качеств цели:
((код jass
globals
group bj_groupRandomUnitsInRange
unit bj_lastFilterUnit
unit bj_groupTriggerUnit
endglobals

function PickRandomInRange takes real x, real y, real radius, boolexpr e returns unit
call GroupEnumUnitsInRange( bj_groupRandomUnitsInRange, x, y, radius, e )
set bj_groupRandomConsidered = 0
set bj_groupRandomCurrentPick = null
call ForGroup( bj_groupRandomUnitsInRange, function GroupPickRandomUnitEnum )
call GroupClear( bj_groupRandomUnitsInRange )
return bj_groupRandomCurrentPick
endfunction
пример использования
function MyFilter takes nothing returns boolean
set bj_lastFilterUnit = GetFilterUnit()
return GetUnitState(bj_lastFilterUnit,UNIT_STATE_MAX_LIFE) > 0.00 and bj_lastFilterUnit != bj_groupTriggerUnit and IsUnitVisible(bj_lastFilterUnit,GetOwningPlayer(bj_groupTriggerUnit))
endfunction
function xxx takes nothing returns nothing
local unit Picked
local unit Random
set bj_groupTriggerUnit = Picked
set Picked = PickRandomInRange(GetUnitX(Picked),GetUnitY(Picked),300.00,Condition(function MyFilter))
call IssueImmediateOrder(Picked,"AttackOnce",Random)
set Picked = null
set Random = null
endfunction
))
надеюсь ума хватит bj_groupRandomUnitsInRange = CreateGroup( ) написать где нить при ините...
Старый 11.02.2013, 17:35
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
quq_CCCP, щас попробую отпишусь спс
отсутствует конец строки а без jngp не запуститься?

Отредактировано Cosonic5, 11.02.2013 в 17:56.
Старый 11.02.2013, 17:46
ScorpioT1000
Работаем
offline
Опыт: отключен
запустится
Старый 11.02.2013, 18:24
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
ScorpioT1000, пробую не фурычит(
             local unit Picked 
	local unit Random

	set bj_groupTriggerUnit = Picked 
	set Picked = PickRandomInRange(GetUnitX(Picked),GetUnitY(Picked),300.00,Condition(function MyFilter))
	call IssueImmediateOrder(Picked,"AttackOnce",Random)
я так и не пойму к чему тут Random если нету обозначения для него?)
Старый 11.02.2013, 18:30
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,324
Активность:
Cosonic5, ну я чутуочку ошибся, писал в торопях, мб JNGP простестиш, тем более globals endglobals без JNGP вроде за ошибку считает...
Старый 11.02.2013, 18:38
ScorpioT1000
Работаем
offline
Опыт: отключен
Старый 12.02.2013, 02:36
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 09:56.