Web Sitemizde 32 Kategoride 30 makale yazılmıştır. Bugüne kadar 5106 kez ziyaret edilmiştir!


( Merhaba arkadaşlar quest derslerine aşağıdaki bağlantılardan gidebilirsiniz. Dersler birbirinin devamıdır. )

quest DERS 1  GİTMEK İÇİN TIKLA

quest DERS 2  GİTMEK İÇİN TIKLA

quest DERS 3  GİTMEK İÇİN TIKLA

quest DERS 4  GİTMEK İÇİN TIKLA

quest DERS 5  GİTMEK İÇİN TIKLA

 

 

 

 

Merhaba  arkadaşlar bu konumuzda ;

get_time() ile devam edelim. Kelime anlamı olarak tam karşılamasa da o an için zamanın tam olarak ne olduğunu kaydeder.

Bu fonksiyon timer'a benzer. Farkı tek bir oyuncu için çalışabilir olmasıdır. setqf veya event_flag ile kullanılabilir. Çok işe yarar bir komuttur. Örnekle açıklayalım.
 

Kod:

quest ornek_quest begin
   state start begin
      when 20000.use begin
      if pc.getqf("actinmi") - get_time() > 0 then
      say("Bu eşyayı 30 dakikada bir kullanabilirsin.")
      else
      pc.give_item2("12222",1)
      pc.setqf("actinmi",get_time() + 1800)
      end
   end
end

Yukarıdaki quest ile bir eşyaya süre koydum. Sadece yarım saat içinde 1 kere kullanılabilir oldu. Nasıl oldu peki? Oyuncunun ilk tıklayışında qf("actinmi") kayıtını o anki zamanın üzerine 1800 ekleyerek kaydettirdim. 1800, 30 dakika yapar. Eğer 2. tıkladığında yarım saat geçmemiş ise 12222 numaralı eşyayı vermeyecektir. Zaman süreki işlediğinden dolayı oyuncunun ilk tıkladığı zamanın 1800 fazlasına da elbet gelecektir. Çıkarma işlemi ile aradaki farktan yararlanıyorum. Bu iki sayısal değer birbirne eşit olduğunda çıkarma işlemi yaptığınızda 0 olacak. Eğer get_time() + 1800 hala oyuncunun 2. tıkladığı zamandaki get_time() dan büyük ise yarım saat geçmemiş demektir. Çok iyi anlatamadım burayı. O yüzden yukarıdaki questi dikkatle inceleyin umarım anlarsınız.

İkinci kodumuz ise setf(). Bu komutu kullanarak 2 quest arasında bağlantı kurabiliriz. Mesela şöyle yapalım.
 

Kod:

quest ornek_quest begin
   state start begin
      when 1093.kill begin
      pc.setf("azrail_kesildi",get_time() + 24*60*60)
      end
   end
end

Kod:

quest ornek_quest2 begin
   state start begin
      when 20005.chat."İçeri gir" begin
         if pc.getf("azrail_kesildi","ornek_quest") - get_time() > 0 then
         say("içeri girebilirsin.")
         else
         say("son 24 saat içinde azraili öldürmüş olman gerekiyor.")
         end
      end
   end
end

2 questi nasıl birletirdiğime bakın. 1. questte setf komutu ile yine bir kelime üzerine o anı bir sayısal değer olarak düşünürsek 24*60*60 fazlasını kaydettirdim. 2. questte nasıl bağladımı dikkatlice inceleyin. pc.getf("azrail_kesildi","ornek_quest") Önce kelimemiz sonra ilk questin adı. Bu şekilde bağlamayı yapabiliriz. Bunu d.getf ya da d.setf ile de yapabiliriz. d. koyarak yaptığımızda o an orada olan herkes için kayıt yapılır.

 

WWW.XBİLGE.COM



Ücretsiz Hosting
Xbilgeye Destek Ol deneme