function FadingText_Timer takes nothing returns nothing local timer t = GetExpiredTimer() call DestroyTextTag( LoadTextTagHandle( udg_hash, GetHandleId( t ), 0 ) ) call FlushChildHashtable( udg_hash, GetHandleId( t ) ) call DestroyTimer( t ) set t = null endfunction function FadingText takes string s, unit u, real size, integer r, integer g, integer b, integer transparent, real speed, real deg, real fade, real life, integer pl returns nothing local texttag t = CreateTextTag() local timer k = CreateTimer() call SetTextTagText( t, s, size * 0.0023 ) call SetTextTagPosUnit( t, u, -100. ) if GetLocalPlayer() == Player( pl ) then call SetTextTagVisibility( t, true ) endif call SetTextTagVelocity( t, speed * 0.071 / 128. * Cos( deg * bj_DEGTORAD ), speed * 0.071 / 128. * Sin( deg * bj_DEGTORAD ) ) call SetTextTagSuspended( t, false ) call SetTextTagPermanent( t, false ) call SetTextTagFadepoint( t, fade ) call SetTextTagColor( t, r, g, b, transparent ) call SetTextTagLifespan( t, life ) call SaveTextTagHandle( udg_hash, GetHandleId( k ), 0, t ) call TimerStart( k, life*2., false, function FadingText_Timer ) set t = null set k = null endfunction //------------------------------------------------ function Trig__Timer takes nothing returns nothing local timer t = GetExpiredTimer() local integer i = GetHandleId(t) local unit u = LoadUnitHandle( HASH, i, 0 ) local integer l = GetUnitTypeId(u) local player p = GetOwningPlayer( u ) if GetUnitState( u, UNIT_STATE_LIFE ) > 0. then call FadingText("+"+I2S(udg_falk),u,10.,255,204,0,255,64.,90.,3.,5.,GetPlayerId(p)) else call PauseTimer(t) call DestroyTimer(t) call FlushChildHashtable( HASH, i ) endif set t = null endfunction function Trig_Trees_of_Life_Actions takes nothing returns nothing local timer t = CreateTimer() call SaveUnitHandle( HASH, GetHandleId(t), 0, GetConstructedStructure() ) call TimerStart( t, 1., true, function Trig__Timer ) set t = null endfunction
Во всех случаях texttag отображается нормально, но в этом иногда удаляется при создании нового. Т.е. каждую секунду над юнитом всплывает текст, и еще не потухший текст удаляется, когда начинает всплывать новый.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
function FadingText takes string s, unit u, real size, integer r, integer g, integer b, integer transparent, real speed, real deg, real fade, real life, integer pl returns nothing local texttag t = CreateTextTag() call SetTextTagText(t, s, size * 0.0023) call SetTextTagPosUnit(t, u, -100.0) call SetTextTagVisibility(t, false) if (GetLocalPlayer() == Player(pl)) then call SetTextTagVisibility(t, true) endif call SetTextTagVelocity(t, speed * 0.071 / 128.0 * Cos(deg * bj_DEGTORAD), speed * 0.071 / 128.0 * Sin(deg * bj_DEGTORAD)) call SetTextTagSuspended(t, false) call SetTextTagPermanent(t, false) call SetTextTagFadepoint(t, fade) call SetTextTagColor(t, r, g, b, transparent) call SetTextTagLifespan(t, life) set t = null endfunction
//------------------------------------------------ function Trig__Timer takes nothing returns nothing local timer t = GetExpiredTimer() local integer i = GetHandleId(t) local unit u = LoadUnitHandle(udg_hash, i, 0) local player p = GetOwningPlayer(u) if (GetUnitState(u, UNIT_STATE_LIFE ) > 0.0) then call FadingText("+" + "UDG_FALK", u, 10.0, 255, 204, 0, 255, 64.0, 90.0, 3.0, 5.0, GetPlayerId(p)) else call PauseTimer(t) call DestroyTimer(t) call FlushChildHashtable(udg_hash, i) endif set t = null endfunction
function Trees_of_Life_Actions takes nothing returns nothing local timer t = CreateTimer() call SaveUnitHandle(udg_hash, GetHandleId(t), 0, GetConstructedStructure()) call TimerStart(t, 1.0, true, function Trig__Timer) set t = null endfunction
TEXTTAG'и автоматически уничтожаются при уходе из зоны видимости (все переменные обнулены и время жизни прошло), можно не делать второй таймер. Хэш-Таблицу лучше держать одну, места в ней хватает. Вроде сейчас все работает, как надо.
Ajaccio, они уничтожаются, когда находятся в зоне видимости. Но попробую первый вариант.
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?