Lua Hakkında Dersler

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Paradox

  • Kurucu
  • *
    • İleti: 684
  • SH Gaming
Yanıtla #15 : 18 Mart 2017, 19:31:29
Yararlı bir ders olmuş, teşekkürler.
 


MTASATURK

Ynt: LUA Hakkında Dersler
« Yanıtla #15 : 18 Mart 2017, 19:31:29 »

Çevrimdışı Rüzgar

  • Acemi Üye
  • *
    • İleti: 158
Yanıtla #16 : 19 Mart 2017, 01:21:35
Linki görebilmek için Kayıt olun yada Giriş yapın.
[DX]KODLAMASI HAKKINDA BILINMESI GEREKENLER VE DERSLERI

(dxDrawRectangle) Nasıl Button Olarak Kullanılır ?
Aslında bir bakımdan biraz basittir gui Elementlerine işlev vermek için onClientGUIClick eventi kullanırız fakat bu durum dx için geçerli değildir onun yerine onClientClick kullanılmaktadır birazdan kullanım şeklini sizlere sunmak isterim.
1.

2.Kullanıcı tıkladığı zaman ekrana Merhaba Kullanıcı olarak yazdırmasını sağladık

(isMouseInPosition)
Mouse kordinatları için kullanılmaktadır, koşul olarak kullandığımızda  kullanıcı tıkladığı zaman belirtilen kordinat yerinde çalışmasını sağlar eğer belirtilen mouse kordinatları dışında ise çalışmaz.

(getKeyState)
Klavyedeki  veya fare Tuşlarını belirtir biz bunu kullanmazsak iki defa olarak işlev yapar kullanırsak bir kere işlev yapar yani çift işlev yapmaz;

EditBox Kodu
Kod: lua
function _3DYaziOlustur( x, y, uzunluk, yukseklik, metin)
    if x and y and uzunluk and yukseklik and metin ~= "" then
    dxDrawText(metin, x+10 - 1, y-180 - 1, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 2, y-180 - 2, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 3, y-180 - 3, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 4, y-180 - 4, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 5, y-180 - 5, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 6, y-180 - 6, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 7, y-180 - 7, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 8, y-180 - 8, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 9, y-180 - 9, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 10, y-180 - 10, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 11, y-180 - 11, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 12, y-180 - 12, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 13, y-180 - 13, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 14, y-180 - 14, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10 - 15, y-180 - 15, x+uzunluk-10, y+yukseklik-2, tocolor(0,0,0,255), 3, "default-bold", "center", "center", true, false, false, false);
    dxDrawText(metin, x+10, y-180, x+uzunluk-10, y+yukseklik-2, tocolor(255,255,255,255), 3, "default-bold", "center", "center", true, false, false, false);
else
    print("_3DYaziOlustur:Yanlış kullanılmış veya eksik kullanılmış");
end
end

Kullanımı;
Kod: lua
_3DYaziOlustur(x, y, w, h, "3D - DX YAZI")
_3DYaziOlustur Func'u eklenmiştir örnek bir resim;

 


Çevrimdışı Rüzgar

  • Acemi Üye
  • *
    • İleti: 158
Yanıtla #17 : 25 Mart 2017, 18:34:03
META.XML BIND

Kod: lua
<meta>
<info author="Ruzgar" type="script" version="1.0" />
<script src="client.lua" type="client" />
<script src="server.lua" type="server" />
<settings>
    <setting name="*bindTusu" value="F1" />
</settings>
</meta>

Kod: lua
state = 0;
function bindKeyRuzgar()
if state == 0 then
guiSetVisible(element, true);
showCursor(true);
state = 1;
elseif state == 1 then
guiSetVisible(element, false);
showCursor(false);
state = 0;
end;
end;
function eventRuzgar(bind)
bindKey(bind, "down", bindKeyRuzgar);
end;
addEvent("onClientRüzgarBind", true);
addEventHandler("onClientRüzgarBind", root, eventRuzgar);

