Hazır GUI Fonksiyonları (pxLib)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Paradox

  • Kurucu
  • *
    • İleti: 684
  • SH Gaming
: 08 Mayıs 2017, 16:32:49
Kullanımı:

Kod: lua
panelOlustur(x,y,genislik,uzunluk,panel adı,r,g,b,[ortalama])
Spoiler for Hiden:
x = Panelin oluşturulacağı x koordinatı
y = Panelin oluşturulacağı x koordinatı
genislik = Panelin genişliği
uzunluk = Panelin uzunluğu
panelOlustur = Panelin adı
r,g,b = Panelin renk kodları
ortalama = Eğer true yapılırsa panel otomatik olarak ortalanır

Kod: lua
butonOlustur(x,y,genislik,uzunluk,buton adı,r,g,b,[GUI])
Spoiler for Hiden:
x = Butonun oluşturulacağı x koordinatı
y = Butonun oluşturulacağı x koordinatı
genislik = Butonun genişliği
uzunluk = Butonun uzunluğu
panel adı = Butonun adı
r,g,b = Butonun renk kodları
GUI = İçine yazılacak GUI elementi

pxLib: Linki görebilmek için Kayıt olun yada Giriş yapın.
Spoiler for Hiden:
Kod: lua
-- www.MTASA-TURK.com
-- Paradox

pxLib = {
    panelust = {},
    panel = {},
panel_label = {},
buton = {},
buton_arkaplan = {},
panelsayi = 0,
butonsayi = 0
}

function panelOlustur(x,y,x2,y2,ad,r,g,b,ortalama)
    if x and y and x2 and y2 and ad and r and g and b then
    pxLib.panelsayi = pxLib.panelsayi + 1
    pxLib.panel[pxLib.panelsayi] = guiCreateStaticImage(x,y+22,x2,y2, "resimler/arkaplan.png", false )
        guiSetProperty(pxLib.panel[pxLib.panelsayi], "ImageColours", "tl:D2000000 tr:D2000000 bl:D2000000 br:D2000000")
    pxLib.panelust[pxLib.panelsayi] = guiCreateStaticImage(0,0,x2,22, "resimler/arkaplan.png", false ,pxLib.panel[pxLib.panelsayi])
        guiSetProperty(pxLib.panelust[pxLib.panelsayi], "ImageColours", "tl:"..RGBToHex(250,r,g,b).." tr:"..RGBToHex(250,r,g,b).." bl:"..RGBToHex(250,r,g,b).." br:"..RGBToHex(250,r,g,b).."")
    pxLib.panel_label[pxLib.panelsayi] = guiCreateLabel(0,0,x2,22,ad,false,pxLib.panelust[pxLib.panelsayi])
        guiSetFont(pxLib.panel_label[pxLib.panelsayi], "default-bold-small")
        guiLabelSetHorizontalAlign(pxLib.panel_label[pxLib.panelsayi], "center", false)
        guiLabelSetVerticalAlign(pxLib.panel_label[pxLib.panelsayi], "center")

if ortalama==true then
    local screenW, screenH = guiGetScreenSize()
            local windowW, windowH = x2,y2
            local x, y = (screenW - windowW) /2,(screenH - windowH) /2
    guiSetPosition(pxLib.panel[pxLib.panelsayi], x, y, false) 
end
return pxLib.panel[pxLib.panelsayi]
end
end

