Oyun İçi Efsun Botu Ekle (r34083 de denendi.)

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar.
Çoğu kişi oyun içi efsun botu ekleme konusunda sıkıntılar yaşıyordur. 2089M kullananlarda, bir şekilde ekleyebilenler oldu ama r34083 de bu işlem ticarete döküldü. Belli meblağlarda satışa sunuldu.

Piyasada paylaşılan hazır dosyalar var bunlar clientte sıkıntı çıkartabilir. Tavsiyem kodları elle eklemeniz.
Kendi sunucumda sorunsuz kullanıyorum. Herkesin yapabileceği en basit şekille anlatıyorum.

Ekleyeceğimiz Bot'un ekran görüntüsü
bot1.png



1 - ) Editleyeceğimiz pack klasörü
Kod:
root.epk içerisinde - constinfo.py - game.py

2 - ) Editleyelim
constinfo.py
içerisinde en üstte stabil değer AFK = 0 olarak ayarlanmıştır ama kontrol etmenizde fayda var. Eğer bu değer yoksa ekleyin. Kaydedin ve kapatın.

game.py içerisinde (Kopyala yapıştır yaparken karakter başı ve sonundaki boşluklara dikkat edin. varsa silin.)

Aratın
Kod:
onPressKeyDict[app.DIK_F4]    = lambda : self.__PressQuickSlot(7)
Altına Ekleyin
Kod:
onPressKeyDict[app.DIK_F5]    = lambda : self.__afk()
Burada oyun içerisinde efsun botunu F5 ile açılabilir şekilde ayarladım.

Aratın (En altta)
Kod:
snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
Altına Ekleyin
Kod:
def __afk(self):         if constInfo.AFK == 0:             constInfo.AFK = 3             import otomodule         elif constInfo.AFK == 3:             constInfo.AFK = 0             self.PopupMessage("Tekrar açmak için oyun sonu yapıp tekrar girmelisin.")     # END_OF_WEDDING

Tekrar hatırlatıyorum. Boşluklara dikkat edin. Başında ve sonunda boş karakter olmasın.

Kaydedip kapatıyoruz.

