Metin2 Quest arena Fonksiyonları
Arena (düello sahası) fonksiyonları: iki oyuncu arasında arenada düello başlatma, izleyici ekleme, arena haritası tanımlama. Bu modülde 5 fonksiyon var. Diğer modüller quest fonksiyonları listesinde, quest yazımının temeli quest yazma rehberinde.
| Fonksiyon | Ne yapar | Döner |
|---|---|---|
arena.start_duel(rakip adı, set sayısı) |
Geçerli oyuncu ile adı verilen oyuncu arasında arenada düello başlatır; ata binmişlerse indirir. Set sayısı kaç galibiyette biteceğini belirler, düello 5 dakika sürer. 1 başladı, 0 oyunculardan biri bulunamadı, 2 biri zaten arenada, 3 boş arena yok ya da başlatılamadı.local sonuc = arena.start_duel(rakip, 3) |
sayı (1, 0, 2 ya da 3) |
arena.add_map(harita no, A x, A y, B x, B y) |
Verilen haritayı iki başlangıç noktasıyla arena olarak tanımlar. Sunucu açılışında arena kurulumu içindir. | yok |
arena.get_duel_list() |
Süren düelloları {oyuncu A adı, oyuncu B adı, harita no, izleme x, izleme y} biçimindeki tablolardan oluşan bir liste olarak döndürür.local liste = arena.get_duel_list() |
tablo |
arena.add_observer(harita no, izleme x, izleme y) |
Geçerli oyuncuyu verilen arenaya izleyici olarak gönderir.arena.add_observer(d[3], d[4], d[5]) |
yok |
arena.is_in_arena(oyuncu kimliği (PID)) |
Dönüş mantığı adından farklıdır: oyuncu bu çekirdekte bulunamazsa 1; oyuncu arenada dövüşmüyor ya da izleyiciyken arena kaydında düellocu görünüyorsa 1; diğer durumlarda 0 döndürür. Arena yönetim quest'inin iç denetimidir.if arena.is_in_arena(pc.get_player_id()) == 0 then |
sayı (0 ya da 1) |
Önceki modül: mgmt | Sonraki modül: ba
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.