27

» WarCraft 3 / Командование группой

вроде же функция
constant native IsUnitInGroup takes unit whichUnit, group whichGroup returns boolean
27

» WarCraft 3 / Прыжок

берете формулу параболы, высота дуги не меняется, изменяете лишь длину дуги
27

» WarCraft 3 / Почему не устанавливается точка сбора?

Принятый ответ
попробуй сделать задержку. при инициализации мб пока что не подгрузилось, а ты даешь сразу приказы ... или измени событие на "Таймер спустя ... сек"
че так много триггеров?
27

» WarCraft 3 / повернуть здание через мемхак

DracoL1ch, а у древ поворачиваются, правда в ту сторону, где находится противник. и это повернуть нельзя приказом. за это отвечает абила "пустить корни"
27

» WarCraft 3 / Способность феникса в старафт 2

могу пример показать как я понял это работает
пример
тоже самое можно вращать по оси y, z
знаю, что можно сделать поменьше кадров. Я сделал побольше (17 кадров), чтобы было с чем сравнивать. Как получилось. Просто изначально у меня было 5 кадров и было неясно.
	Rotation 17 {
		Linear,
		0: { 0, 0, 0, 1 }, //180°
		150: { 0.19, 0, 0, 0.98 }, //157.5°
		300: { 0.38, 0, 0, 0.92 }, //135°
		450: { 0.55, 0, 0, 0.83 }, //112.5°
		600: { 0.707, 0, 0, 0.707 }, //90°
		750: { 0.83, 0, 0, 0.55 }, //67.5°
		900: { 0.92, 0, 0, 0.38 }, //45°
		1050: { 0.98, 0, 0, 0.19 }, //22.5°
		1200: { 1, 0, 0, 0 }, //0°
		1350: { -0.98, 0, 0, 0.19 }, //337,5°
		1500: { -0.92, 0, 0, 0.38 }, //315°
		1650: { -0.83, 0, 0, 0.55 }, //292,5°
		1800: { -0.707, 0, 0, 0.707 }, //270°
		1950: { -0.55, 0, 0, 0.83 }, //247,5°
		2100: { -0.38, 0, 0, 0.92 }, //225°
		2250: { -0.19, 0, 0, 0.98 }, //202,5°
		2400: { 0, 0, 0, 1 }, //180°
	}
Загруженные файлы
27

» WarCraft 3 / 2 книги заклинаний у одного воина

Принятый ответ
не ясно какая проблема. хочешь чтобы не смешивалось содержимое внутри спелбуков? меняй приказ у спелбуков см. тему
27

» WarCraft 3 / Способность феникса в старафт 2

Bergi_Bear, у меня какая ванька-встанька получилась. модель не до конца прогибается вниз
раскрыть
	Rotation 17 {
		Linear,
		0: { 0, 0, 0, 1 }, //180В°
		150: { 0.98, 0, 0, 0.19 }, //157.5В°
		300: { 0.92, 0, 0, 0.38 }, //135В°
		450: { 0.83, 0, 0, 0.55 }, //112.5В°
		600: { 0.707, 0, 0, 0.707 }, //90В°
		750: { 0.55, 0, 0, 0.83 }, //67.5В°
		900: { 0.38, 0, 0, 0.92 }, //45В°
		1050: { 0.19, 0, 0, 0.98 }, //22.5В°
		1200: { 0, 0, 0, 1 }, //0В°
		1350: { 0.19, 0, 0, -0.98 }, //337,5В°
		1500: { 0.38, 0, 0, -0.92 }, //315В°
		1650: { 0.55, 0, 0, -0.83 }, //292,5В°
		1800: { 0.707, 0, 0, -0.707 }, //270В°
		1950: { 0.83, 0, 0, -0.55 }, //247,5В°
		2100: { 0.92, 0, 0, -0.38 }, //225В°
		2250: { 0.98, 0, 0, -0.19 }, //202,5В°
		2400: { 0, 0, 0, -1 }, //180В°
	}
27

» WarCraft 3 / Способность феникса в старафт 2

