Помоги как добавить в скрипт мта луа переменную в которой будет хранится сколько заработал игрок (на клиенте скрипт будет), а так же сколько заказов выполнено и как игрок устроился так сразу на экране dxDrawText где то в углу будет отображаться эту информацию, и на фоне темного прозрачного прямоугольника.
server
-- server.lua

-- Координаты для маркера работы
local markerX, markerY, markerZ = -1983.90, 176.30, 26.68

-- Создаем маркер для начала/завершения работы
local jobMarker = createMarker(markerX, markerY, markerZ, "cylinder", 1.5, 255, 0, 0, 150)

-- Таблица заказов с координатами маркеров и NPC
local orders = {
    {markerPosx = -2152.75, markerPosy = 645.38, markerPosz = 51.37, npcPosx = -2154.96, npcPosy = 645.36, npcPosz = 52.37, npcRot = -90},
    {markerPosx = -2130.8, markerPosy = 832.34, markerPosz = 68.55, npcPosx = -2127.91, npcPosy = 832.46, npcPosz = 69.55, npcRot = 90},
    -- Добавьте другие заказы по необходимости
}


-- Функция получения мопеда игрока
function getPlayerScooter(player)
    local vehicles = getElementsByType("vehicle")
    for _, vehicle in ipairs(vehicles) do
        if getElementData(vehicle, "owner") == getPlayerName(player) and getElementData(vehicle, "job_vehicle") == "pizza_delivery" then
            return vehicle
        end
    end
    return nil
end

-- Обработчик входа в маркер работы
function onJobMarkerHit(hitElement)
    if getElementType(hitElement) == "player" then
        local player = hitElement
        local job = getElementData(player, "job")
        if job == "pizza_delivery" then
            -- Игрок увольняется
            local scooter = getPlayerScooter(player)
            if scooter then
                destroyElement(scooter)
            end
            setElementData(player, "job", nil)
            outputChatBox("Вы уволились с работы развозчика пиццы.", player)
        else
            -- Игрок устраивается на работу
            local x, y, z = getElementPosition(player)
            local scooter = createVehicle(448, x, y, z)
            warpPedIntoVehicle(player, scooter)
            setElementData(player, "job", "pizza_delivery")
            setElementData(scooter, "job_vehicle", "pizza_delivery")
            setElementData(scooter, "owner", getPlayerName(player))
            outputChatBox("Вы устроились на работу развозчика пиццы! Вам выдан мопед.", player)
            triggerClientEvent(player, "startPizzaJob", resourceRoot)
        end
    end
end
addEventHandler("onMarkerHit", jobMarker, onJobMarkerHit)


local lastOrderIndex = nil

