h1z1-server 0.23.4-3 → 0.23.4-5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -164,10 +164,10 @@
164
164
  "range": 300,
165
165
  "bounds": [
166
166
  [
167
- [ -692.3400268554688, 2793.47998046875 ],
168
- [ -688.9000244140625, 2579.320068359375 ],
169
- [ -1174.68994140625, 2576.340087890625 ],
170
- [ -1198.72998046875, 2839.840087890625 ]
167
+ [ -692.3400268554688, 2793.47998046875 ],
168
+ [ -688.9000244140625, 2579.320068359375 ],
169
+ [ -1174.68994140625, 2576.340087890625 ],
170
+ [ -1198.72998046875, 2839.840087890625 ]
171
171
  ]
172
172
  ],
173
173
  "position": [
@@ -284,5 +284,45 @@
284
284
  -2726.31,
285
285
  1
286
286
  ]
287
+ },
288
+ {
289
+ "POIid": 18,
290
+ "POIname": "Military Base",
291
+ "stringId": 9550,
292
+ "range": 0,
293
+ "bounds": [
294
+ [
295
+ [ 558.22998046875, -2550.699951171875 ],
296
+ [ 1051.0999755859375, -2515.39990234375 ],
297
+ [ 1056.3900146484375, -2796.889892578125 ],
298
+ [ 559.989990234375, -2806.1298828125 ]
299
+ ]
300
+ ],
301
+ "position": [
302
+ 822.40,
303
+ 14.00,
304
+ -2670.29,
305
+ 1
306
+ ]
307
+ },
308
+ {
309
+ "POIid": 19,
310
+ "POIname": "Toxic",
311
+ "stringId": 9550,
312
+ "range": 0,
313
+ "bounds": [
314
+ [
315
+ [ -2975.1298828125, -1970.3499755859375 ],
316
+ [ -2966.89990234375, -2243.929931640625 ],
317
+ [ -3218.27001953125, -2242.27001953125 ],
318
+ [ -3198.72998046875, -1979.6300048828125 ]
319
+ ]
320
+ ],
321
+ "position": [
322
+ -3102.32,
323
+ 28.22,
324
+ -2164.61,
325
+ 1
326
+ ]
287
327
  }
288
328
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "h1z1-server",
3
- "version": "0.23.4-3",
3
+ "version": "0.23.4-5",
4
4
  "description": "Library for emulating h1z1 servers",
5
5
  "author": "Quentin Gruber <quentingruber@gmail.com> (http://github.com/quentingruber)",
6
6
  "license": "GPL-3.0-only",
