[PYHTON] Mobların Canını % Olarak Gösterme.

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Öncelikle selamun aleyküm;

Hemen konuya geçiyorum. Yapacağımız sistem;

DJgjao.png


Root açılır.

uiTarget.py aratılır
Kod:
def __init__(self):

altına eklenir
Kod:
hpGauge = ui.Gauge()        hpGauge.SetParent(self)         hpGauge.MakeGauge(130, "red")         hpGauge.Hide()         hpPercenttxt = ui.TextLine()         hpPercenttxt.SetParent(self)         hpPercenttxt.SetPosition(160, 13)         hpPercenttxt.SetText("")         hpPercenttxt.Hide()

aratılır
Kod:
self.name = name         self.hpGauge = hpGauge

altına eklenir
Kod:
self.hpPercenttxt = hpPercenttxt

aratılır
Kod:
def Destroy(self):

altına eklenir
Kod:
self.hpPercenttxt = None

aratılır
Kod:
def ResetTargetBoard(self):

bulunur.
Kod:
self.hpGauge.Hide()

altına eklenir.
Kod:
self.hpPercenttxt.Hide()

aratılır
Kod:
def SetHP(self, hpPercentage):

bulunur
Kod:
self.UpdatePosition()

altına eklenir
Kod:
self.hpPercenttxt.SetPosition(200 + 7*self.nameLength-205, 13)             self.hpPercenttxt.Show()

bulunur
Kod:
self.hpGauge.SetPercentage(hpPercentage, 100)

altına eklenir
Kod:
self.hpPercenttxt.SetText("%d%%" % (hpPercentage))


[PYHTON] Mobların Canını % Olarak Gösterme

Metin2 özel sunucularında geliştirme yaparken, oyuncuların daha iyi bir deneyim yaşaması için bazı görsel iyileştirmeler yapmak oldukça önemlidir. Bu yazıda, Python tabanlı client-side düzenlemelerle mobların can değerlerini yüzde olarak nasıl göstereceğinizi adım adım anlatacağız. Bu işlem özellikle PvP sunucularında, savaş esnasında düşmanların kalan can durumlarını takip etmeyi kolaylaştırır.

Mob Can Göstergesi Nedir?

Oyun içinde düşman olarak karşımıza çıkan karakterlerin, yani mobların mevcut can değerlerini görsel olarak takip etmek istemek doğal bir ihtiyaçtır. Standart sistemde, moblar genellikle can çubuğu şeklinde gösterilir. Ancak bu çubuğun tam olarak ne kadar can kaldığını belirtmesi zordur. Bu nedenle, can değerini yüzde olarak göstermek kullanıcı dostu bir özelliktir.

Neden Yüzde Gösterimi Kullanılır?

Yüzde gösterimi, hem PvP hem de PvE senaryolarında faydalıdır. Özellikle Metin2 gibi strateji içeren oyunlarda, bir mobun kalan canı üzerinden saldırı planı yapmak önemlidir. Örneğin, bir mobun canı %20 seviyesindeyse, bu durumda onu hızlıca alt etmeniz mümkündür.

Geliştirme Ortamı ve Gerekli Dosyalar

Bu işlem için gerekli olan ana dosya uiscript.py veya ui.py gibi Python tabanlı dosyalardır. Bu dosyalar, oyun arayüzünü yöneten yapıları içerir. Ayrıca game.py gibi oyun mantığını yöneten dosyalarla da etkileşim kurulabilir. Bu tür geliştirmeler için Python bilgisi ve PyGUI ile tanışıklık sahibi olmanız gerekir.

Adım Adım Uygulama

1. Can Çubuğu Sınıfını Tanımlayın: Öncelikle, mobların can çubuğunu yöneten sınıfı tanımlamalısınız. Genellikle bu HPBar ya da benzeri bir sınıftır. Bu sınıfa bir metot ekleyerek, can değerini hesaplayıp yüzde olarak ekrana yazdırabilirsiniz.

