Sistem Görüntü
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]
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
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
Kod:
app.HideCursor()
Aratılır
Altına Ekleyin
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Kod:
self.KillGuiBg.Hide() self.KillOnline3.Hide() self.KillOnline2.Hide() self.KillOnline1.Hide() self.KillOnline.Hide() self.KillGuiBg_close.Hide()
Kod:
def OnUpdate(self):
Aratılır
Altına
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
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
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
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
Dosya
Verdigim lib'ler 34 K İçindir.
DOSYA.CO -
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
MEDİAFİRE -
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
VİRÜSTOTAL -
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
40-K_LIB [Denenmedi]-
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
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
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Kardeşime Teşekkürler.For : Berat Erbab
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.
