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

Wysłany: 2018-12-13, 21:28


AsterBonzo

Otwórz ogień






Wiek: 21
Na forum: 3110 dni
Posty: 187
Nick w MP: Hirahi

Piwa: 61

Respekt: 35,8

Witam tak jak w temacie zrobi?em sobie okno i chce je podmieni? na gui nie wiem jak to zrobi? jak uda mi si? zrobi? piwko i respekt a jak nie uda to tylko piwko za pomoc :)


local I=0
local D=0

--wykorzystujemy zmienne:
--UM_HOUSE_ID
--UM_HOUSE_CENA

local marker=createMarker(1663.23, -1650.35, 14.25-1,"cylinder",1.5,50,90,255,75)
setElementInterior(marker,0)

local infowin = guiCreateWindow(0.7531,0.3479,0.2109,0.3792,"Kupno domku ( Kursor - F4 )",true)
local infowinlbl = guiCreateLabel(0.037,0.1209,0.9185,0.1,"", true, infowin)
local infoedit=guiCreateEdit(0.037, 0.3, 0.9185, 0.1, "ID DOMU", true, infowin)
local infobtn=guiCreateButton(0.037, 0.5, 0.9185, 0.2, "Nast?pny krok (1/3)", true, infowin)

guiLabelSetHorizontalAlign(infowinlbl,"center",true)
guiSetFont(infowinlbl,"default-small")
guiSetVisible(infowin, false)

addEventHandler("onClientMarkerHit", marker, function(el,md)
    if (el~=localPlayer or not md) then return end
    local _,_,z=getElementPosition(localPlayer)
    local _,_,z2=getElementPosition(source)
    if (math.abs(z2-z)>5) then return end
    guiSetText(infobtn, "Nast?pny krok (1/3)")
    guiSetText(infoedit, "ID DOMU")
    guiSetText(infowinlbl, "")
    guiSetVisible(infowin, true)
    umlasttick = getTickCount()
end)

addEventHandler("onClientMarkerLeave", marker, function(el,md)
    if (el~=localPlayer) then return end
    guiSetVisible(infowin, false)
    guiSetText(infoedit, "")
end)

addEventHandler("onClientGUIClick", infobtn, function()
    if getTickCount()-umlasttick < 2000 then return end
    local text = guiGetText(infoedit)
    local btntext = guiGetText(infobtn)
    if btntext=="Nast?pny krok (1/3)" then
        if string.len(text)<=0 then return end
        guiSetText(infoedit, "CZAS WYNAJMU")
        UM_HOUSE_ID = text
        guiSetEnabled(infobtn, false)
        guiSetText(infobtn, "Nast?pny krok (2/3)")
        triggerServerEvent("onUmDomyWantInfo", localPlayer, tonumber(text))
    elseif btntext=="Nast?pny krok (2/3)" then
        if tonumber(text)<=0 or tonumber(text)>14 then guiSetText(infowinlbl, "Maksymalny czas wynajmu to 14 dni!") return end
        UM_HOUSE_DNI = text
        guiSetText(infoedit, "")
        guiSetText(infowinlbl, "Potwierd? zakup - \n"..tonumber(UM_HOUSE_CENA)*tonumber(UM_HOUSE_DNI))
        guiSetText(infobtn, "Zakup")
    elseif btntext == "Zakup" then
        --hehe
        local money = getPlayerMoney(localPlayer)
        local koszt = tonumber(UM_HOUSE_CENA)*tonumber(UM_HOUSE_DNI)
        if money-koszt < 0 then outputChatBox("(( Nie sta? ci? na to! ))") end
        guiSetText(infobtn, "Nast?pny krok (1/3)")
        guiSetText(infoedit, "ID DOMU")
        guiSetText(infowinlbl, "")
        triggerServerEvent("onHousePaymentRequest", getRootElement(), tonumber(UM_HOUSE_ID), tonumber(UM_HOUSE_DNI))
    end
    playSoundFrontEnd(40)
end,false)


