Ir para conteúdo
  • 0

Ajuda spelllist


Nocktal

Pergunta

Eae eu preciso de uma ajuda eu to com server do Robin Wood (sei la o nome)

Ae eu tive a ideia de usa otclient e achei uma coisa interessante nele uma spell list

sendo que ela n aparece fiquei editando mas começo a da erro quando

modifiquei pra tais vocações e queria uma ajuda nela quem pude XD

a versao do ot e 0.6.1

e queria que ela aparece-se

la encima como os otros

 

~~Spelllist~~

 

vai ser em code oks

spelllist.lua


local SpelllistProfile = 'Default'

spelllistWindow       = nil
spelllistButton       = nil
spellList             = nil
nameValueLabel        = nil
formulaValueLabel     = nil
vocationValueLabel    = nil
groupValueLabel       = nil
typeValueLabel        = nil
cooldownValueLabel    = nil
levelValueLabel       = nil
manaValueLabel        = nil
premiumValueLabel     = nil
descriptionValueLabel = nil

vocationBoxAny        = nil
vocationBoxNaruto   = nil
vocationBoxSasuke      = nil
vocationBoxLee    = nil
vocationBoxSakura     = nil
vocationBoxGaara     = nil
vocationBoxNeji     = nil
vocationBoxKiba     = nil
vocationBoxShikamaru     = nil
vocationBoxHinata     = nil
vocationBoxTenten     = nil
vocationBoxItachi     = nil
vocationBoxBee     = nil
vocationBoxKakashi     = nil

groupBoxAny           = nil
groupBoxAttack        = nil
groupBoxHealing       = nil
groupBoxSupport       = nil

premiumBoxAny         = nil
premiumBoxNo          = nil
premiumBoxYes         = nil

vocationRadioGroup    = nil
groupRadioGroup       = nil
premiumRadioGroup     = nil

-- consts
FILTER_PREMIUM_ANY        = 0
FILTER_PREMIUM_NO         = 1
FILTER_PREMIUM_YES        = 2

FILTER_VOCATION_ANY       = 0
FILTER_VOCATION_NARUTO  = 1
FILTER_VOCATION_SASUKE     = 2
FILTER_VOCATION_LEE   = 3
FILTER_VOCATION_SAKURA    = 4
FILTER_VOCATION_GAARA    = 5
FILTER_VOCATION_NEJI    = 6
FILTER_VOCATION_KIBA    = 7
FILTER_VOCATION_SHIKAMARU    = 8
FILTER_VOCATION_HINATA    = 9
FILTER_VOCATION_TENTEN    = 10
FILTER_VOCATION_ITACHI    = 11
FILTER_VOCATION_BEE    = 12
FILTER_VOCATION_KAKASHI    = 13

FILTER_GROUP_ANY          = 0
FILTER_GROUP_ATTACK       = 1
FILTER_GROUP_HEALING      = 2
FILTER_GROUP_SUPPORT      = 3

-- Filter Settings
local filters = {
 level        = false,
 vocation     = false,

 vocationId   = FILTER_VOCATION_ANY,  
 premium      = FILTER_PREMIUM_ANY,
 groupId      = FILTER_GROUP_ANY
}

function getSpelllistProfile()
 return SpelllistProfile
end

function setSpelllistProfile(name)
 if SpelllistProfile == name then return end

 if SpelllistSettings[name] and SpellInfo[name] then
   local oldProfile = SpelllistProfile
   SpelllistProfile = name
   changeSpelllistProfile(oldProfile)
 else
   perror('Spelllist profile \'' .. name .. '\' could not be set.')
 end
end

function online()
 if g_game.getFeature(GameSpellList) then
   spelllistButton:show()
 else
   spelllistButton:hide()
 end
 if g_game.getProtocolVersion() >= 950 then -- Vocation is only send in newer clients
   spelllistWindow:getChildById('buttonFilterVocation'):setVisible(true)
 else
   spelllistWindow:getChildById('buttonFilterVocation'):setVisible(false)
 end
