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

Whistle

Ruhsuz Filozof
Kurucu
Kurumsal Üye
Geliştirici
Yardımsever Üye
Mesaj
11.533
Çözümler
549
Beğeni
12.163
Puan
5.915
Ticaret Puanı
1
Merhaba arkadaşlar,
Bildiğiniz üzere Metin2'nin quest kısmında Metin2'nin kendisine ait fonksiyonlar vardır. Bu fonksiyonlar sayesinde oyun için gerekli olan algoritmalar yapılmış olur.
Bu konu sürekli güncellenecektir.
Sırasıyla fonksiyonlara bakalım.

Not: Pc fonksiyonlarının örneği için:
Linkleri görebilmek için giriş yap veya kayıt ol.

  1. PC Fonksiyonları;
    • pc.get_account() : String değer döndürür. Hesap adını verir.
    • pc.get_account_id() : Int değer döndürür. Hesap idsini verir.
    • pc.get_alignment() : Int değer döndürür. Karakterin sıralama derecesini verir.
    • pc.get_dx() : Int değer döndürür. Karakterin dex puanını verir.
    • pc.get_empire() : Int değer döndürür. Karakterin krallığını verir. (1: Kırmızı, 2: Sarı, 3: Mavi)
    • pc.get_empty_inventory_count() : Int değer döndürür. Karakterin envanterinde boş olan slot sayısını verir.
    • 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.
    • pc.get_exp() : Int değer döndürür. Karakterin EXP bilgisini verir.
    • 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.
    • 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)
    • pc.get_gold() : Int değer döndürür. Karakterin Yang miktarını verir.
    • pc.get_guild() : Int değer döndürür. Karakterin loncasının idsini verir. Lonca yoksa false döndürür.
    • pc.get_horse_level() : Int değer döndürür. Karakter at seviyesini verir. Atı yoksa false döndürür.
    • pc.get_hp() : Int değer döndürür. Karakterin mevcut hayat puanını verir.
    • pc.get_ht() : Int değer döndürür. Karakterin VIT puanını verir.
    • pc.get_informer_item()
    • pc.get_informer_type()
    • pc.get_ip0() : String değer döndürür. Karakterin ip bilgisini verir.
    • pc.get_iq() : Int değer döndürür. Karakterin INT puanını verir.
    • pc.get_job(): Int değer döndürür. Karakterin cinsiyetini verir.
    • pc.get_killee_drop_pct()
    • pc.get_language()
    • pc.get_leadership()
    • pc.get_language2()
    • pc.get_level() : Int değer döndürür. Karakterin levelini verir.
    • pc.get_local_x() : Int değer döndürür. Client tabanlı karakterin bulunduğu konumun x değerini verir.
    • pc.get_local_y() : Int değer döndürür. Client tabanlı karakterin bulunuduğu konumun y değerini verir.
    • pc.get_logoff_interval()
    • pc.get_map_index() : Int değer döndürür. Karakterin bulunduğu haritanın idsini verir.
    • pc.get_max_hp() : Int değer döndürür. Karakterin alabileceği maksimum hp puanını verir.
    • pc.get_max_sp() : Int değer döndürür. Karakterin alabileceğini maksimum sp puanını verir.
    • pc.get_money() : Int değer döndürür. Karakterin Yang miktarını verir.
    • pc.get_name() : String değer döndürür. Karakterin adını verir.
    • pc.get_next_exp() : Int değer döndürür. Bir sonraki level için gerekli olan EXP miktarını verir.
    • pc.get_part()
    • pc.get_player_id() : Int değer döndürür. Karakterin idsini verir.
    • pc.get_playtime() : Int değer döndürür. Toplam oyunda geçirilen zamanı verir.
    • pc.get_premium_remain_sec() : Int değer döndürür. Premium süresini verir.
    • pc.get_race() : Int değer döndürür. Karakterin sınıfını verir.
    • pc.get_real_alignment() : Int değer döndürür. Karakterin sıralama puanını verir.
    • pc.get_sex() : Int değer döndürür. Karakterin cinsiyetini verir.
    • 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.
    • pc.get_skill_group() : Int değer döndürür. Karakterin seçmiş olduğu yetenek grubunu verir. Örn: Bedensel, Zihinsel
    • 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) => Suikast yeteneğinin seviyesini verir.
    • pc.get_skill_point() : Int değer döndürür. Karakterin kullanmamış olduğu yetenek puanlarının miktarını verir.
    • pc.get_sockets_item() : Dizi döndürür. Karakterin envanterinde bulunan eşyaların socket bilgisini listeler.
    • pc.get_sp() : Int değer döndürür. Karakterin SP miktarını verir.
    • pc.get_special_ride_vnum() : Int değer dönderir. Special item bilgilerini verir.
    • pc.get_st() : Int değer döndürür. Karakterin STR puanını verir.
    • pc.get_start_location()
    • pc.get_vid() : Int değer döndürür. Karakterin auth idsini verir.
    • pc.get_war_map()
    • 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.
    • 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.
    • pc.get_x() : Int değer döndürür. Server tabanlı karakterin x koordinatını verir.
    • pc.get_y() : Int değer döndürür. Server tabanlı karakterin y koordinatını verir.
    • 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.
    • pc.getcheque() : Int değer döndürür. Karakterin Won bilgisini verir.
    • pc.getcurrentmapindex() : Int değer döndürür. Karakterin bulunduğu haritanın idsini verir.
    • pc.getempire() : Int değer döndürür. Karakterin krallığını verir. (1: Kırmızı, 2: Sarı, 3: Mavi)
    • 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.
    • pc.getgold() : Int değer döndürür. Karakterin Yang miktarını verir.
    • pc.getguild() : Int değer döndürür. Karakterin loncasının idsini verir. Lonca yoksa false döndürür.
    • pc.gethp() : Int değer döndürür. Karakterin mevcut hayat puanını verir.
    • pc.getleadership()
    • pc.getmaxhp() : Int değer döndürür. Karakterin alabileceği maksimum hp puanını verir.
    • pc.getmaxsp() : Int değer döndürür. Karakterin alabileceği maksimum sp puanını verir.
    • pc.money() : Int değer döndürür. Karakterin Yang miktarını verir.
    • pc.getplaytime() : Int değer döndürür. Toplam oyunda geçirilen zamanı verir.
    • 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.
    • pc.getsp() : Int değer döndürür. Karakterin mevcut mana puanını verir.
    • 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.
    • pc.getx() : Int değer döndürür. Server tabanlı karakterin x koordinatını verir.
    • pc.gety() : Int değer döndürür. Server tabanlı karakterin y koordinatını verir.
    • pc.give_item(luaNumber item_vnum, luaNumber item_count) : Oyuncunun envanteri boşsa item verir.
    • pc.give_item2(LuaNumber item_vnum, luaNumber item_count) : Oyuncuya item verir. Envanteri doluysa eşya yere düşer.
    • pc.give_item2_select(luaNumber item_vnum, luaNumber count) : Oyuncuya item verdikten sonra seçim işlemi yapar. Daha sonra item. quest fonksiyonlarını kullanabilirsiniz.
  2. Item Fonksiyonları
    • 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)
    • item.change_to_over9() : Eşyanın dönüşümü değiştirir.
    • item.copy_and_give_before_remove(LuaNumber vnum) : Argumentte verdiğimiz vnum ile size bir eşya verir ve eşyayı siler.
    • item.get_addon_type() : Eşyanın ortalama ve beceri hasarı alabilip almadığı addon_type değerini döndürür.
    • item.get_attribute_set_index()
    • item.get_cell(LuaNumber cell) : Envanterinizdeki eşyanının bilgisini alır.
    • item.get_count() : Eşyanın adetini döndürür. Int olarak.
    • item.get_id() : Eşyanın idsini. Int olarak.
    • item.get_level() : Eşyanın + değerini döndürür. Int olarak.
    • item.get_level_limit() : Eşyanın level limitini alır.
    • item.get_name() : Eşyanın locale name değerini döndürür.
    • item.get_over9_material_vnum(LuaNumber vnum) : +9'dan sonra dönüşen eşyanın dönüşüm malzemelerini döndürür.
    • item.get_refine_vnum(LuaNumber vnum) : Eşyanın refine (geliştirme) vnumunu alır.
    • item.get_shop_price() : NPC'de eşyanın satılan fiyatı.
    • item.get_size() : Eşyanın envanterde kaç slot kapladığının bilgisini verir.
    • item.get_socket(LuaNumber index) : Eşyaya kakılan taşları veya eşyanın süresinin bilgilerini döndürür.
    • item.get_sub_type() : Eşyanın alt türünün döndürür.
    • item.get_type() : Eşyanın ana türünü döndürür.
    • item.get_value(LuaNumber index) : Eşyanın value değerlerini döndürür.
    • item.get_vnum() : Eşyanın item_proto'daki idsini döndürür.
    • item.has_flag(LuaNumber value) : Argumentte verilen değerin eşyada olup olmadığını kontrol eder.
    • item.next_refine_vnum() : Bir sonraki + geliştirmedeki refine vnumu döndürür.
    • 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)
    • item.remove() : Eşyayı siler.
    • item.select(LuaNumber item_id) : Eşyanın idsi ile eşyayı seçer. (Questlerde kullanmak için.)
    • item.select_cell(LuaNumber cell) : Eşyayı envanterdaki cell numarası ile seçer. (Questlerde kullanmak için.)
    • item.set_shop_price() : Eşyanın npcde satılan değerini değiştirmek.
    • item.set_socket(LuaNumber index, LuaNumber value) : Eşyanın socket değerini değiştirir.
    • item.set_value(LuaNumber index, LuaNumber value) : Eşyanın valuesini değiştirir.
    • item.start_realtime_expire() : Eşyanın süresi varsa süresini başlatır.
    • /** Martysama Source New Stuff **/
    • item.get_wearflag0() : Eşyanın türünün bilgisini verir.
    • item.has_wearflag0(luaNumber index) : Argument ile gönderilen veri eşyanın wearflagı ile uyuşup uyuşmadığını kontrol eder.
    • item.get_antiflag0(luaNumber index) : Argument ile gönderilen veri eşyanın antiflagı ile uyuşup uyuşmadığını kontrol eder.
    • item.has_antiflag0() : Eşyanın antiflag (şaman giyemez vs.) bilgisini döndürür.
    • item.get_immuneflag0() : Eşyanın immuneflag değerini döndürür.
    • item.has_immuneflag0(luaNumber index) : Argument ile gönderilen veri eşyanın immuneflag ile uyuşup uyuşmadığını kontrol eder.
    • item.add_attr0(LuaNumber mode) : Eşyaya efsun eklemeye yarar.
    • item.change_attr0(LuaNumber mode) : Eşyanın efsunlarını değiştirir.
    • item.clear_attr0(LuaNumber mode) : Eşyanın efsunlarını temizler
    • item.count_attr0(LuaNumber mode) : Eşyanın efsunlarının değerini değiştirir.
    • item.get_attr0() : Eşyanın efsunlarını döndürür.
    • 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.
    • item.set_count0(LuaNumber count) : Eşyanın adetini değiştirir.
    • item.is_available0() : Kullanılan item.
    • /** Martysama Source New Stuff **/
  3. NPC Fonksiyonları
    • npc.get_empire() : pc bulunduğu krallığın bilgisini verir.
    • npc.get_guild() : npcnin loncasını verir.
    • npc.get_leader_vid() : partynin liderinin vid değerini verir.
    • npc.get_local_x0() : local x koordinatını verir.
    • npc.get_local_y0() : local y koordinatını verir.
    • npc.get_race() : npcnin vnum değerini verir.
    • npc.get_remain_hairdye_count()
    • npc.get_remain_skill_book_count()
    • npc.dec_remain_hairdye_count() : mob 20031 idye sahipse true değerini dönderiyor.
    • npc.dec_remain_skill_book_count() : mob 20031 idye sahipse true değerini dönderiyor.
    • npc.get_vid() : npc vid değerini verir.
    • npc.get_x0() : npcnin x koordinatını verir.
    • npc.get_y0() : npcnin y koordinatını verir.
    • npc.getrace() : npcnin vnum değerini verir.
    • npc.is_pc() : bilgisayar oyuncusu ise true dönderir.
    • npc.is_quest() : quest npccsi ise true dönderir.
    • npc.kill() : npc öldürür.
    • npc.lock() : npcyi kilitler.
    • npc.open_shop(LuaNumber shop_vnum) : npcnin sattığı ürünleri gösterir.
    • npc.purge() : npcyi yok eder.
    • npc.unlock() : npc kilidi açar.
    • npc.get_job() : npcnin cinsiyetini verir.
    • /** new stuff **/
    • npc.get_level0() : npcnin levelini verir.
    • npc.get_name0() : npcnin adını verir.
    • npc.get_vnum0() : npcnin vnum verir.
    • npc.get_pid0() : npcnin pid değerini verir.
    • npc.is_available0() : npc ise true döndürür.
    • /** new stuff end **/
 
Son düzenleme:
İtem fonksiyonları açıklamalarıyla beraber konuya dahil edilmiştir.
 
Başka bi konu da npc den bonus alma ile ilgili bir quest paylaşmıştınız o questinizi kullandım ancak questin içinde geçen efsunData fonksiyonu bende olmadığı için questi putty den geçirirken hata veriyor ve oyun içinde görükse bile işlev sağlamıyor

ve npc de bulunan önceki seçenekler 2şerli olarak gözüküyor aynı seçenekten 2 adet var
 
En son bir moderatör tarafından düzenlenmiş:
O hangi konu ise o konu altından yorum yaparsanız daha iyi olur.
 
O zaman şöyle yapalım.
Soru, Cevap ve Yardım bu bölüme yaşadığınız sorunu detaylı bir şekilde açıkladığınız bir konu açın. :)
 
NPC fonksiyonları ve açıklamaları eklenmiştir. :)
 
Geri
Üst