Kod: lua
ruzgar = {}
ruzgar.kodsahibi = "(META XML Bind) kod Rüzgar tarafından yazılmıştır";
ruzgar.msj = tostring(ruzgar.kodsahibi);
local bindAyariAl_metaxmlDen = get( getResourceName( getThisResource( ) ).. '.bindTusu' );
    function bindkontrol( )
    ruzgar.bindEkle(source, "onClientRüzgarBind", source, bindAyariAl_metaxmlDen );
    end 
addEventHandler( "onPlayerJoin", root, bindkontrol);
function ruzgar.bindEkle(element, event, element2, extra)
triggerClientEvent(element, event, element2, extra);
outputChatBox(""..ruzgar.msj.."", root, 255 , 162, 0, true);
return element, event, element2, extra;
end;

ROLEPLAY EXPORT HAS ITEM KULLANIMI

Roleplay export kullanımı basit olarak göstermek istedim herneyse özet geçicek olursak;

exports.global:hasItem nedir ? = karakterde belirtilen item varsa uygulanması içindir örneğin 125 adlı item

Kod: Lua
]
itemID = 125
function itemvarsa()
if exports.global:hasItem(localPlayer, itemID) then
outputChatBox(""..itemID.." adlı item karakterde var", 60, 255, 0, true)
end
end
addCommandHandler( "itemKontrol", itemvarsa)

belirtilen item yoksa nasıl item olmadığını gösteririz. = if'den sonra else ile belirtebiliriz eğer belirtilen item karakterde yoksa uygulanmaz.

Kod: Lua
itemID = 125
function itemvarsa()
if exports.global:hasItem(localPlayer, itemID) then
outputChatBox(""..itemID.." adlı item karakterde var", 60, 255, 0, true)
else
outputChatBox(""..itemID.." adlı item karakterde yok", 255, 0, 0, true)
end
end
addCommandHandler( "itemKontrol", itemvarsa)

ADMIN PANEL
Kod: lua
-- Element Tablosu

v_fonksiyon = {}
v = {
    Nick = {},
    Mesaj = {},
    Gridlist = {},
    Author = {},
    Kick = {},
    window = {},
}
k = {
    kick = {},
    window = {},
    editBox = {}
}

-- Görevler
addEventHandler("onClientResourceStart", resourceRoot,
    function()
        v.window[1] = guiCreateWindow(0.29, 0.21, 0.42, 0.49, "Varsayılan", true)
        guiWindowSetSizable(v.window[1], false)
        v_fonksiyon.Ekran("VIP Panel - v1.0") -- Pencere Ismini Değiştirmek icin Kullanılır

        v.Gridlist[1] = guiCreateGridList(0.05, 0.12, 0.91, 0.46, true, v.window[1])
        guiGridListAddColumn(v.Gridlist[1], "Oyuncu:", 0.9)
        guiGridListAddRow(v.Gridlist[1])
        v.Kick[1] = guiCreateButton(0.06, 0.62, 0.30, 0.06, "Kick", true, v.window[1])
        v.Mesaj[1] = guiCreateButton(0.62, 0.62, 0.30, 0.06, "Mesaj", true, v.window[1])
        v.Nick[1] = guiCreateLabel(0.06, 0.73, 0.29, 0.04, "Nick:", true, v.window[1])
        v.Author[1] = guiCreateLabel(0.63, 0.06, 0.32, 0.05, "VIP Panel By WOW", true, v.window[1])   

        k.window[1] = guiCreateWindow(0.27, 0.03, 0.46, 0.18, "", true)
        guiWindowSetSizable(k.window[1], false)

        k.editBox[1] = guiCreateEdit(0.02, 0.27, 0.96, 0.20, "Sebep:", true, k.window[1])
        k.kick[1] = guiCreateButton(0.29, 0.63, 0.39, 0.20, "Kick At", true, k.window[1])   
        guiSetVisible( k.window[1], false )
        guiSetVisible( v.window[1], true )
        showCursor(true)
    end
)