end

function offline()
 resetWindow()
end

function init()
 connect(g_game, { onGameStart = online,
                   onGameEnd   = offline })

 spelllistWindow = g_ui.displayUI('spelllist', modules.game_interface.getRightPanel())
 spelllistWindow:hide()

 spelllistButton = modules.client_topmenu.addRightGameToggleButton('spelllistButton', tr('Spell List'), '/images/topbuttons/spelllist', toggle)
 spelllistButton:setOn(true)

 nameValueLabel        = spelllistWindow:getChildById('labelNameValue')
 formulaValueLabel     = spelllistWindow:getChildById('labelFormulaValue')
 vocationValueLabel    = spelllistWindow:getChildById('labelVocationValue')
 groupValueLabel       = spelllistWindow:getChildById('labelGroupValue')
 typeValueLabel        = spelllistWindow:getChildById('labelTypeValue')
 cooldownValueLabel    = spelllistWindow:getChildById('labelCooldownValue')
 levelValueLabel       = spelllistWindow:getChildById('labelLevelValue')
 manaValueLabel        = spelllistWindow:getChildById('labelManaValue')
 premiumValueLabel     = spelllistWindow:getChildById('labelPremiumValue')
 descriptionValueLabel = spelllistWindow:getChildById('labelDescriptionValue')

 vocationBoxAny        = spelllistWindow:getChildById('vocationBoxAny')
 vocationBoxNaruto   = spelllistWindow:getChildById('vocationBoxNaruto')
 vocationBoxSasuke      = spelllistWindow:getChildById('vocationBoxSasuke')
 vocationBoxLee    = spelllistWindow:getChildById('vocationBoxLee')
 vocationBoxSakura     = spelllistWindow:getChildById('vocationBoxSakura')
 vocationBoxGaara     = spelllistWindow:getChildById('vocationBoxGaara')
 vocationBoxNeji     = spelllistWindow:getChildById('vocationBoxNeji')
 vocationBoxKiba     = spelllistWindow:getChildById('vocationBoxKiba')
 vocationBoxShikamaru     = spelllistWindow:getChildById('vocationBoxShikamaru')
 vocationBoxHinata     = spelllistWindow:getChildById('vocationBoxHinata')
 vocationBoxTenten     = spelllistWindow:getChildById('vocationBoxTenten')
 vocationBoxItachi     = spelllistWindow:getChildById('vocationBoxItachi')
 vocationBoxBee     = spelllistWindow:getChildById('vocationBoxBee')
 vocationBoxKakashi     = spelllistWindow:getChildById('vocationBoxKakashi')

 groupBoxAny           = spelllistWindow:getChildById('groupBoxAny')
 groupBoxAttack        = spelllistWindow:getChildById('groupBoxAttack')
 groupBoxHealing       = spelllistWindow:getChildById('groupBoxHealing')
 groupBoxSupport       = spelllistWindow:getChildById('groupBoxSupport')

 premiumBoxAny         = spelllistWindow:getChildById('premiumBoxAny')
 premiumBoxYes         = spelllistWindow:getChildById('premiumBoxYes')
 premiumBoxNo          = spelllistWindow:getChildById('premiumBoxNo')

 vocationRadioGroup = UIRadioGroup.create()
 vocationRadioGroup:addWidget(vocationBoxAny)
 vocationRadioGroup:addWidget(vocationBoxNaruto)
 vocationRadioGroup:addWidget(vocationBoxSasuke)
 vocationRadioGroup:addWidget(vocationBoxLee)
 vocationRadioGroup:addWidget(vocationBoxSakura)
 vocationRadioGroup:addWidget(vocationBoxGaara)
 vocationRadioGroup:addWidget(vocationBoxNeji)
 vocationRadioGroup:addWidget(vocationBoxKiba)
 vocationRadioGroup:addWidget(vocationBoxShikamaru)
 vocationRadioGroup:addWidget(vocationBoxHinata)
 vocationRadioGroup:addWidget(vocationBoxTenten)
 vocationRadioGroup:addWidget(vocationBoxItachi)
 vocationRadioGroup:addWidget(vocationBoxBee)
 vocationRadioGroup:addWidget(vocationBoxKakashi)

 groupRadioGroup = UIRadioGroup.create()
 groupRadioGroup:addWidget(groupBoxAny)
 groupRadioGroup:addWidget(groupBoxAttack)
 groupRadioGroup:addWidget(groupBoxHealing)
 groupRadioGroup:addWidget(groupBoxSupport)

 premiumRadioGroup = UIRadioGroup.create()
 premiumRadioGroup:addWidget(premiumBoxAny)
 premiumRadioGroup:addWidget(premiumBoxYes)
 premiumRadioGroup:addWidget(premiumBoxNo)

 premiumRadioGroup:selectWidget(premiumBoxAny)
 vocationRadioGroup:selectWidget(vocationBoxAny)
 groupRadioGroup:selectWidget(groupBoxAny)

 vocationRadioGroup.onSelectionChange  = toggleFilter
 groupRadioGroup.onSelectionChange     = toggleFilter
 premiumRadioGroup.onSelectionChange   = toggleFilter

 spellList = spelllistWindow:getChildById('spellList')   

 g_keyboard.bindKeyPress('Down', function() spellList:focusNextChild(KeyboardFocusReason) end, spelllistWindow)
 g_keyboard.bindKeyPress('Up', function() spellList:focusPreviousChild(KeyboardFocusReason) end, spelllistWindow)

 initialiseSpelllist() 
 resizeWindow()
