1-) root.eix/epk bir pack açma programı yardımıyla açılır.
2-) Yeni bir metin belgesi oluşturup adını uibonuspage.py olarak kaydedilir.
3-) Aşağıdaki kod uibonuspage.py dosyasına kaydedilir;
Kod:
#!/usr/bin/python# -*- coding: latin-1 -*- import ui import chat import app import player import snd import item import net import game class BonusBoardDialog(ui.ScriptWindow): MaxBoni = { "1": 16000, "2": 320, "3": 32, "4": 32, "5": 32, "6": 32, "7": 16, "9": 40, "10": 60, "11": 60, "12": 16, "13": 24, "14": 16, "15": 30, "16": 30, "17": 50, "18": 100, "19": 100, "20": 100, "21": 100, "22": 100, "23": 20, "24": 40, "27": 15, "28": 30, "29": 72, "30": 72, "31": 72, "32": 72, "33": 72, "34": 72, "35": 60, "36": 60, "37": 40, "38": 60, "39": 20, "41": 10, "43": 60, "44": 60, "45": 40, "48": 1, "53": 50 } BonusDict = ["PvP Bonus", "PvM Bonus", "Diğer"] BonusIDListe = [["", 0, 0],["Maks HP", 1, 0],["Maks SP", 2, 0],["HP", 3, 0],["Zeka", 4, 0],["Güç", 5, 0],["Çeviklik", 6, 0],["Saldırı Hızı", 7, 0],["Hareket Hızı", 8, 0],["Büyü Hızı", 9, 0],["HP Üretimi", 10, 32],["SP Üretimi", 11, 33],["Zehirleme Değişimi", 12, 37],["Sersemletme Şansı", 13, 38],["Yavaşlatma Şansı", 14, 39],["Kritik Vuruş Şansı", 15, 40],["Delici Vuruş Şansı", 16, 41],["Yarı İnsanlara Karşı Güçlü", 17, 43],["Hayvanlara Karşı Güçlü", 18, 44],["Orklara Karşı Güçlü", 19, 45],["Mistiklere Karşı Güçlü", 20, 46],["Ölümsüzlere Karşı Güçlü", 21, 47],["Şeytanlara Karşı Güçlü", 22, 48],["HP Emilimi", 23, 63],["SP Emilimi", 24, 64],["SP Çalma", 25, 65],["Vuruş İle SP Çalma", 26, 66],["Beden Karşısı Atakları Bloklama", 27, 67],["Oklardan Korunma Şansı", 28, 68],["Kılıç Savunması", 29, 69],["Çift El Savunması", 30, 70],["Bıçak Savunması", 31, 71],["Çan Savunması", 32, 72],["Yelpaze Savunması", 33, 73],["Okdan Korunma Şansı", 34, 74],["Ateşe Karşı Dayanıklılık", 35, 75],["Şimşeğe Karşı Dayanıklılık", 36, 76],["Büyüye Karşı Dayanıklılık", 37, 77],["Rüzgara Karşı Dayanıklılık", 38, 78],["Vücut Darbelerini Yansıtma", 39, 79],["Lanet Yansıtması", 40, 80],["Zehire Karşı Koyma", 41, 81],["SP Yükselmesi Değişimi", 42, 82],["Exp-Bonus", 43, 83],["Yang-Drop", 44, 84],["Item-Drop", 45, 85],["İksir Etkisi Yükseltme", 46, 86],["HP Yükselmesi Değişti", 47, 87],["Sersemlik Karşısında Bağışıklık", 48, 88],["Yavaşlık Karşısında Bağışıklık", 49, 89],["Yere Düşme Karşısında Bağışıklık", 50, 90],["APPLY_SKILL", 51, 0],["Yay Menzili", 52, 95],["Saldırı Değeri", 53, 0],["Savunma", 54, 96],["Büyülü Saldırı Değeri", 55, 97],["Büyü Savunması", 56, 98],["", 57, 0],["Maks. Dayanıklık", 58, 0],["Savaşçılara Karşı Güçlü", 59, 54],["Ninjalara Karşı Güçlü", 60, 55],["Suralara Karşı Güçlü", 61, 56],["Şamanlara Karşı Güçlü", 62, 57],["Canavarlara Karşı Güçlü", 63, 53],["Saldırı", 64, 114],["Savunma", 65, 115],["Itemshop Exp-Bonus", 66, 116],["Itemshop Item-Bonus", 67, 117],["Itemshop Yang-Bonus", 68, 118],["APPLY_MAX_HP_PCT", 69, 119],["APPLY_MAX_SP_PCT", 70, 120],["Beceri Hasarı", 71, 121],["Ortalama Hasar", 72, 122],["Beceri Hasarına Direniş", 73, 123],["Ortalama Hasara Direniş", 74, 124],["", 75, 0],["iCafe EXP-Bonus", 76, 125],["iCafe Item-Bonus", 77, 126],["Savaşçı Saldırılarına Savunma", 78, 59],["Ninja Saldırılarına Savunma", 79, 60],["Sura Saldırılarına Savunma", 80, 61],["Şaman Saldırılarına Savunma", 81, 62]] SpecialBoni = { 1: "Norm.State", 2: "Norm.State", 3: "Norm.State", 4: "Norm.State", 5: "Norm.State", 6: "Norm.State", 55: "Norm.State", 56: "Norm.State", 58: "Norm.State" } PvPOffenseBoni = ["Yarı İnsanlara Karşı Güçlü", "Kritik Vuruş Şansı", "Delici Vuruş Şansı", "Ortalama Hasar", "Beceri Hasarı", "HP", "Zeka", "Güç", "Çeviklik", "Büyü Hızı"] PvPDefenseBoni = ["Kılıç Savunması", "Çift El Savunması", "Bıçak Savunması", "Çan Savunması", "Yelpaze Savunması", "Okdan Korunma Şansı", "Oklardan Korunma Şansı", "Büyüye Karşı Dayanıklılık", "Beden Karşısı Atakları Bloklama", "Sersemlik Karşısında Bağışıklık"] PvMOffenseBoni = ["Canavarlara Karşı Güçlü", "Şeytanlara Karşı Güçlü", "Ölümsüzlere Karşı Güçlü", "Hayvanlara Karşı Güçlü", "Orklara Karşı Güçlü", "Mistiklere Karşı Güçlü", "Sersemletme Şansı", "Zehirleme Değişimi", "Saldırı Hızı", "Saldırı Değeri"] PvMDefenseBoni = ["Maks HP", "Maks SP", "Beden Karşısı Atakları Bloklama", "HP Üretimi", "SP Üretimi", "HP Emilimi", "SP Emilimi", "Exp-Bonus", "Yang-Drop", "Item-Drop"] LeftoversOffenseBoni = ["Savaşçılara Karşı Güçlü", "Ninjalara Karşı Güçlü", "Suralara Karşı Güçlü", "Şamanlara Karşı Güçlü"] LeftoversDefenseBoni = ["Savaşçı Saldırılarına Savunma", "Ninja Saldırılarına Savunma", "Sura Saldırılarına Savunma", "Şaman Saldırılarına Savunma", ] BonusList = [*] UI = [*] TestSystem = 0 ProcessTimeStamp = 0 def __init__(self): ui.ScriptWindow.__init__(self) self.LoadUI() game.BPisLoaded = 1 def __del__(self): ui.ScriptWindow.__del__(self) self.Board.Hide() game.BPisLoaded = 0 def LoadUI(self): self.Board = ui.BoardWithTitleBar() self.Board.SetSize(313, 420) self.Board.SetCenterPosition() self.Board.AddFlag("movable") self.Board.AddFlag("float") self.Board.SetTitleName("Bonus Sistemi") self.Board.SetCloseEvent(self.__del__) self.Board.Show() Vertical = ui.Line() Vertical.SetParent(self.Board) Vertical.SetPosition(8, 60) Vertical.SetSize(297, 0) Vertical.SetColor(0xff777777) Vertical.Show() self.UI.append(Vertical) x = 25 for i in xrange(3): ChangeBonusDict = ui.Button() ChangeBonusDict.SetParent(self.Board) ChangeBonusDict.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub") ChangeBonusDict.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub") ChangeBonusDict.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub") ChangeBonusDict.SetText(self.BonusDict[i]) ChangeBonusDict.SetPosition(x, 380) ChangeBonusDict.SetEvent(lambda arg = ChangeBonusDict.GetText(): self.ChangeBonusDict(arg)) ChangeBonusDict.Show() x += 88 self.UI.append(ChangeBonusDict) x = 55 Type = ["Saldırı", "Defans"] for i in xrange(2): BonusDescription = ui.TextLine() BonusDescription.SetParent(self.Board) BonusDescription.SetPosition(x, 35) BonusDescription.SetText(str(Type[i])) BonusDescription.SetFontColor(1.0, 0.63, 0) BonusDescription.Show() x += 150 self.UI.append(BonusDescription) self.SetBoni(self.BonusDict[0]) self.dict = self.BonusDict[0] def SetBoni(self, type): Offense = [[25, 70], [25, 100], [25, 130], [25, 160], [25, 190], [25, 220], [25, 250], [25, 280], [25, 310], [25, 340]] Defense = [[170, 70], [170, 100], [170, 130], [170, 160], [170, 190], [170, 220], [170, 250], [170, 280], [170, 310], [170, 340]] for bonus in self.BonusIDListe: if type == self.BonusDict[0]: self.CheckBonus(bonus, self.PvPOffenseBoni, Offense) self.CheckBonus(bonus, self.PvPDefenseBoni, Defense) elif type == self.BonusDict[1]: self.CheckBonus(bonus, self.PvMOffenseBoni, Offense) self.CheckBonus(bonus, self.PvMDefenseBoni, Defense) elif type == self.BonusDict[2]: self.CheckBonus(bonus, self.LeftoversOffenseBoni, Offense) self.CheckBonus(bonus, self.LeftoversDefenseBoni, Defense) else: return def CheckBonus(self, bonus, bonuslist, offset): for boni in bonuslist: if bonus[0] == boni: try: Index = bonuslist.index(boni) BonusDescription = ui.TextLine() BonusDescription.SetParent(self.Board) BonusDescription.SetPosition(offset[Index][0], offset[Index][1]) BonusDescription.SetText(str(bonus[0])) BonusDescription.Show() BonusSlotBar = ui.SlotBar() BonusSlotBar.SetParent(self.Board) BonusSlotBar.SetSize(115, 15) BonusSlotBar.SetPosition(offset[Index][0], offset[Index][1] + 15) BonusSlotBar.Show() BonusAttrLine = ui.TextLine() BonusAttrLine.SetParent(self.Board) BonusAttrLine.SetPosition(offset[Index][0] + 5, offset[Index][1] + 15) try: Type = self.SpecialBoni[bonus[1]] Attribute = self.EquipAttribute(bonus) except: Attribute = player.GetStatus(int(bonus[2])) if self.TestSystem != 1: BonusAttrLine.SetText(str(Attribute)) try: if int(Attribute) >= int(self.MaxBoni[str(bonus[1])]): BonusAttrLine.SetFontColor(1.0, 0.63, 0) else: BonusAttrLine.SetFontColor(1, 1, 1) except: BonusAttrLine.SetFontColor(1, 1, 1) else: BonusAttrLine.SetText("Test system is active") BonusAttrLine.SetFontColor(0.1, 0.7, 1.0) BonusAttrLine.Show() self.BonusList.append([BonusDescription, BonusAttrLine, BonusSlotBar]) except: pass def EquipAttribute(self, bonus): value = 0 for slot in xrange(90, 101): for attr in xrange(0, 7): attr, val = player.GetItemAttribute(slot, attr) if int(attr) == bonus[1]: value += int(val) return int(value) def ChangeBonusDict(self, dict): self.dict = dict for bonus in self.BonusList: try: for array in bonus: array.Hide() except: pass self.SetBoni(dict) def OnUpdate(self): import item if int(app.GetTime()) > int(self.ProcessTimeStamp) + 6: self.SetBoni(self.dict) self.ProcessTimeStamp = app.GetTime() #BonusBoardDialog().Show()
4-) root.eix/epk içinde bulunan game.py açılır ve aşağıdaki kod aratılır;
Kod:
onPressKeyDict[app.DIK_F4] = lambda : self.__PressQuickSlot(7)
5-) Hemen altına şu kod eklenir;
Kod:
onPressKeyDict[app.DIK_X] = lambda : self.__BonusPage()
6-) Paketle-root.xml açılır ve en alta aşağıdaki kod eklenir;
Kod:
<File archivedPath="uibonuspage.py" type="2"><![CDATA[Source\uibonuspage.py]]></File>
Metin2 Bonus Sistemi Nedir?
Metin2 oyunu, uzun yıllardır severek oynanan popüler bir MMORPG oyunudur. Özellikle PvP odaklı sunucularında oyun deneyimini zenginleştiren birçok sistem barındırır. Bu sistemlerden birisi de Bonus Sistemi'dir. Bu sistem sayesinde oyuncular karakterlerini daha güçlü hale getirebilir ve rekabetçi savaşlarda avantaj elde edebilirler.
Bonus Sistemi Nasıl Çalışır?
Metin2'de bonus sistemleri, oyuncuların belirli eşyaları donatmaları ya da görevleri tamamlamaları ile aktif hale gelen istatistik artışı sağlayan mekanizmalardır. Bu bonuslar genellikle karakterin攻击力, savunması, can miktarı gibi temel değerleri üzerinde doğrudan etkilidir. Bazı bonuslar geçici iken bazıları kalıcıdır.
Donanım ve Ekipman Bonusları
Oyuncular, Metin2 client üzerinden erişebildikleri özel paketlerde bulunan ekipmanlarla bonus sistemlerinden faydalanabilirler. Örneğin, belirli bir set ekipman tamamlandığında ekstra攻击力 veya hız artışı gibi bonuslar otomatik olarak aktif olur. Bu tür bonuslar genellikle PvP sunucularında çok önemlidir çünkü savaş esnasında küçük farklar büyük avantajlar sağlayabilir.
Metin2 Client ve Bonus Sistemleri Arasındaki İlişki
Metin2 özel client'lar (custom client), bonus sistemlerinin daha fazla çeşitlenmesine olanak tanır. Geliştiriciler tarafından hazırlanan Metin2 pack dosyalarında, bonus efektleri daha görsel ve kullanıcı dostu hale getirilebilir. Bu sayede hem oyun estetiği artar hem de bonusların takibi kolaylaşır.
PvP Sunucularında Bonusların Rolü
PvP sunucularında bonus sistemleri, oyuncuların dengeli ve adil bir rekabette mücadele etmesini sağlar. Özellikle Metin2 pvp client kullanan sunucularda, bonuslar stratejik planlamayı da beraberinde getirir. Oyuncular, hangi ekipman kombinasyonunu kullanırsa daha yüksek bonus alacaklarını düşünerek karakter gelişimlerini yönlendirirler.
Bonus Sistemi ile Oyun Performansını Arttırma
Bonus sistemleri sadece攻击力 veya savunma değil, aynı zamanda Metin2 client fix gibi teknik konularla da ilişkilidir. Doğru yapılandırılmış bir client, bonus efektlerinin daha hızlı ve sorunsuz işleyişini sağlar. Bu nedenle, güvenilir ve test edilmiş Metin2 pack indir siteleri tercih edilmelidir. Metin2Lobby, bu konuda kaliteli ve güvenilir kaynaklar sunmaktadır.
Sonuç
Metin2 Bonus Sistemi, oyunun rekabetçi yapısını güçlendiren ve karakter geliştirme süreçlerini daha keyifli kılan önemli bir özelliktir. Hem PvP hem de PvE ortamlarında bu sistemler, stratejik derinlik katarken, doğru client ve pack kullanımıyla da bonusların maksimum düzeyde faydası alınabilir.
What is the Metin2 Bonus System?
Metin2 is a popular MMORPG game that has been enjoyed by players for many years. Especially on PvP-oriented servers, it includes numerous systems that enrich the gaming experience. One of these systems is the Bonus System. This system allows players to strengthen their characters and gain advantages in competitive battles.
How Does the Bonus System Work?
In Metin2, bonus systems are mechanisms that provide stat increases when players equip certain items or complete quests. These bonuses often directly affect core stats such as character's attack power, defense, and health. Some bonuses are temporary, while others are permanent.
Equipment and Gear Bonuses
Players can benefit from bonus systems via special packages available through the Metin2 client. For example, completing a full set of equipment may activate additional attack or speed boosts. These types of bonuses are particularly important in PvP servers, where even minor differences can lead to major advantages in combat.
The Connection Between Metin2 Client and Bonus Systems
Custom Metin2 clients allow for more diverse bonus systems. In Metin2 pack files developed by creators, bonus effects can be made more visual and user-friendly. This enhances both the game's aesthetics and makes tracking bonuses easier.
The Role of Bonuses in PvP Servers
On PvP servers, bonus systems ensure balanced and fair competition among players. Especially in servers using Metin2 pvp client, bonuses introduce strategic planning. Players shape their character development based on which gear combinations will grant higher bonuses.
Improving Game Performance with the Bonus System
Bonus systems not only enhance attack or defense but also connect with technical aspects like Metin2 client fix. A well-configured client ensures faster and smoother processing of bonus effects. Therefore, reliable and tested Metin2 pack download sites should be preferred. Metin2Lobby offers high-quality and trustworthy resources in this area.
Conclusion
The Metin2 Bonus System is an essential feature that strengthens the competitive structure of the game and makes character progression more enjoyable. Whether in PvP or PvE environments, these systems add strategic depth, and with the right client and pack usage, players can maximize the benefits of bonuses.