function butonOlustur(x,y,x2,y2,ad,r,g,b,gui)
    if x and y and x2 and y2 and ad and r and g and b then
    pxLib.butonsayi = pxLib.butonsayi + 1
    pxLib.buton_arkaplan[pxLib.butonsayi] = guiCreateStaticImage(x,y,x2,y2, "resimler/buton.png", false, gui or nil )
        guiSetProperty(pxLib.buton_arkaplan[pxLib.butonsayi], "ImageColours", "tl:"..RGBToHex(180,r,g,b).." tr:"..RGBToHex(180,r,g,b).." bl:"..RGBToHex(180,r,g,b).." br:"..RGBToHex(180,r,g,b).."")
    pxLib.buton[pxLib.butonsayi] = guiCreateLabel(0,0,x2,y2,ad,false,pxLib.buton_arkaplan[pxLib.butonsayi])
        guiSetFont(pxLib.buton[pxLib.butonsayi], "default-bold-small")
        guiLabelSetHorizontalAlign(pxLib.buton[pxLib.butonsayi], "center", false)
        guiLabelSetVerticalAlign(pxLib.buton[pxLib.butonsayi], "center")
        butonEfekt(pxLib.butonsayi,r,g,b)
        return pxLib.buton[pxLib.butonsayi]
end
end

function butonEfekt(i,r,g,b)
    addEventHandler( "onClientMouseEnter",root,function()
if source == pxLib.buton[i] then
        guiSetProperty(pxLib.buton_arkaplan[i], "ImageColours", "tl:"..RGBToHex(250,r,g,b).." tr:"..RGBToHex(250,r,g,b).." bl:"..RGBToHex(250,r,g,b).." br:"..RGBToHex(250,r,g,b).."")
end
    end)

    addEventHandler( "onClientMouseLeave",root,function()
if source == pxLib.buton[i] then
            guiSetProperty(pxLib.buton_arkaplan[i], "ImageColours", "tl:"..RGBToHex(180,r,g,b).." tr:"..RGBToHex(180,r,g,b).." bl:"..RGBToHex(180,r,g,b).." br:"..RGBToHex(180,r,g,b).."")
        end
end)
end

local _guiSetVisible = guiSetVisible
function guiSetVisible(element,durum)
    for i=1,pxLib.butonsayi do
        if element == pxLib.buton[i] then
    _guiSetVisible(pxLib.buton_arkaplan[pxLib.butonsayi],durum)
else
    _guiSetVisible(element,durum)
end
end
end

--- USEFUL FUNCTIONS ---
------------------------

function RGBToHex(alpha, red,green, blue )
if((red < 0 or red > 255 or green < 0 or green > 255 or blue < 0 or blue > 255) or (alpha and (alpha < 0 or alpha > 255))) then
return nil
end
if(alpha) then
return string.format("%.2X%.2X%.2X%.2X", alpha,red,green,blue)
else
return string.format("%.2X%.2X%.2X", red,green,blue)
end
end
resimler/arkaplan.png

resimler/buton.png

Örnek: Linki görebilmek için Kayıt olun yada Giriş yapın.
Spoiler for Hiden:
Kod: lua
-- www.MTASA-TURK.com
-- Paradox

addEventHandler( "onClientResourceStart", getRootElement(),function()
    panelOlustur(0,0,250,250,"Deneme Panel",0,255,170,true) -- Panel Adı: pxLib.panel[1]
    butonOlustur(20,180,100,32,"Deneme Buton",250,0,250,pxLib.panel[1]) -- Buton Adı: pxLib.buton[1]
    butonOlustur(150,180,70,32,"Kapat",250,0,250,pxLib.panel[1]) -- Buton Adı: pxLib.buton[2]
    showCursor(true)
end)

addEventHandler ( "onClientGUIClick", getRootElement(),function()
    if source == pxLib.buton[1] then
    -- Deneme Buton isimli butona basınca yapacakların
elseif source == pxLib.buton[2] then
    guiSetVisible(pxLib.panel[1],false) -- Kapat butonuna bastığında panelin kapanmasını sağlar
showCursor(false)
end
end)
Alınacak sonuç:



Güncellemeler:
  • 15.05.2017 - 'onClientMouseEnter' ve 'onClientMouseLeave' sorunu giderildi.
  • 16.05.2017 - Değişken atama eklendi. Butonda 'guiSetVisible' fonksiyonu düzenlendi.
« Son Düzenleme: 10 Haziran 2018, 22:17:48 Gönderen: LJ »
 


MTASATURK

Hazır GUI Fonksiyonları (pxLib)
« : 08 Mayıs 2017, 16:32:49 »

