Yeni Npc Eklemek

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Kod:
#NPC system changes begin #Companions   ["npc1","Borcha","Borcha",tf_hero, 0, reserved, fac_commoners,[itm_khergit_armor,itm_nomad_boots,itm_knife],    str_8|agi_7|int_12|cha_7|level(3),wp(60),knows_tracker_npc|    knows_ironflesh_1|knows_power_strike_1|knows_pathfinding_3|knows_athletics_2|knows_tracking_1|knows_riding_2, #skills 2/3 player at that level    0x00000004bf086143259d061a9046e23500000000001db52c0000000000000000],   ["npc2","Marnid","Marnid", tf_hero, 0,reserved, fac_commoners,[itm_linen_tunic,itm_hide_boots,itm_club],    str_7|agi_7|int_11|cha_6|level(1),wp(40),knows_merchant_npc|    knows_trade_2|knows_weapon_master_1|knows_ironflesh_1|knows_wound_treatment_1|knows_athletics_2|knows_first_aid_1|knows_leadership_1,    0x000000019d004001570b893712c8d28d00000000001dc8990000000000000000],   ["npc3","Ymira","Ymira",tf_female|tf_hero, 0, reserved, fac_commoners,[itm_dress,itm_woolen_hose,itm_knife],    str_6|agi_9|int_11|cha_6|level(1),wp(20),knows_merchant_npc|    knows_wound_treatment_1|knows_trade_1|knows_first_aid_3|knows_surgery_1|knows_athletics_1|knows_riding_1,    0x0000000083040001583b6db8dec5925b00000000001d80980000000000000000],   ["npc4","Rolf","Rolf",tf_hero, 0, reserved,  fac_commoners,[itm_leather_jerkin,itm_nomad_boots, itm_sword_medieval_a],    str_10|agi_9|int_13|cha_10|level(10),wp(110),knows_warrior_npc|    knows_weapon_master_2|knows_power_strike_2|knows_riding_2|knows_athletics_2|knows_power_throw_2|knows_first_aid_1|knows_surgery_1|knows_tactics_2|knows_leadership_2,    0x000000057f1074002c75c6a8a58ad72e00000000001e1a890000000000000000],   ["npc5","Baheshtur","Baheshtur",tf_hero, 0, reserved,  fac_commoners,[itm_nomad_vest,itm_nomad_boots, itm_sword_khergit_1],    str_9|agi_9|int_12|cha_7|level(5),wp(90),knows_warrior_npc|    knows_riding_2|knows_horse_archery_3|knows_power_draw_3|knows_leadership_2|knows_weapon_master_1,    0x000000088910318b5c6f972328324a6200000000001cd3310000000000000000],   ["npc6","Firentis","Firentis",tf_hero, 0, reserved,  fac_commoners,[itm_tabard,itm_nomad_boots, itm_sword_medieval_a],    str_10|agi_12|int_10|cha_5|level(6),wp(105),knows_warrior_npc|    knows_riding_2|knows_weapon_master_2|knows_power_strike_2|knows_athletics_3|knows_trainer_1|knows_leadership_1,   0x00000002050052036a1895d0748f3ca30000000000000f0b0000000000000000],   ["npc7","Deshavi","Deshavi",tf_female|tf_hero, 0, reserved,  fac_commoners,[itm_ragged_outfit,itm_wrapping_boots, itm_hunting_bow, itm_arrows, itm_quarter_staff],    str_8|agi_9|int_10|cha_6|level(2),wp(80),knows_tracker_npc|    knows_tracking_2|knows_athletics_2|knows_spotting_1|knows_pathfinding_1|knows_power_draw_2,    0x00000001fc08400533a15297634d44f400000000001e02db0000000000000000],   ["npc8","Matheld","Matheld",tf_female|tf_hero, 0, reserved,  fac_commoners,[itm_tribal_warrior_outfit,itm_nomad_boots, itm_sword_viking_1],    str_9|agi_10|int_9|cha_10|level(7),wp(90),knows_warrior_npc|    knows_weapon_master_3|knows_power_strike_2|knows_athletics_2|knows_leadership_3|knows_tactics_1,    0x00000005800c000637db8314e331e76e00000000001c46db0000000000000000],   ["npc9","Alayen","Alayen",tf_hero, 0, reserved,  fac_commoners,[itm_tabard,itm_nomad_boots, itm_sword_medieval_b_small],    str_11|agi_8|int_7|cha_8|level(2),wp(100),knows_warrior_npc|    knows_weapon_master_1|knows_riding_1|knows_athletics_1|knows_leadership_1|knows_tactics_1|knows_power_strike_1,    0x000000030100300f499d5b391b6db8d300000000001dc2e10000000000000000],   ["npc10","Bunduk","Bunduk",tf_hero, 0, reserved,  fac_commoners,[itm_padded_leather,itm_nomad_boots, itm_crossbow, itm_bolts, itm_pickaxe],    str_12|agi_8|int_9|cha_11|level(9),wp(105),knows_warrior_npc|    knows_weapon_master_3|knows_tactics_1|knows_leadership_1|knows_ironflesh_3|knows_trainer_2|knows_first_aid_2,    0x0000000a3f081006572c91c71c8d46cb00000000001e468a0000000000000000],   ["npc11","Katrin","Katrin",tf_female|tf_hero, 0, reserved,  fac_commoners,[itm_leather_apron, itm_falchion, itm_wrapping_boots],    str_8|agi_11|int_10|cha_10|level(8),wp(70),knows_merchant_npc|    knows_weapon_master_1|knows_first_aid_1|knows_wound_treatment_2|knows_ironflesh_3|knows_inventory_management_5,    0x0000000d7f0400035915aa226b4d975200000000001ea49e0000000000000000],   ["npc12","Jeremus","Jeremus",tf_hero, 0, reserved,  fac_commoners,[itm_pilgrim_disguise,itm_nomad_boots, itm_staff],    str_8|agi_7|int_13|cha_7|level(4),wp(30),   knows_merchant_npc|    knows_ironflesh_1|knows_power_strike_1|knows_surgery_4|knows_wound_treatment_3|knows_first_aid_3,    0x000000078000500e4f8ba62a9cd5d36d00000000001e36250000000000000000],   ["npc13","Nizar","Nizar",tf_hero, 0, reserved,  fac_commoners,[itm_nomad_robe,itm_nomad_boots, itm_scimitar, itm_courser],    str_7|agi_7|int_12|cha_8|level(3),wp(80),knows_warrior_npc|    knows_riding_2|knows_leadership_2|knows_athletics_2|knows_ironflesh_2|knows_power_strike_1|knows_weapon_master_1,    0x00000004bf0475c85f4e9592de4e574c00000000001e369c0000000000000000],   ["npc14","Lezalit","Lezalit",tf_hero, 0, reserved,  fac_commoners,[itm_nobleman_outfit,itm_nomad_boots, itm_sword_medieval_b_small],    str_9|agi_8|int_11|cha_8|level(5),wp(100),knows_warrior_npc|    knows_trainer_4|knows_weapon_master_3|knows_leadership_2|knows_power_strike_1,    0x00000001a410259144d5d1d6eb55e96a00000000001db0db0000000000000000],   ["npc15","Artimenner","Artimenner",tf_hero, 0, reserved,  fac_commoners,[itm_rich_outfit,itm_nomad_boots, itm_sword_medieval_b_small],    str_9|agi_9|int_12|cha_8|level(7),wp(80),knows_warrior_npc|    knows_tactics_2|knows_engineer_4|knows_trade_3|knows_tracking_1|knows_spotting_1,    0x0000000f2e1021862b4b9123594eab5300000000001d55360000000000000000],   ["npc16","Klethi","Klethi",tf_female|tf_hero, 0, reserved,  fac_commoners,[itm_peasant_dress,itm_nomad_boots, itm_dagger, itm_throwing_knives],    str_7|agi_11|int_8|cha_7|level(2),wp(80),knows_tracker_npc|    knows_power_throw_3|knows_athletics_2|knows_power_strike_1,    0x00000000000c100739ce9c805d2f381300000000001cc7ad0000000000000000],   #NPC system changes end[/FONT]

