Yepyeni Sorunsuz Rakip Can Görme Sistemi [19.07.2015]

  • 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, çoğu kişinin aradığı konuyu sizlere serverinize eklemeyi anlatacağım.
Daha önce forumda açılan konularda TAB ayarları yoktu ve eksik kodlar vardı. Yorumlara baktım
çoğu insan ekleyemiyordu. Bende böyle bir konu açtım. Umarım işinize yarar.

İlk öncelikle çalıştığına dair bir resim
AqYQ5L.png




İlk öncelikle root packımızı açalım.
Ardından constinfo.py açalım ve

Aratılacak Kod:
Kod:
CONSOLE_ENABLE = 0

Kodu arattıktan sonra boşluk bırakıp altına aşağıda ki kodu ekleyin.

Eklenecek Kod:
Kod:
### Rakip HP Görme System Start ### INPUT_IGNORE = 0 VID = 0 STHX = 0 HPXD = 0 PLAYER_HP = 0 PLAYER_MAX_HP = 0 PLAYER_SP = 0 PLAYER_MAX_SP = 0 PLAYER_NAME = "" ### Rakip HP Görme System Finished ###

constinfo.py ile işimiz bitti. Şimdi game.py açalım.

Aşağıda ki kodu aratalım.

Aratılacak Kod:
Kod:
import uiTarget

Ardından altına bir boşluk bırakıp aşağıda ki kodu ekleyelim.

Eklenecek Kod:
Kod:
import uiHealth

Tekrardan aynı dosya içerisin de başka bir kod aratacağız.
Aşağıda ki kodu aratalım.

Aratılacak Kod:
Kod:
# ITEM_MALL             "CloseMall"                : self.CommandCloseMall,             "ShowMeMallPassword"    : self.AskMallPassword,             "item_mall"                : self.__ItemMall_Open,             # END_OF_ITEM_MALL

Ardından altına bir boşluk bırakıp aşağıda ki kodu ekleyelim.

Eklenecek Kod:
Kod:
#wskaznikiHP             "super_quest"            : self.Tabulejtor,             "pvp_zdruwko"           : self.Mozart,             #inputpowerdziwko             "get_input_value"        : self.GetInputValue,             "get_input_start"        : self.GetInputOn,             "get_input_end"            : self.GetInputOff,             #inputpowerdziwko

Yukarıda ki kodun yanlış eklenmemesi için fotoğraf paylaşıyorum...
gAL4EO.png


Tekrardan aynı dosya içerisin de başka bir kod aratacağız.
Aşağıda ki kodu aratalım.
Kod:
self.interface.RefreshSafeboxMoney()

Ardından altına bir boşluk bırakıp aşağıda ki kodu ekleyelim.

Eklenecek Kod:
Kod:
### Rakip HP Görme System Start ###     def Mozart(self, data):         dane = data.split("|")         constInfo.PLAYER_NAME = str(dane[0])         constInfo.PLAYER_HP = int(dane[1])         constInfo.PLAYER_MAX_HP = int(dane[2])         constInfo.PLAYER_SP = int(dane[3])         constInfo.PLAYER_MAX_SP = int(dane[4])          def Tabulejtor(self, id):         constInfo.STHX = int(id)          def GetInputOn(self):         constInfo.INPUT_IGNORE = 1          def GetInputOff(self):         constInfo.INPUT_IGNORE = 0          def GetInputValue(self):         net.SendQuestInputStringPacket(str(constInfo.VID))          def OpenQuestWindow(self, skin, idx):         if constInfo.INPUT_IGNORE == 1:             return         else:             self.interface.OpenQuestWindow(skin, idx)     ### Rakip HP Görme System Finished ###


game.py ile işimiz bitti. uitarget.py açın ve import bölümünün
en altına aşağıda ki kodu ekleyin.

Eklenecek Kod:
Kod:
import uiHealth


Tekrardan aynı dosya içerisin de başka bir kod aratacağız.
Aşağıda ki kodu aratalım.

Aratılacak Kod:
Kod:
def OnUpdate(self):

Ardından def OnKick(self): koduna kadar olan bölümü seçin ve
aşağıda ki kod ile değiştirin.

Değiştirilecek Kod:
Kod:
def OnUpdate(self):         if player.IsPVPInstance(self.vid):             constInfo.VID = self.vid             event.QuestButtonClick(constInfo.STHX)             if not self.healthBoard.IsShow() and self.vid != 0:                 self.healthBoard.Show()         else:             self.healthBoard.Hide()                  if self.isShowButton:                      exchangeButton = self.buttonDict[locale.TARGET_BUTTON_EXCHANGE]             distance = player.GetCharacterDistance(self.vid)                          if distance < 0:                 return                          if exchangeButton.IsShow():                 if distance > self.EXCHANGE_LIMIT_RANGE:                     self.RefreshButton()

