Başlangıç itemleri efsunlu yapma (Fixleriyle Beraber)

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Oyun başlangıcında itemleri efsunlu olarak verdirmek hiçte zor değil. Ancak verilen paylaşımda hiçte açıklayıcı şeyler yapılmamış. Ayrıca karşı taraf bu kodu öğrenirse oyunda sürekli /iteme_efsun_ver2 gibi şeyler yazarak serverde itemlerine sınırsız efsun verebilmesini sağlıyor. Bende oyun başlangıcında bu kodu bir kere çalıştırmasını sağlıyorum. Sadece oyun başlangıcında çalışıp bir daha çalışmamasını sağlıyorum.

service.h açılıp müsait bir yere koyulur
Kod:
#define ENABLE_DREAMFANCY_EFSUN


cmd.cpp açılır ve ACMD(do_click_mall); aratılıp altına yapıştırılır
Kod:
#ifdef ENABLE_DREAMFANCY_EFSUN ACMD(do_efsunu_ver_baba); #endif


cmd.cpp açılır ve { "click_mall", do_click_mall, 0, POS_DEAD, GM_PLAYER }, aratılır altına yapıştırılır
Kod:
#ifdef ENABLE_DREAMFANCY_EFSUN     { "efsunu_ver_baba",    do_efsunu_ver_baba,        0,    POS_DEAD,    GM_PLAYER        }, #endif


cmd_general açılır ve aratılıp altına yapıştırılır
Kod:
#ifdef ENABLE_DREAMFANCY_EFSUN ACMD(do_efsunu_ver_baba) {     if (ch->GetQuestFlag("dreamfancy.source") != 0)     {         ch->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("hatali_kod"));         return;     }     BYTE job = ch->GetJob();     LPITEM item;     switch (job)     {     case JOB_WARRIOR:     case JOB_ASSASSIN:     case JOB_SURA:     case JOB_SHAMAN:         {             //  -- Kask Efsunları             item = ch->GetWear(WEAR_HEAD);             if (item != NULL)             {                 item->ClearAttribute();                 item->SetForceAttribute( 0, APPLY_ATT_SPEED, 5);                 item->SetForceAttribute( 1, APPLY_HP_REGEN, 15);                 item->SetForceAttribute( 2, APPLY_ATTBONUS_ANIMAL, 10);                 item->SetForceAttribute( 3, APPLY_DODGE, 7);                 item->SetForceAttribute( 4, APPLY_STEAL_HP, 10);             }             // -- Silah Efsunları             item = ch->GetWear(WEAR_WEAPON);             if (item != NULL)             {                 item->ClearAttribute();                 item->SetForceAttribute( 0, APPLY_STR, 15);                 item->SetForceAttribute( 1, APPLY_CRITICAL_PCT, 5);                 item->SetForceAttribute( 2, APPLY_PENETRATE_PCT, 5);                 item->SetForceAttribute( 3, APPLY_ATTBONUS_ANIMAL, 10);                 item->SetForceAttribute( 4, APPLY_STUN_PCT, 5);             }             // -- Kalkan Efsunları             item = ch->GetWear(WEAR_SHIELD);             if (item != NULL)             {                 item->ClearAttribute();                 item->SetForceAttribute( 0, APPLY_CON, 6);                 item->SetForceAttribute( 1, APPLY_BLOCK, 15);                 item->SetForceAttribute( 2, APPLY_REFLECT_MELEE, 10);                 item->SetForceAttribute( 3, APPLY_IMMUNE_STUN, 1);                 item->SetForceAttribute( 4, APPLY_STR, 6);             }             //  -- Zırh Efsunları             item = ch->GetWear(WEAR_BODY);             if (item != NULL)             {                 item->ClearAttribute();                 item->SetForceAttribute( 0, APPLY_MAX_HP, 1500);                 item->SetForceAttribute( 1, APPLY_CAST_SPEED, 10);                 item->SetForceAttribute( 2, APPLY_STEAL_HP, 10);                 item->SetForceAttribute( 3, APPLY_REFLECT_MELEE, 10);                 item->SetForceAttribute( 4, APPLY_ATT_GRADE_BONUS, 25);             }             //  -- Ayakkabı Efsunları             item = ch->GetWear(WEAR_FOOTS);             if (item != NULL)             {                 item->ClearAttribute();                 item->SetForceAttribute( 0, APPLY_MAX_HP, 1500);                 item->SetForceAttribute( 1, APPLY_MAX_SP, 100);                 item->SetForceAttribute( 2, APPLY_MOV_SPEED, 5);                 item->SetForceAttribute( 3, APPLY_ATT_SPEED, 5);                 item->SetForceAttribute( 4, APPLY_CRITICAL_PCT, 5);             }             //  -- Bilezik Efsunları             item = ch->GetWear(WEAR_WRIST);             if (item != NULL)             {                 item->ClearAttribute();                 item->SetForceAttribute( 0, APPLY_MAX_HP, 1500);                 item->SetForceAttribute( 1, APPLY_MAX_SP, 100);                 item->SetForceAttribute( 2, APPLY_PENETRATE_PCT, 5);                 item->SetForceAttribute( 3, APPLY_STEAL_HP, 10);                 item->SetForceAttribute( 4, APPLY_MANA_BURN_PCT, 10);             }             //  -- Kolye Efsunları             item = ch->GetWear(WEAR_NECK);             if (item != NULL)             {                 item->ClearAttribute();                 item->SetForceAttribute( 0, APPLY_MAX_HP, 150);                 item->SetForceAttribute( 1, APPLY_HP_REGEN, 15);                 item->SetForceAttribute( 2, APPLY_CRITICAL_PCT, 5);                 item->SetForceAttribute( 3, APPLY_PENETRATE_PCT, 5);                 item->SetForceAttribute( 4, APPLY_STEAL_HP, 10);             }             //  -- Kupe Efsunları             item = ch->GetWear(WEAR_EAR);             if (item != NULL)             {                 item->ClearAttribute();                 item->SetForceAttribute( 0, APPLY_MOV_SPEED, 10);                 item->SetForceAttribute( 1, APPLY_ATTBONUS_ANIMAL, 10);                 item->SetForceAttribute( 2, APPLY_POISON_REDUCE, 4);                 item->SetForceAttribute( 3, APPLY_ATTBONUS_DEVIL, 10);                 item->SetForceAttribute( 4, APPLY_ATTBONUS_UNDEAD, 10);             }         }         break;     }     ch->SetQuestFlag("dreamfancy.source", 1); } #endif