herhangi bir npc'nin kodlarını kopyalıyoruz ve bu kısmın altına yapıştıryoruz. Örneğin artimennerin kodlarını kopyalayalım.Ben npcnizin adının karamurat olduğunu farz ediyorum..

["npc15","Artimenner","Artimenner",tf_hero, 0, reserved, fac_commoners,[itm_rich_outfit,itm_nomad_boot s, itm_sword_medieval_b_small],
str_9|agi_9|int_12|cha_8|level (7),wp(80),knows_warrior_npc|
knows_tactics_2|knows_engineer _4|knows_trade_3|knows_trackin g_1|knows_spotting_1,
0x0000000f2e1021862b4b9123594e ab5300000000001d55360000000000 000000],

Altını çizdiğim kısımlar kesinlikle değişmesi gerekenler 16 tane npc olduğu için bizim ekleyeceğimiz npcyi 17 diye adlandırmalıyız en baştaki altı çizli kısım daha sonra isim kısmı yer alıyor isim kısmını değişirken eğer iki isimli bir ad vereceksek alt çizgi koymalıyız (örnek:Kara_murat).Kırmızı ile belirttiğim yerler karakterimizin statlarıdır yani level atladıkça verdiğimiz puanlamalar onlarıda istediğimiz şekilde yapabiliriz.şimdi bir örnek kod yapalım.

