Öldükten sonra yeniden başla FULL HP doğma

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Konuyu araştırdım fakat pek birşey bulamamıştım bende kendi yaptığımı sizinle paylaşmak istedim denenmiştir. Kanıtı da sunulmuştur.

Sistem : Öldükten sonra karakter full HP olarak yeniden başlar

Yapılacak değişiklik

cmd_general.cpp içinde Ara

Kod:
switch (subcmd)     {         case SCMD_RESTART_TOWN:             sys_log(0, "do_restart: restart town");             PIXEL_POSITION pos;             if (SECTREE_MANAGER::instance().GetRecallPositionByEmpire(ch->GetMapIndex(), ch->GetEmpire(), pos))                 ch->WarpSet(pos.x, pos.y);             else                 ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire()));             ch->PointChange(POINT_HP, 50 - ch->GetHP());             ch->DeathPenalty(1);             break;         case SCMD_RESTART_HERE:             sys_log(0, "do_restart: restart here");             ch->RestartAtSamePos();             //ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());             ch->PointChange(POINT_HP, 50 - ch->GetHP());             ch->DeathPenalty(0);             ch->ReviveInvisible(5);             break;     } }

Değiştir

Kod:
switch (subcmd)     {         case SCMD_RESTART_TOWN:             sys_log(0, "do_restart: restart town");             PIXEL_POSITION pos;             if (SECTREE_MANAGER::instance().GetRecallPositionByEmpire(ch->GetMapIndex(), ch->GetEmpire(), pos))                 ch->WarpSet(pos.x, pos.y);             else                 ch->WarpSet(EMPIRE_START_X(ch->GetEmpire()), EMPIRE_START_Y(ch->GetEmpire()));             ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());             ch->DeathPenalty(1);             break;         case SCMD_RESTART_HERE:             sys_log(0, "do_restart: restart here");             ch->RestartAtSamePos();             //ch->Show(ch->GetMapIndex(), ch->GetX(), ch->GetY());             ch->PointChange(POINT_HP, ch->GetMaxHP() - ch->GetHP());             ch->DeathPenalty(0);             ch->ReviveInvisible(5);             break;     } }

Kanıt :


İyi forumlar.
Öldükten Sonra Yeniden Başla FULL HP Doğma Sistemi

Metin2 özel sunucularında oyuncuların ölüm sonrası deneyimini iyileştirmek, oyun içi sürekliliği artırmak ve PvP sistemlerinde dengeli bir oynanış sağlamak oldukça önemlidir. Bu bağlamda, 'öldükten sonra yeniden başla FULL HP doğma' sistemi, hem geliştiriciler hem de oyuncular için büyük bir fayda sağlar. Bu yazıda, bu sistemin nasıl kurulacağını, hangi dosyaların düzenleneceğini ve nasıl daha verimli hale getirileceğini detaylıca ele alacağız.

Metin2 Özel Sunucu Geliştirme ve Can Sistemleri

Metin2 özel sunucularında can (HP) sistemi, oyuncunun savaş esnasında hayatta kalmasını sağlayan temel özelliktir. Oyuncu öldüğünde varsayılan olarak belirli bir HP yüzdesiyle dirilir. Ancak bazı PvP sunucularında veya özel modifikasyonlarda, oyuncuların FULL HP ile doğması istenebilir. Bu durum, oyuncuların tekrar savaşa hızlıca katılabilmelerini sağlar ve oyunun akışını hızlandırır.

FULL HP Doğma Sistemi Nasıl Kurulur?

Bu sistemi kurabilmek için game sunucu tarafında bazı değişiklikler yapmanız gerekir. Öncelikle char_manager.cpp dosyasında bulunan Dead fonksiyonuna göz atmalısınız. Burada SetHp(1) gibi satırlar yer alabilir. Bu satır, karakterin öldükten sonra minimum can ile doğmasını sağlar. SetHp(GetMaxHP()) şeklinde değiştirilirse, karakter öldükten sonra maksimum canı ile doğar.

Python Tarafında Da Değişiklik Gerekebilir

Bazı özel sunucularda py root tarafında da bu sisteme müdahale edilmesi gerekir. Özellikle player.py veya character.py gibi dosyalarda yer alan Dead veya Respawn fonksiyonları incelenmelidir. Burada da benzer şekilde SetHp komutu ile maksimum can değeri atanmalıdır.