addEvent("onUmDomyWantInfoCompleted", true)
addEventHandler("onUmDomyWantInfoCompleted", getRootElement(), function(v)
    if not v then guiSetText(infowinlbl, "B??d") guiSetText(infoedit, "ID DOMU") guiSetText(infobtn, "Nast?pny krok (1/3)") guiSetEnabled(infobtn, true) return end
    house_info = ""
    if v.ownerid or v.paidTo then guiSetText(infobtn, "Nast?pny krok (1/3)") guiSetText(infoedit, "ID DOMU") house_info = house_info.."\n--Dom jest ju? wynaj?ty!--" guiSetEnabled(infobtn, true) end
    house_info = house_info.."\nKoszt wynajmu na dzie?: "..(v.koszt/100)*2
    guiSetText(infowinlbl, house_info)
    UM_HOUSE_CENA = (v.koszt/100)*2
    guiSetEnabled(infobtn, true)
end)

bindKey("F4","down",function()
el=localPlayer
if not getElementData(el,"kursor") then
showCursor(true)
setElementData(el,"kursor",true)
else
showCursor(false)
setElementData(el,"kursor",false)
end
end)


EDIT: chodzi mi o usuni?cie zwyk?ego gui i danie go jako grafik?

Podpis

Pomagam jak potrafię :)

Ostatnio zmieniony przez AsterBonzo 2018-12-13, 21:56, w całości zmieniany 2 razy  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-13, 21:35


Wilq







Wiek: 24
Na forum: 4570 dni
Posty: 3409

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Ee co? Masz ju? GUI, zastan?w si? przed napisaniem posta okej?

Więcej informacji znajdziesz w Wikipedii MTA:

Introduction to Scripting the GUI


Chodzi?o Ci o wykorzystanie funkcji DirectX?

Podstawowe funkcje z DirectX poni?ej:

Więcej informacji znajdziesz w Wikipedii MTA:

dxDrawText


Więcej informacji znajdziesz w Wikipedii MTA:

dxDrawRectangle


Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-13, 21:55


AsterBonzo

Otwórz ogień






Wiek: 21
Na forum: 3110 dni
Posty: 187
Nick w MP: Hirahi

Piwa: 61

Respekt: 35,8

Chodzi mi o grafik? zamiast stanadr gui

Podpis

Pomagam jak potrafię :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-13, 22:25


Wilq







Wiek: 24
Na forum: 4570 dni
Posty: 3409

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Wykorzystaj funkcje DirectX jak ju? wspomnia?em, m.in:

Więcej informacji znajdziesz w Wikipedii MTA:

dxDrawImage


Więcej informacji znajdziesz w Wikipedii MTA:

dxDrawText


Więcej informacji znajdziesz w Wikipedii MTA:

dxDrawRectangle


Wszystko pod eventem:

Więcej informacji znajdziesz w Wikipedii MTA:

onClientRender


Jak ju? chcesz prowadzi? pseudola to w??? troch? pracy od siebie. ; )

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-13, 22:30


AsterBonzo

Otwórz ogień






Wiek: 21
Na forum: 3110 dni
Posty: 187
Nick w MP: Hirahi

Piwa: 61

Respekt: 35,8

Nie wiem jak to do kodu doda? i gdzie jak bym wiedzia? gdzie ty by? doda? , mg ci? prosi? o to ?

Daj piwko i respekt :)

Podpis

Pomagam jak potrafię :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-13, 22:32


Avenged

Młodszy Szkrypter






Wiek: 24
Na forum: 3652 dni
Posty: 654
Nick w MP: Avenged

Piwa: 1572

Respekt: 326,3
Respekt: 326,3Respekt: 326,3Respekt: 326,3

Mo?e od razu za Ciebie zrobimy pseudola, je?li chcesz co? osi?gn?? to musisz si? postara?. W funkcji

Więcej informacji znajdziesz w Wikipedii MTA:

dxDrawImage
masz podany przyk?ad jak tego u?y?..

Podpis
LUA, JS, PHP



Zapraszam do skorzystania z moich usług: Klik

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
AsterBonzo
Wysłany: 2018-12-13, 22:48


