Пришлось соединить 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
0
28
10 лет назад
0
убери этот конверт из гуи
плизззз
0
15
10 лет назад
0
Я не знаю всех функций Jass и прочего, поэтому приходится смотреть как это в гуи.
Знаю только, что Set перед присваиванием можно не писать, но мне так удобнее.
0
28
10 лет назад
0
так почитай статьи
+ если зажать контрл и лкм на бж фунцию то откроется её содержимое
0
15
10 лет назад
0
Ну учиться надо на практике, вот сейчас я с этим тексттагом в тупике просто.
0
28
10 лет назад
0
там надо поменять состояние текстага(не помню функцию а копаться в комонджи лень)
0
15
10 лет назад
0
Странно, что в другой функции (как я говорил, это я соединил 2 разные) текстаг прекрасно удалялся.
0
28
10 лет назад
0
Audes, фаза луны другая
0
15
10 лет назад
Отредактирован Audes
0
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
0
28
10 лет назад
0
PolledWait(2) не юзай лучше
0
15
10 лет назад
Отредактирован Audes
0
Я смотрел пример SampleLocs (или как-то так) в "Осваиваем Jass - локальные переменные", там это было. И что же, таймер юзать?
0
28
10 лет назад
0
Audes, если знаешь что такое таймер то да
если не знаешь то юзай TriggerSleepAction()
а вобще прочитай статью полностью а не только локальные переменные
0
15
10 лет назад
0
TriggerSleepAction()
Тот же эффект. Таймер ещё не проверял.
0
28
10 лет назад
0
Audes, эффект тот же а быстродействие другое
сам глянь начинку
1
27
10 лет назад
Отредактирован MpW
1
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
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.