PvP Sistemleri İçin Avantajlar

FULL HP doğma sistemi, özellikle yoğun PvP sunucularında büyük avantaj sağlar. Oyuncuların sürekli savaşmaya devam etmesi, oyunun daha dinamik ve sürükleyici olmasını sağlar. Aynı zamanda, Metin2 PvP sistem tasarımı için bu tür özelleştirmeler, oyuncu sadakati açısından da kritik öneme sahiptir.

Sunucu Kaynak Kodlarında Yapılan Değişiklikler

Bu işlemi gerçekleştirebilmek için C++ bilgisi oldukça faydalıdır. Source edit sırasında dikkatli olunması gereken fonksiyonlar, doğru dosya yolları ve derleme süreci (compile) bu sistemin sağlıklı çalışması için kritik rol oynar. Martysama gibi gelişmiş sistemlerde de benzer yapılar yer alabilir. Metin2 server src dosyalarında yapılan bu tür düzenlemeler, sunucunuzun farklılaşmasını ve daha profesyonel görünmesini sağlar.

Yedekleme ve Test Süreci

Herhangi bir source edit işlemi öncesinde mutlaka yedek alınmalıdır. Hatalı bir değişiklik, sunucunun çökmesine neden olabilir. Değişiklikler yapıldıktan sonra, test sunucusunda bu sistemin düzgün çalışıp çalışmadığı kontrol edilmelidir. Auth ve Game sunucularında senkronizasyonun sağlanması da önemlidir.

Sonuç

Öldükten sonra yeniden başla FULL HP doğma sistemi, Metin2 özel sunucularında kullanıcı deneyimini ciddi anlamda artırır. Bu sistem, doğru uygulandığında hem teknik hem de oyun içi denge açısından çok faydalıdır. Metin2 development süreçlerinde bu gibi özelleştirmeler, sunucunuzun rekabet gücünü artırmak için ideal adımlardan biridir.


Restart with Full HP After Death System

In Metin2 private servers, improving the player experience after death, increasing in-game continuity, and maintaining balanced gameplay in PvP systems are crucial. In this context, the 'restart with full HP after death' system provides significant benefits for both developers and players. In this article, we will detail how to set up this system, which files need modification, and how to make it more efficient.

Metin2 Private Server Development and Health Systems

In Metin2 private servers, the health (HP) system is fundamental for keeping players alive during combat. By default, when a player dies, they respawn with a certain percentage of HP. However, on some PvP servers or custom modifications, players may be required to respawn with full HP. This allows players to rejoin battles quickly and speeds up the game flow.

How to Set Up Full HP Respawn System

To implement this system, you need to make some changes on the game server side. First, examine the Dead function in the char_manager.cpp file. You might see lines like SetHp(1), which causes the character to respawn with minimal HP. Changing this to SetHp(GetMaxHP()) ensures that the character respawns with maximum HP.

Changes May Be Needed in Python Side

In some private servers, modifications on the py root side may also be necessary. Functions such as Dead or Respawn in files like player.py or character.py should be reviewed. Here too, the SetHp command must be adjusted to assign the maximum HP value.

Advantages for PvP Systems

The full HP respawn system offers significant advantages, especially in intense PvP servers. It allows players to continue fighting continuously, making the game more dynamic and engaging. Additionally, such customizations are critical for maintaining player loyalty in Metin2 PvP system designs.

Modifications in Server Source Code

Implementing this requires solid knowledge of C++. During source edit, functions to pay attention to, correct file paths, and the compilation process (compile) are critical for the system to work properly. Similar structures can be found in advanced systems like Martysama. Modifications in Metin2 server src files help differentiate your server and give it a more professional appearance.

Backup and Testing Process

Before any source edit, always take backups. An incorrect change can cause the server to crash. After implementing changes, ensure the system works correctly on a test server. Synchronization between auth and game servers is also important.

Conclusion

The 'restart with full HP after death' system significantly enhances user experience in Metin2 private servers. When applied correctly, this system is highly beneficial both technically and in terms of in-game balance. Such customizations during Metin2 development processes are ideal steps to increase your server's competitive edge.
 

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

Benzer konular

Geri
Üst Alt