Dayz
Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Toggle main menu visibility
Loading...
Searching...
No Matches
syncevents.c
Go to the documentation of this file.
1
class
SyncEvents
2
{
3
static
void
RegisterEvents
()
4
{
5
DayZGame dz_game = DayZGame.Cast(
g_Game
);
6
7
dz_game.Event_OnRPC.Insert(
Event_OnRPC
);
8
Print
(
"SyncEvents -> RegisterEvents"
);
9
}
10
11
static
void
Event_OnRPC
(
PlayerIdentity
sender,
Object
target,
int
rpc_type,
ParamsReadContext
ctx)
12
{
13
if
( rpc_type ==
ERPCs
.RPC_SYNC_EVENT &&
g_Game
&&
g_Game
.IsMultiplayer() &&
g_Game
.IsClient() )
14
{
15
Param2<ESyncEvent, ref SyncData>
event_data =
new
Param2<ESyncEvent, ref SyncData>
( -1, null );
16
17
if
( ctx.
Read
( event_data ) )
18
{
19
OnSyncEvent
( event_data.param1, event_data.param2, target );
20
}
21
}
22
}
23
24
static
void
OnSyncEvent
(
ESyncEvent
event_type,
SyncData
data,
Object
target )
25
{
26
switch
( event_type )
27
{
28
case
ESyncEvent
.PlayerList:
29
{
30
ClientData
.
SyncEvent_PreprocessPlayerList
(data.
m_ServerPlayerList
);
31
ClientData
.
SyncEvent_OnRecievedPlayerList
(data.
m_ServerPlayerList
);
32
break
;
33
}
34
case
ESyncEvent
.EntityKill:
35
{
36
ClientData
.
SyncEvent_OnEntityKilled
( data.
m_EntityKill
);
37
break
;
38
}
39
case
ESyncEvent
.PlayerIgnateFireplayce:
40
{
41
ClientData
.
SyncEvent_OnPlayerIgnitedFireplace
( data.
m_SyncInt
);
42
break
;
43
}
44
}
45
}
46
47
static
void
SendPlayerList
()
48
{
49
SyncData
data =
new
SyncData
;
50
data.
m_ServerPlayerList
=
new
SyncPlayerList
;
51
data.
m_ServerPlayerList
.
CreatePlayerList
();
52
53
SendSyncEvent
(
ERPCs
.RPC_SYNC_EVENT,
ESyncEvent
.PlayerList, data,
true
);
54
}
55
56
static
void
SendEntityKilled
(
EntityAI
victim,
EntityAI
killer,
EntityAI
source,
bool
is_headshot )
57
{
58
if
( (victim && victim.IsPlayer()) || (killer && killer.IsPlayer()) )
59
{
60
SyncData
data =
new
SyncData
;
61
data.
m_EntityKill
=
new
SyncEntityKillInfo
;
62
63
data.
m_EntityKill
.
m_EntityVictim
= victim;
64
data.
m_EntityKill
.
m_EntityKiller
= killer;
65
data.
m_EntityKill
.
m_EntitySource
= source;
66
data.
m_EntityKill
.
m_IsHeadShot
= is_headshot;
67
68
Man recipient;
69
70
if
( killer && killer.IsPlayer() && victim.GetID() != killer.GetID() )
71
{
72
recipient = Man.Cast(killer);
73
}
74
else
if
( victim && victim.IsPlayer() )
75
{
76
recipient = Man.Cast(victim);
77
}
78
79
SendSyncEventEx
(
ERPCs
.RPC_SYNC_EVENT,
ESyncEvent
.EntityKill, data,
true
, recipient );
80
}
81
}
82
83
static
void
SendPlayerIgnatedFireplace
( Man player,
EFireIgniteType
ignite_type )
84
{
85
SyncData
data =
new
SyncData
;
86
data.
m_SyncInt
= ignite_type;
87
88
SendSyncEvent
(
ERPCs
.RPC_SYNC_EVENT,
ESyncEvent
.PlayerIgnateFireplayce, data,
true
, player.GetIdentity() );
89
}
90
91
private
static
void
SendSyncEvent
(
ERPCs
rpc_event_id,
ESyncEvent
sync_event_type,
SyncData
data = null,
bool
guaranteed =
true
,
PlayerIdentity
player_target = null )
92
{
93
Param2<ESyncEvent, ref SyncData>
event_data =
new
Param2<ESyncEvent, ref SyncData>
( sync_event_type, data );
94
if
( !player_target )
95
{
96
g_Game
.RPCSingleParam( null, rpc_event_id, event_data, guaranteed );
97
}
98
else
99
{
100
g_Game
.RPCSingleParam( null, rpc_event_id, event_data, guaranteed, player_target );
101
}
102
}
103
104
private
static
void
SendSyncEventEx
(
ERPCs
rpc_event_id,
ESyncEvent
sync_event_type,
SyncData
data = null,
bool
guaranteed =
true
, Man recipient = null )
105
{
106
SendSyncEvent
(rpc_event_id, sync_event_type, data, guaranteed, recipient.GetIdentity());
107
}
108
}
ClientData
Definition
clientdata.c:2
ClientData::SyncEvent_OnRecievedPlayerList
static void SyncEvent_OnRecievedPlayerList(SyncPlayerList player_list)
Definition
clientdata.c:51
ClientData::SyncEvent_OnPlayerIgnitedFireplace
static ref ScriptInvoker SyncEvent_OnPlayerIgnitedFireplace
Definition
clientdata.c:5
ClientData::SyncEvent_PreprocessPlayerList
static void SyncEvent_PreprocessPlayerList(SyncPlayerList player_list)
Definition
clientdata.c:35
ClientData::SyncEvent_OnEntityKilled
static ref ScriptInvoker SyncEvent_OnEntityKilled
Definition
clientdata.c:4
EntityAI
Definition
inventoryitem.c:2
Object
Definition
objecttyped.c:2
Param2
Definition
ppeconstants.c:68
PlayerIdentity
The class that will be instanced (moddable).
Definition
gameplay.c:389
Serializer::Read
proto bool Read(void value_in)
SyncData
Definition
syncdata.c:2
SyncData::m_ServerPlayerList
ref SyncPlayerList m_ServerPlayerList
Definition
syncdata.c:4
SyncData::m_EntityKill
ref SyncEntityKillInfo m_EntityKill
Definition
syncdata.c:5
SyncData::m_SyncInt
int m_SyncInt
Definition
syncdata.c:3
SyncEntityKillInfo
Definition
syncentitykill.c:2
SyncEntityKillInfo::m_EntityVictim
EntityAI m_EntityVictim
Definition
syncentitykill.c:3
SyncEntityKillInfo::m_EntityKiller
EntityAI m_EntityKiller
Definition
syncentitykill.c:4
SyncEntityKillInfo::m_EntitySource
EntityAI m_EntitySource
Definition
syncentitykill.c:5
SyncEntityKillInfo::m_IsHeadShot
bool m_IsHeadShot
Definition
syncentitykill.c:6
SyncEvents
Definition
syncevents.c:2
SyncEvents::SendPlayerIgnatedFireplace
static void SendPlayerIgnatedFireplace(Man player, EFireIgniteType ignite_type)
Definition
syncevents.c:83
SyncEvents::SendSyncEventEx
static void SendSyncEventEx(ERPCs rpc_event_id, ESyncEvent sync_event_type, SyncData data=null, bool guaranteed=true, Man recipient=null)
Definition
syncevents.c:104
SyncEvents::SendSyncEvent
static void SendSyncEvent(ERPCs rpc_event_id, ESyncEvent sync_event_type, SyncData data=null, bool guaranteed=true, PlayerIdentity player_target=null)
Definition
syncevents.c:91
SyncEvents::OnSyncEvent
static void OnSyncEvent(ESyncEvent event_type, SyncData data, Object target)
Definition
syncevents.c:24
SyncEvents::SendEntityKilled
static void SendEntityKilled(EntityAI victim, EntityAI killer, EntityAI source, bool is_headshot)
Definition
syncevents.c:56
SyncEvents::RegisterEvents
static void RegisterEvents()
Definition
syncevents.c:3
SyncEvents::Event_OnRPC
static void Event_OnRPC(PlayerIdentity sender, Object target, int rpc_type, ParamsReadContext ctx)
Definition
syncevents.c:11
SyncEvents::SendPlayerList
static void SendPlayerList()
Definition
syncevents.c:47
SyncPlayerList
Definition
syncplayerlist.c:2
SyncPlayerList::CreatePlayerList
void CreatePlayerList()
Definition
syncplayerlist.c:5
g_Game
DayZGame g_Game
Definition
dayzgame.c:3942
EFireIgniteType
EFireIgniteType
Definition
efireignitetype.c:2
ERPCs
ERPCs
Definition
erpcs.c:2
ESyncEvent
ESyncEvent
Definition
esyncevent.c:2
ParamsReadContext
Serializer ParamsReadContext
Definition
gameplay.c:15
Print
proto void Print(void var)
Prints content of variable to console/log.
Games
Dayz
scripts
3_game
syncevents.c
Generated by
1.17.0