/usr/game/share/locale/turkey gelinir ve en alta yapıştırılır.
Kod:
"hatali_kod"; "Bu düzenleme mevcut değil.";


/usr/game/share/locale/turkey/quest/object/notarget/login gelinir ve ilk başta müsait bir yere yapıştırılır
Kod:
command("efsunu_ver_baba")

Başlangıç Itemleri Efsunlu Yapma (Fixleriyle Beraber)

Metin2 özel sunucularında geliştirme yaparken bazı temel ayarlamalar yapmanız gerekir. Bunlardan birisi de oyuncuların oyunu yeni başladığında sahip oldukları başlangıç eşyalarının efsunlanmasıdır. Bu işlem, hem yeni başlayan oyuncuların deneyimini artırır hem de sunucunuzun dengesini korumanız açısından önemlidir. Ancak bazı durumlarda bu işlem sırasında ortaya çıkan hatalar ya da eksiklikler sebebiyle istenmeyen sonuçlarla karşılaşabilirsiniz. Bu yazıda, başlangıç itemlerini efsunlu yapma işlemini nasıl doğru bir şekilde yapacağınızı ve karşılaştığınız sorunlara dair fixleri bulacaksınız.

Başlangıç Itemleri Neden Efsunlanmalıdır?

Oyuna yeni başlayan bir oyuncunun, düşük seviye eşyalarla mücadeleye başlaması oldukça zorlayıcı olabilir. Özellikle PVP odaklı sunucularda, bu durum oyuncuların hızlıca oyundan ayrılmasına neden olabilir. Bu yüzden başlangıç eşyalarına belirli bir efsun seviyesi verilerek, oyuncunun daha keyifli ve rekabetçi bir başlangıç yapması sağlanabilir. Bu işlem, hem yeni oyuncuların oyun içinde kalıcılığını artırır hem de sunucunuzun popülerliğini destekler.

