function DisplayTextForPlayer takes player p, string text returns nothing
if GetLocalPlayer() == p then
call DisplayTextToForce(GetPlayersAll(), text)
endif
endfunction Функция выводит сообщение для одного игрока. Время "жизни" сообщения определяется автоматически.
function DisplayTextForPlayerTimed takes player p, string text, real time returns nothing
if GetLocalPlayer() == p then
call DisplayTimedTextToForce(GetPlayersAll(), time, text)
endif
endfunction
Функция выводит сообщение для одного игрока. Время "жизни" сообщения определяется параметром time.
function CreateOneUnit takes player p, integer id, location loc returns unit
set bj_lastCreatedUnit = CreateUnitAtLocSaveLast(p, id, loc, bj_UNIT_FACING)
return bj_lastCreatedUnit
endfunction
Функция вара для создания юнитов крайне неудобна, так как даже создавая 1 юнита она возвращает нам группу. Данная функция создаёт одного юнита в нужной нам точке, не требуя никаких лишних параметров.
function PlayerColor takes integer i returns string
if i == 1 then
return "|CFFFF0000"
elseif i == 2 then
return "|CFF0000FF"
elseif i == 3 then
return "|CFF18E7BD"
elseif i == 4 then
return "|CFF520084"
elseif i == 5 then
return "|CFFFFFF00"
elseif i == 6 then
return "|CFFFF8A08"
elseif i == 7 then
return "|CFF18BE00"
elseif i == 8 then
return "|CFFE759AD"
elseif i == 9 then
return "|CFF949694"
elseif i == 10 then
return "|CFF7BBEF7"
elseif i == 11 then
return "|CFF086142"
elseif i == 12 then
return "|CFF4A2800"
elseif i == 13 then
return "|CFF383838"
elseif i == 14 then
return "|CFFFFF799"
endif
return ""
endfunction
Набор цветовых кодов вара для каждого игрока. Передаём в функцию номер игрока, она возвращает нам его цвет.
function SetColorText takes player p, string text returns string
return PlayerColor(GetConvertedPlayerId(p)) + text + "|r"
endfunction
Данная функция должна использоваться вместе с предыдущей. Она возвращает перекрашеную в цвет указанного игрока надпись.
function PolarLocation takes location source, real dist, real angle returns location
local real x = GetLocationX(source) + dist * Cos(angle * bj_DEGTORAD)
local real y = GetLocationY(source) + dist * Sin(angle * bj_DEGTORAD)
call MoveLocation(source, x, y)
set x = 0.00
set y = 0.00
return source
endfunction
Об этой функции я уже говорил. Стандартная функция вычисления полярных координат в варе очень глючная (то есть создаёт огромное количество утечек). Данная функция позволяет этого избежать.
function MoveUnitXYZ takes unit u, real x, real y, real z returns nothing
local location l = Location(x, y)
call SetUnitPositionLoc(u, l)
call RemoveLocation(l)
call SetUnitFlyHeight(u, z, 30000)
set l = null
endfunction
Данная функция поможет при создании различных эффектов и т.д. Она премещает указанного юнита по всем трём осям координат. НО перемещаемый юнит обязательно должен иметь тип движения летающий! Иначе он не переместица по оси Z.