Добавлен
    function CreateTexttag takes player pl, integer red, integer green, integer blue, string st, real x, real y, real z returns nothing
        local texttag tt  = CreateTextTag()

        call SetTextTagText(tt, st, 0.023)
        call SetTextTagPos(tt, x, y, z)
        call SetTextTagColor(tt, red, green, blue, 255)
        call SetTextTagVisibility(tt, (GetLocalPlayer() == pl))
        call SetTextTagPermanent(tt, false)
        call SetTextTagVelocity(tt, 0.0, 0.03)

        call SetTextTagLifespan(tt, 3.0)
        call SetTextTagFadepoint(tt, 0.0)
      
        set t  = null
        set tt = null
    endfunction
SetTextTagPermanent(texttag, boolean)
SetTextTagLifespan(texttag, real)
SetTextTagFadepoint(texttag, real)
Нужно ли удалять texttag после вышеуказанной функции CreateTexttag(...)? Насколько я понял, функция SetTextTagLifespan(...) отвечает за время жизни texttag'a, значит ли это, что после заданного времени texttag удалится сам (как юниты)?
Какие данные нужно ввести в эту функцию, чтобы texttag двигался и исчезал так же, как и у BLIZZARD это работает с наградой за убийство, критическим ударами и предметами "Вязанка дров" и "Счастливая монетка"?

Принятый ответ