end

function terminate()
 disconnect(g_game, { onGameStart = online,
                      onGameEnd   = offline })

 disconnect(spellList, { onChildFocusChange = function(self, focusedChild)
                         if focusedChild == nil then return end
                         updateSpellInformation(focusedChild)
                       end })   

 spelllistWindow:destroy()
 spelllistButton:destroy()

 vocationRadioGroup:destroy()
 groupRadioGroup:destroy()
 premiumRadioGroup:destroy()
end

function initialiseSpelllist()
 for i = 1, #SpelllistSettings[spelllistProfile].spellOrder do
   local spell = SpelllistSettings[spelllistProfile].spellOrder[i]
   local info = SpellInfo[spelllistProfile][spell]

   local tmpLabel = g_ui.createWidget('SpellListLabel', spellList)
   tmpLabel:setId(spell)
   tmpLabel:setText(spell .. '\n\'' .. info.words .. '\'')
   tmpLabel:setPhantom(false)

   local iconId = tonumber(info.icon)
   if not iconId and SpellIcons[info.icon] then
     iconId = SpellIcons[info.icon][1]
   end

   if not(iconId) then
     perror('Spell icon \'' .. info.icon .. '\' not found.') 
   end

   tmpLabel:setHeight(SpelllistSettings[spelllistProfile].iconSize.height + 4)
   tmpLabel:setTextOffset(topoint((SpelllistSettings[spelllistProfile].iconSize.width + 10) .. ' ' .. (SpelllistSettings[spelllistProfile].iconSize.height - 32)/2 + 3))
   tmpLabel:setImageSource('/images/game/spells/' .. SpelllistSettings[spelllistProfile].iconFile)
   tmpLabel:setImageClip(Spells.getImageClip(iconId, SpelllistProfile))
   tmpLabel:setImageSize(tosize(SpelllistSettings[spelllistProfile].iconSize.width .. ' ' .. SpelllistSettings[spelllistProfile].iconSize.height))
   tmpLabel.onClick = updateSpellInformation
 end

 connect(spellList, { onChildFocusChange = function(self, focusedChild)
                         if focusedChild == nil then return end
                         updateSpellInformation(focusedChild)
                       end })   
end