function v_fonksiyon.Ekran(metin, elementIsmi) -- fonksiyon Olusturmak icin Kullanılır
guiSetText(v.window[1], metin)
end

 function v_fonksiyon.yenile()
        guiGridListClear(v.Gridlist[1])
        if (guiGridListClear) then
        for id, player in ipairs (getElementsByType("player")) do
            local row = guiGridListAddRow(v.Gridlist[1])
            guiGridListSetItemText(v.Gridlist[1], row, 1, string.gsub(getPlayerName(player), "#%x%x%x%x%x%x", ""), false, false) -- Gridlist Item Eklemek icin Kullanılır
        end
    end
    end
    addEventHandler("onClientPlayerJoin", getRootElement(), v_fonksiyon.yenile)
    addEventHandler("onClientPlayerQuit", getRootElement(), v_fonksiyon.yenile)
    addEventHandler("onClientPlayerChangeNick", getRootElement(), v_fonksiyon.yenile)
    addEventHandler("onClientResourceStart", getRootElement(), v_fonksiyon.yenile)



function test()
        if source == v.Kick[1] then
            guiSetVisible( k.window[1], true )
            elseif source == k.kick[1] then
                    sonuc = guiGetText( k.editBox[1] ) -- Edit Box Yazdığımız Bir Metni elde Etmek icin Kullanılır
                    if sonuc ~= "" then
                        local row, col = guiGridListGetSelectedItem ( v.Gridlist[1] ) -- Gridlist deki Sectiğimiz Item var ise o Item işlev uygulamaktadır.
                if ( row and col and row ~= -1 and col ~= -1 ) then
                    local veri = guiGridListGetItemText ( v.Gridlist[1], row, 1 ) -- Gridlist deki Mevcut Secili Olan Item ismini gösterir
                    guiSetVisible( k.window[1], true ) -- Ekranı Gizlemektedir
                        triggerServerEvent("onServerOyuncuKick", localPlayer, veri, sonuc) -- Server Taraflı Kodu Calıştırmaktadır

                end
        end
    end
end
    addEventHandler("onClientGUIClick", getRootElement( ), test )

Kod: lua
function OyuncuAt(v_oyuncu, sonuc)
outputChatBox(v_oyuncu.." Adlı Oyuncu Oyundan Atıldı", root, 255, 255, 255, true) -- v_oyuncu ise Secili Olan Gridlist'deki Oyuncunun Ismini Vermektedir.
outputChatBox("Kick Atan Vip Yetkili:"..getPlayerName( source ) , root, 255, 255, 255, true) -- Mesaj vericektir ayrıca Kick Atan Kişiyi veya sadece Tek Bir Şahıs Belirtmek icin Kullanılır
kickPlayer( source, v_oyuncu, sonuc ) -- Oyuncuyu Atması icin Kullanılmaktadır sonuc ise Sebep Belirtmektedir
end
addEvent("onServerOyuncuKick",true)
addEventHandler("onServerOyuncuKick", root, OyuncuAt)

Oyuncu Komple Yasaklamak icin Örnek;
Kod: lua
function OyuncuAt(v_oyuncu, sonuc)
outputChatBox(v_oyuncu.." Adlı Oyuncu Oyundan Uzaklastırıldı", root, 255, 255, 255, true) -- v_oyuncu ise Secili Olan Gridlist'deki Oyuncunun Ismini Vermektedir.
outputChatBox("Banned Atan Vip Yetkili:"..getPlayerName( source ) , root, 255, 255, 255, true) -- Mesaj vericektir ayrıca Ban Atan Kişiyi veya sadece Tek Bir Şahıs Belirtmek icin Kullanılır
banPlayer(v_oyuncu, root, sonuc)  -- Oyuncuya  Ban Atması icin Kullanılmaktadır sonuc ise Sebep Belirtmektedir
end

Oyun ici Tüm oyuncularda Zaman Değiştirme
Kod: lua
k.editBox[1] = guiCreateEdit(0.02, 0.27, 0.96, 0.20, "Sebep:", true, k.window[1])

