21 Haziran 2018, 11:11:20

Gönderen Konu: LUA Hakkında Dersler  (Okunma sayısı 1532 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Rüzgar

  • Acemi Üye
  • *
  • İleti: 158
LUA Hakkında Dersler
« : 17 Mart 2017, 20:50:20 »
Linkleri Görebilmek İçin Kayıt Olun veya 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
  1. if(koşul) then
  2.  
  3. -- Koşul Doğruysa Yapılacak Işlemler
  4.  
  5. else
  6.  
  7.  -- Koşul yanlışsa yapılacak işlemler
  8. 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
  1. if (koşul) then
  2.  -- Koşul doğruysa yapılacak işlemler
  3. elseif
  4. -- Koşul bir yanlışsa koşul iki doğruysa yapılacak işlemler
  5.  
  6. else
  7. -- Her iki koşulda yanlışsa yapılacak işlemler
  8. 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
  1. 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
  1. function fonksiyon(player)
  2. 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
  1. 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
  1. file fileCreate ( string filePath )

filePath = Oluşturulacak dosyanın dosya yoludur.

Peki Bunun Kullanımı Nasıl?

Kod: Lua
  1. 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
  1. int fileWrite ( file theFile, string string1 [, string string2, string string3 ...])

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

string string1 = Yazılacak dizedir.

ÖRNEK:
Kod: Lua
  1. dosyaDegiskeni = fileCreate ( "dosyaAdı.txt" )
  2. 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
  1. bool fileClose ( file theFile )

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


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

« Son Düzenleme: 18 Mart 2017, 00:06:05 Gönderen: iMeoW »
 
Mesajı Beğenenler: By.Angel

MTASA-TURK | Türkiye'nin En Güncel MTA Platformu

LUA Hakkında Dersler
« : 17 Mart 2017, 20:50:20 »

ertrldtcu

  • Deneyimli Üye
  • *
  • İleti: 429
Ynt: LUA Hakkında Dersler
« Yanıtla #1 : 17 Mart 2017, 20:52:02 »
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, 20:57:19 Gönderen: ertrldtcu »
Script yazmak için sadece kod bilmek yetmez.
 
Mesajı Beğenenler: LJ, Rüzgar, Rambo

Mucks

  • Muhammet Emin Özer
  • Bilgin Üye
  • *
  • Default Avatar
  • İleti: 239
Ynt: LUA Hakkında Dersler
« Yanıtla #2 : 17 Mart 2017, 20:53:03 »
Ders için teşekkürler.
Linkleri Görebilmek İçin Kayıt Olun veya Giriş Yapın
 
Mesajı Beğenenler: By.Angel, Rüzgar

ByCash

  • Süper Moderatör
  • *
  • İleti: 934
  • LS Gaming
    • MTASA-TURK
Ynt: LUA Hakkında Dersler
« Yanıtla #3 : 17 Mart 2017, 21:05:18 »
Yararlı bir konu fakat bu tür dersler çok fazla daha farklı dersler verebilirsin.
 

Rüzgar

  • Acemi Üye
  • *
  • İleti: 158
Ynt: LUA Hakkında Dersler
« Yanıtla #4 : 17 Mart 2017, 21:09:45 »
Linkleri Görebilmek İçin Kayıt Olun veya 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, 21:12:09 Gönderen: iMeoW »
 

DuyuM

  • Yeni Üye
  • *
  • İleti: 41
Ynt: LUA Hakkında Dersler
« Yanıtla #5 : 17 Mart 2017, 21:11:39 »
Yararlı  .
 
Mesajı Beğenenler: Rüzgar

MTASA-TURK | Türkiye'nin En Güncel MTA Platformu

Ynt: LUA Hakkında Dersler
« Yanıtla #5 : 17 Mart 2017, 21:11:39 »

Cynax

  • #
  • Uzman Üye
  • *
  • İleti: 546
  • Bıraktı
Ynt: LUA Hakkında Dersler
« Yanıtla #6 : 17 Mart 2017, 21:12:54 »
Yararlı konu olmuş.
 
Mesajı Beğenenler: Rüzgar

By.Angel

  • Deneyimli Üye
  • *
  • Default Avatar
  • İleti: 388
Ynt: LUA Hakkında Dersler
« Yanıtla #7 : 17 Mart 2017, 21:21:41 »
Linkleri Görebilmek İçin Kayıt Olun veya Giriş Yapın
Yararlı konu olmuş.
 
Mesajı Beğenenler: Rüzgar

Rüzgar

  • Acemi Üye
  • *
  • İleti: 158
Ynt: LUA Hakkında Dersler
« Yanıtla #8 : 17 Mart 2017, 23:33:39 »
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, 23:35:25 Gönderen: iMeoW »
 
Mesajı Beğenenler: LJ

LJ

  • Engin Yılmaz
  • Moderatör
  • *
  • İleti: 331
  • #MustafaKemalAtatürk
Ynt: LUA Hakkında Dersler
« Yanıtla #9 : 18 Mart 2017, 00:13:20 »
Linkleri Görebilmek İçin Kayıt Olun veya Giriş Yapın
Yararlı konu olmuş.
 
Mesajı Beğenenler: Rüzgar

Rüzgar

  • Acemi Üye
  • *
  • İleti: 158
Ynt: LUA Hakkında Dersler(Üst düzey kodlamalar, DX)
« Yanıtla #10 : 18 Mart 2017, 20:02:51 »
[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
Linkleri Görebilmek İçin Kayıt Olun veya Giriş Yapın
Kod: Lua
  1. elementOlustur = createElement;
  2. function editBoxOlustur(degisken, x, y, uzunluk, yukseklik, gizli_veya_normal)
  3.     degiskenMetni = editBoxMetinVerisiniAl(degisken, "editBoxMetin") or veriDegistir(degisken, "editBoxMetin", "");
  4.     local sx, sy = guiGetScreenSize ( );
  5.     local cx, cy = getCursorPosition ( );
  6.     local cx, cy = ( cx * sx ), ( cy * sy );
  7.         if getKeyState("mouse1") then
  8.             if ( cx >= x and cx <= x + uzunluk ) and ( cy >= y and cy <= y + yukseklik ) then
  9.                 veriDegistir(degisken, "editboxDurumu", true);
  10.     else
  11.         veriDegistir(degisken, "editboxDurumu", false);
  12.     end
  13. end
  14. if degisken and x and y and uzunluk and yukseklik then
  15.     dxDrawRectangle(x, y, uzunluk, yukseklik,tocolor(0,0,0,180), false);
  16.     if gizli_veya_normal == "normal" then
  17.     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);
  18.      elseif gizli_veya_normal == "gizli" then
  19.          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);
  20. else
  21.     print("HATA: editBoxOlustur yanlış veya eksik kullanılmış");
  22. end
  23. end
  24. end
  25. editBoxMetinVerisiniAl = getElementData;
  26. veriDegistir = setElementData;
  27. function klavyeTuslariniOku(karakter)
  28.         kelime_SINIRI = 20;
  29.         for _, v in ipairs(getElementsByType("editbox")) do
  30.             EditBoxKelime = editBoxMetinVerisiniAl(v, "editBoxMetin");
  31.             bool = true;
  32.             if  editBoxMetinVerisiniAl(v, "editboxDurumu") == bool and #EditBoxKelime < tonumber(kelime_SINIRI) then
  33.                 veriDegistir(v, "editBoxMetin", editBoxMetinVerisiniAl(v, "editBoxMetin")..karakter);
  34.             end
  35.         end
  36.     end
  37. addEventHandler("onClientCharacter", getRootElement(), klavyeTuslariniOku);
  38. function klavyedenHarfSil( _, tus )  
  39. tus_ = "backspace";
  40. if tus and _ == tus_ then  
  41.         for _, v in ipairs(getElementsByType("editbox")) do
  42.             EditBoxKelime = editBoxMetinVerisiniAl(v, "editBoxMetin");
  43.             bool = true;
  44.             if  editBoxMetinVerisiniAl(v, "editboxDurumu") == bool and #EditBoxKelime > tonumber(0) then
  45.                 __ = string.sub(EditBoxKelime, 1, #EditBoxKelime - 1);
  46.                 veriDegistir(v, "editBoxMetin", tostring(__));
  47.             end
  48.         end
  49.     end
  50. end
  51. addEventHandler("onClientKey", getRootElement(), klavyedenHarfSil);
  52.  
Kod: Lua
  1. degisken_ = elementOlustur("editbox");
  2. editBoxOlustur(degisken_,x, y, w, h, "gizli")
  3. editBoxOlustur(degisken_,x, y, w, h, "normal")
Kod: Lua
  1. editBoxMetinVerisiniAl(degisken_, "editBoxMetin")
Kod: Lua
  1. function _3DYaziOlustur( x, y, uzunluk, yukseklik, metin)
  2.     if x and y and uzunluk and yukseklik and metin ~= "" then
  3.     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);
  4.     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);
  5.     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);
  6.     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);
  7.     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);
  8.     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);
  9.     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);
  10.     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);
  11.     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);
  12.     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);
  13.     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);
  14.     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);
  15.     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);
  16.     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);
  17.     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);
  18.     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);
  19. else
  20.     print("_3DYaziOlustur:Yanlış kullanılmış veya eksik kullanılmış");
  21. end
  22. end

