DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
AnalyticsManagerServer.c
См. документацию.
2{
3 const string STAT_DISTANCE = "dist";
4 const string STAT_PLAYTIME = "playtime";
5 const string STAT_PLAYERS_KILLED = "players_killed";
6 const string STAT_INFECTED_KILLED = "infected_killed";
7 const string STAT_LONGEST_SURVIVOR_HIT = "longest_survivor_hit";
8
9 void OnPlayerConnect(Man player)
10 {
11 player.StatRegister(STAT_DISTANCE);
12 player.StatRegister(STAT_PLAYTIME);
13 player.StatRegister(STAT_PLAYERS_KILLED);
14 player.StatRegister(STAT_INFECTED_KILLED);
15 player.StatRegister(STAT_LONGEST_SURVIVOR_HIT);
16 }
17
18 void OnPlayerDisconnect(Man player)
19 {
20 player.StatUpdateByPosition(STAT_DISTANCE);
21 player.StatUpdateByTime(STAT_PLAYTIME);
22 }
23
24 //Entity-Entity hit
25 void OnEntityHit(EntityAI source, Man target)
26 {
27 if (source)
28 {
29 Man survivor = source.GetHierarchyRootPlayer();
30 if (survivor && source.IsWeapon())
31 OnPlayerToPlayerHit(survivor, target);
32 }
33 }
34
35 protected void OnPlayerToPlayerHit(Man shooter, Man target)
36 {
37 float longestHitDistance = shooter.StatGet(STAT_LONGEST_SURVIVOR_HIT);
38 float currentDistance = vector.Distance(shooter.GetPosition(), target.GetPosition());
39 float distanceUpdate;
40
41 if (longestHitDistance < currentDistance)
42 distanceUpdate = currentDistance - longestHitDistance;
43
44 shooter.StatUpdate(STAT_LONGEST_SURVIVOR_HIT, distanceUpdate);
45 }
46
47 //Entity-Entity kill
48 void OnEntityKilled(Object killer, EntityAI target)
49 {
50 EntityAI killerEntity = EntityAI.Cast(killer);
51 if (killerEntity)
52 {
53 Man killerSurvivor = killerEntity.GetHierarchyRootPlayer();
54 if (killerSurvivor)
55 {
56 if (target.IsPlayer())
57 OnPlayerKilled(killerSurvivor, target);
58 else if (target.IsZombie())
59 OnInfectedKilled(killerSurvivor, target);
60 }
61 }
62 }
63
64 protected void OnPlayerKilled(Man killer, EntityAI target)
65 {
66 killer.StatUpdate(STAT_PLAYERS_KILLED, 1);
67 }
68
69 protected void OnInfectedKilled(Man killer, EntityAI target)
70 {
71 killer.StatUpdate(STAT_INFECTED_KILLED, 1);
72 }
73}
const string STAT_INFECTED_KILLED
Определения AnalyticsManagerServer.c:6
void OnPlayerKilled(Man killer, EntityAI target)
Определения AnalyticsManagerServer.c:64
const string STAT_LONGEST_SURVIVOR_HIT
Определения AnalyticsManagerServer.c:7
void OnEntityKilled(Object killer, EntityAI target)
Определения AnalyticsManagerServer.c:48
void OnEntityHit(EntityAI source, Man target)
Определения AnalyticsManagerServer.c:25
void OnPlayerDisconnect(Man player)
Определения AnalyticsManagerServer.c:18
const string STAT_PLAYTIME
Определения AnalyticsManagerServer.c:4
void OnPlayerConnect(Man player)
Определения AnalyticsManagerServer.c:9
const string STAT_PLAYERS_KILLED
Определения AnalyticsManagerServer.c:5
void OnPlayerToPlayerHit(Man shooter, Man target)
Определения AnalyticsManagerServer.c:35
void OnInfectedKilled(Man killer, EntityAI target)
Определения AnalyticsManagerServer.c:69
const string STAT_DISTANCE
Определения AnalyticsManagerServer.c:3
Определения Building.c:6
Определения ObjectTyped.c:2
static proto native float Distance(vector v1, vector v2)
Returns the distance between tips of two 3D vectors.
Определения EnConvert.c:106