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: 2545 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(1063, 423, 194, 308, "Otw?rz/zamknij drzwi PSP", false)
        guiWindowSetSizable(GUIEditor.window[1], false)

        GUIEditor.button[1] = guiCreateButton(29, 76, 139, 79, "Otw?rz", false, GUIEditor.window[1])
        GUIEditor.button[2] = guiCreateButton(29, 189, 139, 79, "Zamknij", false, GUIEditor.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[1] then
  return true
 else
  return false
 end
end

local gate = createObject ( 3089,-239.30, 1205.23, 19.74,0,0,90)
local marker = createMarker(-247.85, 1201.82, 18.59, 'cylinder',  1.5, 255, 255, 0, 170)
local marker2 = createMarker(-254.28, 1200.87, 18.59, 'cylinder',  1.5, 255, 255, 0, 170)
setElementDimension(gate,0)
setElementDimension(marker,0)
setElementDimension(marker2,0)


function hit(playerid)
    if isElementWithinMarker(playerid, marker) then
    if isPlayerInPSP(playerid)
        guiSetVisible(GUIEditor.window[1], true)
        end
    elseif isElementWithinMarker(playerid, marker2) then
        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", marker, wyszedl)


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: 4569 dni
Posty: 3409

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: 2545 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[1] then
        return true
    else
        return false
    end
end
-----------------------------------------


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

        if gate.animation then
            return
        end

        if gate.closed then
            gate.open()

            setTimer(function()
                gate.close()
            end, 8000, 1)
        end
    end
end)

CLIENTSIDE - 
bindKey("k", "down", function(el)
triggerServerEvent("gatetoogle", root, el)
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: 4569 dni
Posty: 3409

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: 2545 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: 4569 dni
Posty: 3409

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: 2545 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