İçeriğe geç

Metin2 Quest oxevent Fonksiyonları

OX etkinliği (harita 113) fonksiyonları: etkinliği açma ve kapama, soru sorma, katılımcılara ödül verme. Sorular yerel ayar klasöründeki oxquiz.lua dosyasından (add_ox_quiz satırları) yüklenir. Bu modülde 11 fonksiyon var. Diğer modüller quest fonksiyonları listesinde, quest yazımının temeli quest yazma rehberinde.

FonksiyonNe yaparDöner
oxevent.get_status() OX etkinliğinin durumunu döndürür: 0 bitti/kapalı, 1 giriş açık, 2 giriş kapandı, 3 soru soruluyor.
if oxevent.get_status() == 0 then
sayı
oxevent.open() Eski soruları siler, soru dosyasını yeniden yükler ve girişi açar. Dosya yüklenirse 1, hata olursa 0 döner (o durumda giriş açılmaz).
if oxevent.open() == 0 then say("Soru dosyası yüklenemedi.") end
sayı (1 ya da 0)
oxevent.close() OX haritasına girişi kapatır (durum 2); içerideki oyuncular kalır.
oxevent.close()
yok
oxevent.quiz(seviye, süre (saniye)) Verilen seviyedeki sorulardan rastgele birini OX haritasına duyurur ve durumu 3 yapar; aynı soru bir daha sorulmaz. Süre negatifse 30 saniye alınır. Sürenin son 15 saniyesinde geri sayım duyurulur, 5 saniye kala cevap açıklanır, süre dolunca yanlış tarafta kalanlar izleyici alanına alınır ve durum yeniden 2 olur. O seviyede soru kalmadıysa 0 döner.
oxevent.quiz(1, 30)
sayı (1 ya da 0)
oxevent.get_attender() OX haritasındaki katılımcı sayısını döndürür.
say("Kalan yarışmacı: "..oxevent.get_attender())
sayı
oxevent.end_event() Etkinliği bitirir (durum 0); 5 saniye sonra OX haritasındaki oyuncular krallıklarının başlangıç noktasına ışınlanır.
oxevent.end_event()
yok
oxevent.end_event_force() Etkinliği beklemeden kapatır: oyuncular hemen krallıklarının başlangıç noktasına ışınlanır ve durum 0 olur.
oxevent.end_event_force()
yok
oxevent.give_item(vnum, adet) OX haritasında kalan bütün katılımcılara verilen eşyayı verir.
oxevent.give_item(50011, 1)
yok
oxevent.get_oxquiz_fn() oxevent.open'ın yükleyeceği soru dosyasının yolunu döndürür (varsayılan locale klasöründeki oxquiz.lua). Topluluk eki (ENABLE_NEWSTUFF).
say(oxevent.get_oxquiz_fn())
metin
oxevent.set_oxquiz_fn(dosya adı) Soru dosyasını locale klasörüne göre verilen dosya adıyla değiştirir. Topluluk eki (ENABLE_NEWSTUFF).
oxevent.set_oxquiz_fn("oxquiz_kolay.lua")
yok
oxevent.set_oxquiz_fn0(dosya yolu) Soru dosyasını locale klasörü eklenmeden, verilen yolla değiştirir. Topluluk eki (ENABLE_NEWSTUFF). yok

Önceki modül: building | Sonraki modül: forked

Liste, Metin2 sunucu kaynak kodundaki quest fonksiyon tablolarından (questlua dosyaları) ve sunucunun quest klasöründeki questlib.lua ile GFquestlib.lua dosyalarından çıkarıldı; açıklamalar fonksiyonların gövdelerinden yazıldı. İncelenen kaynak, orijinal koda topluluk düzeltmeleri eklenmiş bir sürümdür: "Topluluk eki" notu taşıyan fonksiyonlar (ENABLE_NEWSTUFF gibi derleme seçenekleri) her sunucuda bulunmaz, kapalı seçeneklere bağlı pc.open_shop0 ve pc.make_guild0 listede yoktur. "Geçerli oyuncu" quest'i tetikleyen oyuncudur; server_timer olaylarında geçerli oyuncu olmadığından pc, npc ve item fonksiyonlarının çoğu orada kullanılamaz. Koordinat birimi fonksiyona göre değişir: kimi metre, kimi oyun birimi (metre × 100) ister. C++'a eklenen yeni bir fonksiyonu kullanmadan önce adını quest klasöründeki quest_functions listesine de eklemek gerekir. Fonksiyonlar kaynak sürümüne göre değişebilir.