You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
2.4 KiB
1 lines
2.4 KiB
#ifndef YDWESyncIncluded
#define YDWESyncIncluded
library YDWESync initializer onInit
globals
private gamecache m_gc
private boolean m_mutex_state = false
endglobals
private function IsLivingPlayer takes player p returns boolean
return (GetPlayerSlotState(p) == PLAYER_SLOT_STATE_PLAYING) /*
*/ and (GetPlayerController(p) == MAP_CONTROL_USER)
endfunction
private function GetLivingfPlayer takes nothing returns player
local integer i = 0
loop
exitwhen IsLivingPlayer(Player(i)) or i >= 11
set i = i + 1
endloop
return Player(i)
endfunction
public function Lock takes nothing returns nothing
loop
if not m_mutex_state then
set m_mutex_state = true
return
endif
call TriggerSleepAction(0.2)
endloop
endfunction
public function Unlock takes nothing returns nothing
set m_mutex_state = false
endfunction
public function Join takes player p returns nothing
if GetLocalPlayer() == p then
call StoreInteger(m_gc, "-", "-", 'YDWE')
endif
call TriggerSyncStart()
if GetLocalPlayer() == p then
call SyncStoredInteger(m_gc, "-", "-")
endif
call StoreInteger(m_gc, "-", "-", 0)
call TriggerSyncReady()
loop
if 'YDWE' == GetStoredInteger(m_gc, "-", "-") then
return
endif
call TriggerSleepAction(0.2)
endloop
endfunction
public function Set takes string table, string key, integer value returns nothing
call StoreInteger(m_gc, table, key, value)
endfunction
public function Get takes string table, string key returns integer
return GetStoredInteger(m_gc, table, key)
endfunction
public function Start takes nothing returns nothing
call TriggerSyncStart()
endfunction
public function Ready takes nothing returns nothing
call TriggerSyncReady()
endfunction
public function Send takes string table, string key returns nothing
call SyncStoredInteger(m_gc, table, key)
endfunction
private function onInit takes nothing returns nothing
call FlushGameCache(InitGameCache("@"))
set m_gc = InitGameCache("@")
endfunction
endlibrary
#endif
|