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

Wysłany: 2021-01-17, 19:53


xyzzz^

A nic






Wiek: 19
Na forum: 2134 dni
Posty: 319
Nick w MP: Aspyk21

Piwa: 310

Respekt: 81

Ostrzeżeń: 100%
Brama sie nie otwiera,
server:
function CDomki()
    local object = {}
    
    -- domki do kupna
        removeWorldModel(13817, 1000,     1353.23, -625.68, 109.13) --lod
    local garazeDayZ = {
        jakis = createObject(3095, 1353.66, -626.34, 109.13, -0.0, 0.0, 193.3)
    }
    object.domki = 
    {    -- [id] = {x, y, z, preset interioru, cena, wlasciciel(nie zmieniamy z nil), garazID, czas(nie zmieniamy z 0) }
        
        [1] = {2495.23, -1690.42, 13.5, 1, 4000, nil, 9, 0}, -- dom johnsona. grove
        [2] = {2523.38, -1658, 14.4, 2, 2350, nil, false, 0}, -- dom po lewej od koszykowki grove
        [3] = {2486.5, -1645.8, 13, 3, 3100, nil, false, 0}, -- dom 2-pietrowy grove 
        [4] = {315.17, -1771, 3.6, 3, 3250, nil, 13, 0}, -- dom na plazy 2-pietrowy garaz
        [5] = {1298.69, -800.46, 83, 4, 10000, nil, false, 0}, -- willa madd doga
        [6] = {2468.79, -1295.53, 28.9, 2, 2200, nil, false, 0}, -- dom jednorodzinny kolo strip clubu
        [7] = {2068.12, -1731.63, 12.8, 6, 2000, nil, false, 0}, -- kolo pizzerii
        [8] = {2069, -1717, 12.5, 6, 2000, nil, false, 0}, -- kolo domku wyzej
        [9] = {1981.72, -1682.74, 16, 3, 3300, nil, false, 0}, -- domek 2 pi?trowy ko?o domk?w wy?ej
        [10] = {1981.47, -1718.94, 16, 3, 3250, nil, false, 0}, -- domek 2 pi?trowy kolejny obok tego wy?ej
        [11] = {1331.41, -631.56, 108.13, 5, 4000, nil, garazeDayZ.jakis, 0}, -- domek mulholland
        [12] = {1686, -2100, 12.8, 7, 3000, nil, 5, 0}, -- domek el corona
        [13] = {2382.98, -1366.29, 23.4, 6, 2100, nil, false, 0}, -- syfiaste domki kolo grove start
        [14] = {2389.5, -1346.11, 24, 6, 2100, nil, false, 0},
        [15] = {2387.48, -1328.32, 24.12, 6, 2100, nil, false, 0},
        [16] = {2387.93, -1279.72, 24.12, 6, 2100, nil, false, 0},
        [17] = {2126.72, -1320.12, 25.6, 3, 3050, nil, false, 0},
        [18] = {168.53, -1769.81, 3.45, 5, 3500, nil, false, 0},
        [19] = {656.5, -1652.69, 14.4, 7, 2500, nil, false, 0},
        [20] = {652.19, -1619.844, 14, 5, 3200, nil, false, 0},
        [21] = {692.981, -1602.316, 14, 7, 2500, nil, false, 0},
        [22] = {1182.56, -1074.84, 30.6, 5, 3890, nil, false, 0},
        [23] = {1142.86, -1069.22, 30.7, 2, 3250, nil, false, 0},
    };
    
    -- presety interior?w
    object.interiors = 
    {
        -- [id] = {interiorID, x, y, z wyjscia}
        -- grove street
        [1] = {3, 2496.05, -1692.72, 1014}, -- dom johnsona
        [2] = {4, 261, 1284.7, 1080}, -- wielopokojowy dom jednorodzinny
        [3] = {9, 2317.8, -1026.29, 1050}, -- dom 2 pi?trowy, ?adny
        [4] = {5, 1298.99, -794.47, 1084}, -- willa
        [5] = {10, 2269.66, -1210.35, 1047.56}, -- dom jednorodzinny, du?o pokoi, ?adnie wystrojony
        [6] = {1, 223, 1287.74, 1082}, -- syf, klasa za 2000$
        [7] = {6, -69, 1351.94, 1080}, -- klasa za 2500$-2750$ max
        [8] = {5, 140.136, 137.449, 1083}, -- willa 6000$ minimum
    };
    
    object.dimension = 5;
    


    function object:refresh()
        for k,v in ipairs(getAccounts()) do
        local domki = getAccountData(v, "domki") or false
        local domki_t = getAccountData(v, "domki_timestamp") or false
        if domki and domki_t then
            -- wczytanie domk?w gracza
            -- konwersja z JSON tablicy bo system kont nie obsluguje tablic
            domki = fromJSON(domki)
            domki_t = fromJSON(domki_t)
            local t = 0
            if type(domki) == "table" then
                for i, domek in pairs(domki) do
                    -- aktualizacja czasu najmu
                        t = domki_t[i]
                        local now = getRealTime().timestamp
                        if t < now then
                            outputDebugString("Domek id "..tostring(domek).." - usuni?cie po terminie", 3)
                            object.domki[domek][8] = 0
                            object.domki[domek][6] = false
                        
                            table.remove(domki, i)
                            table.remove(domki_t, i)
                        
                            if #domki_t == 0 then
                                domki = false
                                domki_t = false
                            end
                        
                            setAccountData(v, "domki", toJSON(domki))
                            setAccountData(v, "domki_timestamp", toJSON(domki_t))
                        else
                            object.domki[domek][8] = t
                            object.domki[domek][6] = getAccountName(v)
                        end    
                    end
                end
            end
        end
    end
    object:refresh()
    
    -- aktualizacja w?a?ciciel?w domk?w
    setTimer(
    function()
        restartResource(getThisResource())
    end,60000*30, 0)
    
    -- stworzenie marker?w w domkach
    for k, v in ipairs(object.domki) do
        local id = v[4]
        local x,y,z = object.interiors[id][2], object.interiors[id][3], object.interiors[id][4]
        local marker = createMarker(x, y, z-0.7, "cylinder", 2.0, 0, 255, 0, 50, root)
        setElementInterior(marker, object.interiors[id][1])
        setElementDimension(marker, k)
        setElementData(marker, "dom:exit", true)
    end
    
    -- stworzenie marker?w
    for k,v in ipairs(object.domki) do
        local x,y,z = v[1], v[2], v[3]
        local interior = v[4]
        local cena = v[5]
        local wlasciciel = v[6]
        local garaz = v[7]
        local timestamp = v[8]
        local marker, pickup, blip;
        if type(wlasciciel) == "string" then
            marker = createMarker(x, y, z, "cylinder", 2.0, 0, 255, 0, 100, root)
            pickup = createPickup(x, y, z+1, 3, 1273, 0)
            blip = createBlipAttachedTo(marker, 32, 2, 255, 0, 0, 255, 0, 300)
        else
            marker = createMarker(x, y, z, "cylinder", 2.0, 0, 150, 255, 100, root)
            pickup = createPickup(x, y, z+1, 3, 1272, 0) 
            blip = createBlipAttachedTo(marker, 31, 2, 255, 0, 0, 255, 0, 300)
        end
        
        addEventHandler("onMarkerHit", marker, function(hitElement) if getElementType(hitElement) == "player" and not getPedOccupiedVehicle(hitElement) then object:onDomEnter(hitElement); end end);
        
        -- zapisanie danych do markeru
        setElementData(marker, "dom:id", k)
        setElementData(marker, "dom:interior", object.interiors[interior][1])
        setElementData(marker, "dom:enterPosX", object.interiors[interior][2])
        setElementData(marker, "dom:enterPosY", object.interiors[interior][3])
        setElementData(marker, "dom:enterPosZ", object.interiors[interior][4])
        setElementData(marker, "dom:cena", cena)
        setElementData(marker, "dom:wlasciciel", wlasciciel)
        setElementData(marker, "dom:garaz", garaz)
        setElementData(marker, "dom:pickup", pickup)
        setElementData(marker, "dom:open", true)
        setElementData(marker, "dom:timestamp", timestamp)
        setElementData(marker, "dom:blip", blip)
        
        -- i pickupu by przyspieszyc renderowanie tekstow(po co robi? p?tle na wszystkie markery)
        setElementData(pickup, "dom", true)
        setElementData(pickup, "dom:interior", interior)
        setElementData(pickup, "dom:cena", cena)
        setElementData(pickup, "dom:wlasciciel", wlasciciel)
        setElementData(pickup, "dom:garaz", garaz)
        setElementData(pickup, "dom:pickup", pickup)
        setElementData(pickup, "dom:timestamp", timestamp)
    end
    
    function object:onDomEnter(hitElement)
        if getElementType(hitElement) == "player" and not getElementData(hitElement, "dom:exit") then
            triggerClientEvent(hitElement, "domki:showWindow", source)
        end
    end
    
    
