Python: Oyundaki kişilerin HP'sini görme

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar,

Konuyu uzatmadan direk anlatıma geçeceğim.
Kodları sorunsuz ve tab ayarlı bir şekilde vereceğim, eğer yapamayan olursa özel mesaj yardımcı olayım.

Görüntü

QWMW8j.png


constInfo.py açılır ve eklenir

Kod:
OPPONENTS_HP = [0, 0]


game.py açılır aratılır

Kod:
def OnRecvWhisper(self, mode, name, line):


altına eklenir

Kod:
import net         if line.find("CODE_MESSAGE_OPPONENTS_HP_29305|") != -1:
Kod:
vid = line.split("|")[1]             if str(chr.GetNameByVID(int(vid)))!="None":                 net.SendWhisperPacket(name, "CODE_MESSAGE_OPPONENTS_HP_29306|" + str(player.GetStatus(player.HP)) + "|"  + str(player.GetStatus(player.MAX_HP)))             return         if line.find("CODE_MESSAGE_OPPONENTS_HP_29306|") != -1:             line = line.split("|")             constInfo.OPPONENTS_HP = [int(line[1]), int(line[2])] [CENTER]            return[/CENTER]

25Z812.png


uitarget.py açılır ve aratılır

Kod:
def __init__(self):


tekrar aratılır

Kod:
ui.ThinBoard.__init__(self)


altına eklenir

Kod:
self.SaveSecond = 0

7PvMar.png


aratılır

Kod:
def OnUpdate(self):


ve altına eklenir

Kod:
if player.IsPVPInstance(self.vid):
Kod:
if self.vid != 0:                 if app.GetTime() > self.SaveSecond:                     self.SaveSecond = app.GetTime()+1.0         if str(chr.GetNameByVID(self.vid))!="None":                 net.SendWhisperPacket(str(self.name.GetText()), "CODE_MESSAGE_OPPONENTS_HP_29305|"+str(player.GetMainCharacterIndex()))         if constInfo.OPPONENTS_HP[1]!=0:             if constInfo.OPPONENTS_HP[0]<=0:                 self.SetHP(0)             else: [CENTER]                self.SetHP(((float(constInfo.OPPONENTS_HP[0])/float(constInfo.OPPONENTS_HP[1]))*100))[/CENTER]

PBMP1b.png



Kodları benim dosyamdan almak isteyenler indir yazısının üstüne tıklasınlar.


Yapılacak başka hiç bir işlem kalmadı.😄
Sorun alan kişiler özel mesaj atabilirler.

FOR:mad: ;


Python: Oyundaki Kişilerin HP'sini Görme

Metin2 özel sunucularında geliştirme yaparken oyuncu verilerini takip etmek oldukça önemli bir konudur. Özellikle PvP sistemlerinde, oyuncuların can (HP) değerlerini takip edebilmek, stratejik oyun mekanikleri geliştirmek ve kullanıcı deneyimini artırmak açısından kritiktir.

Python ile HP Değerlerini Okumak

Metin2 özel sunucularında, oyuncu verileri genellikle sunucu tarafında saklanır ve istemci tarafında görselleştirilir. Python, genellikle istemci tarafında UI Script (UIScript) ve Py Root dosyaları ile entegre olarak çalışır. Bu yapı sayesinde, oyuncu karakterlerinin can (HP) gibi verilerine erişim sağlanabilir.

HP Bilgisine Erişim için Gerekli Adımlar

1. Uiscript Dosyası ile Arayüz Tanımı: UIScript dosyalarında, HP değerlerinin gösterileceği bir arayüz bileşeni tanımlanmalıdır. Örneğin, bir progress bar veya metin kutusu ile HP değeri ekranda gösterilebilir.

2. Py Root Üzerinden Veri Alımı: Py Root dosyalarında, oyuncunun HP değerini sunucudan almak için gerekli fonksiyonlar tanımlanmalıdır. Genellikle, net.SendChatPacket veya benzeri fonksiyonlarla sunucuya istek yapılır.

