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