Çevrimdışı ertrldtcu

  • Uzman Üye
  • *
    • İleti: 589
Yanıtla #1 : 08 Mayıs 2017, 16:36:55
Ellerine sağlık. Fonksiyonların içine 2 eventi eklemişsin ve bunlar butonun görünümüyle alakalı. Yeni başlayan arkadaşlar tıklama eventini kullanmada sıkıntı çekebilir. Tıklama eventini de oluşturma fonksyionlarının içine eklersen veya oluşturma fonksiyonlarına return eklersen değişken ile daha rahat eventler kullanabilirler.
« Son Düzenleme: 08 Mayıs 2017, 17:16:21 Gönderen: ertrldtcu »
system
 


Çevrimdışı ByCash

  • Admin
  • *
    • İleti: 986
Yanıtla #2 : 08 Mayıs 2017, 16:42:57
Yeni başlayanlar için yararlı olmuş, eline sağlık.
 


Çevrimdışı shephard^

  • Uzman Üye
  • *
    • İleti: 776
  • decay.
Yanıtla #3 : 08 Mayıs 2017, 17:09:41
Eline sağlık.
 


Çevrimdışı Narkoz

  • Kurucu
  • *
    • İleti: 507
  • SH Gaming
Yanıtla #4 : 08 Mayıs 2017, 22:06:24
Eline sağlık yararlı paylaşım.
 


Çevrimdışı Paradox

  • Kurucu
  • *
    • İleti: 684
  • SH Gaming
Yanıtla #5 : 08 Mayıs 2017, 22:55:20
Yorumlarınız için teşekkürler.

Linki görebilmek için Kayıt olun yada Giriş yapın.
Ellerine sağlık. Fonksiyonların içine 2 eventi eklemişsin ve bunlar butonun görünümüyle alakalı. Yeni başlayan arkadaşlar tıklama eventini kullanmada sıkıntı çekebilir. Tıklama eventini de oluşturma fonksyionlarının içine eklersen veya oluşturma fonksiyonlarına return eklersen değişken ile daha rahat eventler kullanabilirler.
Sadece görünüş açısından değişiklik yapılmasını daha uygun görüyorum. Diğer ek eventleri kendileri ekleyebilirler.
 


MTASATURK

Ynt: Hazır GUI Fonksiyonları (pxLib)
« Yanıtla #5 : 08 Mayıs 2017, 22:55:20 »

Çevrimdışı MarkeloF

  • Admin
  • *
    • İleti: 901
  • Maybe later.
Yanıtla #6 : 09 Mayıs 2017, 06:29:40
Linki görebilmek için Kayıt olun yada Giriş yapın.
Ellerine sağlık. Fonksiyonların içine 2 eventi eklemişsin ve bunlar butonun görünümüyle alakalı. Yeni başlayan arkadaşlar tıklama eventini kullanmada sıkıntı çekebilir. Tıklama eventini de oluşturma fonksyionlarının içine eklersen veya oluşturma fonksiyonlarına return eklersen değişken ile daha rahat eventler kullanabilirler.

+1

Eline sağlık.
 


Çevrimdışı Cynax

  • #
  • Deneyimli Üye
  • *
    • İleti: 470
  • Bıraktı
Yanıtla #7 : 09 Mayıs 2017, 11:34:11
Linki görebilmek için Kayıt olun yada Giriş yapın.
Eline sağlık.
 


Çevrimdışı Prose

  • Deneyimli Üye
  • *
    • İleti: 454
  • Gökhan Türkoglu
Yanıtla #8 : 28 Mayıs 2017, 16:58:04
Daha Detaylı Anlatım Olabilirdi

Eline Saglık
 


Çevrimdışı murathanryz

  • Murathan Dönmez
  • Yeni Üye
  • *
    • İleti: 51
  • Metro Gaming
Yanıtla #9 : 28 Mayıs 2017, 18:06:48
Ellerine sağlık, yararlı. .)