This commit is contained in:
Sergey Yarkov 2020-08-07 13:31:08 +03:00
parent c72851f2a4
commit 4a2b1f5736
9 changed files with 49 additions and 13 deletions

View File

@ -34,7 +34,7 @@ alt.onServer('vehicle:setInto', (newVehicle) => {
alt.setTimeout(() => { alt.setTimeout(() => {
native.setPedIntoVehicle(localPlayer, newVehicle.scriptID, -1) native.setPedIntoVehicle(localPlayer, newVehicle.scriptID, -1)
}, 300) }, 400)
}) })
alt.onServer('admin:setStat', () => { alt.onServer('admin:setStat', () => {

View File

@ -830,6 +830,7 @@ listCommandsMenu.AddItem(new UIMenuItem('Сменить скин', `/skin [0 - 7
listCommandsMenu.AddItem(new UIMenuItem('Появиться на спауне', `/spawn`)) listCommandsMenu.AddItem(new UIMenuItem('Появиться на спауне', `/spawn`))
listCommandsMenu.AddItem(new UIMenuItem('Узнать текущий онлайн', `/online`)) listCommandsMenu.AddItem(new UIMenuItem('Узнать текущий онлайн', `/online`))
listCommandsMenu.AddItem(new UIMenuItem('Узнать Social Club ID', `/scid`)) listCommandsMenu.AddItem(new UIMenuItem('Узнать Social Club ID', `/scid`))
listCommandsMenu.AddItem(new UIMenuItem('Выйти из комнаты ожидания', `/exit`))
const adminMenu = new Menu("Админ Панель", "Выполняйте админ-функции", menuPos) const adminMenu = new Menu("Админ Панель", "Выполняйте админ-функции", menuPos)
const kickPlayerMenu = new Menu("Кикнуть игрока", "Сервер кикнет любого игрока", menuPos) const kickPlayerMenu = new Menu("Кикнуть игрока", "Сервер кикнет любого игрока", menuPos)

View File

@ -41,6 +41,7 @@ import './modules/commands/player/skin.mjs'
import './modules/commands/player/scid.mjs' import './modules/commands/player/scid.mjs'
import './modules/commands/player/copchase.mjs' import './modules/commands/player/copchase.mjs'
import './modules/commands/player/mydimension.mjs' import './modules/commands/player/mydimension.mjs'
import './modules/commands/player/exit.mjs'
/* /*
Default text labels Default text labels

View File

@ -5,7 +5,11 @@ import { copchase } from '../../copchase.mjs'
import config from '../../../config.mjs' import config from '../../../config.mjs'
registerCmd('copchase', player => { registerCmd('copchase', player => {
if (copchase.isPlayerInWaitingRoom(player)) return false if (copchase.isPlayerInWaitingRoom(player)) {
send(player, '{EE9A00}[COPCHASE]: {FF0000}Вы уже в комнате ожидания!')
send(player, '{EE9A00}[COPCHASE]: {FF0000}/exit чтобы выйти')
return false
}
if (copchase.isPlayerInGame(player)) return false if (copchase.isPlayerInGame(player)) return false
player.dimension = copchase.waitingRoomDimension player.dimension = copchase.waitingRoomDimension
@ -15,7 +19,6 @@ registerCmd('copchase', player => {
alt.emitClient(player, 'player:setInvincible') alt.emitClient(player, 'player:setInvincible')
if (copchase.isStarted && copchase.players.length > 0) { if (copchase.isStarted && copchase.players.length > 0) {
// copchase.addPlayerToWaitingRoom(player)
return alt.emitClient(player, 'player:showMidsizedMessage', '~b~Игра уже начата', 'Ожидание игроков...') return alt.emitClient(player, 'player:showMidsizedMessage', '~b~Игра уже начата', 'Ожидание игроков...')
} }

View File

@ -0,0 +1,18 @@
import { registerCmd, send } from 'chat'
import { copchase } from '../../copchase.mjs'
import config from '../../../config.mjs'
registerCmd('exit', player => {
if (copchase.isPlayerInWaitingRoom(player)) {
const exitPlayerIndex = copchase.waitingPlayers.findIndex(_player => _player.name === player.name)
copchase.waitingPlayers.splice(exitPlayerIndex, 1)
player.pos = config.spawn
player.dimension = 0
return
}
send(player, `{EE9A00}[COPCHASE]: {FF0000}Вы должны находиться в комнате ожидания!`)
})

View File

@ -1,8 +1,12 @@
import { registerCmd, send } from 'chat' import { registerCmd, send } from 'chat'
import { copchase } from '../../copchase.mjs'
import skins from '../../../skins.json' import skins from '../../../skins.json'
registerCmd('skin', (player, args) => { registerCmd('skin', (player, args) => {
if (copchase.isPlayerInWaitingRoom(player)) return false
if (copchase.isPlayerInGame(player)) return false
if (!args || !args[0] || isNaN(args[0])) { if (!args || !args[0] || isNaN(args[0])) {
return send(player, `{EE9A00}[SERVER]: {FFF}/skin [0 - 700]`) return send(player, `{EE9A00}[SERVER]: {FFF}/skin [0 - 700]`)
} }

View File

@ -1,8 +1,12 @@
import { registerCmd } from 'chat' import { registerCmd } from 'chat'
import { copchase } from '../../copchase.mjs'
import config from '../../../config.mjs' import config from '../../../config.mjs'
registerCmd('spawn', player => { registerCmd('spawn', player => {
if (copchase.isPlayerInWaitingRoom(player)) return false
if (copchase.isPlayerInGame(player)) return false
player.pos = config.spawn player.pos = config.spawn
player.dimension = 0 player.dimension = 0
}) })

View File

@ -79,7 +79,6 @@ class Copchase {
this.isStarted = false this.isStarted = false
this.suspect = null this.suspect = null
this.players = [] this.players = []
// this.waitingPlayers = []
this.blips = {} this.blips = {}
setTimeout(() => { setTimeout(() => {
@ -99,7 +98,6 @@ class Copchase {
isPlayerInWaitingRoom(player) { isPlayerInWaitingRoom(player) {
if(this.waitingPlayers.find(_player => _player.name === player.name) !== undefined) { if(this.waitingPlayers.find(_player => _player.name === player.name) !== undefined) {
send(player, '{EE9A00}[COPCHASE]: {FF0000}Вы уже в комнате ожидания!')
return true return true
} else { } else {
return false return false
@ -127,6 +125,12 @@ class Copchase {
this.waitingPlayers.forEach(_player => send(_player, message)) this.waitingPlayers.forEach(_player => send(_player, message))
} }
midsizedMessageToWaitingPlayers(message, description, delay) {
this.waitingPlayers.forEach(_player => {
alt.emitClient(_player, 'player:showMidsizedMessage', message, description, delay)
})
}
notifyPolicePlayers(message) { notifyPolicePlayers(message) {
this.players.forEach(_player => _player.name !== this.suspect.name ? alt.emitClient(_player, 'player:notify', message) : false) this.players.forEach(_player => _player.name !== this.suspect.name ? alt.emitClient(_player, 'player:notify', message) : false)
} }
@ -209,11 +213,14 @@ class Copchase {
const interval = setInterval(() => { const interval = setInterval(() => {
timeToStart = timeToStart - 1 timeToStart = timeToStart - 1
if (this.waitingPlayers.length < this.minPlayers) {
this.midsizedMessageToWaitingPlayers('~r~Недостаточно игроков для старта!', '', 3000)
clearInterval(interval)
return
}
if (timeToStart <= 0) { if (timeToStart <= 0) {
// if (this.waitingPlayers.length >= 2) {
// broadcast(`Недостаточно игроков для старта!`)
// return
// }
this.isStarted = true this.isStarted = true
@ -251,10 +258,7 @@ class Copchase {
clearInterval(interval) clearInterval(interval)
return true return true
} }
this.midsizedMessageToWaitingPlayers(timeToStart, '', 1000)
this.waitingPlayers.forEach(_player => {
alt.emitClient(_player, 'player:showMidsizedMessage', `${timeToStart}`, '', 1000)
})
// this.messageToWaitingPlayers(`[COPCHASE]: Игра начнется через: ${timeToStart}`) // this.messageToWaitingPlayers(`[COPCHASE]: Игра начнется через: ${timeToStart}`)
}, 1000) }, 1000)
} }

View File

@ -17,6 +17,7 @@ alt.on('playerDeath', (player) => {
alt.setTimeout(() => { alt.setTimeout(() => {
player.spawn(config.spawn.x, config.spawn.y,config.spawn.z) player.spawn(config.spawn.x, config.spawn.y,config.spawn.z)
player.dimension = 0
player.removeAllWeapons() player.removeAllWeapons()
alt.emitClient(player, 'player:setInvincible') alt.emitClient(player, 'player:setInvincible')
}, 5000) }, 5000)