Login
Register
Menu
Home
Forum
JassDoc
Types
Functions
Variables
Help
Chat
Media
Search
Search posts
WC3 JASS.com
"The Jass Vault" plus vJASS and Zinc
WC3 Modding Information Center
Forum
Warcraft (WC3) Modding
Warcraft III Resources
Warcraft III Spells and Systems
Codes & Snippets
TextTag
Warcraft III:
Maps
Models
Skins
Icons
Spells / Systems
Tools
Tutorials
Snippets
JASS vJASS Spells and Systems
Tutorials
Chat @Discord
vJASS & Zinc Documentation
For the latest documentation about how it works vJASS and Zinc language layers for Warcraft III, please follow these links:
Jasshelper documentation
-
Zinc documentation
-
WC3 Optimizer documentation
TextTag
Codes & Snippets
Started by
Guest
Views
1995
Replies
0
Users
1
1
Pages:
1
Go Down
0 Members and 1 Guest are viewing this topic.
cohadar
Recognized User
Posts:
9
WC3 Models: 0
WC3 Tutorials: 0
WC3 Tools: 0
WC3 Maps: 0
WC3 Skins: 0
WC3 Icons: 0
WC3 Spells: 0
Reputation:
1
master of fugue
TextTag
on:
August 21, 2011, 07:41:29 AM
Category:
Interface
Language:
vJASS
Download Demo Map
Code: 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
In the demo map you will find a set of abilities, items and dummy units that prove that some functions in this library create default wc3 texttags.
A word of advice for system-maker-wannabies:
The secret of making good libraries is in having patience.
There is nothing more useless than random pieces of code,
and nothing more useful than a properly coded and tested set of functions that behave exactly as everyone expects them to behave.
I also recommend reading this:
http://www.canonical.org/~kragen/tao-of-programming.html
«
Last Edit: December 18, 2017, 01:53:28 AM by moyack
»
Print
Pages:
1
Go Up
« previous
next »
WC3 Modding Information Center
Forum
Warcraft (WC3) Modding
Warcraft III Resources
Warcraft III Spells and Systems
Codes & Snippets
TextTag
PortaMx-SEF 1.54
|
PortaMx © 2008-2015
,
PortaMx corp.
Search
Username
Password
Always stay logged in
Forgot your password?