diff --git a/client/html/app.js b/client/html/app.js index 159f9ee..05517f1 100644 --- a/client/html/app.js +++ b/client/html/app.js @@ -37,7 +37,7 @@ const dateComponent = new DateComponent({ id: 'date' }) const engineHealthComponent = new EngineHealthComponent({ id: 'engineHealth' }) if ('alt' in window) { - alt.on('display:engineHealth', engineHealth => engineHealthComponent.renderEngineHealth(engineHealth)) + alt.on('display:engineHealth', ({ engineHealth }) => engineHealthComponent.renderEngineHealth(engineHealth)) alt.on('displayClear:engineHealth', () => engineHealthComponent.clearDisplay()) alt.emit('ready') } else { diff --git a/client/index.mjs b/client/index.mjs index 335aac0..c8f1e4e 100644 --- a/client/index.mjs +++ b/client/index.mjs @@ -58,9 +58,21 @@ alt.onServer('admin:setInvincible', toggle => { native.setEntityInvincible(alt.Player.local.scriptID, toggle) }) +alt.everyTick(() => { + if (alt.Player.local.vehicle) { + native.setEntityMaxSpeed(alt.Player.local.scriptID, 20000) + } +}) + alt.onServer('webview:load', () => { webview.on('ready', () => { - + alt.everyTick(() => { + let vehicle = alt.Player.local.vehicle + + if (vehicle) { + webview.emit('display:engineHealth', { engineHealth: native.getEntityHealth(vehicle.scriptID) }) + } + }) }) }) \ No newline at end of file diff --git a/client/modules/blips.mjs b/client/modules/blips.mjs index 975e67e..4432224 100644 --- a/client/modules/blips.mjs +++ b/client/modules/blips.mjs @@ -28,7 +28,7 @@ alt.onServer('player:createBlipPlayers', ({ players, color }) => { alt.onServer('player:deleteBlipPlayers', () => { alt.Player.all.forEach(_player => { - if (_player.blip) { + if (_player.blip && _player.blip !== null) { _player.blip.destroy() _player.blip = null } @@ -36,7 +36,7 @@ alt.onServer('player:deleteBlipPlayers', () => { }) alt.onServer('player:deleteBlipPlayer', player => { - if (player.blip) { + if (player.blip && player.blip !== null) { player.blip.destroy() player.blip = null } diff --git a/server/index.mjs b/server/index.mjs index 1c2b5af..92060a2 100644 --- a/server/index.mjs +++ b/server/index.mjs @@ -17,6 +17,7 @@ import './modules/events/ui/admin/teleportToMe.mjs' import './modules/events/playerConnect.mjs' import './modules/events/playerDisconnect.mjs' import './modules/events/playerDeath.mjs' +import './modules/events/playerEnteredVehicle.mjs' import './modules/events/playerLeftVehicle.mjs' /* diff --git a/server/modules/copchase.mjs b/server/modules/copchase.mjs index 6c69b01..60e9cbe 100644 --- a/server/modules/copchase.mjs +++ b/server/modules/copchase.mjs @@ -15,6 +15,7 @@ class Copchase { this.timeToStart = timeToStart this.isStarted = false this.isTimeToStartStarted = false + this.isSuspectLeavesCar = false this.suspectCars = [ 'asea', 'tornado', @@ -87,6 +88,7 @@ class Copchase { setDefaultState() { this.timeRemainingInterval = null + this.isSuspectLeavesCar = false this.isStarted = false this.suspect = null this.players = [] @@ -174,7 +176,7 @@ class Copchase { setTimeout(() => _player.health = 200, 300) _player.dimension = this.dimension _player.model = 's_m_y_cop_01' - _player.giveWeapon('0x3656C8C1', 100, true) + alt.emitClient(_player, 'player:delInvincible') alt.emitClient(_player, 'player:showMidsizedMessage', `~w~Саспект: ~r~${this.suspect.name}`, 'Нейтрализуйте саспекта.', 5000) alt.emitClient(_player, 'player:createBlipPlayers', { diff --git a/server/modules/events/playerEnteredVehicle.mjs b/server/modules/events/playerEnteredVehicle.mjs new file mode 100644 index 0000000..9930355 --- /dev/null +++ b/server/modules/events/playerEnteredVehicle.mjs @@ -0,0 +1,8 @@ +import alt from 'alt-server' +import { copchase } from '../copchase.mjs' + +alt.on('playerEnteredVehicle', player => { + if (copchase.isStarted && player.id !== copchase.suspect.id) { + player.removeWeapon(0x3656C8C1) + } +}) \ No newline at end of file diff --git a/server/modules/events/playerLeftVehicle.mjs b/server/modules/events/playerLeftVehicle.mjs index 2b4da4a..d792c3a 100644 --- a/server/modules/events/playerLeftVehicle.mjs +++ b/server/modules/events/playerLeftVehicle.mjs @@ -3,12 +3,20 @@ import { copchase } from '../copchase.mjs' alt.on('playerLeftVehicle', player => { if (copchase.isStarted && player.id === copchase.suspect.id) { - player.giveWeapon('0x1B06D571', 25, true); - copchase.players.forEach(_player => { - if (_player.id !== copchase.suspect.id) { - _player.giveWeapon('0x1B06D571', 50, true); - } - }) - } + if (!copchase.isSuspectLeavesCar) { + copchase.isSuspectLeavesCar = true + player.giveWeapon('0x1B06D571', 25, true) + + copchase.players.forEach(_player => { + if (_player.id !== copchase.suspect.id) { + _player.giveWeapon('0x1B06D571', 50, true); + } + }) + } + } + + if (copchase.isStarted && player.id !== copchase.suspect.id) { + player.giveWeapon('0x3656C8C1', 100, false) + } }) \ No newline at end of file