let salary = 35// Зарплата в диапазоне
let browser = null
let inShape = false
const localPlayer = mp.players.local;
let workMarker = false // маркер
let workMarkerColshape = false // колшейп
let workBlip = false // иконка на радаре
let locationPoint = false
let workStatus = 0
//Метки
let wayPoints = [
{x:298.8907, y:-905.385 ,z:28.172968},
{x:300.85645, y:-1286.9117, z:29.302698},
{x:272.32495, y:-1523.8776, z:28.171618},
{x:148.68094, y:-1653.9028, z:28.171667},
{x:886.62134, y:-181.51874, z:72.48415},
{x:-358.27274, y:81.758026, z:62.550255},
]
//Координаты педа
let pedLocation = {x: 140.04515, y: -1503.8214, z: 29.141613}
mp.peds.new(mp.game.joaat('s_m_m_ccrew_01'), new mp.Vector3(pedLocation.x, pedLocation.y, pedLocation.z), -104.40395, mp.players.local.dimension)//Ped
mp.labels.new("~orange~Thomas Norris", new mp.Vector3(pedLocation.x, pedLocation.y, pedLocation.z+1.1), {los: true, font: 4, drawDistance: 5,})// Name
mp.labels.new("Нажмите ~b~E", new mp.Vector3(pedLocation.x, pedLocation.y, pedLocation.z+1), {los: true, font: 4, drawDistance: 5,})
mp.blips.new(318, new mp.Vector3(pedLocation.x, pedLocation.y, 0), {name: 'Мусоровоз', scale: 1, color: 25, shortRange: true})// Blip
mp.markers.new(27, new mp.Vector3(pedLocation.x, pedLocation.y, pedLocation.z-1), 1.5)// Маркер устройства на работу
let GarbageWork = mp.colshapes.newCircle(pedLocation.x, pedLocation.y, 1.5, mp.players.local.dimension)// Колшейп устройства на работу
GarbageWork.name = "Garbage"
mp.events.add("playerEnterColshape", (shape) => {if (shape == "Garbage") return inShape = true})// Значения для браузера
mp.events.add("playerExitColshape", (shape) => {
if (shape == "Garbage"){
if (browser != null) {
browser.active = false
mp.gui.cursor.show(false, false)
inShape = false
} else {
return
}
}
})
mp.events.add("menuCancel", () => {
if (workStatus == 0 && browser != null) {
browser.destroy()
browser = null
mp.gui.cursor.show(false, false)
} else {
browser.active = false
mp.gui.cursor.show(false, false)
}
})
// E
mp.keys.bind(0x45, true, function () {
if (inShape == true && browser == null) {
browser = mp.browsers.new("package://garbageWork/web/index.html")
mp.gui.cursor.show(true, true)
} else if (inShape == true && browser.active == false){
browser.active = true
mp.gui.cursor.show(true, true)
}
})
mp.events.add("WORK:START", () => {
if (browser != null) {
browser.active = false
mp.gui.cursor.show(false, false)
}
workStatus = 1
setMarker(getRandomPoint())
mp.game.graphics.notify('~g~ Садитесь в транспорт и отправлятесь работать');
mp.events.callRemote('SERVER:WORK:START')
})
mp.events.add("WORK:END",() => {
mp.game.graphics.notify('~r~Вы закончили работу!')
if (browser != null) {
browser.destroy()
browser = null
mp.gui.cursor.show(false, false)
}
clearMarker()
workStatus = false
mp.events.callRemote('SERVER:WORK:END')
})
mp.events.add('playerEnterColshape', (shape) => { // попадание игрока в колшейп
if(shape == workMarkerColshape){ // проверяем что это наш колшейп
pickLocation()
}
})
function pickLocation(){ // игрок наехал на маркер
if ( !checkPLayerEnterVehicle() ) return false;
clearMarker();
freezePlayer();
playerReachLoadingPoint()
}
function playerReachLoadingPoint() { // игрок доехал до точки загрузки
mp.game.graphics.notify("~y~Вы прибыли. Ожидайте...")
setTimeout( () => {
unfreezePlayer()
mp.events.callRemote('WORK:GARBAGE:SET:MONEY', salary)
setMarker(getRandomPoint())
mp.game.graphics.notify('~g~Отправляйтесь дальше...');
}, 5000)
}
function freezePlayer(){// Заморозить
localPlayer.vehicle.freezePosition(true);
}
function unfreezePlayer(){// Разморозить
localPlayer.vehicle.freezePosition(false);
}
function setMarker(point){ // ставим маркер на точке
workMarker = mp.markers.new(1, point, 2, { color: [255, 0, 0, 100] })
workMarkerColshape = mp.colshapes.newSphere(point.x, point.y, point.z, 2)
workBlip = mp.blips.new(1, point, {color: 44, shorRange: false})
workBlip.setRoute(true)
//workBlip.setRouteColour(44)
}
function clearMarker(){ // убираем маркер
workMarker.destroy()
workMarkerColshape.destroy()
workBlip.setRoute(false)
workBlip.destroy()
}
function checkPLayerEnterVehicle() {// Проверяем, находится ли игрок в машине
if (!localplayer.vehicle) return false
return true
}
function getRandomPoint() { // получаем случайную точку из массива pickPoints
return wayPoints[ Math.floor( Math.random() * wayPoints.length ) ]
}