İçeriğe geç

Metin2 Quest game Fonksiyonları

Oyun geneli işler: sunucu geneli olay bayrakları, yere eşya düşürme, depo ve nesne market pencereleri, lonca kurma penceresi. 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
game.get_safebox_level() Geçerli oyuncunun depo boyutunu seviye (sayfa) olarak döndürür; depo hücre satırı sayısının 9'a bölümüdür.
if game.get_safebox_level() < 3 then
sayı
game.request_make_guild() Geçerli oyuncunun istemcisinde lonca adı girme penceresini açtırır; lonca kurma işi bu pencereden sonra sunucuda yürür.
game.request_make_guild()
yok
game.set_safebox_level(seviye) Geçerli oyuncunun depo boyutunu verilen seviyeye (seviye × 9 satır) ayarlar ve veritabanına yazar. Depo hesaba bağlı olduğundan hesaptaki bütün karakterleri etkiler.
game.set_safebox_level(game.get_safebox_level() + 1)
yok
game.open_safebox() Geçerli oyuncuya depo parolası penceresini açar ve bulunduğu noktayı kaydeder. Parola girildiğinde oyuncu bu noktadan 10 metreden fazla uzaklaşmışsa depo açılmaz.
game.open_safebox()
yok
game.open_mall() Geçerli oyuncuya nesne market deposunun (mall) parola penceresini açar.
game.open_mall()
yok
game.get_event_flag(bayrak adı) Sunucu geneli olay bayrağının bu çekirdekteki değerini döndürür; bayrak hiç ayarlanmamışsa 0.
if game.get_event_flag("ox_acik") == 1 then
sayı
game.set_event_flag(bayrak adı, değer) Sunucu geneli olay bayrağını ayarlar. İstek veritabanı sunucusuna gider, oradan bütün çekirdeklere dağıtılır ve quest tablosunda (dwPID 0) saklandığı için yeniden başlatmada korunur. Yeni değer bu tur tamamlanınca okunur. mob_exp, mob_item, mob_gold gibi bazı adların oranları değiştiren özel etkisi vardır.
game.set_event_flag("ox_acik", 1)
yok
game.drop_item(vnum, adet) Geçerli oyuncunun 2 metre çevresinde rastgele bir noktaya sahipsiz bir eşya düşürür; herkes alabilir ve eşya 5 dakika sonra yerden silinir.
game.drop_item(50050, 1)
yok
game.drop_item_with_ownership(vnum, adet (isteğe bağlı), sahiplik süresi (saniye, isteğe bağlı)) Geçerli oyuncunun yanına, sahiplik süresi boyunca yalnız onun alabileceği bir eşya düşürür. Süre verilmezse ya da 0 ve altıysa 10 saniyedir; eşya 5 dakika sonra yerden silinir.
game.drop_item_with_ownership(27001, 5, 60)
yok
game.drop_item_with_ownership_and_dice(vnum, adet (isteğe bağlı), sahiplik süresi (saniye, isteğe bağlı)) game.drop_item_with_ownership gibidir; oyuncu yakınında üyesi olan bir gruptaysa zar atılıp sonuç gruba duyurulur. Ancak gövde ardından sahipliği yine geçerli oyuncuya verdiği için bu kaynakta eşyayı fiilen geçerli oyuncu alır. Topluluk eki (ENABLE_DICE_SYSTEM).
game.drop_item_with_ownership_and_dice(50050, 1)
yok
game.open_web_mall() Geçerli oyuncunun istemcisine nesne market web sayfasını açma komutu gönderir; adres CONFIG'deki mall_url satırından gelir. Yalnız Avrupa yerel ayarlarında (turkey dahil) çalışır.
game.open_web_mall()
yok

Önceki modül: item | Sonraki modül: global

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.