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

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

Ответ
 
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
Не могу найти наработку
Привет, давненько видел наработку где нейтралы враждебные("Player(12)") атакуют ближайших врагов. Сам пробовал делать, но (в силу кривизны рук) утечек слишком много. Может быть кто подкинет её? Буду благодарен :) поиск юзал, да и вообще всегда юзаю поиск, всем советую.
Старый 02.05.2013, 18:07
DioD

offline
Опыт: 45,134
Активность:
расказывай как искал чтоли, еще такая заметка, нейтралы, атакуют сами по себе, без наработок.
Старый 02.05.2013, 18:19
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
А вот только нейтралы атакуют по приоритету, а мне нужно, что бы "атакуют ближайших врагов". Как бы так ;)
Bornikkeny добавил:
Все ок, я сам набыдлокодил [без утечек]
function DistanceBetweenPointsX takes real x,real y,real xx,real yy returns real//функция для получения дистанции меж координатами
    local real dx = xx - x
    local real dy = yy - y
    return SquareRoot(dx * dx + dy * dy)
endfunction

function GetFilterEnemy12 takes nothing returns boolean
    return IsPlayerEnemy(Player(12), GetOwningPlayer(GetFilterUnit())) and GetWidgetLife(GetFilterUnit()) > 0.405
endfunction

function XXX takes nothing returns nothing
local unit u = GetEnumUnit()//наш выбранный юнит
local real x = GetUnitX(u)
local real y = GetUnitY(u)
local real xx
local real yy
local real lastdis=1000.0//изначальный радиус
local boolexpr b = Condition(function GetFilterEnemy12)//Фильтр
local unit t
local group g = CreateGroup()
local unit f
	call GroupEnumUnitsInRange(g, x, y, 1000.0, b)//1000.0 оптимал
	loop
	 set f = FirstOfGroup(g)
	 exitwhen f == null
        //Мой код ГО!
		set xx = GetUnitX(f)
		set yy = GetUnitY(f)
		if DistanceBetweenPointsX(x,y,xx,yy) < lastdis then
			set t=f
			set lastdis=DistanceBetweenPointsX(x,y,xx,yy)
		endif		
        call GroupRemoveUnit(g, f)
	endloop
	call IssueTargetOrder(u,"attack",t)
call DestroyGroup(g)
call DestroyBoolExpr(b)
set u = null
set b = null
set t = null
set g = null
set f = null
endfunction

function Trig_res_Actions takes nothing returns nothing
	ForGroup(udg_g,function XXX)//udg_g - собственно наша группа нейтралов
endfunction

//===========================================================================
function InitTrig_res takes nothing returns nothing
    set gg_trg_res = CreateTrigger(  )//незамысловато назвал триггер - "res", х3 зачем так назвал.
    call TriggerRegisterTimerEventPeriodic( gg_trg_res, 0.50 )//0.50 - оптимальный промежуток.
    call TriggerAddAction( gg_trg_res, function Trig_res_Actions )
endfunction
Мб кому пригодится. ;)

Отредактировано Bornikkeny, 02.05.2013 в 20:12.
Старый 02.05.2013, 19:33
SemenTalay

offline
Опыт: 851
Активность:
Bornikkeny, вот в этом паке есть что-то похожее и к сожалению на GUI
Прикрепленные файлы
Тип файла: rar WorldEditorPackNoLeaks.rar (395.7 Кбайт, 6 просмотров )
Старый 03.05.2013, 01:01
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,429
Активность:
Bornikkeny, Могу дать наработку простенького ии, все юниты игрока (кроме вардов и тех кто не может ходить и атаковать) будут перемещаться по карте выискивая противников, реализовано применение способностей и преследование цели....
Старый 03.05.2013, 03:42
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
quq_CCCP, не откажусь :)
Bornikkeny добавил:
SemenTalay, спасиб сем, но у меня все ок, сделал все =)
Старый 03.05.2013, 06:52
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,429
Активность:
Bornikkeny, вот держи, реализовано несколько примитивно, но вполне действенный ии, он ищет (без читов, то есть туман войны у всех) врагов в заданной области и нападает на них, юзает скиллы если враг далеко и пытается убежать, либо если враг появился вплотную и пытается скрытся...
Прикрепленные файлы
Тип файла: w3x Tauren escape.w3x (1.05 Мбайт, 6 просмотров )
Старый 03.05.2013, 16:40
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
quq_CCCP, неплохо, но вот там есть недочеты мелкие, но сойдет, спасибо :)
Старый 03.05.2013, 17:07
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,429
Активность:
Bornikkeny, какие именно?
Старый 03.05.2013, 17:29
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
quq_CCCP, универсальность ;D Ну, я так считаю :)
Старый 03.05.2013, 17:32
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,429
Активность:
Bornikkeny, я для себя делал от балды, ну могу помочь в разработке ии, для мобов, у меня много поделок на эту тему...
Старый 03.05.2013, 17:40
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
quq_CCCP, похвально, от помощи я бы не отказался ;) Если что, мой скайп я тебе в ЛС скину, если будут вопросы, обязательно с тобой проконсультируюсь.
Старый 03.05.2013, 17:53
Ответ

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

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

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

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



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