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.
| Fonksiyon | Ne yapar | Dö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.