2 - ) root.epk içerisine Notepad++ ile yeni bir dosya oluşturun. İsmini otomodule.py yapın ve aşağıdakileri ekleyin
Kod:
import chat import item import net import player import shop import ui import uiTip import systemSetting import app import time import chr import chrmgr import nonplayer import time Bonus1 = (0, 0) Bonus2 = (0, 0) Bonus3 = (0, 0) Bonus4 = (0, 0) Bonus5 = (0, 0) SwitchButton = 0 Boniswitchvalue = 71084 PRESSWISH = 0 class SwitchBotDialog(ui.ThinBoard):     MAINBONUSES  = ["1.Efsun", "2. Efsun", "3. Efsun", "4. Efsun", "5. Efsun"]     ALTERBONUSES = ["1. Alternatif Efsun", "2. Alternatif Efsun", "3. Alternatif Efsun", "4. Alternatif Efsun", "5. Alternatif Efsun"]     GUI = [*]     def __init__(self):         ui.ThinBoard.__init__(self)         self.__Load_BindObject()         self.UpdateInventoryList()     def __del__(self):         ui.ThinBoard.__del__(self)     def Destroy(self):         self.Hide()         return TRUE     def Bonuschangevalue(self):         global Boniswitchvalue         for i in xrange(player.INVENTORY_PAGE_SIZE*2):             itemIndex = player.GetItemIndex(i)             item.SelectItem(itemIndex)             ItemValue = player.GetItemIndex(i)             if item.IsAntiFlag(74112) and item.IsFlag(8196) and item.GetItemSubType() == 18:                 Boniswitchvalue = int(ItemValue)                 break             elif str(item.GetItemName()) == "www.turklongju.net":                 Boniswitchvalue = int(ItemValue)                 break     def __CreateInvListBox(self):         invListBox = ui.ListBoxEx()         invListBox.SetParent(self)         invListBox.SetPosition(15, 35)         invListBox.Show()         return invListBox     def __Load_BindObject(self):         self.AddFlag("movable")         self.AddFlag("float")         self.SetSize(470, 325)         self.SetCenterPosition()         self.Show()         self.invListBox = self.__CreateInvListBox()         self.LoadScrollBar()         self.invListBox.SetScrollBar(self.ScrollBar)         self.LoadTextLines()         self.LoadButtons()         self.LoadEditLines()         self.LoadLine()         self.Bonuschangevalue()         self.BoardMessage = uiTip.BigBoard()     def LoadEditLines(self):         self.BonusValue10SlotBar = ui.SlotBar()         self.BonusValue10SlotBar.SetParent(self)         self.BonusValue10SlotBar.SetSize(29, 14)         self.BonusValue10SlotBar.SetPosition(-27+95+131, 143)         self.BonusValue10SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue10SlotBar.Show()         self.Bvalue10 = ui.EditLine()         self.Bvalue10.SetParent(self.BonusValue10SlotBar)         self.Bvalue10.SetSize(29, 18)         self.Bvalue10.SetPosition(6, 0)         self.Bvalue10.SetMax(4)         self.Bvalue10.SetNumberMode()         self.Bvalue10.SetText("0")         self.Bvalue10.SetTabEvent(ui.__mem_func__(self.StartSwitchBot))         self.Bvalue10.SetReturnEvent(ui.__mem_func__(self.StartSwitchBot))         self.Bvalue10.Show()         self.BonusValue9SlotBar = ui.SlotBar()         self.BonusValue9SlotBar.SetParent(self)         self.BonusValue9SlotBar.SetSize(29, 14)         self.BonusValue9SlotBar.SetPosition(-27+95+131, 118)         self.BonusValue9SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue9SlotBar.Show()         self.Bvalue9 = ui.EditLine()         self.Bvalue9.SetParent(self.BonusValue9SlotBar)         self.Bvalue9.SetSize(29, 18)         self.Bvalue9.SetPosition(6, 0)         self.Bvalue9.SetMax(4)         self.Bvalue9.SetNumberMode()         self.Bvalue9.SetFocus()         self.Bvalue9.SetText("0")         self.Bvalue9.SetTabEvent(ui.__mem_func__(self.Bvalue10.SetFocus))         self.Bvalue9.SetReturnEvent(ui.__mem_func__(self.Bvalue10.SetFocus))         self.Bvalue9.Show()         self.BonusValue8SlotBar = ui.SlotBar()         self.BonusValue8SlotBar.SetParent(self)         self.BonusValue8SlotBar.SetSize(29, 14)         self.BonusValue8SlotBar.SetPosition(-27+95+131, 93)         self.BonusValue8SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue8SlotBar.Show()         self.Bvalue8 = ui.EditLine()         self.Bvalue8.SetParent(self.BonusValue8SlotBar)         self.Bvalue8.SetSize(29, 18)         self.Bvalue8.SetPosition(6, 0)         self.Bvalue8.SetMax(4)         self.Bvalue8.SetNumberMode()         self.Bvalue8.SetText("0")         self.Bvalue8.SetTabEvent(ui.__mem_func__(self.Bvalue9.SetFocus))         self.Bvalue8.SetReturnEvent(ui.__mem_func__(self.Bvalue9.SetFocus))         self.Bvalue8.Show()         self.BonusValue7SlotBar = ui.SlotBar()         self.BonusValue7SlotBar.SetParent(self)         self.BonusValue7SlotBar.SetSize(29, 14)         self.BonusValue7SlotBar.SetPosition(-27+95+131, 68)         self.BonusValue7SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue7SlotBar.Show()         self.Bvalue7 = ui.EditLine()         self.Bvalue7.SetParent(self.BonusValue7SlotBar)         self.Bvalue7.SetSize(29, 18)         self.Bvalue7.SetPosition(6, 0)         self.Bvalue7.SetMax(4)         self.Bvalue7.SetNumberMode()         self.Bvalue7.SetText("0")         self.Bvalue7.SetTabEvent(ui.__mem_func__(self.Bvalue8.SetFocus))         self.Bvalue7.SetReturnEvent(ui.__mem_func__(self.Bvalue8.SetFocus))         self.Bvalue7.Show()         self.BonusValue6SlotBar = ui.SlotBar()         self.BonusValue6SlotBar.SetParent(self)         self.BonusValue6SlotBar.SetSize(29, 14)         self.BonusValue6SlotBar.SetPosition(-27+95+131, 44)         self.BonusValue6SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue6SlotBar.Show()         self.Bvalue6 = ui.EditLine()         self.Bvalue6.SetParent(self.BonusValue6SlotBar)         self.Bvalue6.SetSize(29, 18)         self.Bvalue6.SetPosition(6, 0)         self.Bvalue6.SetMax(4)         self.Bvalue6.SetNumberMode()         self.Bvalue6.SetText("0")         self.Bvalue6.SetFocus()         self.Bvalue6.SetTabEvent(ui.__mem_func__(self.Bvalue7.SetFocus))         self.Bvalue6.SetReturnEvent(ui.__mem_func__(self.Bvalue7.SetFocus))         self.Bvalue6.Show()         self.BonusValue5SlotBar = ui.SlotBar()         self.BonusValue5SlotBar.SetParent(self)         self.BonusValue5SlotBar.SetSize(29, 14)         self.BonusValue5SlotBar.SetPosition(-27+95, 143)         self.BonusValue5SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue5SlotBar.Show()         self.Bvalue5 = ui.EditLine()         self.Bvalue5.SetParent(self.BonusValue5SlotBar)         self.Bvalue5.SetSize(29, 18)         self.Bvalue5.SetPosition(6, 0)         self.Bvalue5.SetMax(4)         self.Bvalue5.SetNumberMode()         self.Bvalue5.SetText("0")         self.Bvalue5.SetFocus()         self.Bvalue5.SetTabEvent(ui.__mem_func__(self.Bvalue6.SetFocus))         self.Bvalue5.SetReturnEvent(ui.__mem_func__(self.Bvalue6.SetFocus))         self.Bvalue5.Show()         self.BonusValue4SlotBar = ui.SlotBar()         self.BonusValue4SlotBar.SetParent(self)         self.BonusValue4SlotBar.SetSize(29, 14)         self.BonusValue4SlotBar.SetPosition(-27+95, 118)         self.BonusValue4SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue4SlotBar.Show()         self.Bvalue4 = ui.EditLine()         self.Bvalue4.SetParent(self.BonusValue4SlotBar)         self.Bvalue4.SetSize(29, 18)         self.Bvalue4.SetPosition(6, 0)         self.Bvalue4.SetMax(4)         self.Bvalue4.SetNumberMode()         self.Bvalue4.SetFocus()         self.Bvalue4.SetText("0")         self.Bvalue4.SetTabEvent(ui.__mem_func__(self.Bvalue5.SetFocus))         self.Bvalue4.SetReturnEvent(ui.__mem_func__(self.Bvalue5.SetFocus))         self.Bvalue4.Show()         self.BonusValue3SlotBar = ui.SlotBar()         self.BonusValue3SlotBar.SetParent(self)         self.BonusValue3SlotBar.SetSize(29, 14)         self.BonusValue3SlotBar.SetPosition(-27+95, 93)         self.BonusValue3SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue3SlotBar.Show()         self.Bvalue3 = ui.EditLine()         self.Bvalue3.SetParent(self.BonusValue3SlotBar)         self.Bvalue3.SetSize(29, 18)         self.Bvalue3.SetPosition(6, 0)         self.Bvalue3.SetMax(4)         self.Bvalue3.SetNumberMode()         self.Bvalue3.SetText("0")         self.Bvalue3.SetTabEvent(ui.__mem_func__(self.Bvalue4.SetFocus))         self.Bvalue3.SetReturnEvent(ui.__mem_func__(self.Bvalue4.SetFocus))         self.Bvalue3.Show()         self.BonusValue2SlotBar = ui.SlotBar()         self.BonusValue2SlotBar.SetParent(self)         self.BonusValue2SlotBar.SetSize(29, 14)         self.BonusValue2SlotBar.SetPosition(-27+95, 68)         self.BonusValue2SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue2SlotBar.Show()         self.Bvalue2 = ui.EditLine()         self.Bvalue2.SetParent(self.BonusValue2SlotBar)         self.Bvalue2.SetSize(29, 18)         self.Bvalue2.SetPosition(6, 0)         self.Bvalue2.SetMax(4)         self.Bvalue2.SetNumberMode()         self.Bvalue2.SetText("0")         self.Bvalue2.SetTabEvent(ui.__mem_func__(self.Bvalue3.SetFocus))         self.Bvalue2.SetReturnEvent(ui.__mem_func__(self.Bvalue3.SetFocus))         self.Bvalue2.Show()         self.BonusValue1SlotBar = ui.SlotBar()         self.BonusValue1SlotBar.SetParent(self)         self.BonusValue1SlotBar.SetSize(29, 14)         self.BonusValue1SlotBar.SetPosition(-27+95, 44)         self.BonusValue1SlotBar.SetWindowHorizontalAlignCenter()         self.BonusValue1SlotBar.Show()         self.Bvalue1 = ui.EditLine()         self.Bvalue1.SetParent(self.BonusValue1SlotBar)         self.Bvalue1.SetSize(29, 18)         self.Bvalue1.SetPosition(6, 0)         self.Bvalue1.SetMax(4)         self.Bvalue1.SetNumberMode()         self.Bvalue1.SetText("0")         self.Bvalue1.SetFocus()         self.Bvalue1.SetTabEvent(ui.__mem_func__(self.Bvalue2.SetFocus))         self.Bvalue1.SetReturnEvent(ui.__mem_func__(self.Bvalue2.SetFocus))         self.Bvalue1.Show()     def LoadButtons(self):         self.CloseButton = ui.Button()         self.CloseButton.SetParent(self)         self.CloseButton.SetPosition(440, 15)         self.CloseButton.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub")         self.CloseButton.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub")         self.CloseButton.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub")         self.CloseButton.SetToolTipText('Close', 0, - 23)         self.CloseButton.SetEvent(ui.__mem_func__(self.Close))         self.CloseButton.Show()         self.StartButton = ui.Button()         self.StartButton.SetParent(self)         self.StartButton.SetPosition(195 , 285)         self.StartButton.SetUpVisual("d:/ymir work/ui/public/Large_Button_01.sub")         self.StartButton.SetOverVisual("d:/ymir work/ui/public/Large_Button_02.sub")         self.StartButton.SetDownVisual("d:/ymir work/ui/public/Large_Button_03.sub")         self.StartButton.SetEvent(ui.__mem_func__(self.StartSwitchBot))         self.StartButton.SetText("Başlat")         self.StartButton.Show()         self.SwitchingBreakButton = ui.Button()         self.SwitchingBreakButton.SetParent(self)         self.SwitchingBreakButton.SetPosition(326, 285)         self.SwitchingBreakButton.SetUpVisual("d:/ymir work/ui/public/Large_Button_01.sub")         self.SwitchingBreakButton.SetOverVisual("d:/ymir work/ui/public/Large_Button_02.sub")         self.SwitchingBreakButton.SetDownVisual("d:/ymir work/ui/public/Large_Button_03.sub")         self.SwitchingBreakButton.SetEvent(ui.__mem_func__(self.__BreakSwitching))         self.SwitchingBreakButton.SetText("Kapat")         self.SwitchingBreakButton.Show()         self.RefreshInvListButton = ui.Button()         self.RefreshInvListButton.SetParent(self)         self.RefreshInvListButton.SetPosition(25, 285)         self.RefreshInvListButton.SetUpVisual("d:/ymir work/ui/public/Large_Button_01.sub")         self.RefreshInvListButton.SetOverVisual("d:/ymir work/ui/public/Large_Button_02.sub")         self.RefreshInvListButton.SetDownVisual("d:/ymir work/ui/public/Large_Button_03.sub")         self.RefreshInvListButton.SetEvent(ui.__mem_func__(self.UpdateInventoryList))         self.RefreshInvListButton.SetText("Yenile")         self.RefreshInvListButton.Show()         self.DelaySlide = ui.SliderBar()         self.DelaySlide.SetParent(self)         self.DelaySlide.SetPosition(217, 260)         self.DelaySlide.SetEvent(ui.__mem_func__(self.SetDelay))         self.DelaySlide.SetSliderPos(0.1)         self.DelaySlide.Show()         x = 195         y = 40         i = 0         for Button in self.MAINBONUSES:             ButtonList_1 = ui.Button()             ButtonList_1.SetParent(self)             ButtonList_1.SetPosition(x, y)             ButtonList_1.SetUpVisual("d:/ymir work/ui/public/Large_button_01.sub")             ButtonList_1.SetOverVisual("d:/ymir work/ui/public/Large_button_02.sub")             ButtonList_1.SetDownVisual("d:/ymir work/ui/public/Large_button_03.sub")             ButtonList_1.SetText(Button)             ButtonList_1.Show()             Mod = self.MAINBONUSES[i]             ButtonList_1.SetEvent(lambda arg = Mod: self.ButtonList_1(arg))             self.GUI.append(ButtonList_1)             y += 25             i += 1         x = 326         y = 40         i = 0         for Button in self.ALTERBONUSES:             ButtonList_2 = ui.Button()             ButtonList_2.SetParent(self)             ButtonList_2.SetPosition(x, y)             ButtonList_2.SetUpVisual("d:/ymir work/ui/public/Large_button_01.sub")             ButtonList_2.SetOverVisual("d:/ymir work/ui/public/Large_button_02.sub")             ButtonList_2.SetDownVisual("d:/ymir work/ui/public/Large_button_03.sub")             ButtonList_2.SetText(Button)             ButtonList_2.Show()             Mod = self.ALTERBONUSES[i]             ButtonList_2.SetEvent(lambda arg = Mod: self.ButtonList_2(arg))             self.GUI.append(ButtonList_2)             y += 25             i += 1     def LoadLine(self):         self.LineForKaching = ui.Line()         self.LineForKaching.SetParent(self)         self.LineForKaching.SetPosition(198, 178)         self.LineForKaching.SetSize(260, 0)         self.LineForKaching.SetColor(0xff777777)         self.LineForKaching.Show()     def LoadTextLines(self):     ####TitleName         self.TitleName = ui.TextLine()         self.TitleName.SetParent(self)         self.TitleName.SetDefaultFontName()         self.TitleName.SetPosition(235-44, 10)         self.TitleName.SetFeather()         self.TitleName.SetText("Dikkat : Alternatif efsun girmeden çalışmaz.")         self.TitleName.SetFontColor(3.1, 5.7, 2)         self.TitleName.SetOutline()         self.TitleName.Show()     ####Main         self.MainBonies = ui.TextLine()         self.MainBonies.SetParent(self)         self.MainBonies.SetDefaultFontName()         self.MainBonies.SetPosition(198, 162)         self.MainBonies.SetFeather()         self.MainBonies.SetText("Efsunlar:")         self.MainBonies.SetFontColor(3.1, 5.7, 2)         self.MainBonies.SetOutline()         self.MainBonies.Show()     ####MainBonusAttrs         self.Bonus1Attr = ui.TextLine()         self.Bonus1Attr.SetParent(self)         self.Bonus1Attr.SetDefaultFontName()         self.Bonus1Attr.SetPosition(198, 180 + 13*0)         self.Bonus1Attr.SetFeather()         self.Bonus1Attr.SetText("-")         self.Bonus1Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus1Attr.SetOutline()         self.Bonus1Attr.Show()         self.Bonus2Attr = ui.TextLine()         self.Bonus2Attr.SetParent(self)         self.Bonus2Attr.SetDefaultFontName()         self.Bonus2Attr.SetPosition(198, 180 + 13*1)         self.Bonus2Attr.SetFeather()         self.Bonus2Attr.SetText("-")         self.Bonus2Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus2Attr.SetOutline()         self.Bonus2Attr.Show()         self.Bonus3Attr = ui.TextLine()         self.Bonus3Attr.SetParent(self)         self.Bonus3Attr.SetDefaultFontName()         self.Bonus3Attr.SetPosition(198, 180 + 13*2)         self.Bonus3Attr.SetFeather()         self.Bonus3Attr.SetText("-")         self.Bonus3Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus3Attr.SetOutline()         self.Bonus3Attr.Show()         self.Bonus4Attr = ui.TextLine()         self.Bonus4Attr.SetParent(self)         self.Bonus4Attr.SetDefaultFontName()         self.Bonus4Attr.SetPosition(198, 180 + 13*3)         self.Bonus4Attr.SetFeather()         self.Bonus4Attr.SetText("-")         self.Bonus4Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus4Attr.SetOutline()         self.Bonus4Attr.Show()         self.Bonus5Attr = ui.TextLine()         self.Bonus5Attr.SetParent(self)         self.Bonus5Attr.SetDefaultFontName()         self.Bonus5Attr.SetPosition(198, 180 + 13*4)         self.Bonus5Attr.SetFeather()         self.Bonus5Attr.SetText("-")         self.Bonus5Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus5Attr.SetOutline()         self.Bonus5Attr.Show()     ####MainBonusVars         self.Bonus1Var = ui.TextLine()         self.Bonus1Var.SetParent(self)         self.Bonus1Var.SetDefaultFontName()         self.Bonus1Var.SetPosition(198+100, 180 + 13*0)         self.Bonus1Var.SetFeather()         self.Bonus1Var.SetText("0")         self.Bonus1Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus1Var.SetOutline()         self.Bonus1Var.Show()         self.Bonus2Var = ui.TextLine()         self.Bonus2Var.SetParent(self)         self.Bonus2Var.SetDefaultFontName()         self.Bonus2Var.SetPosition(198+100, 180 + 13*1)         self.Bonus2Var.SetFeather()         self.Bonus2Var.SetText("0")         self.Bonus2Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus2Var.SetOutline()         self.Bonus2Var.Show()         self.Bonus3Var = ui.TextLine()         self.Bonus3Var.SetParent(self)         self.Bonus3Var.SetDefaultFontName()         self.Bonus3Var.SetPosition(198+100, 180 + 13*2)         self.Bonus3Var.SetFeather()         self.Bonus3Var.SetText("0")         self.Bonus3Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus3Var.SetOutline()         self.Bonus3Var.Show()         self.Bonus4Var = ui.TextLine()         self.Bonus4Var.SetParent(self)         self.Bonus4Var.SetDefaultFontName()         self.Bonus4Var.SetPosition(198+100, 180 + 13*3)         self.Bonus4Var.SetFeather()         self.Bonus4Var.SetText("0")         self.Bonus4Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus4Var.SetOutline()         self.Bonus4Var.Show()         self.Bonus5Var = ui.TextLine()         self.Bonus5Var.SetParent(self)         self.Bonus5Var.SetDefaultFontName()         self.Bonus5Var.SetPosition(198+100, 180 + 13*4)         self.Bonus5Var.SetFeather()         self.Bonus5Var.SetText("0")         self.Bonus5Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus5Var.SetOutline()         self.Bonus5Var.Show()     ####Alter         self.AlterBonies = ui.TextLine()         self.AlterBonies.SetParent(self)         self.AlterBonies.SetDefaultFontName()         self.AlterBonies.SetPosition(329, 162)         self.AlterBonies.SetFeather()         self.AlterBonies.SetText("Alternatif Efsunlar:")         self.AlterBonies.SetFontColor(0.9, 0.7, 1)         self.AlterBonies.SetOutline()         self.AlterBonies.Show()     ####AlterBonusAttrs         self.Bonus6Attr = ui.TextLine()         self.Bonus6Attr.SetParent(self)         self.Bonus6Attr.SetDefaultFontName()         self.Bonus6Attr.SetPosition(329, 180 + 13*0)         self.Bonus6Attr.SetFeather()         self.Bonus6Attr.SetText("-")         self.Bonus6Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus6Attr.SetOutline()         self.Bonus6Attr.Show()         self.Bonus7Attr = ui.TextLine()         self.Bonus7Attr.SetParent(self)         self.Bonus7Attr.SetDefaultFontName()         self.Bonus7Attr.SetPosition(329, 180 + 13*1)         self.Bonus7Attr.SetFeather()         self.Bonus7Attr.SetText("-")         self.Bonus7Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus7Attr.SetOutline()         self.Bonus7Attr.Show()         self.Bonus8Attr = ui.TextLine()         self.Bonus8Attr.SetParent(self)         self.Bonus8Attr.SetDefaultFontName()         self.Bonus8Attr.SetPosition(329, 180 + 13*2)         self.Bonus8Attr.SetFeather()         self.Bonus8Attr.SetText("-")         self.Bonus8Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus8Attr.SetOutline()         self.Bonus8Attr.Show()         self.Bonus9Attr = ui.TextLine()         self.Bonus9Attr.SetParent(self)         self.Bonus9Attr.SetDefaultFontName()         self.Bonus9Attr.SetPosition(329, 180 + 13*3)         self.Bonus9Attr.SetFeather()         self.Bonus9Attr.SetText("-")         self.Bonus9Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus9Attr.SetOutline()         self.Bonus9Attr.Show()         self.Bonus10Attr = ui.TextLine()         self.Bonus10Attr.SetParent(self)         self.Bonus10Attr.SetDefaultFontName()         self.Bonus10Attr.SetPosition(329, 180 + 13*4)         self.Bonus10Attr.SetFeather()         self.Bonus10Attr.SetText("-")         self.Bonus10Attr.SetFontColor(1.0, 1.0, 1.0)         self.Bonus10Attr.SetOutline()         self.Bonus10Attr.Show()     ####AlterBonusVars         self.Bonus6Var = ui.TextLine()         self.Bonus6Var.SetParent(self)         self.Bonus6Var.SetDefaultFontName()         self.Bonus6Var.SetPosition(329+100, 180 + 13*0)         self.Bonus6Var.SetFeather()         self.Bonus6Var.SetText("0")         self.Bonus6Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus6Var.SetOutline()         self.Bonus6Var.Show()         self.Bonus7Var = ui.TextLine()         self.Bonus7Var.SetParent(self)         self.Bonus7Var.SetDefaultFontName()         self.Bonus7Var.SetPosition(329+100, 180 + 13*1)         self.Bonus7Var.SetFeather()         self.Bonus7Var.SetText("0")         self.Bonus7Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus7Var.SetOutline()         self.Bonus7Var.Show()         self.Bonus8Var = ui.TextLine()         self.Bonus8Var.SetParent(self)         self.Bonus8Var.SetDefaultFontName()         self.Bonus8Var.SetPosition(329+100, 180 + 13*2)         self.Bonus8Var.SetFeather()         self.Bonus8Var.SetText("0")         self.Bonus8Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus8Var.SetOutline()         self.Bonus8Var.Show()         self.Bonus9Var = ui.TextLine()         self.Bonus9Var.SetParent(self)         self.Bonus9Var.SetDefaultFontName()         self.Bonus9Var.SetPosition(329+100, 180 + 13*3)         self.Bonus9Var.SetFeather()         self.Bonus9Var.SetText("0")         self.Bonus9Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus9Var.SetOutline()         self.Bonus9Var.Show()         self.Bonus10Var = ui.TextLine()         self.Bonus10Var.SetParent(self)         self.Bonus10Var.SetDefaultFontName()         self.Bonus10Var.SetPosition(329+100, 180 + 13*4)         self.Bonus10Var.SetFeather()         self.Bonus10Var.SetText("0")         self.Bonus10Var.SetFontColor(1.0, 1.0, 1.0)         self.Bonus10Var.SetOutline()         self.Bonus10Var.Show()     ####Delay         self.DelayText = ui.TextLine()         self.DelayText.SetParent(self)         self.DelayText.SetDefaultFontName()         self.DelayText.SetPosition(198, 180 + 13*5)         self.DelayText.SetFeather()         self.DelayText.SetText("Hız:")         self.DelayText.SetFontColor(3.1, 5.7, 2)         self.DelayText.SetOutline()         self.DelayText.Show()     ####DelayValue         self.DelayValue = ui.TextLine()         self.DelayValue.SetParent(self)         self.DelayValue.SetDefaultFontName()         self.DelayValue.SetPosition(297, 270)         self.DelayValue.SetFeather()         self.DelayValue.SetText("0.5 saniye")         self.DelayValue.SetFontColor(3.1, 5.7, 2)         self.DelayValue.SetOutline()         self.DelayValue.Show()     def LoadScrollBar(self):         self.ScrollBar = ui.ScrollBar()         self.ScrollBar.SetParent(self)         self.ScrollBar.SetPosition(170, 35)         self.ScrollBar.SetScrollBarSize(210)         self.ScrollBar.Show()     def SetDelay(self):         Delay = self.DelayValue.GetText()         if self.DelaySlide.GetSliderPos() * 5 != Delay:             Delay = self.DelaySlide.GetSliderPos() * 5             try:                 Tmp = str(Delay).split(".")                 if int(Delay) < 0.1:                     Tmp = str(Delay).split(".")[0]+str(Delay).split(".")[1].replace('0','1')                                 Delay = str(Tmp[0]) + "." + Tmp[1][:1]             except:                 pass         self.DelayValue.SetText(str(Delay) + " s")     def ButtonList_1(self, arg):         global PRESSWISH         if str(arg) == self.MAINBONUSES[0]:             PRESSWISH = 1         elif str(arg) == self.MAINBONUSES[1]:             PRESSWISH = 2         elif str(arg) == self.MAINBONUSES[2]:             PRESSWISH = 3         elif str(arg) == self.MAINBONUSES[3]:             PRESSWISH = 4         elif str(arg) == self.MAINBONUSES[4]:             PRESSWISH = 5         self.BonusListBox = FileListDialog()     def ButtonList_2(self, arg):         global PRESSWISH         if str(arg) == self.ALTERBONUSES[0]:             PRESSWISH = 6         elif str(arg) == self.ALTERBONUSES[1]:             PRESSWISH = 7         elif str(arg) == self.ALTERBONUSES[2]:             PRESSWISH = 8         elif str(arg) == self.ALTERBONUSES[3]:             PRESSWISH = 9         elif str(arg) == self.ALTERBONUSES[4]:             PRESSWISH = 10         self.BonusListBox = FileListDialog()     def UpdateInventoryList(self):         self.invListBox.RemoveAllItems()         for i in xrange(player.INVENTORY_PAGE_SIZE*2):             ItemIndex = player.GetItemIndex(i)             if not ItemIndex:                  continue             if ItemIndex != 0:                 item.SelectItem(ItemIndex)                 item.GetItemName(ItemIndex)                 ItemName = item.GetItemName()                 self.invListBox.AppendItem(Item(str(i) + " | " + ItemName))     def __BreakSwitching(self):         global SwitchButton         if SwitchButton == 1:             self.SwitchingBreakButton.SetText("Kapat")             SwitchButton = 0         else:             self.Hide()     def StartSwitchBot(self):         global SwitchButton         SwitchButton = 1         self.SwitchingBreakButton.SetText("Durdur")         self.__Switchtingdialog()     def __Switchtingdialog(self):         global BoniSwitchvalue         global Bonus1         global Bonus2         global Bonus3         global Bonus4         global Bonus5         global SwitchButton         Main1, Alter1 = Bonus1         Main2, Alter2 = Bonus2         Main3, Alter3 = Bonus3         Main4, Alter4 = Bonus4         Main5, Alter5 = Bonus5         SelectedIndex = self.invListBox.GetSelectedItem()         #If you do not select item on the inventory list, the slot will be 0.         if not SelectedIndex:             SelectedIndex = 0         else:             SelectedIndex = SelectedIndex.GetText().split(' | ')[0]         Slot = SelectedIndex         val0, bon0 = player.GetItemAttribute((int(Slot)), 0) #(itemposition, atrribute)         val1, bon1 = player.GetItemAttribute((int(Slot)), 1) #(itemposition, atrribute)         val2, bon2 = player.GetItemAttribute((int(Slot)), 2) #(itemposition, atrribute)         val3, bon3 = player.GetItemAttribute((int(Slot)), 3) #(itemposition, atrribute)         val4, bon4 = player.GetItemAttribute((int(Slot)), 4) #(itemposition, atrribute)         Switchvalue = Boniswitchvalue         Search1 = self.Bvalue1.GetText()         Search2 = self.Bvalue2.GetText()         Search3 = self.Bvalue3.GetText()         Search4 = self.Bvalue4.GetText()         Search5 = self.Bvalue5.GetText()         Search6 = self.Bvalue6.GetText()         Search7 = self.Bvalue7.GetText()         Search8 = self.Bvalue8.GetText()         Search9 = self.Bvalue9.GetText()         Search10 = self.Bvalue10.GetText()         DELAY_SEC = self.DelayValue.GetText().split(' s')[0]         if SwitchButton == 1:             #1 Bonus switchen:             if ((int(Main2) == 0) and\                 (val0 == int(Main1) and bon0 >= int(Search1) or\                 (val1 == int(Main1) and bon1 >= int(Search1)) or\                 (val2 == int(Main1) and bon2 >= int(Search1)) or\                 (val3 == int(Main1) and bon3 >= int(Search1)) or\                 (val4 == int(Main1) and bon4 >= int(Search1)))) or\                 ((int(Alter2) == 0) and\                 (val0 == int(Alter1) and bon0 >= int(Search6) or\                 (val1 == int(Alter1) and bon1 >= int(Search6)) or\                 (val2 == int(Alter1) and bon2 >= int(Search6)) or\                 (val3 == int(Alter1) and bon3 >= int(Search6)) or\                 (val4 == int(Alter1) and bon4 >= int(Search6)))):                 self.BoardMessage.SetTip("Efsun Getirme Tamamlanmıştır - www.turklongju.net")                 self.BoardMessage.SetTop()                 self.__BreakSwitching()             #2 Bonis switchen:             elif ((int(Main3) == 0) and\                 (val0 == int(Main1) and bon0 >= int(Search1) or\                 (val1 == int(Main1) and bon1 >= int(Search1)) or\                 (val2 == int(Main1) and bon2 >= int(Search1)) or\                 (val3 == int(Main1) and bon3 >= int(Search1)) or\                 (val4 == int(Main1) and bon4 >= int(Search1))) and\                 ((val0 == int(Main2) and bon0 >= int(Search2)) or\                 (val1 == int(Main2) and bon1 >= int(Search2)) or\                 (val2 == int(Main2) and bon2 >= int(Search2)) or\                 (val3 == int(Main2) and bon3 >= int(Search2)) or\                 (val4 == int(Main2) and bon4 >= int(Search2)))) or\                 ((int(Alter3) == 0) and\                 (val0 == int(Alter1) and bon0 >= int(Search6) or\                 (val1 == int(Alter1) and bon1 >= int(Search6)) or\                 (val2 == int(Alter1) and bon2 >= int(Search6)) or\                 (val3 == int(Alter1) and bon3 >= int(Search6)) or\                 (val4 == int(Alter1) and bon4 >= int(Search6))) and\                 ((val0 == int(Alter2) and bon0 >= int(Search7)) or\                 (val1 == int(Alter2) and bon1 >= int(Search7)) or\                 (val2 == int(Alter2) and bon2 >= int(Search7)) or\                 (val3 == int(Alter2) and bon3 >= int(Search7)) or\                 (val4 == int(Alter2) and bon4 >= int(Search7)))):                 self.BoardMessage.SetTip("Efsun Getirme Tamamlanmıştır - www.turklongju.net")                 self.BoardMessage.SetTop()                 self.__BreakSwitching()             #3 Bonis switchen:             elif ((int(Main4) == 0) and\                 (val0 == int(Main1) and bon0 >= int(Search1) or\                 (val1 == int(Main1) and bon1 >= int(Search1)) or\                 (val2 == int(Main1) and bon2 >= int(Search1)) or\                 (val3 == int(Main1) and bon3 >= int(Search1)) or\                 (val4 == int(Main1) and bon4 >= int(Search1))) and\                 ((val0 == int(Main2) and bon0 >= int(Search2)) or\                 (val1 == int(Main2) and bon1 >= int(Search2)) or\                 (val2 == int(Main2) and bon2 >= int(Search2)) or\                 (val3 == int(Main2) and bon3 >= int(Search2)) or\                 (val4 == int(Main2) and bon4 >= int(Search2))) and\                 ((val0 == int(Main3) and bon0 >= int(Search3)) or\                 (val1 == int(Main3) and bon1 >= int(Search3)) or\                 (val2 == int(Main3) and bon2 >= int(Search3)) or\                 (val3 == int(Main3) and bon3 >= int(Search3)) or\                 (val4 == int(Main3) and bon4 >= int(Search3)))) or\                 ((int(Alter4) == 0) and\                 (val0 == int(Alter1) and bon0 >= int(Search6) or\                 (val1 == int(Alter1) and bon1 >= int(Search6)) or\                 (val2 == int(Alter1) and bon2 >= int(Search6)) or\                 (val3 == int(Alter1) and bon3 >= int(Search6)) or\                 (val4 == int(Alter1) and bon4 >= int(Search6))) and\                 ((val0 == int(Alter2) and bon0 >= int(Search7)) or\                 (val1 == int(Alter2) and bon1 >= int(Search7)) or\                 (val2 == int(Alter2) and bon2 >= int(Search7)) or\                 (val3 == int(Alter2) and bon3 >= int(Search7)) or\                 (val4 == int(Alter2) and bon4 >= int(Search7))) and\                 ((val0 == int(Alter3) and bon0 >= int(Search8)) or\                 (val1 == int(Alter3) and bon1 >= int(Search8)) or\                 (val2 == int(Alter3) and bon2 >= int(Search8)) or\                 (val3 == int(Alter3) and bon3 >= int(Search8)) or\                 (val4 == int(Alter3) and bon4 >= int(Search8)))):                 self.BoardMessage.SetTip("Efsun Getirme Tamamlanmıştır - www.turklongju.net")                 self.BoardMessage.SetTop()                 self.__BreakSwitching()             #4 Bonis switchen:             elif ((int(Main5) == 0) and\                 (val0 == int(Main1) and bon0 >= int(Search1) or\                 (val1 == int(Main1) and bon1 >= int(Search1)) or\                 (val2 == int(Main1) and bon2 >= int(Search1)) or\                 (val3 == int(Main1) and bon3 >= int(Search1)) or\                 (val4 == int(Main1) and bon4 >= int(Search1))) and\                 ((val0 == int(Main2) and bon0 >= int(Search2)) or\                 (val1 == int(Main2) and bon1 >= int(Search2)) or\                 (val2 == int(Main2) and bon2 >= int(Search2)) or\                 (val3 == int(Main2) and bon3 >= int(Search2)) or\                 (val4 == int(Main2) and bon4 >= int(Search2))) and\                 ((val0 == int(Main3) and bon0 >= int(Search3)) or\                 (val1 == int(Main3) and bon1 >= int(Search3)) or\                 (val2 == int(Main3) and bon2 >= int(Search3)) or\                 (val3 == int(Main3) and bon3 >= int(Search3)) or\                 (val4 == int(Main3) and bon4 >= int(Search3))) and\                 ((val0 == int(Main4) and bon0 >= int(Search4)) or\                 (val1 == int(Main4) and bon1 >= int(Search4)) or\                 (val2 == int(Main4) and bon2 >= int(Search4)) or\                 (val3 == int(Main4) and bon3 >= int(Search4)) or\                 (val4 == int(Main4) and bon4 >= int(Search4)))) or\                 ((int(Alter5) == 0) and\                 (val0 == int(Alter1) and bon0 >= int(Search6) or\                 (val1 == int(Alter1) and bon1 >= int(Search6)) or\                 (val2 == int(Alter1) and bon2 >= int(Search6)) or\                 (val3 == int(Alter1) and bon3 >= int(Search6)) or\                 (val4 == int(Alter1) and bon4 >= int(Search6))) and\                 ((val0 == int(Alter2) and bon0 >= int(Search7)) or\                 (val1 == int(Alter2) and bon1 >= int(Search7)) or\                 (val2 == int(Alter2) and bon2 >= int(Search7)) or\                 (val3 == int(Alter2) and bon3 >= int(Search7)) or\                 (val4 == int(Alter2) and bon4 >= int(Search7))) and\                 ((val0 == int(Alter3) and bon0 >= int(Search8)) or\                 (val1 == int(Alter3) and bon1 >= int(Search8)) or\                 (val2 == int(Alter3) and bon2 >= int(Search8)) or\                 (val3 == int(Alter3) and bon3 >= int(Search8)) or\                 (val4 == int(Alter3) and bon4 >= int(Search8))) and\                 ((val0 == int(Alter4) and bon0 >= int(Search9)) or\                 (val1 == int(Alter4) and bon1 >= int(Search9)) or\                 (val2 == int(Alter4) and bon2 >= int(Search9)) or\                 (val3 == int(Alter4) and bon3 >= int(Search9)) or\                 (val4 == int(Alter4) and bon4 >= int(Search9)))):                 self.BoardMessage.SetTip("Efsun Getirme Tamamlanmıştır - www.turklongju.net")                 self.BoardMessage.SetTop()                 self.__BreakSwitching()             #5 Bonis switchen:             elif ((int(Main5) != 0) and\                 (val0 == int(Main1) and bon0 >= int(Search1) or\                 (val1 == int(Main1) and bon1 >= int(Search1)) or\                 (val2 == int(Main1) and bon2 >= int(Search1)) or\                 (val3 == int(Main1) and bon3 >= int(Search1)) or\                 (val4 == int(Main1) and bon4 >= int(Search1))) and\                 ((val0 == int(Main2) and bon0 >= int(Search2)) or\                 (val1 == int(Main2) and bon1 >= int(Search2)) or\                 (val2 == int(Main2) and bon2 >= int(Search2)) or\                 (val3 == int(Main2) and bon3 >= int(Search2)) or\                 (val4 == int(Main2) and bon4 >= int(Search2))) and\                 ((val0 == int(Main3) and bon0 >= int(Search3)) or\                 (val1 == int(Main3) and bon1 >= int(Search3)) or\                 (val2 == int(Main3) and bon2 >= int(Search3)) or\                 (val3 == int(Main3) and bon3 >= int(Search3)) or\                 (val4 == int(Main3) and bon4 >= int(Search3))) and\                 ((val0 == int(Main4) and bon0 >= int(Search4)) or\                 (val1 == int(Main4) and bon1 >= int(Search4)) or\                 (val2 == int(Main4) and bon2 >= int(Search4)) or\                 (val3 == int(Main4) and bon3 >= int(Search4)) or\                 (val4 == int(Main4) and bon4 >= int(Search4))) and\                 ((val0 == int(Main5) and bon0 >= int(Search5)) or\                 (val1 == int(Main5) and bon1 >= int(Search5)) or\                 (val2 == int(Main5) and bon2 >= int(Search5)) or\                 (val3 == int(Main5) and bon3 >= int(Search5)) or\                 (val4 == int(Main5) and bon4 >= int(Search5)))) or\                 ((int(Alter5) != 0) and\                 (val0 == int(Alter1) and bon0 >= int(Search6) or\                 (val1 == int(Alter1) and bon1 >= int(Search6)) or\                 (val2 == int(Alter1) and bon2 >= int(Search6)) or\                 (val3 == int(Alter1) and bon3 >= int(Search6)) or\                 (val4 == int(Alter1) and bon4 >= int(Search6))) and\                 ((val0 == int(Alter2) and bon0 >= int(Search7)) or\                 (val1 == int(Alter2) and bon1 >= int(Search7)) or\                 (val2 == int(Alter2) and bon2 >= int(Search7)) or\                 (val3 == int(Alter2) and bon3 >= int(Search7)) or\                 (val4 == int(Alter2) and bon4 >= int(Search7))) and\                 ((val0 == int(Alter3) and bon0 >= int(Search8)) or\                 (val1 == int(Alter3) and bon1 >= int(Search8)) or\                 (val2 == int(Alter3) and bon2 >= int(Search8)) or\                 (val3 == int(Alter3) and bon3 >= int(Search8)) or\                 (val4 == int(Alter3) and bon4 >= int(Search8))) and\                 ((val0 == int(Alter4) and bon0 >= int(Search9)) or\                 (val1 == int(Alter4) and bon1 >= int(Search9)) or\                 (val2 == int(Alter4) and bon2 >= int(Search9)) or\                 (val3 == int(Alter4) and bon3 >= int(Search9)) or\                 (val4 == int(Alter4) and bon4 >= int(Search9))) and\                 ((val0 == int(Alter5) and bon0 >= int(Search10)) or\                 (val1 == int(Alter5) and bon1 >= int(Search10)) or\                 (val2 == int(Alter5) and bon2 >= int(Search10)) or\                 (val3 == int(Alter5) and bon3 >= int(Search10)) or\                 (val4 == int(Alter5) and bon4 >= int(Search10)))):                 self.BoardMessage.SetTip("İstediğiniz Efsunlar Getirilmiştir - www.turklongju.net")                 self.BoardMessage.SetTop()                 self.__BreakSwitching()             elif Main1 == 0 and Alter1 == 0:                 self.SwitchingBreakButton.SetText("Kapat")                 chat.AppendChat(chat.CHAT_TYPE_INFO, "En az 1 adet Efsun seçmeniz gerekiyor.")                 SwitchButton = 0             else:                 self.WaitingDelay = WaitingDialog()                 self.WaitingDelay.Open(float(DELAY_SEC))                 self.WaitingDelay.SAFE_SetTimeOverEvent(self.__Switchtingdialog)                 for eachSlot in xrange(player.INVENTORY_PAGE_SIZE*2):                     itemVNum = player.GetItemIndex(eachSlot)                     if itemVNum == int(Switchvalue):                         net.SendItemUseToItemPacket(eachSlot, (int(Slot)))                         break             if player.GetItemCountByVnum(int(Switchvalue)) <= 1:                 for eachSlot in xrange(shop.SHOP_SLOT_COUNT):                     getShopItemID = shop.GetItemID(eachSlot)                     if getShopItemID == int(Switchvalue) and not itemVNum == int(Switchvalue):                         net.SendShopBuyPacket(eachSlot)     def OnUpdate(self):         global Bonus1         global Bonus2         global Bonus3         global Bonus4         global Bonus5                  Main1, Alter1 = Bonus1         Main2, Alter2 = Bonus2         Main3, Alter3 = Bonus3         Main4, Alter4 = Bonus4         Main5, Alter5 = Bonus5         if self.Bonus1Attr.GetText() != str(BonusListe[int(Main1)]) and int(Main1) != 0:             if len(str(BonusListe[int(Main1)])) > 18:                 self.Bonus1Attr.SetText(str(BonusListe[int(Main1)])[:18]+'...')             else:                 self.Bonus1Attr.SetText(str(BonusListe[int(Main1)]))         elif self.Bonus1Attr.GetText() != "" and int(Main1) == 0:             self.Bonus1Attr.SetText("-")         if self.Bonus2Attr.GetText() != str(BonusListe[int(Main2)]) and int(Main2) != 0:             if len(str(BonusListe[int(Main2)])) > 18:                 self.Bonus2Attr.SetText(str(BonusListe[int(Main2)])[:18]+'...')             else:                 self.Bonus2Attr.SetText(str(BonusListe[int(Main2)]))         elif self.Bonus2Attr.GetText() != "" and int(Main2) == 0:             self.Bonus2Attr.SetText("-")         if self.Bonus3Attr.GetText() != str(BonusListe[int(Main3)]) and int(Main3) != 0:             if len(str(BonusListe[int(Main3)])) > 18:                 self.Bonus3Attr.SetText(str(BonusListe[int(Main3)])[:18]+'...')             else:                 self.Bonus3Attr.SetText(str(BonusListe[int(Main3)]))         elif self.Bonus3Attr.GetText() != "" and int(Main3) == 0:             self.Bonus3Attr.SetText("-")                      if self.Bonus4Attr.GetText() != str(BonusListe[int(Main4)]) and int(Main4) != 0:             if len(str(BonusListe[int(Main4)])) > 18:                 self.Bonus4Attr.SetText(str(BonusListe[int(Main4)])[:18]+'...')             else:                 self.Bonus4Attr.SetText(str(BonusListe[int(Main4)]))         elif self.Bonus4Attr.GetText() != "" and int(Main4) == 0:             self.Bonus4Attr.SetText("-")                      if self.Bonus5Attr.GetText() != str(BonusListe[int(Main5)]) and int(Main5) != 0:             if len(str(BonusListe[int(Main5)])) > 18:                 self.Bonus5Attr.SetText(str(BonusListe[int(Main5)])[:18]+'...')             else:                 self.Bonus5Attr.SetText(str(BonusListe[int(Main5)]))         elif self.Bonus5Attr.GetText() != "" and int(Main5) == 0:             self.Bonus5Attr.SetText("-")                      if self.Bonus6Attr.GetText() != str(BonusListe[int(Alter1)]) and int(Alter1) != 0:             if len(str(BonusListe[int(Alter1)])) > 18:                 self.Bonus6Attr.SetText(str(BonusListe[int(Alter1)])[:18]+'...')             else:                 self.Bonus6Attr.SetText(str(BonusListe[int(Alter1)]))         elif self.Bonus6Attr.GetText() != "" and int(Alter1) == 0:             self.Bonus6Attr.SetText("-")                      if self.Bonus7Attr.GetText() != str(BonusListe[int(Alter2)]) and int(Alter2) != 0:             if len(str(BonusListe[int(Alter2)])) > 18:                 self.Bonus7Attr.SetText(str(BonusListe[int(Alter2)])[:18]+'...')             else:                 self.Bonus7Attr.SetText(str(BonusListe[int(Alter2)]))         elif self.Bonus7Attr.GetText() != "" and int(Alter2) == 0:             self.Bonus7Attr.SetText("-")                      if self.Bonus8Attr.GetText() != str(BonusListe[int(Alter3)]) and int(Alter3) != 0:             if len(str(BonusListe[int(Alter3)])) > 18:                 self.Bonus8Attr.SetText(str(BonusListe[int(Alter3)])[:18]+'...')             else:                 self.Bonus8Attr.SetText(str(BonusListe[int(Alter3)]))         elif self.Bonus8Attr.GetText() != "" and int(Alter3) == 0:             self.Bonus8Attr.SetText("-")                      if self.Bonus9Attr.GetText() != str(BonusListe[int(Alter4)]) and int(Alter4) != 0:             if len(str(BonusListe[int(Alter4)])) > 18:                 self.Bonus9Attr.SetText(str(BonusListe[int(Alter4)])[:18]+'...')             else:                 self.Bonus9Attr.SetText(str(BonusListe[int(Alter4)]))         elif self.Bonus9Attr.GetText() != "" and int(Alter4) == 0:             self.Bonus9Attr.SetText("-")                      if self.Bonus10Attr.GetText() != str(BonusListe[int(Alter5)]) and int(Alter5) != 0:             if len(str(BonusListe[int(Alter5)])) > 18:                 self.Bonus10Attr.SetText(str(BonusListe[int(Alter5)])[:18]+'...')             else:                 self.Bonus10Attr.SetText(str(BonusListe[int(Alter5)]))         elif self.Bonus10Attr.GetText() != "" and int(Alter5) == 0:             self.Bonus10Attr.SetText("-")         if self.Bonus1Var.GetText() != self.Bvalue1.GetText():             self.Bonus1Var.SetText(str(self.Bvalue1.GetText()))         if self.Bonus2Var.GetText() != self.Bvalue2.GetText():             self.Bonus2Var.SetText(str(self.Bvalue2.GetText()))         if self.Bonus3Var.GetText() != self.Bvalue3.GetText():             self.Bonus3Var.SetText(str(self.Bvalue3.GetText()))         if self.Bonus4Var.GetText() != self.Bvalue4.GetText():             self.Bonus4Var.SetText(str(self.Bvalue4.GetText()))         if self.Bonus5Var.GetText() != self.Bvalue5.GetText():             self.Bonus5Var.SetText(str(self.Bvalue5.GetText()))         if self.Bonus6Var.GetText() != self.Bvalue6.GetText():             self.Bonus6Var.SetText(str(self.Bvalue6.GetText()))         if self.Bonus7Var.GetText() != self.Bvalue7.GetText():             self.Bonus7Var.SetText(str(self.Bvalue7.GetText()))         if self.Bonus8Var.GetText() != self.Bvalue8.GetText():             self.Bonus8Var.SetText(str(self.Bvalue8.GetText()))         if self.Bonus9Var.GetText() != self.Bvalue9.GetText():             self.Bonus9Var.SetText(str(self.Bvalue9.GetText()))         if self.Bonus10Var.GetText() != self.Bvalue10.GetText():             self.Bonus10Var.SetText(str(self.Bvalue10.GetText()))     def Show(self):         ui.ThinBoard.Show(self)              def Close(self):         self.Hide()         return TRUE              def OnPressEscapeKey(self):         self.Hide()         return TRUE BonusListe = (     "",     "Max HP",     "Max SP",     "Yaşam Enerjisi",     "Zeka",     "Güç",     "Çeviklik",     "Saldırı Hızı",     "Hareket Hızı",     "Büyü Hızı",     "HP Üretimi",     "SP Üretimi",     "Zehirleme Değişimi",     "Sersemletme Şansı",     "Yavaşlatma Şansı",     "Kritik Şansı",     "Delici Şansı",     "Yarı İnsanlara Karşı",     "Hayvanlara Karşı",     "Orklara Karşı",     "Mistiklere Karşı",     "Ölümsüzlere Karşı",     "Şeytanlara Karşı",     "% Hasarı HP Emecek",     "% Hasarı SP Emecek",     "------------------",     "------------------",     "Bloklama Şansı",     "Oklardan Korunma Ş.",     "Kılıç Savunması",     "Çift-El Savunması",     "Bıçak Savunması",     "Çan Savunması",     "Yelpaze Savunması",     "Oka Karşı D.",     "Ateşe Karşı D.",     "Şimşeğe Karşı D.",     "Büyüye Karşı D.",     "Rüzgara Karşı D.",     "Yansıtma Şansı",     "------------------",     "Zehire Karşı D.",     "SP Yenileme",     "EXP Bonus Şansı",     "Yang Bonus Şansı",     "İtem Bonus Şansı",     "------------------",     "Chance, to restore HP",     "Sersemlik Bağışıklığı",     "Yavaşlama Bağışıklığı",     "------------------",     "------------------",     "Ok Menzili",     "------------------",     "------------------",     "------------------",     "------------------",     "------------------",     "------------------",     "Savaşçılara Karşı G.",     "Ninjalara Karşı G.",     "Suralara Karşı G.",     "Shamanlara Karşı G.",     "Canavarlara Karşı G.",     "------------------",     "------------------",     "------------------",     "------------------",     "------------------",     "------------------",     "------------------",     "Beceri Hasarı",     "Ortalama Zarar",     "------------------",     "------------------",     "------------------",     "------------------",     "------------------",     "Savaşçılara Savunma",     "Ninjalara Savunma",     "Suralara Savunma",     "Şamanlara Savunma", ) BonusIDListe = {     "" : 0,     "Max HP" : 1,     "Max SP" : 2,     "Yaşam Enerjisi" : 3,     "Zeka" : 4,     "Güç" : 5,     "Çeviklik" : 6,     "Saldırı Hızı" : 7,     "Hareket Hızı" : 8,     "Büyü Hızı" : 9,     "HP Üretimi" : 10,     "SP Üretimi" : 11,     "Zehirleme Değişimi" : 12,     "Sersemletme Şansı" : 13,     "Yavaşlatma Şansı" : 14,     "Kritik Şansı" : 15,     "Delici Şansı" : 16,     "Yarı İnsanlara Karşı" : 17,     "Hayvanlara Karşı" : 18,     "Orklara Karşı" : 19,     "Mistiklere Karşı" : 20,     "Ölümsüzlere Karşı" : 21,     "Şeytanlara Karşı" : 22,     "% Hasarı HP Emecek" : 23,     "% Hasarı SP Emecek" : 24,     "------------------" : 25,     "------------------" : 26,     "Bloklama Şansı" : 27,     "Oklardan Korunma Ş." : 28,     "Kılıç Savunması" : 29,     "Çift-El Savunması" : 30,     "Bıçak Savunması" : 31,     "Çan Savunması" : 32,     "Yelpaze Savunması" : 33,     "Oka Karşı Dayanıklılık" : 34,     "Ateşe Karşı D." : 35,     "Şimşeğe Karşı D." : 36,     "Büyüye Karşı D." : 37,     "Rüzgara Karşı D." : 38,     "Yansıtma Şansı" : 39,     "------------------" : 40,     "Zehire Karşı D." : 41,     "SP Yenileme" : 42,     "EXP Bonus Şansı" : 43,     "Yang Bonus Şansı" : 44,     "İtem Bonus Şansı" : 45,     "------------------" : 46,     "HP Yenileme" : 47,     "Sersemlik Bağışıklığı" : 48,     "Yavaşlama Bağışıklığı" : 49,     "------------------" : 50,     "------------------" : 51,     "Ok Menzili" : 52,     "------------------" : 53,     "------------------" : 54,     "------------------" : 55,     "------------------" : 56,     "------------------" : 57,     "------------------" : 58,     "Savaşçılara Karşı G." : 59,     "Ninjalara Karşı G." : 60,     "Suralara Karşı G." : 61,     "Shamanlara Karşı G." : 62,     "Canavarlara Karşı G." : 63,     "------------------" : 64,     "------------------" : 65,     "------------------" : 66,     "------------------" : 67,     "------------------" : 68,     "------------------" : 69,     "------------------" : 70,     "Beceri Hasarı" : 71,     "Ortalama Zarar" : 72,     "------------------" : 73,     "------------------" : 74,     "------------------" : 75,     "------------------" : 76,     "------------------" : 77,     "Savaşçılara Savunma" : 78,     "Ninjalara Savunma" : 79,     "Suralara Savunma" : 80,     "Şamanlara Savunma" : 81, } class FileListDialog(ui.Board):     def __init__(self):         ui.Board.__init__(self)         self.isLoaded = 0         self.selectEvent = None         self.fileListBox = None         self.SetCenterPosition()         self.SetSize(190, 305)         self.Show()         self.AddFlag("movable")         self.AddFlag("float")     def __del__(self):         ui.Board.__del__(self)     def Show(self):         if self.isLoaded == 0:             self.isLoaded = 1             self.__Load()         ui.Board.Show(self)     def Open(self):         self.Show()         self.SetCenterPosition()         self.SetTop()         self.UpdateFileList()     def Close(self):         self.Hide()     def OnPressEscapeKey(self):         self.Close()         return TRUE     def __CreateFileListBox(self):         fileListBox = ui.ListBoxEx()         fileListBox.SetParent(self)         fileListBox.SetPosition(75, 50)         fileListBox.Show()         return fileListBox     def __Load(self):         self.__Load_BindObject()         self.UpdateFileList()     def __Load_BindObject(self):         self.fileListBox = self.__CreateFileListBox()         self.LoadFuckingScrollBar()         self.LoadTextLines()         self.fileListBox.SetScrollBar(self.ScrollBar)         self.UpdateButton = ui.Button()         self.UpdateButton.SetParent(self)         self.UpdateButton.SetUpVisual("d:/ymir work/ui/public/Large_button_01.sub")         self.UpdateButton.SetOverVisual("d:/ymir work/ui/public/Large_button_02.sub")         self.UpdateButton.SetDownVisual("d:/ymir work/ui/public/Large_button_03.sub")         self.UpdateButton.SetText("Güncelle")         self.copyright.SetFontColor(1, 1, 0.0)         self.UpdateButton.SetPosition(15, 265)         self.UpdateButton.SetEvent(ui.__mem_func__(self.UpdateFileList))         self.UpdateButton.Show()         self.UpdateButton.Hide()         self.SelectBonus = ui.Button()         self.SelectBonus.SetParent(self)         self.SelectBonus.SetPosition(19, 265)         self.SelectBonus.SetUpVisual("d:/ymir work/ui/public/Middle_Button_01.sub")         self.SelectBonus.SetOverVisual("d:/ymir work/ui/public/Middle_Button_02.sub")         self.SelectBonus.SetDownVisual("d:/ymir work/ui/public/Middle_Button_03.sub")         self.SelectBonus.SetText("Tamam")         self.SelectBonus.SetEvent(ui.__mem_func__(self.SetBonis))         self.SelectBonus.Show()         self.CancelBonus = ui.Button()         self.CancelBonus.SetParent(self)         self.CancelBonus.SetPosition(109, 265)         self.CancelBonus.SetUpVisual("d:/ymir work/ui/public/Middle_Button_01.sub")         self.CancelBonus.SetOverVisual("d:/ymir work/ui/public/Middle_Button_02.sub")         self.CancelBonus.SetDownVisual("d:/ymir work/ui/public/Middle_Button_03.sub")         self.CancelBonus.SetText("Kapat")         self.CancelBonus.SetEvent(ui.__mem_func__(self.Close))         self.CancelBonus.Show()     def LoadTextLines(self):         self.copyright = ui.TextLine()         self.copyright.SetParent(self)         self.copyright.SetDefaultFontName()         self.copyright.SetPosition(60, 29)         self.copyright.SetFeather()         self.copyright.SetText("Efsun Seçin:")         self.copyright.SetFontColor(3.1, 5.7, 2)         self.copyright.SetOutline()         self.copyright.Show()     def LoadFuckingScrollBar(self):         self.ScrollBar = ui.ScrollBar()         self.ScrollBar.SetParent(self)         self.ScrollBar.SetPosition(160, 40)         self.ScrollBar.SetScrollBarSize(220)         self.ScrollBar.Show()     def CancelGuildName(self):         self.guildNameBoard.Close()         self.guildNameBoard = None         return TRUE     def UpdateFileList(self):         self.__RefreshFileList()         for BonusType in BonusListe:             if BonusType == "":                 self.fileListBox.AppendItem(Item("-"))             elif BonusType != "":                 self.fileListBox.AppendItem(Item(BonusType))             # chat.AppendChat(chat.CHAT_TYPE_INFO, str(BonusIDListe[BonusType]))     def __RefreshFileList(self):         self.fileListBox.RemoveAllItems()     def SetBonis(self):         global Bonus1         global Bonus2         global Bonus3         global Bonus4         global Bonus5         global PRESSWISH                  Main1, Alter1 = Bonus1         Main2, Alter2 = Bonus2         Main3, Alter3 = Bonus3         Main4, Alter4 = Bonus4         Main5, Alter5 = Bonus5         SelectedIndex = self.fileListBox.GetSelectedItem()         if not SelectedIndex:             return TRUE         SelectedIndex = SelectedIndex.GetText()         if str(SelectedIndex) != "-" and str(SelectedIndex) != "":             if PRESSWISH == 1:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "1. Efsun : " + str(SelectedIndex))                 Bonus1 = (int(BonusIDListe[str(SelectedIndex)]), Alter1)                 PRESSWISH = 0             elif PRESSWISH == 2:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "2. Efsun : " + str(SelectedIndex))                 Bonus2 = (int(BonusIDListe[SelectedIndex]), Alter2)                 PRESSWISH = 0             elif PRESSWISH == 3:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "3. Efsun : " + str(SelectedIndex))                 Bonus3 = (int(BonusIDListe[SelectedIndex]), Alter3)                 PRESSWISH = 0             elif PRESSWISH == 4:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "4. Efsun : " + str(SelectedIndex))                 Bonus4 = (int(BonusIDListe[SelectedIndex]), Alter4)                 PRESSWISH = 0             elif PRESSWISH == 5:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "5. Efsun : " + str(SelectedIndex))                 Bonus5 = (int(BonusIDListe[SelectedIndex]), Alter5)                 PRESSWISH = 0             elif PRESSWISH == 6:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "1. Alternatif Efsun : " + str(SelectedIndex))                 Bonus1 = (Main1, int(BonusIDListe[str(SelectedIndex)]))                 PRESSWISH = 0             elif PRESSWISH == 7:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "2. Alternatif Efsun : " + str(SelectedIndex))                 Bonus2 = (Main2, int(BonusIDListe[str(SelectedIndex)]))                 PRESSWISH = 0             elif PRESSWISH == 8:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "3. Alternatif Efsun : " + str(SelectedIndex))                 Bonus3 = (Main3, int(BonusIDListe[str(SelectedIndex)]))                 PRESSWISH = 0             elif PRESSWISH == 9:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "4. Alternatif Efsun : " + str(SelectedIndex))                 Bonus4 = (Main4, int(BonusIDListe[str(SelectedIndex)]))                 PRESSWISH = 0             elif PRESSWISH == 10:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "5. Alternatif Efsun : " + str(SelectedIndex))                 Bonus5 = (Main5, int(BonusIDListe[str(SelectedIndex)]))                 PRESSWISH = 0         elif str(SelectedIndex) == "Törlés" and str(SelectedIndex) != "":             if PRESSWISH == 1:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "1. Ana Efsun Silindi.")                 Bonus1 = (0, Alter1)                 PRESSWISH = 0             elif PRESSWISH == 2:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "2. Ana Efsun Silindi.")                 Bonus2 = (0, Alter2)                 PRESSWISH = 0             elif PRESSWISH == 3:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "3. Ana Efsun Silindi.")                 Bonus3 = (0, Alter3)                 PRESSWISH = 0             elif PRESSWISH == 4:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "4. Ana Efsun Silindi.")                 Bonus4 = (0, Alter4)                 PRESSWISH = 0             elif PRESSWISH == 5:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "5. Ana Efsun Silindi.")                 Bonus5 = (0, Alter5)                 PRESSWISH = 0             elif PRESSWISH == 6:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "1. Alternatif Efsun Silindi.")                 Bonus1 = (Main1, 0)                 PRESSWISH = 0             elif PRESSWISH == 7:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "2. Alternatif Efsun Silindi.")                 Bonus2 = (Main2, 0)                 PRESSWISH = 0             elif PRESSWISH == 8:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "3. Alternatif Efsun Silindi.")                 Bonus3 = (Main3, 0)                 PRESSWISH = 0             elif PRESSWISH == 9:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "4. Alternatif Efsun Silindi.")                 Bonus4 = (Main4, 0)                 PRESSWISH = 0             elif PRESSWISH == 10:                 chat.AppendChat(chat.CHAT_TYPE_INFO, "5. Alternatif Efsun Silindi.")                 Bonus5 = (Main5, 0)                 PRESSWISH = 0         else:             chat.AppendChat(chat.CHAT_TYPE_INFO, "Efsun Seçmedin!")         self.Close() class WaitingDialog(ui.ScriptWindow):     def __init__(self):         ui.ScriptWindow.__init__(self)         self.eventTimeOver = lambda *arg: None         self.eventExit = lambda *arg: None     def __del__(self):         ui.ScriptWindow.__del__(self)     def Open(self, waitTime):         curTime = time.clock()         self.endTime = curTime + waitTime         self.Show()     def Close(self):         self.Hide()                       def Destroy(self):         self.Hide()                       def SAFE_SetTimeOverEvent(self, event):         self.eventTimeOver = ui.__mem_func__(event)     def SAFE_SetExitEvent(self, event):         self.eventExit = ui.__mem_func__(event)     def OnUpdate(self):         lastTime = max(0, self.endTime - time.clock())         if 0 == lastTime:             self.Close()             self.eventTimeOver()         else:             return     def OnPressExitKey(self):         self.Close()                           return TRUE FILE_NAME_LEN = 40 class Item(ui.ListBoxEx.Item):     def __init__(self, fileName):         ui.ListBoxEx.Item.__init__(self)         self.canLoad = 0         self.text = fileName         self.textLine = self.__CreateTextLine(fileName[:FILE_NAME_LEN])     def __del__(self):         ui.ListBoxEx.Item.__del__(self)     def GetText(self):         return self.text     def SetSize(self, width, height):         ui.ListBoxEx.Item.SetSize(self, 6*len(self.textLine.GetText()) + 4, height)     def __CreateTextLine(self, fileName):         textLine=ui.TextLine()         textLine.SetParent(self)         textLine.SetPosition(0, 0)         textLine.SetText(fileName)         textLine.Show()         return textLine StartDialog = SwitchBotDialog() StartDialog.Show() chat.AppendChat(chat.CHAT_TYPE_INFO, "Efsun Botu açıldı.")
En altta fazladan 1 boşluk olacak. kaydedin kapatın.

