Merhaba arkadaşlar.
Çoğu kişi oyun içi efsun botu ekleme konusunda sıkıntılar yaşıyordur. 2089M
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ü
1 - ) Editleyeceğimiz pack klasörü
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
Altına Ekleyin
Burada oyun içerisinde efsun botunu F5 ile açılabilir şekilde ayarladım.
Aratın (En altta)
Altına Ekleyin
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
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.
İş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
.
Çoğu kişi oyun içi efsun botu ekleme konusunda sıkıntılar yaşıyordur. 2089M
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
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ü
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)
Kod:
onPressKeyDict[app.DIK_F5] = lambda : self.__afk()
Aratın (En altta)
Kod:
snd.FadeInMusic("BGM/" + musicInfo.fieldMusic)
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ı.")
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 :
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Download :
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
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.
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
