Lua Hakkında Dersler

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Rüzgar

  • Acemi Üye
  • *
    • İleti: 158
: 17 Mart 2017, 19:44:09
Linki görebilmek için Kayıt olun yada Giriş yapın.

Operatörler ve Atama Işlemi
= Operatörü : eşitliğin sağındaki değer eşitliğin soldaki değişkene atanır
+ Operatörü : Eşitliğin sağındaki değerle eşitliğin solundaki değişken değerini toplayıp tekrar eşitliğin solundaki değişkene atar
- Operatörü : Verilen değeri sağındaki değer kadar eksiltip tekrar değişkene atar
\n = Bir alt satıra geçmek için kullanılır
/r = paragraf başı yapmak için kullanılır
# = Formatlı yazımda her bir sayı için #(tag) işareti kulllanılır


Aritmatiksel Operatörler
+(toplama) = +
-(Çıkarma) = -
x(Çarpma) = *
/(Bölme) = /


Karar Kontrol Deyimleri

Belirli bir şarta göre yapılması istenen işlemlerdir.
Kullanımı;
Kod: lua
if(koşul) then

-- Koşul Doğruysa Yapılacak Işlemler

else

 -- Koşul yanlışsa yapılacak işlemler
end
[/b]

İç içe if İfadesi

Birden fazla koşula ihtiyaç duyulan durumlarda iç içe if ifadesi kullanılır bir if koşuluna kaç tane elseif ekleyebilceğimiz konusunda hiçbir sınır yoktur.
ÖRNEK:
Kod: lua
if (koşul) then
 -- Koşul doğruysa yapılacak işlemler
elseif
-- Koşul bir yanlışsa koşul iki doğruysa yapılacak işlemler

else
-- Her iki koşulda yanlışsa yapılacak işlemler
end
[/b]

Multitheftauto lua dersleri bu konu üzerinden yapılacaktır
outputChatBox Nedir?
Ekranda mesaj göstermek için kullanılır(Ekrana Çıktı verir)hangi amaçlı olarak kullanacağınız size kalmış bir şey Peki bunun kullanımı nasıldır?

Kod: lua
bool outputChatBox ( string text [, element visibleTo=getRootElement(), int r=231, int g=217, int b=176, bool colorCoded=false ] )
Şeklinde kullanılmaktadır şimdi tek tek açıklarsak eğer ki;
text = Ekranda göstermek istediğiniz metin dizesidir en fazla 256 karakter olabilir.
visibleTo = Mesajı kimlerin göreceğini belirtir. getRootElement() yaparsak tüm oyuncularda gözükür eğer ki sadece yerel oyuncuda gözükmesini istiyorsak source,player,thePlayer olarak kullanılabilir fakat func şu şekilde olmak zorundadır;

Kod: lua
function fonksiyon(player)
function fonksiyon_(thePlayer)

r = red olarak'ta bilinir( türkçe'de red kelimesi Kırmızı anlamına gelir)  en fazla 255'e kadar olabilir.
g = green olarak'ta bilinir( türkçe'de green kelimesi Yeşil anlamına gelir)  en fazla 255'e kadar olabilir.
b= blue olarak'ta bilinir( türkçe'de blue kelimesi Mavi anlamına gelir)  en fazla 255'e kadar olabilir.

colorCoded = HEX Kodları kullanılıp kullanılmayacağını belirtir değer false ise HEX kodlarını gösterir ama renk uygulamaz, true ise Hex kodları kullanılabilir

Client Taraflı Nasıl Kullanılır ?

Kod: lua
bool outputChatBox ( string text [, int r=231, int g=217, int b=176, bool colorCoded=false ] )

Şeklinde kullanılmaktadır şimdi tek tek açıklarsak eğer ki;
text = Ekranda göstermek istediğiniz metin dizesidir en fazla 256 karakter olabilir.

r = red olarak'ta bilinir( türkçe'de red kelimesi Kırmızı anlamına gelir)  en fazla 255'e kadar olabilir.
g = green olarak'ta bilinir( türkçe'de green kelimesi Yeşil anlamına gelir)  en fazla 255'e kadar olabilir.
b= blue olarak'ta bilinir( türkçe'de blue kelimesi Mavi anlamına gelir)  en fazla 255'e kadar olabilir.

colorCoded = HEX Kodları kullanılıp kullanılmayacağını belirtir değer false ise HEX kodlarını gösterir ama renk uygulamaz, true ise Hex kodları kullanılabilir

File Create Nedir?
Bir kaynak dizininde yeni bir dosya oluşturur. Belirtilen dosya zaten varsa, boş bir dosya ile üzerine yazılır.

Kod: lua
file fileCreate ( string filePath )

filePath = Oluşturulacak dosyanın dosya yoludur.

Peki Bunun Kullanımı Nasıl?

Kod: lua
DosyaDegiskeni = fileCreate ( "dosyaAdı.txt" )
Şeklindedir unutmayın ki sağdaki değişkene soldaki değer atanır, dosyaAdı oluşturulacak dosyanın ismidir .txt ise dosya türüdür.


