Metin2 Quest Fonksiyonları (Açıklamalı Şekilde)

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 45

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
  1. <li data-xf-list-type="ol">PC Fonksiyonları;
    • <li data-xf-list-type="ul">pc.get_account() : String değer döndürür. Hesap adını verir. <li data-xf-list-type="ul">pc.get_account_id() : Int değer döndürür. Hesap idsini verir. <li data-xf-list-type="ul">pc.get_alignment() : Int değer döndürür. Karakterin sıralama derecesini verir. <li data-xf-list-type="ul">pc.get_dx() : Int değer döndürür. Karakterin dex puanını verir. <li data-xf-list-type="ul">pc.get_empire() : Int değer döndürür. Karakterin krallığını verir. (1: Kırmızı, 2: Sarı, 3: Mavi) <li data-xf-list-type="ul">pc.get_empty_inventory_count() : Int değer döndürür. Karakterin envanterinde boş olan slot sayısını verir. <li data-xf-list-type="ul">pc.get_equip_refine_level(LuaNumber cell) : 1 argument alır. Int değerindedir. Envanterde slot idsini gönderdiğiniz zaman o slottaki eşyanın refine levelini yani + değerini verir. <li data-xf-list-type="ul">pc.get_exp() : Int değer döndürür. Karakterin EXP bilgisini verir. <li data-xf-list-type="ul">pc.get_exp_level() : Int değer döndürür. Karakterin EXP kutusunun bilgisini verir. Kaç kutu dolu ise o kadar sayı döndürür. <li data-xf-list-type="ul">pc.get_gm_level() : Int değer döndürür. Karakterin GM yetkisini verir. (1: Player, 2: LOW_WIZARD, 3: GOD, 4: HIGH_WIZARD, 5: IMPLEMENTOR) <li data-xf-list-type="ul">pc.get_gold() : Int değer döndürür. Karakterin Yang miktarını verir. <li data-xf-list-type="ul">pc.get_guild() : Int değer döndürür. Karakterin loncasının idsini verir. Lonca yoksa false döndürür. <li data-xf-list-type="ul">pc.get_horse_level() : Int değer döndürür. Karakter at seviyesini verir. Atı yoksa false döndürür. <li data-xf-list-type="ul">pc.get_hp() : Int değer döndürür. Karakterin mevcut hayat puanını verir. <li data-xf-list-type="ul">pc.get_ht() : Int değer döndürür. Karakterin VIT puanını verir. <li data-xf-list-type="ul">pc.get_informer_item() <li data-xf-list-type="ul">pc.get_informer_type() <li data-xf-list-type="ul">pc.get_ip0() : String değer döndürür. Karakterin ip bilgisini verir. <li data-xf-list-type="ul">pc.get_iq() : Int değer döndürür. Karakterin INT puanını verir. <li data-xf-list-type="ul">pc.get_job(): Int değer döndürür. Karakterin cinsiyetini verir. <li data-xf-list-type="ul">pc.get_killee_drop_pct() <li data-xf-list-type="ul">pc.get_language() <li data-xf-list-type="ul">pc.get_leadership() <li data-xf-list-type="ul">pc.get_language2() <li data-xf-list-type="ul">pc.get_level() : Int değer döndürür. Karakterin levelini verir. <li data-xf-list-type="ul">pc.get_local_x() : Int değer döndürür. Client tabanlı karakterin bulunduğu konumun x değerini verir. <li data-xf-list-type="ul">pc.get_local_y() : Int değer döndürür. Client tabanlı karakterin bulunuduğu konumun y değerini verir. <li data-xf-list-type="ul">pc.get_logoff_interval() <li data-xf-list-type="ul">pc.get_map_index() : Int değer döndürür. Karakterin bulunduğu haritanın idsini verir. <li data-xf-list-type="ul">pc.get_max_hp() : Int değer döndürür. Karakterin alabileceği maksimum hp puanını verir. <li data-xf-list-type="ul">pc.get_max_sp() : Int değer döndürür. Karakterin alabileceğini maksimum sp puanını verir. <li data-xf-list-type="ul">pc.get_money() : Int değer döndürür. Karakterin Yang miktarını verir. <li data-xf-list-type="ul">pc.get_name() : String değer döndürür. Karakterin adını verir. <li data-xf-list-type="ul">pc.get_next_exp() : Int değer döndürür. Bir sonraki level için gerekli olan EXP miktarını verir. <li data-xf-list-type="ul">pc.get_part() <li data-xf-list-type="ul">pc.get_player_id() : Int değer döndürür. Karakterin idsini verir. <li data-xf-list-type="ul">pc.get_playtime() : Int değer döndürür. Toplam oyunda geçirilen zamanı verir. <li data-xf-list-type="ul">pc.get_premium_remain_sec() : Int değer döndürür. Premium süresini verir. <li data-xf-list-type="ul">pc.get_race() : Int değer döndürür. Karakterin sınıfını verir. <li data-xf-list-type="ul">pc.get_real_alignment() : Int değer döndürür. Karakterin sıralama puanını verir. <li data-xf-list-type="ul">pc.get_sex() : Int değer döndürür. Karakterin cinsiyetini verir. <li data-xf-list-type="ul">pc.get_sig_items(LuaNumber group_vnum) : Int argument alır. Dizi döndürür. Argument ile gönderilmiş eşya grubunun eşya listesini verir. <li data-xf-list-type="ul">pc.get_skill_group() : Int değer döndürür. Karakterin seçmiş olduğu yetenek grubunu verir. Örn: Bedensel, Zihinsel <li data-xf-list-type="ul">pc.get_skill_level(LuaNumber vnum) : 1 argument alır. Int döndürür. Argument ile gönderilen yetenek idsinin seviyesini verir. Örn: pc.get_skill_level(31) =&gt; Suikast yeteneğinin seviyesini verir. <li data-xf-list-type="ul">pc.get_skill_point() : Int değer döndürür. Karakterin kullanmamış olduğu yetenek puanlarının miktarını verir. <li data-xf-list-type="ul">pc.get_sockets_item() : Dizi döndürür. Karakterin envanterinde bulunan eşyaların socket bilgisini listeler. <li data-xf-list-type="ul">pc.get_sp() : Int değer döndürür. Karakterin SP miktarını verir. <li data-xf-list-type="ul">pc.get_special_ride_vnum() : Int değer dönderir. Special item bilgilerini verir. <li data-xf-list-type="ul">pc.get_st() : Int değer döndürür. Karakterin STR puanını verir. <li data-xf-list-type="ul">pc.get_start_location() <li data-xf-list-type="ul">pc.get_vid() : Int değer döndürür. Karakterin auth idsini verir. <li data-xf-list-type="ul">pc.get_war_map() <li data-xf-list-type="ul">pc.get_weapon() : Int değer döndürür. Karakterin eline giymiş olduğu silahn vnum değerini verir. Eli boşsa false döndürür. <li data-xf-list-type="ul">pc.get_wear(LuaNumber cell) : 1 tane int argument alır. Int değer döndürür. Argument ile gönderilen veri ile belirlenen envanterdaki kutuda eşyanın wear flagını verir. <li data-xf-list-type="ul">pc.get_x() : Int değer döndürür. Server tabanlı karakterin x koordinatını verir. <li data-xf-list-type="ul">pc.get_y() : Int değer döndürür. Server tabanlı karakterin y koordinatını verir. <li data-xf-list-type="ul">pc.getarmor() : Int değer döndürür. Karakterin üstüne giydiği zırhın vnumunu verir. Eğer yoksa false döndürür. <li data-xf-list-type="ul">pc.getcheque() : Int değer döndürür. Karakterin Won bilgisini verir. <li data-xf-list-type="ul">pc.getcurrentmapindex() : Int değer döndürür. Karakterin bulunduğu haritanın idsini verir. <li data-xf-list-type="ul">pc.getempire() : Int değer döndürür. Karakterin krallığını verir. (1: Kırmızı, 2: Sarı, 3: Mavi) <li data-xf-list-type="ul">pc.getf(LuaString questname, LuaString flagname) : 2 tane string argument alır. 1. quest adı, 2. flag adı. Int değer döndürür. quest veritabanına eklenen değeri döndürür. <li data-xf-list-type="ul">pc.getgold() : Int değer döndürür. Karakterin Yang miktarını verir. <li data-xf-list-type="ul">pc.getguild() : Int değer döndürür. Karakterin loncasının idsini verir. Lonca yoksa false döndürür. <li data-xf-list-type="ul">pc.gethp() : Int değer döndürür. Karakterin mevcut hayat puanını verir. <li data-xf-list-type="ul">pc.getleadership() <li data-xf-list-type="ul">pc.getmaxhp() : Int değer döndürür. Karakterin alabileceği maksimum hp puanını verir. <li data-xf-list-type="ul">pc.getmaxsp() : Int değer döndürür. Karakterin alabileceği maksimum sp puanını verir. <li data-xf-list-type="ul">pc.money() : Int değer döndürür. Karakterin Yang miktarını verir. <li data-xf-list-type="ul">pc.getplaytime() : Int değer döndürür. Toplam oyunda geçirilen zamanı verir. <li data-xf-list-type="ul">pc.getqf(LuaString flag) : 1 string argument alır. Int döndürür. Çalışan questin flag değerini quest veritabanında arar ve valuesini döndürür. <li data-xf-list-type="ul">pc.getsp() : Int değer döndürür. Karakterin mevcut mana puanını verir. <li data-xf-list-type="ul">pc.getweapon() : Int değer döndürür. Karakterin eline giymiş olduğu silahn vnum değerini verir. Eli boşsa false döndürür. <li data-xf-list-type="ul">pc.getx() : Int değer döndürür. Server tabanlı karakterin x koordinatını verir. <li data-xf-list-type="ul">pc.gety() : Int değer döndürür. Server tabanlı karakterin y koordinatını verir.
    <li data-xf-list-type="ol">Item Fonksiyonları
    • <li data-xf-list-type="ul">item.can_over9refine() : Eşyanın +9'dan sonra dönüşümü var mı diye kontrol eder. Boolean döndürür. (Varsa: 1, Yoksa: 0) <li data-xf-list-type="ul">item.change_to_over9() : Eşyanın dönüşümü değiştirir. <li data-xf-list-type="ul">item.copy_and_give_before_remove(LuaNumber vnum) : Argumentte verdiğimiz vnum ile size bir eşya verir ve eşyayı siler. <li data-xf-list-type="ul">item.get_addon_type() : Eşyanın ortalama ve beceri hasarı alabilip almadığı addon_type değerini döndürür. <li data-xf-list-type="ul">item.get_attribute_set_index() <li data-xf-list-type="ul">item.get_cell(LuaNumber cell) : Envanterinizdeki eşyanının bilgisini alır. <li data-xf-list-type="ul">item.get_count() : Eşyanın adetini döndürür. Int olarak. <li data-xf-list-type="ul">item.get_id() : Eşyanın idsini. Int olarak. <li data-xf-list-type="ul">item.get_level() : Eşyanın + değerini döndürür. Int olarak. <li data-xf-list-type="ul">item.get_level_limit() : Eşyanın level limitini alır. <li data-xf-list-type="ul">item.get_name() : Eşyanın locale name değerini döndürür. <li data-xf-list-type="ul">item.get_over9_material_vnum(LuaNumber vnum) : +9'dan sonra dönüşen eşyanın dönüşüm malzemelerini döndürür. <li data-xf-list-type="ul">item.get_refine_vnum(LuaNumber vnum) : Eşyanın refine (geliştirme) vnumunu alır. <li data-xf-list-type="ul">item.get_shop_price() : NPC'de eşyanın satılan fiyatı. <li data-xf-list-type="ul">item.get_size() : Eşyanın envanterde kaç slot kapladığının bilgisini verir. <li data-xf-list-type="ul">item.get_socket(LuaNumber index) : Eşyaya kakılan taşları veya eşyanın süresinin bilgilerini döndürür. <li data-xf-list-type="ul">item.get_sub_type() : Eşyanın alt türünün döndürür. <li data-xf-list-type="ul">item.get_type() : Eşyanın ana türünü döndürür. <li data-xf-list-type="ul">item.get_value(LuaNumber index) : Eşyanın value değerlerini döndürür. <li data-xf-list-type="ul">item.get_vnum() : Eşyanın item_proto'daki idsini döndürür. <li data-xf-list-type="ul">item.has_flag(LuaNumber value) : Argumentte verilen değerin eşyada olup olmadığını kontrol eder. <li data-xf-list-type="ul">item.next_refine_vnum() : Bir sonraki + geliştirmedeki refine vnumu döndürür. <li data-xf-list-type="ul">item.over9refine() : Eşyanın +9'dan sonra dönüşümü var mı diye kontrol eder. Boolean döndürür. (Varsa: 1, Yoksa: 0) <li data-xf-list-type="ul">item.remove() : Eşyayı siler. <li data-xf-list-type="ul">item.select(LuaNumber item_id) : Eşyanın idsi ile eşyayı seçer. (Questlerde kullanmak için.) <li data-xf-list-type="ul">item.select_cell(LuaNumber cell) : Eşyayı envanterdaki cell numarası ile seçer. (Questlerde kullanmak için.) <li data-xf-list-type="ul">item.set_shop_price() : Eşyanın npcde satılan değerini değiştirmek. <li data-xf-list-type="ul">item.set_socket(LuaNumber index, LuaNumber value) : Eşyanın socket değerini değiştirir. <li data-xf-list-type="ul">item.set_value(LuaNumber index, LuaNumber value) : Eşyanın valuesini değiştirir. <li data-xf-list-type="ul">item.start_realtime_expire() : Eşyanın süresi varsa süresini başlatır. <li data-xf-list-type="ul">item.get_wearflag0() : Eşyanın türünün bilgisini verir. <li data-xf-list-type="ul">item.has_wearflag0(luaNumber index) : Argument ile gönderilen veri eşyanın wearflagı ile uyuşup uyuşmadığını kontrol eder. <li data-xf-list-type="ul">item.get_antiflag0(luaNumber index) : Argument ile gönderilen veri eşyanın antiflagı ile uyuşup uyuşmadığını kontrol eder. <li data-xf-list-type="ul">item.has_antiflag0() : Eşyanın antiflag (şaman giyemez vs.) bilgisini döndürür. <li data-xf-list-type="ul">item.get_immuneflag0() : Eşyanın immuneflag değerini döndürür. <li data-xf-list-type="ul">item.has_immuneflag0(luaNumber index) : Argument ile gönderilen veri eşyanın immuneflag ile uyuşup uyuşmadığını kontrol eder. <li data-xf-list-type="ul">item.add_attr0(LuaNumber mode) : Eşyaya efsun eklemeye yarar. <li data-xf-list-type="ul">item.change_attr0(LuaNumber mode) : Eşyanın efsunlarını değiştirir. <li data-xf-list-type="ul">item.clear_attr0(LuaNumber mode) : Eşyanın efsunlarını temizler <li data-xf-list-type="ul">item.count_attr0(LuaNumber mode) : Eşyanın efsunlarının değerini değiştirir. <li data-xf-list-type="ul">item.get_attr0() : Eşyanın efsunlarını döndürür. <li data-xf-list-type="ul">item.set_attr0(LuaNumber id1, LuaNumber value1, LuaNumber id2, LuaNumber value2, LuaNumber id3, LuaNumber value3, LuaNumber id4, LuaNumber value4, LuaNumber id5, LuaNumber value5, LuaNumber id6, LuaNumber value6, LuaNumber id7, LuaNumber value7): Eşyanın efsunlarını tek tek girmeye yarıyor. <li data-xf-list-type="ul">item.set_count0(LuaNumber count) : Eşyanın adetini değiştirir. <li data-xf-list-type="ul">item.is_available0() : Kullanılan item.