AsterBonzo

Otwórz ogień






Wiek: 21
Na forum: 3110 dni
Posty: 187
Nick w MP: Hirahi

Piwa: 61

Respekt: 35,8

Robi? co mog? ale mi nie wychodzi :(

Podpis

Pomagam jak potrafię :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-13, 22:55


Avenged

Młodszy Szkrypter






Wiek: 24
Na forum: 3652 dni
Posty: 654
Nick w MP: Avenged

Piwa: 1572

Respekt: 326,3
Respekt: 326,3Respekt: 326,3Respekt: 326,3

DjMaXimoMax, najlepiej uczy? si? na b??dach :D

Podpis
LUA, JS, PHP



Zapraszam do skorzystania z moich usług: Klik

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-14, 14:20


AsterBonzo

Otwórz ogień






Wiek: 21
Na forum: 3110 dni
Posty: 187
Nick w MP: Hirahi

Piwa: 61

Respekt: 35,8

Dam piwko respekt !! Kto mi wyt?umaczy jak i co doda? tam

Podpis

Pomagam jak potrafię :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-14, 17:04


Nexisten

Moderator






Wiek: 22
Na forum: 4249 dni
Posty: 552
Nick w MP: Nexisten

Piwa: 1486

Respekt: 287,3
Respekt: 287,3Respekt: 287,3Respekt: 287,3

Zosta?o Ci wyt?umaczone co masz zrobi? - zapewne nawet nie przeczyta?e? co te funkcje robi? ani nie pr?bowa?e? ich u?y? np. z przyk?ad?w.

Nikt za Ciebie nie zrobi ca?ej roboty, postaraj si? troch? i chocia? pr?buj, publikuj?c tutaj nam Tw?j powoli zmieniaj?cy si? kod z b??dami na /debugscript 3 a dostaniesz porady.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
AsterBonzo
Wysłany: 2018-12-14, 17:23


adaskOO

Ten który patrzy






Wiek: 24
Na forum: 3873 dni
Posty: 249
Nick w MP: adaskOO

Piwa: 3172

Respekt: 280
Respekt: 280Respekt: 280Respekt: 280

Wyt?umaczy?em to po "mojemu" nie wiem czy co? zrozumiesz, ale mam nadzieje ?e tak, je?eli jest tutaj jaki? b??d lub jest ca?e ?le to bez t?umaczenia przyjm? ostrze?enie. Robi?em o na szybko. Pozdrawiam


--[[ Wst?p --]]

okno = false -- Ustala okno jako false, potrzebne aby ustali? czy gracz ma otwarte okno czy zamkn?te.

-- Na pocz?tek tworzymy nasze dx w GuiEditorze. Tak wygl?da moje:
function drawDX()
    dxDrawImage(345, 265, 587, 491, "img/background1.png", 0, 0, 0, tocolor(255, 255, 255, 255), false)
end




-----------------------------------------------------------
--[[ Jak Otwiera? Okno z dx --]]

-- Funkcja odpowaidaj?ca za pokazywanie si? twojego GUI za pomoc? przycisku.
function openDXGUI()
  if okno == false then -- Je?eli okno jest zamkni?te wtedy:
    okno = true -- Czyli moje okno jest uznane za otwarte
    addEventHandler("onClientRender", root, drawDX) -- Event kt?ry pokazuje GUI, na ko?cu znajduje si? nazwa funkcji w kt?rej mam moje DxDraw
    showCursor(true) -- pokazuje kursor
  else
    okno = false -- Czyli moje okno jest uznane za zamkni?te
    removeEventHandler("onClientRender", root, drawDX) -- Usuwa twoje GUI z ekranu
    showCursor(false) -- Chowa kursor
  end
end
bindKey ("F2", "down", openDXGUI) -- Po klikni?ciu F2 wykonuje funkcje openDXDraw czyli otwiera/zamyka okno



-- Funkcja odpowiadaj?ca za wy?wietlanie Gui po wej?ciu w marker.

marker = createMarker(x, y, z, "cylinder", wielko??, R, G, B, Alpha) -- tworzy marker
function wlaczDX()
    if okno == false then else return end -- Je?eli okno jest otwarte wtedy w innym przypadku zwr?? end czyli koniec
     addEventHandler("onClientRender", root, dxDrawGUI) -- event odpowiada za wy?wietlanie twojego okna
     showCursor(true) -- pokazuje kursor
     okno = true -- Ustala okno jako zamikni?te
end
addEventHandler("onClientMarkerHit", marker, wlaczDX) -- Event odpowiada za u?ycie funkcji "wlaczDX" po tym jak gracz wejdzie w marker o nazwie "marker"

---------------------------------------------------------
--[[ Jak stworzy? przycisk? --]]

-- Na pocz?tek potrzebujemy funkcji kt?ra okre?l pozycje na kt?rej znajdowa? b?dzie sie obszar po kt?rego wci?nieciu wykona si? funkcja kt?r? wykonywa? b?dzie dany przycisk. Tak ona wygl?da:

function cursorPosition(x, y, w, h) 
    if (not isCursorShowing()) then 
    return false 
    end 
    local mx, my = getCursorPosition() 
    local fullx, fully = guiGetScreenSize() 
    cursorx, cursory = mx*fullx, my*fully 
        if cursorx > x and cursorx < x + w and cursory > y and cursory < y + h then 
        return true 
        else 
        return false 
        end 
end

-- Ty z niej potrzebujesz tylko "cursorPosition(x, y, w, h) ". Przechodzimy dalej i g??biej.

-- Teraz u?yjemy eventu "onClientClick"
addEventHandler("onClientClick", root, function(btn, stt) -- Je?eli gracz wci?nie oboj?tnie jaki klawisz myszy wtedy:
    if btn == "left" and stt == "down" then -- je?eli argument btn r?wna si? prawy przycisk i arguent stt r?wna si? jedno wci?ni?cie wtedy:
        if okno == true then else return end -- je?eli okno jest zamkni?te wtedy: w innym przypadku zwr?? end.
        if cursorPosition(x, y, w, h) then -- Je?eli kursor znajduje si? w w obszarze okre?lonym jako "x, y, w, h" wtedy:
            -- Tutaj poka?e ci przyk?ad zamykania okna.
            removeEventHandler("onClientRender", root, drawDX) -- usuwa widoczno?? twojego dx Draw
            showCursor(false) -- schowaj kursor
            okno = false -- Okno ustala jako zamkni?te czyli false
        end
    end
end)


Podpis

Zapraszam do współpracy :)
Discord: adaskOO#8255
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
AsterBonzo
Wysłany: 2018-12-14, 21:38


