Oyun İçi Online Gösterge Her Bayrak Ayrı #Onur Erkünt

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Sistem Görüntü

8bP10V.png




Root game.py aratılır
Kod:
class GameWindow(ui.ScriptWindow): def __init__(self, stream): ui.ScriptWindow.__init__(self, "GAME") self.SetWindowName("game") net.SetPhaseWindow(net.PHASE_WINDOW_GAME, self) player.SetGameWindow(self) self.quickSlotPageIndex = 0 self.lastPKModeSendedTime = 0 self.pressNumber = None self.guildWarQuestionDialog = None self.interface = None self.targetBoard = None self.console = None self.mapNameShower = None self.affectShower = None self.playerGauge = None self.stream=stream self.interface = interfaceModule.Interface() self.interface.MakeInterface() self.interface.ShowDefaultWindows() self.curtain = uiPhaseCurtain.PhaseCurtain() self.curtain.speed = 0.03 self.curtain.Hide() self.targetBoard = uiTarget.TargetBoard() self.targetBoard.SetWhisperEvent(ui.__mem_func__(self.interface.OpenWhisperDialog)) self.targetBoard.Hide() self.console = consoleModule.ConsoleWindow() self.console.BindGameClass(self) self.console.SetConsoleSize(wndMgr.GetScreenWidth(), 200) self.console.Hide()[/FONT]
Altına Bir Boşluk
Kod:
##ONLINE GOSTERGE EDITED BY : XXERDO KillGuiBg = ui.ImageBox() KillGuiBg.LoadImage("d:/ymir work/ui/v1.dds") self.KillGuiBg = KillGuiBg self.KillGuiBg.SetPosition(-166,300) self.KillGuiBg.Show() self.KillGuiBg_open = ui.Button() self.KillGuiBg_open.SetPosition(+11,400) self.KillGuiBg_open.SetUpVisual('d:/ymir work/ui/abrir_kg.tga') self.KillGuiBg_open.SetOverVisual('d:/ymir work/ui/abrir_raton_kg.tga') self.KillGuiBg_open.SetDownVisual('d:/ymir work/ui/abrir_pulsado_kg.tga') self.KillGuiBg_open.SetEvent(self.__OpenKillGui) self.KillGuiBg_open.Show() self.KillGuiBg_close = ui.Button() self.KillGuiBg_close.SetPosition(+178,400) self.KillGuiBg_close.SetUpVisual('d:/ymir work/ui/cerrar_kg.tga') self.KillGuiBg_close.SetOverVisual('d:/ymir work/ui/cerrar_raton_kg.tga') self.KillGuiBg_close.SetDownVisual('d:/ymir work/ui/cerrar_pulsado_kg.tga') self.KillGuiBg_close.SetEvent(self.__CloseKillGui) self.KillGuiBg_close.Hide() self.KillOnline3 = ui.TextLine() self.KillOnline3.SetDefaultFontName() self.KillOnline3.SetPosition(40,372) import urllib OnlineSay3 = urllib.urlopen("http://localhost:81/online/mavibayrak.php").read() self.KillOnline3.SetText("Mavi Online  : " + OnlineSay3) self.KillOnline3.SetFontColor(253,300,5) self.KillOnline3.SetOutline() #self.KillOnline3.SetEvent(self.__KillBlauReich) self.KillOnline3.Hide() self.KillOnline2 = ui.TextLine() self.KillOnline2.SetDefaultFontName() self.KillOnline2.SetPosition(40, 402) import urllib OnlineSay2 = urllib.urlopen("http://localhost:81/online/saribayrak.php").read() self.KillOnline2.SetText("Sarı Online  : " + OnlineSay2) self.KillOnline2.SetFontColor(17,5,253) self.KillOnline2.SetOutline() #self.KillOnline2.SetEvent(self.__KillGelbReich) self.KillOnline2.Hide() self.KillOnline1 = ui.TextLine() self.KillOnline1.SetDefaultFontName() self.KillOnline1.SetPosition(40, 432) import urllib OnlineSay1 = urllib.urlopen("http://localhost:81/online/kirmizibayrak.php").read() self.KillOnline1.SetText("Kırmızı Online  : " + OnlineSay1) self.KillOnline1.SetFontColor(50,0,0) self.KillOnline1.SetOutline() #self.KillOnline1.SetEvent(self.__KillRotReich) self.KillOnline1.Hide() self.KillOnline = ui.TextLine() self.KillOnline.SetDefaultFontName() self.KillOnline.SetPosition(40, 462) import urllib OnlineSay = urllib.urlopen("http://localhost:81/online/online.php").read() self.KillOnline.SetText("Online Oyuncu : " + OnlineSay) self.KillOnline.SetOutline() #self.KillOnline.SetEvent(self.__KillOnline) self.KillOnline.Hide() ##ONLINE GOSTERGE EDITED BY : XXERDO
5n8JF6E.png


