Dayz Build 1.29.163047, Scripts Rev. 123548
Dayz Code Explorer by Zeroy
Loading...
Searching...
No Matches
syncevents.c
Go to the documentation of this file.
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 {
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 {
32 break;
33 }
34 case ESyncEvent.EntityKill:
35 {
37 break;
38 }
39 case ESyncEvent.PlayerIgnateFireplayce:
40 {
42 break;
43 }
44 }
45 }
46
47 static void SendPlayerList()
48 {
49 SyncData data = new SyncData;
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;
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}
static void SyncEvent_OnRecievedPlayerList(SyncPlayerList player_list)
Definition clientdata.c:51
static ref ScriptInvoker SyncEvent_OnPlayerIgnitedFireplace
Definition clientdata.c:5
static void SyncEvent_PreprocessPlayerList(SyncPlayerList player_list)
Definition clientdata.c:35
static ref ScriptInvoker SyncEvent_OnEntityKilled
Definition clientdata.c:4
The class that will be instanced (moddable).
Definition gameplay.c:389
proto bool Read(void value_in)
ref SyncPlayerList m_ServerPlayerList
Definition syncdata.c:4
ref SyncEntityKillInfo m_EntityKill
Definition syncdata.c:5
int m_SyncInt
Definition syncdata.c:3
static void SendPlayerIgnatedFireplace(Man player, EFireIgniteType ignite_type)
Definition syncevents.c:83
static void SendSyncEventEx(ERPCs rpc_event_id, ESyncEvent sync_event_type, SyncData data=null, bool guaranteed=true, Man recipient=null)
Definition syncevents.c:104
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
static void OnSyncEvent(ESyncEvent event_type, SyncData data, Object target)
Definition syncevents.c:24
static void SendEntityKilled(EntityAI victim, EntityAI killer, EntityAI source, bool is_headshot)
Definition syncevents.c:56
static void RegisterEvents()
Definition syncevents.c:3
static void Event_OnRPC(PlayerIdentity sender, Object target, int rpc_type, ParamsReadContext ctx)
Definition syncevents.c:11
static void SendPlayerList()
Definition syncevents.c:47
void CreatePlayerList()
DayZGame g_Game
Definition dayzgame.c:3942
EFireIgniteType
ERPCs
Definition erpcs.c:2
ESyncEvent
Definition esyncevent.c:2
Serializer ParamsReadContext
Definition gameplay.c:15
proto void Print(void var)
Prints content of variable to console/log.