["npc17","Kara_Murat","Kara_Murat",tf_hero, 0, reserved, fac_commoners,[itm_rich_outfit,itm_nomad_boot s, itm_sword_medieval_b_small],
str_25|agi_25|int_25|cha_25|le vel(30),wp(80),knows_warrior_npc|
knows_tactics_2|knows_engineer _4|knows_trade_3|knows_trackin g_1|knows_spotting_1,
0x0000000f2e1021862b4b9123594e ab5300000000001d55360000000000 000000],

Eğer karakterinizin yüz şeklini değişik yapmak isterseniz yine module_troops.py dosyası içerisinde bulunan yüz kodlarıyla değiştirebilirsiniz.
işte bu kadar..


NoT : aLiNTiDiR aMa öNeMLi oLaN PaYLaSMaK DeqiLmi

Metin2 Sunucularında Yeni NPC Eklemek

Metin2 oyununda kendi özel sunucunuzu kurmuşsanız, oyuncularınız için daha zengin bir deneyim sağlamak adına yeni NPC (Non-Player Character) eklemek isteyebilirsiniz. Bu işlem, hem oyun içi görevleri çeşitlendirmeye yardımcı olur hem de oyuncuların sunucunuza olan ilgisini artırabilir. Bu yazıda, Metin2 client üzerinde nasıl yeni NPC ekleyebileceğinizi adım adım anlatacağız.

NPC Nedir ve Ne İşe Yarar?

NPC, oyun içinde oyuncu kontrolü olmadan çalışan karakterlerdir. Metin2'de NPC'ler görev verir, eşya satışı yapar, teleport sağlar veya savaş destekçisi olabilir. Örneğin, bir quest giver NPC'si, oyuncuya görevler verebilir. Bir başka NPC ise shop görevi görebilir ve özel eşyalar satabilir.

Yeni NPC Ekleme Adımları

1. Client Dosyalarına Erişim: Metin2 client dosyalarınıza erişmeniz gerekir. Eğer bir client pack kullanıyorsanız, bu dosyalar zaten mevcuttur. Client dosyaları genellikle root, locale, ebi, effect gibi klasörler içerir.

2. NPC Model ve Animasyonlarını Hazırlamak: Oyun içine eklemek istediğiniz NPC'nin model dosyaları (.msm), animasyonları (.mga) ve texture dosyaları (.dds) olmalıdır. Bu dosyalar effect ve locale klasörlerinde doğru konumlara yerleştirilmelidir.

3. NPC Script Dosyasını Oluşturmak: Metin2'de NPC davranışları genellikle Python tabanlı script dosyalarıyla tanımlanır. Bu dosyalar locale altındaki quest klasöründe bulunur. Yeni bir quest dosyası oluşturarak NPC'nizin işlevselliğini tanımlayabilirsiniz. Örneğin, bir görev veren NPC için say_title ve select komutlarını kullanabilirsiniz.

4. Game Server'a NPC Tanımı Eklemek: Client tarafında NPC görünümünü ayarladıktan sonra, server tarafında da bu NPC'nin tanımı yapılmadıysa görünmez veya işlevsel olmaz. Server dosyalarında mob_proto ve npc_proto gibi dosyalara yeni satır eklenmelidir. Bu satırda NPC'nin ID, ad, level, AI gibi bilgileri yer alır.

