desync ?

BEeeH-

New Member
Reaction score
2
I got a trigger for an ability that shows the range of the units truesight. It works by creating dummys in a X big circle around the unit. But the dummys can be seen by everyone, and that might be kinda annoying. So i decided to hide the dummys for everyone but the triggering player. And since there is no way to do it in GUI, I took help from a friend with jass skills.

The trigger now looks like this.

Code:
Truesight Range
    Events
        Unit - A unit Starts the effect of an ability
    Conditions
        (Ability being cast) Equal to True Sight Range 
    Actions
        Custom script:   local integer a=1
        Trigger - Turn on Truesight Follow <gen>
        Custom script:   loop
        Custom script:   exitwhen a>12
        Set Point1 = (Position of (Triggering unit))
        Custom script:   set udg_Point2 = PolarProjectionBJ(udg_Point1, 850.00, ( 30.00 * I2R(a) ))
        Unit - Create 1 Dummy for (Owner of (Triggering unit)) at Point2 facing Point1
        Custom script:   set udg_TruesightInt=a
        Set Dummy[TruesightInt] = (Last created unit)
        Unit - Hide (Last created unit)
        Custom script:   if GetLocalPlayer()==GetTriggerPlayer() then
        Unit - Unhide (Last created unit)
        Custom script:   endif
        Unit - Move (Last created unit) instantly to Point2, facing Point1
        Unit Group - Add (Last created unit) to DummyGroup
        Unit - Turn collision for (Last created unit) Off
        Unit - Add a 2.00 second Generic expiration timer to (Last created unit)
        Set Truesight_unit = (Triggering unit)
        Custom script:   call RemoveLocation (udg_Point2)
        Custom script:   call RemoveLocation (udg_Point1)
        Custom script:   set a=a+1
        Custom script:   endloop

Everything works perfect when I'm testing the map, but when there are other players in the game they suddenly get kicked by some reason... My friend says it's desync because the getlocalplayer part blabla, and that there's no other way to hide units for players X without causing desync.

Is it true? I dunno shit about jass, so I'm asking u guys.

Here are 2 other triggers that are needed to make the ability work.
Code:
Dummygroup remove
    Events
        Unit - A unit Dies
    Conditions
        (Triggering unit) Equal to Dummy[(Integer A)]
    Actions
        Trigger - Turn off Truesight Follow <gen>
        For each (Integer A) from 1 to 12, do (Actions)
            Loop - Actions
                Unit Group - Remove (Triggering unit) from DummyGroup
Code:
Events
    Time - Every 0.05 seconds of game time
 

luorax

Invasion in Duskwood
Reaction score
67
You can't hide a unit for only one player. It causes desync. Try using vertexcolors with 0 Alpha.
 

Bribe

vJass errors are legion
Reaction score
67
The best way to hide a unit is with 0 scale, as if it has an effect-attachment like a fireball the vertext alpha will not hide the fireball.
 

BEeeH-

New Member
Reaction score
2
Sorry for bad explanation. I'm trying to hide a unit for ALMOST all players EXCEPT the triggering player! Is it possible?

And what do vertexcolors with 0 Alpha mean?? :eek:

thx for replies!:)
 

BEeeH-

New Member
Reaction score
2
It says errors : o
 

Attachments

  • error.JPG
    error.JPG
    51.8 KB · Views: 269

luorax

Invasion in Duskwood
Reaction score
67
Local declarations must be the first in the function. So start with "local real size = 0".
 
General chit-chat
Help Users

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top