İçeriğe geç

Metin2 Quest party Fonksiyonları

Geçerli oyuncunun grubuyla ilgili fonksiyonlar. Üyelere uygulanan işler yalnız aynı çekirdekteki (çoğunda aynı haritadaki) üyelere ulaşır; bazıları grup yoksa oyuncunun kendisine uygulanır. Bu modülde 20 fonksiyon var. Diğer modüller quest fonksiyonları listesinde, quest yazımının temeli quest yazma rehberinde.

FonksiyonNe yaparDöner
party.is_leader() Geçerli oyuncu bir grubun lideriyse true döner.
if party.is_leader() then
true/false
party.is_party() Geçerli oyuncu bir gruptaysa true döner.
if not party.is_party() then say("Önce bir grup kurmalısın.") return end
true/false
party.get_leader_pid() Grup liderinin oyuncu kimliğini (PID) döndürür; grup yoksa -1.
local lider = party.get_leader_pid()
sayı
party.setf(bayrak adı, değer) Gruba bağlı bir bayrak yazar. Grup bayrakları veritabanına yazılmaz, yalnız bellekte tutulur ve grup dağılınca kaybolur.
party.setf("asama", 2)
yok
party.getf(bayrak adı) Gruba bağlı bayrağın değerini döndürür; grup ya da bayrak yoksa 0.
if party.getf("asama") == 2 then
sayı
party.setqf(bayrak adı, değer) Geçerli quest'in verilen bayrağını gruptaki bu çekirdekteki bütün üyeler için yazar; grup yoksa yalnız oyuncunun kendisine.
party.setqf("girdi", 1)
yok
party.chat(metin, ...) Verilen metinleri birleştirip gruptaki üyelere konuşma türünde sohbet iletisi olarak gönderir.
party.chat("Kapı açıldı.")
yok
party.syschat(metin, ...) Verilen metinleri birleştirip gruptaki üyelere bilgi iletisi olarak gönderir.
party.syschat("Zindan 10 dakika sonra kapanacak.")
yok
party.get_near_count() Grupta liderin yakınındaki üye sayısını döndürür; grup yoksa 0.
if party.get_near_count() < 2 then
sayı
party.show_cinematic(betik metni) Verilen betik metnini yakındaki grup üyelerine sinema penceresi kipinde gönderir. yok
party.run_cinematic(sinema adı) Yakındaki grup üyelerinin istemcisinde adı verilen sinematik sahneyi oynatır. yok
party.get_max_level() Grup üyelerinin en yüksek seviyesini döndürür; grup yoksa 1.
if party.get_max_level() > 75 then
sayı
party.get_min_level() Grup üyelerinin en düşük seviyesini döndürür; grup yoksa 1. Topluluk eki (ENABLE_NEWSTUFF).
if party.get_min_level() < 40 then
sayı
party.leave_party() Geçerli oyuncuyu gruptan çıkarır; grup iki kişiyse grubu dağıtır. İşlemden sonra oyuncu grupsuzsa true döner. Topluluk eki (ENABLE_NEWSTUFF).
party.leave_party()
true/false
party.delete_party() Geçerli oyuncu grup lideriyse grubu dağıtır; işlemden sonra oyuncu grupsuzsa true döner. Topluluk eki (ENABLE_NEWSTUFF).
party.delete_party()
true/false
party.clear_ready() Yakındaki grup üyelerinden zindan hazır işaretini (member.set_ready ile konan etkiyi) kaldırır.
party.clear_ready()
yok
party.is_in_dungeon() Grubun bağlı olduğu bir zindan örneği varsa true döner; grup yoksa false.
if party.is_in_dungeon() then
true/false
party.give_buff(etki türü, puan (POINT) no, değer, etki bayrağı, süre (saniye), SP maliyeti, üzerine yaz (true/false), küp kipi (true/false)) Aynı haritadaki bütün grup üyelerine (grup yoksa oyuncuya) verilen etkiyi ekler. Sekiz parametrenin hepsi doğru türde verilmezse false döner. true/false
party.is_map_member_flag_lt(bayrak adı, değer) Aynı haritadaki bütün grup üyelerinde geçerli quest'in verilen bayrağı değerden küçükse true döner. Grup yoksa geçerli bir değer döndürmez.
if party.is_map_member_flag_lt("giris", 1) then
true/false
party.get_member_pids() Aynı haritadaki grup üyelerinin oyuncu kimliklerini ayrı dönüş değerleri olarak döndürür; tabloya almak için çağrı süslü paranteze yazılır. Grup yoksa değer döndürmez.
local pids = {party.get_member_pids()}
birden çok sayı (PID'ler)

Önceki modül: target | Sonraki modül: guild

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.