function changeSpelllistProfile(oldProfile)
 -- Delete old labels
 for i = 1, #SpelllistSettings[oldProfile].spellOrder do
   local spell = SpelllistSettings[oldProfile].spellOrder[i]
   local tmpLabel = spellList:getChildById(spell)

   tmpLabel:destroy()
 end

 -- Create new spelllist and ajust window
 initialiseSpelllist()
 setOptions()
 resizeWindow()
 resetWindow()
end

function updateSpelllist()
 for i = 1, #SpelllistSettings[spelllistProfile].spellOrder do
   local spell = SpelllistSettings[spelllistProfile].spellOrder[i]
   local info = SpellInfo[spelllistProfile][spell]
   local tmpLabel = spellList:getChildById(spell)

   local localPlayer = g_game.getLocalPlayer()
   if (not(filters.level) or info.level <= localPlayer:getLevel()) and (not(filters.vocation) or table.find(info.vocations, localPlayer:getVocation())) and (filters.vocationId == FILTER_VOCATION_ANY or table.find(info.vocations, filters.vocationId) or table.find(info.vocations, filters.vocationId+4)) and (filters.groupId == FILTER_GROUP_ANY or info.group[filters.groupId]) and (filters.premium == FILTER_PREMIUM_ANY or (info.premium and filters.premium == FILTER_PREMIUM_YES) or (not(info.premium) and filters.premium == FILTER_PREMIUM_NO)) then
     tmpLabel:setVisible(true)
   else
     tmpLabel:setVisible(false)
   end
 end
end

function updateSpellInformation(widget)
 local spell = widget:getId()

 local name        = ''
 local formula     = ''
 local vocation    = ''
 local group       = ''
 local type        = ''
 local cooldown    = ''
 local level       = ''
 local mana        = ''
 local premium     = ''
 local description = ''

 if SpellInfo[spelllistProfile][spell] then
   local info = SpellInfo[spelllistProfile][spell]

   name    = spell
   formula = info.words

   for i = 1, #info.vocations do
     local vocationId = info.vocations[i]
     if vocationId <= 13 or not(table.find(info.vocations, (vocationId-13))) then
       vocation = vocation .. (vocation:len() == 0 and '' or ', ') .. VocationNames[vocationId]
     end
   end

   cooldown = (info.exhaustion / 1000) .. 's'
   for groupId, groupName in ipairs(SpellGroups) do
     if info.group[groupId] then
       group    = group .. (group:len() == 0 and '' or ' / ') .. groupName
       cooldown = cooldown .. ' / ' .. (info.group[groupId] / 1000) .. 's'
     end
   end

   type    = info.type
   level   = info.level
   mana    = info.mana .. ' / ' .. info.soul
   premium = (info.premium and 'yes' or 'no')
   description = info.description or '-'
 end

 nameValueLabel:setText(name)
 formulaValueLabel:setText(formula)
 vocationValueLabel:setText(vocation)
 groupValueLabel:setText(group)
 typeValueLabel:setText(type)
 cooldownValueLabel:setText(cooldown)
 levelValueLabel:setText(level)
 manaValueLabel:setText(Mana)
 premiumValueLabel:setText(premium)
 descriptionValueLabel:setText(description)
end

function toggle()
 if spelllistButton:isOn() then
   spelllistWindow:hide()
   spelllistButton:setOn(false)
 else
   spelllistWindow:show()
   spelllistButton:setOn(true)
 end
end

function toggleFilter(widget, selectedWidget)
 if widget == vocationRadioGroup then
   local boxId = selectedWidget:getId()
   if boxId == 'vocationBoxAny' then
     filters.vocationId = FILTER_VOCATION_ANY
   elseif boxId == 'vocationBoxNaruto' then
     filters.vocationId = FILTER_VOCATION_NARUTO
   elseif boxId == 'vocationBoxSasuke' then
     filters.vocationId = FILTER_VOCATION_SASUKE
   elseif boxId == 'vocationBoxLee' then
     filters.vocationId = FILTER_VOCATION_LEE
   elseif boxId == 'vocationBoxSakura' then
     filters.vocationId = FILTER_VOCATION_SAKURA
