Пришлось соединить 2 функции, поэтому нечитабельно, но суть в том, что когда было по-отдельности, тексттаг исчезал (хотя вроде бы всё то же).
function PHBMulti takes unit u returns nothing
local effect e
local string path = "Abilities\\Spells\\Human\\HolyBolt\\HolyBoltSpecialArt.mdl"
local texttag PLabel
local location loc = GetUnitLoc(u)
local real z = GetUnitFlyHeight(u)
local real size = 20
call CreateTextTagLocBJ("Крит!",loc,z,size,255,0,0,0)
set PLabel = GetLastCreatedTextTag()
call SetTextTagVelocityBJ(PLabel,64,90)
call AddSpecialEffectTargetUnitBJ("origin",u,path)
call SetUnitLifeBJ(u,GetUnitState(u,UNIT_STATE_LIFE)+udg_intHBD)
call DestroyEffect(e)
call RemoveLocation(loc)
call PolledWait(2)
call DestroyTextTag(PLabel)
endfunction

function Text takes string text,unit u,real size,real red,real green,real blue,real alpha returns nothing
set bj_lastCreatedTextTag = CreateTextTag()
call SetTextTagTextBJ(bj_lastCreatedTextTag,text,size)
call SetTextTagPosUnitBJ(bj_lastCreatedTextTag,u,0.00)
call SetTextTagColorBJ(bj_lastCreatedTextTag,red,green,blue,alpha)
call SetTextTagPermanent(bj_lastCreatedTextTag,false)
call SetTextTagFadepoint(bj_lastCreatedTextTag,2)
call SetTextTagLifespan(bj_lastCreatedTextTag,4)
call SetTextTagVelocity(bj_lastCreatedTextTag,0.,0.027)
endfunction
и не нужны никакие локалки типа texttag Label потому что память загромождает и обнулять не нужно. вроде говорить адольф
делаем непостоянным SetTextTagPermanent и потом время жизни ставим SetTextTagLifespan
а SetTextTagVelocity заставляет текст двигаться по оси x и y
`
ОЖИДАНИЕ РЕКЛАМЫ...
15
Я не знаю всех функций Jass и прочего, поэтому приходится смотреть как это в гуи.
Знаю только, что Set перед присваиванием можно не писать, но мне так удобнее.
28
так почитай статьи
+ если зажать контрл и лкм на бж фунцию то откроется её содержимое
15
Ну учиться надо на практике, вот сейчас я с этим тексттагом в тупике просто.
28
там надо поменять состояние текстага(не помню функцию а копаться в комонджи лень)
15
Странно, что в другой функции (как я говорил, это я соединил 2 разные) текстаг прекрасно удалялся.
15
nvc123, я серьёзно) Я знаю, что есть состояние тексттага, но раз работало без смены состояния, то проблема не в этом. Ладно, я сам по-проверяю.
Код первой функции, в которой тестаг исчезает.
function Multi takes unit u returns nothing
local texttag Label
local location loc = GetUnitLoc(u)
local real z = GetUnitFlyHeight(u)
local real size = 20
call CreateTextTagLocBJ("Крит!",loc,z,size,255,0,0,0)
set Label = GetLastCreatedTextTag()
call SetTextTagVelocityBJ(Label,64,90)
call RemoveLocation(loc)
call PolledWait(2)
call DestroyTextTag(Label)
endfunction
15
Я смотрел пример SampleLocs (или как-то так) в "Осваиваем Jass - локальные переменные", там это было. И что же, таймер юзать?
28
Audes, если знаешь что такое таймер то да
если не знаешь то юзай TriggerSleepAction()
а вобще прочитай статью полностью а не только локальные переменные
15
TriggerSleepAction()
Тот же эффект. Таймер ещё не проверял.
28
Audes, эффект тот же а быстродействие другое
сам глянь начинку
27
function Text takes string text,unit u,real size,real red,real green,real blue,real alpha returns nothing
set bj_lastCreatedTextTag = CreateTextTag()
call SetTextTagTextBJ(bj_lastCreatedTextTag,text,size)
call SetTextTagPosUnitBJ(bj_lastCreatedTextTag,u,0.00)
call SetTextTagColorBJ(bj_lastCreatedTextTag,red,green,blue,alpha)
call SetTextTagPermanent(bj_lastCreatedTextTag,false)
call SetTextTagFadepoint(bj_lastCreatedTextTag,2)
call SetTextTagLifespan(bj_lastCreatedTextTag,4)
call SetTextTagVelocity(bj_lastCreatedTextTag,0.,0.027)
endfunction
и не нужны никакие локалки типа texttag Label потому что память загромождает и обнулять не нужно. вроде говорить адольф
делаем непостоянным SetTextTagPermanent и потом время жизни ставим SetTextTagLifespan
а SetTextTagVelocity заставляет текст двигаться по оси x и y
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.