5. Map Dosyasına NPC Konumu Eklemek: NPC'nin belirli bir haritada belirli bir koordinatta görünmesi için map_info.txt veya monster.txt gibi dosyalarda gerekli konfigürasyon yapılmalıdır.

Yeni NPC Eklerken Dikkat Edilmesi Gerekenler

- Client Pack Uyumlu Olması: Kullandığınız client pack ile NPC modeli uyumlu olmalıdır. Aksi takdirde client çökebilir veya NPC görünmeyebilir.

- Script Hataları: Quest scriptlerinde küçük bir hata, NPC'nin çalışmasını engelleyebilir. Kodların doğru yazıldığından emin olun.

- Server-Client Senkronizasyonu: Client'ta gösterilen NPC, serverda tanımlı değilse etkileşim kurulamaz. Her iki tarafın da senkron olması gerekir.

Özel NPC Tavsiyeleri

Sunucunuzda özel NPC sistemleri kurarak oyunculara daha fazla imkan sunabilirsiniz. Örneğin, custom client kullanıcılarına özel market, görev veya etkinlik NPC'leri tanımlayabilirsiniz. Bu, sunucu sadakatini artırmak için etkili bir yöntemdir.

Sonuç

Yeni NPC eklemek, Metin2 sunucularında oyun deneyimini zenginleştirmenin etkili yollarından biridir. Hem client hem de server tarafında doğru yapılandırmalar yapıldığında, oyuncularınız için daha keyifli ve etkileşimli bir oyun ortamı oluşturulabilir. Dilerseniz Metin2Lobby üzerinden farklı client ve pack örneklerine göz atabilirsiniz.


Adding New NPCs in Metin2 Servers

If you have set up your own Metin2 game server, you might want to add new NPCs (Non-Player Characters) to provide a richer experience for your players. This action can help diversify in-game quests and increase player engagement on your server. In this article, we will explain step by step how to add a new NPC in Metin2 client.

What Is an NPC and What Does It Do?

NPCs are characters within the game that operate without player control. In Metin2, NPCs can give quests, sell items, provide teleportation, or act as combat helpers. For instance, a quest giver NPC can assign missions to players, while another NPC might function as a shop and sell special items.

Steps to Add a New NPC

1. Access Client Files: You need access to your Metin2 client files. If you're using a client pack, these files should already be available. The client files usually include folders like root, locale, ebi, effect, etc.

2. Prepare NPC Models and Animations: The model files (.msm), animations (.mga), and texture files (.dds) for the NPC must be ready. These files should be placed in correct locations within the effect and locale folders.

3. Create NPC Script File: NPC behaviors in Metin2 are generally defined via Python-based script files. These files are located under the quest folder inside locale. You can create a new quest file to define the functionality of your NPC. For example, you can use say_title and select commands for a quest-giving NPC.

4. Add NPC Definition to Game Server: After configuring the appearance on the client side, if the NPC isn’t defined in the server files, it won't appear or function. In server files, a new entry must be added to files such as mob_proto or npc_proto. This entry includes details like the NPC's ID, name, level, and AI behavior.

5. Add NPC Location to Map File: To make the NPC appear at a specific location on a map, configuration must be done in files such as map_info.txt or monster.txt.

Important Considerations When Adding NPCs

- Compatibility with Client Pack: The NPC models must be compatible with your client pack. Otherwise, the client may crash or the NPC might not appear.

- Script Errors: Minor mistakes in quest scripts can prevent the NPC from functioning. Ensure all code is written correctly.

- Server-Client Synchronization: An NPC shown on the client side won’t interact properly if not defined in the server. Both sides must be synchronized.

Suggestions for Custom NPCs

You can create special NPC systems in your server to offer more features to players. For example, you can define custom NPCs for custom client users such as exclusive shops, quests, or events. This can be an effective method to boost server loyalty.

Conclusion

Adding new NPCs is one of the effective ways to enrich the gameplay experience in Metin2 servers. With correct configurations on both client and server sides, a more enjoyable and interactive gaming environment can be created for your players. You can check different client and pack examples on Metin2Lobby.
 

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

Geri
Üst Alt