Metin2 Quest Fonksiyonları (Açıklamalı Şekilde)

Metin2 oyununda quest sistematiği, oyuncuların oyun dünyasında belirli görevleri yaparak ilerlemesini sağlayan temel yapı taşlarından biridir. Bu sistem, genellikle Lua dilinde yazılmış olan scriptlerle yönetilir. Metin2 quest fonksiyonları, geliştiricilerin oyun içi etkileşimleri, ödüller, görev zincirleri ve daha fazlasını tanımlamasına olanak tanır. Bu yazıda, Metin2 quest fonksiyonlarını açıklamalı şekilde ele alacağız.

Metin2 Quest Sistemi Nedir?

Quest, Türkçesiyle 'görev' anlamına gelir. Metin2'de bu sistem sayesinde oyuncular belli görevleri tamamlayarak item, experience, gold gibi ödüller kazanabilir. Aynı zamanda quest sistem, oyun içi hikaye akışını yönlendiren ve oyuncuları aktif tutan önemli bir unsurdur.

Temel Metin2 Quest Fonksiyonları

quest begin / quest end
Bir quest dosyasının temel yapısı bu iki fonksiyon arasında tanımlanır. Örneğin:

Kod:
[B]quest[/B] quest_ismi [B]begin[/B][BR][/BR]-- İçerik burada tanımlanır[BR][/BR][B]end[/B]


