How to only show Floating text for one player?

lindenkron

You can change this now in User CP
Reaction score
102
Like the title said. How to only show it for one player?

From what I have been able to gather of information it somehow includes a Player variable and a
Custom script: if GetLocalPlayer() == udg_Player then
Custom script: endif

or?

I'm not clear on this, and couldn't find anything under search (Give a better search tool, that search on all words instead of only 1... LEARN FROM GOOGLE! :p)

Thanks,
-Lindenkron
 

mordocai

New Member
Reaction score
17
to my knowledge GetLocalPlayer() will work, as i have alot of spells/learned that its msot used with fade filters, im not sure wether or not it works with floating text, you should try it. Im guessing it will work like that
 

lindenkron

You can change this now in User CP
Reaction score
102
to my knowledge GetLocalPlayer() will work, as i have alot of spells/learned that its msot used with fade filters, im not sure wether or not it works with floating text, you should try it. Im guessing it will work like that

I'm thinking more specific on how to use it in a trigger?
I want to create a floating text for a single player, displaying a specific value. But I only want the killing unit to see it, not everyone else.

Any ideas to how?
 

Emu.Man00

New Member
Reaction score
41
Not sure, but

Custom script: if GetLocalPlayer() == (GetOwningPlayer(GetKillingUnit()) then
(your code)
Custom script: endif
 

mordocai

New Member
Reaction score
17
yeh its just as emu.man00 said. Thats the way to use it. Im not a jass writer but pretty much thats what its like in the jass spells that use them
 

lindenkron

You can change this now in User CP
Reaction score
102
Okay, that's what I've already set up.. And this can work without the "feared" desync? :eek:
 

lindenkron

You can change this now in User CP
Reaction score
102
Okay thanks,

-Ill be back here on this topic once I've tested if it works or not. :)
 

Larcenist

REP: Respect, Envy, Prosperity?
Reaction score
211
You wouldn't want to create the floating text inside the if block, though you can do something like this:

JASS:
local string s = ""
if (GetLocalPlayer() == GetOwningPlayer(GetKillingUnit())) then
    set s = "my text to display"
endif


Then create the floating text using the variable s instead of the actual message.
 

Larcenist

REP: Respect, Envy, Prosperity?
Reaction score
211
The common reason for desyncs with GetLocalPlayer() would be this very reason. When creating for example a handle inside a LocalPlayer()-block, that handle will only be created for one computer, resulting in different handle-stacks for different computers.

Imagine if a unit were to be created inside a GetLocalPlayer()-block, that unit would only exist for the compared player, while the other computers wouldn't know of it. It is very logical to imagine a desync if you think of it that way.
 

T.s.e

Wish I was old and a little sentimental
Reaction score
133
Has it been proved that creating floating texts within a GetLocalPlayer block really causes desyncs? They are pseudo-handles after all, and it would be good to be sure.

And also, you don't need to use the LocalPlayer block, there is a function in GUI that does it all:
Trigger:
  • Untitled Trigger 001
    • Events
    • Conditions
    • Actions
      • Floating Text - Create floating text that reads <your message> at (Center of (Playable map area)) with Z offset 0.00, using font size 10.00, color (100.00%, 100.00%, 100.00%), and 0.00% transparency
      • Floating Text - Hide (Last created floating text) for (All players)
      • Floating Text - Show (Last created floating text) for (Player group((Owner of (Killing unit))))
 

Larcenist

REP: Respect, Envy, Prosperity?
Reaction score
211
Whereas it's proved or not I do not know, though it should be a standard pre-caution to refrain from creating too much inside LocalPlayer-blocks. It's better to be on the safe side.
 

lindenkron

You can change this now in User CP
Reaction score
102
I tested it, and only the player killing unit can see the text. Would this desync?
Trigger:
  • GoldBounty
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Killing unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True
      • (Unit-type of (Killing unit)) Equal to Wolf
    • Actions
      • Set BountyInt = 0
      • Set Player = (Owner of (Killing unit))
      • Custom script: if GetLocalPlayer() == udg_Player then
      • Set BountyInt = (((Point-value of (Triggering unit)) x (Level of (Killing unit))) / 2)
      • Player - Add BountyInt to (Owner of (Killing unit)) Current gold
      • Floating Text - Create floating text that reads (String(BountyInt)) above (Triggering unit) with Z offset 0.00, using font size 8.00, color (100.00%, 80.00%, 0.00%), and 0.00% transparency
      • Floating Text - Change (Last created floating text): Disable permanence
      • Floating Text - Change the fading age of (Last created floating text) to 0.50 seconds
      • Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
      • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
      • Custom script: endif


In advance,
thanks
 

Azlier

Old World Ghost
Reaction score
461
That would desync. You are modifying the gold of a player inside a GetLocalPlayer() block.

And, I heard that floating text is safe to create for the local player because a texttag handle ID is below 0x000000.
 

lindenkron

You can change this now in User CP
Reaction score
102
And this?

Trigger:
  • GoldBounty
    • Events
      • Unit - A unit Dies
    • Conditions
      • ((Killing unit) belongs to an enemy of (Owner of (Triggering unit))) Equal to True
      • Or - Any (Conditions) are true
        • Conditions
          • (Unit-type of (Killing unit)) Equal to Wolf
          • (Unit-type of (Killing unit)) Equal to Spirit Wolf
    • Actions
      • Set BountyInt = 0
      • Set Player = (Owner of (Killing unit))
      • Set BountyInt = (((Point-value of (Triggering unit)) x (Level of (Killing unit))) / 2)
      • Player - Add BountyInt to (Owner of (Killing unit)) Current gold
      • Custom script: if GetLocalPlayer() == udg_Player then
      • Floating Text - Create floating text that reads (String(BountyInt)) above (Triggering unit) with Z offset 0.00, using font size 8.00, color (100.00%, 80.00%, 0.00%), and 0.00% transparency
      • Floating Text - Change (Last created floating text): Disable permanence
      • Floating Text - Change the fading age of (Last created floating text) to 0.50 seconds
      • Floating Text - Change the lifespan of (Last created floating text) to 2.00 seconds
      • Floating Text - Set the velocity of (Last created floating text) to 64.00 towards 90.00 degrees
      • Custom script: endif
 

Azlier

Old World Ghost
Reaction score
461
I don't think it would. Perhaps we should test this stuff and put all the results in one place, one day.
 
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