Нужно ли удалять texttag после вышеуказанной функции CreateTexttag(...)
Нет, Lifespan с этим справится сам.
Какие данные нужно ввести в эту функцию, чтобы texttag двигался и исчезал так же, как и у BLIZZARD это работает с наградой за убийство, критическим ударами и предметами "Вязанка дров" и "Счастливая монетка"?
осторожно, инглиш
Gold Text
Floating Text - Create floating text that reads (+ + Gold) at (Center of (Playable map area)) with Z offset 0.00, using font size 10.00, color (100.00%, 86.00%, 0.00%), and 0.00% transparency
Floating Text - Set the velocity of (Last created floating text) to 54.00 towards 90.00 degrees
Floating Text - Change permanent state of (Last created floating text) to Disable
Floating Text - Change the lifespan of (Last created floating text) to 2.00
Floating Text - Change the fadepoint of (Last created floating text) to 1.00
Lumber Text
Floating Text - Create floating text that reads (+ + Lumber) at (Center of (Playable map area)) with Z offset 0.00, using font size 10.00, color (0.00%, 78.00%, 31.00%), and 0.00% transparency
Floating Text - Set the velocity of (Last created floating text) to 54.00 towards 90.00 degrees
Floating Text - Change permanent state of (Last created floating text) to Disable
Floating Text - Change the lifespan of (Last created floating text) to 2.00
Floating Text - Change the fadepoint of (Last created floating text) to 1.00
Bounty Text
Floating Text - Create floating text that reads (+ + Bounty) at (Center of (Playable map area)) with Z offset 0.00, using font size 10.00, color (100.00%, 86.00%, 0.00%), and 0.00% transparency
Floating Text - Set the velocity of (Last created floating text) to 54.00 towards 90.00 degrees
Floating Text - Change permanent state of (Last created floating text) to Disable
Floating Text - Change the lifespan of (Last created floating text) to 3.00
Floating Text - Change the fadepoint of (Last created floating text) to 2.00
"miss" Text
Floating Text - Create floating text that reads miss at (Center of (Playable map area)) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
Floating Text - Set the velocity of (Last created floating text) to 72.00 towards 90.00 degrees
Floating Text - Change permanent state of (Last created floating text) to Disable
Floating Text - Change the lifespan of (Last created floating text) to 3.00
Floating Text - Change the fadepoint of (Last created floating text) to 1.00
Critical Strike
Floating Text - Create floating text that reads (CriticalStrike + !) at (Center of (Playable map area)) with Z offset 0.00, using font size 10.00, color (100.00%, 0.00%, 0.00%), and 0.00% transparency
Floating Text - Set the velocity of (Last created floating text) to 72.00 towards 90.00 degrees
Floating Text - Change permanent state of (Last created floating text) to Disable
Floating Text - Change the lifespan of (Last created floating text) to 5.00
Floating Text - Change the fadepoint of (Last created floating text) to 2.00
Shadow Strike Text
Floating Text - Create floating text that reads ShadowStrike at (Center of (Playable map area)) with Z offset 0.00, using font size 10.00, color (62.00%, 100.00%, 0.00%), and 0.00% transparency
Floating Text - Set the velocity of (Last created floating text) to 72.00 towards 90.00 degrees
Floating Text - Change permanent state of (Last created floating text) to Disable
Floating Text - Change the lifespan of (Last created floating text) to 5.00
Floating Text - Change the fadepoint of (Last created floating text) to 2.00
Mana Burn Text
Floating Text - Create floating text that reads ManaBurn at (Center of (Playable map area)) with Z offset 0.00, using font size 10.00, color (32.00%, 32.00%, 100.00%), and 0.00% transparency
Floating Text - Set the velocity of (Last created floating text) to 72.00 towards 90.00 degrees
Floating Text - Change permanent state of (Last created floating text) to Disable
Floating Text - Change the lifespan of (Last created floating text) to 5.00
Floating Text - Change the fadepoint of (Last created floating text) to 2.00

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
16
7 лет назад
0
Но ведь эти функции стандартные, описание есть прямо в редакторе карт.
1
27
7 лет назад
Отредактирован MpW
1
объяснения
удалять не нужно так как есть для этого специальные команды, которые задают время длительности жизни тексттага.
function TextTag takes unit u, string text returns texttag
local texttag t = CreateTextTag() //создаем текстаг
//скорость изменения координат xvel на оси х, yvel на оси у
local real xvel = 60 * 0.071 / 128 * Cos(70 * (3.14159/180))
local real yvel = 60 * 0.071 / 128 * Sin(70 * (3.14159/180))
call SetTextTagPermanent(t, false) //делаем постоянным
call SetTextTagText(t, text,12 * 0.023 / 10) //изменяем содержания текста, размер букв текста
call SetTextTagPosUnit(t, u, 0) //устанавливаем текстаг над юнитом и задаем высоту. Вместо этой функции можно заюзать SetTextTagPos - над точкой, тогда координаты придется вводить вместо юниита 
call SetTextTagVelocity(t, xvel, yvel) //устанавливаем скорость всплытия текста, короче эта функция отвечает за то, чтобы текст влетал вверх, как это делает при убийстве юнитов или крит и др.
call SetTextTagFadepoint(t, 0.00)  
call SetTextTagLifespan(t, 2.5) 
return t
endfunction
SetTextTagPermanent - сделать ли постоянным. постоянному текстагу нельзя будет установить время жизни. Нельзя будет сделать прозрачным или невидимым. И многие другие фишки, так как на все Permanent не проверял
Функция SetTextTagLifespan отвечает за длительность исчезновения. (Оптимально 1-3 сек). время жизни после которого исчезнет и удалиться.
функция SetTextTagAge - с какого времени начинается исчезновение. (0, для того что бы сразу). Удаляется после истекшего времени я не знаю.
Функция SetTextTagFadepoint - с какого времени начинается исчезновение, текст с каждой секундой становится все более прозрачным, и затем исчезает. (0, для того что бы сразу). Удаляется после истекшего времени я не знаю.
Функция SetTextTagVisibility - сделать текстаг видимым можно через GetLocalPlayer как в ShowTextTagForceBJ
SetTextTagColorBJ - изменяем цвет и прозрачность
SetTextTagSuspended - я не знаю что это за функция
вроде скину карту, ничего в ней особенного, но в ней проверял. возможно ошибаюсь с SetTextTagLifespan, SetTextTagFadepoint, SetTextTagAge. Проверить можно таймером и переменной не удалился ли текстаг, а вот исчезновение у некоторых команд разное кажись
Загруженные файлы
4
16
7 лет назад
4
Для продвинутых:
тексттаги не являются настоящими агентами и существуют на компе отдельно от прочего, как и молнии, например. их можно создавать в локальном коде, их не нужно нуллить.
0
21
7 лет назад
Отредактирован scopterectus
0
их можно создавать в локальном коде
То есть:
if GetLocalPlayer() == Player(0) then
	set tt = CreateTextTag()
