Oyundaki Krallık Sayısını Azaltmak

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba Değerli Turkmmo Üyeleri;

İçerik kabayoo Aittir Emekleri için teşekkürler.

Genellikle WS Lik serverlerde çoklukla kullanılan veya kullanılmak istenen bir durum. Tek bayrak olarak kayıt olmak. Oyundaki krallık sayısını azaltmayı göstereceğim.

Pack'ımızda bulunan Root dosyamızın içeriğinde introempire.py dosyasını Notepad yardımıyla açıyoruz.

Kod:
EMPIRE_DESCRIPTION_TEXT_FILE_NAME = {           net.EMPIRE_A : uiScriptLocale.EMPIREDESC_A,         net.EMPIRE_B : uiScriptLocale.EMPIREDESC_B,         net.EMPIRE_C : uiScriptLocale.EMPIREDESC_C, }
A : Kırmızı
B : Sarı
C : Mavi

Kaldırmak istediğimiz bayrağın kod satırını siliyoruz.
Kod:
self.empireAreaCurAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 } self.empireAreaDestAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 } self.empireAreaFlagCurAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 } self.empireAreaFlagDestAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 } self.empireFlagCurAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 } self.empireFlagDestAlpha = { net.EMPIRE_A:0.0, net.EMPIRE_B:0.0, net.EMPIRE_C:0.0 }
Örneğin kırmızı bayrağı kaldırmak istiyorsanız 6 satırdan da net.EMPIRE_A:0.0, kısmını silmeniz gerekecek.

Kod:
Python: self.empireArea[net.EMPIRE_A]    = GetObject("EmpireArea_A") self.empireArea[net.EMPIRE_B]    = GetObject("EmpireArea_B") self.empireArea[net.EMPIRE_C]    = GetObject("EmpireArea_C") self.empireAreaFlag[net.EMPIRE_A]    = GetObject("EmpireAreaFlag_A") self.empireAreaFlag[net.EMPIRE_B]    = GetObject("EmpireAreaFlag_B") self.empireAreaFlag[net.EMPIRE_C]    = GetObject("EmpireAreaFlag_C") self.empireFlag[net.EMPIRE_A]    = GetObject("EmpireFlag_A") self.empireFlag[net.EMPIRE_B]    = GetObject("EmpireFlag_B") self.empireFlag[net.EMPIRE_C]    = GetObject("EmpireFlag_C")

Tekrar kırmızıyı silmek istiyorsam EMPIRE_A yazan tüm satırları silmeliyiz.

Tekrardan Aratın


Kod:
def ClickLeftButton(self):         self.empireID-=1         if self.empireID<1:             self.empireID=3         self.OnSelectEmpire(self.empireID) def ClickRightButton(self):         self.empireID+=1         if self.empireID>3:             self.empireID=1

Bulun ve bununla değiştirin.

Aratın:


Kod:
self.empireID=app.GetRandom(1, 3)


Kod:
self.empireID=app.GetRandom(1, 1)


Kayıt edin ve kapatın.

locale>tr>selectempirewindow.py içinde;


Kod:
"name" : "EmpireFlag_A", "name" : "EmpireFlag_B", "name" : "EmpireFlag_C",

Kullanmayacağız bayrağı silin.


Kod:
: ## Empire Flag                         {                             "name" : "EmpireFlag_A",                             "type" : "expanded_image",                             "x" : 0,                             "y" : 0,                             "horizontal_align" : "center",                             "vertical_align" : "center",                             "image" : "d:/ymir work/ui/intro/empire/empireflag_a.sub"                         },                         {                             "name" : "EmpireFlag_B",                             "type" : "expanded_image",                             "x" : 0,                             "y" : 0,                             "horizontal_align" : "center",                             "vertical_align" : "center",                             "image" : "d:/ymir work/ui/intro/empire/empireflag_b.sub"                         },                         {                             "name" : "EmpireFlag_C",                             "type" : "expanded_image",                             "x" : 0,                             "y" : 0,                             "horizontal_align" : "center",                             "vertical_align" : "center",                             "image" : "d:/ymir work/ui/intro/empire/empireflag_c.sub"                         },

örneğin kırmızı bayrak kaldırıyoruz diyelim,


Kod:
{                             "name" : "EmpireFlag_A",                             "type" : "expanded_image",                             "x" : 0,                             "y" : 0,                             "horizontal_align" : "center",                             "vertical_align" : "center",                             "image" : "d:/ymir work/ui/intro/empire/empireflag_a.sub"                         },


Bloğunu kaldıracağız.

Not: Server tarafına kontrol eklenmeli. Python inject yapabilen biri kolaylıkla kaldırılan bayrakta karakter oluşturabilir. WS'lik servere eklemeniz tavsiye edilir.
Oyundaki Krallık Sayısını Azaltmak


Metin2 gibi çok oyunculu savaş tabanlı oyunlarda krallık sistemi, oyuncuların birleşip ortak hedeflere odaklanmasını sağlayan temel yapılardandır. Ancak bazı özel sunucularda krallık sayısının azaltılması istenebilir. Bu durum genellikle sunucu deneyimini yoğunlaştırmak, PvP etkileşimini artırmak veya belirli stratejik senaryolar yaratmak için yapılır. Bu yazıda, Metin2 özel sunucularında krallık sayısının nasıl azaltılabileceğinden bahsedeceğiz.

Neden Krallık Sayısı Azaltılsın?
Bazı özel sunucular, yoğun bir rekabet ortamı yaratmak için krallık sayısını sınırlamayı tercih eder. Daha az krallık daha fazla çatışma demektir. Özellikle turnuvalar, krallık savaşları gibi etkinliklerde rekabetin daha yüksek olması için bu yapılar kullanılır. Ayrıca, az sayıda krallıkta yönetim daha merkezi hale gelir ve stratejik planlamalar daha kolay olabilir.

C++ Sunucu Kaynak Kodlarında Değişiklik[/CTYPE]
Metin2 özel sunucularında krallık sistemi, genellikle C++ ile yazılmış olan sunucu tarafı kaynak kodlarda tanımlıdır. Krallık sayısını değiştirmek için öncelikle game core dosyalarında bulunan krallık tanımlarını düzenlemek gerekir. Örneğin, varsayılan olarak 3 krallık (Shinsoo, Chunjo, Jinno) desteklenir. Bu sayıyı 2'ye düşürmek istiyorsanız, bu krallıklardan birini devre dışı bırakmanız gerekir.

Devre Dışı Bırakma Yöntemleri
Krallık sayısını azaltmanın birkaç yöntemi vardır:
- Database seviyesinde krallık girişlerini silmek.
- Client tarafında krallık seçim ekranından seçilemez hale getirmek.
- Game server tarafında krallık oluşturma limitini ayarlamak.

Dikkat Edilmesi Gerekenler
Bu tür değişiklikler, oyuncuların deneyimini ciddi şekilde etkileyebilir. Özellikle krallık sistemine bağlı olan olaylar ve görevler bu değişiklikten etkilenebilir. Bu nedenle, yapılan değişikliklerin test edilmesi ve olası yan etkilerin kontrol edilmesi önemlidir. Ayrıca, oyunculara bu değişiklikler hakkında bilgi vermek, kullanıcı memnuniyetini korumak açısından kritiktir.

Python ve Py Root ile Entegrasyon
Metin2 özel sunucularında, bazı sistemler Python ile geliştirilmiş olabilir. Bu durumda, krallık sayısını azaltmak için py root dosyalarında da değişiklik yapılması gerekebilir. Örneğin, bir GUI üzerinden krallık yönetimi yapılıyorsa, bu arayüzde de yalnızca mevcut krallıklar gösterilmelidir. Py GUI veya UIScript kullanılarak bu tür düzenlemeler yapılabilir.

Sunucu Derleme ve Test Süreci
Değişiklikler tamamlandıktan sonra, sunucu tekrar derlenmeli ve test edilmelidir. Metin2 compile işlemi sırasında hata oluşmaması için tüm dosyalarda tutarlılık sağlanmalıdır. Hataların erken tespiti, sunucunun stabilitesi için hayati öneme sahiptir. Bu süreçte auth ve game server yapılandırması da gözden geçirilmelidir.

Sonuç
Metin2 özel sunucularında krallık sayısını azaltmak, oyun içi rekabeti artırabilir ve daha stratejik bir oyun deneyimi sunabilir. Ancak bu işlem, hem sunucu tarafında hem de istemci tarafında değişiklikler gerektirir. Doğru yapılandırılmış bir sistem, kullanıcıların daha keyifli ve dengeli bir PvP ortamında oynamasını sağlar. Bu tür gelişmiş yapılandırmalar, Metin2 development sürecinin önemli parçalarındandır.


Reducing the Number of Kingdoms in the Game


In multiplayer battle-based games like Metin2, the kingdom system is one of the fundamental structures that allow players to unite and focus on common goals. However, in some private servers, reducing the number of kingdoms may be desired. This is often done to intensify the server experience, increase PvP interaction, or create specific strategic scenarios. In this article, we will discuss how to reduce the number of kingdoms in Metin2 private servers.

Why Reduce the Number of Kingdoms?
Some private servers prefer limiting the number of kingdoms to create a more intense competitive environment. Fewer kingdoms mean more conflicts. Especially during tournaments, kingdom wars, and similar events, having higher competition is often preferred. Additionally, with fewer kingdoms, management becomes more centralized, and strategic planning can be easier.

Modifying the C++ Server Source Code
In Metin2 private servers, the kingdom system is typically defined in the server-side source code written in C++. To change the number of kingdoms, you first need to modify the kingdom definitions found in the game core files. For example, by default, three kingdoms (Shinsoo, Chunjo, Jinno) are supported. If you want to reduce this number to two, you must disable one of these kingdoms.

Methods for Disabling Kingdoms
There are several ways to reduce the number of kingdoms:
- Removing kingdom entries at the database level.
- Making them unselectable on the kingdom selection screen from the client side.
- Setting the kingdom creation limit on the game server side.

Things to Consider
Such changes can significantly affect the player experience. Particularly, events and quests tied to the kingdom system may be impacted by these modifications. Therefore, testing the changes and controlling potential side effects is crucial. Additionally, informing players about these changes is critical for maintaining user satisfaction.

Integration with Python and Py Root
In Metin2 private servers, some systems may be developed using Python. In such cases, modifications might also be required in the py root files to reduce the number of kingdoms. For instance, if kingdom management is done through a GUI, only the existing kingdoms should be displayed in that interface. Such adjustments can be made using Py GUI or UIScript.

Server Compilation and Testing Process
After the modifications are completed, the server must be recompiled and tested. Consistency across all files must be ensured to avoid errors during the Metin2 compile process. Early detection of errors is vital for the stability of the server. During this process, the auth and game server configurations should also be reviewed.

Conclusion
Reducing the number of kingdoms in Metin2 private servers can enhance in-game competition and provide a more strategic gameplay experience. However, this process requires changes both on the server and client sides. Properly configured systems allow users to enjoy a more balanced and fun PvP environment. Such advanced configurations are important parts of the Metin2 development process.
 

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

Geri
Üst Alt