HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Replays

07-14-2009, 08:24 PM#1
Storyyeller
I've noticed that for a lot of things where GetLocalPlayer() is used, the replay will display things from the point of view of the player who saved the replay, not the selected player. Is there anyway to fix this?

I've heard people talking about adding meta data to replays. What is this for, and how do I do it? Which data is saved automatically be the replay, and which things would I have to add through triggers?
07-16-2009, 10:34 AM#2
Blubb-Tec
there was a thread just recently, and afaik it said that you can't get the player from whom's point of view the replay is being watched.
07-16-2009, 11:07 AM#3
DioD
fix map, dont use local player, this is possible to ajust data without local player.
07-16-2009, 07:32 PM#4
Troll-Brain
Quote:
Originally Posted by DioD
fix map, dont use local player, this is possible to ajust data without local player.
For display Texts, yes we can use use the native function DisplayTextToPlayer, but i think the issue is also for all things that don't affect the game play, like locally texttags, effects, and so one, and for them you can't avoid the use of GetLocalPlayer().
But maybe the issue is only with texts, didn't test it.

@Storyyeller :
http://www.wc3c.net/showpost.php?p=1031574&postcount=22
07-16-2009, 08:09 PM#5
Storyyeller
Quote:
Originally Posted by DioD
fix map, dont use local player, this is possible to ajust data without local player.


Is there anyway to change the visibility of a texttag without it?
07-16-2009, 08:45 PM#6
Troll-Brain
Quote:
Originally Posted by Storyyeller
Is there anyway to change the visibility of a texttag without it?
AFAIK, no.
But because of the limit of 99 textags per player, instead of play with the visibility for each player, create them locally for the player that you want, it's 100 % safe, without any desynch.
07-17-2009, 04:27 AM#7
DioD
Storyyeller
You can add replay detect function and additional check for textags, when run as replay game will act in other way (show all text tag to everyone (not local player)) show text to everyone and soo one, this is ok.
07-17-2009, 11:17 AM#8
Sophismata
Quote:
Originally Posted by Troll-Brain
AFAIK, no.
But because of the limit of 99 textags per player, instead of play with the visibility for each player, create them locally for the player that you want, it's 100 % safe, without any desynch.
How do you create a text-tag locally, then (without using GetLocalPlayer())? As far as I can tell, it's always created for all players.
07-17-2009, 04:12 PM#9
Troll-Brain
Collapse JASS:
local texttag txt

if GetLocalPlayer() == <player wanted> or IsReplay() then
   set txt = CreateTextTag() ....
....
endif

IsReplay must be a custom function which return if it's an replay or not, we have resources about it here.

@Diod : That's clever.

EDIT : Hmm wait it's not enough, in replay mode they will be undesired things showed.
07-18-2009, 01:38 PM#10
Storyyeller
Also, wouldn't the replay detection use up a pause?
07-18-2009, 02:36 PM#11
Troll-Brain
Quote:
Originally Posted by Storyyeller
Also, wouldn't the replay detection use up a pause?
Pandanmine's version use it but i think Strilanc or someone else had submit an other one in the same thread, read it to be sure.
07-18-2009, 03:06 PM#12
DioD
there is no problems with pause...

Strilanc not posted his system as i know.
07-18-2009, 03:37 PM#13
Troll-Brain
Quote:
Originally Posted by DioD
there is no problems with pause...
There is a limit of 3 pause per player in multiplayer game.
Personally i would deactivate the pause during a multiplayer game, but maybe some people think have "only" 2 pauses is not enough ...

Quote:
Strilanc not posted his system as i know.
Hmm i was pretty sure about that, maybe it was in an other thread.

EDIT : That was here :

http://www.wc3c.net/showpost.php?p=1...&postcount=140
07-18-2009, 04:37 PM#14
Sophismata
Quote:
Originally Posted by Troll-Brain
Collapse JASS:
local texttag txt

if GetLocalPlayer() == <player wanted> or IsReplay() then
   set txt = CreateTextTag() ....
....
endif
You're using GetLocalPlayer().

Nevermind, I think I may have misunderstood your original post.
07-18-2009, 05:15 PM#15
DioD
you can trigger pause if you like soo, such pause will be on your full control (pause game native unlimited)

you will need local player anyway, but you can undo its usage in replay with IsReplay() function