Cinematic - Fade for one player

vilaemail

New Member
Reaction score
1
Hi, there. I made this function:

JASS:
function ShowPic takes integer index, player plr returns nothing
    set udg_LocalPlayer = GetLocalPlayer()
    if ( plr == udg_LocalPlayer ) then
        call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUTIN, 4, udg_stringArray[index], 100.00, 100.00, 100.00, 0 )
    endif
return
endfunction


I call it like this for now (testing map):
Trigger:
  • BumpTrig
    • Events
      • Player - Player 1 (Red) types a chat message containing -bump as An exact match
      • Player - Player 2 (Blue) types a chat message containing -bump as An exact match
    • Conditions
    • Actions
      • Custom script: call ShowPic(1,GetTriggerPlayer())


So when I (Player 1) type -bump I see fade-in and fade-out, and Player 2 (other computer) doesn't see it at all. That's nice, I want that. When Player 2 types -bump, on my monitor nothing happens, that's still good. But when Player 2 types -bump on his monitor I see only fade-in and then he get's message "You were disconnected". :eek:
I try to turn things around (eg. I host from other computer - so I can rule out any soft/hardware dependencies or whatever), and the same thing repeats. Additionally sometimes when Player 1 types -bump, Player 2 get's disconnected.
What's causing this error? Can someone else try, so I can see it's not only me. Thanks.

Sincerely,
Filip.
 

tooltiperror

Super Moderator
Reaction score
232
The difference is that mine should only fade for one player because I'm referencing [LJASS]GetLocalPlayer()[/LJASS] directly, instead of using a variable for some reason. I also removed the pointless [ljass]return[/ljass] and parenthesis you don't need.
 

vilaemail

New Member
Reaction score
1
Ok, nice you saved me from memory leak, but that didn't help solving my problem, did it? Of course not, but hey at least I won't leak memory 2 seconds before crash!! Plus rep :thup:
 

tooltiperror

Super Moderator
Reaction score
232
I don't think you understand. The creation of a handle inside local code results in desyncs.
 

PurgeandFire

zxcvmkgdfg
Reaction score
508
Ok, nice you saved me from memory leak, but that didn't help solving my problem, did it? Of course not, but hey at least I won't leak memory 2 seconds before crash!! Plus rep :thup:

As Tooltip said, you can't locally destroy a handle (or at least most of them), else it will desync. If you alter the alpha locally, it shouldn't desync. You can always just inline the function and exclude the contents of AbortCinematicFadeBJ() as well. =)
 

vilaemail

New Member
Reaction score
1
It's because it destroys a timer in AbortCinematicFadeBJ().

http://www.hiveworkshop.com/forums/cinematics-268/tips-tricks-cinema-39854/

Go to the bottom of the first post, and there is a topic for it. ;D

Thanks for help. :D
My code is now (if anyone reads this in future):

JASS:
function ShowPic takes integer index, player plr returns nothing
local real trans = 0.00
if ( plr != GetLocalPlayer() ) then
    set trans = 100.00
endif
call CinematicFadeBJ( bj_CINEFADETYPE_FADEOUTIN, 4, udg_stringarray[index], 100.00, 100.00, trans, 0 )
endfunction


@ToolTipError: Well i seem to understand now ;) You could just say this what PurgeandFire said, but you didn't so you kinda didn't help, right?
 
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