2 - ) root.epk yı kapatmadan önce Pack.xml dosyasını Notepad++ açın ve en alta aşağıdaki ni ekleyin.
Kod:
<File archivedPath="otomodule.py" type="1"><![CDATA[Source\otomodule.py]]></File>

İşlem tamamdır. Root.epk yı tekrar kapatın ve pack klasörünüze atın.

Eğer hata alıyorsanız karakter boşluklarını tekrar gözden geçirin.
Alternatif Efsun girmeden bot çalışmaz.

Kendi Clientim
Virustotoal :

Download :




Hayırlı olsun.
Oyun İçi Efsun Botu Ekle (r34083 de denendi)

Metin2 özel sunucularında oyun içi sistemlerin gelişmesiyle birlikte, oyuncuların deneyimini zenginleştiren botlar da artan bir şekilde tercih edilmektedir. Bu bağlamda, r34083 sürümüne özel olarak test edilen Efsun Botu entegrasyonu, sunuculara dinamizm katarken aynı zamanda geliştiriciler için de ilginç bir proje haline gelmektedir. Bu yazıda, Metin2 özel sunucularında oyun içi efsun botu nasıl eklenir, hangi adımlar izlenmelidir ve bu işlem sırasında nelere dikkat edilmelidir gibi konulara değinilecektir.

