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

Wysłany: 2019-02-06, 01:32


killercycDDS

Migacz






Wiek: 26
Na forum: 4653 dni
Posty: 629
Nick w MP: killer_cyc[DDS]

Piwa: 1667

Respekt: 22

Witam bawi? si? w przerabianie prac i napotka?em pewien problem ot?? nie wiem jak zrobi? odczyt pozycji randomowego markeru np w innym pliku mam spis marker?w. Losuje mi jaki? randomowy i jak zrobi? by odczyta? ten marker i pokaza? dok?d mamy jecha?. Wiem tyle, ?e do odczytu s?u?y getZoneName


local function deleteElements(text, color)
    guiGridListClear(data.gridlist[1])
    showCursor(not isCursorShowing(), false)
    guiSetVisible(data.window[1], not guiGetVisible(data.window[1]))
    
    if text and color then
        outputChatBox(text, color[1], color[2], color[3], true)
    end
end

local function checkPlayerVehicle(player)
    local vehicle = player.vehicle
    if vehicle and vehicle.controller == player then
        if vehicle.model == 482 or vehicle.model == 413 or vehicle.model == 456 or vehicle.model == 414 or vehicle.model == 455 or vehicle.model == 609 or vehicle.model == 515 then
            return true
        end
    end
    return false, outputChatBox("Tw?j pojazd nie jest pojazdem dostawczym !", 255, 0, 0, true)
end

_fadeCamera = fadeCamera
local function fadeCamera(option, player)
    if player:getData("player:vip") then timestamp = 6000 else timestamp = 10000 end
    if player:getData("player:svip") then timestamp = 4000 else timestamp = 10000 end
    if player:getData("player:mpremium") then timestamp = 1000 else timestamp = 10000 end
    local vehicle = player.vehicle
    
    if option == "commencement" then
        _fadeCamera(false, 1, 0, 0, 0)
        addEventHandler("onClientRender",root,render)
        setElementData(player,"player:hud_visible",true)
        showChat(false)
        vehicle.frozen = not vehicle.frozen
        
        Timer(function()
            _fadeCamera(true, 1)
            vehicle.frozen = not vehicle.frozen
            renderstop()
            showChat(true)
            setElementData(player,"player:hud_visible",false)
        end, timestamp, 1)
    elseif option == "end" then
        _fadeCamera(false, 1, 0, 0, 0)
        addEventHandler("onClientRender",root,render2)
        setElementData(player,"player:hud_visible",true)
        showChat(false)
        vehicle.frozen = not vehicle.frozen
        
        Timer(function()
            _fadeCamera(true, 1)
            vehicle.frozen = not vehicle.frozen
            --vehicle:setData("vehicle:desc",false)
            triggerServerEvent("remove3DTextFromElement", root, vehicle)
            renderstop2()
            showChat(true)
            setElementData(player,"player:hud_visible",false)
            local data = player:getData("player:order")
            if data then
                outputChatBox("Otrzymujesz "..data.received.." + 1PKT pracy!", 0, 255, 0, true)
            end
            triggerServerEvent("iyw_kurier:give_cash", resourceRoot, string.gsub(data.received, "£", ""))
            
            if isElement(sphere) and isElement(blip) then
                blip:destroy()
                sphere:destroy()
            end
            
            player:setData("player:order", false)
        end, timestamp, 1)
    end
end

addEventHandler("onClientMarkerHit", resourceRoot, function(player, dimension)
    if player == localPlayer and dimension then
        if source:getData("marker:loading") then
            local vehicle = player.vehicle
            if not vehicle or vehicle.controller ~= player then return false end

            if not player:getData("player:order") then
                if checkPlayerVehicle(player) then
                    for i,v in ipairs(data.order) do
                        guiGridListAddRow(data.gridlist[1])
                        guiGridListSetItemText(data.gridlist[1], i-1, 1, i, false, false)
                        guiGridListSetItemText(data.gridlist[1], i-1, 2, v[1], false, false)
                        guiGridListSetItemText(data.gridlist[1], i-1, 3, string.format("%.00f PLN", v[2]), false, false)
                        guiGridListSetItemText(data.gridlist[1], i-1, 4, tonumber(v[3]), false, false)
                    end
                    
                    showCursor(not isCursorShowing(), false)
                    guiSetVisible(data.window[1], not guiGetVisible(data.window[1]))
                    guiSetText(data.window[1], "Praca spedytora - ilo?? PKT: "..player:getData("player:scorespedytor").."")
                end
            end
        end
    end
end)

addEventHandler("onClientMarkerLeave", resourceRoot, function(player, dimension)
    if player == localPlayer and dimension then
        if source:getData("marker:loading") then
            local vehicle = player.vehicle
            if not vehicle then return false end

            if guiGetVisible(data.window[1]) then
                deleteElements(_,_)
            end
        end
    end
end)

