TextTag limit?

AoW_Hun7312

I'm a magic man, I've got magic hands.
Reaction score
76
Is there a limit to the amount of text tags that can be displayed at once? I have text tags being created whenever a unit is damaged to show the amount of damage they take, but it will sometimes disappear or not appear at all.

http://pastebin.com/R3YT4PEr
 

Laiev

Hey Listen!!
Reaction score
188
98 or something about that... since the texttag 98 and 99 don't work (if I remember well, Anachron explain it in some thread at the hive)
 

AoW_Hun7312

I'm a magic man, I've got magic hands.
Reaction score
76
Does this limit not reset? I have way less than 100 per player, but this still happens.
 

Sgqvur

FullOfUltimateTruthsAndEt ernalPrinciples, i.e shi
Reaction score
62
Are you destroying/recycling them properly?
 

Laiev

Hey Listen!!
Reaction score
188
Does this limit not reset? I have way less than 100 per player, but this still happens.

Are you destroying/recycling them properly?

:) if u're destroying/recycling like Sggvur said, the limit always reset...


I suggest u show the text of the damage just to the owner of the source and for other things, use Image instead of TextTag
 

tooltiperror

Super Moderator
Reaction score
231
Then the page won't load, so he has to link off site.
 

Ashlebede

New Member
Reaction score
43
(Off-topic) AoW, I suggest that you get your own sub-domain on pastebin.com. That makes it easier for us to keep track of the codes on there and makes them easier to retrieve if we "lose" them.
 

Ashlebede

New Member
Reaction score
43
(More off-topic) You don't nullify the [ljass]local player p[/ljass].

(On-topic) Try symplifying the whole thing. Un-comment what's inside the if and replace it with a texttag creation with no settings other than text. Then, try step-by-step debugging by adding one thing at a time and always testing.

