İçeriğe geç

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.

FonksiyonNe yaparDö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.