-- sprawdzanie markerow w interiorze
    addEventHandler("onMarkerHit", root,
        function(hitElement, dimension)
            if dimension then
                if getElementData(source, "dom:exit") ~= true then return end
                if getElementData(hitElement, "dom:entered") then return end
                local pos = getElementData(hitElement, "dom:exit")
                local x,y,z = pos[1], pos[2], pos[3]
                fadeCamera(hitElement, false, 2.0)
                setTimer(
                    function()
                        setElementPosition(hitElement, x, y, z+0.6)
                        setElementInterior(hitElement, 0)
                        setElementDimension(hitElement, 0)
                        fadeCamera(hitElement, true, 2.0)
                        setTimer(setElementData, 2000, 1, hitElement, "dom:exit", false)
                    end, 2000, 1)
            end
        end
    )
    function object:enterInterior(marker)
        local interior = getElementData(marker, "dom:interior")
        local x, y, z = getElementData(marker, "dom:enterPosX"), getElementData(marker, "dom:enterPosY"), getElementData(marker, "dom:enterPosZ")
        local dimension = getElementData(marker, "dom:id"); -- na stale zapisana!
                    
        local eX, eY, eZ = getElementPosition(marker); -- pozycja do powrotu
        setElementData(client, "dom:exit", {eX, eY, eZ})
                    
        setElementData(client, "dom:entered", true) -- aby nie wyjsc od razu po wejsciu
        setTimer(setElementData, 5000, 1, client, "dom:entered", false)
                    
        setElementInterior(client, interior)
        setElementDimension(client, dimension)
        setElementPosition(client, x, y, z)
        fadeCamera(client, true, 2.0)
    end
    addEvent("domki:enterInterior", true)
    addEventHandler("domki:enterInterior", root, function(a) object:enterInterior(a) end)
    
    function object:buyHouse(money, marker, time)
        local playerAcc = getPlayerAccount(client)
        local domki = getAccountData(playerAcc, "domki") or false
        if domki ~= false and fromJSON(domki) ~= false then
            if #fromJSON(domki) >= 3 then
                outputChatBox("Przekroczy?e? limit kupionych domk?w.", client, 255, 0, 0)
                return
            end
        end
        
        setElementData(client, "GP", getElementData(client, "GP") - money)
        local id = getElementData(marker, "dom:id")
        
        local timestamp = getRealTime().timestamp
        time = 86400*time
        timestamp = timestamp + time
        
        if domki and type(fromJSON(domki)) == "table" then
            -- zapisanie domku do konta gracza
            domki = fromJSON(domki)
            table.insert(domki, id)
            setAccountData(playerAcc, "domki", toJSON(domki))
            
            -- jakis bug i nie moge zapisac w jednej dacie timestampu i id
            domki_timestamp = getAccountData(playerAcc, "domki_timestamp")
            domki_timestamp = fromJSON(domki_timestamp)
            table.insert(domki_timestamp, timestamp)
            setAccountData(playerAcc, "domki_timestamp", toJSON(domki_timestamp))
        else
            -- pierwszy domek do zapisania
            setAccountData(playerAcc, "domki", toJSON({id}))
            setAccountData(playerAcc, "domki_timestamp", toJSON({timestamp}))
        end
        
        -- aktualizacja stanu domku
        local blip = getElementData(marker, "dom:blip")
        setBlipIcon(blip, 32)
        
        local pickup = getElementData(marker, "dom:pickup")
        setElementData(marker, "dom:wlasciciel", getAccountName(playerAcc))
        setElementData(pickup, "dom:wlasciciel", getAccountName(playerAcc))
        
        setElementData(marker, "dom:timestamp", timestamp)
        setElementData(pickup, "dom:timestamp", timestamp)
        
        setPickupType(pickup, 3, 1273)
        setMarkerColor(marker, 0, 255, 0, 100)
        
        outputChatBox("Zakupi?e? dom!", client, 0, 255, 0)
    end
    addEvent("domki:buyHouse", true)
    addEventHandler("domki:buyHouse", root, function(a, b, c) object:buyHouse(a, b, c) end)
    
    function object:sellHouse(price, marker)
        if price and marker then
        --    givePlayerMoney(client, price)
        setElementData(client, "GP", getElementData(client, "GP") + price)
            local id = getElementData(marker, "dom:id")
            local pickup = getElementData(marker, "dom:pickup")
            local blip = getElementData(marker, "dom:blip")
            setPickupType(pickup, 3, 1272)
            setMarkerColor(marker, 0, 150, 255, 100)
            setBlipIcon(blip, 31)
            setElementData(marker, "dom:wlasciciel", false)
            setElementData(marker, "dom:timestamp", false)
            setElementData(marker, "dom:open", true)
            
            setElementData(pickup, "dom:wlasciciel", false)
            setElementData(pickup, "dom:timestamp", false)
            
            local acc = getPlayerAccount(client)
            local domki = getAccountData(acc, "domki")
            local domki_t = getAccountData(acc, "domki_timestamp")
            
            domki = fromJSON(domki)
            domki_t = fromJSON(domki_t)
            
            for i, domek in ipairs(domki) do
                if id == domek then
                    outputDebugString("Domek id "..tostring(domek).." - sprzedanie", 3)
                    object.domki[domek][8] = 0
                    object.domki[domek][6] = false
                        
                    table.remove(domki, i)
                    table.remove(domki_t, i)
                        
                    if #domki_t == 0 then
                        domki = false
                        domki_t = false
                    end
                        
                    setAccountData(acc, "domki", toJSON(domki))
                    setAccountData(acc, "domki_timestamp", toJSON(domki_t))
                end
            end
            
            outputChatBox("Sprzeda?e? sw?j domek!", client, 0, 255, 0)
        end
    end
    addEvent("domki:sellHouse", true)
    addEventHandler("domki:sellHouse", root, function(a, b) object:sellHouse(a, b) end)
    
    function object:przedluz(money, marker, time)
        --takePlayerMoney(client, money)    
        setElementData(client, "GP", getElementData(client, "GP") - money)
        local id = getElementData(marker, "dom:id")
        
        local playerAcc = getPlayerAccount(client)
        local domki = getAccountData(playerAcc, "domki") or false
        local timestamp = 86400*time
        
        domki_timestamp = fromJSON(getAccountData(playerAcc, "domki_timestamp"))
        for k,v in ipairs(fromJSON(getAccountData(playerAcc, "domki"))) do
            if v == id then
                domki_timestamp = domki_timestamp[k]
                timestamp = timestamp + domki_timestamp
                
                local table = fromJSON(getAccountData(playerAcc, "domki_timestamp"))
                table[k] = timestamp
        
                setAccountData(playerAcc, "domki_timestamp", toJSON(table))
                break
            end
        end
        
        local pickup = getElementData(marker, "dom:pickup")
        setElementData(marker, "dom:timestamp", timestamp)
        setElementData(pickup, "dom:timestamp", timestamp)
        outputChatBox("Przed?u?ono domek!", client, 0, 255, 0)
    end
    addEvent("domki:przedluz", true)
    addEventHandler("domki:przedluz", root, function(money, marker, time) object:przedluz(money, marker, time) end)
    
