Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 08/31/2021 in all areas

  1. Estrutura de source de binário para o qual foi feito: Colocar na pasta da source e selecionar a opção "Extrair aqui".Deverá ficar assim (.sdf não contam) Informações: PackMaker.7z PackMaker.7z
    1 point
  2. https://drive.google.com/file/d/1EY62SyxUbg9F78cv1SUx1DEAh0UfdfeA/view Trazem tudo o que é necessário. Não testei, não têm fotos. Pelo que eu li têm varios bugs corrigidos etc... Só trazem o sistema de costumes. Têm um bug na window de negócios, mas é fácil de corrigir pelos vistos. Source: Metin2Zone
    1 point
  3. Olá galera, tudo bem com vocês? Meu problema é o seguinte: No meu cliente, tenho instalado o switchbot do Mijago 2.3, porém no add 6/7 ele só consegue parar em somente 1 add que eu coloco, como na foto abaixo: Mas quando eu tento colocar dois adds, o switch fica em um loop infinito, ou seja, ele não consegue parar nos dois bônus que eu coloquei, eu já testei e ele passa direto! Lembrando que esse problema só acontece com os adds 6/7, os adds verdes estão normais. Tenho uma leve impressão que o problema esteja nas seguintes funções: def checkSwitch_rare(self): def GetProb_rare(self): Alguém pode ajudar? Abaixo está o código do switch: import shop import player import item import ui import net import localeinfo as locale import chat import grp import wndMgr import mouseModule from uitooltip import ItemToolTip # Switchbot by Mijago ; v 2.2.1 WEAR_NAMES = ItemToolTip.WEAR_NAMES AFFECT_DICT = ItemToolTip.AFFECT_DICT ### Hier die Boni angeben, die auf dem Server Ativoiert sind. Die angegebene Liste ist nur ein Beispiel und MUSS angepasst werden! BONI_AVAIL = [1,2,3,4,5,6,9,10,12,13,14,15,16,17,18,19,20,21,22,23,27,28,29,30,31,32,33,34,37,39,41,43,44,45,48,53,59,60,61,62,63,71,72,78,79,80,81] # Hier 6/7 Boni angeben! BONI_RARE_AVAIL = [1,2,3,4,5,6,9,10,12,13,14,15,16,17,18,19,20,21,22,23,27,28,29,30,31,32,33,34,37,39,41,43,44,45,48,53,59,60,61,62,63,71,72,78,79,80,81] # Das Switch-Item SWITCH_VNUM = 71084 SWITCH_RARE_VNUM = 71052 # Die folgenden zahlen geben den MINMAX Bereich des Reglers an, der die Tempo angibt. MIN_SWITCH_DELAY = 35 MAX_SWITCH_DELAY_APPEND = 120 # Max 10!! MAX_NUM = 7 proposals = { 1: { # 1 = Weapon "PVP (Koerper)":[ [9,10], [15,10], [17,10], [16,10], [5,8], [3,8], ], "PVP (Mental)":[ [9,10], [15,10], [17,10], [6,8], [5,10], [16,10], ], "PVM": [ [5,10], [19,20], ], }, 2: [ # Armor [ #BODY, ], [ #HEAD, ], [ #SHIELD, ], [ #WRIST, ], [ #FOOTS, ], [ #NECK, ], [ #EAR, ], ], } # Farben :) # COLOR_BG = grp.GenerateColor(0.0, 0.0, 0.0, 0.5) # COLOR_INACTIVE = grp.GenerateColor(0.0, 0.0, 1.0, 0.2) # COLOR_ACTIVE = grp.GenerateColor(0.1, 0.6, 1.0, 0.2) # COLOR_FINISHED = grp.GenerateColor(0.0, 0.8, 1.0, 0.3) # COLOR_INACTIVE_RARE = grp.GenerateColor(0.0, 0.2, 1.0, 0.2) # COLOR_ACTIVE_RARE = grp.GenerateColor(0.2, 0.7, 1.0, 0.2) # COLOR_HIGHLIGHT_RARE = grp.GenerateColor(0.2, 0.2, 1.0, 0.05) # COLOR_PIN_HINT = grp.GenerateColor(0.0, 0.5, 1.0, 0.3) # COLOR_CHECKBOX_NOT_SELECTED = grp.GenerateColor(0.0, 0.3, 1.0, 0.1) # COLOR_CHECKBOX_SELECTED = grp.GenerateColor(0.0, 0.3, 1.0, 0.3) # Standardfarben: COLOR_BG = grp.GenerateColor(0.0, 0.0, 0.0, 0.5) COLOR_INACTIVE = grp.GenerateColor(1.0, 0.0, 0.0, 0.2) COLOR_ACTIVE = grp.GenerateColor(1.0, 0.6, 0.1, 0.2) COLOR_FINISHED = grp.GenerateColor(0.0, 1.0, 0.0, 0.2) COLOR_INACTIVE_RARE = grp.GenerateColor(1.0, 0.2, 0.0, 0.2) COLOR_ACTIVE_RARE = grp.GenerateColor(1.0, 0.7, 0.2, 0.2) COLOR_HIGHLIGHT_RARE = grp.GenerateColor(1.0, 0.2, 0.2, 0.05) COLOR_PIN_HINT = grp.GenerateColor(0.0, 0.5, 1.0, 0.3) COLOR_CHECKBOX_NOT_SELECTED = grp.GenerateColor(1.0, 0.3, 0.0, 0.1) COLOR_CHECKBOX_SELECTED = grp.GenerateColor(0.3, 1.0, 1.0, 0.3) DISTANCE_BOTTOM = 36 class Bar(ui.Bar): def __init__(self,layer = "UI"): ui.Bar.__init__(self,layer) def SetColor(self,color): wndMgr.SetColor(self.hWnd, color) self.color = color class BonusSelector(ui.Bar): def Activate(self): self.sub_parent.resetSwitch() self.Status_new.SetColor(COLOR_ACTIVE) self.sub_parent.StatusBar.SetColor(COLOR_ACTIVE) self.sub_parent.StatusText.SetText("Ativo") self.Starter.SetText("Switch ("+str(self.index+1)+") Parar") self.sub_parent.boni_active = 1 if self.parentWindow.parentWindow.gameWindow != None: self.sub_parent.blockBar.swib_normal.SetColor(COLOR_ACTIVE) pass def Deactivate(self): self.sub_parent.resetSwitch() self.Status_new.SetColor(COLOR_INACTIVE) self.sub_parent.StatusBar.SetColor(COLOR_INACTIVE) self.sub_parent.StatusText.SetText("Inativo") self.Starter.SetText("Switch ("+str(self.index+1)+") Iniciar") self.sub_parent.boni_active = 0 if self.sub_parent.parentWindow.parentWindow.gameWindow != None: self.sub_parent.blockBar.swib_normal.SetColor(COLOR_INACTIVE) pass def Activate_rare(self): self.sub_parent.resetSwitch_rare() self.sub_parent.StatusBar_rare.SetColor(COLOR_ACTIVE_RARE) self.sub_parent.StatusText_rare.SetText("6/7 Ativo") self.Starter_rare_boni.SetText("6/7 Parado") self.sub_parent.boni_rare_active = 1 if self.parentWindow.parentWindow.gameWindow != None: self.sub_parent.blockBar.swib_rare.SetColor(COLOR_ACTIVE_RARE) pass def Deactivate_rare(self): self.sub_parent.resetSwitch_rare() # self.Status_new.SetColor(COLOR_INACTIVE) self.sub_parent.StatusBar_rare.SetColor(COLOR_INACTIVE_RARE) self.sub_parent.StatusText_rare.SetText("6/7 Inativo") self.Starter_rare_boni.SetText("6/7 Iniciar") self.Starter_rare_boni.SetUp() self.sub_parent.boni_rare_active = 0 if self.sub_parent.parentWindow.parentWindow.gameWindow != None: self.sub_parent.blockBar.swib_rare.SetColor(COLOR_INACTIVE_RARE) pass def Finish(self): self.Status_new.SetColor(COLOR_FINISHED) self.sub_parent.StatusBar.SetColor(COLOR_FINISHED) self.sub_parent.StatusText.SetText("Pronto") self.Starter.SetText("Switch ("+str(self.index+1)+") Continuar") self.sub_parent.boni_active = 0 if self.sub_parent.parentWindow.parentWindow.gameWindow != None: self.sub_parent.blockBar.swib_normal.SetColor(COLOR_FINISHED) pass def Finish_rare(self): # self.Status_new.SetColor(COLOR_FINISHED) self.sub_parent.StatusBar_rare.SetColor(COLOR_FINISHED) self.sub_parent.StatusText_rare.SetText("6/7 Pronto") self.Starter_rare_boni.SetText("6/7 Continuar") self.sub_parent.boni_rare_active = 0 if self.sub_parent.parentWindow.parentWindow.gameWindow != None: self.sub_parent.blockBar.swib_rare.SetColor(COLOR_FINISHED) pass def Block(self): self.BlockBar.Show() self.BlockBar.sub.Show() self.Starter.Hide() pass def Unblock(self): self.BlockBar.sub.Hide() self.BlockBar.Hide() self.Starter.Show() pass def enable_rare_boni(self): for i in range(0,4): self.boni[6][i].Show() self.boni[7][i].Show() self.Starter.SetPosition(0,140+45) self.bg_rare_boni.Show() self.bg_rare_boni_but.Show() self.Starter_rare_boni.Show() self.sub_parent.StatusBar_rare.Show() if self.sub_parent.parentWindow.parentWindow.gameWindow != None: self.sub_parent.blockBar.Enable_rare(1) def disable_rare_boni(self): for i in range(0,4): self.boni[6][i].Hide() self.boni[7][i].Hide() self.Starter.SetPosition(0,140) self.bg_rare_boni.Hide() self.bg_rare_boni_but.Hide() self.Starter_rare_boni.Hide() self.sub_parent.StatusBar_rare.Hide() self.Deactivate_rare() if self.sub_parent.parentWindow.parentWindow.gameWindow != None: self.sub_parent.blockBar.Enable_rare(0) def __init__(self,sub_parent): ui.Bar.__init__(self, "UI") self.sub_parent = sub_parent self.index = sub_parent.index self.SetColor(COLOR_BG) #Define bg do item adicionado self.SetSize(500,290+10) self.boni = {} self.Status_new = ui.Bar() self.Status_new.SetParent(self) self.Status_new.SetColor(COLOR_INACTIVE) self.Status_new.SetSize(500,5) self.Status_new.Show() self.bg_rare_boni = ui.Bar() self.bg_rare_boni.SetColor(COLOR_HIGHLIGHT_RARE) self.bg_rare_boni.SetParent(self) self.bg_rare_boni.SetPosition(0,132) self.bg_rare_boni.SetSize(500,51) self.bg_rare_boni.Hide() self.bg_rare_boni_but = ui.Bar() self.bg_rare_boni_but.SetColor(COLOR_HIGHLIGHT_RARE) self.bg_rare_boni_but.SetParent(self) self.bg_rare_boni_but.SetPosition(400,133+50) self.bg_rare_boni_but.SetSize(100,25) self.bg_rare_boni_but.Hide() self.EnableRareBoni = CheckBox("6/7 Mostrar") self.EnableRareBoni.SetParent(self) self.EnableRareBoni.SetPosition(10,250) self.EnableRareBoni.eventUp = self.disable_rare_boni self.EnableRareBoni.eventDown = self.enable_rare_boni self.EnableRareBoni.Show() self.Starter = ui.ToggleButton() self.Starter.SetWindowHorizontalAlignCenter() self.Starter.SetParent(self) self.Starter.SetUpVisual("d:/ymir work/ui/public/XLarge_Button_01.sub") self.Starter.SetOverVisual("d:/ymir work/ui/public/XLarge_button_02.sub") self.Starter.SetDownVisual("d:/ymir work/ui/public/XLarge_button_03.sub") self.Starter.SetPosition(0,140) self.Starter.SetText("Switch Iniciar") self.Starter.SetToggleDownEvent(self.Activate) self.Starter.SetToggleUpEvent(self.Deactivate) self.Starter.Show() self.Starter_rare_boni = ui.ToggleButton() self.Starter_rare_boni.SetWindowHorizontalAlignCenter() self.Starter_rare_boni.SetParent(self) self.Starter_rare_boni.SetUpVisual("d:/ymir work/ui/public/Large_Button_01.sub") self.Starter_rare_boni.SetOverVisual("d:/ymir work/ui/public/Large_button_02.sub") self.Starter_rare_boni.SetDownVisual("d:/ymir work/ui/public/Large_button_03.sub") self.Starter_rare_boni.SetPosition(200,140+45) self.Starter_rare_boni.SetText("6/7 Iniciar") self.Starter_rare_boni.SetToggleDownEvent(self.Activate_rare) self.Starter_rare_boni.SetToggleUpEvent(self.Deactivate_rare) self.Starter_rare_boni.Hide() for i in range(7,5,-1): vas = i self.boni[vas] = {} self.boni[vas][0] = ui.TextLine() self.boni[vas][0].SetParent(self) self.boni[vas][0].SetText("Bonus "+str(vas)) self.boni[vas][0].SetPosition(15,10+25*(vas-1)) self.boni[vas][0].Hide() self.boni[vas][1] = DropDown(self,"- Nenhuma -") self.boni[vas][1].SetPosition(70,10+25*(vas-1)) for x in AFFECT_DICT: if x in BONI_RARE_AVAIL: self.boni[vas][1].AppendItem(str(AFFECT_DICT[x](0)),x) self.boni[vas][1].SetSize(330,20) self.boni[vas][1].Hide() self.boni[vas][2] = ui.Bar("UI") self.boni[vas][2].SetParent(self) self.boni[vas][2].SetPosition(410,10+25*(vas-1)) self.boni[vas][2].SetColor(0xC0000000) self.boni[vas][2].SetSize(80,20) self.boni[vas][2].Hide() self.boni[vas][3] = Edit2("0",14) self.boni[vas][3].SetParent(self.boni[vas][2]) self.boni[vas][3].SetNumberMode() self.boni[vas][3].SetSize(80,20) self.boni[vas][3].SetPosition(4,3) self.boni[vas][3].Hide() for i in range(0,5): vas = 5-i self.boni[vas] = {} self.boni[vas][0] = ui.TextLine() self.boni[vas][0].SetParent(self) self.boni[vas][0].SetText("Bonus "+str(vas)) self.boni[vas][0].SetPosition(15,10+25*(vas-1)) self.boni[vas][0].Show() self.boni[vas][1] = DropDown(self,"- Nenhuma -") self.boni[vas][1].SetPosition(70,10+25*(vas-1)) for x in AFFECT_DICT: if x in BONI_AVAIL: self.boni[vas][1].AppendItem(str(AFFECT_DICT[x](0)),x) self.boni[vas][1].SetSize(330,20) self.boni[vas][1].Show() self.boni[vas][2] = ui.Bar("UI") self.boni[vas][2].SetParent(self) self.boni[vas][2].SetPosition(410,10+25*(vas-1)) self.boni[vas][2].SetColor(0xC0000000) self.boni[vas][2].SetSize(80,20) self.boni[vas][2].Show() self.boni[vas][3] = Edit2("0",14) self.boni[vas][3].SetParent(self.boni[vas][2]) self.boni[vas][3].SetNumberMode() self.boni[vas][3].SetSize(80,20) self.boni[vas][3].SetPosition(4,3) self.boni[vas][3].Show() self.but_propose = DropDown(self,'Sugestões',0) self.but_propose.SetParent(self) self.but_propose.SetPosition(380,210) self.but_propose.OnChange=self.change_boni # self.but_propose.Show() self.BlockBar = ui.Bar() self.BlockBar.SetParent(self) self.BlockBar.SetColor(COLOR_INACTIVE) self.BlockBar.SetPosition(0,5) self.BlockBar.SetSize(500,170-5+35+2) self.BlockBar.Hide() self.BlockBar.sub = ui.Bar() self.BlockBar.sub.SetParent(self) self.BlockBar.sub.SetColor(COLOR_INACTIVE) self.BlockBar.sub.SetPosition(500-122,5+170-5+35+2) self.BlockBar.sub.SetSize(122,30) self.BlockBar.sub.Hide() self.BlockText = ui.TextLine() self.BlockText.SetParent(self.BlockBar) self.BlockText.SetWindowHorizontalAlignCenter() self.BlockText.SetHorizontalAlignCenter() self.BlockText.SetPosition(0,140) self.BlockText.SetText("Você não pode mudar este item.") self.BlockText.Show() self.prepare_propose() def change_boni(self): use = self.but_propose.DropList.GetSelectedItem().value bon = 1 item.SelectItem(self.sub_parent.vnum) for x in use: # TODO: Check if bonus exists on item!! ok = 1 for i in xrange(item.ITEM_APPLY_MAX_NUM): (affectType, affectValue) = item.GetAffect(i) if affectType == x[0]: ok = 0 if ok == 0: continue y = self.boni[bon][1] y.SelectByAffectId(x[0]) self.boni[bon][1].act.SetText(y.DropList.GetSelectedItem().textBox.GetText()) self.boni[bon][3].SetText(str(x[1])) bon+=1 for x in range(bon,6): y = self.boni[x][1].DropList y.SelectIndex(0) self.boni[x][1].act.SetText(y.GetSelectedItem().textBox.GetText()) self.boni[x][3].SetText("0") def prepare_propose(self): self.but_propose.DropList.RemoveAllItems() self.but_propose.maxh = 95 self.but_propose.c = 0 self.but_propose.AppendItem("Vazio",[]) item.SelectItem(self.sub_parent.vnum) type = item.GetItemType() use = proposals[type] if type == 2: use = use[item.GetItemSubType()] for prop in use: self.but_propose.AppendItem(prop,use[prop]) class ItemTabBar(ui.Window): class BlockBar(ui.Window): size_res = 32 multi = 1 def SetSize(self,i=1): self.multi = i ui.Window.SetSize(self,self.size_res,self.size_res*i) if self.rare_enabled == 1: self.swib_normal.SetSize(self.size_res,self.size_res*i/3*2) pos1 = int(1.0*self.size_res*i/3.0*2.0) self.swib_normal.SetSize(self.size_res,pos1) self.swib_rare.SetSize(self.size_res,self.size_res*i-pos1) self.swib_rare.SetPosition(0,pos1) self.swib_rare.Show() else: self.swib_normal.SetSize(self.size_res,self.size_res*i) self.swib_rare.Hide() def Enable_rare(self,o = 1): self.rare_enabled = o self.SetSize(self.multi) def __init__(self): ui.Window.__init__(self) self.rare_enabled = 0 self.swib_normal = ui.Bar() self.swib_normal.SetParent(self) self.swib_normal.SetSize(self.size_res,self.size_res*self.multi) self.swib_normal.SetColor(COLOR_INACTIVE) self.swib_normal.SetPosition(0,0) self.swib_normal.Show() self.swib_rare = ui.Bar() self.swib_rare.SetParent(self) self.swib_rare.SetSize(self.size_res,self.size_res) self.swib_rare.SetColor(COLOR_INACTIVE_RARE) self.swib_rare.SetPosition(0,0) self.swib_rare.Hide() self.SetSize(1) class ItemTab(ui.Bar): height_selected = 36*3+8 height_unselected = 36*3+5 def Destroy(self): self.parentWindow.parentWindow.enable_rebuy.SetParent(self.parentWindow.parentWindow) self.parentWindow.parentWindow.but_speed.SetParent(self.parentWindow.parentWindow) self.parentWindow.parentWindow.help_show_rare.SetParent(self.parentWindow.parentWindow) self.parentWindow.parentWindow.help_rebuy.SetParent(self.parentWindow.parentWindow) # self.parentWindow.parentWindow.help_stop_all.SetParent(self.parentWindow.parentWindow) self.parentWindow.parentWindow.help_duration.SetParent(self.parentWindow.parentWindow) # self.parentWindow.parentWindow.but_deactivate_all.SetParent(self.parentWindow.parentWindow) # self.parentWindow.parentWindow.but_deactivate_all.Hide() self.parentWindow.parentWindow.enable_rebuy.Hide() self.parentWindow.parentWindow.but_speed.Hide() self.bonusSelector.Hide() self.bonusSelector.__del__() self.Hide() self.__del__() def DeleteMe(self): self.parentWindow.DeleteTab(self.tabnum) def __init__(self,parent,tabnum,index = 0,vnum = 0): ## Init ItemTab ui.Bar.__init__(self) self.SetColor(COLOR_BG) self.SetSize(self.width,self.height_unselected) self.index = index self.tabnum = tabnum self.vnum = vnum self.count = 0 self.count_rare = 0 self.parentWindow = parent self.SetParent(parent) if self.parentWindow.parentWindow.gameWindow != None: self.blockBar = ItemTabBar.BlockBar() self.blockBar.SetParent(self.parentWindow.parentWindow.gameWindow.interface.wndInventory.wndItem) ipi = self.parentWindow.parentWindow.gameWindow.interface.wndInventory.inventoryPageIndex self.blockBar.Show() ip2 = self.index - ipi*45 self.blockBar.SetPosition(((ip2-int(ip2/5)*5)*self.blockBar.size_res),int(ip2/5)*self.blockBar.size_res) self.ItemIcon = ui.ImageBox() self.ItemIcon.SetParent(self) self.ItemIcon.AddFlag("not_pick") self.ItemIcon.SetWindowHorizontalAlignCenter() self.ItemIcon.SetWindowVerticalAlignCenter() self.ItemIcon.Show() self.SlotName = ui.TextLine() self.SlotName.SetParent(self) self.SlotName.SetWindowHorizontalAlignCenter() self.SlotName.SetHorizontalAlignCenter() self.SlotName.SetPosition(0,5) self.SlotName.SetText("Slot %d" % (self.index+1)) self.SlotName.AddFlag("not_pick") self.SlotName.Show() self.StatusBar = Bar() # Special Bar self.StatusBar.SetParent(self) self.StatusBar.SetWindowVerticalAlignBottom() self.StatusBar.SetSize(self.width,20) self.StatusBar.SetPosition(0,20) self.StatusBar.SetColor(COLOR_INACTIVE) self.StatusBar.AddFlag("not_pick") self.StatusBar.Show() self.StatusText = ui.TextLine() self.StatusText.SetParent(self.StatusBar) # self.StatusText.SetParent(self) self.StatusText.SetWindowHorizontalAlignCenter() self.StatusText.SetWindowVerticalAlignCenter() self.StatusText.SetHorizontalAlignCenter() self.StatusText.SetVerticalAlignCenter() self.StatusText.SetPosition(0,0) self.StatusText.SetText("Inativo") self.StatusText.Show() self.StatusBar_rare = Bar() # Special Bar self.StatusBar_rare.SetParent(self) self.StatusBar_rare.SetWindowVerticalAlignBottom() self.StatusBar_rare.SetSize(self.width,20) self.StatusBar_rare.SetPosition(0,40) self.StatusBar_rare.SetColor(COLOR_INACTIVE_RARE) self.StatusBar_rare.AddFlag("not_pick") self.StatusBar_rare.Hide() self.StatusText_rare = ui.TextLine() self.StatusText_rare.SetParent(self.StatusBar_rare) self.StatusText_rare.SetWindowHorizontalAlignCenter() self.StatusText_rare.SetWindowVerticalAlignCenter() self.StatusText_rare.SetHorizontalAlignCenter() self.StatusText_rare.SetVerticalAlignCenter() self.StatusText_rare.SetPosition(0,0) self.StatusText_rare.SetText("6/7 Inativo") self.StatusText_rare.Show() self.CloseBut = ui.Button() self.CloseBut.SetParent(self) self.CloseBut.SetUpVisual("d:/ymir work/ui/public/close_button_01.sub") self.CloseBut.SetOverVisual("d:/ymir work/ui/public/close_button_02.sub") self.CloseBut.SetDownVisual("d:/ymir work/ui/public/close_button_03.sub") self.CloseBut.SetToolTipText("Fechar", 0, -23) self.CloseBut.SetEvent(self.DeleteMe) self.CloseBut.SetPosition(0,0) self.CloseBut.Show() self.OnMouseLeftButtonDown = lambda: self.Select() self.boni_active = 0 self.boni_rare_active = 0 self.bonusSelector = BonusSelector(self) self.bonusSelector.SetParentProxy(self.parentWindow.parentWindow) self.bonusSelector.SetPosition(10,35+36*3+4*2) self.bonusSelector.Hide() self.vnum = 0 self.SetIndex(index) self.resetSwitch() self.resetSwitch_rare() def IsActive(self): return self.boni_active == 1 def IsActive_rare(self): return self.boni_rare_active == 1 def SetParentProxy(self,parent): ui.Bar.SetParentProxy(self,parent) def Select(self): for a in self.parentWindow.tabList: self.parentWindow.tabList[a].UnSelect() self.parentWindow.tabList[a].bonusSelector.Hide() self.bonusSelector.Show() self.SetSize(self.width,self.height_selected) self.Update() # self.parentWindow.parentWindow.but_deactivate_all.SetParent(self.bonusSelector) # self.parentWindow.parentWindow.but_deactivate_all.SetPosition(415-10,200+10) # self.parentWindow.parentWindow.but_deactivate_all.Show() self.parentWindow.parentWindow.enable_rebuy.SetParent(self.bonusSelector) #Define a posição do botão de repetir compra self.parentWindow.parentWindow.enable_rebuy.SetPosition(10,266+10) self.parentWindow.parentWindow.enable_rebuy.Show() self.parentWindow.parentWindow.but_speed.SetParent(self.bonusSelector) #Define a posição do botão de velocidade self.parentWindow.parentWindow.but_speed.SetPosition(0,270+10) self.parentWindow.parentWindow.but_speed.Show() self.parentWindow.parentWindow.help_show_rare.SetParent(self.bonusSelector) self.parentWindow.parentWindow.help_rebuy.SetParent(self.bonusSelector) # self.parentWindow.parentWindow.help_stop_all.SetParent(self.bonusSelector) self.parentWindow.parentWindow.help_duration.SetParent(self.bonusSelector) def UnSelect(self): self.SetSize(self.width,self.height_unselected) self.Update() def Update(self): self.StatusBar.SetPosition(0,20) self.SetPosition((self.width+self.dist)*self.tabnum,0) self.SlotName.SetText("Slot %d" % (self.index+1)) def resetSwitch(self): self.values = [0,0,0,0,0] def resetSwitch_rare(self): self.values_rare = [0,0] # last_switch = -1 rebuyed = 0 def nachkauf(self): if self.parentWindow.parentWindow.buyed != 0: return else: self.parentWindow.parentWindow.buyed = 1 if self.parentWindow.parentWindow.enable_rebuy.checked == 1: for i in range(0,shop.SHOP_SLOT_COUNT): me = shop.GetItemID(i) if me == SWITCH_VNUM: if shop.GetItemPrice(i) > player.GetMoney(): # chat.AppendChat(1,"-- Switchitem gefunden! Aber wir haben kein Geld :(") self.bonusSelector.Deactivate() return else: net.SendShopBuyPacket(i) self.rebuyed = 1 # self.Switch() return rebuyed_rare = 0 def nachkauf_rare(self): if self.parentWindow.parentWindow.buyed_rare != 0: return else: self.parentWindow.parentWindow.buyed_rare = 1 if self.parentWindow.parentWindow.enable_rebuy.checked == 1: for i in range(0,shop.SHOP_SLOT_COUNT): me = shop.GetItemID(i) if me == SWITCH_RARE_VNUM: if shop.GetItemPrice(i) > player.GetMoney(): # chat.AppendChat(1,"-- Switchitem gefunden! Aber wir haben kein Geld :(") self.bonusSelector.Deactivate_rare() return else: net.SendShopBuyPacket(i) self.rebuyed_rare = 1 # self.Switch() return # self.bonusSelector.Deactivate() def Switch_rare(self): lc = 0 for i in range(0,90*2): if player.GetItemIndex(i) == SWITCH_RARE_VNUM: lc+=player.GetItemCount(i) if lc == 0 and self.parentWindow.parentWindow.enable_rebuy.checked == 0: chat.AppendChat(2,"Slot %d: 6/7 Switch cancelado -> Nenhum item foi bem-sucedidos!" % (self.index+1)) self.bonusSelector.Deactivate_rare() return if lc < 15: self.nachkauf_rare() if lc == 0: self.bonusSelector.Deactivate_rare() chat.AppendChat(2,"Slot %d: 6/7 Mudança cancelada -> Sem itens de mudança!" % (self.index+1)) return for i in range(0,90*2): if player.GetItemIndex(i) == SWITCH_RARE_VNUM: net.SendItemUseToItemPacket(i,self.index) return def Switch(self): lc = 0 for i in range(0,90*2): if player.GetItemIndex(i) == SWITCH_VNUM: lc+=player.GetItemCount(i) if lc == 0 and self.parentWindow.parentWindow.enable_rebuy.checked == 0: self.bonusSelector.Deactivate() return if lc < 15: self.nachkauf() if lc == 0: self.bonusSelector.Deactivate() return for i in range(0,90*2): if player.GetItemIndex(i) == SWITCH_VNUM: net.SendItemUseToItemPacket(i,self.index) return # self.nachkauf() def checkSwitch(self): ok = 0 for i in range(0,5): if player.GetItemAttribute(self.index, i) != self.values[i]: ok = 1 self.prob = self.GetProb() self.StatusText.SetText("Ativo (%d%%)" %self.prob) if ok == 1 or self.prob >= 90: if self.prob >= 90: chat.AppendChat(1,"Slot %d: Pronto!" % (self.index+1)) self.bonusSelector.Finish() return self.values = [player.GetItemAttribute(self.index, i) for i in range(0,5)] self.Switch() elif self.rebuyed > 0: self.rebuyed = 0 self.Switch() elif ok == 0 and self.count < 5: self.count+=1 elif ok == 0 and self.count >= 5: self.count = 0 self.Switch() # elif self.last_switch > -1 and player.GetItemCount(self.last_switch) == 0: # chat.AppendChat(2,"%d"%player.GetItemCount(self.last_switch)) # self.last_switch = 0 # self.Switch() # else: # if self.GetProb() != 100: # self.Switch() pass def checkSwitch_rare(self): ok = 0 for i in range(0,2): if player.GetItemAttribute(self.index, i+6) != self.values_rare[i]: ok = 1 self.prob_rare = self.GetProb_rare() self.StatusText_rare.SetText("Ativo (%d%%)" %self.prob_rare) if ok == 1 or self.prob_rare >= 90: if self.prob_rare >= 90: self.bonusSelector.Finish_rare() chat.AppendChat(1,"Slot %d: 6/7 Pronto!" % (self.index+1)) return self.values_rare = [player.GetItemAttribute(self.index, i) for i in range(5,7)] self.Switch_rare() elif self.rebuyed_rare > 0: self.rebuyed_rare = 0 self.Switch_rare() elif ok == 0 and self.count_rare < 5: self.count_rare+=1 elif ok == 0 and self.count_rare >= 5: self.count_rare = 0 self.Switch_rare() pass def UpdateItem(self): # try: vnum = player.GetItemIndex(self.index) if vnum == 0 and self.vnum != 0: self.resetSwitch() self.resetSwitch_rare() self.vnum = 0 self.bonusSelector.Deactivate() self.bonusSelector.Block() self.bonusSelector.prepare_propose() self.ItemIcon.Hide() if self.parentWindow.parentWindow.gameWindow != None: self.blockBar.SetSize(1) return elif vnum != self.vnum: self.resetSwitch() self.resetSwitch_rare() self.vnum = vnum self.bonusSelector.Deactivate() self.bonusSelector.prepare_propose() item.SelectItem(self.vnum) if self.parentWindow.parentWindow.gameWindow != None: (w,h) = item.GetItemSize() self.blockBar.SetSize(h) if item.GetItemType() != 1 and item.GetItemType() != 2: self.bonusSelector.Block() else: self.bonusSelector.Unblock() self.ItemIcon.Show() self.ItemIcon.LoadImage(item.GetIconImageFileName()) # self.values = [player.GetItemAttribute(self.index, i) for i in range(0,5)] return if self.IsActive(): self.checkSwitch() if self.IsActive_rare(): self.checkSwitch_rare() # except: # pass def SetIndex(self,index): self.index = index self.bonusSelector.index = index self.bonusSelector.Starter.SetText("Switch ("+str(index+1)+") Iniciar") self.Update() self.UpdateItem() def GetProb_rare(self): values = [player.GetItemAttribute(self.index, i+6) for i in range(0,2)] val2 = {} for i in range(0,2): try: affectString = AFFECT_DICT[values[i][0]](values[i][1]) val2[values[i][0]] = values[i][1] self.bonusSelector.ibi[i+6].SetText(affectString) except: pass prob = 0 max = 0 yp = self.GenList_rare() for x in yp: if yp[x] in val2 and val2[yp[x]] >= int(self.bonusSelector.boni[x+5][3].GetText()): prob = prob+1 max = max+1 if max > 0: prozent = 100/max*prob else: prozent = 100 return prozent pass def GetProb(self): values = [player.GetItemAttribute(self.index, i) for i in range(0,5)] val2 = {} # for i in xrange(player.ATTRIBUTE_SLOT_MAX_NUM): for i in range(0,5): try: affectString = AFFECT_DICT[values[i][0]](values[i][1]) val2[values[i][0]] = values[i][1] self.bonusSelector.ibi[i].SetText(affectString) except: pass prob = 0 max = 0 yp = self.GenList() for x in yp: if yp[x] in val2 and val2[yp[x]] >= int(self.bonusSelector.boni[x][3].GetText()): prob = prob+1 max = max+1 if max > 0: prozent = 100/max*prob else: prozent = 100 return prozent def GenList(self): ret = {} for i in range(0,5): if self.bonusSelector.boni[5-i][1].selected.value != 0: ret[5-i] = self.bonusSelector.boni[5-i][1].selected.value return ret def GenList_rare(self): ret = {} for i in range(0,2): if self.bonusSelector.boni[6+i][1].selected.value != 0: ret[i+1] = self.bonusSelector.boni[6+i][1].selected.value return ret def __init__(self,parent): ui.Window.__init__(self) self.SetSize(500,36*3+4*2) self.tabCount = 0 self.tabList = {} self.parentWindow = parent self.SetParent(parent) self.plusBar = ui.Bar() self.plusBar.SetParent(self) self.plusBar.SetSize(90,30) self.plusBar.SetWindowVerticalAlignCenter() self.plusBar.SetColor(COLOR_BG) # self.plusBar.OnMouseLeftButtonDown = lambda: self.AddTab_pre() self.plusBar.OnMouseLeftButtonUp = lambda: self.AddTab_pre() self.OnMouseLeftButtonUp = lambda: self.AddTab_pre() self.plusBar.SetPosition(30,0) self.plusBar.Show() self.AddText = ui.TextLine() self.AddText.SetParent(self.plusBar) self.AddText.SetText("Arraste o item") self.AddText.SetWindowVerticalAlignCenter() self.AddText.SetWindowHorizontalAlignCenter() self.AddText.SetVerticalAlignCenter() self.AddText.SetHorizontalAlignCenter() self.AddText.SetPosition(0,0) self.AddText.Show() dist = [ [500, 0 ], #1 [240, 10 ], [160, 10 ], [117, 10.5], # [ 80, 25 ], #5 [ 92, 10 ], #5 [ 75, 10 ], #6 [ 64, 9 ], #7 [ 56, 7.5], #8 [ 50, 6.5], #9 [ 45, 5.5], #10 ][MAX_NUM-1] self.ItemTab.width = dist[0] self.ItemTab.dist = dist[1] #For 8 # dist = 9-1.5 # width = 56 # For 9 # dist = 9-2.5 # width = 50 # For 10 # dist = 9-3.5 # width = 45 def DeleteTab(self,id): if self.parentWindow.gameWindow != None: self.tabList[id].blockBar.Hide() self.tabList[id].blockBar.Destroy() self.tabList[id].Destroy() # del self.tabList[id] self.tabCount = self.tabCount -1 if self.tabCount > id and id < 5: for i in xrange(id,self.tabCount): self.tabList[i] = self.tabList[i+1] self.tabList[i].tabnum = i self.tabList[i].SetPosition((self.tabList[i].width+self.tabList[i].dist)*i,0) del self.tabList[self.tabCount] else: del self.tabList[id] if self.tabCount > 0: self.tabList[0].Select() if (self.ItemTab.width+self.ItemTab.dist)*self.tabCount < 20: self.parentWindow.SetSize(520,387-210) self.parentWindow.but_speed.Hide() self.plusBar.SetPosition(20,0) else: (x,y) = self.tabList[self.tabCount-1].GetLocalPosition() self.plusBar.SetPosition(x+self.ItemTab.width+self.ItemTab.dist,0) # self.plusBar.SetPosition((self.ItemTab.width+self.ItemTab.dist)*self.tabCount-10,0) self.plusBar.Show() def AddTab_pre(self): if mouseModule.mouseController.isAttached(): attachedSlotType = mouseModule.mouseController.GetAttachedType() attachedSlotPos = mouseModule.mouseController.GetAttachedSlotNumber() attachedSlotVnum = mouseModule.mouseController.GetAttachedItemIndex() item.SelectItem(attachedSlotVnum) if item.GetItemType() != 1 and item.GetItemType() != 2: mouseModule.mouseController.DeattachObject() chat.AppendChat(2,"Você não pode mudar este item.") return for a in self.tabList: if self.tabList[a].index == attachedSlotPos: mouseModule.mouseController.DeattachObject() chat.AppendChat(2,"O Esse Slot está pronto para ser incrível!") return if player.SLOT_TYPE_INVENTORY == attachedSlotType: self.AddTab(attachedSlotPos,attachedSlotVnum) chat.AppendChat(2,"Item adicionado!") mouseModule.mouseController.DeattachObject() def AddTab(self,id,vnum = 0): if self.tabCount < MAX_NUM: self.tabList[self.tabCount] = self.ItemTab(self,self.tabCount,id,vnum) self.tabList[self.tabCount].Select() self.tabList[self.tabCount].Show() self.tabCount+= 1 if (self.ItemTab.width+self.ItemTab.dist)*self.tabCount < 20: self.plusBar.SetPosition(20,0) else: (x,y) = self.tabList[self.tabCount-1].GetLocalPosition() self.plusBar.SetPosition(x+self.ItemTab.width+self.ItemTab.dist,0) if self.tabCount == MAX_NUM: self.plusBar.Hide() self.parentWindow.SetSize(520,450+10) self.parentWindow.but_speed.Show() # return 0 class Bot(ui.BoardWithTitleBar): class PinGroup(ui.Bar): def OnUpdate(self): ## Now check position. (x,y) = self.GetGlobalPosition() max_x = wndMgr.GetScreenWidth()-self.GetWidth() max_y = wndMgr.GetScreenHeight()-self.GetHeight()-DISTANCE_BOTTOM if not x == self.pos_x or not y == self.pos_y: old_dir = self.dir if self.pos_x == 0 and not self.pos_y == 0 and not self.pos_y == max_y and old_dir != 1: self.parse_dir(1) elif self.pos_x == max_x and not self.pos_y == 0 and not self.pos_y == max_y and old_dir != 2: self.parse_dir(2) elif self.pos_y == max_y and not self.pos_x == 0 and not self.pos_x == max_x and old_dir != 4: self.parse_dir(4) elif self.pos_y == 0 and not self.pos_x == 0 and not self.pos_x == max_x and old_dir != 3: self.parse_dir(3) max_x = wndMgr.GetScreenWidth()-self.GetWidth() max_y = wndMgr.GetScreenHeight()-self.GetHeight()-DISTANCE_BOTTOM if self.pos_x == 0 and not self.pos_y == 0 and not self.pos_y == max_y: x = 0 elif self.pos_x == max_x and not self.pos_y == 0 and not self.pos_y == max_y: x = max_x elif self.pos_y == 0 and not self.pos_x == 0 and not self.pos_x == max_x: y = 0 elif self.pos_y == max_y and not self.pos_x == 0 and not self.pos_x == max_x: y = max_y if x > 0 and x < max_x and y > 0 and y < max_y: if y < int(max_y/2): y = 0 else: y = max_y if x < int(max_x/2): x = 0 else: x = max_x x = min(max(0,x),wndMgr.GetScreenWidth()-self.GetWidth()) y = min(max(0,y),wndMgr.GetScreenHeight()-self.GetHeight()-DISTANCE_BOTTOM) self.SetPosition(x,y) self.pos_x = x self.pos_y = y # (self.pos_x,self.pos_y) = self.GetGlobalPosition() self.parent.OnUpdate() for c in self.txtlist: c.SetColor(c.item.StatusBar.color) c.txt2.SetText("Status: %s" % c.item.StatusText.GetText()) try: c.listWin2.SetColor(c.item.StatusBar_rare.color) c.txt3.SetText("Status: %s" % c.item.StatusText_rare.GetText()) except: pass def ShowMainWindow(self): (x,y) = self.parent.GetGlobalPosition() x = min(max(32,x),wndMgr.GetScreenWidth()-self.parent.GetWidth()-32) y = min(max(32,y),wndMgr.GetScreenHeight()-self.parent.GetHeight()-DISTANCE_BOTTOM-32) self.parent.SetPosition(x,y) self.parent.Show() self.__del__() def parse_dir(self,dir): self.dir = dir w,h = 100,50 for listWin in self.txtlist: itm = listWin.item listWin.AddFlag("not_pick") if dir >= 3: listWin.SetPosition(w,4) listWin.SetSize(90,h-8) w+=92 if itm.bonusSelector.EnableRareBoni.checked == 1: w+=15 listWin.SetSize(105,4+12+12) listWin.listWin2.SetSize(105,14) listWin.listWin2.Show() listWin.txt3.Show() else: listWin.SetPosition(0,h) listWin.SetSize(w,4+12+12+2) if itm.bonusSelector.EnableRareBoni.checked == 1: listWin.SetSize(w,4+12+12) listWin.listWin2.SetSize(w,14) listWin.listWin2.Show() listWin.txt3.Show() # itl.append(txt3) h+=12 pass h+=4+12+12+4 self.SetSize(w,h) def __init__(self,parent,dir = 1): self.parent = parent self.dir = dir ui.Bar.__init__(self) # Direction: 1 = left; 2 = right; 3 = top self.SetColor(COLOR_BG) w,h = 100,50 self.AddFlag("float") self.AddFlag("movable") self.maximise_but = ui.Button() self.maximise_but.SetParent(self) self.maximise_but.SetPosition(4,4) self.maximise_but.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub") self.maximise_but.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub") self.maximise_but.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub") self.maximise_but.SetText("Ampliar") self.maximise_but.SetEvent(self.ShowMainWindow) self.maximise_but.Show() self.stop_but = ui.Button() self.stop_but.SetParent(self) self.stop_but.SetPosition(4,24) self.stop_but.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub") self.stop_but.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub") self.stop_but.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub") self.stop_but.SetText("Desativar tudo") self.stop_but.SetEvent(self.parent.deactivate_all) self.stop_but.Show() self.txtlist = [] for a in self.parent.itemTabBar.tabList: itm = self.parent.itemTabBar.tabList[a] listWin = ui.Bar() listWin.item = itm self.txtlist.append(listWin) listWin.SetColor(itm.StatusBar.color) listWin.SetParent(self) listWin.AddFlag("not_pick") listWin.Show() listWin.txt1 = ui.TextLine() listWin.txt1.SetParent(listWin) listWin.txt1.SetText("Slot %d:" %(itm.index+1)) listWin.txt1.Show() listWin.txt1.SetPosition(4,2) listWin.txt2 = ui.TextLine() listWin.txt2.SetParent(listWin) listWin.txt2.SetText("Status: %s" % itm.StatusText.GetText()) listWin.txt2.SetPosition(4,2+12) listWin.txt2.Show() listWin.listWin2 = ui.Bar() listWin.listWin2.AddFlag("not_pick") listWin.listWin2.SetColor(itm.StatusBar_rare.color) listWin.listWin2.SetParent(listWin) listWin.listWin2.SetPosition(0,4+12+12) listWin.listWin2.SetSize(w,12+2) listWin.listWin2.Hide() listWin.txt3 = ui.TextLine() listWin.txt3.SetParent(listWin.listWin2) listWin.txt3.SetText("Status: %s" % itm.StatusText_rare.GetText()) listWin.txt3.SetPosition(4,0) listWin.txt3.Hide() if dir >= 3: listWin.SetPosition(w,4) listWin.SetSize(90,h-8) w+=92 if itm.bonusSelector.EnableRareBoni.checked == 1: w+=15 listWin.SetSize(105,4+12+12) listWin.listWin2.SetSize(105,14) listWin.listWin2.Show() listWin.txt3.Show() else: listWin.SetPosition(0,h) listWin.SetSize(w,4+12+12+2) if itm.bonusSelector.EnableRareBoni.checked == 1: listWin.SetSize(w,4+12+12) listWin.listWin2.Show() listWin.txt3.Show() # itl.append(txt3) h+=12 pass h+=4+12+12+4 # else: # self.txtlist.append(itl) self.SetSize(w,h) (x,y) = self.parent.GetGlobalPosition() x = min(max(0,x),wndMgr.GetScreenWidth()-self.GetWidth()) y = min(max(0,y),wndMgr.GetScreenHeight()-self.GetHeight()-DISTANCE_BOTTOM) if dir == 1: # self.SetWindowHorizontalAlignLeft() self.SetPosition(0,y) elif dir == 2: # self.SetWindowHorizontalAlignRight() self.SetPosition(wndMgr.GetScreenWidth()-self.GetWidth(),y) elif dir == 3: # self.SetWindowVerticalAlignTop() self.SetPosition(x,0) else: # self.SetWindowVerticalAlignBottom() self.SetPosition(x,wndMgr.GetScreenHeight()-(DISTANCE_BOTTOM+h)) (self.pos_x,self.pos_y) = self.GetGlobalPosition() self.parse_dir(dir) # if dir == 1: # self.SetWindowHorizontalAlignLeft() # self.SetPosition(0,0) # elif dir == 2: # self.SetWindowHorizontalAlignRight() # self.SetPosition(self.GetWidth(),0) # elif dir == 3: # self.SetWindowHorizontalAlignCenter() # self.SetPosition(0,0) # elif dir == 4: # self.SetWindowHorizontalAlignCenter() # self.SetPosition(0,36+h) # else: # return # ERR pinhint = 0 def ShowPinHint(self,type): self.pinhint = type if type == 0: self.PinHint.Hide() return # type=2 (x,y) = self.GetGlobalPosition() if type == 1: # Left self.PinHint.SetWindowHorizontalAlignLeft() self.PinHint.SetWindowVerticalAlignCenter() self.PinHint.SetSize(max(min(30,30-x),3),wndMgr.GetScreenHeight()) self.PinHint.SetPosition(0,0) elif type == 2: # Right self.PinHint.SetWindowHorizontalAlignRight() self.PinHint.SetWindowVerticalAlignCenter() self.PinHint.SetSize(30,wndMgr.GetScreenHeight()) self.PinHint.SetPosition(max(min(30,30-(wndMgr.GetScreenWidth()-(x+self.GetWidth()))),3),0) elif type == 3: # Top self.PinHint.SetWindowHorizontalAlignCenter() self.PinHint.SetWindowVerticalAlignTop() self.PinHint.SetSize(wndMgr.GetScreenWidth(),max(min(30,30-y),3)) self.PinHint.SetPosition(0,0) elif type == 4: # Top self.PinHint.SetWindowHorizontalAlignCenter() self.PinHint.SetWindowVerticalAlignBottom() self.PinHint.SetSize(wndMgr.GetScreenWidth(),30) self.PinHint.SetPosition(0,36+max(min(30,30-(wndMgr.GetScreenHeight()-36-(y+self.GetHeight()))),3)) self.PinHint.Show() # else: def __init__(self): ui.BoardWithTitleBar.__init__(self) self.gameWindow = None self.SetTitleName("SacredMt2 Switchbot") self.AddFlag("float") self.AddFlag("movable") self.SetPosition(30,30) # self.SetSize(520,387) # self.SetSize(520,387-210) self.SetSize(520,387-210) self.PinHint = ui.Bar() self.PinHint.SetColor(COLOR_PIN_HINT) self.PinHint.Show() self.OnMouseLeftButtonDown = self.drag_start self.OnMouseLeftButtonUp = self.drag_end self.titleBar.MinimizeBut = ui.Button() self.titleBar.MinimizeBut.SetParent(self.titleBar) self.titleBar.MinimizeBut.SetUpVisual("d:/ymir work/ui/public/minimize_button_01.sub") self.titleBar.MinimizeBut.SetOverVisual("d:/ymir work/ui/public/minimize_button_02.sub") self.titleBar.MinimizeBut.SetDownVisual("d:/ymir work/ui/public/minimize_button_03.sub") self.titleBar.MinimizeBut.SetToolTipText("Minimizar", 0, -23) self.titleBar.MinimizeBut.SetPosition(520 - self.titleBar.btnClose.GetWidth()-3- 32 - 3, 3) self.titleBar.MinimizeBut.SetEvent(lambda: self.PinShow(1)) self.titleBar.MinimizeBut.Show() self.titleBar.HelpBut = ui.ToggleButton() self.titleBar.HelpBut.SetParent(self.titleBar) self.titleBar.HelpBut.SetUpVisual("d:/ymir work/ui/public/small_button_01.sub") self.titleBar.HelpBut.SetOverVisual("d:/ymir work/ui/public/small_button_02.sub") self.titleBar.HelpBut.SetDownVisual("d:/ymir work/ui/public/small_button_03.sub") self.titleBar.HelpBut.SetToolTipText("Detalhado Ajuda", 0, -23) self.titleBar.HelpBut.SetText("Ajuda") self.titleBar.HelpBut.SetPosition(3, 0) self.titleBar.HelpBut.SetToggleDownEvent(lambda: self.ToggleHelp(1)) self.titleBar.HelpBut.SetToggleUpEvent(lambda: self.ToggleHelp(0)) # self.titleBar.HelpBut.Show() self.but_deactivate_all = ui.Button() # self.but_deactivate_all.SetParent(self) self.but_deactivate_all.SetParent(self.titleBar) # self.but_deactivate_all.SetPosition(415,350) self.but_deactivate_all.SetPosition(3+5+self.titleBar.HelpBut.GetWidth(), 0) self.but_deactivate_all.SetUpVisual("d:/ymir work/ui/public/large_button_01.sub") self.but_deactivate_all.SetOverVisual("d:/ymir work/ui/public/large_button_02.sub") self.but_deactivate_all.SetDownVisual("d:/ymir work/ui/public/large_button_03.sub") self.but_deactivate_all.SetText("Parar todos") self.but_deactivate_all.SetEvent(self.deactivate_all) self.but_deactivate_all.Show() self.titleBar.but_deactivate_all = ui.Button() self.titleBar.but_deactivate_all.SetParent(self.titleBar) self.titleBar.but_deactivate_all.SetPosition(3+5+self.titleBar.HelpBut.GetWidth()+5+self.but_deactivate_all.GetWidth(), 0) self.titleBar.but_deactivate_all.SetUpVisual("d:/ymir work/ui/public/small_button_01.sub") self.titleBar.but_deactivate_all.SetOverVisual("d:/ymir work/ui/public/small_button_02.sub") self.titleBar.but_deactivate_all.SetDownVisual("d:/ymir work/ui/public/small_button_03.sub") self.titleBar.but_deactivate_all.SetText("Info") self.titleBar.but_deactivate_all.SetEvent(self.about) # self.titleBar.but_deactivate_all.Show() self.titleName.SetPosition(60, 4) self.enable_rebuy = CheckBox("Repetir compra") self.enable_rebuy.Toggle() self.enable_rebuy.Hide() self.but_speed = ui.SliderBar() self.but_speed.SetParent(self) self.but_speed.SetWindowHorizontalAlignCenter() self.but_speed.SetPosition(0,360) self.but_speed.SetSliderPos(0.0) # self.but_speed.SetToolTipText("Switch-Geschwindigkeit", 0, -23) # self.but_speed.Show() self.but_speed.Hide() self.itemTabBar = ItemTabBar(self) self.itemTabBar.SetPosition(10,35) self.itemTabBar.Show() self.buyed = 0 self.buyed_rare = 0 self.SetCloseEvent(self._Hide) self.Hide = self._Hide ### NOW initialize the HELP stuff! self.help_add_item = HelpBar(0.8,'Arraste um item aqui para adicioná-lo.') self.help_add_item.SetParent(self) self.help_add_item.SetPosition(60,50) self.help_minimize = HelpBar(0.8,'Arraste o bot para a borda para torna-lo menor!',1) self.help_minimize.SetParent(self.titleBar) self.help_minimize.SetWindowHorizontalAlignCenter() self.help_minimize.SetPosition(100,-30) self.help_show_rare = HelpBar(0.85,'Isso permite que você alterne a exibição de 6/7 bônus.') self.help_show_rare.SetParent(self) # self.help_show_rare.SetPosition(35,312) self.help_rebuy = HelpBar(0.5,'O bot deve comprar de novo?') self.help_rebuy.SetParent(self) # self.help_rebuy.SetPosition(25,297) self.help_stop_all = HelpBar(0.8,'Para de rodar TODOS os itens!',1) self.help_stop_all.SetParent(self.titleBar) self.help_stop_all.SetPosition(3+5+self.titleBar.HelpBut.GetWidth()*1.2,-30) self.help_duration = HelpBar(0.8,'Retarda o bot.',1) self.help_duration.SetParent(self) def ToggleHelp(self,val): self.help_on = val def Show(self): ui.BoardWithTitleBar.Show(self) self.bot_shown = 1 def _Hide(self): ## ONLY FOR TESTING # for a in range(0,self.itemTabBar.tabCount): # self.itemTabBar.DeleteTab(0) ui.BoardWithTitleBar.Hide(self) self.bot_shown = 0 def deactivate_all(self): for a in self.itemTabBar.tabList: self.itemTabBar.tabList[a].bonusSelector.Starter.SetUp() self.itemTabBar.tabList[a].bonusSelector.Starter.OnToggleUp() self.itemTabBar.tabList[a].bonusSelector.Starter_rare_boni.SetUp() self.itemTabBar.tabList[a].bonusSelector.Starter_rare_boni.OnToggleUp() pass drag = 0 def drag_start(self): self.drag = 1 def drag_end(self): self.drag = 0 if self.pinhint > 0: self.PinShow(self.pinhint) # self.PinGroupBox = self.PinGroup() pass self.ShowPinHint(0) def PinShow(self,dir): self.PinGroupBox = self.PinGroup(self,dir) self.Hide() self.PinGroupBox.Show() def EnableInventoryTweak(self,gameWindow): self.gameWindow=gameWindow self.gameWindow.interface.wndInventory.inventoryTab[0].SetEvent(lambda arg=0: self.__SetInventoryPage(arg)) self.gameWindow.interface.wndInventory.inventoryTab[1].SetEvent(lambda arg=1: self.__SetInventoryPage(arg)) def __SetInventoryPage(self,arg): self.gameWindow.interface.wndInventory.SetInventoryPage(arg) for a in self.itemTabBar.tabList: itm = self.itemTabBar.tabList[a] if itm.index >= arg*45 and itm.index < (arg+1)*45: itm.blockBar.Show() else: itm.blockBar.Hide() help_on = 0 counter = 0 AboutWindow = None def OnUpdate(self): if self.AboutWindow: if self.AboutWindow.x_counter > 1: self.AboutWindow.x_counter -=1 self.AboutWindow.text6.SetText("Tempo: %0.1f" % (self.AboutWindow.x_counter/45.0)) elif self.AboutWindow.x_counter == 1: self.AboutWindow.Hide() # self.AboutWindow.Delete() if self.help_on == 1: (x,y) = self.itemTabBar.plusBar.GetLocalPosition() self.help_add_item.SetPosition(x+20,50) self.help_add_item.Show() self.help_stop_all.Show() self.help_minimize.Show() if self.itemTabBar.tabCount > 0: self.help_show_rare.SetPosition(25,164) self.help_show_rare.Show() self.help_rebuy.SetPosition(15,147) self.help_rebuy.Show() # self.help_duration.SetPosition(300,180) self.help_duration.SetPosition(190-5.5+self.but_speed.GetSliderPos()*int(35.5+self.but_speed.GetWidth()/2),180) self.help_duration.Show() else: self.help_show_rare.Hide() self.help_rebuy.Hide() self.help_duration.Hide() else: self.help_add_item.Hide() self.help_minimize.Hide() self.help_show_rare.Hide() self.help_rebuy.Hide() self.help_stop_all.Hide() self.help_duration.Hide() if self.drag == 1: (x1, y1) = self.GetGlobalPosition() # if x1 < 0: # x1 = 0 # elif x1 > wndMgr.GetScreenWidth()-520: # x1 = wndMgr.GetScreenWidth()-520 # if y1 < 0: # y1 = 0 # elif y1 > wndMgr.GetScreenHeight()-36-self.GetHeight(): # y1 = wndMgr.GetScreenHeight()-36-self.GetHeight() x1 = max(min(wndMgr.GetScreenWidth()-520,x1),0) y1 = max(min(wndMgr.GetScreenHeight()-36-self.GetHeight(),y1),0) self.SetPosition(x1,y1) if x1 < 30: self.ShowPinHint(1) elif wndMgr.GetScreenWidth()-x1-520 < 30: self.ShowPinHint(2) elif y1 < 30: self.ShowPinHint(3) elif wndMgr.GetScreenHeight()-y1-self.GetHeight() < 60: self.ShowPinHint(4) else: self.ShowPinHint(0) # self.SetPosition(x1+(x-self.drag_pos[0]),y1) pass if self.gameWindow != None: for a in self.itemTabBar.tabList: itm = self.itemTabBar.tabList[a] self.counter+=1 if self.counter >= int(self.but_speed.GetSliderPos()*MAX_SWITCH_DELAY_APPEND+MIN_SWITCH_DELAY): self.buyed = 0 self.buyed_rare = 0 self.counter = 0 for a in self.itemTabBar.tabList: itm = self.itemTabBar.tabList[a] itm.UpdateItem() # if itm. def about(self): self.AboutWindow = ui.ThinBoard() self.AboutWindow.SetParent(self) self.AboutWindow.SetSize(250,100) self.AboutWindow.SetWindowHorizontalAlignCenter() self.AboutWindow.SetWindowVerticalAlignCenter() self.AboutWindow.SetPosition(0,0) self.AboutWindow.Show() self.AboutWindow.x_counter = 450 self.AboutWindow.text1 = ui.TextLine() self.AboutWindow.text1.SetParent(self.AboutWindow) self.AboutWindow.text1.SetWindowHorizontalAlignCenter() self.AboutWindow.text1.SetHorizontalAlignCenter() self.AboutWindow.text1.SetPosition(0,5) self.AboutWindow.text1.SetText("Switchbot V2.2 by Metin2") self.AboutWindow.text1.SetPackedFontColor(ui.GenerateColor(58, 141, 221)) self.AboutWindow.text1.Show() self.AboutWindow.text2 = ui.TextLine() self.AboutWindow.text2.SetParent(self.AboutWindow) self.AboutWindow.text2.SetPosition(8,18) self.AboutWindow.text2.SetText("Esse Switchbot foi desenvolvido por Metin2.") self.AboutWindow.text2.Show() self.AboutWindow.text3 = ui.TextLine() self.AboutWindow.text3.SetParent(self.AboutWindow) self.AboutWindow.text3.SetPosition(8,18+13) self.AboutWindow.text3.SetText("Novas idéias são sempre bem-vindas!") self.AboutWindow.text3.Show() self.AboutWindow.text4 = ui.TextLine() self.AboutWindow.text4.SetParent(self.AboutWindow) self.AboutWindow.text4.SetPosition(8,18+13*3) self.AboutWindow.text4.SetText("Peço que você não use esse bot sem o minha") self.AboutWindow.text4.Show() self.AboutWindow.text5 = ui.TextLine() self.AboutWindow.text5.SetParent(self.AboutWindow) self.AboutWindow.text5.SetPosition(8,18+13*4) self.AboutWindow.text5.SetText("Aprovação.") self.AboutWindow.text5.Show() self.AboutWindow.text6 = ui.TextLine() self.AboutWindow.text6.SetParent(self.AboutWindow) self.AboutWindow.text6.SetPosition(200,18+13*5) self.AboutWindow.text6.SetText("Tempo: %d" % self.AboutWindow.x_counter) self.AboutWindow.text6.Show() class HelpBar(ui.Window): def __init__(self,width,text,centered = 0): ui.Window.__init__(self) self.AddFlag("not_pick") self.AddFlag("attach") img = ui.ExpandedImageBox() img.SetParent(self) img.LoadImage("d:/ymir work/ui/pattern/help_stick.tga") img.SetRenderingRect(0.0, -width, 0.0, 0.0) img.Show() self.img = img txt = ui.TextLine() txt=ui.TextLine() txt.SetParent(self) txt.SetText(text) txt.Show() img.SetPosition(0,18-width*img.GetHeight()) txt.SetPosition(0,0) txt.SetWindowHorizontalAlignCenter() if centered != 0: txt.SetHorizontalAlignCenter() # txt.SetPosition(0,0) self.txt = txt class DropDown(ui.Window): dropped = 0 dropstat = 0 last = 0 lastS = 0 maxh = 95 OnChange = None class Item(ui.ListBoxEx.Item): def __init__(self,parent, text,value=0): ui.ListBoxEx.Item.__init__(self) self.textBox=ui.TextLine() self.textBox.SetParent(self) self.textBox.SetText(text) # self.textBox.SetLimitWidth(parent.GetWidth()-132) self.textBox.Show() self.value = value def GetValue(self): return self.value def __del__(self): ui.ListBoxEx.Item.__del__(self) def __init__(self,parent,tt = "",down=1): ui.Window.__init__(self,"TOP_MOST") self.down = down self.SetParentProxy(parent) self.bg = ui.Bar("TOP_MOST") self.bg.SetParent(self) self.bg.SetPosition(0,0) self.bg.SetColor(0xc0000000) self.bg.OnMouseOverIn = self.bgMouseIn self.bg.OnMouseOverOut = self.bgMouseOut self.bg.OnMouseLeftButtonDown = self.ExpandMe self.bg.Show() self.act = ui.TextLine() self.act.SetParent(self.bg) self.act.SetPosition(4,2) self.act.SetText(tt) self.act.Show() self.GetText = self.act.GetText self.Drop = ui.Bar("TOP_MOST") self.Drop.SetParent(self.GetParentProxy()) self.Drop.SetPosition(0,21) # self.Drop.SetSize(150,95) self.Drop.SetSize(150,0) # self.Drop.SetColor(0xc00a0a0a) self.Drop.SetColor(0xff0a0a0a) self.ScrollBar = ui.ThinScrollBar() self.ScrollBar.SetParent(self.Drop) self.ScrollBar.SetPosition(132,0) # self.ScrollBar.SetScrollBarSize(95) self.ScrollBar.SetScrollBarSize(0) # self.ScrollBar.Show() self.DropList = ui.ListBoxEx() self.DropList.SetParent(self.Drop) self.DropList.itemHeight = 12 self.DropList.itemStep = 13 self.DropList.SetPosition(0,0) # self.DropList.SetSize(132,self.maxh) self.DropList.SetSize(132,13) self.DropList.SetScrollBar(self.ScrollBar) self.DropList.SetSelectEvent(self.SetTitle) self.DropList.SetViewItemCount(0) self.DropList.Show() if tt != "": self.AppendItemAndSelect(tt) self.selected = self.DropList.GetSelectedItem() self.SetSize(120,20) def __del__(self): ui.Window.__del__(self) c = 1 def AppendItem(self,text,value=0): self.c+=1 self.DropList.AppendItem(self.Item(self,text,value)) self.maxh = min(95,13*self.c) if self.c > 7: self.ScrollBar.Show() def AppendItemAndSelect(self,text,value=0): self.DropList.AppendItem(self.Item(self,text,value)) self.DropList.SelectIndex(len(self.DropList.itemList)-1) def SelectByAffectId(self,id): for x in self.DropList.itemList: if x.value == id: self.DropList.SelectItem(x) break def SetTitle(self,item): self.act.SetText(str(item.textBox.GetText())) self.last = self.DropList.basePos self.lastS = self.ScrollBar.GetPos() self.dropped = 0 self.selected = item if self.OnChange: self.OnChange() # self.Drop.Hide() def SetPosition(self,w,h): ui.Window.SetPosition(self,w,h) if self.down == 1: self.Drop.SetPosition(w,h+21) else: self.Drop.SetPosition(w,h-self.Drop.GetHeight()) def SetSize(self,w,h): ui.Window.SetSize(self,w,h) self.bg.SetSize(w,h) self.Drop.SetSize(w,0) self.DropList.SetSize(w-18,self.maxh) for x in self.DropList.itemList: x.SetSize(w-18,12) self.ScrollBar.SetPosition(w-18,0) def ExpandMe(self): if self.dropped == 1: # self.Drop.Hide() self.dropped = 0 else: # self.Drop.Show() self.dropped = 1 def OnUpdate(self): iter = 6 if self.Drop.GetHeight() < 50: self.ScrollBar.Hide() else: self.ScrollBar.Show() if self.dropped == 0 and self.dropstat == 1: if self.Drop.GetHeight() <=0: self.dropstat = 0 self.Drop.SetSize(self.Drop.GetWidth(),0) self.ScrollBar.SetScrollBarSize(self.Drop.GetHeight()) self.Drop.Hide() else: if self.Drop.GetHeight()-iter < 0: self.Drop.SetSize(self.Drop.GetWidth(),0) else: self.Drop.SetSize(self.Drop.GetWidth(),self.Drop.GetHeight()-iter) (w,h) = self.GetLocalPosition() self.SetPosition(w,h) self.ScrollBar.SetScrollBarSize(self.Drop.GetHeight()) self.DropList.SetViewItemCount(int(self.Drop.GetHeight()/13)) self.DropList.SetBasePos(self.last+1) self.DropList.SetBasePos(self.last) elif self.dropped == 1 and self.dropstat == 0: self.Drop.Show() self.SetTop() if self.Drop.GetHeight() >=self.maxh: self.Drop.SetSize(self.Drop.GetWidth(),self.maxh) self.ScrollBar.SetScrollBarSize(self.maxh) self.dropstat = 1 self.DropList.SetViewItemCount(7) self.ScrollBar.SetPos(self.lastS) else: self.ScrollBar.SetScrollBarSize(self.Drop.GetHeight()+iter) self.Drop.SetSize(self.Drop.GetWidth(),self.Drop.GetHeight()+iter) (w,h) = self.GetLocalPosition() self.SetPosition(w,h) self.DropList.SetViewItemCount(int(self.Drop.GetHeight()/13)) self.DropList.SetBasePos(self.last+1) self.DropList.SetBasePos(self.last) ## BG Hover def bgMouseIn(self): self.bg.SetColor(0xc00a0a0a) def bgMouseOut(self): self.bg.SetColor(0xc0000000) class Edit2(ui.EditLine): def __init__(self,main = "",ml = 99): ui.EditLine.__init__(self) self.SetText(main) self.main = main self.SetMax(ml) self.SetUserMax(ml) def GetText(self): res = ui.EditLine.GetText(self) if res == "": return "0" else: return res def __del__(self): ui.EditLine.__del__(self) def OnSetFocus(self): ui.EditLine.OnSetFocus(self) if ui.EditLine.GetText(self) == self.main: self.SetText("") def OnKillFocus(self): ui.EditLine.OnKillFocus(self) if ui.EditLine.GetText(self) == "": self.SetText(self.main) class CheckBox(ui.Window): checked = 0 eventUp =None eventDown=None def __init__(self,cont = ""): ui.Window.__init__(self) self.BG = ui.Bar("UI") self.BG.SetParent(self) self.BG.SetPosition(0,0) self.BG.SetSize(20,20) # self.BG.SetColor(0xc00b0b0b) self.BG.SetColor(COLOR_CHECKBOX_NOT_SELECTED) self.BG.OnMouseLeftButtonUp = self.Toggle self.OnMouseLeftButtonUp = self.Toggle self.BG.Show() self.Title = ui.TextLine() self.Title.SetParent(self) self.Title.SetPosition(25,2) self.Title.SetText(cont) self.Title.Show() self.stat = ui.TextLine() self.stat.SetParent(self.BG) self.stat.SetPosition(0,0) self.stat.SetWindowHorizontalAlignCenter() self.stat.SetWindowVerticalAlignCenter() self.stat.SetHorizontalAlignCenter() self.stat.SetVerticalAlignCenter() self.stat.SetSize(0,0) self.stat.SetText("") self.SetSize(25+self.Title.GetTextSize()[0]+5,20) self.stat.Show() def __del__(self): ui.ToggleButton.__del__(self) def Toggle(self): if self.checked == 1: self.OnToggleUp() else: self.OnToggleDown() def OnToggleUp(self): self.stat.SetText("") # self.BG.SetColor(0xc00b0b0b) self.BG.SetColor(COLOR_CHECKBOX_NOT_SELECTED) self.checked = 0 if self.eventUp: self.eventUp() def OnToggleDown(self): # self.BG.SetColor(0xf00b0b0b) self.BG.SetColor(COLOR_CHECKBOX_SELECTED) self.stat.SetText("X") self.checked = 1 if self.eventDown: self.eventDown() # Zum Testen # a = Bot() # a.Show() # oder; # Bot().Show()
    1 point
  4. I had this armor on my PC which may be useful for metin2 community. Download:https://mega.nz/#!IlAVRbQa!D2bnFL0D1SQj6qYMZvJDLI0oHx9wshIlk6El6qMEm5s
    1 point
  5. TUDO PACK + CLIENT SOURCE UPDATE 1 aberto cmd_gm.cpp procurando ACMD(do_item_purge) substituir por ACMD(do_item_purge) { #ifdef NEW_PET_SYSTEM #include "New_PetSystem.h" if (ch->GetNewPetSystem()->IsActivePet()) { ch->ChatPacket(CHAT_TYPE_INFO, "A fost hranit petu. "); return ; } #endif int i; LPITEM item; for (i = 0; i < INVENTORY_AND_EQUIP_SLOT_MAX; ++i) { if ((item = ch->GetInventoryItem(i))) { ITEM_MANAGER::instance().RemoveItem(item, "PURGE"); ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 255); } } for (i = 0; i < DRAGON_SOUL_INVENTORY_MAX_NUM; ++i) { if ((item = ch->GetItem(TItemPos(DRAGON_SOUL_INVENTORY, i )))) { ITEM_MANAGER::instance().RemoveItem(item, "PURGE"); } } } E para aqueles que tê-lo substituído com 200 slot de Iar pentru cei ce au 200 slot inlocuiti cu acesta ACMD(do_item_purge) { #ifdef NEW_PET_SYSTEM #include "New_PetSystem.h" if (ch->GetNewPetSystem()->IsActivePet()) { ch->ChatPacket(CHAT_TYPE_INFO, "A fost hranit petu. "); return ; } #endif int i; LPITEM item; for (i = 0; i < INVENTORY_AND_EQUIP_SLOT_MAX; ++i) { if ((item = ch->GetInventoryItem(i))) { ITEM_MANAGER::instance().RemoveItem(item, "PURGE"); ch->SyncQuickslot(QUICKSLOT_TYPE_ITEM, i, 200); } } for (i = 0; i < DRAGON_SOUL_INVENTORY_MAX_NUM; ++i) { if ((item = ch->GetItem(TItemPos(DRAGON_SOUL_INVENTORY, i )))) { ITEM_MANAGER::instance().RemoveItem(item, "PURGE"); } } } Item desc RO https://mega.nz/#!AxMnQKQA!7LzC7VSsi7-lm8QHjg7gf6olxWmqy-8Wlnb1Xh8stws http://image.prntscr.com/image/3106b850cbf44d479d59e310565fabfd.png image.prntscr.com/image/3106b850cbf44d479d59e310565fabfd.png Download: https://mega.nz/#!tBdwBbBB!3LX-juzR66_OHrzscNHCUaI3HL0_gaemNQPpnwLTugQ https://www.virustotal.com/pt/url/1b3201fd425785abeb5dc0a917e9f3c2a950dbf71d1db27a10d964831e573c8b/analysis/1486595798/ http://s33.postimg.org/smms5uey7/Pet_UI.png Fonte:FG Quem Posto: VoLtZzZ Topico: Luffy Desculpe a tradução foi feita pelo google tradutor Espero ter ajudado
    1 point
  6. Boas pessoal, Eu não testei estas Files... Supostamente estão a vender por X Euros mas fica aqui de graça. Source ( Unbugged full, only 3 warning in all source , and stable 100%, no crash or other error ) Game ( Offline shop with won system added , Won System , Bind system, Costume absorbtion created from my friend like official dosen't exist on internet, Pet system like official with skills, sash with scale, costume weapons, costume mount, okey card system, more dungeons like official and other ) Client ( Client is standard with all system 's added like official, 4 inventory, new weapons and armors, new accesories, day / night and more system 's )
    1 point
  7. I think it will be useful to someone Link: http://www.mediafire.com/file/5o471vah86lavd7/3X+Full+Set.rar Scan: https://www.virustotal.com/#/file/f8be842036c2421c131e5dfce23eff9fb4937cef5cd672d7515dbaae3edfe2f7/detection Will anyone help me with this topic? https://tlthings.net/topic/1451-can-anyone-help-me-decipher-this-customer/?tab=comments#comment-6260
    1 point
  8. Abrir o ficheiro questlua_pc.cpp Procurar por: int pc_is_dead(lua_State* L){ LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if ( ch != NULL ){ lua_pushboolean(L, ch->IsDead()); return 1;} lua_pushboolean(L, true); return 1;} Adicionar isto debaixo: int pc_tirar_arma_armadura(lua_State * L){ LPITEM weapon = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_WEAPON); LPITEM armor = CQuestManager::instance().GetCurrentCharacterPtr()->GetWear(WEAR_BODY); LPCHARACTER ch = CQuestManager::instance().GetCurrentCharacterPtr(); if (!weapon) lua_pushnumber(L, 0); else ch->UnequipItem(weapon); if (!armor) lua_pushnumber(L, 0); else ch->UnequipItem(armor); return 1;} Ficando assim: Procurar por: { "is_dead", pc_is_dead }, Adicionar isto debaixo: { "tirar_arma_armadura", pc_tirar_arma_armadura }, Ficando assim: Adicionar o seguinte no final do ficheiro quest_function (pasta quest das files): pc.tirar_arma_armadura Como utilizar em quest? Para desequipar a arma e armadura de uma personagem, adicionar o seguinte código na quest: pc.tirar_arma_armadura()
    1 point
  9. Version 1.0.0

    40 downloads

    Uma pequena informação quando cada jogador alcança determinado nível sem uso de quest.
    1 point
  10. 1 point
  11. Binario em: void CInstanceBase::__AttachEmpireEffect (DWORD eEmpire) __EffectContainer_AttachEffect (EFFECT_EMPIRE + eEmpire); Ai adiciona o empire (deverás ter o efeito EFFECT_EMPIRE no teu cliente). Depois terás de adicionar um if antes a verificar se é ou não um npc Ou então onde está: __AttachEmpireEffect (c_rkCreateData.m_dwEmpireID); Adicionas um if, usando a primeira função que referi como exemplo e crias apenas para os npc: Algo como (em pseudo codigo): If IsNPC(){ __AttachNpcEffect() } else { __AttachEmpireEffect (c_rkCreateData.m_dwEmpireID); } No cliente tens isto a carregar os efeitos: chrmgr.RegisterEffect(chrmgr.EFFECT_EMPIRE+1, "Bip01", "d:/ymir work/effect/etc/empire/empire_A.mse") chrmgr.RegisterEffect(chrmgr.EFFECT_EMPIRE+2, "Bip01", "d:/ymir work/effect/etc/empire/empire_B.mse") chrmgr.RegisterEffect(chrmgr.EFFECT_EMPIRE+3, "Bip01", "d:/ymir work/effect/etc/empire/empire_C.mse") A maneira mais simples a meu ver, seria criar isto assim: chrmgr.RegisterEffect(chrmgr.EFFECT_EMPIRE+4, "Bip01", "d:/ymir work/effect/etc/empire/npc.mse") E depois na source onde diz: __AttachEmpireEffect (c_rkCreateData.m_dwEmpireID); Fazer uma verificação. Se fosse um NPC, fazia: __AttachEmpireEffect (4); Caso contrário fazia: __AttachEmpireEffect (c_rkCreateData.m_dwEmpireID); Na prática estarias a criar um efeito para um novo 4º reino inexistente, e atribuindo esse efeito a cada npc.
    1 point
  12. Acho que é isto que estás a procura: Ro - Mount System Premium.rar
    1 point
  13. Mount it in VirtualBox but it does not work to connect WinSCP
    1 point
  14. Install freebsd 11.1: Run the following command: pkg install -y gmake python makedepend cryptopp mysql55-server mysql55-client googletest devil jpeg boost-all That should cover all the existing sources dependencies. Note: Like in the video, use VMWARE, not VirtualBox or Hyper-V. Edit: Or if you want a ready-made solution: https://we.tl/RDRlVj8Ht1
    1 point
  15. Boas, caso você esteja a tentar por brilho em armadura comum onde não possui nível (0+name~name+9) é necessário configurar na source bin. Exemplo: InstanceBase.cpp: if (pItem->GetSubType() == CItemData::ARMOR_BODY) { DWORD vnum = pItem->GetIndex(); if (12010 <= vnum && vnum <= 12049) { __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL); __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2); }// new effectif (99000 <= vnum && vnum <= 99199) { __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL3); __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL4); } } InstanceBase.h EFFECT_BODYARMOR_SPECIAL, // °©¿Ê 4-2-1EFFECT_BODYARMOR_SPECIAL2, // °©¿Ê 4-2-2// new effectEFFECT_BODYARMOR_SPECIAL3, EFFECT_BODYARMOR_SPECIAL4, playersettingmodule.py chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+19, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-1.mse")chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-4-2-2.mse")## new effectchrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-red.mse")chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+22, "Bip01", "D:/ymir work/pc/common/effect/armor/armor-black.mse")
    1 point
  16. https://drive.google.com/drive/folders/0BwI-ze23YyIIb1g2RDJoX2lQZlk espero ter ajudado ! fonte: www.freakgamers.org
    1 point
  17. Abrir InstanceBase.cpp e procurar: case CItemData::ITEM_TYPE_ARMOR: __ClearArmorRefineEffect(); // °©¿Ê Ưȭ ÀÌÆåÆ® if (pItem->GetSubType() == CItemData::ARMOR_BODY) { DWORD vnum = pItem->GetIndex(); if (12010 <= vnum && vnum <= 12049) { __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL); __AttachEffect(EFFECT_REFINED+EFFECT_BODYARMOR_SPECIAL2); } } if (refine < 7) //ÇöÀç Á¦·Ãµµ 7 ÀÌ»ó¸¸ ÀÌÆåÆ®°¡ ÀÖ½À´Ï´Ù. return 0; if (pItem->GetSubType() == CItemData::ARMOR_BODY) { m_armorRefineEffect = EFFECT_REFINED+EFFECT_BODYARMOR_REFINED7+refine-7; __AttachEffect(m_armorRefineEffect); } break; } return 0; } Substituir com: case CItemData::ITEM_TYPE_ARMOR: __ClearArmorRefineEffect(); // °©¿Ê Ưȭ ÀÌÆåÆ® if (pItem->GetSubType() == CItemData::ARMOR_BODY) { DWORD vnum = pItem->GetIndex(); // color armors [blue shining] - DEFAULT if (vnum >= 12010 && vnum <= 12019 || //Armadura 1 vnum >= 12020 && vnum <= 12029 || //Armadura 2 vnum >= 12030 && vnum <= 12039 || //Armadura 3 vnum >= 12040 && vnum <= 12049) //Armadura 4 { __AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL); //effect 19 bubble __AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_SPECIAL2); //effect 20 blue shining } //Novas Armaduras & Novos Efeitos if (vnum == Item-ID? || vnum == Item-ID? || vnum == Item-ID? || vnum == Item-ID? || vnum == Item-ID? || vnum == Item-ID? || vnum == Item-ID? || vnum == Item-ID?) { __AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_NEW_SPECIAL1); //effect 19 NEW EFFECT __AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_NEW_SPECIAL2); //effect 21 NEW EFFECT __AttachEffect(EFFECT_REFINED + EFFECT_BODYARMOR_REFINED9); //effect 18 sparkle 9 effect } //End Armaduras & Novos Efeitos } if (refine < 7) //ÇöÀç Á¦·Ãµµ 7 ÀÌ»ó¸¸ ÀÌÆåÆ®°¡ ÀÖ½À´Ï´Ù. return 0; if (pItem->GetSubType() == CItemData::ARMOR_BODY) { m_armorRefineEffect = EFFECT_REFINED+EFFECT_BODYARMOR_REFINED7+refine-7; __AttachEffect(m_armorRefineEffect); } break; } return 0; } Abrir InstanceBase.h e procurar: EFFECT_BODYARMOR_SPECIAL, EFFECT_BODYARMOR_SPECIAL2, Adicionar novas linhas com o nome dos novos efeitos Exemplo: Example: EFFECT_BODYARMOR_SPECIAL = 19 EFFECT_BODYARMOR_SPECIAL2 = 20 EFFECT_BODYARMOR_NEW1 = 21 EFFECT_BODYARMOR_NEW2 = 22 Descompatcar os root, abrir playersettingmodule.py e adicionar os novos efeitos chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+19, "Bip01", "D:/ymir work/pc/common/effect/sadness_work/armor_sadness1.mse") chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+20, "Bip01", "D:/ymir work/pc/common/effect/sadness_work/armor_sadness2.mse") chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+21, "Bip01", "D:/ymir work/pc/common/effect/sadness_work/armor_sadness3.mse") chrmgr.RegisterEffect(chrmgr.EFFECT_REFINED+22, "Bip01", "D:/ymir work/pc/common/effect/sadness_work/armor_sadness4.mse") Compactar os root e compilar o binário. Cumprimentos, Sadness
    1 point
×
×
  • Create New...