19

» WarCraft 3 / Разрушение диструктиблов в АОЕ

PrincePhoenix:
Я конечно могу быть аутистом, но что мешает перебирать весь декор в игровой карте? То есть ты создаёшь группу декораций занося туда их все, затем проверяешь на удалённость и выполняешь соответствующие действия
Может я аутист, но по моему группы декораций не существует
.-.
19

» WarCraft 3 / Разрушение диструктиблов в АОЕ

PrincePhoenix:
Darknessay, эмм, GetEnumDestrubale
Тебе передать нужно только значение радиуса и исходной точки
И относительно их проверять удаленность декора
Что куда передать, я не понимаю, я хочу сделать это дерьмо на координатах, а не на точках. Ты приводишь мне скверрут для сравнения ХУ между точкой центра и декором.
На гуи есть БЖ с выбором декора в радиусе от точки, а я пытаюсь ее раскрыть и сделать на коордах, без создания точки, понял?
И то что я привел в самом начале - и есть моя попытка сделать это. Но получается, что там квадрат, а квадрат мне не подходит.
Я не могу сравнить ХУ-ХУ центра и декора, потому что нет никакой "группы декорации", куда можно было бы их занести для дальнейшего сравнения, как GroupEnumUnits, есть только эта функция ЭнамДеструктибл, которая ссылает на другую функцию(действия, применяемые к энамДеструктам), но в нее нельзя передать ХУ центра для дальнейшего сравнения дистанции.
19

» WarCraft 3 / Разрушение диструктиблов в АОЕ

PrincePhoenix:
Я без редактора, но можно же GetDestructableX 1?
GetDestructibleX(ок, какого деструктибла?)
Энам деструктабл ссылает на функцию, там нельзя передать аргументы(ХУ) чтобы от них сравнить дистанцию до декора
19

» WarCraft 3 / Разрушение диструктиблов в АОЕ

PrincePhoenix:
Darknessay, радиус отслеживается в Варкрафте DistanceBetweenPoints, формула выше его внутренний код
SQRT((x1-x2)^2+(y1-y2)^2)
Я знаю про рут, но как сам декор выбирать ?
19

» WarCraft 3 / Разрушение диструктиблов в АОЕ

PrincePhoenix:
У тебя 4 координаты, это не может быть кругом
Ты полностью прав.
>Как круглый сделать?
19

» WarCraft 3 / Разрушение диструктиблов в АОЕ

DracoL1ch:
мб твой фильтр кривой, поставь туда null , если тебе всё равно, что ломать, или свой фильтр напиши
Верно, дело в фильтре. Алсо, рект квадратный(странно, я вроде просто БЖ раскрыл)
Как круглый сделать?
19

» WarCraft 3 / Разрушение диструктиблов в АОЕ

PrincePhoenix:
Я конечно дурачок, но что мешает отслеживать удалённость от центра проверки?
Зачем тебе квадратная область, когда можно взять круглую?
Это вроде круглая. Если я чего то не понимаю, напиши пожалуйста норм функцию
19

» WarCraft 3 / Как скрыть юнита локально?

Короче, поскольку кроме костылей ни вы, ни я ничего придумать не решили, вот моя реализация:
Герою дается двойной инвиз(не выходит из него при атаках и кастах), для всех игроков создается дамми с трусайтом с минимальным радиусом, с привязкой к владельцу кастера(по номеру игрока), и его двигает таймером за юнитом. Дамми НЕ создается для тех игроков, которые попали под иллюзию. Также им отключается шейрвижен, чтобы союзники НЕ попавшие в иллюзию, не палили кастера своей дамми-трусайтом.
Проще говоря, вместо того, чтобы дать инвиз против отдельных игроков, я дал всем игрокам трусайт, и только зацепленным - нет.
19

» WarCraft 3 / Как скрыть юнита локально?

Неужели никто даже статей никаких не может покидать на эту тему? Вопрос вроде не новый, уверен многие ломались над этим...
19

» WarCraft 3 / Отлично, у меня сломалась карта.

Jack-of-shadow:
quq_CCCP:
>Если что, в бекапсах только 2017 года файлы, а тестовая версия тоже не открывается.
В общем каеф...
Переделывать заново то, что делал - лень. Видимо гг, и правда.
А больше никаких автоматических бекапов не предусмотрено?
19

» WarCraft 3 / Как отловить удар с орбом?

Extremator:
>Срабатывает ивент получения урона, но сам урон ещё не вошёл в юнита.
>А баффы от орбов уже висят на цели.
Это все что мне было нужно. Спасибо.
19

» WarCraft 3 / Как отловить удар с орбом?