AsterBonzo

Otwórz ogień






Wiek: 21
Na forum: 3110 dni
Posty: 187
Nick w MP: Hirahi

Piwa: 61

Respekt: 35,8

A ja nie wiem jak zapisa? to w guiEditorze pomo?esz ?

Podpis

Pomagam jak potrafię :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-14, 22:12


Wilq







Wiek: 24
Na forum: 4570 dni
Posty: 3409

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Po wpisaniu komendy /guied, kliknij prawy przycisk myszy i wybierz 'output'.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-15, 16:53


AsterBonzo

Otwórz ogień






Wiek: 21
Na forum: 3110 dni
Posty: 187
Nick w MP: Hirahi

Piwa: 61

Respekt: 35,8

Dobra pr?bowa?em ale mi si? nie uda?o my?l? ?e nie zrozumiem tego.

Podpis

Pomagam jak potrafię :)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-12-15, 17:00


Nexisten

Moderator






Wiek: 22
Na forum: 4249 dni
Posty: 552
Nick w MP: Nexisten

Piwa: 1486

Respekt: 287,3
Respekt: 287,3Respekt: 287,3Respekt: 287,3

Napisz kod, wy?lij go nam i podaj b??dy z /debugscript 3 - dosta?e? wystarczaj?co przyk?ad?w.

Postaw piwo autorowi tego posta
 

 
Tagi: jak :: podmieć :: gui
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