addEventHandler("onClientVehicleExit", root, function(player, seat)
    local kara = (15000)
    if player == localPlayer and seat then
        if player:getData("player:order") then
            player:setData("player:order", false)
            takePlayerMoney(kara)
            outputChatBox("Opu?ci?e?(a?) pojazd maj?c aktywny kurs, praca zostaje przerwana. Otrzymujesz kar? wysoko?ci " ..kara.. " £ ", 255, 0, 0, true)
            if isElement(sphere) or isElement(blip) then
                sphere:destroy()
                blip:destroy()
            end
        end
    end
end)

addEventHandler("onClientGUIClick", resourceRoot, function(button, state)
    if button == "left" and state == "up" then
        if source == data.button[1] then
            local selected = guiGridListGetSelectedItem(data.gridlist[1]) or -1
            if selected < 0 then return false, outputChatBox("Najpierw zaznacz towar!", 255, 0, 0, true) end
            
            local id = guiGridListGetItemText(data.gridlist[1], selected, 1)
            local name = guiGridListGetItemText(data.gridlist[1], selected, 2)
            local money = guiGridListGetItemText(data.gridlist[1], selected, 3)
            local score = guiGridListGetItemText(data.gridlist[1], selected, 4)
            local v = getPedOccupiedVehicle (localPlayer)
            local x, y, z = getElementPosition (co tu wstawic)
            local location = getZoneName ( x, y, z )
            local miasto = getZoneName (x, y, z, true)
            
            if (tonumber(localPlayer:getData("player:scorespedytor")) >= tonumber(score)) then
                randomResult = math.random(1, #data.marker)
                local position = {getElementPosition(localPlayer)}
                if getDistanceBetweenPoints3D(position[1], position[2], position[3], data.marker[randomResult][1], data.marker[randomResult][2], data.marker[randomResult][3]) <= 20 then
                    outputChatBox("Wylosowano bliski marker, sp?buj ponownie!", 255, 0, 0, true)
                else
                    fadeCamera("commencement", localPlayer)
                    deleteElements("Podj??e? zlecenie, udaj si? do punktu oznaczonym blipem 'C'!, Punkt znajduje sie w "..miasto.. " w " ..location.. "  Powodzenia ", {0, 255, 0})
                    localPlayer:setData("player:order", {["name"] = string.lower(name), ["received"] = money})
                    --v:setData("vehicle:desc","Praca Transportera\nZa?adunek: "..name.."")
                    triggerServerEvent("add3DTextForElement", root, v,{0,0,0},"Praca Transportera\nZa?adunek: "..name.."",{255,255,255,255},"czcionka4",1.0,30,1)
                    sphere = ColShape.Sphere(data.marker[randomResult][1], data.marker[randomResult][2], data.marker[randomResult][3], 3.50)
                    blip = createBlipAttachedTo(sphere, 12, 6, 255, 0, 0, 255, 0, 99999.0)
                end
                
                addEventHandler("onClientColShapeHit", resourceRoot, function(player, dimension)
                    if player == localPlayer and dimension then
                        if source == sphere then
                            fadeCamera("end", player)
                        end
                    end
                end)
            else
                return false, outputChatBox("Nie posiadasz tyle punkt?w! ("..score.." score)", 255, 0, 0, true)
            end
        elseif source == data.button[2] then
            deleteElements(_,_)
        end
    end
end)

mojeW,mojeH = 1366, 768
sW,sH = guiGetScreenSize()
w, h = (sW/mojeW), (sH/mojeH)

function render()
    dxDrawImage(433*w, 259*h, 500*w, 200*h, "img/zaladunek.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end

function render2()
    dxDrawImage(433*w, 259*h, 500*w, 200*h, "img/rozladunek.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end

function renderstop()
    removeEventHandler("onClientRender",root,render)
end

function renderstop2()
    removeEventHandler("onClientRender",root,render2)
end


a chodzi mi o t? linijk? bo nie wiem co wstawi?

            local x, y, z = getElementPosition (co tu wstawic)
            local location = getZoneName ( x, y, z )
            local miasto = getZoneName (x, y, z, true)


markery w innym pliku

data = {gridlist = {}, window = {}, button = {}, size = 4, lastRandomResult, color = {0, 0, 90, 80}}
data.marker = {
    {369.75, -2043.86, 7.67},
    {848.63, -1822.13, 12.19},
    {-1567.03, -2735.30, 48.54},
    {-2328.49, -1618.51, 483.71},
    {-1945.10, -1084.70, 30.78},
    {-2524.29, -604.01, 132.56},
    {-2793.32, -380.37, 7.04},
    {-2354.25, -154.45, 35.32},
    {-2769.76, 229.40, 7.06},
    {-2208.21, 639.76, 49.44},
    {-1790.54, 1428.62, 7.19},
    {-2512.31, 1205.41, 37.42},
    {-2261.07, 2287.73, 4.82},
    {-1267.02, 2708.03, 50.07},
    {-926.00, 2026.48, 60.91},
    {-366.77, 1129.84, 19.76},
    {2144.14, 2808.86, 10.82},
    {2444.98, 2290.26, 10.82},
    {1722.32, 2105.34, 10.82},
    {2206.28, 1514.67, 10.82},
    {2461.04, 1158.96, 10.82},
    {1542.48, 1033.90, 10.82},
    {1098.74, 1450.08, 12.55},
    {1500.63, 773.24, 10.82},
    {1288.60, 342.65, 19.55},
    {1925.90, 174.90, 37.28},
}


Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-02-06, 16:06


BlueCry

ŚĆRIPTER LUJA






Wiek: 25
Na forum: 4147 dni
Posty: 78
Nick w MP: BlueCry

Piwa: 2178

Respekt: 110
Respekt: 110

Masz poprawiony kod, powinno dzia?a?.

local function deleteElements(text, color)
    guiGridListClear(data.gridlist[1])
    showCursor(not isCursorShowing(), false)
    guiSetVisible(data.window[1], not guiGetVisible(data.window[1]))
    
    if text and color then
        outputChatBox(text, color[1], color[2], color[3], true)
    end
end

local function checkPlayerVehicle(player)
    local vehicle = player.vehicle
    if vehicle and vehicle.controller == player then
        if vehicle.model == 482 or vehicle.model == 413 or vehicle.model == 456 or vehicle.model == 414 or vehicle.model == 455 or vehicle.model == 609 or vehicle.model == 515 then
            return true
        end
    end
    return false, outputChatBox("Tw?j pojazd nie jest pojazdem dostawczym !", 255, 0, 0, true)
end

_fadeCamera = fadeCamera
local function fadeCamera(option, player)
    if player:getData("player:vip") then timestamp = 6000 else timestamp = 10000 end
    if player:getData("player:svip") then timestamp = 4000 else timestamp = 10000 end
    if player:getData("player:mpremium") then timestamp = 1000 else timestamp = 10000 end
    local vehicle = player.vehicle
    
    if option == "commencement" then
        _fadeCamera(false, 1, 0, 0, 0)
        addEventHandler("onClientRender",root,render)
        setElementData(player,"player:hud_visible",true)
        showChat(false)
        vehicle.frozen = not vehicle.frozen
        
        Timer(function()
            _fadeCamera(true, 1)
            vehicle.frozen = not vehicle.frozen
            renderstop()
            showChat(true)
            setElementData(player,"player:hud_visible",false)
        end, timestamp, 1)
    elseif option == "end" then
        _fadeCamera(false, 1, 0, 0, 0)
        addEventHandler("onClientRender",root,render2)
        setElementData(player,"player:hud_visible",true)
        showChat(false)
        vehicle.frozen = not vehicle.frozen
        
        Timer(function()
            _fadeCamera(true, 1)
            vehicle.frozen = not vehicle.frozen
            --vehicle:setData("vehicle:desc",false)
            triggerServerEvent("remove3DTextFromElement", root, vehicle)
            renderstop2()
            showChat(true)
            setElementData(player,"player:hud_visible",false)
            local data = player:getData("player:order")
            if data then
                outputChatBox("Otrzymujesz "..data.received.." + 1PKT pracy!", 0, 255, 0, true)
            end
            triggerServerEvent("iyw_kurier:give_cash", resourceRoot, string.gsub(data.received, "&#163;", ""))
            
            if isElement(sphere) and isElement(blip) then
                blip:destroy()
                sphere:destroy()
            end
            
            player:setData("player:order", false)
        end, timestamp, 1)
    end
end

addEventHandler("onClientMarkerHit", resourceRoot, function(player, dimension)
    if player == localPlayer and dimension then
        if source:getData("marker:loading") then
            local vehicle = player.vehicle
            if not vehicle or vehicle.controller ~= player then return false end

            if not player:getData("player:order") then
                if checkPlayerVehicle(player) then
                    for i,v in ipairs(data.order) do
                        guiGridListAddRow(data.gridlist[1])
                        guiGridListSetItemText(data.gridlist[1], i-1, 1, i, false, false)
                        guiGridListSetItemText(data.gridlist[1], i-1, 2, v[1], false, false)
                        guiGridListSetItemText(data.gridlist[1], i-1, 3, string.format("%.00f PLN", v[2]), false, false)
                        guiGridListSetItemText(data.gridlist[1], i-1, 4, tonumber(v[3]), false, false)
                    end
                    
                    showCursor(not isCursorShowing(), false)
                    guiSetVisible(data.window[1], not guiGetVisible(data.window[1]))
                    guiSetText(data.window[1], "Praca spedytora - ilo?? PKT: "..player:getData("player:scorespedytor").."")
                end
            end
        end
    end
end)

addEventHandler("onClientMarkerLeave", resourceRoot, function(player, dimension)
    if player == localPlayer and dimension then
        if source:getData("marker:loading") then
            local vehicle = player.vehicle
            if not vehicle then return false end

            if guiGetVisible(data.window[1]) then
                deleteElements(_,_)
            end
        end
    end
end)

addEventHandler("onClientVehicleExit", root, function(player, seat)
    local kara = (15000)
    if player == localPlayer and seat then
        if player:getData("player:order") then
            player:setData("player:order", false)
            takePlayerMoney(kara)
            outputChatBox("Opu?ci?e?(a?) pojazd maj?c aktywny kurs, praca zostaje przerwana. Otrzymujesz kar? wysoko?ci " ..kara.. " &#163; ", 255, 0, 0, true)
            if isElement(sphere) or isElement(blip) then
                sphere:destroy()
                blip:destroy()
            end
        end
    end
end)

addEventHandler("onClientGUIClick", resourceRoot, function(button, state)
    if button == "left" and state == "up" then
        if source == data.button[1] then
            local selected = guiGridListGetSelectedItem(data.gridlist[1]) or -1
            if selected < 0 then return false, outputChatBox("Najpierw zaznacz towar!", 255, 0, 0, true) end
            
            local id = guiGridListGetItemText(data.gridlist[1], selected, 1)
            local name = guiGridListGetItemText(data.gridlist[1], selected, 2)
            local money = guiGridListGetItemText(data.gridlist[1], selected, 3)
            local score = guiGridListGetItemText(data.gridlist[1], selected, 4)
            local v = getPedOccupiedVehicle (localPlayer)
            randomResult = math.random(1, #data.marker)
            local x, y, z = data.marker[randomResult][1], data.marker[randomResult][2], data.marker[randomResult][3]
            local location = getZoneName ( x, y, z )
            local miasto = getZoneName (x, y, z, true)
            
            if (tonumber(localPlayer:getData("player:scorespedytor")) >= tonumber(score)) then
                local position = {getElementPosition(localPlayer)}
                if getDistanceBetweenPoints3D(position[1], position[2], position[3], data.marker[randomResult][1], data.marker[randomResult][2], data.marker[randomResult][3]) <= 20 then
                    outputChatBox("Wylosowano bliski marker, sp?buj ponownie!", 255, 0, 0, true)
                else
                    fadeCamera("commencement", localPlayer)
                    deleteElements("Podj??e? zlecenie, udaj si? do punktu oznaczonym blipem 'C'!, Punkt znajduje sie w "..miasto.. " w " ..location.. "  Powodzenia ", {0, 255, 0})
                    localPlayer:setData("player:order", {["name"] = string.lower(name), ["received"] = money})
                    --v:setData("vehicle:desc","Praca Transportera\nZa?adunek: "..name.."")
                    triggerServerEvent("add3DTextForElement", root, v,{0,0,0},"Praca Transportera\nZa?adunek: "..name.."",{255,255,255,255},"czcionka4",1.0,30,1)
                    sphere = ColShape.Sphere(data.marker[randomResult][1], data.marker[randomResult][2], data.marker[randomResult][3], 3.50)
                    blip = createBlipAttachedTo(sphere, 12, 6, 255, 0, 0, 255, 0, 99999.0)
                end
                
                addEventHandler("onClientColShapeHit", resourceRoot, function(player, dimension)
                    if player == localPlayer and dimension then
                        if source == sphere then
                            fadeCamera("end", player)
                        end
                    end
                end)
            else
                return false, outputChatBox("Nie posiadasz tyle punkt?w! ("..score.." score)", 255, 0, 0, true)
            end
        elseif source == data.button[2] then
            deleteElements(_,_)
        end
    end
end)

mojeW,mojeH = 1366, 768
sW,sH = guiGetScreenSize()
w, h = (sW/mojeW), (sH/mojeH)

function render()
    dxDrawImage(433*w, 259*h, 500*w, 200*h, "img/zaladunek.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end

function render2()
    dxDrawImage(433*w, 259*h, 500*w, 200*h, "img/rozladunek.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end

function renderstop()
    removeEventHandler("onClientRender",root,render)
end

function renderstop2()
    removeEventHandler("onClientRender",root,render2)
end 


Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
killercycDDS
Wysłany: 2019-02-06, 16:41


killercycDDS

Migacz






Wiek: 26
Na forum: 4653 dni
Posty: 629
Nick w MP: killer_cyc[DDS]

Piwa: 1667

Respekt: 22

dzi?ki za pomoc temat rozwi?zany i do zamkni?cia

Postaw piwo autorowi tego posta
 

 
Tagi: odczyt :: pozycji :: markera
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » odczyt pozycji markera Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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