Враг получает урон
Атакующий равен способность пасивка 1 уровня, то заносить базу атакующий и повреждение и количеств атак и время, при атаки заносим +1 каждый данные а таймер каждый время увеличивает если время увеличен макс то удаляем то есть обнуляем... Это даже новички понять нарисовать на бумаге пример механика
pricoluwa, просто находиш оба точки и угол потом косинус и синуса
set x = Точка кастера
set y = Точка кастера
set xt = Цель выбраный
set yt = Цель выбраный
//Это узнать дистанция
set dist = SquareRoot((xt - x) * (xt - x) + (yt - y) * (yt - y))
//Это угол направления
set rad = Atan2(yt - y, xt - x)
// Делим дистанцию 2 меньше
set dist = dist * 0.5
// Устанавливаем новый точка х и y берут от кастера, обьект кто будет перемешен
call SetUnitX(обьект, x + dist * Cos(rad))
call SetUnitY(обьект, y + dist * Sin(rad))
// Я не проверял его так как быстро пример набросал
quq_CCCP, есть фича делать константы 100 сек возврат, каждый 10 сек оглушить моб и возврат не будет работать =) А тот останет где оглушен так и потянет вся карта
ClotPh, обычный сккил, без изучения DracoL1ch, я уже понимаю... просто пришлось делать при пик героя проверять тип юнитов если это маг то заносим его в группу для таймера остальтное уже сделал как надо
FrigatPlay, Копируй код и создай чистый файл и ставь код и вызывай функция
library TerrainPathability initializer Init
//******************************************************************************
//* BY: Rising_Dusk
//*
//* This script can be used to detect the type of pathing at a specific point.
//* It is valuable to do it this way because the IsTerrainPathable is very
//* counterintuitive and returns in odd ways and aren't always as you would
//* expect. This library, however, facilitates detecting those things reliably
//* and easily.
//*
//******************************************************************************
//*
//* > function IsTerrainDeepWater takes real x, real y returns boolean
//* > function IsTerrainShallowWater takes real x, real y returns boolean
//* > function IsTerrainLand takes real x, real y returns boolean
//* > function IsTerrainPlatform takes real x, real y returns boolean
//* > function IsTerrainWalkable takes real x, real y returns boolean
//*
//* These functions return true if the given point is of the type specified
//* in the function's name and false if it is not. For the IsTerrainWalkable
//* function, the MAX_RANGE constant below is the maximum deviation range from
//* the supplied coordinates that will still return true.
//*
//* The IsTerrainPlatform works for any preplaced walkable destructable. It will
//* return true over bridges, destructable ramps, elevators, and invisible
//* platforms. Walkable destructables created at runtime do not create the same
//* pathing hole as preplaced ones do, so this will return false for them. All
//* other functions except IsTerrainWalkable return false for platforms, because
//* the platform itself erases their pathing when the map is saved.
//*
//* After calling IsTerrainWalkable(x, y), the following two global variables
//* gain meaning. They return the X and Y coordinates of the nearest walkable
//* point to the specified coordinates. These will only deviate from the
//* IsTerrainWalkable function arguments if the function returned false.
//*
//* Variables that can be used from the library:
//* [real] TerrainPathability_X
//* [real] TerrainPathability_Y
//*
globals
private constant real MAX_RANGE = 10.
private constant integer DUMMY_ITEM_ID = 'wolg'
endglobals
globals
private item Item = null
private rect Find = null
private item array Hid
private integer HidMax = 0
public real X = 0.
public real Y = 0.
endglobals
function IsTerrainDeepWater takes real x, real y returns boolean
return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
endfunction
function IsTerrainShallowWater takes real x, real y returns boolean
return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY) and IsTerrainPathable(x, y, PATHING_TYPE_BUILDABILITY)
endfunction
function IsTerrainLand takes real x, real y returns boolean
return IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY)
endfunction
function IsTerrainPlatform takes real x, real y returns boolean
return not IsTerrainPathable(x, y, PATHING_TYPE_FLOATABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY) and not IsTerrainPathable(x, y, PATHING_TYPE_BUILDABILITY)
endfunction
private function HideItem takes nothing returns nothing
if IsItemVisible(GetEnumItem()) then
set Hid[HidMax] = GetEnumItem()
call SetItemVisible(Hid[HidMax], false)
set HidMax = HidMax + 1
endif
endfunction
function IsTerrainWalkable takes real x, real y returns boolean
//Hide any items in the area to avoid conflicts with our item
call MoveRectTo(Find, x, y)
call EnumItemsInRect(Find ,null, function HideItem)
//Try to move the test item and get its coords
call SetItemPosition(Item, x, y) //Unhides the item
set X = GetItemX(Item)
set Y = GetItemY(Item)
static if LIBRARY_IsTerrainWalkable then
//This is for compatibility with the IsTerrainWalkable library
set IsTerrainWalkable_X = X
set IsTerrainWalkable_Y = Y
endif
call SetItemVisible(Item, false)//Hide it again
//Unhide any items hidden at the start
loop
exitwhen HidMax <= 0
set HidMax = HidMax - 1
call SetItemVisible(Hid[HidMax], true)
set Hid[HidMax] = null
endloop
//Return walkability
return (X-x)*(X-x)+(Y-y)*(Y-y) <= MAX_RANGE*MAX_RANGE and not IsTerrainPathable(x, y, PATHING_TYPE_WALKABILITY)
endfunction
private function Init takes nothing returns nothing
set Find = Rect(0., 0., 128., 128.)
set Item = CreateItem(DUMMY_ITEM_ID, 0, 0)
call SetItemVisible(Item, false)
endfunction
endlibrary
ClotPh, Вот думаю было не плохо пикать юнитов в группу если у юнита есть способность то легче через тик циклом по группам проверять... Но видимо я не нашел ибо проверять всех юнитов бред...
quq_CCCP, ты не понял? Бывает тех 2 мага который загрузит герой, у 1 игрока 5 уровень имеет 60 магическая сила от него аура слабо дает, а у 2 игрока имеет 60 ур и магическая 1000 то дает сильнее тот кто владелец сильнее всех ауру повышает магическую силу на 15% учетом что ни как узнать чей это аура.....
quq_CCCP, ну у меня дает если у маг имеет параметр 100 маг сила то кто получает ауру повышает маг ауру на 15% от маг силы владельца
100 * 0.15 = 15 тех кто находит в ауру а тех могут и 200 или 300... Поэтому я решил сделать таймером если герой имеет ауру то находить радиус и давать и отнимать=( quq_CCCP, Но криво почему то то есть если аура теряет в минус уходит хД
» WarCraft 3 / Нужна модель? - Вам сюда!
» WarCraft 3 / Как сделать способность?
» WarCraft 3 / Как сделать способность?
Атакующий равен способность пасивка 1 уровня, то заносить базу атакующий и повреждение и количеств атак и время, при атаки заносим +1 каждый данные а таймер каждый время увеличивает если время увеличен макс то удаляем то есть обнуляем... Это даже новички понять нарисовать на бумаге пример механика
» WarCraft 3 / Не выделяемый юнит
» WarCraft 3 / Способности и текст
Отредактирован pro100master
» WarCraft 3 / Точка между двумя другими
» WarCraft 3 / Можно ли изменить размер текста/строки в диалогом окне?
» WarCraft 3 / Голда за уничтожение зданий.
» WarCraft 3 / Отрицательное значение для значения "Шкала выбора" у юнита
» WarCraft 3 / Отрицательное значение для значения "Шкала выбора" у юнита
» WarCraft 3 / Отключение ИИ Нейтралов, или их нормальное передвижение.
» WarCraft 3 / Отключение ИИ Нейтралов, или их нормальное передвижение.
» WarCraft 3 / Запрет передачи предметов
» WarCraft 3 / Невозможно узнать цели после CHANNEL
» WarCraft 3 / IsUnitDeadBJ()
Отредактирован pro100master
» WarCraft 3 / Зависимости - Центр поселения
Какой страный баг у сайта не удаляет картинку и новый ни как...
Вот выложил новый картинка
» WarCraft 3 / Зависимости - Центр поселения
» WarCraft 3 / Как устранить Утечку в условии
» WarCraft 3 / Как узнать чей владелец аура..
DracoL1ch, я уже понимаю... просто пришлось делать при пик героя проверять тип юнитов если это маг то заносим его в группу для таймера остальтное уже сделал как надо
» WarCraft 3 / Библиотека проходимости
» WarCraft 3 / Библиотека проходимости
» WarCraft 3 / Как узнать чей владелец аура..
» WarCraft 3 / Как узнать чей владелец аура..
» WarCraft 3 / Заклинания на заказ
» WarCraft 3 / Как узнать чей владелец аура..
100 * 0.15 = 15 тех кто находит в ауру а тех могут и 200 или 300... Поэтому я решил сделать таймером если герой имеет ауру то находить радиус и давать и отнимать=(
quq_CCCP, Но криво почему то то есть если аура теряет в минус уходит хД