when
Olay tetikleyici fonksiyonudur. Oyuncu bir NPC ile etkileşime girdiğinde, bir item kullandığında veya belirli bir konuma vardığında çalışır.

Kod:
[B]when[/B] login [B]with[/B] pc.level >= 10[BR][/BR][B]do[/B][BR][/BR]say('Leveliniz yeterli!')[BR][/BR][B]end[/B]


say() ve say_title()
NPC ile etkileşim sırasında mesaj göstermek için kullanılır. say() mesaj kutusu oluşturur, say_title() ise başlık ekler.

Kod:
say_title('Görev Başlatıcı')[BR][/BR]say('Sana bir görevim var.')[BR][/BR]


getitem() ve item.get_vnum()
Oyuncunun envanterinde belirli bir item olup olmadığını kontrol eder veya item bilgilerini alır.

Kod:
[B]if[/B] getitem(199999, 1) [B]then[/B][BR][/BR]syschat('Ödülünüzü aldınız.')[BR][/BR][B]end[/B]


pc.getqf() ve pc.setqf()
Quest flag adı verilen, oyuncuya özel verileri saklamak için kullanılır. Örneğin görevin durumu.

Kod:
[B]local[/B] gorev_durum = pc.getqf('gorev_bitti')[BR][/BR][B]if[/B] gorev_durum == 1 [B]then[/B][BR][/BR]syschat('Zaten görevi tamamladınız.')[BR][/BR][B]else[/B][BR][/BR]pc.setqf('gorev_bitti', 1)[BR][/BR][B]end[/B]