(More off-topic) Maybe you could recycle texttags in some way (just like some recycle timers, you could set a texttag's visibility to [ljass]false[/ljass] and re-use it later...)
 

AoW_Hun7312

I'm a magic man, I've got magic hands.
Reaction score
76
(More off-topic) You don't nullify the [ljass]local player p[/ljass].

(On-topic) Try symplifying the whole thing. Un-comment what's inside the if and replace it with a texttag creation with no settings other than text. Then, try step-by-step debugging by adding one thing at a time and always testing.

(More off-topic) Maybe you could recycle texttags in some way (just like some recycle timers, you could set a texttag's visibility to [ljass]false[/ljass] and re-use it later...)

I thought that players didn't need to be nulled?
 

Ashlebede

New Member
Reaction score
43
Possible, I never checked. But my guess'd be every type of handle needs to be nullified. Ask Dr. Ho.
 

Laiev

Hey Listen!!
Reaction score
188
JASS:
//==============================================================================
//  TEXT TAG - Floating text system by Cohadar - v5.0
//==============================================================================
//
//  PURPOUSE:
//       * Displaying floating text - the easy way
//       * Has a set of useful and commonly needed texttag functions
//  
//  CREDITS:
//       * DioD - for extracting proper color, fadepoint and lifespan parameters
//         for default warcraft texttags (from miscdata.txt)
//
//  HOW TO IMPORT:
//       * Just create a trigger named TextTag
//         convert it to text and replace the whole trigger text with this one
//==============================================================================

library TextTag

globals    
    // for custom centered texttags
    private constant real MEAN_CHAR_WIDTH = 5.5
    private constant real MAX_TEXT_SHIFT = 200.0
    private constant real DEFAULT_HEIGHT = 16.0

    // for default texttags
    private constant real   SIGN_SHIFT = 16.0
    private constant real   FONT_SIZE = 0.024
    private constant string MISS = "miss"
endglobals

//===========================================================================
//   Custom centered texttag on (x,y) position
//   color is in default wc3 format, for example "|cFFFFCC00"
//===========================================================================
public function XY takes real x, real y, string text, string color returns nothing
    local texttag tt = CreateTextTag()
    local real shift = RMinBJ(StringLength(text)*MEAN_CHAR_WIDTH, MAX_TEXT_SHIFT)
    call SetTextTagText(tt, color+text, FONT_SIZE)
    call SetTextTagPos(tt, x-shift, y, DEFAULT_HEIGHT)
    call SetTextTagVelocity(tt, 0.0, 0.04)
    call SetTextTagVisibility(tt, true)
    call SetTextTagFadepoint(tt, 2.5)
    call SetTextTagLifespan(tt, 4.0)
    call SetTextTagPermanent(tt, false)
    set tt = null
endfunction

//===========================================================================
//   Custom centered texttag above unit
//===========================================================================
public function Unit takes unit whichUnit, string text, string color returns nothing
    local texttag tt = CreateTextTag()
    local real shift = RMinBJ(StringLength(text)*MEAN_CHAR_WIDTH, MAX_TEXT_SHIFT)
    call SetTextTagText(tt, color+text, FONT_SIZE)
    call SetTextTagPos(tt, GetUnitX(whichUnit)-shift, GetUnitY(whichUnit), DEFAULT_HEIGHT)
    call SetTextTagVelocity(tt, 0.0, 0.04)
    call SetTextTagVisibility(tt, true)
    call SetTextTagFadepoint(tt, 2.5)
    call SetTextTagLifespan(tt, 4.0)
    call SetTextTagPermanent(tt, false)    
    set tt = null
endfunction

//===========================================================================
//  Standard wc3 gold bounty texttag, displayed only to killing player 
//===========================================================================
public function GoldBounty takes unit whichUnit, integer bounty, player killer returns nothing
    local texttag tt = CreateTextTag()
    local string text = "+" + I2S(bounty)
    call SetTextTagText(tt, text, FONT_SIZE)
    call SetTextTagPos(tt, GetUnitX(whichUnit)-SIGN_SHIFT, GetUnitY(whichUnit), 0.0)
    call SetTextTagColor(tt, 255, 220, 0, 255)
    call SetTextTagVelocity(tt, 0.0, 0.03)
    call SetTextTagVisibility(tt, GetLocalPlayer()==killer)
    call SetTextTagFadepoint(tt, 2.0)
    call SetTextTagLifespan(tt, 3.0)
    call SetTextTagPermanent(tt, false)
    set text = null
    set tt = null
endfunction

//==============================================================================
public function LumberBounty takes unit whichUnit, integer bounty, player killer returns nothing
    local texttag tt = CreateTextTag()
    local string text = "+" + I2S(bounty)
    call SetTextTagText(tt, text, FONT_SIZE)
    call SetTextTagPos(tt, GetUnitX(whichUnit)-SIGN_SHIFT, GetUnitY(whichUnit), 0.0)
    call SetTextTagColor(tt, 0, 200, 80, 255)
    call SetTextTagVelocity(tt, 0.0, 0.03)
    call SetTextTagVisibility(tt, GetLocalPlayer()==killer)
    call SetTextTagFadepoint(tt, 2.0)
    call SetTextTagLifespan(tt, 3.0)
    call SetTextTagPermanent(tt, false)
    set text = null
    set tt = null
endfunction

//===========================================================================
public function ManaBurn takes unit whichUnit, integer dmg returns nothing
    local texttag tt = CreateTextTag()
    local string text = "-" + I2S(dmg)
    call SetTextTagText(tt, text, FONT_SIZE)
    call SetTextTagPos(tt, GetUnitX(whichUnit)-SIGN_SHIFT, GetUnitY(whichUnit), 0.0)
    call SetTextTagColor(tt, 82, 82 ,255 ,255)
    call SetTextTagVelocity(tt, 0.0, 0.04)
    call SetTextTagVisibility(tt, true)
    call SetTextTagFadepoint(tt, 2.0)
    call SetTextTagLifespan(tt, 5.0)
    call SetTextTagPermanent(tt, false)    
    set text = null
    set tt = null
endfunction

//===========================================================================
public function Miss takes unit whichUnit returns nothing
    local texttag tt = CreateTextTag()
    call SetTextTagText(tt, MISS, FONT_SIZE)
    call SetTextTagPos(tt, GetUnitX(whichUnit), GetUnitY(whichUnit), 0.0)
    call SetTextTagColor(tt, 255, 0, 0, 255)
    call SetTextTagVelocity(tt, 0.0, 0.03)
    call SetTextTagVisibility(tt, true)
    call SetTextTagFadepoint(tt, 1.0)
    call SetTextTagLifespan(tt, 3.0)
    call SetTextTagPermanent(tt, false)
    set tt = null
endfunction

//===========================================================================
public function CriticalStrike takes unit whichUnit, integer dmg returns nothing
    local texttag tt = CreateTextTag()
    local string text = I2S(dmg) + "!"
    call SetTextTagText(tt, text, FONT_SIZE)
    call SetTextTagPos(tt, GetUnitX(whichUnit), GetUnitY(whichUnit), 0.0)
    call SetTextTagColor(tt, 255, 0, 0, 255)
    call SetTextTagVelocity(tt, 0.0, 0.04)
    call SetTextTagVisibility(tt, true)
    call SetTextTagFadepoint(tt, 2.0)
    call SetTextTagLifespan(tt, 5.0)
    call SetTextTagPermanent(tt, false)
    set text = null
    set tt = null    
endfunction

//===========================================================================
public function ShadowStrike takes unit whichUnit, integer dmg, boolean initialDamage returns nothing
    local texttag tt = CreateTextTag()
    local string text = I2S(dmg)
    if initialDamage then
        set text = text + "!"
    endif
    call SetTextTagText(tt, text, FONT_SIZE)
    call SetTextTagPos(tt, GetUnitX(whichUnit), GetUnitY(whichUnit), 0.0)
    call SetTextTagColor(tt, 160, 255, 0, 255)
    call SetTextTagVelocity(tt, 0.0, 0.04)
    call SetTextTagVisibility(tt, true)
    call SetTextTagFadepoint(tt, 2.0)
    call SetTextTagLifespan(tt, 5.0)
    call SetTextTagPermanent(tt, false)    
    set text = null
    set tt = null
endfunction


endlibrary


have fun :p
 

Ashlebede

New Member
Reaction score
43
PURPOUSE: (purpose)
MEAN_CHAR_WIDTH (min_char_width)

I'd say if a system has major grammar or spelling mistakes in it, it ain't very reliable... just my opinion, though...

And how does it increase the max number of texttags per player ? This just seems to be funcs to create Blizzard-like texttags... >>D:
 

Laiev

Hey Listen!!
Reaction score
188
not only... and this don't increase the max number of texttags per player... is just a library that help people with texttag since lots of people forget some function of texttag which is vital...

also with this u can create the tt and clear it without anything else...

and it's approved at wc3c.. so it's leakless and work fine :)
 

Laiev

Hey Listen!!
Reaction score
188
what is your problem?

- you reach the limit of texttag fast?
--- you should display the texttag just for that player instead all player

- you want to increase the limite of texttag?
--- sorry but it's impossible since the game warcraft3 is already finished lol

- other ways?
--- you can use TextSplat
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top