Başlangıç Itemlerini Efsunlama Yöntemleri

Genellikle iki farklı yöntemle başlangıç itemlerini efsunlayabilirsiniz. Birincisi, karakter yaratılırken otomatik olarak verilen eşyaların statüsünü doğrudan veritabanında veya karakter yaratma sistemine entegre ederek değiştirmektir. İkinci yöntem ise, karakterin oyun içine girerken belirli bir komut ya da sistem üzerinden otomatik olarak efsunlu eşya almasını sağlamaktır. Bu işlemler genellikle C++ veya Python tabanlı sistemlerle yönetilir.

Fix: Efsunlu Eşya Verilmiyor

Kodlama sırasında bazı durumlarda eşyaların efsun seviyesi doğru şekilde tanımlanmamış olabilir. Bu durumda karakter yaratıldığında efsunlu eşya yerine normal bir eşya verilebilir. Bu hatayı çözmek için öncelikle karakter yaratma sistemini kontrol etmeniz gerekir. Özellikle 'char_create.cpp' veya benzeri dosyalarda eşya ID ve efsun değerlerinin doğru şekilde tanımlandığından emin olun. Eğer eşya ID'leri doğru ama efsunlar gelmiyorsa, 'item_proto' tablosunda efsun değerlerinin doğru girildiğinden emin olun.

Fix: Efsunlu Eşya Sunucuda Görünmüyor[/AINER][/BR]
Bazen efsunlu eşya karaktere verilmiş olsa bile, istemci tarafında doğru şekilde gösterilmeyebilir. Bu durum genellikle 'uiscript' veya 'itemdesc' dosyalarındaki eksikliklerden kaynaklanır. Eşyanın adı, açıklaması ve efsun bilgilerinin doğru şekilde tanımlandığından emin olun. Ayrıca, 'client root' klasöründe bulunan 'locale' dosyalarında eşya isimlerinin doğru şekilde tanımlandığından emin olun.

Fix: Eşya Verilirken Hata Alınıyor

Bazı durumlarda, karakter yaratılırken eşya verme işlemi sırasında hata alınabilir. Bu genellikle veritabanı bağlantısında meydana gelen sorunlardan veya yanlış SQL sorgusundan kaynaklanabilir. 'game' veya 'auth' sunucularında çalışan servislerin doğru şekilde yapılandırıldığından emin olun. Özellikle 'player' tablosunda eşya verme fonksiyonlarının doğru şekilde çalışıp çalışmadığını test edin. Hata mesajlarını dikkatlice okuyarak hatanın kök nedenini tespit edin.

Python Sistemleriyle Entegrasyon

Metin2 özel sunucularında Python tabanlı sistemlerle başlangıç eşyalarını efsunlu yapmak da oldukça yaygındır. 'py root' dosyaları üzerinde geliştirilen sistemler sayesinde, oyuncuya belirli bir seviyeye göre efsunlu eşya verilebilir. Örneğin, oyuncu level 1'de başlarken +7 zırh gibi bir sistem ayarlanabilir. Bu sistemlerde 'python gui' veya 'py gui' ile kullanıcı dostu arayüzler geliştirilebilir. Bu sayede sunucu yöneticileri kolayca başlangıç efsun seviyelerini düzenleyebilir.

Sunucu Dengesi ve Başlangıç Efsunları

Başlangıç eşyalarının efsun seviyeleri, sunucu dengesi için çok önemlidir. Çok güçlü efsunlar vermek, yeni oyuncuların zorlanmadan ilerlemesini sağlar ama aynı zamanda sunucudaki diğer oyuncularla arada ciddi farklar oluşmasına yol açabilir. Bu nedenle efsun seviyeleri dikkatli ve hesaplı bir şekilde belirlenmelidir. Oyun içi dengenin bozulmaması için, başlangıç efsun seviyesi genellikle +5 ile +7 arasında tutulur.