timer()
Belirli aralıklarla veya belirli bir süre sonra çalışacak fonksiyonları tetikler. Zamanlı görevler için idealdir.

Kod:
timer('gorev_suresi', 60)[BR][/BR][B]when[/B] timer.gorev_suresi [B]begin[/B][BR][/BR]syschat('Süre doldu!')[BR][/BR][B]end[/B]


chat() ve notice()
Oyuncuya mesaj göstermenin farklı yollarıdır. notice() ekranın üst kısmında, chat() sohbet kutusunda görünür.

Diğer Kullanışlı Fonksiyonlar

pc.kill() ve mob.spawn_at_vid()
NPC ya da mob ile etkileşim kurmak için kullanılır. Görevin bir aşaması olarak düşman spawn etmek mümkündür.

server_timer() ve clear_server_timer()
Sunucu bazında çalışan zamanlayıcılar oluşturur. Tüm oyuncuları etkileyen görevlerde kullanılabilir.

Hata Ayıklama ve Debug

d.local(): Geliştirme sunucusunda test yaparken kullanılır.
debug() ve syschat(): Hata ayıklama mesajları göndermek için kullanılır.

Sonuç

Metin2 quest sistem, Lua bilgisiyle güçlü bir şekilde özelleştirilebilir. Doğru kullanıldığında oyuncu deneyimi ciddi anlamda artırılır. Bu fonksiyonlar, hem günlük görevler (daily quest) hem de uzun soluklu görev zincirleri (quest chain) için esneklik sağlar. Metin2Lobby olarak,.quest geliştirme ve özelleştirme konusunda uzmanlaşmış topluluklarımızla birlikte, daha gelişmiş custom quest örnekleri de paylaşmaya devam edeceğiz.