8gabriel8:
Darknessay, так почему герою не сделаешь бонус к атаке от интеллекта при получении орба?
Ты вообще понял мой вопрос?
Автокаст орб(как сфера безысходности у сфинкса нежити, как огненные у пристессы, ледяные стрелы вайши).
19

» WarCraft 3 / Как отловить удар с орбом?

Hanabishi:
Я спрашиваю, потому что вы отвечаете. Я мог проверить самостоятельно, но не знал что проверять. Мы ответили мне, поэтому я уточняю. Раз уж отвечают, то почему не доспросить с моей стороны, или не доответить с вашей? Зачем мне проверять, если я уже выбрал путь вопроса, т.к. изначально не имел возможности проверить?
Логическая цепь выстроена, вопросы ко мне отпали.
Я как раз и спрашивал этот момент: будет ли УЖЕ повешен бафф в событии получения урона.
Ответь мне Да/Нет, а не "должен/не должен" - в чем проблема, друг?
8gabriel8:
Hanabishi, с чего он будет висеть-то? После получения урона только (через 0,01).
Проблема таймера в его существовании - в глобальной переменной например.
19

» WarCraft 3 / Как отловить удар с орбом?

nvc123:
Darknessay, проверять наличие бафа на том кто получил урон
Бафф уже будет повешен в момент срабатывания события "получает урон"? Или бафф вешается в момент или спустя получение урона?
(Событие срабатывает до нанесения урона)
19

» WarCraft 3 / Как отловить удар с орбом?

Fakov:
Ну скажем прямо, если даже не играли, то слышали точно. В доту играло слишком много людей, чтобы не привести пример из неё. Для тех кто играл, с примером из доты станет гораздо понятнее, и они смогут лучше подсказать.
Спасибо
Fakov:
Хотя погоди. Давай еще какие то способы. Насколько я понял, с твоим способом, в момент "получает урон" на юните еще не будет баффа от стрелы, соответственно нужно будет таймер докостыливать, а это не по нашему...
19

» WarCraft 3 / Иконка героя

Я задал конкретный вопрос, в итоге вы прикопались к механике. Вы чо? :\
Все нюансы там соблюдены, все там в порядке, а Нарута - топ анима.
Если никак нельзя, то, собсно, жаль. Но люди жалуются, так что поставлю лучше спам иконок, чем без неё вообще.
19

» WarCraft 3 / Подскажите условие, пожалуйста

Maniac_91:
Боевая единица - классификация (Unit classification check)
    IsUnitType(GetTriggerUnit(), UNIT_TYPE_FLYING) == true
    IsUnitType(GetTriggerUnit(), UNIT_TYPE_GROUND) == true
Это классификация? Если что, мне нужно не проверку "типа цели", а именно характеристику "тип передвижения", потому что юнит может быть летающим, но в целях указано "наземный" - потому что он не парит в небе, а ходит сквозь.
19

» WarCraft 3 / После превращения, в спеллбуке нет способностей :с

ssbbssc:
есть кастом скрипт, чтобы при морфах способности из спеллбука не слетали
call makeabilitypermanent, что-то такое
Где же ты раньше был, ублюдок(полегче, модер, я же в шутку), когда я систему разблокировки абилок переделывал для всех чаров на:
"Сначала забанить
Потом разбанивать с левелом"
Вместо:
"Добавить абилку"
Из-за сраных метаморфоз, сбрасывающих добавленные абилки...
??? Q________________Q
*рыдает взахлеб*
...
Всё равно, спасибо to you большое.
Подумаю сейчас, стоит ли переписывать обратно, с добавлением перманента, но это определенно выход...
ППЦ...
*сидит в углу, обняв колени, попивая водяру и докуривая десятый красный стронг"
Загруженные файлы
19

» WarCraft 3 / Проблема с моделями

Ты где то косячишь, это явно не твое. У меня есть подозрение,что ты забываешь что то удалять, удаляя геосеты или кости, но если ты про то, что редактор критует при попытке отобразить модель в главном окне(юнита поставить с ней) - то это какая то ошибка мдлвиза ломает модели, забей, просто не ставь их на карту и не выбирай на панели. В остальном работает отлично.
Совет: редактируй модели в .mdl формате, а не .mdx, сохраняй тоже в mdl, а потом конвертируй в мдх - ошибок будет меньше.
19

» WarCraft 3 / Помогите закончить тригер

Я недавно задавал вопрос про "фикс структуры". Там я прикрепил 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),высота полета)
19

» WarCraft 3 / аттач с тимколором

biridius:
а все, аура замедления торнадо
Что значит "аттач с тимколором"?
Типа если в цели ауры торнадо поставить модель с тимколором, то её тимколор будет как у владельца пассивки?