elseif boxId == 'vocationBoxGaara' then
     filters.vocationId = FILTER_VOCATION_Gaara
   elseif boxId == 'vocationBoxNeji' then
     filters.vocationId = FILTER_VOCATION_SAKURA
   elseif boxId == 'vocationBoxKiba' then
     filters.vocationId = FILTER_VOCATION_KIBA
   elseif boxId == 'vocationBoxShikamaru' then
     filters.vocationId = FILTER_VOCATION_SHIKAMARU
   elseif boxId == 'vocationBoxHinata' then
     filters.vocationId = FILTER_VOCATION_HINATA
   elseif boxId == 'vocationBoxTenten' then
     filters.vocationId = FILTER_VOCATION_TENTEN
   elseif boxId == 'vocationBoxItachi' then
     filters.vocationId = FILTER_VOCATION_ITACHI
   elseif boxId == 'vocationBoxBee' then
     filters.vocationId = FILTER_VOCATION_BEE
   elseif boxId == 'vocationBoxKakashi' then
     filters.vocationId = FILTER_VOCATION_KAKASHI

   end
 elseif widget == groupRadioGroup then
   local boxId = selectedWidget:getId()
   if boxId == 'groupBoxAny' then
     filters.groupId = FILTER_GROUP_ANY
   elseif boxId == 'groupBoxAttack' then
     filters.groupId = FILTER_GROUP_ATTACK
   elseif boxId == 'groupBoxHealing' then
     filters.groupId = FILTER_GROUP_HEALING
   elseif boxId == 'groupBoxSupport' then
     filters.groupId = FILTER_GROUP_SUPPORT
   end
 elseif widget == premiumRadioGroup then
   local boxId = selectedWidget:getId()
   if boxId == 'premiumBoxAny' then
     filters.premium = FILTER_PREMIUM_ANY
   elseif boxId == 'premiumBoxNo' then
     filters.premium = FILTER_PREMIUM_NO
   elseif boxId == 'premiumBoxYes' then
     filters.premium = FILTER_PREMIUM_YES
   end
 else
   local id = widget:getId()
   if id == 'buttonFilterLevel' then
     filters.level = not(filters.level)
     widget:setOn(filters.level)
   elseif id == 'buttonFilterVocation' then
     filters.vocation = not(filters.vocation)
     widget:setOn(filters.vocation)
   end
 end

 updateSpelllist()
end

function resizeWindow()
 spelllistWindow:setWidth(SpelllistSettings['Default'].spellWindowWidth + SpelllistSettings[spelllistProfile].iconSize.width - 32)
 spellList:setWidth(SpelllistSettings['Default'].spellListWidth + SpelllistSettings[spelllistProfile].iconSize.width - 32)
end

function resetWindow()
 spelllistWindow:hide()
 spelllistButton:setOn(true)

 -- Resetting filters
 filters.level = false
 filters.vocation = false

 local buttonFilterLevel = spelllistWindow:getChildById('buttonFilterLevel')
 buttonFilterLevel:setOn(filters.level)

 local buttonFilterVocation = spelllistWindow:getChildById('buttonFilterVocation')
 buttonFilterVocation:setOn(filters.vocation)

 vocationRadioGroup:selectWidget(vocationBoxAny)
 groupRadioGroup:selectWidget(groupBoxAny)
 premiumRadioGroup:selectWidget(premiumBoxAny)

 updateSpelllist()
end

spelllist.otui



SpellListLabel < Label
 font: verdana-11px-monochrome
 background-color: alpha
 text-offset: 42 3
 focusable: true
 height: 36
 image-clip: 0 0 32 32
 image-size: 32 32
 image-offset: 2 2
 image-source: /images/game/spells/defaultspells

 $focus:
   background-color: #ffffff22
   color: #ffffff