Efsun Botu Nedir?
Efsun, Metin2 oyununda eşyaların güçlendirilmesi için kullanılan bir sistemdir. Oyuncular, elindeki silah, zırh veya diğer ekipmanları daha güçlü kılmak amacıyla efsun yapabilir. Bu süreçte genellikle taşlar, destekler ve özel itemler kullanılır. Efsun botları ise bu süreci otomatikleştirmeyi amaçlayan sistemlerdir. Sunucuya eklenen bu botlar sayesinde oyuncular, efsun işlemlerini kolayca gerçekleştirebilir.

r34083 Sürümüne Özel Uyumlu Efsun Botu
r34083 sürümü, Metin2 özel sunucularında oldukça yaygın olarak kullanılan bir sürümdür. Bu sürümle uyumlu olarak geliştirilmiş olan efsun botu, hem game server hem de client tarafında gerekli değişikliklerle entegre edilebilir. Bu entegrasyon sırasında dikkat edilmesi gereken bazı önemli noktalar vardır:

- Client tarafında GUI: Python GUI kullanılarak bot için kullanıcı dostu bir arayüz hazırlanmalıdır. Bu arayüz, oyuncuların efsun ekranına kolayca erişebilmesini sağlar. Py Root ve UIScript dosyalarında yapılan düzenlemelerle bu arayüz aktif hale getirilir.