Kod:
app.HideCursor()

Aratılır

Altına Ekleyin

Kod:
self.KillGuiBg.Hide() self.KillOnline3.Hide() self.KillOnline2.Hide() self.KillOnline1.Hide() self.KillOnline.Hide() self.KillGuiBg_close.Hide()

0jGACZU.png



Kod:
def OnUpdate(self):

Aratılır


Altına

Kod:
def __hidekillgui(self): self.KillGuiBg.Hide() self.KillOnline3.Hide() self.KillOnline2.Hide() self.KillOnline1.Hide() self.KillOnline.Hide() def __showkillgui(self): self.KillGuiBg.Show() self.KillOnline3.Show() self.KillOnline2.Show() self.KillOnline1.Show() self.KillOnline.Show() def __KillBlauReich(self, KillOnline3): self.KillOnline3.SetText("Mavi Bayrak :  " + KillOnline3) def __KillGelbReich(self, KillOnline2): self.KillOnline2.SetText("Sarı Bayrak :  " + KillOnline2) def __KillRotReich(self, KillOnline1): self.KillOnline1.SetText("Kırmızı Bayrak :  " + KillOnline1) def __KillOnline(self): OnlineSay = urllib.urlopen("http://localhost:81/online/online.php").read() self.KillOnline.SetText("Online Oyuncu : " + OnlineSay) def __OpenKillGui(self): self.KillGuiBg_open.Hide() self.KillOnline3.Show() self.KillOnline2.Show() self.KillOnline1.Show() self.KillOnline.Show() self.KillGuiBg.SetPosition(+1,300) self.KillGuiBg_close.Show() def __CloseKillGui(self): self.KillGuiBg_close.Hide() self.KillOnline3.Hide() self.KillOnline2.Hide() self.KillOnline1.Hide() self.KillOnline.Hide() self.KillGuiBg.SetPosition(-166,300) self.KillGuiBg_open.Show()

Eklenir


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

Aratılır

Altına



Kod:
##ONLINE COUNT EDITED : XXERDO "ShowKillGui": self.__showkillgui, "HideKillGui": self.__hidekillgui, "KillOnline3": self.__KillBlauReich, "KillOnline2": self.__KillGelbReich, "KillOnline1": self.__KillRotReich, "KillOnline": self.__KillOnline, ##ONLINE COUNT EDITED BY : XXERDO

s0VfK7n.png


Dosya

Verdigim lib'ler 34 K İçindir.

DOSYA.CO -

MEDİAFİRE -

VİRÜSTOTAL -

40-K_LIB [Denenmedi]-



Dosyada Bulunan Lib Klasörünü Muhakkak Metin2 Klasörünüze Atınız Yoksa Çalışmaz.


Dosya İçerisindeki Online Gösterge PHP Dosyalarını Sitenize Upload Ediniz Ve Game.py Deki localhost Bölümlerini Sitenize Göre Düzenleyiniz.

Dosya İçerisindeki ymir work Klasörünü Direk Root / Dosyanıza Atınız.

Kurulum Bitti

Libler İçin Kardeşime Teşekkürler.

For : Berat Erbab:p

Dahası Gelicek Bkz : :m26:
Oyun İçi Online Gösterge Her Bayrak Ayrı #Onur Erkünt

Metin2 Lobby olarak sunucu geliştirme ve PvP sistem entegrasyonları üzerine yoğunlaşıyoruz. Bu bağlamda, oyun içi online kullanıcı sayısını bayrak bazında gösteren bir sistem geliştirmek isteyen geliştiriciler için önemli teknik detaylar ve bilgiler sunuyoruz. Bu sistem özellikle özel sunucular için önemlidir ve oyuncu deneyimini artırmada kritik rol oynar.

Online Kullanıcı Sayısı Sistemi Nedir?