2. Yüzde Hesaplama Fonksiyonu: Mobun mevcut can değerini ve maksimum can değerini alarak, şu şekilde bir hesaplama yapabilirsiniz:

current_hp / max_hp * 100

3. Can Değerini Ekranda Gösterme: Bu değeri bir TextLine objesiyle ekranda gösterin. Bu obje, can çubuğunun hemen yanına veya üzerine konumlandırılabilir.

Örnek Kod Yapısı

def update_mob_hp_percentage(self):
if self.mob_max_hp > 0:
percentage = int((self.mob_current_hp / self.mob_max_hp) * 100)
self.hp_text.SetText(f'{percentage}%')

Bu fonksiyon, mobun can değiştiğinde çağrılmalıdır. Bu da genellikle OnUpdate gibi bir olayla tetiklenir.

Sunucu Tarafında Destek

Client tarafında yapılan bu değişikliğin çalışması için, sunucu tarafında da gerekli verilerin doğru şekilde gönderilmesi gerekir. Yani, game server tarafında mobların can değerleri güncellenirken, bu veriler client'a aktarılmalıdır. Bu veri transferi genellikle network katmanı üzerinden yapılır.

Sonuç

Mobların can değerini yüzde olarak göstermek, oyuncuların oyun içi karar verme sürecini hızlandırır. Özellikle Metin2 gibi stratejik oyunlarda bu tür küçük ama etkili geliştirmeler, kullanıcı memnuniyetini artırır. Python tabanlı UI düzenlemeleri ile bu tür geliştirmeleri kolayca gerçekleştirebilirsiniz. Metin2Lobby olarak, tüm Metin2 geliştiricilerine destek vermeye devam ediyoruz.


[PYTHON] Showing Monster Health as Percentage

While developing Metin2 private servers, making visual improvements for better player experience is very important. In this article, we will explain step-by-step how to display monster health as a percentage using Python-based client-side modifications. This adjustment is particularly useful in PvP servers, as it makes tracking enemy health easier during combat.

What Is Monster Health Indicator?

Tracking the current health values of monsters encountered in-game is a natural need. By default, monsters are usually displayed with a health bar. However, determining the exact remaining health from this bar can be difficult. Therefore, showing health as a percentage provides a user-friendly feature.

Why Use Percentage Display?

Percentage display is beneficial in both PvP and PvE scenarios. Especially in strategy-oriented games like Metin2, planning your attacks based on a monster's remaining health is crucial. For example, if a monster's health is at 20%, you may quickly eliminate it at that point.

Development Environment and Required Files

The main file required for this process is usually uiscript.py or similar Python-based files such as ui.py. These files manage the game interface. You might also interact with files like game.py which handle game logic. Knowledge of Python and familiarity with PyGUI are necessary for such developments.

Step-by-Step Implementation

1. Define Health Bar Class: First, define the class managing the monster's health bar. Usually, this is a class named HPBar or similar. Add a method to this class to calculate and display the health value as a percentage.

2. Percentage Calculation Function: Obtain the monster's current and maximum health values, then calculate as follows:

current_hp / max_hp * 100

3. Display Health Value on Screen: Display this value on screen using a TextLine object. This object can be positioned next to or above the health bar.

Sample Code Structure

def update_mob_hp_percentage(self):
if self.mob_max_hp > 0:
percentage = int((self.mob_current_hp / self.mob_max_hp) * 100)
self.hp_text.SetText(f'{percentage}%')

This function should be called whenever the monster's health changes, typically triggered by an event like OnUpdate.

Server-Side Support

For these client-side changes to work properly, the correct data must be sent from the server side. That means, when monster health values are updated on the game server, this information must be transferred to the client. Such data transfers are typically handled via the network layer.

Conclusion

Displaying monster health as a percentage speeds up the decision-making process for players during gameplay. Especially in strategic games like Metin2, small but effective improvements like these enhance user satisfaction. With Python-based UI modifications, you can easily implement such enhancements. As Metin2Lobby, we continue to support all Metin2 developers.
 

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

Benzer konular

Geri
Üst Alt