Я конечно могу быть аутистом, но что мешает перебирать весь декор в игровой карте? То есть ты создаёшь группу декораций занося туда их все, затем проверяешь на удалённость и выполняешь соответствующие действия
Может я аутист, но по моему группы декораций не существует
.-.
Darknessay, эмм, GetEnumDestrubale
Тебе передать нужно только значение радиуса и исходной точки
И относительно их проверять удаленность декора
Что куда передать, я не понимаю, я хочу сделать это дерьмо на координатах, а не на точках. Ты приводишь мне скверрут для сравнения ХУ между точкой центра и декором.
На гуи есть БЖ с выбором декора в радиусе от точки, а я пытаюсь ее раскрыть и сделать на коордах, без создания точки, понял?
И то что я привел в самом начале - и есть моя попытка сделать это. Но получается, что там квадрат, а квадрат мне не подходит.
Я не могу сравнить ХУ-ХУ центра и декора, потому что нет никакой "группы декорации", куда можно было бы их занести для дальнейшего сравнения, как GroupEnumUnits, есть только эта функция ЭнамДеструктибл, которая ссылает на другую функцию(действия, применяемые к энамДеструктам), но в нее нельзя передать ХУ центра для дальнейшего сравнения дистанции.
GetDestructibleX(ок, какого деструктибла?)
Энам деструктабл ссылает на функцию, там нельзя передать аргументы(ХУ) чтобы от них сравнить дистанцию до декора
Короче, поскольку кроме костылей ни вы, ни я ничего придумать не решили, вот моя реализация:
Герою дается двойной инвиз(не выходит из него при атаках и кастах), для всех игроков создается дамми с трусайтом с минимальным радиусом, с привязкой к владельцу кастера(по номеру игрока), и его двигает таймером за юнитом. Дамми НЕ создается для тех игроков, которые попали под иллюзию. Также им отключается шейрвижен, чтобы союзники НЕ попавшие в иллюзию, не палили кастера своей дамми-трусайтом.
Проще говоря, вместо того, чтобы дать инвиз против отдельных игроков, я дал всем игрокам трусайт, и только зацепленным - нет.
Extremator:
>Срабатывает ивент получения урона, но сам урон ещё не вошёл в юнита.
>А баффы от орбов уже висят на цели.
Это все что мне было нужно. Спасибо.
Hanabishi:
Я спрашиваю, потому что вы отвечаете. Я мог проверить самостоятельно, но не знал что проверять. Мы ответили мне, поэтому я уточняю. Раз уж отвечают, то почему не доспросить с моей стороны, или не доответить с вашей? Зачем мне проверять, если я уже выбрал путь вопроса, т.к. изначально не имел возможности проверить?
Логическая цепь выстроена, вопросы ко мне отпали.
Я как раз и спрашивал этот момент: будет ли УЖЕ повешен бафф в событии получения урона.
Ответь мне Да/Нет, а не "должен/не должен" - в чем проблема, друг? 8gabriel8:
Hanabishi, с чего он будет висеть-то? После получения урона только (через 0,01).
Проблема таймера в его существовании - в глобальной переменной например.
Darknessay, проверять наличие бафа на том кто получил урон
Бафф уже будет повешен в момент срабатывания события "получает урон"? Или бафф вешается в момент или спустя получение урона?
(Событие срабатывает до нанесения урона)
Fakov:
Ну скажем прямо, если даже не играли, то слышали точно. В доту играло слишком много людей, чтобы не привести пример из неё. Для тех кто играл, с примером из доты станет гораздо понятнее, и они смогут лучше подсказать.
Спасибо Fakov:
Хотя погоди. Давай еще какие то способы. Насколько я понял, с твоим способом, в момент "получает урон" на юните еще не будет баффа от стрелы, соответственно нужно будет таймер докостыливать, а это не по нашему...
Я задал конкретный вопрос, в итоге вы прикопались к механике. Вы чо? :\
Все нюансы там соблюдены, все там в порядке, а Нарута - топ анима.
Если никак нельзя, то, собсно, жаль. Но люди жалуются, так что поставлю лучше спам иконок, чем без неё вообще.
Это классификация? Если что, мне нужно не проверку "типа цели", а именно характеристику "тип передвижения", потому что юнит может быть летающим, но в целях указано "наземный" - потому что он не парит в небе, а ходит сквозь.
есть кастом скрипт, чтобы при морфах способности из спеллбука не слетали
call makeabilitypermanent, что-то такое
Где же ты раньше был, ублюдок(полегче, модер, я же в шутку), когда я систему разблокировки абилок переделывал для всех чаров на:
"Сначала забанить
Потом разбанивать с левелом"
Вместо:
"Добавить абилку"
Из-за сраных метаморфоз, сбрасывающих добавленные абилки...
??? Q________________Q
*рыдает взахлеб*
...
Всё равно, спасибо to you большое.
Подумаю сейчас, стоит ли переписывать обратно, с добавлением перманента, но это определенно выход...
ППЦ...
*сидит в углу, обняв колени, попивая водяру и докуривая десятый красный стронг"
Ты где то косячишь, это явно не твое. У меня есть подозрение,что ты забываешь что то удалять, удаляя геосеты или кости, но если ты про то, что редактор критует при попытке отобразить модель в главном окне(юнита поставить с ней) - то это какая то ошибка мдлвиза ломает модели, забей, просто не ставь их на карту и не выбирай на панели. В остальном работает отлично.
Совет: редактируй модели в .mdl формате, а не .mdx, сохраняй тоже в mdl, а потом конвертируй в мдх - ошибок будет меньше.
Я недавно задавал вопрос про "фикс структуры". Там я прикрепил vJass структуру с откидыванием юнита. Думаю она тебе подойдет в твоем случае. Просто копируешь её в шапку карты, а потом вызываешь функцией call Flyout() - в скобках нужно будет прописать параметры в соответствии с теми, что прописаны в самой функции(она в самом низу структуры), что то типа:
Flyout takes unit u, real dir, real angle... - я уже не помню из головы, что и в каком порядке там указывается.
Единственное, там в конце списка takes стоит integer checksolid - сотри к чертям этот кусочек, а также в самой функции сотри условие с этим интегером. У меня в карте есть понятие "несдвигаемый" - так вот это для них спец. настроечка. Тебе она будет не нужна)
А потом тебе нужно будет просто отбросить этой функцией юнита в направлении цели, на расстояние между юнит---цель и с нужной тебе высотой. Разве что, один момент тебе обьясню, на случай если ты совсем слаб:
Если хочешь чтобы время полета зависело от расстояния, то тебе нужно будет время указать как "расстояние/скорость"(скорость из головы берешь, по примеру снарядов из РО. 900 например), а если время указать статичное, то это позволит тебе через wait game time потом еще эффект в точке приземления создать.
Вот:
Подредактировал за тебя
library Flyout
private function MoveUnit takes unit u, real spd, real dir returns nothing
if IsTerrainPathable(GetUnitX(u),GetUnitY(u)+spd*Sin(dir),PATHING_TYPE_FLYABILITY)==false
SetUnitY(u,GetUnitY(u)+spd*Sin(dir))
endif
if IsTerrainPathable(GetUnitX(u)+spd*Cos(dir),GetUnitY(u),PATHING_TYPE_FLYABILITY)==false
SetUnitX(u,GetUnitX(u)+spd*Cos(dir))
endif
set u = null
endfunction
private function Parabola takes real h, real d, real x returns real
return (4 * h / d) * (d - x) * (x / d)
endfunction
private struct MUE_Struct
private static timer t = CreateTimer()
private static integer m[]
private static integer MUI = -1
unit c
real dist
integer check
real r
real r2 = 0
real fly
real rmax
real sr
real a
private method StopAction takes integer j returns nothing
set m[j] = m[MUI]
set MUI = MUI - 1
if MUI <= -1 then
call PauseTimer(t)
set MUI = -1
endif
endmethod
private static method Loop takes nothing returns nothing
local thistype this
local integer i = 0
loop
exitwhen i > MUI
set this = m[i]
if r<rmax then
set r = r + 0.01
MoveUnit(c,dist,a)
if check == 1 then
SetUnitFlyHeight(c,Parabola(fly,sr,r2),0)
set r2 = r2+dist
endif
else
if check == 1 then
UnitAddAbility(c,'Arav')
UnitRemoveAbility(c,'Arav')
endif
set c = null
call StopAction(i)
call destroy()
endif
set i = i + 1
endloop
endmethod
public static method MUE_Start takes unit NewC, real NewDist,real NewRmax, real NewA,integer NewCheck,real NewFly returns nothing
local thistype this = thistype.create()
set MUI = MUI + 1
set m[MUI] = this
set c = NewC
set r = 0
set rmax = NewRmax
set dist = NewDist
set sr = NewDist
set dist = (dist/(rmax*100))
set check = NewCheck
set fly = NewFly
set r2= 0
set a = NewA
if MUI == 0 then
call TimerStart(t, 0.01, true, function thistype.Loop)
endif
set NewC = null
endmethod
endstruct
function Flyout takes unit c,real distance,real timeformoving,real angle,integer checkingfly,real flyheight returns nothing
call MUE_Struct.MUE_Start(c,distance,timeformoving,angle*bj_DEGTORAD,checkingfly,flyheight)
c = null
endfunction
endlibrary
Просто вписываешь Flyout(юнит,дистанция,направление,лететь?(0/1),высота полета)
» WarCraft 3 / Разрушение диструктиблов в АОЕ
.-.
Ред. Darknessay
» WarCraft 3 / Разрушение диструктиблов в АОЕ
На гуи есть БЖ с выбором декора в радиусе от точки, а я пытаюсь ее раскрыть и сделать на коордах, без создания точки, понял?
И то что я привел в самом начале - и есть моя попытка сделать это. Но получается, что там квадрат, а квадрат мне не подходит.
Я не могу сравнить ХУ-ХУ центра и декора, потому что нет никакой "группы декорации", куда можно было бы их занести для дальнейшего сравнения, как GroupEnumUnits, есть только эта функция ЭнамДеструктибл, которая ссылает на другую функцию(действия, применяемые к энамДеструктам), но в нее нельзя передать ХУ центра для дальнейшего сравнения дистанции.
» WarCraft 3 / Разрушение диструктиблов в АОЕ
Энам деструктабл ссылает на функцию, там нельзя передать аргументы(ХУ) чтобы от них сравнить дистанцию до декора
» WarCraft 3 / Разрушение диструктиблов в АОЕ
» WarCraft 3 / Разрушение диструктиблов в АОЕ
>Как круглый сделать?
» WarCraft 3 / Разрушение диструктиблов в АОЕ
Как круглый сделать?
» WarCraft 3 / Разрушение диструктиблов в АОЕ
» WarCraft 3 / Как скрыть юнита локально?
» WarCraft 3 / Как скрыть юнита локально?
» WarCraft 3 / Отлично, у меня сломалась карта.
quq_CCCP:
>Если что, в бекапсах только 2017 года файлы, а тестовая версия тоже не открывается.
Переделывать заново то, что делал - лень. Видимо гг, и правда.
А больше никаких автоматических бекапов не предусмотрено?
» WarCraft 3 / Как отловить удар с орбом?
>Срабатывает ивент получения урона, но сам урон ещё не вошёл в юнита.
>А баффы от орбов уже висят на цели.
Это все что мне было нужно. Спасибо.
» WarCraft 3 / Как отловить удар с орбом?
Автокаст орб(как сфера безысходности у сфинкса нежити, как огненные у пристессы, ледяные стрелы вайши).
» WarCraft 3 / Как отловить удар с орбом?
Я спрашиваю, потому что вы отвечаете. Я мог проверить самостоятельно, но не знал что проверять. Мы ответили мне, поэтому я уточняю. Раз уж отвечают, то почему не доспросить с моей стороны, или не доответить с вашей? Зачем мне проверять, если я уже выбрал путь вопроса, т.к. изначально не имел возможности проверить?
Логическая цепь выстроена, вопросы ко мне отпали.
Я как раз и спрашивал этот момент: будет ли УЖЕ повешен бафф в событии получения урона.
Ответь мне Да/Нет, а не "должен/не должен" - в чем проблема, друг?
8gabriel8: Проблема таймера в его существовании - в глобальной переменной например.
» WarCraft 3 / Как отловить удар с орбом?
(Событие срабатывает до нанесения урона)
» WarCraft 3 / Как отловить удар с орбом?
Я знаю как ловить урон. Как понять что тычка была с автокаст орбом?
» WarCraft 3 / Как отловить удар с орбом?
Ну скажем прямо, если даже не играли, то слышали точно. В доту играло слишком много людей, чтобы не привести пример из неё. Для тех кто играл, с примером из доты станет гораздо понятнее, и они смогут лучше подсказать.
Спасибо
Fakov:
Хотя погоди. Давай еще какие то способы. Насколько я понял, с твоим способом, в момент "получает урон" на юните еще не будет баффа от стрелы, соответственно нужно будет таймер докостыливать, а это не по нашему...
» WarCraft 3 / Иконка героя
Все нюансы там соблюдены, все там в порядке, а Нарута - топ анима.
Если никак нельзя, то, собсно, жаль. Но люди жалуются, так что поставлю лучше спам иконок, чем без неё вообще.
» WarCraft 3 / Подскажите условие, пожалуйста
» WarCraft 3 / После превращения, в спеллбуке нет способностей :с
"Сначала забанить
Потом разбанивать с левелом"
Вместо:
"Добавить абилку"
Из-за сраных метаморфоз, сбрасывающих добавленные абилки...
??? Q________________Q
*рыдает взахлеб*
...
Всё равно, спасибо to you большое.
Подумаю сейчас, стоит ли переписывать обратно, с добавлением перманента, но это определенно выход...
ППЦ...
*сидит в углу, обняв колени, попивая водяру и докуривая десятый красный стронг"
» WarCraft 3 / Проблема с моделями
Совет: редактируй модели в .mdl формате, а не .mdx, сохраняй тоже в mdl, а потом конвертируй в мдх - ошибок будет меньше.
» WarCraft 3 / Модель полностью исчезает
» WarCraft 3 / Помогите закончить тригер
Flyout takes unit u, real dir, real angle... - я уже не помню из головы, что и в каком порядке там указывается.
Единственное, там в конце списка takes стоит integer checksolid - сотри к чертям этот кусочек, а также в самой функции сотри условие с этим интегером. У меня в карте есть понятие "несдвигаемый" - так вот это для них спец. настроечка. Тебе она будет не нужна)
А потом тебе нужно будет просто отбросить этой функцией юнита в направлении цели, на расстояние между юнит---цель и с нужной тебе высотой. Разве что, один момент тебе обьясню, на случай если ты совсем слаб:
Если хочешь чтобы время полета зависело от расстояния, то тебе нужно будет время указать как "расстояние/скорость"(скорость из головы берешь, по примеру снарядов из РО. 900 например), а если время указать статичное, то это позволит тебе через wait game time потом еще эффект в точке приземления создать.
Вот:
Подредактировал за тебя
private function MoveUnit takes unit u, real spd, real dir returns nothing
if IsTerrainPathable(GetUnitX(u),GetUnitY(u)+spd*Sin(dir),PATHING_TYPE_FLYABILITY)==false
SetUnitY(u,GetUnitY(u)+spd*Sin(dir))
endif
if IsTerrainPathable(GetUnitX(u)+spd*Cos(dir),GetUnitY(u),PATHING_TYPE_FLYABILITY)==false
SetUnitX(u,GetUnitX(u)+spd*Cos(dir))
endif
set u = null
endfunction
return (4 * h / d) * (d - x) * (x / d)
endfunction
private struct MUE_Struct
private static timer t = CreateTimer()
private static integer m[]
private static integer MUI = -1
unit c
real dist
integer check
real r
real r2 = 0
real fly
real rmax
real sr
real a
private method StopAction takes integer j returns nothing
set m[j] = m[MUI]
set MUI = MUI - 1
if MUI <= -1 then
call PauseTimer(t)
set MUI = -1
endif
endmethod
local thistype this
local integer i = 0
loop
exitwhen i > MUI
set this = m[i]
if r<rmax then
set r = r + 0.01
MoveUnit(c,dist,a)
if check == 1 then
SetUnitFlyHeight(c,Parabola(fly,sr,r2),0)
set r2 = r2+dist
endif
else
if check == 1 then
UnitAddAbility(c,'Arav')
UnitRemoveAbility(c,'Arav')
endif
set c = null
call StopAction(i)
call destroy()
endif
set i = i + 1
endloop
endmethod
local thistype this = thistype.create()
set MUI = MUI + 1
set m[MUI] = this
set c = NewC
set r = 0
set rmax = NewRmax
set dist = NewDist
set sr = NewDist
set dist = (dist/(rmax*100))
set check = NewCheck
set fly = NewFly
set r2= 0
set a = NewA
if MUI == 0 then
call TimerStart(t, 0.01, true, function thistype.Loop)
endif
set NewC = null
endmethod
endstruct
call MUE_Struct.MUE_Start(c,distance,timeformoving,angle*bj_DEGTORAD,checkingfly,flyheight)
c = null
endfunction
endlibrary
» WarCraft 3 / аттач с тимколором
Типа если в цели ауры торнадо поставить модель с тимколором, то её тимколор будет как у владельца пассивки?