File Write Nedir?
Belirli bir dosyaya bir veya birden fazla dizge yazar. kullanımı;

Kod: lua
int fileWrite ( file theFile, string string1 [, string string2, string string3 ...])

file theFile = belirlediğiniz değişkendir;
ÖRNEK:
Kod: lua
dosyaDegiskeni = fileCreate ( "dosyaAdı.txt" )
fileWrite ( dosyaDegiskeni, string string1 [, string string2, string string3 ...]) )

string string1 = Yazılacak dizedir.

ÖRNEK:
Kod: lua
dosyaDegiskeni = fileCreate ( "dosyaAdı.txt" )
fileWrite ( dosyaDegiskeni, "Merhaba Dünya !" )

dosya değişkenini tanımladık ve dosya'ya yazdırmasını sağladık bize dosya çıktısı olarak script hangi klasörde ise o klasöre dosyaAdı.txt adlı bir text document dosyası oluşturur ve içine "Merhaba Dünya !" yazısını yazar dizeler halinde.

File Close Nedir?
dosya kapatırması'dır kullanım;

Kod: lua
bool fileClose ( file theFile )

file theFile = tanımladığımız değişkendir;
ÖRNEK:
Kod: lua
dosyaDegiskeni = fileCreate ( "dosyaAdı.txt" )
fileWrite ( dosyaDegiskeni, "Merhaba Dünya !" )
fileClose ( dosyaDegiskeni )


NOT:Bugünlük bu kadar her gün güncel tutacağım ve dersleri anlatmaya devam edeceğim.

« Son Düzenleme: 08 Eylül 2021, 00:16:23 Gönderen: Quadro »
 


MTASATURK

Lua Hakkında Dersler
« : 17 Mart 2017, 19:44:09 »

Çevrimdışı ertrldtcu

  • Uzman Üye
  • *
    • İleti: 589
Yanıtla #1 : 17 Mart 2017, 19:45:51
Ders için teşekkürler.
HEX renk kodunun ne olduğunu bilmeyenler için:
HEX renk kodu başında # olan 6 karakterlerdir. Bu karakterler sayılardan (yani 0,1,2,3,4,5,6,7,8,9) veya a,b,c,d,e,f harflerinden oluşabilir.
« Son Düzenleme: 17 Mart 2017, 19:51:08 Gönderen: ertrldtcu »
system
 


Çevrimdışı Mucks

  • Muhammet Emin Özer
  • Bilgin Üye
  • *
    • İleti: 212
Yanıtla #2 : 17 Mart 2017, 19:46:52
Ders için teşekkürler.
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


Çevrimdışı ByCash

  • Admin
  • *
    • İleti: 986
Yanıtla #3 : 17 Mart 2017, 19:59:07
Yararlı bir konu fakat bu tür dersler çok fazla daha farklı dersler verebilirsin.
 


Çevrimdışı Rüzgar

  • Acemi Üye
  • *
    • İleti: 158
Yanıtla #4 : 17 Mart 2017, 20:03:34
Linki görebilmek için Kayıt olun yada Giriş yapın.
Yararlı bir konu fakat bu tür dersler çok fazla daha farklı dersler verebilirsin.
Lua'yı baştan öğretmek lazım isterse fazla olsun az olsun kişi bir şey anlayamadıktan sonra hiç bir faydası yoktur fikrin için teşekkürler fakat dediğim gibi bilmeyen kişilere kolay anlatımlardan başlayıp zor anlatımlara kadar anlayacak bir şekilde tek bir konu üzerinden öğretmek daha mantıklı...
« Son Düzenleme: 17 Mart 2017, 20:05:58 Gönderen: iMeoW »
 


Çevrimdışı DuyuM

  • Yeni Üye
  • *
    • İleti: 41
Yanıtla #5 : 17 Mart 2017, 20:05:28
Yararlı  .
 


MTASATURK

Ynt: LUA Hakkında Dersler
« Yanıtla #5 : 17 Mart 2017, 20:05:28 »

Çevrimdışı Cynax

  • #
  • Deneyimli Üye
  • *
    • İleti: 470
  • Bıraktı
Yanıtla #6 : 17 Mart 2017, 20:06:43
Yararlı konu olmuş.
 


Çevrimdışı #Serius

  • Uzman Üye
  • *
    • İleti: 685
Yanıtla #7 : 17 Mart 2017, 20:15:30
Linki görebilmek için Kayıt olun yada Giriş yapın.
Yararlı konu olmuş.
 


Çevrimdışı Rüzgar

  • Acemi Üye
  • *
    • İleti: 158
Yanıtla #8 : 17 Mart 2017, 22:27:28
Eklenen Yeni Func'lar adım adım gösterilmiş ve Anlatılmıştır bunlar;
- File Create
- File Write
- File Close