SpellInfoLabel < Label
 width: 70
 font: verdana-11px-monochrome
 text-align: right
 margin-left: 10
 margin-top: 5

SpellInfoValueLabel < Label
 text-align: left
 width: 190
 margin-left: 10
 margin-top: 5

MainWindow
 id: spelllistWindow
 !text: tr('Spell List')
 size: 550 400
 @onEscape: toggle()

 TextList
   id: spellList
   vertical-scrollbar: spellsScrollBar
   anchors.top: parent.top
   anchors.left: parent.left
   anchors.bottom: next.top
   margin-bottom: 10
   padding: 1
   width: 210
   focusable: false

 Button
   id: buttonCancel
   !text: tr('Close')
   width: 64
   anchors.right: parent.right
   anchors.bottom: parent.bottom
   @onClick: toggle()

 VerticalScrollBar
   id: spellsScrollBar
   anchors.top: spellList.top
   anchors.bottom: spellList.bottom
   anchors.right: spellList.right
   step: 50
   pixels-scroll: true

 SpellInfoLabel
   id: labelName
   anchors.left: spellList.right
   anchors.top: spellList.top
   !text: tr('Name') .. ':'

 Button
   id: buttonFilterLevel
   !text: tr('Level')
   !tooltip: tr('Hide spells for higher exp. levels')
   width: 64
   anchors.left: spellList.left
   anchors.top: spellList.bottom
   @onClick: toggleFilter(self)
   margin-left: 10
   margin-top: 5
   color: #FF0000D0
   $on:
     color: green

 Button
   id: buttonFilterVocation
   !text: tr('Vocation')
   !tooltip: tr('Hide spells for other vocations')
   width: 64
   anchors.left: prev.right
   anchors.top: spellList.bottom
   @onClick: toggleFilter(self)
   margin-left: 10
   margin-top: 5
   color: #FF0000D0
   $on:
     color: green

 SpellInfoLabel
   id: labelFormula
   anchors.left: spellList.right
   anchors.top: labelName.bottom
   !text: tr('Formula') .. ':'


 SpellInfoLabel
   id: labelVocation
   anchors.left: spellList.right
   anchors.top: labelFormula.bottom
   !text: tr('Vocation') .. ':'

 SpellInfoLabel
   id: labelGroup
   anchors.left: spellList.right
   anchors.top: labelVocation.bottom
   !text: tr('Group') .. ':'

 SpellInfoLabel
   id: labelType
   anchors.left: spellList.right
   anchors.top: labelGroup.bottom
   !text: tr('Type') .. ':'

 SpellInfoLabel
   id: labelCooldown
   anchors.left: spellList.right
   anchors.top: labelType.bottom
   !text: tr('Cooldown') .. ':'

 SpellInfoLabel
   id: labelLevel
   anchors.left: spellList.right
   anchors.top: labelCooldown.bottom
   !text: tr('Level') .. ':'

 SpellInfoLabel
   id: labelMana
   anchors.left: spellList.right
   anchors.top: labelLevel.bottom
   !text: tr('Mana') .. ' / ' .. tr('Soul') .. ':'

 SpellInfoLabel
   id: labelPremium
   anchors.left: spellList.right
   anchors.top: labelMana.bottom
   !text: tr('Premium') .. ':'

 SpellInfoLabel
   id: labelDescription
   anchors.left: spellList.right
   anchors.top: labelPremium.bottom
   !text: tr('Description') .. ':'

 SpellInfoValueLabel
   id: labelNameValue
   anchors.left: labelName.right
   anchors.top: spellList.top

 SpellInfoValueLabel
   id: labelFormulaValue
   anchors.left: labelFormula.right
   anchors.top: labelNameValue.bottom

 SpellInfoValueLabel
   id: labelVocationValue
   anchors.left: labelVocation.right
   anchors.top: labelFormulaValue.bottom

 SpellInfoValueLabel
   id: labelGroupValue
   anchors.left: labelGroup.right
   anchors.top: labelVocationValue.bottom

 SpellInfoValueLabel
   id: labelTypeValue
   anchors.left: labelType.right
   anchors.top: labelGroupValue.bottom

 SpellInfoValueLabel
   id: labelCooldownValue
   anchors.left: labelCooldown.right
   anchors.top: labelTypeValue.bottom

 SpellInfoValueLabel
   id: labelLevelValue
   anchors.left: labelLevel.right
   anchors.top: labelCooldownValue.bottom

 SpellInfoValueLabel
   id: labelManaValue
   anchors.left: labelMana.right
   anchors.top: labelLevelValue.bottom

 SpellInfoValueLabel
   id: labelPremiumValue
   anchors.left: labelPremium.right
   anchors.top: labelManaValue.bottom

 SpellInfoValueLabel
   id: labelDescriptionValue
   anchors.left: labelDescription.right
   anchors.top: labelPremiumValue.bottom

 Label
   id: labelVocationFilter
   anchors.top: labelPremium.bottom
   anchors.left: spellList.right
   width: 70
   font: verdana-11px-monochrome
   !text: tr('Vocation')
   margin-top: 30
   margin-left: 20

 CheckBox
   id: vocationBoxAny
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   margin-left: 3
   !text: tr('Any')
   width: 75

 CheckBox
   id: vocationBoxNaruto
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Naruto')
   width: 75

 CheckBox
   id: vocationBoxSasuke
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Sasuke')
   width: 75

 CheckBox
   id: vocationBoxLee
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Lee')
   width: 75

 CheckBox
   id: vocationBoxSakura
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Sakura')
   width: 75

 CheckBox
   id: vocationBoxGaara
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Gaara')
   width: 75

 CheckBox
   id: vocationBoxNeji
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Neji')
   width: 75

 CheckBox
   id: vocationBoxKiba
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Kiba')
   width: 75

 CheckBox
   id: vocationBoxShikamaru
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Shikamaru')
   width: 75

 CheckBox
   id: vocationBoxHinata
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Hinata')
   width: 75

 CheckBox
   id: vocationBoxTenten
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Tenten')
   width: 75

 CheckBox
   id: vocationBoxItachi
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Itachi')
   width: 75

 CheckBox
   id: vocationBoxBee
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Bee')
   width: 75

 CheckBox
   id: vocationBoxKakashi
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Kakashi')
   width: 75

 Label
   id: labelGroupFilter
   anchors.top: labelPremium.bottom
   anchors.left: labelVocationFilter.right
   width: 70
   font: verdana-11px-monochrome
   !text: tr('Group')
   margin-top: 30
   margin-left: 20

 CheckBox
   id: groupBoxAny
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   margin-left: 3
   !text: tr('Any')
   width: 75

 CheckBox
   id: groupBoxAttack
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Attack')
   width: 75

 CheckBox
   id: groupBoxHealing
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Healing')
   width: 75

 CheckBox
   id: groupBoxSupport
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Support')
   width: 75

 Label
   id: labelPremiumFilter
   anchors.top: labelPremium.bottom
   anchors.left: labelGroupFilter.right
   width: 70
   font: verdana-11px-monochrome
   !text: tr('Premium')
   margin-top: 30
   margin-left: 20

 CheckBox
   id: premiumBoxAny
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   margin-left: 3
   !text: tr('Any')
   width: 75

 CheckBox
   id: premiumBoxNo
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('No')
   width: 75

 CheckBox
   id: premiumBoxYes
   anchors.left: prev.left
   anchors.top: prev.bottom
   margin-top: 3
   !text: tr('Yes')
   width: 75

 

 

 

 

 

 

Uma duvida o Server do robin ele tem opcode ?

se tive como ativo?

e eu queria um sistema de skills parecido com o do Shinobi.

Link para o comentário
https://xtibia.com/forum/topic/214583-ajuda-spelllist/
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

×
×
  • Criar Novo...