Bvural41 1
Bvural41
noisiv 1
noisiv
Manwe Work 1
Manwe Work
Can Öcalan 1
Can Öcalan
mavzermete 1
mavzermete
farkmt2official 1
farkmt2official
Sevdamsın 1
Sevdamsın
Hikaye Ekle

Metin2 Quest Yazma Temelleri. Lua Diline Giriş.

  • Konuyu başlatan Konuyu başlatan Shiver
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 5
  • Görüntüleme Görüntüleme 3K

Ayyıldız2 | 2008 TR Yapısı • 1-99 Orta Emek Destan • Oto Avsız • 10 Temmuz 21:00 HEMEN TIKLA!

Merhaba arkadaşlar, bugün Metin2'de Quest yazma temellerini, syntaxlerini gözden geçireceğiz.

1. Metin2 Questleri LUA dilini kullanır. Neden LUA Dilini neden kullanır?

- Çünkü Lua en hızlısı.
- Çünkü Lua işletim sisteminden bağımsız
- Çünkü Lua yaygın
- Çünkü Lua bedava
- Çünkü Lua güçlü ama basit
- Çünkü Lua açık kaynak kodlu ve sürekli geliştirilmekte
- Çünkü Lua kolayca genişletilebilir ve gömülebilir(Lua'da C kullanılabilir C'de Lua kullanılabilir)

ana sayfasından kendisi,yardım,gelişim ve geliştirme çevresi hakkında daha fazlasını elde edebilirsiniz.

2. Lua Programlama Diline Genel Bir Bakış


1394-1ba88629d01727b7fce7ca5e363c2707.jpg




Diğer scripting dillerine kıyasla hızlı olmasının nedeni stack based yerine register based vm kullanmasındandır. Bununla beraber zaten hız odaklı bir tasarıma sahiptir. Güzel ve başarılı bir memory manager'ı vardır. Çok temiz bir C APIsi vardır. Syntax'ı güzel anlaşılır ve kullanışlıdır. Embedded bir script dili lazım olduğunda ilk seçeneklerden birisidir. LUA...

3. Metin2 İle İlgili LUA Diline Giriş.

Metin2'de bildiğimiz gibi LUA interpreter'i birazcık farklı işliyor. Bunun sebebinide quest yazığımı kolaylaştırdığı anlamına getirebiliriz.

Quest Yapısı:

Start ->
-> State
Fonksiyonlar.
<- State End
Start End <-



* State nedir?

State sizin kendi atadığınız bir takım kod çerçevesine denir, her state değiştirdiğiniz de otomatikman questin yönünüde değiştirmiş olursunuz. State'e bir takım kapı diyebiliriz, ama tek kapı gibi, bir state açılır diğer state'ler otomatiktan kapanır. Questte sadece 1 adet aktif state kullanabiliriz. Eğer start statemizi kullanmazsak hata almamız yine olasıdır çünkü, start default bir value'dir eğer isterseniz start statesini yazıp içini boş bırakabilirsiniz.

Örnek Basic(Kolay) Quest:

quest deneme begin

-- Default, Varsayılan Başlangıç.
state start begin
end

-- Diğer State
state diger_state begin
end

end

Gördüğünüz gibi bu örnekte 2 adet statemiz mevcut. 1. Start, 2. İse bir diğer statemiz. Dikkat ederseniz state ve questin sonlarında hep end var. Eğer end kullanmazsak interpreter bizim hangi kodu girdiğimizi ve nerede biteceğini hesaplayamıyor, bu yüzden de hata almanıza yol açıyor.

* State değiştirme

quest deneme begin

-- Default, Varsayılan Başlangıç.
state start begin
setstate
(diger_state)
end

-- Diğer State
state diger_state begin
end

end

Bu örnekde, start statemizi "diger_state"ye çevirdik. Bu bağlamda bu questi çalıştırdığımız zaman otomatikman diger_state'ye geçecektir. Ve boş (null) sonuç döndürecektir.



Alintidir.
 
Son düzenleme:

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst