LONCALAR İÇİN YENİ SKOR BOARD

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar,
beğendiğim skor boardı sizinle paylaşıyorum editleyip kullanabilirsiniz.



Ekran-Alintisi.png


Kod:
class GuildWarScoreBoard(ui.ScriptWindow):  //Arat class'ı komple değiştir: class GuildWarScoreBoard(ui.ScriptWindow):     def __init__(self):         ui.ScriptWindow.__init__(self)         self.Initialize()     def __del__(self):         ui.ScriptWindow.__del__(self)     def Initialize(self):         self.allyGuildID = 0         self.enemyGuildID = 0         self.allyDataDict = {}         self.enemyDataDict = {}     def Open(self, allyGuildID, enemyGuildID):         app.SetFrameSkip(1)         self.SetSize(wndMgr.GetScreenWidth(), wndMgr.GetScreenHeight())         self.allyGuildID = allyGuildID         self.enemyGuildID = enemyGuildID         self.SetPosition(wndMgr.GetScreenWidth()/2-(566/2),(wndMgr.GetScreenHeight()/2-(566/2)))         self.SetSize(566, 566)         self.AddFlag("float")         self.AddFlag("movable")         self.backgroundImage = ui.MakeImageBox(self, "d:/ymir work/ui/pattern/score_board.tga", 0, 0)         self.backgroundImage.AddFlag("not_pick") #        self.backgroundImage.SetParent(self)         mark = ui.MarkBox()         mark.SetParent(self)#captan         mark.SetIndex(allyGuildID)         mark.SetPosition(28, 56 + 18*0)         mark.Show()         scoreText = ui.TextLine()         scoreText.SetParent(self)         scoreText.SetPosition(51, 52 + 18*0)         scoreText.SetHorizontalAlignLeft()         scoreText.SetFontColor(0.0, 0.0, 0.0)         scoreText.SetFontName("Arial:16")         scoreText.Show()         scoreText1 = ui.TextLine()         scoreText1.SetParent(self)         scoreText1.SetPosition(30, 10 + 18*0)         scoreText1.SetHorizontalAlignLeft() #        scoreText1.SetFontColor(206,98,20) #        scoreText1.SetFontName("Tahoma:36")         scoreText1.Show()         self.allyDataDict["NAME"] = guild.GetGuildName(allyGuildID)         self.allyDataDict["SCORE"] = 0         self.allyDataDict["MEMBER_COUNT"] = -1         self.allyDataDict["MARK"] = mark         self.allyDataDict["TEXT"] = scoreText         self.allyDataDict["SCORE1"] = scoreText1         mark = ui.MarkBox()         mark.SetParent(self)         mark.SetIndex(enemyGuildID)         mark.SetPosition(398, 56 + 18*0)         mark.Show()         scoreText = ui.TextLine()         scoreText.SetParent(self)         scoreText.SetPosition(421, 52 + 18*0)         scoreText.SetHorizontalAlignLeft()         scoreText.SetFontColor(0.0, 0.0, 0.0)         scoreText.SetFontName("Arial:16")         scoreText.Show()         scoreText1 = ui.TextLine()         scoreText1.SetParent(self)         scoreText1.SetPosition(30, 10 + 18*0)         scoreText1.SetHorizontalAlignLeft() #        scoreText1.SetFontColor(206,98,20) #        scoreText1.SetFontName("Tahoma:36")         scoreText1.Show()         self.enemyDataDict["NAME"] = guild.GetGuildName(enemyGuildID)         self.enemyDataDict["SCORE"] = 0         self.enemyDataDict["MEMBER_COUNT"] = -1         self.enemyDataDict["MARK"] = mark         self.enemyDataDict["TEXT"] = scoreText         self.enemyDataDict["SCORE1"] = scoreText1         self.__RefreshName()         self.Show()     def __GetDataDict(self, ID):         if self.allyGuildID == ID:             return self.allyDataDict         if self.enemyGuildID == ID:             return self.enemyDataDict         return None     def SetScore(self, gainGuildID, opponetGuildID, point):         dataDict = self.__GetDataDict(gainGuildID)         if not dataDict:             return         dataDict["SCORE"] = point         self.__RefreshName()     def UpdateMemberCount(self, guildID1, memberCount1, guildID2, memberCount2):         dataDict1 = self.__GetDataDict(guildID1)         dataDict2 = self.__GetDataDict(guildID2)         if dataDict1:             dataDict1["MEMBER_COUNT"] = memberCount1         if dataDict2:             dataDict2["MEMBER_COUNT"] = memberCount2         self.__RefreshName()     def __RefreshName(self):         nameMaxLen = max(len(self.allyDataDict["NAME"]), len(self.enemyDataDict["NAME"]))         if -1 == self.allyDataDict["MEMBER_COUNT"] or -1 == self.enemyDataDict["MEMBER_COUNT"]:             self.SetSize(30+nameMaxLen*6+8*20+340, 124)             self.allyDataDict["TEXT"].SetText(str(self.allyDataDict["NAME"]))             self.allyDataDict["SCORE1"].SetFontName("Tahoma:36")             self.allyDataDict["SCORE1"].SetText(str(self.allyDataDict["SCORE"]))             self.allyDataDict["SCORE1"].SetPosition(196,45)             self.enemyDataDict["TEXT"].SetText(str(self.enemyDataDict["NAME"]))             self.enemyDataDict["SCORE1"].SetFontName("Tahoma:36")             self.enemyDataDict["SCORE1"].SetText(str(self.enemyDataDict["SCORE"]))             self.enemyDataDict["SCORE1"].SetPosition(325,45)         else:             self.SetSize(30+nameMaxLen*6+8*20+340, 124)             self.allyDataDict["TEXT"].SetText("%s(%d)" % (self.allyDataDict["NAME"], self.allyDataDict["MEMBER_COUNT"]))             self.allyDataDict["SCORE1"].SetFontName("Tahoma:36")             self.allyDataDict["SCORE1"].SetText(str(self.allyDataDict["SCORE"]))             self.allyDataDict["SCORE1"].SetPosition(196,45)             self.enemyDataDict["TEXT"].SetText("%s(%d)" % (self.enemyDataDict["NAME"], self.enemyDataDict["MEMBER_COUNT"]))             self.enemyDataDict["SCORE1"].SetFontName("Tahoma:36")             self.enemyDataDict["SCORE1"].SetText(str(self.enemyDataDict["SCORE"]))             self.enemyDataDict["SCORE1"].SetPosition(325,45)

TGA'nın konumunu kendinize göre ayarlarsınız.
LONCALAR İÇİN YENİ SKOR BOARD SİSTEMİ

Metin2 lobilerinde rekabet ortamını daha da artırmak isteyen sunucu sahipleri için özel olarak geliştirilen Skor Board sistemi, oyuncuların PvP performanslarını takip etmelerini sağlar. Bu sistem sayesinde loncalar kendi aralarında turnuvalar düzenleyebilir, liderlik tabloları oluşturabilir ve en iyi savaşçıları ödüllendirebilir. Bu yazıda, Metin2 özel sunucularında lonca bazlı skor tablosu sisteminin nasıl kurulacağı, hangi teknolojilerle geliştirildiği ve avantajları neler olduğu detaylı şekilde ele alınmaktadır.

Skor Board Nedir?

Skor Board, oyuncuların veya loncaların PvP etkinliklerine göre puanlandığı dinamik bir sistemdir. Oyuncuların öldürdüğü rakipler, kazandıkları savaşlar ve katıldıkları turnuvalar gibi veriler üzerinden puanlamalar yapılır. Bu puanlar zamanla güncellenerek, oyuncuların ve loncaların sıralaması belirlenir. Bu tür sistemler, Metin2 gibi PvP odaklı oyunlarda büyük motivasyon kaynağıdır.

C++ ve Python ile Geliştirilen Skor Board Yapısı

Skor board sistemi genellikle game server tarafında C++ ile yazılmış olan çekirdek sistemlere entegre edilir. PvP olayları yakalanarak veritabanına işlenir. Python tabanlı GUI panelleriyle ise bu veriler kullanıcı dostu arayüzlerde sunulur. Py Root ve UIScript gibi yapılarla oyun içi arayüze entegrasyon sağlanabilir. Bu sayede oyuncular, skor tablosunu doğrudan oyundan erişebilir.

Veritabanı Entegrasyonu ve Canlı Güncelleme

Sistem, MySQL veya MariaDB gibi ilişkisel veritabanları kullanarak PvP verilerini saklar. Her öldürülen karakter, kazanılan savaş ya da turnuva skoru anlık olarak DB'ye işlenir. Canlı skor board sayesinde oyuncular, anlık olarak sıralamadaki değişiklikleri takip edebilirler.

Loncalar İçin Özel Özellikler

Bu sistem, sadece bireysel değil aynı zamanda lonca bazlı sıralamaları da desteklemektedir. Loncalar kendi içlerinde özel turnuvalar yapabilir ve bu turnuvaların sonuçları ana skor tablosuna yansıtılabilir. Martysama ve diğer gelişmiş Metin2Dev sistemleriyle entegre çalışabilen bu modül, source edit süreçlerinde kolayca entegre edilebilir.

Avantajlar

PvP motivasyonunu artırır.
Oyuncuların aktif kalmasını sağlar.
Turnuva organizasyonlarını kolaylaştırır.
Sunucu sadakatini yükseltir.

Sonuç

Metin2 özel sunucularında loncalar için geliştirilen skor board sistemi, oyuncuların PvP etkileşimlerini daha anlamlı hale getiriyor. Gelişmiş C++ ve Python sistemleriyle entegre çalışan bu yapı, hem teknik hem de oyun içi deneyim açısından güçlü bir çözüm sunuyor. Metin2 Lobby olarak bu tür gelişmiş sistemleri sunucularınıza entegre etmek için kaynak kodlara ulaşabilir, gelişmiş sistemler geliştirebilirsiniz.


NEW SCOREBOARD FOR GUILDS

The specially developed Scoreboard system for server owners who want to increase the competitive environment in Metin2 lobbies allows players to track their PvP performance. With this system, guilds can organize tournaments among themselves, create leaderboards, and reward top fighters. In this article, we will detail how to set up a guild-based score table system in Metin2 private servers, which technologies it is developed with, and its benefits.

What is Scoreboard?

Scoreboard is a dynamic system where players or guilds are ranked based on their PvP activities. Points are awarded based on kills, victories in battles, and participation in tournaments. These points update over time, determining the rankings of players and guilds. Such systems are great motivational tools in PvP-focused games like Metin2.

Scoreboard Structure Developed with C++ and Python

The scoreboard system is usually integrated into the core systems written in C++ on the game server side. PvP events are captured and saved into the database. With Python-based GUI panels, these data are presented through user-friendly interfaces. Integration into the in-game UI can be achieved using structures like Py Root and UIScript. This way, players can access the scoreboard directly from the game.

Database Integration and Live Updates

The system stores PvP data using relational databases such as MySQL or MariaDB. Every kill, win, or tournament result is instantly processed into the DB. With live scoreboards, players can follow real-time changes in the rankings.

Special Features for Guilds

This system supports not only individual but also guild-based rankings. Guilds can hold internal tournaments and the results can be reflected onto the main scoreboard. Compatible with advanced systems like Martysama and other Metin2Dev modules, this feature can be easily integrated during source edit processes.

Benefits

Increases PvP motivation.
Keeps players active.
Facilitates tournament organization.
Improves server loyalty.

Conclusion

The scoreboard system developed for guilds in Metin2 private servers makes player PvP interactions more meaningful. Integrated with advanced C++ and Python systems, this structure provides a strong solution both technically and in terms of in-game experience. At Metin2 Lobby, you can access source codes and develop advanced systems by integrating these types of solutions into your servers.​
 

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

Benzer konular

Geri
Üst Alt