Metin2 Quest Functions (With Explanations)

Metin2 game's quest system is one of the core elements that allows players to progress by completing specific tasks within the game world. This system is typically managed through scripts written in Lua. Metin2 quest functions allow developers to define in-game interactions, rewards, quest chains, and more. In this article, we will examine Metin2 quest functions with explanations.

What is the Metin2 Quest System?

Quest, meaning 'mission' in Turkish, enables players in Metin2 to earn items, experience, gold, and other rewards by completing certain missions. Additionally, the quest system plays a significant role in directing the in-game story flow and keeping players engaged.

Basic Metin2 Quest Functions

quest begin / quest end
The basic structure of a quest file is defined between these two functions. For example:

Kod:
[B]quest[/B] quest_name [B]begin[/B][BR][/BR]-- Content is defined here[BR][/BR][B]end[/B]


when
An event-triggering function. It executes when a player interacts with an NPC, uses an item, or reaches a specific location.

Kod:
[B]when[/B] login [B]with[/B] pc.level >= 10[BR][/BR][B]do[/B][BR][/BR]say('Your level is sufficient!')[BR][/BR][B]end[/B]


say() and say_title()
Used to display messages during interaction with an NPC. say() creates a message box, while say_title() adds a title.

Kod:
say_title('Quest Starter')[BR][/BR]say('I have a mission for you.')[BR][/BR]