function object:openGarage(garaz)
    local garazyk = getElementData(garaz, "dom:garaz")
   local id = getElementData(garaz, "domek:id")
   if garazyk then 
   if id == 11 then 
    moveObject(garazeDayZ.jakis, 1000, 1353.66, -626.34, 109.13-10)
end 
    end
end
    addEvent("domki:openGarage", true)
    addEventHandler("domki:openGarage", root, function(a) object:openGarage(a) end)
    
    return object;
end

CDomki()


client
function CDomki()
    local object = {};
    
    object.dom_wnd = guiCreateWindow(0.55, 0.64, 0.44, 0.34, "Dom na sprzeda?", true)
    guiWindowSetSizable(object.dom_wnd, false)
    guiSetVisible(object.dom_wnd, false)
    
    object.dom_kup_btn = guiCreateButton(0.03, 0.54, 0.26, 0.19, "Kup", true, object.dom_wnd)
    object.dom_sprzedaj_btn = guiCreateButton(0.38, 0.54, 0.26, 0.19, "Sprzedaj", true, object.dom_wnd)
    guiSetProperty(object.dom_sprzedaj_btn, "Disabled", "True")
    object.dom_wejdz_btn = guiCreateButton(0.72, 0.54, 0.26, 0.19, "Wejd?", true, object.dom_wnd)
    object.dom_otworz_btn = guiCreateButton(0.03, 0.76, 0.26, 0.19, "Otw?rz/Zamknij dom", true, object.dom_wnd)
    object.dom_lbl_info = guiCreateLabel(0.03, 0.13, 0.98, 0.36, "W?a?ciciel: brak\nCena: 3000$ za dzie?\nGara?: nie\n\nAby zamkn?? GUI, kliknij poza okno.", true, object.dom_wnd)
    object.dom_otworzg_btn = guiCreateButton(0.38, 0.76, 0.26, 0.19, "Otw?rz/Zamknij gara?", true, object.dom_wnd)
    object.dom_przedluz_btn = guiCreateButton(0.72, 0.76, 0.26, 0.19, "Przed?u?", true, object.dom_wnd) 
    
    -- buy window
    object.dom_buy_wnd = guiCreateWindow(0.31, 0.35, 0.39, 0.24, "Na ile chcesz kupi? dom?", true)
    guiWindowSetSizable(object.dom_buy_wnd, false)
    guiSetVisible(object.dom_buy_wnd, false)
    
    object.dom_day_lbl = guiCreateLabel(0.03, 0.17, 0.15, 0.11, "Ilo?? dni", true, object.dom_buy_wnd)
    object.dom_dni_edit = guiCreateEdit(0.23, 0.17, 0.15, 0.14, "", true, object.dom_buy_wnd)
    object.dom_kwota = guiCreateLabel(0.03, 0.35, 0.91, 0.17, "Kwota ko?cowa: 0 * $2000 = $0", true, object.dom_buy_wnd)
    object.dom_finalkup_wnd = guiCreateButton(0.04, 0.61, 0.42, 0.26, "Kup", true, object.dom_buy_wnd)
    object.dom_buy_anuluj = guiCreateButton(0.54, 0.61, 0.42, 0.26, "Anuluj", true, object.dom_buy_wnd)   
    
    -- okno do przed?u?enia
    object.dom_przedluz_wnd = guiCreateWindow(0.31, 0.35, 0.39, 0.24, "Na ile chcesz przed?u?y? dom?", true)
    guiWindowSetSizable(object.dom_przedluz_wnd, false)
    guiSetVisible(object.dom_przedluz_wnd, false)
    
    object.dom_dayprzedluz_lbl = guiCreateLabel(0.03, 0.17, 0.15, 0.11, "Ilo?? dni", true, object.dom_przedluz_wnd)
    object.dom_dniprzedluz_edit = guiCreateEdit(0.23, 0.17, 0.15, 0.14, "", true, object.dom_przedluz_wnd)
    object.dom_kwotaprzedluz = guiCreateLabel(0.03, 0.35, 0.91, 0.17, "Kwota ko?cowa: 0 * $2000 = $0", true, object.dom_przedluz_wnd)
    object.dom_finalprzedluz_btn = guiCreateButton(0.04, 0.61, 0.42, 0.26, "Przed?u?", true, object.dom_przedluz_wnd)
    object.dom_przedluz_anuluj = guiCreateButton(0.54, 0.61, 0.42, 0.26, "Anuluj", true, object.dom_przedluz_wnd)   
    
    -- okno do sprzeda?y
    object.dom_sprzedaj_wnd = guiCreateWindow(0.30, 0.28, 0.39, 0.21, "Czy na pewno chcesz sprzeda? ten domek?", true)
    guiWindowSetSizable(object.dom_sprzedaj_wnd, false)
    guiSetVisible(object.dom_sprzedaj_wnd, false)
    
    object.dom_sprzedaj_tak = guiCreateButton(0.06, 0.39, 0.36, 0.48, "Tak", true, object.dom_sprzedaj_wnd)
    object.dom_sprzedaj_nie = guiCreateButton(0.58, 0.39, 0.36, 0.48, "Nie", true, object.dom_sprzedaj_wnd)
    addEventHandler("onClientGUIClick", object.dom_sprzedaj_nie, function() guiSetVisible(object.dom_sprzedaj_wnd, false) end)
    
    object.dom_sprzedaj_info = guiCreateLabel(0.04, 0.15, 0.89, 0.17, "Mo?esz sprzeda? ten dom za 0$.", true, object.dom_sprzedaj_wnd)  
    
    -- zmienne do zapami?tania przez gracza
    object.currentMarker = nil
    object.currentPrice = nil
    object.finalPrice = nil
    object.garazID = nil
    object.finalTime = nil
    
    function object:show()
        local state = guiGetVisible(self.dom_wnd)
        guiSetVisible(self.dom_wnd, not state)
        showCursor(not state)
        
        if state then return end
        -- update informacji
        self.currentMarker = source
        local wlasciciel = getElementData(source, "dom:wlasciciel") or "Brak"
        local cena = getElementData(source, "dom:cena") or "0"
        self.currentPrice = cena
        local garaz = getElementData(source, "dom:garaz")
        if garaz then
            if not getElementData(localPlayer, "vip") then
                if wlasciciel == getAccountName(localPlayer) then
                    outputChatBox("Musisz posiada? konto VIP aby przed?u?y? ten domek.", 0, 255, 255)
                end
            end
        end
        
        if garaz then 
            garaz = "Tak"
            guiSetProperty(self.dom_otworzg_btn, "Disabled", "False")
        else
            garaz = "Nie" 
            guiSetProperty(self.dom_otworzg_btn, "Disabled", "True")
        end
        
        self.garazID = getElementData(source, "dom:garaz")
        
        local open = getElementData(source, "dom:open")
        if open then
            guiSetProperty(self.dom_wejdz_btn, "Disabled", "False")
        else
            if wlasciciel == getAccountName(localPlayer) then
                guiSetProperty(self.dom_wejdz_btn, "Disabled", "False")
            else
                guiSetProperty(self.dom_wejdz_btn, "Disabled", "True")
            end
        end
        
        if wlasciciel ~= "Brak" then
            guiSetText(self.dom_wnd, "Dom "..wlasciciel)
            if getAccountName(localPlayer) == wlasciciel then
                guiSetProperty(self.dom_sprzedaj_btn, "Disabled", "False")
                guiSetProperty(self.dom_otworz_btn, "Disabled", "False")
                guiSetProperty(self.dom_otworzg_btn, "Disabled", "False")
                guiSetProperty(self.dom_przedluz_btn, "Disabled", "False")
                guiSetProperty(self.dom_kup_btn, "Disabled", "True")
            else
                guiSetProperty(self.dom_sprzedaj_btn, "Disabled", "True")
                guiSetProperty(self.dom_otworz_btn, "Disabled", "True")
                guiSetProperty(self.dom_otworzg_btn, "Disabled", "True")
                guiSetProperty(self.dom_przedluz_btn, "Disabled", "True")
                guiSetProperty(self.dom_kup_btn, "Disabled", "True")
            end
        else
            guiSetText(self.dom_wnd, "Dom do wynaj?cia")
            guiSetProperty(self.dom_sprzedaj_btn, "Disabled", "True")
            guiSetProperty(self.dom_otworz_btn, "Disabled", "True")
            guiSetProperty(self.dom_otworzg_btn, "Disabled", "True")
            guiSetProperty(self.dom_przedluz_btn, "Disabled", "True")
            guiSetProperty(self.dom_kup_btn, "Disabled", "False")
        end

        guiSetText(self.dom_lbl_info, "W?a?ciciel: "..tostring(wlasciciel).."\nCena: $"..tostring(cena).." dziennie\nGara?: "..garaz.."\n\nAby zamkn?? kliknij poza okno.")
    end
    addEvent("domki:showWindow", true)
    addEventHandler("domki:showWindow", root, function() object:show() end)

    function object:isCursorInArea( cursorX, cursorY, minX, minY, maxX, maxY )
        if cursorX < minX or cursorX > maxX or
           cursorY < minY or cursorY > maxY
        then
            return false
        end
        return true
    end
    
    function object:checkClicks(_, state, cursorX, cursorY)
        local wx, wy = guiGetPosition(self.dom_wnd, false)
        local ww, wh = guiGetSize(self.dom_wnd, false)
        local isOutsideWindow = self:isCursorInArea(cursorX, cursorY, wx, wy, wx+ww, wy+wh)
        if guiGetVisible(self.dom_buy_wnd) then return end
        if guiGetVisible(self.dom_przedluz_wnd) then return end
        if guiGetVisible(self.dom_sprzedaj_wnd) then return end
        if not isOutsideWindow and guiGetVisible(self.dom_wnd) then
            self:show()
        end
    end
    addEventHandler("onClientClick", root, function(a, b, c, d) object:checkClicks(a, b, c, d) end)
    
    function object:checkGUIClicks()
        if source == self.dom_wejdz_btn then
            self:show()
            fadeCamera(false, 2.0)
            setTimer(
                function()
                    triggerServerEvent("domki:enterInterior", resourceRoot, self.currentMarker)
                end, 2000, 1);
        elseif source == self.dom_kup_btn then
            if getElementData(self.currentMarker, "dom:garaz") and not getElementData(localPlayer, "vip") then outputChatBox("Musisz mie? konto VIP") return end
            guiSetVisible(self.dom_buy_wnd, true);
        elseif source == self.dom_buy_anuluj then
            guiSetVisible(self.dom_buy_wnd, false);
        elseif source == self.dom_finalkup_wnd then
            local money = getElementData(localPlayer, "GP");
            if not self.finalPrice then return end
            if money < self.finalPrice then
                outputChatBox("Masz za ma?o pieni?dzy na kupno tego domu!", 255, 0, 0)
                return
            end
            
            triggerServerEvent("domki:buyHouse", resourceRoot, self.finalPrice, self.currentMarker, self.finalTime)
            guiSetVisible(self.dom_buy_wnd, false);
            self:show()
        elseif source == self.dom_otworzg_btn then
            triggerServerEvent("domki:openGarage", resourceRoot, self.garazID)
        elseif source == self.dom_otworz_btn then
            local state = getElementData(self.currentMarker, "dom:open")
            if state == true then
                outputChatBox("Zamkn??e? dom. Inni nie mog? teraz do niego wchodzi?.")
                setElementData(self.currentMarker, "dom:open", false)
            elseif state == false then
                outputChatBox("Otworzy?e? dom. Wszyscy mog? teraz do niego wchodzi?.")
                setElementData(self.currentMarker, "dom:open", true)
            end
        elseif source == self.dom_przedluz_btn then
            if getElementData(self.currentMarker, "dom:garaz") and not getElementData(localPlayer, "vip") then outputChatBox("Musisz mie? konto VIP") return end
            guiSetVisible(self.dom_przedluz_wnd, true)
        elseif source == self.dom_przedluz_anuluj then
            guiSetVisible(self.dom_przedluz_wnd, false)
        elseif source == self.dom_finalprzedluz_btn then
            local money = getElementData(localPlayer, "GP");
            if not self.finalPrice then return end
            if money < self.finalPrice then
                outputChatBox("Masz za ma?o pieni?dzy na przed?u?enie tego domu!", 255, 0, 0)
                return
            end
            
            triggerServerEvent("domki:przedluz", resourceRoot, self.finalPrice, self.currentMarker, self.finalTime)
            guiSetVisible(self.dom_przedluz_wnd, false)
            self:show()
        elseif source == self.dom_sprzedaj_btn then
            local time = getElementData(self.currentMarker, "dom:timestamp")
            local realTimestamp = getRealTime().timestamp
            time = getRealTime(time).timestamp
            local days = getRealTime(time - realTimestamp).yearday
            if days < 1 then days = 1 end
            
            local price = (days*self.currentPrice)/2
            self.finalPrice = price
            
            guiSetText(self.dom_sprzedaj_info, "Mo?esz sprzeda? ten dom za "..tostring(price).."$.")
            guiSetVisible(self.dom_sprzedaj_wnd, true)
        elseif source == self.dom_sprzedaj_tak then
            triggerServerEvent("domki:sellHouse", resourceRoot, self.finalPrice, self.currentMarker)
            guiSetVisible(self.dom_sprzedaj_wnd, false)
        end
    end
    addEventHandler("onClientGUIClick", root, function() object:checkGUIClicks() end)

    
    function object:render()
        -- update kupna
        if guiGetVisible(self.dom_buy_wnd) then
            local str = guiGetText(self.dom_dni_edit)
            local check = tonumber(str)
            if check == nil then
                guiSetText(self.dom_dni_edit, "")
                guiSetText(self.dom_kwota, "Kwota ko?cowa: brak danych")
                self.finalPrice = false;
            elseif type(check) == "number" then
                if check == 0 then
                    guiSetText(self.dom_dni_edit, "")
                    guiSetText(self.dom_kwota, "Kwota ko?cowa: brak danych")
                    self.finalPrice = false
                end
                
                guiSetText(self.dom_kwota, "Kwota ko?cowa: "..tostring(check).." * $"..tostring(self.currentPrice).." = $"..tostring(check * self.currentPrice))
                self.finalPrice = check * self.currentPrice
                self.finalTime = check
            end
            
            if string.len(str) > 3 then
                guiSetText(self.dom_dni_edit, "")
                guiSetText(self.dom_kwota, "Kwota ko?cowa: brak danych")
                self.finalPrice = false
            end
            
        end
        
        if guiGetVisible(self.dom_przedluz_wnd) then
            local str = guiGetText(self.dom_dniprzedluz_edit)
            local check = tonumber(str)
            if check == nil then
                guiSetText(self.dom_dniprzedluz_edit, "")
                guiSetText(self.dom_kwotaprzedluz, "Kwota ko?cowa: brak danych")
                self.finalPrice = false;
            elseif type(check) == "number" then
                if check == 0 then
                    guiSetText(self.dom_dniprzedluz_edit, "")
                    guiSetText(self.dom_kwotaprzedluz, "Kwota ko?cowa: brak danych")
                    self.finalPrice = false
                end
                
                guiSetText(self.dom_kwotaprzedluz, "Kwota ko?cowa: "..tostring(check).." * $"..tostring(self.currentPrice).." = $"..tostring(check * self.currentPrice))
                self.finalPrice = check * self.currentPrice
                self.finalTime = check
            end
            
            if string.len(str) > 3 then
                guiSetText(self.dom_dniprzedluz_edit, "")
                guiSetText(self.dom_kwotaprzedluz, "Kwota ko?cowa: brak danych")
                self.finalPrice = false
            end
        end
        
        for k,v in ipairs(getElementsByType("pickup")) do
            if getElementData(v, "dom") then
                local x, y, z = getElementPosition(v)
                local x2, y2, z2 = getElementPosition(localPlayer)
                if isLineOfSightClear(x, y, z, x2, y2, z2, true, true, false, true) then
                    z = z+0.5
                    local sx, sy = getScreenFromWorldPosition(x, y, z)
                    if sx and sy then
                        local dist = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2)
                        if dist > 15 then return end
                        local font_size = 1.5-(dist/10)
                        -- rysowanie tekstu
                        local wlasciciel = getElementData(v, "dom:wlasciciel") or "Brak"
                        local cena = getElementData(v, "dom:cena") or "0"
                        local garaz = getElementData(v, "dom:garaz")
                        local time = getElementData(v, "dom:timestamp")
            
                        
                        if garaz then
                            garaz = "Ten dom posiada gara?."
                        else
                            garaz = "Ten dom nie posiada gara?u."
                        end
                        
                        if wlasciciel == "Brak" then
                            dxDrawText("Dom do wynaj?cia\nW?a?ciciel: "..wlasciciel.."\nCena za dzie?: $"..cena.."\n"..garaz, sx+1, sy+1, sx, sy, tocolor(0, 0, 0, 200), font_size, "default-bold", "center")
                            dxDrawText("Dom do wynaj?cia\nW?a?ciciel: "..wlasciciel.."\nCena za dzie?: $"..cena.."\n"..garaz, sx+2, sy+2, sx, sy, tocolor(255, 255, 255, 200), font_size, "default-bold", "center")
                        else
                            local realTimestamp = getRealTime().timestamp
                            time = getRealTime(time).timestamp
                            if time - realTimestamp < 0 then return end
                            local days = getRealTime(time - realTimestamp).yearday
                            local czas_string
                            if days == 0 then
                                czas_string = "| Pozosta? mniej ni? jeden dzie? wynaj?cia."
                            elseif days < 2 then
                                czas_string = "| Pozosta? oko?o "..tostring(days).." dzie? wynaj?cia."
                            else
                                czas_string = "| Pozosta?o oko?o "..tostring(days).." dni wynaj?cia."
                            end
                            
                            dxDrawText("Dom wynaj?ty "..czas_string.."\nW?a?ciciel: "..wlasciciel.."\n"..garaz, sx+1, sy+1, sx, sy, tocolor(0, 0, 0, 200), font_size, "default-bold", "center")
                            dxDrawText("Dom wynaj?ty "..czas_string.."\nW?a?ciciel: "..wlasciciel.."\n"..garaz, sx+2, sy+2, sx, sy, tocolor(255, 255, 255, 200), font_size, "default-bold", "center")
                        end
                    end
                end
            end
        end
    end
    addEventHandler("onClientRender", root, function() object:render() end)
    
    return object;