Bergi_Bear, у меня че-то криво все)
чтобы зафиксировать в одном положении достаточно два одинаковых кадра: начало и конец оставить.
Загруженные файлы
27

» WarCraft 3 / Способность феникса в старафт 2

Bergi_Bear, нет. нашел пока что вращение вокруг z. но вращательные движения вокруг других осей тоже можно сделать. формулы и примеры выше
27

» WarCraft 3 / Способность феникса в старафт 2

Bergi_Bear, Нашел описание вот по этой ссылке там пишут вращение по оси Z, вращение по Y. там надо код внутри модели изменить
код
Rotate around y-axis
0: { 0, 0, 0, 1 }
1000: { 0, 0.7, 0, 0.7 }
2000: { 0, 1, 0, 0 }
3000: { 0, -0.7, 0, 0.7 }
4000: { 0, 0, 0, 1 }
Rotate around z-axis
0: { 0, 0, 0, 1 }
1000: { 0, 0, 0.7, 0.7 }
2000: { 0, 0, 1, 0 }
3000: { 0, 0, -0.7, 0.7 }
4000: { 0, 0, 0, 1 }
там еще и про скорость вращения и обход лимита
27

» WarCraft 3 / Способность феникса в старафт 2

GetLocalPlayer, да вспомнил еще. об этом xgm.guru/forum/showthread.php?t=58030 я не модельщик, но можно положение юнита с помощью такой модели как угодно расположить? и это работает только с конкретными способностями (вроде смерч, вихрь)?
27

» WarCraft 3 / Способность феникса в старафт 2

вот на мемхаке можно. сверх ногами дергал. но надо знать какие углы поворачивать
Недостаток этой функции - юнит утрачивает возможность разворачиваться лицом в точку после юза (возможно это как-то лечится, там скорость поворота изменить). Короче надо у драколича спрашивать. мб юнита морфнуть или удалить и создать заново.
Эти все повороты поворачивают не юнита, а модель. Учтите, когда он подбежит к вам, может повернута модель так, что бегать будет боком или сверх ногами, и бить будет не в туда куда смотрит, а куда указано юнитом, то есть facing
вот карта (это для лентяев, сборку и прочее собирать не надо)
Загруженные файлы
27

» WarCraft 3 / Способность феникса в старафт 2

Hate, на мемхаке делал такое вращение. Получилось интересно. Помогал мне Драколич.
поворот на мемхаке
//Масштабирование и повороты текущего юнита
//Основные параметры:
//facing - угол поворота юнита в радианах.
//flag - отвечает за масштабированием (1 - включить масштаб/0 - выключить). хотя масштаб можно поменять близзардской нативкой SetUnitScale
//Короче здесь при включенном flag не только увеличивается в размере модель, но и одновременно поворачивается. При выключенном флаге поворачивается модель.

//три параметра r1,r2,r3 - углы в радианах, влияют на модель. В частности, на масштаб, и на повороты модели (короче модель юнита можно накренить набок, или повернуть вверх дном и разное).  

//может показаться, что facing влияет на повороты r1,r2,r3. 
//facing - поворот юнита: морда, куда смотрит и двигается юнит, и совершает атаки и прочее.
//а углы r1,r2,r3 - совсем другое. Это повороты модели. Можно взять и повернуть вбок, всегда будет бегать боком (короче лицо принимает боковая сторона модели).
//r1 - это yaw (рыскание) - поворот носом модели влево-вправо. можно сказать это поворот модели вокруг оси z (если так смотреть). или что-то похожее на facing. По умолчанию угол = 90
//r2 - это pitch (тангаж) - поворот носом модели вверх-вниз. можно даже сверх ногами перевернуть модель. По умолчанию угол равен 0 градусов
//r3 - это roll (крен) - поворот боковой стороны модели вверх-вниз. можно тоже сверх ногами перевернуть модель. По умолчанию угол равен 0 градусов
//про все эти углы yaw, pitch, roll можно прочитать в интернете. Еще советую прочитать про углы эйлера, и изучить матрицу
//как работает матрица или углы эйлера - последовательно: сначала поворачивает на угол r1, потом поворачивают на угол r2, затем r3 (т.е. эта такая суммарная работа)
//есть недостаток углов эйлера - шарнирный замок (см. в интернете). мб быть так что не получится так как хотели бы. Сложно рассчитать: надо сначала привыкнуть, запутаться легко.
//отрицательное значение facing, r1,r2,r3 - поворот в противоположную сторону 