Kullanımı;
Kod: Lua
  1. _3DYaziOlustur(x, y, w, h, "3D - DX YAZI")
« Son Düzenleme: 19 Mart 2017, 02:23:35 Gönderen: iMeoW »
 

LJ

  • Engin Yılmaz
  • Moderatör
  • *
  • İleti: 331
  • #MustafaKemalAtatürk
Ynt: LUA Hakkında Dersler
« Yanıtla #11 : 18 Mart 2017, 20:04:48 »
Yeni anlatımlarını bekliyoruz, gerçekten yararlı işler yapıyorsun Ahmet ağabey. Başarılar diliyorum.
 
Mesajı Beğenenler: Rüzgar

Narkoz

  • Kurucu
  • *
  • İleti: 510
  • SH Gaming
Ynt: LUA Hakkında Dersler
« Yanıtla #12 : 18 Mart 2017, 20:14:43 »
Yararlı konu olmuş.
 
Mesajı Beğenenler: Rüzgar

Agressive

  • Mapper
  • *
  • İleti: 106
Ynt: LUA Hakkında Dersler
« Yanıtla #13 : 18 Mart 2017, 20:16:56 »
Yararlı konu olmuş devamını bekliyoruz. :)
 
Mesajı Beğenenler: Rüzgar

By.Angel

  • Deneyimli Üye
  • *
  • Default Avatar
  • İleti: 388
Ynt: LUA Hakkında Dersler
« Yanıtla #14 : 18 Mart 2017, 20:28:52 »
Yararlı Paylaşım Tşekürler Ahmet Abi  8)
 
Mesajı Beğenenler: Rüzgar