- Game Sunucusu Değişiklikleri: Game server src üzerinde, efsun sistemiyle ilgili komutlar tanımlanmalı ve botun çalışması için gerekli C++ script'ler yazılmalıdır. Bu sistemde DB core ve game core yapılarının senkronize çalışması kritik öneme sahiptir.

Kurulum Adımları
1. Client tarafında uiscript dosyasına bot için gerekli pencere tanımı yapılır.
2. Py Root kısmına bot komutları ve GUI fonksiyonları eklenir.
3. Game server tarafında C++ kodlarla efsun sistemi genişletilir.
4. Gerekirse Martysama sistemleriyle uyumlu hale getirilir.
5. Auth ve DB tarafında loglama işlemleri yapılır.

Geliştirici Açısından Önemli Noktalar
Metin2 özel sunucu geliştiricileri için efsun botu gibi sistemler, oyuncu sadakati ve sunucu dengesi açısından büyük önem taşır. Botların kötüye kullanımını önlemek adına, doğru ayarlar ve güvenlik önlemleri alınmalıdır. Ayrıca, botun herhangi bir exploit yaratmaması için source edit sırasında dikkatli davranılması gerekir.

Sonuç
r34083 sürümüne uyumlu olarak geliştirilen efsun botu, Metin2 özel sunucularında oyun içi deneyimi artırmak için harika bir özelliktir. C++ sistem bilgisi olan geliştiriciler için bu tür entegrasyonlar, sunuculara özgün özellikler kazandırmada büyük rol oynar. üzerinden daha fazla kaynak ve örnek sistemlerle tanışabilirsiniz.