end
CDomki();


dla informacji, server przedtem wygladal tak:
https://pastebin.com/raw/rqyAu4yW

Podpis

Znajdź mnie na:
Steamie
GitHubie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-17, 20:03


_jvneczek







Wiek: 22
Na forum: 4466 dni
Posty: 1509
Nick w MP: _jvneczek

Piwa: 3960

Respekt: 337,5
Respekt: 337,5Respekt: 337,5Respekt: 337,5


function object:openGarage(garaz)
    local garazyk = getElementData(garaz, "dom:garaz")
   local id = getElementData(garaz, "domek:id")
   if garazyk then 
   if id == 11 then 
    moveObject(garazeDayZ.jakis, 1000, 1353.66, -626.34, 109.13-10)
end 

sprawdzasz if elementdata domek:id == 11 then
wi?c nic dziwnego ze nie otworzy, jesli twoj dom ma inn? elementdate np domek:id == 1, to nie otworzy.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-17, 20:18


xyzzz^

A nic






Wiek: 19
Na forum: 2134 dni
Posty: 319
Nick w MP: Aspyk21

Piwa: 310

Respekt: 81

Ostrzeżeń: 100%
"satan_" napisał/a:


function object:openGarage(garaz)
    local garazyk = getElementData(garaz, "dom:garaz")
   local id = getElementData(garaz, "domek:id")
   if garazyk then 
   if id == 11 then 
    moveObject(garazeDayZ.jakis, 1000, 1353.66, -626.34, 109.13-10)
