Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2022-07-20, 00:04


jaja







Wiek: 25
Na forum: 3354 dni
Posty: 31
Nick w MP: SkubiGo

Piwa: 4

Respekt: 45,3

Ostrzeżeń: 20%
Witam, chcia?em przenie?? tunera z jednej paczki na drug? lecz gdy wje?d?am w marker nic si? nie dzieje czy kto? m?g?by mi wyja?ni? jak to naprawi?

kod tunera kt?rego chce przenie?

c_gui

function calculateCost()
    local vehicle getPedOccupiedVehicle(localPlayer)
    local original getOriginalTune()
    local cost 0

    for 016 do
        local up getVehicleUpgradeOnSlot(vehiclei)
        if up and original[i] ~= up and partPrices[upthen
            cost cost partPrices[up]
        elseif (not up or up == 0) and (original[i] and original[i] ~= 0then
            cost cost math.floor(partPrices[original[i]]*0.25)
        end
    end

    local data = (getElementData(vehicle"visualTuning") or {
        innerSize 1,
        wheelResize 1,
        wheelTilt 0,
    })
    local diff math.floor(math.abs((original.data.innerSize or 0) - (data.innerSize or 0))*100)
    if diff 0 then
        cost cost tonumber(diff)*partPrices.cale/5
    end

    local diff math.floor(math.abs((original.data.wheelResize or 0) - (data.wheelResize or 0))*100)
    if diff 0 then
        cost cost tonumber(diff)*partPrices.szerokosc/5
    end

    local diff math.floor(math.abs((original.data.wheelTilt or 0) - (data.wheelTilt or 0))*100)
    if diff 0 then
        cost cost tonumber(diff)*partPrices.negatyw/5*0.05
    end

    local tint = (getElementData(vehicle"vehicle:carTint") or 0)
    local diff math.floor(math.abs(original.tint tint))
    if diff 0 then
        cost cost tonumber(diff)*partPrices.szyby/5
    end

    local pojemnoscsilnika tonumber(getElementData(vehicle"vehicle:engine") or 1.2)
    local diff math.abs(original.pojemnoscsilnika pojemnoscsilnika)
    if diff 0 then
        cost cost tonumber(diff)*(1/0.2)*partPrices.pojemnoscsilnika
    end

    local pojemnoscbaku tonumber(getElementData(vehicle"vehicle:bak") or 25)
    local diff math.abs(original.pojemnoscbaku pojemnoscbaku)
    if diff 0 then
        cost cost tonumber(diff)*(1/5)*partPrices.pojemnoscbaku
    end

    return cost
end

local tuning = {
    ['category'] = {
        [1] = {
            ['name'] = "Vinyle",
            ['desc'] = "Otwiera edytor vinyli",
            ['use'] = function()
                removeEventHandler('onClientRender'rootrenderUI)
                unbindKey("arrow_d""down"arrowDown)
                unbindKey("arrow_u""down"arrowUp)
                unbindKey("backspace""down"backspace)
                unbindKey("enter""down"enter)
                exports["borsuk-vinyle"]:openVinylsEditor()
            end
        },

        [2] = {
            ['name'] = "Zamknij",
            ['desc'] = "Wyjd? z tunera",
            ['use'] = function()
                restoreDefaultTuning()
                hideUI()
            end
        },
    },
    ['statistic'] = {
        {'Przy?pieszenie'30"engineAcceleration"},
        {'Pr?dko?? maksymalna'350"maxVelocity"},
        {'Sterowanie'50"steeringLock"},
        {'Przyczepno??'1.5"tractionLoss"}
    },
    ['selectedCategory'] = 1,
    ['selectedCategoryName'] = 'category',
    ['selectedSubCategoryName'] = nil,
}

function getDemontPrice(id)
    local original getOriginalTune()
    local up original[id]
    if not up or up == 0 then return 0 end

    return -math.floor(partPrices[up]*0.25)
end

local parts = {
    ["felgi"] = function()
        local t = {
            {
                name "Brak (Demonta?)",
                id "demontaz",
                demont 12,
            }
        }
        local temp createVehicle(getElementModel(getPedOccupiedVehicle(localPlayer)), 000)
        for k,v in pairs({10251073107410751076107710781079108010811082108310841085}) do
            if addVehicleUpgrade(tempvthen
                table.insert(t, {
                    name=partNames[v] .. "  (" .. .. ")",
                    id v,
                    cost=1250,
                })
            end
        end
        destroyElement(temp)
        return t
    end,

    ["wloty"] = function()
        local t = {
            {
                name "Brak (Demonta?)",
                id "demontaz",
                demont 7,
            }
        }
        local temp createVehicle(getElementModel(getPedOccupiedVehicle(localPlayer)), 000)
        for k,v in pairs({1035103810061032103310531054105510611068106710881091110311281130113110041005101110121142114311441145}) do
            if addVehicleUpgrade(tempvthen
                table.insert(t, {
                    name=((partNames[v]) and (partNames[v] .. "  (" .. .. ")") or tostring(v)),
                    id v,
                    cost=500,
                })
            end
        end
        destroyElement(temp)
        return t
    end,

    ["spoiler"] = function()
        local t = {
            {
                name "Brak (Demonta?)",
                id "demontaz",
                demont 2,
            }
        }
        local temp createVehicle(getElementModel(getPedOccupiedVehicle(localPlayer)), 000)
        for k,v in pairs({10001001100210031014101510161023104910501058106011381139114611471158116211631164}) do
            if addVehicleUpgrade(tempvthen
                table.insert(t, {
                    name=partNames[v] .. "  (" .. .. ")",
                    id v,
                    cost=500,
                })
            end
        end
        destroyElement(temp)
        return t
    end,

    ["t_zderzak"] = function()
        local t = {
            {
                name "Brak (Demonta?)",
                id "demontaz",
                demont 15,
            }
        }
        local temp createVehicle(getElementModel(getPedOccupiedVehicle(localPlayer)), 000)
        for k,v in pairs({11491148115011511154115611591161116711681175117711781180118311841186118711921193}) do
            if addVehicleUpgrade(tempvthen
                table.insert(t, {
                    name=partNames[v] .. "  (" .. .. ")",
                    id v,
                    cost=500,
                })
            end
        end
        destroyElement(temp)
        return t
    end,

    ["p_zderzak"] = function()
        local t = {
            {
                name "Brak (Demonta?)",
                id "demontaz",
                demont 14,
            }
        }
        local temp createVehicle(getElementModel(getPedOccupiedVehicle(localPlayer)), 000)
        for k,v in pairs({1171117211401141111711521153115511571160}) do
            if addVehicleUpgrade(tempvthen
                table.insert(t, {
                    name=partNames[v] .. "  (" .. .. ")",
                    id v,
                    cost=500,
                })
            end
        end
        destroyElement(temp)
        return t
    end,

    ["progi"] = function()
        local t = {
            {
                name "Brak (Demonta?)",
                id "demontaz",
                demont 3,
            }
        }
        local temp createVehicle(getElementModel(getPedOccupiedVehicle(localPlayer)), 000)
        for k,v in pairs({103610391040104110071017102610271030103110421047104810511052105610571062106310691070107110721090109310941095109911011102110611071108111811191120112111221124113311341137}) do
            if addVehicleUpgrade(tempvthen
                table.insert(t, {
                    name=partNames[v] .. "  (" .. .. ")",
                    id v,
                    cost=500,
                })
            end
        end
        destroyElement(temp)
        return t
    end,

    ["wydech"] = function()
        local t = {
            {
                name "Brak (Demonta?)",
                id "demontaz",
                demont 13,
            }
        }
        local temp createVehicle(getElementModel(getPedOccupiedVehicle(localPlayer)), 000)
        local c = {103410371044104610181019102010211022102810291043104410451059106410651066108910921104110511131114112611271129113211351136}
        for k,v in pairs(c) do
            if addVehicleUpgrade(tempvthen
                table.insert(t, {
                    name=partNames[v] .. "  (" .. .. ")",
                    id v,
                    cost=500,
                })
            end
        end
        destroyElement(temp)
        return t
    end,

    ["mods"] = function()
        return {
            {
                name "Cale felgi",
                id "cale",

                suwak true,
                min 0.6,
                max 1.1,
                snap 0.05,

                get = function()
                    local data = (getElementData(getPedOccupiedVehicle(localPlayer), "visualTuning") or {})
                    return (data.innerSize or 1)
                end,
                set = function(c)
                    local data = (getElementData(getPedOccupiedVehicle(localPlayer), "visualTuning") or {})
                    data.innerSize c
                    data.wheelResize = (data.wheelResize or 1)
                    data.wheelTilt = (data.wheelTilt or 0)
                    setElementData(getPedOccupiedVehicle(localPlayer), "visualTuning"datafalse)
                end
            },
            {
                name "Szeroko?? opon",
                id "szerokosc",

                suwak true,
                min 0.8,
                max 1.9,
                snap 0.05,

                get = function()
                    local data = (getElementData(getPedOccupiedVehicle(localPlayer), "visualTuning") or {})
                    return (data.wheelResize or 1)
                end,
                set = function(c)
                    local data = (getElementData(getPedOccupiedVehicle(localPlayer), "visualTuning") or {})
                    data.wheelResize c
                    data.innerSize = (data.innerSize or 1)
                    data.wheelTilt = (data.wheelTilt or 0)
                    setElementData(getPedOccupiedVehicle(localPlayer), "visualTuning"datafalse)
                end
            },
            {
                name "Negatyw",
                id "negatyw",

                suwak true,
                min = -15,
                max 10,
                snap 1,

                get = function()
                    local data = (getElementData(getPedOccupiedVehicle(localPlayer), "visualTuning") or {})
                    return (data.wheelTilt or 1)
                end,
                set = function(c)
                    local data = (getElementData(getPedOccupiedVehicle(localPlayer), "visualTuning") or {})
                    data.wheelTilt c
                    data.innerSize = (data.innerSize or 1)
                    data.wheelResize = (data.wheelResize or 0)
                    setElementData(getPedOccupiedVehicle(localPlayer), "visualTuning"datafalse)
                end
            },
            {
                name "Przyciemniane szyby",
                id "szyby",

                suwak true,
                min 0,
                max 100,
                snap 5,

                get = function()
                    local data = (getElementData(getPedOccupiedVehicle(localPlayer), "vehicle:carTint") or 0)
                    return data
                end,
                set = function(c)
                    setElementData(getPedOccupiedVehicle(localPlayer), "vehicle:carTint"cfalse)
                end
            },
            {
                name "Pojemno?? silnika",
                id "pojemnoscsilnika",

                suwak true,
                min 1.2,
                max 2.2,
                snap 0.2,

                get = function()
                    local data = (getElementData(getPedOccupiedVehicle(localPlayer), "vehicle:engine") or 1.2)
                    return data
                end,
                set = function(c)
                    setElementData(getPedOccupiedVehicle(localPlayer), "vehicle:engine"tostring(("%.1f"):format(c)), false)
                end
            },
            {
                name "Pojemno?? baku",
                id "pojemnoscbaku",

                suwak true,
                min 25,
                max 100,
                snap 5,

                get = function()
                    local data = (getElementData(getPedOccupiedVehicle(localPlayer), "vehicle:bak") or 25)
                    return data
                end,
                set = function(c)
                    setElementData(getPedOccupiedVehicle(localPlayer), "vehicle:bak"tonumber(c), false)
                end
            },
        }
    end,
}

function getVehicleHandlingProperty(elementproperty)
    if isElement(element) and getElementType(element) == "vehicle" and type(property) == "string" then
        local handlingTable getVehicleHandling(element) 
        local value handlingTable[property] 
 
        if value then
            return value
        end
    end
    return false
end

function renderUI()
    local vehicle getPedOccupiedVehicle(localPlayer)

    dxDrawRectangle(00350/zoomsytocolor(353535245))
    dxDrawText("Kategorie"10/zoom50/zoom350/zoomniltocolor(200200200255), 1font1"left""center"falsefalsefalsefalsefalse)

    if tuning['selectedCategoryName'] == 'category' then
        offsetY 0
        for iv in ipairs(tuning[tuning['selectedCategoryName']]) do
            local ifElse tuning['selectedCategory'] == and tocolor(200200200245) or tocolor(155155155245)
            dxDrawRectangle(085/zoom offsetY350/zoom50/zoomifElse)
            local ifElse tuning['selectedCategory'] == and 255 or 155
            dxDrawText(v['name'], 10/zoom111/zoom offsetYnilniltocolor(000ifElse), 1font2"left""center"falsefalsefalsefalsefalse)
            dxDrawText(v['desc'], 10/zoom108/zoom offsetY340/zoomniltocolor(000ifElse), 1font5"right""center"falsefalsefalsefalsefalse)

            offsetY offsetY + (50/zoom 1)
        end
    elseif type(tuning['selectedCategoryName']) == "table" then
        offsetY 0
        for iv in ipairs(tuning['selectedCategoryName']['subCategory']) do
            local ifElse tuning['selectedCategory'] == and tocolor(200200200245) or tocolor(155155155245)
            dxDrawRectangle(085/zoom offsetY350/zoom50/zoomifElse)
            local ifElse tuning['selectedCategory'] == and 255 or 155
            if v.desc and #v.desc > 0 then
                dxDrawText(v.name10/zoom103/zoom offsetYnilniltocolor(000ifElse), 1font2"left""center"falsefalsefalsefalsefalse)
                dxDrawText(v.desc10/zoom119/zoom offsetYnilniltocolor(000ifElse), 1font5"left""center"falsefalsefalsefalsefalse)
            else
                dxDrawText(v.name10/zoom111/zoom offsetYnilniltocolor(000ifElse), 1font2"left""center"falsefalsefalsefalsefalse)
            end

            if v.cost then
                dxDrawText(v.cost .. " PLN"10/zoom108/zoom offsetY340/zoomniltocolor(000ifElse/5), 1font5"right""center"falsefalsefalsefalsefalse)
                dxDrawText(v.cost .. " PLN"10/zoom 1108/zoom offsetY340/zoom 1nilv.cost and tocolor(255,0,0,ifElse) or (v.cost == and tocolor(000ifElse) or tocolor(0,100,0,ifElse)), 1font5"right""center"falsefalsefalsefalsefalse)
            end

            offsetY offsetY + (50/zoom 1)
        end
    else
        local data parts[tuning['selectedCategoryName']]
        if data then
            local c data()
            offsetY 0
            for iv in ipairs(c) do
                if >= (scroll or 1) and <= (scroll or 1)+11 then
                    local ifElse tuning['selectedCategory'] == and tocolor(200200200245) or tocolor(155155155245)
                    dxDrawRectangle(085/zoom offsetY350/zoom50/zoomifElse)
                    local ifElse tuning['selectedCategory'] == and 255 or 155
                    dxDrawText(v.name10/zoom111/zoom offsetYnilniltocolor(000ifElse), 1font2"left""center"falsefalsefalsefalsefalse)
                    
                    if v.suwak then
                        local w dxGetTextWidth(v.name1font2)
                        local ifElse tuning['selectedCategory'] == and tocolor(555555245) or tocolor(555555200)
                        local x 20/zoom w
                        local tx 260/zoom
                        local _w tx x

                        local current v.get()

                        dxDrawRectangle(x107/zoom offsetY_w5/zoomifElse)

                        local prg = (current v.min)/(v.max v.min)
                        dxDrawRectangle(_w*prg 2/zoom105/zoom offsetY9/zoom9/zoomtocolor(25,25,25))

                        if getKeyState("arrow_l") and (lastTick or 0) < getTickCount() and tuning['selectedCategory'] == i then
                            v.set(math.max(current v.snapv.min))
                            lastTick getTickCount() + 150
                        elseif getKeyState("arrow_r") and (lastTick or 0) < getTickCount() and tuning['selectedCategory'] == i then
                            v.set(math.min(current v.snapv.max))
                            lastTick getTickCount() + 150
                        end
                    end
                    
                    local price partPrices[v.id]
                    if v.id == "demontaz" then
                        price getDemontPrice(v.demont)
                    end
                    dxDrawText(price .. " PLN"10/zoom108/zoom offsetY340/zoomniltocolor(000ifElse/5), 1font5"right""center"falsefalsefalsefalsefalse)
                    dxDrawText(price .. " PLN"10/zoom 1108/zoom offsetY340/zoom 1nilprice and tocolor(255,0,0,ifElse) or (price == and tocolor(000ifElse) or tocolor(0,100,0,ifElse)), 1font5"right""center"falsefalsefalsefalsefalse)

                    offsetY offsetY + (50/zoom 1)
                end
            end
        end
    end

    dxDrawText("Portfel"0sy 30/zoom350/zoomniltocolor(200200200255), 1font3"center""bottom"falsefalsefalsefalsefalse)
    dxDrawText(convertNumber(getPlayerMoney(localPlayer)).." PLN"0sy 30/zoom350/zoomniltocolor(100255100255), 1font2"center""top"falsefalsefalsefalsefalse)
    dxDrawText("Koszt tuningu"0sy 85/zoom350/zoomniltocolor(200200200255), 1font3"center""bottom"falsefalsefalsefalsefalse)
    dxDrawText(convertNumber(calculateCost()).." PLN"0sy 85/zoom350/zoomniltocolor(100255100255), 1font2"center""top"falsefalsefalsefalsefalse)
    dxDrawText("Klawiszologia"sx 20/zoomsy 75/zoomnilniltocolor(200200200255), 1font3"right""bottom"falsefalsefalsefalsefalse)
    dxDrawText("LPM - Poruszanie kamer?\nScroll - Przybli?anie/Oddalanie kamery"sx 20/zoomsy 75/zoomnilniltocolor(200200200255), 1font4"right""top"falsefalsefalsefalsefalse)

    dxDrawRectangle(20/zoomsy 320/zoom310/zoom200/zoomtocolor(303030255))
    dxDrawText(exports['TR_vehicles']:getVehicleName(veh).." "..(getElementData(veh"vehicle:engine") or "1.2").." dm&#179;"0sy 300/zoom350/zoomniltocolor(200200200255), 1font3"center""center"falsefalsefalsefalsefalse)

    offsetY 0
    for iv in ipairs(tuning['statistic']) do
        dxDrawText(v[1], 0sy 265/zoom offsetY350/zoomniltocolor(200200200255), 1font5"center""center"falsefalsefalsefalsefalse)
        dxDrawRectangle(25/zoomsy 250/zoom offsetY300/zoom5/zoomtocolor(019525575))

        local progress = (300/zoom*getVehicleHandlingProperty(vehiclev[3])/v[2])
        local progress math.min(progress300/zoom)
        dxDrawRectangle(25/zoomsy 250/zoom offsetYprogress5/zoomtocolor(0195255200))

        offsetY offsetY 35/zoom
    end
end

function enter()
    if data.toggleGUI == true then
        scroll 1
        if tuning['selectedCategoryName'] == 'category' then
            if tuning['category'][tuning['selectedCategory']]["subCategory"then
                if tuning['category'][tuning['selectedCategory']]["subCategory"] == "mods" then
                    tuning['selectedCategoryName'] = "mods"
                else
                    tuning['selectedCategoryName'] = tuning['category'][tuning['selectedCategory']]
                end
                tuning['selectedCategory'] = 1
            else
                tuning['category'][tuning['selectedCategory']].use()
            end
        elseif type(tuning['selectedCategoryName']) == "table" then
            if tuning['selectedCategoryName']['subCategory'][tuning['selectedCategory']].inner then
                tuning['selectedCategoryName'] = tuning['selectedCategoryName']['subCategory'][tuning['selectedCategory']].type
                tuning['selectedCategory'] = 1
                updateVehicleTuning()
            else
                if getPlayerMoney() < tuning['selectedCategoryName']['subCategory'][tuning['selectedCategory']].cost then
                    return exports["noobisty-notyfikacje"]:createNotification("Warsztat tuningowy""Nie posiadasz tyle got?wki", {255,0,0}, "sighter")
                end
                exports["noobisty-notyfikacje"]:createNotification("Warsztat tuningowy""Zakupiono " .. tuning['selectedCategoryName']['subCategory'][tuning['selectedCategory']].name, {0,255,0}, "sight")
                triggerServerEvent("buyTuningCustom"localPlayergetPedOccupiedVehicle(localPlayer), tuning['selectedCategoryName']['subCategory'][tuning['selectedCategory']].typetuning['selectedCategoryName']['subCategory'][tuning['selectedCategory']].cost)
            end
        end
    end
end

function backspace()
    if data.toggleGUI == true and tuning['selectedCategoryName'] ~= 'category' then
        tuning['selectedCategoryName'] = 'category'
        tuning['selectedCategory'] = 1
        scroll 1
    end
end

function arrowDown()
    if data.toggleGUI == true then
        scrollDown()
    end
end

function arrowUp()
    if data.toggleGUI == true then
        scrollUp()
    end
end

function updateVehicleTuning()
    if type(tuning['selectedCategoryName']) ~= "table" and tuning['selectedCategoryName'] ~= "category" then
        local data parts[tuning['selectedCategoryName']]
        if data then
            local c data()
            local upgrade c[tuning['selectedCategory']]
            if upgrade and upgrade.id and tonumber(upgrade.idthen
                addVehicleUpgrade(getPedOccupiedVehicle(localPlayer), upgrade.id)
            elseif upgrade and upgrade.id == "demontaz" then
                removeVehicleUpgrade(getPedOccupiedVehicle(localPlayer), getVehicleUpgradeOnSlot(getPedOccupiedVehicle(localPlayer), upgrade.demont))
            end
        end
    end
end

function scrollDown()
    if tuning['selectedCategoryName'] == 'category' then
        if tuning['selectedCategory'] >= #tuning['category'] then return end
        tuning['selectedCategory'] = tuning['selectedCategory'] + 1
    elseif type(tuning['selectedCategoryName']) == "table" then
        if tuning['selectedCategory'] >= #tuning['selectedCategoryName']['subCategory'] then return end
        tuning['selectedCategory'] = tuning['selectedCategory'] + 1
    else
        local data parts[tuning['selectedCategoryName']]
        if data then
            local c data()
            if tuning['selectedCategory'] >= #c then return end
            tuning['selectedCategory'] = tuning['selectedCategory'] + 1

            updateVehicleTuning()

            if tuning['selectedCategory'] - scroll 11 then
                scroll scroll 1
            end
        end
    end
end

function scrollUp()
    if >= tuning['selectedCategory'then return end
    tuning['selectedCategory'] = tuning['selectedCategory'] - 1
    updateVehicleTuning()
    if tuning['selectedCategory'] - (scroll or 0) < 0 then
        scroll scroll 1
    end
end

function showUI()
    bindKey("arrow_d""down"arrowDown)
    bindKey("arrow_u""down"arrowUp)
    bindKey("backspace""down"backspace)
    bindKey("enter""down"enter)
    addEventHandler('onClientRender'rootrenderUI)
    triggerServerEvent("setMyDimension2"localPlayergetElementData(localPlayer"characterUID"))
    showChat(false)
    setElementData(localPlayer"player:hudof"true)
    data.toggleGUI true
    createTuningVehicle(getPedOccupiedVehicle(localPlayer))
    addEventHandler('onClientKey'rootzoomCamera)
end

function hideUI()
    unbindKey("arrow_d""down"arrowDown)
    unbindKey("arrow_u""down"arrowUp)
    unbindKey("backspace""down"backspace)
    unbindKey("enter""down"enter)
    removeEventHandler('onClientRender'rootrenderUI)
    triggerServerEvent("setMyDimension2"localPlayer00)
    showChat(true)
    showCursor(false)
    setElementData(localPlayer"player:hudof"false)
    setCameraInterior(0)
    setElementInterior(getPedOccupiedVehicle(localPlayer), 0)
    data.toggleGUI false
    setElementPosition(getPedOccupiedVehicle(localPlayer), -2043.88160.5527.31)
    setElementRotation(getPedOccupiedVehicle(localPlayer), 359.70.0271.4)
    leave getTickCount() + 5000
    toggleAllControls(true)
    setCameraTarget(localPlayer)
    removeEventHandler('onClientKey'rootzoomCamera)
end

local marker createMarker(-2052.97160.3226.70"cylinder"40255255)
setElementData(marker"marker:title""Tuning")
setElementData(marker"marker:desc""Tuning wizualny/mechaniczny")
addEventHandler("onClientMarkerHit"marker, function(plr)
    if plr ~= localPlayer then return end
    local vehicle getPedOccupiedVehicle(localPlayer)
    if not vehicle then return end
    if (leave or 0) > getTickCount() then return end
    local vehicleOwner getElementData(vehicle"ownedPlayer")
    if not owned or tonumber(owned) ~= tonumber(getElementData(localPlayer"characterUID")) then return end
    showUI()
end)

function hideVinyls()
    addEventHandler('onClientRender'rootrenderUI)
    bindKey("arrow_d""down"arrowDown)
    bindKey("arrow_u""down"arrowUp)
    bindKey("backspace""down"backspace)
    bindKey("enter""down"enter)
end


wydaje mi si? ?e to jest po prostu kwestia z?ych elementdat ale nie wiem

skrypt vehicle z mojego serwera:

c.lua

VehicleBlips = {}
VehicleBlips.__index VehicleBlips

function VehicleBlips:create()
    local instance = {}
    setmetatable(instanceVehicleBlips)
    if instance:constructor() then
        return true
    end
    return false
end

function VehicleBlips:constructor()
    self.vehicles = {}

    self.func = {}
    self.func.update = function() self:updateVehicles() end
    self.func.remove = function() self:removeVehicle(sourceend

    addEventHandler("onClientElementDestroy"rootself.func.remove)
    setTimer(self.func.update100000)
    return true
end

function VehicleBlips:updateVehicles()
    if not getElementData(localPlayer"characterUID"then return end
    for i_ in pairs(self.vehicles) do
        if not isElement(ithen
            if isElement(self.vehicles[i]) then destroyElement(self.vehicles[i]) end
            self.vehicles[i] = nil
        end
    end
    for iv in ipairs(getElementsByType("vehicle"resourceRoot)) do
        self:addVehicle(v)
    end
end

function VehicleBlips:addVehicle(vehicle)
    if not canShowVehicleBlip(vehiclethen self:removeVehicle(vehicle) return end
    if self.vehicles[vehiclethen return end

    self.vehicles[vehicle] = createBlip(000002137213255)
    setElementData(self.vehicles[vehicle], "icon"2false)
    attachElements(self.vehicles[vehicle], vehicle)
    setElementData(self.vehicles[vehicle], "vehObject"vehiclefalse)
end

function VehicleBlips:removeVehicle(vehicle)
    if not self.vehicles[vehiclethen return end
    if isElement(self.vehicles[vehicle]) then destroyElement(self.vehicles[vehicle]) end
    self.vehicles[vehicle] = nil
end


function canShowVehicleBlip(vehicle)
    local vehData getElementData(vehicle"vehicleOwners")
    if not vehData then return end

    local vehOrganization getElementData(vehicle"vehicleOrganization")
    if vehOrganization then
        if vehOrganization == getElementData(localPlayer"characterOrgID"then
            return true
        end
    end

    local uid getElementData(localPlayer"characterUID")
    for iv in ipairs(vehData) do
        if == uid or == getPlayerName(localPlayerthen return true end
    end
    return false
end

function isVehicleOwner(vehicle)
    if getElementData(localPlayer"adminDuty"then return true end
    if getElementData(vehicle"freeForAll"then return true end

    local jobVehicle getElementData(vehicle"vehicleOwner")
    if jobVehicle then
        if jobVehicle == localPlayer then return true end
    end

    local vehicleFraction getElementData(vehicle"fractionID")
    local plrFraction getElementData(localPlayer"characterDuty")
    if vehicleFraction then
        if plrFraction then
            if vehicleFraction == plrFraction[4then return true end
        end
        return false
    end

    local vehData getElementData(vehicle"vehicleOwners")
    if not vehData then return end

    local vehOrganization getElementData(vehicle"vehicleOrganization")
    if vehOrganization then
        if vehOrganization == getElementData(localPlayer"characterOrgID"then
            return true
        end
    end

    local uid getElementData(localPlayer"characterUID")
    for iv in ipairs(vehData) do
        if == uid or == getPlayerName(localPlayerthen return true end
    end
    return false
end


VehicleBlips:create()


local benchmarkVehicles = {}
local benchmarkCoroutine
function destroyBenchmarkVehicles()
    for iv in pairs(benchmarkVehicles) do
        destroyElement(v)
    end
    benchmarkVehicles = {}
end

function createBenchmarkVehicles(maxVehiclesmodels)
    benchmarkCoroutine coroutine.create(createBenchmarkVehiclesCoroutine)
    coroutine.resume(benchmarkCoroutinemaxVehiclesmodels)
end

function createBenchmarkVehiclesCoroutine(maxVehiclesmodels)
    local i 0
    for 050 do
        table.insert(benchmarkVehiclescreateBenchmarkVehicle(models[math.random(1#models)], -1657.5361328125 + i * 6, -158.841796875 + i * 6, 13.834096908569, 0, 0, 223))
        1

        if i%== 0 then
            setTimer(function()
                coroutine.resume(benchmarkCoroutinemaxVehiclesmodels)
            end1001)
            coroutine.yield(benchmarkCoroutine)
        end
    end
    local i 30
    for 020 do
        table.insert(benchmarkVehiclescreateBenchmarkVehicle(models[math.random(1#models)], -1651.5361328125 + i * 6, -163.841796875 + i * 6, 13.834096908569, 0, 0, 223))
        1
        if i%== 0 then
            setTimer(function()
                coroutine.resume(benchmarkCoroutinemaxVehiclesmodels)
            end1001)
            coroutine.yield(benchmarkCoroutine)
        end
    end

    local i 102
    for 0maxVehicles do
        table.insert(benchmarkVehiclescreateBenchmarkVehicle(models[math.random(1#models)], -1663.5361328125 + i * 3, -153.841796875 + i * 3, 13.834096908569, 0, 0, 223))
        table.insert(benchmarkVehiclescreateBenchmarkVehicle(models[math.random(1#models)], -1657.5361328125 + i * 3, -158.841796875 + i * 3, 13.834096908569, 0, 0, 223))
        table.insert(benchmarkVehiclescreateBenchmarkVehicle(models[math.random(1#models)], -1651.5361328125 + i * 3, -163.841796875 + i * 3, 13.834096908569, 0, 0, 223))
        table.insert(benchmarkVehiclescreateBenchmarkVehicle(models[math.random(1#models)], -1645.5361328125 + i * 3, -168.841796875 + i * 3, 13.834096908569, 0, 0, 223))
        1
        if i%== 0 then
            setTimer(function()
                coroutine.resume(benchmarkCoroutinemaxVehiclesmodels)
            end1001)
            coroutine.yield(benchmarkCoroutine)
        end
    end
end

function createBenchmarkVehicle(modelxyzrxryrz)
    local veh createVehicle(modelxyzrxryrz)
    setElementData(veh"neonEnabled"truefalse)
    setElementDimension(veh4891)

    for i0math.random(05) do
        addVehicleUpgrade(vehmath.random(10001193))
    end

    setElementData(veh"neonEnabled"truefalse)
    setElementData(veh"visualTuning", {
        neon = {math.random(13), math.random(0255), math.random(0255), math.random(0255)},
        glassTint math.random(0100)/100
    }, false)
    return veh
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2022-07-27, 22:55


etrnl

CLASSIC RPG






Wiek: 26
Na forum: 2199 dni
Posty: 86
Nick w MP: anonymous

Piwa: 57

Respekt: 50

Ostrzeżeń: 40%
Cytat:

addEventHandler("onClientMarkerHit", marker, function(plr)


if plr ~= localPlayer then return end


local vehicle = getPedOccupiedVehicle(localPlayer)


if not vehicle then return end


if (leave or 0) > getTickCount() then return end


local vehicleOwner = getElementData(vehicle, "ownedPlayer")


if not owned or tonumber(owned) ~= tonumber(getElementData(localPlayer, "characterUID")) then return end


showUI()


end)


Sprawdza?e? czy masz element dat? ownedPlayer na aucie i czy jest r?wna twojemu characterUID?

i odkomentuj na chwil?
Cytat:

if (leave or 0) > getTickCount() then return end
i sprawd? bo masz tyle rzeczy w tym skrypcie ?e ci??ko si? po?apa? co jest co ale raczej to wina elementdaty.

Poza tym, wyskakuje co? w db3?

Postaw piwo autorowi tego posta
 

 
Tagi: przenoszenie :: tunera
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Odpowiedz do tematu

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku