- Functions - вспомогательные функции типа обрезки и вычисления разного вида интерполяций
- Vector3 - класс 3D вектора с перегруженными мат. операторами, поддержкой 3D конверсии из игровых структур и обратно, интерполяциями, применениями сферических оффсетов, проверок нахождения в сфере и ящике, трансформаций матриц и другое
- Matrix3 - класс 3x3 матрицы с множеством разных конструкторов типа осей вращения и оператором перемножения
- Matrix4 - класс 4x4 матрицы, он самый простой - с операторами сравнения и перемножения
- Box - класс для работы с кубоидами, содержащий методы получения объёма, расширения, включения, пересечения с другими фигурами и др.
- Sphere - класс для работы со сферами, содержащий методы получения объёма, включения, пересечения с другими фигурами и др.
- Ray - класс для работы с лучами и получение точек пересечения с объектами
- Camera - класс для хранения данных о камере и возможностью конвертировать оконные координаты и координаты сцены между собой
работа через (GetItemTypeId(UnitItemInSlot(u, slot ))== typeId))
Возможен всплеск…
function IsCoordsInCircle takes real x,real y,real rad,real cx,real cy returns boolean
return (SquareRoot((cx-x)*(cy-y)) < rad)
endfunction
A,B,C - углы на которые будет поворачиваться юнит в пространстве вокруг точки X1, Y1, Z1
float a1, b1, a2, b2, a3, b3, X2, Y2, Z2
X2 = GetUnitX(u)
Y2 = GetUnitY(u)
Z2 =…
A,B,C - углы на которые будет поворачиваться юнит в пространстве вокруг точки X1, Y1, Z1
A, B, C, X1, Y1, Z1 - глобалки.
local unit u=GetEnumUnit()
local real a1
local real b1
local real a2
local real b2
local real a3
local real b3…
local real r = life - GetUnitState(u, UNIT_STATE_MAX_LIFE)
if r > 0. then
if r > 1000. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x05)
call UnitRemoveAbility(u, 'A005')…
real x
real y
endglobals
local…