//Недостаток этой функции - юнит утрачивает возможность разворачиваться лицом в точку (возможно это как-то лечится, там скорость поворота изменить)
function CalculateObjectOrientationRules takes handle h, real r1, real r2, real r3, real facing, integer flag returns nothing
//yaw, pitch, roll
	call WMem(DataArray3Adress+800,mR2I(r1))
	call WMem(DataArray3Adress+804,mR2I(r2))
	call WMem(DataArray3Adress+808,mR2I(r3))
	call CallFastCallWith4Args(GameDLL+0x4B2C50,DataArray3Adress+700,DataArray3Adress+800,mR2I(facing),flag)
	call CallThisCallWith10Args(GameDLL+0x4D3170,RMem(ConvertHandle(h)+0x28),RMem(DataArray3Adress+700),RMem(DataArray3Adress+704),RMem(DataArray3Adress+708),RMem(DataArray3Adress+712),RMem(DataArray3Adress+716),RMem(DataArray3Adress+720),RMem(DataArray3Adress+724),RMem(DataArray3Adress+728),RMem(DataArray3Adress+732))
endfunction
//==================
щас в новой версии варкрафт нет функции на повороты спец-эффектов, юнитов? читал на хайве про спецэффекты, а у нас нет еще пробы?
27

» WarCraft 3 / Запретить автоатаку

Попробуй использовать способность Вырвать дерево 'Agra'. прочитать можно тут в разделе "Влияет на атаку"
Там можно для включения рядом создать дерево, и триггерно дать комманду вырвать дерево. Для выключения можно просто удалить бафф 'Bgra'.
Не знаю, не пробовал: можно изначально юниту выключить атаку, но когда он вырвет деревце, у него должна появится атака. Будет тебе автоатака, ее можно триггерно включать и выключать.

ой опять не то написал
27

» WarCraft 3 / Концепт иконок

SсRealm, он хочет иконку хорошую сделать. А иконки хорошо делает. Только вот не может придумать, что на них нарисовать такое, чтобы было естественно и понятно.
  1. цилиндрический куб (батут, можно с пружинами), и изобразить над ним стрелку вверх-вбок
27

» WarCraft 3 / Концепт иконок

Araders, как понять словесный пример. Мб описание к способностям?
  1. В указанной точке создается башня-трамплин, с помощью которой юниты преодолевают высоту препятствия ландшафта?
27

» WarCraft 3 / Способности предмета

поищи на сайте, форуме. Введи: "больше 4 способностей", нужную найдешь.
27

» WarCraft 3 / Радиус окружности, образованной движением по кругу

короче подумал зря рисовал мини-обзорчик. ладно, зато понял
скрин
см. ниже скрин,
у меня почему-то компас выдал обычный угол 6-ного многоугольника = 120°
а по формуле должен получится 60°
Ищу то не А-центральный, а обычный. Все понял, это называется внутренний угол. попутал
Загруженные файлы
27

» WarCraft 3 / Радиус окружности, образованной движением по кругу

biridius, че-то немного не понятно ) почему ты нарисовал другой малый полукруг? что за число a?
27

» WarCraft 3 / Радиус окружности, образованной движением по кругу

xPos, yPos - центр окружности (начало точки)

по идеи радиус это speed
конечная точка:
xPos + speed * Cos (angle * bj_DEGTORAD)
yPos + speed * Sin (angle * bj_DEGTORAD)

длина между центром и конечной точкой (берем BJ-функцию и под себя переделываем):
function DistanceBetweenPoints takes location locA, location locB returns real
local real dx = GetLocationX(locB) - GetLocationX(locA)
local real dy = GetLocationY(locB) - GetLocationY(locA)
return SquareRoot(dx * dx + dy * dy)
endfunction