Metin2 özel sunucularında, oyuncuların aktif olarak bulunduğu sunucuları ve bu sunucuların durumlarını görebilmeleri büyük önem taşır. Özellikle farklı bayraklara sahip sunucular arasında seçim yapabilmeleri için bu bilginin doğru ve güncel bir şekilde sunulması gerekir. Bu sistem, C++ tabanlı game server üzerinde çalışır ve client tarafında da entegre edilerek dinamik olarak güncellenir.

Neden Bayrak Bazlı Gösterim?

Sunucular farklı coğrafyalarda barındırıldığında, oyuncuların daha düşük ping ile oynamaları için bayrak bazlı gösterim oldukça faydalıdır. Ayrıca bu sayede sunucu yöneticileri, coğrafi dağılım hakkında da bilgi sahibi olabilir. Bu sistem, Martysama gibi gelişmiş server src yapılarında kolayca entegre edilebilir.

Sistem Geliştirme Adımları

Bu sistemin entegrasyonu için öncelikle auth server ve game server arasında doğru iletişim kurulmalıdır. C++ dilinde yazılmış olan server src üzerinde online count fonksiyonu geliştirilir. Bu fonksiyon, her sunucu kanalı için ayrı ayrı çalışarak o kanala ait oyuncu sayısını döner. Bu bilgi daha sonra client tarafına gönderilir.

Client Tarafında Entegrasyon

Client tarafında, uiscript veya py root dosyalarında değişiklik yapılması gerekir. Python GUI kullanılarak hazırlanan arayüzlere bu bilgi entegre edilir. Örneğin, oyuncu listesi veya kanal seçimi ekranında her bayrak altında online kullanıcı sayısı gösterilir. Bu sayede kullanıcılar daha bilinçli bir seçim yapabilir.

Veritabanı Entegrasyonu

Her kanalın online kullanıcı sayısının doğru tutulabilmesi için db core üzerinde gerekli düzenlemeler yapılmalıdır. MySQL veya diğer DB sistemleri üzerinden, her kanal için bir sayaç oluşturulur. Bu sayaç, oyuncu giriş çıkışlarına göre dinamik olarak güncellenir. Game core ile senkronize çalışması sağlanmalıdır.

Özetle

Bayrak bazlı online kullanıcı gösterimi, Metin2 özel sunucuları için kullanıcı deneyimini ciddi anlamda artıran bir özelliktir. C++ tabanlı server src üzerinde geliştirilerek, client tarafında Py GUI ile entegre edilebilir. Metin2 Lobby olarak bu konuda destek veriyor, geliştiricilere yardımcı oluyoruz.


In-Game Online Indicator Per Flag #Onur Erkunt

Metin2 Lobby focuses on server development and integration of PvP systems. Within this context, we provide essential technical details and information for developers wishing to implement a system that displays in-game online user counts per flag. This system is particularly important for private servers and plays a critical role in enhancing player experience.

What Is the Online User Count System?

In Metin2 private servers, it is crucial for players to see which servers are active and their current status. Especially when choosing between servers with different flags, having accurate and up-to-date information is vital. This system operates on a C++-based game server and is integrated into the client side to update dynamically.

Why Flag-Based Display?

When servers are hosted in different geographical regions, flag-based display helps players choose lower-ping options. Additionally, server administrators can gain insights into geographical distribution. This system can be easily integrated into advanced server src structures like Martysama.

Development Steps for the System

To integrate this system, communication between the auth server and game server must first be established correctly. On the C++-written server src, an online count function is developed. This function works separately for each server channel, returning the number of players on that channel. This data is then sent to the client side.

Integration on Client Side

On the client side, modifications need to be made to uiscript or py root files. Using Python GUI, this information is integrated into interfaces. For example, in the player list or channel selection screen, the number of online users under each flag is displayed, allowing users to make more informed choices.

Database Integration

To ensure accurate tracking of online user counts per channel, necessary adjustments must be made on the db core. Using MySQL or other database systems, a counter is created for each channel. This counter updates dynamically based on player logins and logouts, synchronized with the game core.

In Summary

Flag-based online user display is a feature significantly enhancing user experience in Metin2 private servers. Developed on C++-based server src and integrated on the client side with Py GUI. At Metin2 Lobby, we provide support and assist developers in this area.
 

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

Geri
Üst Alt