Python Tarafında Lonca'ya Exp Bağışı Yaparken Karakterin Şampiyon Exp'sini Sorgulaması Yok.
Bu Nedenle Yohara Sistemini Kullanıyorsanız ve Bir Oyuncu Şampiyon Olduğu Zaman Lonca'ya Exp Bağışı Yapamayacak.
Bu Bölüm Sadece Python Tarafıdır.
uiGuild.py Arat:
İçinde Arat:
Değiştir:
KANIT:
NORMAL SEVİYE
Bu Nedenle Yohara Sistemini Kullanıyorsanız ve Bir Oyuncu Şampiyon Olduğu Zaman Lonca'ya Exp Bağışı Yapamayacak.
Bu Bölüm Sadece Python Tarafıdır.
uiGuild.py Arat:
Kod:
def __OnClickOfferButton(self):
İçinde Arat:
Kod:
curEXP = unsigned32(player.GetStatus(player.EXP)) if curEXP <= 100: self.__PopupMessage(localeInfo.GUILD_SHORT_EXP); return self.offerDialog.Open(curEXP, 100)
Değiştir:
Kod:
character_exp = unsigned32(player.GetStatus(player.CONQUEROR_EXP)) if unsigned32(player.GetStatus(player.CONQUEROR_EXP)) else unsigned32(player.GetStatus(player.EXP)) if character_exp <= 100: self.__PopupMessage(localeInfo.GUILD_SHORT_EXP); return self.offerDialog.Open(character_exp, 100)
KANIT:
NORMAL SEVİYE
ŞAMPİYON SEVİYESİ
Test Amaçlı Exp'leri Bitirdim O Nedenle İkisinde de Yeterli Tecrübe Puanı Yok diyor.
Fakat Bu Şekilde Şampiyon Exp'si Var ise Şampiyon Exp'si Alır ve offerDialog'da / olarak Şampiyon Exp'sini Gösterir.
Aynı Şekilde Normal Exp'si Var ise Normal Exp'sini Alır ve offerDialog / olarak Normal Exp'sini Gösterir.
[Python] Şampiyon Seviyesi Genişlemesi (Exp Methodunu Değiştirmek)
Metin2 özel sunucularında oyuncu deneyimi yönetimi, sunucunun oynanış dinamiklerini doğrudan etkileyen kritik bir sistemdir. Özellikle PvP odaklı sunucularda, seviye atlama mekanizması ve experience (exp) kazanımı, oyuncuların rekabet ortamında gelişimini belirler. Bu yazıda, Python dilinde yazılmış bir sistem üzerinden exp methodunun nasıl değiştirileceğini ve bu değişimin şampiyon seviyesi gibi özel bir yükseliş sistemine nasıl entegre edileceğini inceleyeceğiz.
Exp Sistemi Nedir?
Experience, yani deneyim puanı, oyuncuların canavarları öldürerek, görevleri tamamlayarak veya PvP kazandıklarında elde ettikleri puanlardır. Bu puanlar, belirlenen eşiklere ulaştıkça karakterin seviyesini artırır. Ancak bazı özel sunucularda, normal seviye sistemine ek olarak şampiyon seviyesi gibi ikincil sistemler de tanımlanabilir. Bu sistemlerde, oyuncular belli bir seviyeye ulaştıktan sonra normal exp artışı durabilir veya farklı bir formülle devam edebilir.
Python Üzerinden Exp Methodu Nasıl Çalışır?
Metin2 özel sunucularında, game server[/COORD] tarafında çalışan Python scriptleri, exp sistemini kontrol eder. Genellikle char.py, char_manager.py gibi dosyalarda bulunan GainEXP fonksiyonu, karakterin exp kazanmasını sağlar. Bu fonksiyonun davranışını değiştirmek, exp yöntemini özelleştirmemizi sağlar.
Exp Methodunu Değiştirmek
GainEXP fonksiyonunun davranışını değiştirmek için, öncelikle karakterin hangi seviyede olduğunu kontrol etmemiz gerekir. Eğer karakter normal seviye sınırına ulaşmışsa, exp kazanımını farklı bir fonksiyona yönlendirebiliriz. Örneğin:
if self.GetLevel() >= 120:
self.GainChampionExp(exp_amount)
else:
self.__gain_normal_exp(exp_amount)
Bu yapı sayesinde, karakter 120. seviyeye ulaştığında artık normal exp kazanmaz, şampiyon exp kazanmaya başlar. Bu sistem, oyuncuların uzun süreli oynamasını teşvik eder ve sunucuda yüksek seviye oyuncular için yeni bir hedef oluşturur.
Şampiyon Seviyesi Sistemi Nasıl Çalışır?
Şampiyon seviyesi, genellikle normal seviye sistemine ek olarak çalışır. Oyuncu normal seviyeye ulaşınca bu sistem aktif olur. Şampiyon exp’i, belli aralıklarla şampiyon seviyesini artırır. Bu sistemde, bonus nitelikler, özel yetenekler veya ekstra stat kazanımı gibi özellikler sunulabilir. Python üzerinde bu sistemi entegre etmek için, GainChampionExp adında yeni bir fonksiyon tanımlamak gerekir.
Bonus Nitelikler ve Yetenekler
Şampiyon seviyesi arttıkça, oyunculara bonus nitelikler tanımlanabilir. Örneğin, 1. şampiyon seviyesinde +10攻击力, 10. şampiyon seviyesinde ise +20攻击力 gibi. Bu bonuslar, oyuncunun PvP performansını artırır ve rekabette avantaj sağlar. Python üzerinden bu bonuslar, karakterin statlarını güncelleyen fonksiyonlarla entegre edilebilir.
Sunucu Tarafında Entegrasyon
Bu sistem, server side üzerinde çalıştığı için, root klasöründe yer alan .py dosyalarında tanımlanmalıdır. Ayrıca, client tarafında da bu sistemin görsel olarak gösterimi gerekebilir. Bu da uiscript ile yapılır. Sunucu tarafında exp methodunun doğru çalışması için, game core üzerinde değişiklik yaparken dikkatli olunmalıdır. Metin2Dev topluluklarında bu konuda örnekler ve destek bulunabilir.
Sonuç
Exp methodunu değiştirmek, Metin2 özel sunucularında oynanış deneyimini ciddi anlamda etkiler. Şampiyon seviyesi gibi sistemler, uzun süredir oynayan oyuncular için yeni hedefler yaratır ve sunucunun ömrünü uzatır. Python ile bu tür sistemlerin geliştirilmesi, hem esnek hem de güçlü bir çözüm sunar. Martysama ve diğer Metin2 geliştirici toplulukları, bu konuda birçok örnek ve rehber sunmaktadır.
[Python] Champion Level Expansion (Changing the Exp Method)
In Metin2 private servers, player experience management is a critical system that directly affects gameplay dynamics. Especially on PvP-focused servers, level progression mechanisms and experience (exp) gain determine how players develop within competitive environments. In this article, we will examine how to modify the exp method via a system written in Python and how this modification can be integrated into special advancement systems like champion levels.
What is the Exp System?
Experience, or exp points, are the points players earn by killing monsters, completing quests, or winning PvP matches. These points increase the character's level once they reach certain thresholds. However, on some private servers, secondary systems such as champion levels can also be defined in addition to the standard level system. Within these systems, players may stop gaining normal exp after reaching a certain level, or continue with a different formula.
How Does the Exp Method Work in Python?
In Metin2 private servers, Python scripts running on the game server side control the exp system. Typically, functions like GainEXP found in files such as char.py and char_manager.py handle character exp gain. Modifying the behavior of this function allows us to customize the exp method.
Modifying the Exp Method
To change the behavior of the GainEXP function, we first need to check the character's current level. If the character has reached its normal level cap, we can redirect exp gains to another function. For example:
if self.GetLevel() >= 120:
self.GainChampionExp(exp_amount)
else:
self.__gain_normal_exp(exp_amount)
With this structure, once the character reaches level 120, it stops gaining normal exp and starts earning champion exp. This system encourages long-term play and creates new goals for high-level players on the server.
How Does the Champion Level System Work?
Champion level usually works in addition to the standard level system. Once the player reaches the normal level cap, this system activates. Champion exp increases the champion level at certain intervals. In this system, features like bonus attributes, special abilities, or extra stats can be offered. To integrate this system in Python, a new function named GainChampionExp must be defined.
Bonus Attributes and Abilities
As champion level increases, bonus attributes can be granted to the player. For example, +10攻击力 at champion level 1, and +20攻击力 at champion level 10. These bonuses improve the player’s PvP performance and provide advantages in competition. In Python, these bonuses can be integrated using functions that update character stats.
Server-Side Integration
Since this system operates on the server side[/COORD], it must be defined in .py files located in the root folder. Additionally, the visual representation of this system may be required on the client side, which is done via uiscript. When modifying the game core to ensure the exp method works correctly, care must be taken. Communities like Metin2Dev offer examples and support for this topic.
Conclusion
Modifying the exp method significantly impacts the gameplay experience in Metin2 private servers. Systems like champion level create new goals for long-time players and extend the server's lifespan. Developing such systems with Python provides both flexible and powerful solutions. Developer communities like Martysama offer many examples and guides related to this subject.