function zaman()
if source == button then -- button yazdığımız kısıma oluşturduğunuz button ismini yazınız.
zamanbelirle = guiGetText( k.editBox[1] )
if zamanbelirle ~= "" then
triggerServerEvent("onServerZaman", localPlayer, zamanbelirle)
end
end
addEventHandler("onClientGUIClick", root, zaman)

function butunoyuncular(oyunsaat)
saat_zaman = oyunsaat
triggerServerEvent("onServerZamanDegistir", localPlayer, saat_zaman)
end
addEvent("onClientZaman", true)
addEventHandler("onClientZaman", root, butunoyuncular)

Kod: lua
function zamandegistir(zamanbelirle)
 for i,butunOyuncu in pairs(getElementsByType("player")) do -- Tüm Oyundaki Oyuncular icin Kullanılır
 oyunsaat = zamanbelirle
 triggerClientEvent(butunOyuncu, "onClientZaman", butunOyuncu, oyunsaat)
end
end
addEvent("onServerZaman", true)
addEventHandler("onServerZaman", root, zamandegistir)

function zamandegistir2(saat_zaman)
setTime ( saat_zaman, 0 ) -- Oyun Saat ve Dakikasını Değiştirmek icin Kullanılır
end
addEvent("onServerZamanDegistir", true)
addEventHandler("onServerZamanDegistir", root, zamandegistir2)



« Son Düzenleme: 13 Ocak 2022, 02:51:08 Gönderen: Quadro »
 


Çevrimdışı Rüzgar

  • Acemi Üye
  • *
    • İleti: 158
Yanıtla #18 : 30 Mart 2017, 19:22:55
LUA COMPILER FUNCTION
Kod: lua
_dosyayiAc = fileOpen;
_dosyaOlustur = fileCreate;
_yazdir = fileWrite;
_dosyaOku = fileRead;
_sil = fileDelete;
function luaDosyasiniGizle(dosyaAdi, olusturulacakDosyaAdi)
  local D_AC = _dosyayiAc(dosyaAdi, true);
  if D_AC ~= "" and dosyaAdi and olusturulacakDosyaAdi then
      local data = _dosyaOku(D_AC, 500000000);
      dosya = _dosyaOlustur(olusturulacakDosyaAdi);
      _yazdir(dosya, "@MTASA-TURK.COM LUAC FUNCTION \n");
      local k = base64Encode(data.."\n");
      _yazdir(dosya, k);
      _yazdir(dosya, "\n@MTASA-TURK.COM LUAC FUNCTION ");
      _sil(dosyaAdi)
    else
      print("LUA DOSYASI COMPILE EDILEMEDI YANLIS KULLANDINIZ");
    end
end
dosyaAdi = Gizlemek istediğiniz lua dosyasının adını yazmanız gerekmektedir Örnek:"client.lua"
olusturulacakDosyaAdi = Lua kodlarını gizledikten sonra oluşturacağı dosya adı Örnek:"client.luac"

Kod: lua
luaDosyasiniGizle("client.lua", "client.luac");
« Son Düzenleme: 30 Mart 2017, 22:20:08 Gönderen: Rüzgar »
 


Çevrimdışı Cynax

  • #
  • Deneyimli Üye
  • *
    • İleti: 470
  • Bıraktı
Yanıtla #19 : 30 Mart 2017, 22:06:38
Yeni dersler yararlı olmuş.Lua Compiler işime yarıyacak.
 


Çevrimdışı MooN

  • Good Gaming | DD
  • Yeni Üye
  • *
    • İleti: 24
  • Die Kekse | KekZ|MooN'
Yanıtla #20 : 30 Mart 2017, 22:14:53
Linki görebilmek için Kayıt olun yada Giriş yapın.
Yararlı bir ders olmuş, teşekkürler.
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


MTASATURK

Ynt: LUA Hakkında Dersler
« Yanıtla #20 : 30 Mart 2017, 22:14:53 »

Çevrimdışı Dumper

  • Yeni Üye
  • *
    • İleti: 10
Yanıtla #21 : 05 Haziran 2017, 20:54:23
Yararlı Bir Konu.