« Son Düzenleme: 17 Mart 2017, 22:29:14 Gönderen: iMeoW »
 


Çevrimdışı Quadro

  • Engin YILMAZ
  • Admin
  • *
    • İleti: 471
Yanıtla #9 : 17 Mart 2017, 23:07:09
Linki görebilmek için Kayıt olun yada Giriş yapın.
Yararlı konu olmuş.
 


Çevrimdışı Rüzgar

  • Acemi Üye
  • *
    • İleti: 158
Yanıtla #10 : 18 Mart 2017, 18:56:40
[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
elementOlustur = createElement;
function editBoxOlustur(degisken, x, y, uzunluk, yukseklik, gizli_veya_normal)
    degiskenMetni = editBoxMetinVerisiniAl(degisken, "editBoxMetin") or veriDegistir(degisken, "editBoxMetin", "");
    local sx, sy = guiGetScreenSize ( );
    local cx, cy = getCursorPosition ( );
    local cx, cy = ( cx * sx ), ( cy * sy );
        if getKeyState("mouse1") then
            if ( cx >= x and cx <= x + uzunluk ) and ( cy >= y and cy <= y + yukseklik ) then
                veriDegistir(degisken, "editboxDurumu", true);
    else
        veriDegistir(degisken, "editboxDurumu", false);
    end
end
if degisken and x and y and uzunluk and yukseklik then
    dxDrawRectangle(x, y, uzunluk, yukseklik,tocolor(0,0,0,180), false);
    if gizli_veya_normal == "normal" then
    dxDrawText(degiskenMetni, x+10, y+1, x+uzunluk-10, y+yukseklik-2, tocolor(255,255,255,getTickCount()/3), 1.2, "default-bold", "center", "center", true, false, false, false);
     elseif gizli_veya_normal == "gizli" then
         dxDrawText(degiskenMetni:gsub(".","*"), x+10, y+1, x+uzunluk-10, y+yukseklik-2, tocolor(255,255,255,getTickCount()/3), 1.2, "default-bold", "center", "center", true, false, false, false);
else
    print("HATA: editBoxOlustur yanlış veya eksik kullanılmış");
end
end
end
editBoxMetinVerisiniAl = getElementData;
veriDegistir = setElementData;
function klavyeTuslariniOku(karakter)
        kelime_SINIRI = 20;
        for _, v in ipairs(getElementsByType("editbox")) do
            EditBoxKelime = editBoxMetinVerisiniAl(v, "editBoxMetin");
            bool = true;
            if  editBoxMetinVerisiniAl(v, "editboxDurumu") == bool and #EditBoxKelime < tonumber(kelime_SINIRI) then
                veriDegistir(v, "editBoxMetin", editBoxMetinVerisiniAl(v, "editBoxMetin")..karakter);
            end
        end
    end
addEventHandler("onClientCharacter", getRootElement(), klavyeTuslariniOku);
function klavyedenHarfSil( _, tus )   
tus_ = "backspace";
if tus and _ == tus_ then   
        for _, v in ipairs(getElementsByType("editbox")) do
            EditBoxKelime = editBoxMetinVerisiniAl(v, "editBoxMetin");
            bool = true;
            if  editBoxMetinVerisiniAl(v, "editboxDurumu") == bool and #EditBoxKelime > tonumber(0) then
                __ = string.sub(EditBoxKelime, 1, #EditBoxKelime - 1);
                veriDegistir(v, "editBoxMetin", tostring(__));
            end
        end
    end
end
addEventHandler("onClientKey", getRootElement(), klavyedenHarfSil);
Kod: lua
degisken_ = elementOlustur("editbox");
editBoxOlustur(degisken_,x, y, w, h, "gizli")
editBoxOlustur(degisken_,x, y, w, h, "normal")
Kod: lua
editBoxMetinVerisiniAl(degisken_, "editBoxMetin")
[/quote]
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")
« Son Düzenleme: 08 Eylül 2021, 06:13:50 Gönderen: Quadro »
 


Çevrimdışı Quadro

  • Engin YILMAZ
  • Admin
  • *
    • İleti: 471
Yanıtla #11 : 18 Mart 2017, 18:58:37
Yeni anlatımlarını bekliyoruz, gerçekten yararlı işler yapıyorsun Ahmet ağabey. Başarılar diliyorum.
 


Çevrimdışı Narkoz

  • Kurucu
  • *
    • İleti: 507
  • SH Gaming
Yanıtla #12 : 18 Mart 2017, 19:08:32
Yararlı konu olmuş.
 


Çevrimdışı Agressive

  • Acemi Üye
  • *
    • İleti: 104
Yanıtla #13 : 18 Mart 2017, 19:10:45
Yararlı konu olmuş devamını bekliyoruz. :)
 


Çevrimdışı #Serius

  • Uzman Üye
  • *
    • İleti: 685
Yanıtla #14 : 18 Mart 2017, 19:22:41
Yararlı Paylaşım Tşekürler Ahmet Abi  8)