@@ -1,128 +1,127 @@
1
- // ======================================================================
2
- //
3
- // GNU GENERAL PUBLIC LICENSE
4
- // Version 3, 29 June 2007
5
- // copyright (C) 2020 - 2021 Quentin Gruber
6
- // copyright (C) 2021 - 2023 H1emu community
7
- //
8
- // https://github.com/QuentinGruber/h1z1-server
9
- // https://www.npmjs.com/package/h1z1-server
10
- //
11
- // Based on https://github.com/psemu/soe-network
12
- // ======================================================================
13
-
14
- import { toInt, _ } from "../../../utils/utils";
15
- import { Character2016 } from "../entities/character";
16
- import { ZoneClient2016 as Client } from "./zoneclient";
17
- import { LootableProp } from "../entities/lootableprop";
18
- import { ZoneServer2016 } from "../zoneserver";
19
-
20
- export class ZoneClient2016 {
21
- guid?: string;
22
- character: Character2016;
23
- currentPOI?: number;
24
- firstLoading: boolean = false;
25
- isLoading: boolean = true;
26
- characterReleased: boolean = false;
27
- isInteracting: boolean = false;
28
- isAdmin: boolean = false;
29
- isDebugMode: boolean = false;
30
- banType: string = "";
31
- HWID: string = "";
32
- posAtLastRoutine: Float32Array = new Float32Array();
33
- posAtLogoutStart: Float32Array = new Float32Array();
34
- oldPos: { position: Float32Array; time: number } = {
35
- position: new Float32Array(),
36
- time: 0,
37
- };
38
- speedWarnsNumber: number = 0;
39
- allowedProjectiles: number = 0;
40
- pvpStats: {
41
- shotsFired: number;
42
- shotsHit: number;
43
- head: number;
44
- spine: number;
45
- hands: number;
46
- legs: number;
47
- } = { shotsFired: 0, shotsHit: 0, head: 0, spine: 0, legs: 0, hands: 0 };
48
- clientLogs: { log: string; isSuspicious: boolean }[] = [];
49
- reports: number = 0;
50
- lastDeathReport?: {
51
- position: Float32Array;
52
- attackerPosition: Float32Array;
53
- distance: number;
54
- attacker: Client;
55
- };
56
- hudTimer?: NodeJS.Timeout | null;
57
- spawnedDTOs: any[] = [];
58
- spawnedEntities: any[] = [];
59
- searchedProps: LootableProp[] = [];
60
- managedObjects: string[] = [];
61
- vehicle: {
62
- mountedVehicle?: string;
63
- } = {};
64
- radio: boolean = false;
65
- npcsToSpawnTimer!: NodeJS.Timeout;
66
- loginSessionId: string;
67
- pingTimer: NodeJS.Timeout | undefined;
68
- clearHudTimer: () => void;
69
- clearTimers: () => void;
70
- sessionId: number;
71
- soeClientId: string;
72
- lastKeepAliveTime: number = 0;
73
- pings: number[] = [];
74
- avgPing: number = 0;
75
- avgPingLen: number = 4;
76
- pingWarnings: number = 0;
77
- isWeaponLock: boolean = false;
78
- avgPingReady: boolean = false;
79
- chunkRenderDistance: number = 400;
80
- routineInterval?: NodeJS.Timeout;
81
- routineCounter: number = 0;
82
- constructor(
83
- sessionId: number,
84
- soeClientId: string,
85
- loginSessionId: string,
86
- characterId: string,
87
- transientId: number,
88
- server: ZoneServer2016
89
- ) {
90
- this.sessionId = sessionId;
91
- this.soeClientId = soeClientId;
92
-
93
- this.isLoading = true;
94
- this.firstLoading = true;
95
- this.loginSessionId = loginSessionId;
96
- this.spawnedEntities = [];
97
- this.managedObjects = [];
98
- this.clearTimers = () => {
99
- clearTimeout(this.npcsToSpawnTimer);
100
- };
101
- this.clearHudTimer = () => {
102
- if (this.hudTimer) {
103
- clearTimeout(this.hudTimer);
104
- }
105
- this.hudTimer = null;
106
- this.isInteracting = false;
107
- };
108
-
109
- this.character = new Character2016(characterId, transientId, server);
110
- }
111
- addPing(ping: number) {
112
- if (ping > 0) {
113
- this.pings.push(ping);
114
- }
115
- if (this.pings.length > this.avgPingLen) {
116
- this.pings.shift();
117
- }
118
- if (this.pings.length === this.avgPingLen) {
119
- this.updateAvgPing();
120
- } else {
121
- this.avgPingReady = false;
122
- }
123
- }
124
- updateAvgPing() {
125
- this.avgPing = toInt(_.sum(this.pings) / this.pings.length);
126
- this.avgPingReady = true;
127
- }
128
- }
1
+ // ======================================================================
2
+ //
3
+ // GNU GENERAL PUBLIC LICENSE
4
+ // Version 3, 29 June 2007
5
+ // copyright (C) 2020 - 2021 Quentin Gruber
6
+ // copyright (C) 2021 - 2023 H1emu community
7
+ //
8
+ // https://github.com/QuentinGruber/h1z1-server
9
+ // https://www.npmjs.com/package/h1z1-server
10
+ //
11
+ // Based on https://github.com/psemu/soe-network
12
+ // ======================================================================
13
+
14
+ import { toInt, _ } from "../../../utils/utils";
15
+ import { Character2016 } from "../entities/character";
16
+ import { ZoneClient2016 as Client } from "./zoneclient";
17
+ import { LootableProp } from "../entities/lootableprop";
18
+ import { ZoneServer2016 } from "../zoneserver";
19
+
20
+ export class ZoneClient2016 {
21
+ guid?: string;
22
+ character: Character2016;
23
+ currentPOI?: number;
24
+ firstLoading: boolean = false;
25
+ isLoading: boolean = true;
26
+ characterReleased: boolean = false;
27
+ isInteracting: boolean = false;
28
+ isAdmin: boolean = false;
29
+ isDebugMode: boolean = false;
30
+ banType: string = "";
31
+ HWID: string = "";
32
+ posAtLastRoutine: Float32Array = new Float32Array();
33
+ posAtLogoutStart: Float32Array = new Float32Array();
34
+ oldPos: { position: Float32Array; time: number } = {
35
+ position: new Float32Array(),
36
+ time: 0,
37
+ };
38
+ speedWarnsNumber: number = 0;
39
+ allowedProjectiles: number = 0;
40
+ pvpStats: {
41
+ shotsFired: number;
42
+ shotsHit: number;
43
+ head: number;
44
+ spine: number;
45
+ hands: number;
46
+ legs: number;
47
+ } = { shotsFired: 0, shotsHit: 0, head: 0, spine: 0, legs: 0, hands: 0 };
48
+ clientLogs: { log: string; isSuspicious: boolean }[] = [];
49
+ reports: number = 0;
50
+ lastDeathReport?: {
51
+ position: Float32Array;
52
+ attackerPosition: Float32Array;
53
+ distance: number;
54
+ attacker: Client;
55
+ };
56
+ hudTimer?: NodeJS.Timeout | null;
57
+ spawnedDTOs: any[] = [];
58
+ spawnedEntities: any[] = [];
59
+ searchedProps: LootableProp[] = [];
60
+ managedObjects: string[] = [];
61
+ vehicle: {
62
+ mountedVehicle?: string;
63
+ } = {};
64
+ radio: boolean = false;
65
+ npcsToSpawnTimer!: NodeJS.Timeout;
66
+ loginSessionId: string;
67
+ pingTimer: NodeJS.Timeout | undefined;
68
+ clearHudTimer: () => void;
69
+ clearTimers: () => void;
70
+ sessionId: number;
71
+ soeClientId: string;
72
+ lastKeepAliveTime: number = 0;
73
+ pings: number[] = [];
74
+ avgPing: number = 0;
75
+ avgPingLen: number = 4;
76
+ pingWarnings: number = 0;
77
+ isWeaponLock: boolean = false;
78
+ avgPingReady: boolean = false;
79
+ chunkRenderDistance: number = 400;
80
+ routineCounter: number = 0;
81
+ constructor(
82
+ sessionId: number,
83
+ soeClientId: string,
84
+ loginSessionId: string,
85
+ characterId: string,
86
+ transientId: number,
87
+ server: ZoneServer2016
88
+ ) {
89
+ this.sessionId = sessionId;
90
+ this.soeClientId = soeClientId;
91
+
92
+ this.isLoading = true;
93
+ this.firstLoading = true;
94
+ this.loginSessionId = loginSessionId;
95
+ this.spawnedEntities = [];
96
+ this.managedObjects = [];
97
+ this.clearTimers = () => {
98
+ clearTimeout(this.npcsToSpawnTimer);
99
+ };
100
+ this.clearHudTimer = () => {
101
+ if (this.hudTimer) {
102
+ clearTimeout(this.hudTimer);
103
+ }
104
+ this.hudTimer = null;
105
+ this.isInteracting = false;
106
+ };
107
+
108
+ this.character = new Character2016(characterId, transientId, server);
109
+ }
110
+ addPing(ping: number) {
111
+ if (ping > 0) {
112
+ this.pings.push(ping);
113
+ }
114
+ if (this.pings.length > this.avgPingLen) {
115
+ this.pings.shift();
116
+ }
117
+ if (this.pings.length === this.avgPingLen) {
118
+ this.updateAvgPing();
119
+ } else {
120
+ this.avgPingReady = false;
121
+ }
122
+ }
123
+ updateAvgPing() {
124
+ this.avgPing = toInt(_.sum(this.pings) / this.pings.length);
125
+ this.avgPingReady = true;
126
+ }
127
+ }