Lua Ders # 2 | Tab Kullanımı
#1
Merhaba arkadaşlar, burada bir çok arkadaşımızın lua scripti yazmaları beni çok sevindiriyor çünkü ben bu işe kendimde yazılımcı olduğum için "programlama" olarak bakıyorum. Sırf oynadığınız oyun için bu scripti yazmanız aslında programcılık ile uğraştığınız anlamına geliyor. Gel gelelim yazılımcı olmanın program yazmanın da bazı rajonları vardır. Bunlardan bir tanesi "syntax" dediğimiz ilgili programlama dilinin yapısıdır. Örneğin; C#.NET dilinde bir for döngüsü oluşturmak için gerekli syntax;

Kod:
Kod:
for(int i = 0; i <= 100; i++){
  Console.Write(i);
}


iken

Lua dilinde ise;

Kod:
Kod:
for i = 1,32 do
  print(i)
end


şeklindedir. Lua dilinin belli bir editörü olmadığı için not defteri dahil her yerde yazabiliyoruz. O yüzden kodlarımızın belli bir yapıda (syntax) ve düzende olması için kodlarımızın belli yerlerinde [TAB] koymalıyız. Tab derken ? Diyenleri duyar gibiyim. Tab derken kast ettiğim bildiğimiz Tab tuşu hani şurdaki;
[Resim: images64729.jpg]

Hemen bir örnek ile açıklığa kavuşturalım.
Oyuncu @merhaba  yazdığında ekrana "Herkese Merhaba" yazan basit bir script yazacağız. Önce Tabsız sonra Tablı şekilde yazalım.

Tabsız olarak;
Kod:
Kod:
addhook("say","_say")
function _say(id,txt)
if txt == "@merhaba" then
msg("Herkese Merhaba")
end
end


Tablı olarak;
Kod:
Kod:
addhook("say","_say")
function _say(id,txt)
    if txt == "@merhaba" then
        msg("Herkese Merhaba")
    end
end

İyi güzelde ben bu boşlukları (TAB'ları) ne zaman koyacağımı nasıl bileceğim ?
Çok basit. End koyulan her kod bloğunun altına bunu koymamız lazım. End keyword'leriniz asla alt alta gelmemeli intizamlı olmalı.
Biraz daha komplex bir script yazalım böylece daha iyi anlamış olursunuz.


Admin yetkisi ile !kick komutu kullanarak oyuncuları oyundan atabilen script yazalım.
Kod:
Kod:
addhook("say","_say")
function _say(id,txt)
    for _, usgn in ipairs(admins) do
        if player(id,"usgn") == usgn then
            p = Split(txt)
             if p[1] == "!kick" then
                 if p[2] ~= nil then
                     parse("kick "..p[2])
                     msg(player(p[2]),"name").." adli oyuncu atildi!")
                    return 1
                 else
                     msg2(id,"Oyuncu bulunamadi!")
                     return 1
                 end
             end
       end
   end
end

Yazılan kodlar kafanızı karıştırmasın sadece tab mantığını kavramaya çalışın. Gördüğünüz gibi Tab koyarak kodladığımız script çok daha okunaklı oldu. Paylaştığınız scriptler'de elimden geldiğince yazım hatalarınızı belirteceğim böylece daha çabuk öğrenirsiniz.
Bul
Alıntı


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Lua Ders # 3 | Değişkenler Ken 0 135 28-03-2016, Saat: 18:46
Son Mesaj: Ken
  Lua Ders # 1 | Lua Nedir? Ken 0 255 28-03-2016, Saat: 18:46
Son Mesaj: Ken

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi
loading...