endif
не вызовет десинхронизацию?
4
16
7 лет назад
4
Не вызовет. Ах да, их еще не более 99 на игрока, для того я и создаю изх локально, чтобы не тратить индексы на бесполезные невидимые игроку надписи. Например, которые только врагу отображаются.
2
27
7 лет назад
Отредактирован MpW
2
вот что я выяснил
SetTextTagSuspended - я не знаю что это за функция, но переводится как приостановить действие текстага. В гуи варианте есть еще Suspend/Resume. Resume - так понял запустить, перезапустить. Наверное типа как пауза, таймер жизни паузит, фиг знает, не проверял.
Функция SetTextTagLifespan отвечает за длительность исчезновения. (Оптимально 1-3 сек). время жизни после которого исчезнет и удалиться. В гуишном варианте пишут, что эта команда отвечает за удаление и очистку текстагов, придется поверить на слову.
функция SetTextTagAge - с какого времени начинается исчезновение. (0, для того что бы сразу). Удаляется после истекшего времени я не знаю.
Функция SetTextTagFadepoint - с какого времени начинается исчезновение, текст с каждой секундой становится все более прозрачным, и затем исчезает. (0, для того что бы сразу). Удаляется после истекшего времени я не знаю.
Функции SetTextTagAge и SetTextTagFadepoint напрямую связаны с SetTextTagLifespan. Правда до этого не знал, что делают две побочные нативки. Ведь в SetTextTagLifespan вы задаете время жизни, возвраст текстагов.
Например, вы задаете время жизни в SetTextTagLifespan 5 секунд. Относительно, этих 5 секунд жизни вы задаете так, чтобы на 3 секунде жизни текстаг исчез с помощью SetTextTagAge. Можно сделать так, чтобы исчез сразу на 0 секунде жизни. Если SetTextTagLifespan не задавать, то работать SetTextTagAge не будет. Вернее работает, но не так как хотелось бы (не отчего задавать время, возраст то не задан).
call SetTextTagLifespan(bj_lastCreatedTextTag, 5.) ////время жизни после которого исчезнет и удалиться
call SetTextTagAge(bj_lastCreatedTextTag, 3) //на 3 секунде жизни исчезнет текстаг
аналогично
call SetTextTagLifespan(bj_lastCreatedTextTag, 5.) ////время жизни после которого исчезнет и удалиться
call SetTextTagFadepoint(texttag, 1.5) //текстаг ближе к 1.5 секунде начнет затухать и на 1.5 секунде жизни исчезнет текстаг
что у меня получилось без SetTextTagLifespan
Пишут: функция SetTextTagAge - для установки возраста текстового объекта (в секундах) и перехода на определенный этап его процесса замирания, затухания.
Если SetTextTagLifespan не вводить, то вовсе это не время, через которое исчезнет текст, а что-то другое. Просто в буржуйском сайте на английском пишут что устанавливают возраст, хотя как-то странно время течет без SetTextTagLifespan, очень долго течет. Мб скорость затухания, то есть постепенно становится более прозрачным, и потом и вовсе исчезнет. (0-30 - не заметно, если ввести 30, то кажется, что текст не исчезает, но на самом деле полностью исчезнет через 69 сек. Если ввести 80, то полностью исчезнет через 18 сек. Если ввести 90, то исчезнет 9 сек. Если ввести 99 и более, то текст тут же исчезнет как будто бы его и не было никогда.)
Пишут: Функция SetTextTagFadepoint - для установки возраста текстового объекта (в секундах) и перехода на определенный этап его процесса замирания, затухания.
Аналогично, как и SetTextTagAge, хотя если присмотреться вроде похоже как исчезают там и здесь, текст с каждой секундой становится все более прозрачным, и затем исчезает (процесс замирания, затухания). Ввел 1 единицу, а исчезал 40-70 секунд.
пробовал проверять удаляет ли текстаги
проверял таймером обнулена ли переменная с помощью SetTextTagLifespan, SetTextTagFadepoint, SetTextTagAge
    if ( bj_lastCreatedTextTag == null ) then
        call DisplayTextToForce( GetPlayersAll(), "текстаг пуст" )
    endif
но проверка говорит, что переменная текстага не фига не пуста. Вывод (как сказал Драколич):
тексттаги не являются настоящими агентами и существуют на компе отдельно от прочего, как и молнии, например. их можно создавать в локальном коде, их не нужно нуллить.
Придеться использовать SetTextTagLifespan, так как в гуишном варианте написано, что Lifespan удаляет и чистит от текстагов
Загруженные файлы
0
16
7 лет назад
Отредактирован DracoL1ch
0
А что ты ожидал? Движок не чистит переменные сам
set u=CreateUnit(Player(0),'e00E',0,0,0)
	call RemoveUnit(u)
	call echo(B2S(u==null)+" "+I2S(GetHandleId(u)))
результат:
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.