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 95

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.quest sistemleri, oyuncuların oyun içinde belirli görevleri yerine getirmesiyle ilerlemesini sağlayan temel yapı taşlarından biridir. Bu sistem, hem oyuncu deneyimini zenginleştirir hem de sunucu tarafında oyun içi etkinlikleri yönlendirmeye yardımcı olur. Bu yazıda, Metin2 içinde kullanılan temel quest fonksiyonlarını açıklamalı olarak inceleyeceğiz.

Quest Dosyası Yapısı
Metin2 quest sistemleri genellikle Lua dili ile yazılmaktadır. Quest dosyaları genellikle quest_list.lua dosyasında tanımlanır ve .lua uzantılıdır. Her quest, begin() ve end() blokları arasında tanımlanır. Questler, trigger (tetikleyici), state (durum), timer, flag, mob ve npc gibi birçok bileşeni barındırabilir.

Quest Başlatma ve Bitirme Fonksiyonları
Begin() ve End() fonksiyonları, bir questin başlangıcını ve bitişini tanımlar. Begin() bloğu, oyuncu queste başladığında çalışır. End() bloğu ise quest tamamlandığında veya iptal edildiğinde devreye girer. Örneğin:

quest example_quest begin
state start begin
say('Bu questi başlatmak istiyor musun?')
end
end

Quest Durumları (State)
State yapısı, questin hangi aşamada olduğunu belirtir. Örneğin start, run, complete gibi durumlar tanımlanabilir. Her state kendi içinde farklı işlemleri gerçekleştirebilir. State'ler sayesinde questin akışı kontrol edilebilir.

Flag Kullanımı
Flag sistemleri, oyuncunun quest ilerlemesini takip etmek için kullanılır. Oyuncuya özel verileri saklamak ve daha sonra kontrol etmek için kullanılır. Örneğin bir questin daha önce tamamlanıp tamamlanmadığını kontrol etmek için bir flag tanımlanabilir.

Timer ve Trigger Sistemleri
Timer fonksiyonu, belirli bir süre sonra işlem yapılmasını sağlar. Trigger ise belirli bir eylemle (örneğin NPC'ye tıklama, bir eşya almak) tetiklenen fonksiyonlardır. Quest sisteminin interaktif olmasında önemli rol oynarlar.

Mob ve NPC ile Etkileşim
Quest içinde mob kill gibi işlemler için kill triggerları kullanılır. NPC ile konuşmak, eşya almak gibi işlemler içinse npc triggerları tanımlanabilir. Bu sayede oyuncular questleri daha dinamik şekilde tamamlayabilir.

Reward ve Item Sistemi
Quest tamamlandığında oyuncuya ödül vermek için reward sistemleri kullanılır. Ödül olarak item, para veya 경험 (experience) verilebilir. game.drop_item, pc.give_item gibi fonksiyonlar kullanılır.

Daily Quest ve Zamanlanmış Görevler
Günlük görevler, oyuncuların her gün girişmesi gereken questlerdir. Timer ve reset fonksiyonları ile bu görevler her gün sıfırlanabilir. Daily quest sistemleri, oyuncuların aktif kalmasını sağlar.

Custom Quest Geliştirme
Metin2 sunucularında özel quest sistemleri geliştirmek mümkündür. Geliştiriciler, Lua dilini kullanarak kompleks görev zincirleri, özel NPC etkileşimleri ve karmaşık reward sistemleri oluşturabilir. Martysama, Metin2Dev gibi topluluklar bu konuda kaynaklar sunmaktadır.

Hata Ayıklama (Debug) ve Sorun Giderme
Quest geliştirirken karşılaşılan hataları çözmek için loglama ve debug fonksiyonları kullanılır. say, notice, chat gibi fonksiyonlar ile debug işlemleri yapılabilir. Hataların erken tespiti quest sisteminin stabilitesini artırır.


Metin2 Quest Functions (With Explanations)

Metin2.quest systems are one of the fundamental components that allow players to progress by completing certain missions within the game. This system enriches the player experience and helps direct in-game activities on the server side. In this article, we will examine the basic quest functions used in Metin2 with explanations.

Quest File Structure
Metin2 quest systems are generally written in Lua language. Quest files are typically defined in the quest_list.lua file and have a [.lua] extension. Each quest is defined between begin() and end() blocks. Quests can contain many components such as trigger, state, timer, flag, mob, and npc.

Starting and Ending Quest Functions
Begin() and End() functions define the start and finish of a quest. The Begin() block runs when a player starts the quest. The End() block triggers when the quest is completed or canceled. For example:

quest example_quest begin
state start begin
say('Do you want to start this quest?')
end
end

Quest States (State)
State structures indicate which stage the quest is in. States like start, run, complete can be defined. Each state can perform different operations within itself. Through states, the flow of the quest can be controlled.

Flag Usage
Flag systems are used to track a player's quest progress. They store player-specific data and can be checked later. For example, a flag can be defined to check whether a quest has been completed before.

Timer and Trigger Systems
Timer function allows an action to occur after a specific duration. Trigger activates upon a specific event (such as clicking an NPC, picking up an item). These play an important role in making the quest system interactive.

Interaction with Mobs and NPCs
For actions like mob kill inside a quest, kill triggers are used. To interact with NPCs, pick up items, etc., npc triggers can be defined. This allows players to complete quests more dynamically.

Reward and Item System
To give rewards to players upon completing a quest, reward systems are used. Rewards can be items, money, or experience. Functions like game.drop_item, pc.give_item are used.

Daily Quests and Scheduled Missions
Daily quests are missions players must engage with each day. With timer and reset functions, these quests can reset every day. Daily quest systems help keep players active.

Custom Quest Development
It is possible to develop special quest systems on Metin2 servers. Developers can create complex quest chains, unique NPC interactions, and intricate reward systems using the Lua language. Communities like Martysama and Metin2Dev provide resources for this purpose.

Debugging and Troubleshooting
To resolve errors encountered while developing quests, logging and debugging functions are used. Debugging can be done using functions like say, notice, chat. Early detection of errors increases the stability of the quest system.
 

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

Benzer konular

Geri
Üst Alt