3. Sunucu ile Haberleşme: Sunucu tarafında (C++), oyuncunun HP bilgisi belirli bir paketle istemciye gönderilir. Python tarafında bu veri yakalanır ve arayüze işlenir.

Python Kod Örneği

Kod:
def UpdatePlayerHP(self):[BR][/BR]    hp = player.GetStatus(player.HP)[BR][/BR]    max_hp = player.GetStatus(player.MAX_HP)[BR][/BR]    hp_percent = float(hp) / float(max_hp) * 100[BR][/BR]    self.hpBar.SetCurrentPoint(hp_percent)[BR][/BR]    self.hpText.SetText(str(hp) + '/' + str(max_hp))


PvP Sistemlerinde HP Takibi

PvP sistemlerinde, rakibin HP değerini görebilmek, oyuncuların savaş stratejilerini şekillendirmelerine yardımcı olur. Bu tür bilgiler, hem sunucu tarafında hem de istemci tarafında doğru şekilde yönetilmelidir.

Güvenlik ve Performans

HP gibi verilerin paylaşılması sırasında güvenlik önlemleri alınmalıdır. Aksi takdirde, hile riski doğabilir. Ayrıca, bu tür verilerin saniyede çok sık güncellenmesi performans sorunlarına yol açabilir. Bu nedenle, verilerin optimize bir şekilde gönderilmesi önemlidir.

Sonuç

Python ile Metin2 özel sunucularda oyuncu HP değerlerini takip etmek, hem oyun mekaniklerini zenginleştirmek hem de oyuncuların daha bilinçli kararlar almasını sağlamak açısından oldukça faydalıdır. Doğru uygulandığında, güçlü PvP sistemleri ve kullanıcı dostu arayüzler oluşturulabilir.


Python: Seeing Player HP in Game

When developing private Metin2 servers, tracking player data is highly important. Especially in PvP systems, monitoring players' health points (HP) is critical for developing strategic gameplay mechanics and enhancing user experience.

Accessing HP Values with Python

In Metin2 private servers, player data is usually stored on the server-side and visualized on the client-side. Python typically integrates with UI Script (UIScript) and Py Root files on the client-side, enabling access to player character attributes like health points (HP).

Steps to Access HP Information

1. UI Definition with Uiscript: In UIScript files, a UI component must be defined to display HP values. For example, a progress bar or text box can show the HP value on screen.

2. Data Retrieval via Py Root: In Py Root files, functions must be defined to retrieve the player's HP from the server. Usually, functions like net.SendChatPacket are used to send requests to the server.

3. Server Communication: On the server side (C++), the player's HP information is sent to the client through a specific packet. This data is captured and processed into the interface on the Python side.

Python Code Example

Kod:
def UpdatePlayerHP(self):[BR][/BR]    hp = player.GetStatus(player.HP)[BR][/BR]    max_hp = player.GetStatus(player.MAX_HP)[BR][/BR]    hp_percent = float(hp) / float(max_hp) * 100[BR][/BR]    self.hpBar.SetCurrentPoint(hp_percent)[BR][/BR]    self.hpText.SetText(str(hp) + '/' + str(max_hp))


Tracking HP in PvP Systems

In PvP systems, being able to see the opponent's HP helps players shape their battle strategies. Such information should be managed correctly on both server and client sides.

Security and Performance

Security measures must be taken while sharing data like HP values; otherwise, cheating risks may arise. Additionally, frequent updates of such data per second can cause performance issues. Therefore, optimizing how this data is transmitted is crucial.

Conclusion

Tracking player HP values in Metin2 private servers with Python is beneficial for enriching game mechanics and helping players make more informed decisions. When implemented correctly, strong PvP systems and user-friendly interfaces can be created.
 

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

Geri
Üst Alt