0
15
6 лет назад
0

» Fa_losophy / Движок 3D игор

А разве не будет идеальным решением в этом случае написание того же плагина под UE4, который позволяет реализовать взаимодействие с любым обьектом на сцене, благо анрил не ограничивает такое. Таким образом ставя плагин нам подгружаются нужные базовые класы, по типу тех же юнитов, абилок, итемов и т.д., сами же сущности можно редактировать прямо на сцене через созданный UI для этого, как уже реализованы те же плагины для создания и удобного редактирования мешей и сплайнов на сцене.
Тут фишка просто в том, чтобы сделать базовую логику, которая без вмешательства в код будет работать как в простом RTS. В случае надобности мы легко наследуем нужный класс, делаем нужные манипуляции в коде и просто подменяем.
7
15
6 лет назад
7

» WarCraft 3 / Не загружается юнит с хештаблицы

SaveUnitHandle(hash,GetHandleId(target),7,caster);
GetHandleId(target) - хендл самого юнита
LoadUnitHandle(hash,GetUnitTypeId(u),7);
GetUnitTypeId(u) - Ид типа юнита, а не хендл.
0
15
6 лет назад
0

» WarCraft 3 / vjass структуры, проблема наследования

PT153, у меня есть привычка проверять сначала, если не уверен) так что да, тестировал, не работает, getTrack, который принадлежит Tracker, его и возвращает.
0
15
6 лет назад
Отредактирован exAres
0

» WarCraft 3 / vjass структуры, проблема наследования

PT153, да вот только thistype возвращает структуру из которой он вызван, а не структуру инстанса идентификатора, т.е. getTrack будет всегда возвращать тип Tracker. Вопрос в том, как по идентификатору определить конкретный тип структуры и к нему привести.
0
15
6 лет назад
Отредактирован exAres
0

» WarCraft 3 / vjass структуры, проблема наследования

PT153, вот только беда в том, что при регистрации TriggerAddAction(trk.t_track,function Tracker.defaultTrack) я должен указать именно статичную функцию, а вот с нее уже вызвать наследованную.
0
15
17 лет назад
0

» WarCraft 3 / Библиотека функций

DeT вот:
function IsCordsInRect takes real x,real y,rect rct returns boolean
 return GetRectMinX(rct)<=x and GetRectMaxX(rct)>=x and GetRectMinY(rct)<=y and GetRectMaxY(rct)>=y
endfunction
  • это если есть рект.
function IsCordsInRect2 takes integer x,integer y,real lng,real X,real Y returns boolean
 local real rad=lng*0.5
 return X-rad<=x and X+rad>=x and Y-rad<=y and Y+rad>=y
endfunction
  • а это если его ещё нету.
ЗЫ вроде должно работать :)
0
15
17 лет назад
0

» WarCraft 3 / Библиотека функций


function Parabola takes real x,real len returns real
 local real hig = len/2
 local real Z=4*x*hig*(1-x/len)/len
return Z
endfunction

Формула вычисления Z для правильной параболы.
x - расстояние между юнитом и концом пути.
len - длинна пути.

function IsLinesCrosed takes real xb1,real yb1,real xe1,real ye1,real xb2,real yb2,real xe2,real ye2 returns boolean
local real X=(ye1-yb1)*(xb2-xe2)-(yb2-ye2)*(xe1-xb1)
local real Y=(ye1-yb1)*(xb2-xb1)-(yb2-yb1)*(xe1-xb1)
local real Z=(yb2-yb1)*(xb2-xe2)-(yb2-ye2)*(xb2-xb1)
local real Ua=Y/X
local real Ub=Z/X
 return 0<=Ua and Ua<=1 and 0<=Ub and Ub<=1

endfunction
формула которая проверяет пересекаются линии или нет