end 

sprawdzasz if elementdata domek:id == 11 then
wi?c nic dziwnego ze nie otworzy, jesli twoj dom ma inn? elementdate np domek:id == 1, to nie otworzy.


O czym ty m?wisz? dom na nadane ID, to co mi da?e? nie zmienia nic, brame ci?gle tworzy?o

Podpis

Znajdź mnie na:
Steamie
GitHubie

Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-19, 19:14


AmLotte.







Wiek: 21
Na forum: 2325 dni
Posty: 134
Nick w MP: AmLotte

Piwa: 443

Respekt: 50

"Aw4ke" napisał/a:

"satan_" napisał/a:


function object:openGarage(garaz)
    local garazyk = getElementData(garaz, "dom:garaz")
   local id = getElementData(garaz, "domek:id")
   if garazyk then 
   if id == 11 then 
    moveObject(garazeDayZ.jakis, 1000, 1353.66, -626.34, 109.13-10)
end 

sprawdzasz if elementdata domek:id == 11 then
wi?c nic dziwnego ze nie otworzy, jesli twoj dom ma inn? elementdate np domek:id == 1, to nie otworzy.


O czym ty m?wisz? dom na nadane ID, to co mi da?e? nie zmienia nic, brame ci?gle tworzy?o


Brame mog?o utworzy? to prawda bo to tylko model a tutaj moveObject przeuswasz utworzony model tzncz. w twoim przypadku garazeDayz.jakis, tak?e szatan m?wi dobrze, lepiej sprawdz elementdate domku w kt?rym aktualnie jeste? b?d? masz otwarty panel i wtedy zrobi? if id == 11 then tak jak u ciebie. sp?jrz na id domku w kt?rym chcesz umie?ci? t? mo?liwo??

Postaw piwo autorowi tego posta
 

 
Tagi: brama :: sie :: nie :: otwiera
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » brama sie nie otwiera 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