desync check

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
JASS:
if GetLocalPlayer() == GetOwningPlayer(u) then
    call SetTextTagVisibility(this.text, true)
    call SetTextTagText(this.text, SubString("|cffff0000" + SubString("''''''''''''''''''''", 0, a - 1) + "|r|cffffc1c1" + SubString("''''''''''''''''''''", a, 19) + "|r", 0, 19), -10)
endif


simple enough, would this cause desyncs?
creating a bar that i want to look different for every player, it will be the same position and string length, but idk if it will work correctly
i do know i would have to register every variation of the string before it would work (or at least the primary string)
 

Laiev

Hey Listen!!
Reaction score
188
[ljass]texttag[/ljass] and the functions for [ljass]texttag[/ljass] can be used inside [ljass]GetLocalPlayer[/ljass] without problems (if I remember right...).
 

phyrex1an

Staff Member and irregular helper
Reaction score
447
[ljass]texttag[/ljass] and the functions for [ljass]texttag[/ljass] can be used inside [ljass]GetLocalPlayer[/ljass] without problems (if I remember right...).
"Creating" strings aren't safe though, or wasn't safe last time I checked a few years ago ^^

JASS:
local string s = SubString("|cffff0000" + SubString("''''''''''''''''''''", 0, a - 1) + "|r|cffffc1c1" + SubString("''''''''''''''''''''", a, 19) + "|r", 0, 19)
if GetLocalPlayer() == GetOwningPlayer(u) then
    call SetTextTagVisibility(this.text, true)
    call SetTextTagText(this.text, s, -10)
endif

Would be the safe version. You could probably manage to create strings in a local block without desyncs using proper care and some luck but it's easier to just put them in the global code.
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
EDIT:
nvm i failed and basically copied your post phrexian... lol, ty guys
 

dudeim

New Member
Reaction score
22
Another thing is you don't need the if:
JASS:
local string s = SubString("|cffff0000" + SubString("''''''''''''''''''''", 0, a - 1) + "|r|cffffc1c1" + SubString("''''''''''''''''''''", a, 19) + "|r", 0, 19)
    call SetTextTagVisibility(this.text, GetLocalPlayer() == GetOwningPlayer(u))
    call SetTextTagText(this.text, s, -10)

should also work
 

GFreak45

I didnt slap you, i high 5'd your face.
Reaction score
130
oooh thats cool, never thought of that
but i need the text to be different for each player not just display to specific players :(
 

luorax

Invasion in Duskwood
Reaction score
67
JASS:
local string s=""
local integer i=0
loop
    exitwhen i>11
    if GetLocalPlayer()==Player(i) then
        set s=thistype.texts<i>
    endif
    set i=i+1
endloop
call SetTextTagText(this.text,s,-10)
</i>

Where [ljass]thistype.texts[/ljass] is a static text array.

You can also use a bunch of ifs to set the value of the variable for each player and then run the last line of my code.
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top