Tekrardan aynı dosya içerisin de başka bir kod aratacağız.
Aşağıda ki kodu aratalım.

Aratılacak Kod:
Kod:
def __init__(self):

Kodun altına bir boşluk bırakıp aşağıda ki kodu ekleyelim.

Eklenecek Kod:
Kod:
self.healthBoard = uiHealth.HealthBoard()

Tekrar aynı dosya içerisinde son kez aşağıda ki kodu aratalım.

Aratılacak Kod:
Kod:
def Close(self):

Tüm kod bloğunu aşağıda ki kod ile değiştirelim.

Değiştirilecek Kod:
Kod:
def Close(self):         self.__Initialize()         self.healthBoard.Hide()         self.Hide()



py'ler ile işimiz bitti. Şimdi size vermiş olduğum linkteki py ve quest dosyasını indirin.
uihealth.py adlı dosyayı root içine atın ve kapatın. questide serverinize okutun.
Oyuna geçip;
/reload q komutunu verin.

NOT: Arkadaşlar buradaki kodları kullanarak TAB hatası yapma olasılığınız büyük ihtimal ile artıyor. Size vereceğim dosyanın içerisinde Anlatım.py mevcut. Kodları eklerken oradan kopyalayın ve yapıştırın.






Eğer konu işinize yaradıysa bir teşekkür etmeniz yeterli.
İyi günler...




Yepyeni Sorunsuz Rakip Can Görme Sistemi [19.07.2015]

Metin2 özel sunucularında oyun deneyimini artırmak için geliştirilen en etkili sistemlerden biridir rakip can gösterme sistemi.
Bu sistem sayesinde oyuncular, PvP savaşları sırasında rakiplerinin can durumunu görsel olarak takip edebilir ve daha stratejik hareketler yapabilir.

Sistem 19 Temmuz 2015 tarihinde piyasaya sürülmüş olup, bugüne kadar birçok Metin2 özel sunucusunda sorunsuz şekilde çalışmaktadır.
Geliştirici ekipler tarafından C++ tabanlı sunucu kaynak kodlarına entegre edilmiş ve oldukça stabil bir yapıya sahiptir.

Sistemin Temel Özellikleri:
- Can çubuğu doğrudan rakip karakterin üzerinde belirir.
- Can miktarı renk skalasına göre değişir: yeşil (yüksek can), sarı (orta seviye can), kırmızı (düşük can).
- Oyuncu adının hemen altında görüntülenir ve her saldırıda güncellenir.
- Performans kaybı olmadan çalışır, sunucu kaynaklarını etkilemez.

Sistemin Entegrasyonu:
Bu sistem, game core dosyalarına minimal müdahaleyle entegre edilir.
C++ bilgisi olan geliştiriciler için oldukça kullanıcı dostudur ve kolayca özelleştirilebilir.

Kurulum Adımları (Kısaca):
1. Sunucu kaynak koduna özel bir fonksiyon eklenir.
2. Client tarafında UI Script (uiscript) ile can çubuğu çizimi yapılır.
3. Sunucu ile istemci arasında can bilgisi实时 olarak paylaşılır.

Not: Bu sistem sadece PvP alanlarında aktif olacak şekilde ayarlanabilir, bu sayede oyun deneyimi korunurken spam önlenir.

Avantajları:
- Daha adil bir PvP ortamı sağlar.
- Stratejik savaşlarda fark yaratır.
- Sunucuya ekstra performans kazandırır.

Metin2Lobby üzerinden bu sistem ve diğer gelişmiş kaynak kodlar hakkında daha fazla bilgi alabilirsiniz.


Brand New Flawless Enemy HP Display System [07/19/2015]

The enemy HP display system is one of the most effective tools developed to enhance gameplay in Metin2 private servers.
Thanks to this system, players can visually track their opponents' health during PvP battles and make more strategic moves.

Released on July 19, 2015, this system has been operating flawlessly on numerous Metin2 private servers ever since.
It was integrated into the C++ based server source codes by developer teams and offers a highly stable structure.

Key Features of the System:
- Health bar appears directly above the opponent character.
- The health amount changes according to a color scale: green (high health), yellow (medium health), red (low health).
- Appears right below the player name and updates with each attack.
- Operates without performance loss, does not affect server resources.

Integration of the System:
This system integrates into the game core files with minimal modifications.
It is user-friendly for developers familiar with C++ and can be easily customized.

Installation Steps (Briefly):
1. A custom function is added to the server source code.
2. Client-side UI Script (uiscript) draws the health bar.
3. Health data is shared in real-time between the server and client.

Note: This system can be configured to only activate in PvP zones, thus preventing spam while maintaining the gaming experience.

Advantages:
- Provides a fairer PvP environment.
- Creates differences in strategic combat.
- Adds extra performance to the server.

You can find more information about this system and other advanced source codes at Metin2Lobby.
 

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

Geri
Üst Alt