Sonuç

Metin2 özel sunucularında başlangıç itemlerini efsunlu yapmak, hem yeni oyuncuların deneyimini artırmak hem de sunucu dengesini korumak açısından büyük önem taşır. Bu işlem sırasında karşılaşılan hatalar genellikle C++, Python veya veritabanı ile ilgili küçük eksikliklerden kaynaklanır. Doğru sistem ayarları ve dikkatli kodlama ile bu sorunlar kolayca çözülebilir. Sunucunuzda başlangıç itemleri efsunluysa, oyuncularınızın oyun içinde daha hızlı adapte olduğunu ve daha uzun süre oyunda kaldığını görebilirsiniz.


Making Starting Items Enchanted (With Fixes)

When developing Metin2 private servers, you need to make certain fundamental adjustments. One of these is enchanting the starting items that players have when they first start playing the game. This process increases the experience for new players and helps maintain your server's balance. However, sometimes errors or missing parts during this process can lead to unwanted outcomes. In this article, we will show you how to properly enchant starting items and provide fixes for common issues you may encounter.

Why Should Starting Items Be Enchanted?

It can be quite challenging for a new player to begin the game with low-level equipment. Especially on PVP-focused servers, this can cause players to leave the game quickly. Therefore, giving a certain enchantment level to starting items allows the player to have a more enjoyable and competitive beginning. This action both increases the retention of new players and supports the popularity of your server.

Methods for Enchanting Starting Items

Generally, you can enchant starting items in two different ways. The first method involves changing the status of the items given upon character creation directly in the database or by integrating into the character creation system. The second method is to ensure the character automatically receives enchanted items through a command or system when entering the game. These processes are typically managed using C++ or Python-based systems.

Fix: Enchanted Item Not Being Given

During coding, sometimes the enchant levels of items may not be defined correctly. In such cases, instead of enchanted items, normal items might be given to the character. To resolve this issue, you should first check the character creation system. Ensure that item IDs and enchant values are correctly defined in files like 'char_create.cpp'. If the item IDs are correct but the enchants are not being applied, verify that the enchant values are correctly entered in the 'item_proto' table.

Fix: Enchanted Item Not Visible on Server

Sometimes, even though the enchanted item has been given to the character, it may not appear correctly on the client side. This is generally due to missing information in 'uiscript' or 'itemdesc' files. Make sure the name, description, and enchant details of the item are correctly defined. Also, confirm that item names are correctly defined in the 'locale' files located in the 'client root' folder.

Fix: Error When Giving Item

In some cases, errors can occur during the item-giving process when creating a character. This usually stems from problems in the database connection or incorrect SQL queries. Ensure that services running on 'game' or 'auth' servers are properly configured. Specifically, check whether the item-giving functions in the 'player' table work correctly. Read error messages carefully to identify the root cause of the problem.

Integration with Python Systems

Using Python-based systems to enchant starting items on Metin2 private servers is quite common. Through systems developed on 'py root' files, enchanted items can be given to the player based on their level. For example, a player starting at level 1 could receive +7 armor. User-friendly interfaces can be created using 'python gui' or 'py gui', allowing server administrators to easily adjust the enchant levels of starting items.

Server Balance and Starting Enchants

The enchant levels of starting items are very important for server balance. Giving too powerful enchantments allows new players to progress without much challenge, but it can also create significant disparities between them and other players on the server. Therefore, enchant levels must be set carefully and thoughtfully. To avoid disrupting the in-game balance, starting enchant levels are generally kept between +5 and +7.

Conclusion

Enchanting starting items on Metin2 private servers is crucial both for improving the new player experience and maintaining server balance. Issues encountered during this process usually stem from minor deficiencies related to C++, Python, or the database. With proper system settings and careful coding, these problems can be easily resolved. If your starting items are enchanted, you'll notice that players adapt faster and stay longer in the game.
 

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

Benzer konular

Geri
Üst Alt