getitem() and item.get_vnum()
Checks whether a specific item exists in the player's inventory or retrieves item information.

Kod:
[B]if[/B] getitem(199999, 1) [B]then[/B][BR][/BR]syschat('You received your reward.')[BR][/BR][B]end[/B]


pc.getqf() and pc.setqf()
Used to store player-specific data called quest flags. For example, the status of a quest.

Kod:
[B]local[/B] quest_status = pc.getqf('quest_completed')[BR][/BR][B]if[/B] quest_status == 1 [B]then[/B][BR][/BR]syschat('You have already completed the quest.')[BR][/BR][B]else[/B][BR][/BR]pc.setqf('quest_completed', 1)[BR][/BR][B]end[/B]


timer()
Triggers functions at specific intervals or after a certain duration. Ideal for timed quests.

Kod:
timer('quest_duration', 60)[BR][/BR][B]when[/B] timer.quest_duration [B]begin[/B][BR][/BR]syschat('Time is up!')[BR][/BR][B]end[/B]


chat() and notice()
Different ways to send messages to the player. notice() appears at the top of the screen, whereas chat() appears in the chat window.

Other Useful Functions

pc.kill() and mob.spawn_at_vid()
Used to interact with NPCs or mobs. Spawning enemies as part of a quest stage is possible.

server_timer() and clear_server_timer()
Creates timers that operate on a server-wide basis. Can be used for events affecting all players.

Debugging and Error Handling

d.local(): Used during testing on development servers.
debug() and syschat(): Used to send debugging messages.

Conclusion

Metin2 quest system can be customized powerfully with Lua knowledge. When used correctly, it significantly enhances player experience. These functions provide flexibility for both daily quests (daily quest) and long-term quest chains (quest chain). At Metin2Lobby, together with our specialized communities in quest development and customization, we continue sharing advanced custom quest examples.
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Benzer konular

Geri
Üst Alt