Add In-Game Enchant Bot (Tested on r34083)

As in-game systems evolve within Metin2 private servers, bots that enhance player experience are increasingly preferred. In this context, the integration of the Enchant Bot, tested specifically for version r34083, brings dynamism to servers while also becoming an interesting project for developers. In this article, we will discuss how to add an in-game enchant bot to Metin2 private servers, which steps should be followed, and what to pay attention to during the process.

What is an Enchant Bot?
Enchanting is a system used in Metin2 to strengthen items. Players can enhance their weapons, armor, or other equipment by enchanting them. This process typically involves stones, supports, and special items. Enchant bots aim to automate this process. With these bots added to your server, players can easily perform enchant operations.

Enchant Bot Compatible with r34083 Version
The r34083 version is widely used among Metin2 private servers. The enchant bot developed compatible with this version can be integrated into both game server and client sides through necessary modifications. There are several important points to consider during this integration:

- GUI on Client Side: A user-friendly interface for the bot should be created using Python GUI. This interface allows players easy access to the enchant screen. Modifications made in UIScript and Py Root files activate this interface.

- Game Server Modifications: Commands related to the enchant system must be defined in the game server src, and necessary C++ scripts written for the bot to function. It is critical that DB core and game core structures operate in sync within this system.

Installation Steps
1. Define the window required for the bot in the uiscript file on the client side.
2. Add bot commands and GUI functions to the Py Root section.
3. Extend the enchant system on the game server side using C++ code.
4. If needed, make it compatible with Martysama systems.
5. Perform logging operations in Auth and DB.

Important Points from Developer Perspective
For Metin2 private server developers, systems like enchant bots are crucial in terms of player loyalty and server balance. To prevent misuse of bots, proper settings and security measures must be implemented. Moreover, caution must be taken during source edit to ensure the bot does not create any exploits.

Conclusion
The enchant bot developed compatible with the r34083 version is an excellent feature to enhance in-game experience on Metin2 private servers. For developers with knowledge of C++ systems, such integrations play a significant role in adding unique features to servers. You can explore more resources and sample systems at .
 

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

Benzer konular

Geri
Üst Alt