-- Обработчик запроса заказа от клиента
addEvent("onPlayerRequestOrder", true)
addEventHandler("onPlayerRequestOrder", root, function()
    local player = client
    if not getElementData(player, "has_order") then
        local orderIndex
        repeat
            orderIndex = math.random(#orders)
        until orderIndex ~= lastOrderIndex
        lastOrderIndex = orderIndex

        local order = orders[orderIndex]
        setElementData(player, "has_order", true)
        triggerClientEvent(player, "onClientReceiveOrder", resourceRoot, order)
    end
end)

-- Обработчик завершения заказа
addEvent("onPlayerCompleteOrder", true)
addEventHandler("onPlayerCompleteOrder", root, function()
    local player = client
    givePlayerMoney(player, 100)  -- Награда за доставку
    outputChatBox("Вы успешно доставили пиццу и получили $100!", player)
    setElementData(player, "has_order", false)
    -- Сбрасываем данные мопеда
    local scooter = getPlayerScooter(player)
    if scooter then
        setElementData(scooter, "has_pizza", false)
    end
end)

-- Обработчик остановки ресурса
addEventHandler("onResourceStop", resourceRoot, function()
    for _, player in ipairs(getElementsByType("player")) do
        if getElementData(player, "job") == "pizza_delivery" then
            setElementData(player, "job", nil)
            local scooter = getPlayerScooter(player)
            if scooter then
                destroyElement(scooter)
            end
        end
    end
end)
Client
-- client.lua

-- Переменные
local pizzaMarker = nil
local pizzaObjects = {}
local hasPizza = false
local deliveryMarker = nil
local deliveryNPC = nil
local currentOrder = nil
local showText = false
local screenWidth, screenHeight = guiGetScreenSize()
-- Позиция маркера для взятия пиццы
local pizzaMarkerPosition = Vector3(-1983.57, 182.51, 26.68)

-- Функция создания маркера для взятия пиццы
function createPizzaMarker()
    if not pizzaMarker then
        pizzaMarker = createMarker(pizzaMarkerPosition, "cylinder", 1.5, 255, 255, 0, 150)
        addEventHandler("onClientMarkerHit", pizzaMarker, onPlayerHitPizzaMarker)
    end
end

-- Запуск работы развозчика пиццы
addEvent("startPizzaJob", true)
addEventHandler("startPizzaJob", resourceRoot, function()
    createPizzaMarker()
end)

-- Уничтожение маркера для взятия пиццы
function destroyPizzaMarker()
    if pizzaMarker then
        destroyElement(pizzaMarker)
        pizzaMarker = nil
    end
end

-- Обработчик входа в маркер взятия пиццы
function onPlayerHitPizzaMarker(hitPlayer, matchingDimension)
    if hitPlayer == localPlayer and not isPedInVehicle(localPlayer) then
        if not hasPizza then
            destroyPizzaMarker()
            playPizzaPickupAnimation()
        end
    end
end

-- Анимация взятия пиццы и выдача пиццы игроку
function playPizzaPickupAnimation()
    if not hasPizza then
        setPedAnimation(localPlayer, "CARRY", "crry_prtial", 1, true, true, false)
        local x, y, z = getElementPosition(localPlayer)
        for i = 1, 3 do
            local pizzaObject = createObject(1582, x, y, z)
            attachElements(pizzaObject, localPlayer, -0.1, 0.7, 0.3 + (i - 1) * 0.07)
            table.insert(pizzaObjects, pizzaObject)
        end
        toggleControl("sprint", false)
        toggleControl("jump", false)
        toggleControl("crouch", false)
        toggleControl("fire", false)
        hasPizza = true
    end
end

-- Проверка, находится ли игрок рядом со своим мопедом
function isPlayerNearScooter()
    if not hasPizza then return nil end
    local x, y, z = getElementPosition(localPlayer)
    local vehicles = getElementsWithinRange(x, y, z, 2, "vehicle")
    for _, vehicle in ipairs(vehicles) do
        if getElementData(vehicle, "job_vehicle") == "pizza_delivery" and
           getElementData(vehicle, "owner") == getPlayerName(localPlayer) then
            return vehicle
        end
    end
    return nil
end

-- Отображение текста
function toggleTextDisplay(state)
    showText = state
end

-- Рендеринг текста рядом с мопедом
addEventHandler("onClientRender", root, function()
    if showText and hasPizza then
        local text = "Нажмите E, чтобы положить пиццу"
        dxDrawText(text, screenWidth / 2 - 200, screenHeight - 100, screenWidth / 2 + 200, screenHeight - 80, tocolor(255, 255, 255, 255), 1.5, "default-bold", "center", "center")
    end
end)

-- Проверка нахождения рядом с мопедом и отображение текста
addEventHandler("onClientRender", root, function()
    if hasPizza then
        local scooter = isPlayerNearScooter()
        if scooter then
            toggleTextDisplay(true)
        else
            toggleTextDisplay(false)
        end
    else
        toggleTextDisplay(false)
    end
end)

-- Обработчик нажатия клавиши 'E'
addEventHandler("onClientKey", root, function(button, press)
    if button == "e" and press and hasPizza then
        local scooter = isPlayerNearScooter()
        if scooter then
            playPlacePizzaAnimation()
            -- Удаляем объекты пиццы
            for _, pizzaObject in ipairs(pizzaObjects) do
                if isElement(pizzaObject) then
                    destroyElement(pizzaObject)
                end
            end
            pizzaObjects = {}
            hasPizza = false
            -- Восстанавливаем управление
            toggleControl("sprint", true)
            toggleControl("jump", true)
            toggleControl("crouch", true)
            toggleControl("fire", true)
            -- Устанавливаем данные для скутера
            setElementData(scooter, "has_pizza", true)
            toggleTextDisplay(false)
        end
    end
end)

-- Анимация размещения пиццы в мопед
function playPlacePizzaAnimation()
    setPedAnimation(localPlayer, "CARRY", "putdwn", -1, false, false, false)
    setTimer(function()
        setPedAnimation(localPlayer)
    end, 1000, 1)
end

-- Обработчик входа в транспортное средство
addEventHandler("onClientVehicleEnter", root, function(thePlayer, seat, jacked)
    if thePlayer and seat == 0 then
        local theVehicle = getPedOccupiedVehicle(thePlayer)
        if getElementData(theVehicle, "job_vehicle") == "pizza_delivery" and
           getElementData(theVehicle, "owner") == getPlayerName(localPlayer) then
            if getElementData(theVehicle, "has_pizza") then
                if not getElementData(localPlayer, "has_order") then
                    triggerServerEvent("onPlayerRequestOrder", resourceRoot)
                end
            end
        end
    end
end)

addEvent("onClientReceiveOrder", true)
addEventHandler("onClientReceiveOrder", resourceRoot, function(order)
    -- Создаем маркер
    deliveryMarker = createMarker(order.markerPosx, order.markerPosy, order.markerPosz, "cylinder", 1.5, 0, 255, 0, 150)
    if deliveryMarker then
        addEventHandler("onClientMarkerHit", deliveryMarker, onDeliveryMarkerHit)
    end

    -- Создаем педа и задаем его поворот
    deliveryNPC = createPed(155, order.npcPosx, order.npcPosy, order.npcPosz)
    setElementFrozen(deliveryNPC, true)
    setPedRotation(deliveryNPC, order.npcRot)

    currentOrder = order
    setElementData(localPlayer, "has_order", true)
end)

-- Обработчик достижения точки доставки
function onDeliveryMarkerHit(hitPlayer, matchingDimension)
    if hitPlayer == localPlayer and getElementData(localPlayer, "has_order") then
        destroyElement(deliveryMarker)
        deliveryMarker = nil
        destroyElement(deliveryNPC)
        deliveryNPC = nil
        setElementData(localPlayer, "has_order", false)
        triggerServerEvent("onPlayerCompleteOrder", resourceRoot)
        outputChatBox("Вы доставили пиццу!", 0, 255, 0)
    end
end

-- Обработка остановки ресурса
function onStopResource()
    toggleControl("sprint", true)
    toggleControl("jump", true)
    toggleControl("crouch", true)
    toggleControl("fire", true)
    for _, pizzaObject in ipairs(pizzaObjects) do
        if isElement(pizzaObject) then
            destroyElement(pizzaObject)
        end
    end
    pizzaObjects = {}
    hasPizza = false
    if isElement(deliveryMarker) then
        destroyElement(deliveryMarker)
    end
    if isElement(deliveryNPC) then
        destroyElement(deliveryNPC)
    end
    deliveryMarker = nil
    deliveryNPC = nil
    setElementData(localPlayer, "has_order", false)
end
addEventHandler("onClientResourceStop", resourceRoot, onStopResource)