- Joined
- Dec 31, 2007
- Messages
- 780
This is a replay detect system made by pandamine. the problem with it is that when my map is played by more than 6 people it tends to desync :/.
Can anybody see what's the problem here? or if is there another way to do this? (that doesn't involve using GetLocalPlayer())
PS: The creator of this is no longer active, so i can't ask him
Can anybody see what's the problem here? or if is there another way to do this? (that doesn't involve using GetLocalPlayer())
JASS:
//**************************************************************************************
//* *
//* REPLAY DETECT ENGINE V1.30 *
//* CONFIGURATION SETTINGS START HERE *
//* *
//**************************************************************************************
library ReplayDetectEngine
globals
boolean InGame = true
boolean array AMHS_FogDisable
boolean array AMHS_InvisDisable
unit array AMHS_FogDummy
unit array AMHS_InvisDummy
endglobals
//-> IsInGame created by PandaMine with help from Captain Griffen
//This function is what makes it possible for the system not to break replays,
//simply put if your actually playing the game, this function will return false.
//It will return true if the game is being viewed in a replay
private function IsInGame takes nothing returns boolean
local integer counter = 0
local real camerax
local real cameray
local real x
local real y
local boolean output
loop
exitwhen counter > 11
if GetLocalPlayer() == Player(counter) then
set camerax = GetCameraTargetPositionX()
set cameray = GetCameraTargetPositionY()
endif
set counter = counter + 1
endloop
set counter = 0
call PauseGame(true)
call TriggerSleepAction(0)
loop
exitwhen counter > 11
if GetLocalPlayer() == Player(counter) then
call SetCameraPosition(camerax + 1,cameray + 1)
endif
set counter = counter + 1
endloop
call TriggerSleepAction(0)
call PauseGame(false)
set counter = 0
loop
exitwhen counter > 11
if GetLocalPlayer() == Player(counter) then
set x = GetCameraTargetPositionX()
if x == camerax + 1 then
set output = true
else
set output = false
endif
call SetCameraPosition(camerax,cameray)
endif
set counter = counter + 1
endloop
return output
endfunction
function AMHS_ReplayEngine takes nothing returns nothing
call EnableUserControl(false)
call PauseGame(false)
call TriggerSleepAction(.0)
call PauseGame(false)
set InGame = IsInGame()
call EnableUserControl(true)
endfunction
//===========================================================================
function InitTrig_Replay_Detect_Engine takes nothing returns nothing
set gg_trg_Replay_Detect_Engine = CreateTrigger( )
endfunction
endlibrary
PS: The creator of this is no longer active, so i can't ask him