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

Wysłany: 2019-11-26, 19:46


Josemitek







Wiek: 26
Na forum: 2404 dni
Posty: 17
Nick w MP: Josek



Respekt: 50

Witam, pr?buj? zrobi? skrypt na przesuwanie si? obiektu (chodzi o drzwi) i chc? to zrobi? tak by po wejsciu w marker, wyswietla nam sie gui, jesli klikniemy "otworz" otwieraja sie drzwi, jesli "zamknij" to zamykaja.
GUIEditor = {
    button = {},
    window = {}
}
addEventHandler("onClientResourceStart"resourceRoot,
    function()
        GUIEditor.window[1] = guiCreateWindow(1063423194308"Otw?rz/zamknij drzwi PSP"false)
        guiWindowSetSizable(GUIEditor.window[1], false)

        GUIEditor.button[1] = guiCreateButton(297613979"Otw?rz"falseGUIEditor.window[1])
        GUIEditor.button[2] = guiCreateButton(2918913979"Zamknij"falseGUIEditor.window[1]) 
        guiSetVisible(GUIEditor.window[1], false)
    end
)

function isPlayerInPSP(plr)
 local idb=getElementData(plr,'player:idb')
 if not sid then return end

 local result=exports['database']:dbGet('SELECT 1 FROM factions WHERE code=? AND idb=? LIMIT 1;'"PSP"idb)
 if result[1then
  return true
 else
  return false
 end
end

local gate createObject 3089,-239.301205.2319.74,0,0,90)
local marker createMarker(-247.851201.8218.59'cylinder',  1.52552550170)
local marker2 createMarker(-254.281200.8718.59'cylinder',  1.52552550170)
setElementDimension(gate,0)
setElementDimension(marker,0)
setElementDimension(marker2,0)


function hit(playerid)
    if isElementWithinMarker(playeridmarkerthen
    if isPlayerInPSP(playerid)
        guiSetVisible(GUIEditor.window[1], true)
        end
    elseif isElementWithinMarker(playeridmarker2then
        if isPlayerInPSP(playerid)
            guiSetVisible(GUIEditor.window[1], true)
    end
    end
end
addEventHandler("onMarkerHit",marker,hit)

function wyszedl()
    guiSetVisible(GUIEditor.window[1], false)
end
addEventHandler("onMarkerLeave"markerwyszedl)


Mam co? takiego i niestety po wejsciu w marker nie wyswietla mi sie gui nawet. Nie skonczylem go robic i chcialem sprawdzic czy dzia?a wyswietlanie/znikanie gui. Prosi? bym o pomoc, czemu mi nie wyswietla si? to gui po wejsciu w marker ?

Ostatnio zmieniony przez Josemitek 2019-11-26, 19:52, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-11-26, 19:51


Wilq







Wiek: 24
Na forum: 4429 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Po kliencie jest tylko

Więcej informacji znajdziesz w Wikipedii MTA:

onClientMarkerHit


Drugi argument addEventHandler oznacza marker, z kt?rym tylko i wy??cznie wykona si? funkcja podpi?ta pod ten sam event. Je?li chcesz tam obs?u?y? oba markery, wstaw tam "getRootElement()". Tak samo w "onClientMarkerLeave".

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Josemitek
Wysłany: 2019-11-28, 22:23


Josemitek







Wiek: 26
Na forum: 2404 dni
Posty: 17
Nick w MP: Josek



Respekt: 50

Zmienilem calkowicie kod, dzia?a ju? prawie, tylko jak dodaje sprawdzenie czy gracz jest w frakcji (nie na sluzbie tylko czy dodany jest w frakcji) to niestety nie dzia?a. Nie wywala b??du a te? nie dzia?a. W bazie danych jestem dodany.

SERVERSIDE 
SPRAWDZENIE- 
function isPlayerInPSP(plr)
    local idb=getElementData(plr,'player:idb')
    if not idb then return end

    local result=exports['database']:dbGet('SELECT 1 FROM factions WHERE code=? AND idb=? LIMIT 1;'"PSP"idb)
    if result[1then
        return true
    else
        return false
    end
end
-----------------------------------------


addEvent("gatetoogle"true)
addEventHandler("gatetoogle"root, function(elplayer)
    if not player then return end
    if isPlayerInPSP(playerthen

        if gate.animation then
            return
        end

        if gate.closed then
            gate.open()

            setTimer(function()
                gate.close()
            end80001)
        end
    end
end)

CLIENTSIDE bindKey("k""down", function(el)
triggerServerEvent("gatetoogle"rootel)
end)


Nie podaje calego kodu, poniewa? gdy nie ma sprawdzenia isPlayerInPSP to kod dzia?a normalnie.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-11-29, 18:09


Wilq







Wiek: 24
Na forum: 4429 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Pytanie, czy eksport funkcji dbGet w skrypcie database jest przystosowany (w mecie) dla klienta.

Poczytaj tutaj:

Więcej informacji znajdziesz w Wikipedii MTA:

call

You cannot call a server function from the client or vice versa. See triggerServerEvent and triggerClientEvent for possibilities to do that.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Josemitek
Wysłany: 2019-11-29, 18:36


Josemitek







Wiek: 26
Na forum: 2404 dni
Posty: 17
Nick w MP: Josek



Respekt: 50

dbGet jest po stronie serwera tylko, uzywa funkcji dbQuery i dbPool, kt?re sa tylko po stronie serwera :/

Postaw piwo autorowi tego posta
 

 
Wysłany: 2019-11-29, 18:40


Wilq







Wiek: 24
Na forum: 4429 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

No to widzisz, sam sobie odpowiedzia?e?.

Wi?c albo u?yjesz

Więcej informacji znajdziesz w Wikipedii MTA:

triggerServerEvent

albo dodasz kolejn? elementDat?, w kt?rej zapiszesz stan frakcji gracza.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Josemitek
Wysłany: 2019-12-01, 10:39


Josemitek







Wiek: 26
Na forum: 2404 dni
Posty: 17
Nick w MP: Josek



Respekt: 50

"Wilq" napisał/a:

No to widzisz, sam sobie odpowiedzia?e?.

Wi?c albo u?yjesz

Więcej informacji znajdziesz w Wikipedii MTA:

triggerServerEvent

albo dodasz kolejn? elementDat?, w kt?rej zapiszesz stan frakcji gracza.

Git, dziala :D

Postaw piwo autorowi tego posta
 

 
Tagi: wejście :: marker :: wyswietlanie :: gui :: przesuwanie :: obiektu
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






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