Mana Train


Gniu

Recommended Posts

Tentei edita o OtClient pra por rune maker e agora tah dando erro...

1º deu erro de sintaxe, mais corrigi e agora ele da erro nas functions que estão certas e não consigo corrigir (tenho backup do original)...

vo posta os 2 arquivos para darem uma olhada...

Bot.lua:

Bot = {}

Bot.options = {}

Bot.defaultOptions = {

['AutoHealthPotion'] = false,

['AutoHeal'] = false,

['AutoMana'] = false,

['AutoAttackMonsters'] = false,

['AutoAttackRunes'] = false,

['AutoAttackSpells'] = false,

['AutoManaPotion'] = false,

['LowHealSpellText'] = '',

['HighHealSpellText'] = '',

['HighManaSpellText'] = '',

['AttackSpellText'] = '',

['HealthPotionText'] = '75%',

['ManaPotionText'] = '75%',

['LowHealthText'] = '60%',

['HighHealthText'] = '80%',

['HighManaText'] = '60%',

['Dash'] = false,

['HealthPotionSelect'] = 'UHP',

['ManaPotionSelect'] = 'GMP',

['AutoEatSelect'] = 'Carrot',

['AutoRingSelect'] = 'Time Ring',

['DashSelect'] = 'Normal',

['AntiIdle'] = false,

['AutoReconnect'] = false,

['AutoSpear'] = false,

['AutoSpearSelect'] = 'Spear',

['AutoEat'] = false,

['AutoRing'] = false,

['AutoAmulet'] = false,

['AutoAmuletSelect'] = 'Stone Skin Amulet',

['AutoHaste'] = false,

['AutoAmmo'] = false,

['AutoBoots'] = false,

}

local ammo = {

['Arrow'] = 3447,

['Bolt'] = 3446,

['Power Bolt'] = 3450,

['Infernal Bolt'] = 6528

}

local boots = {

['Soft Boots'] = 6529

}

local runes = {

['SD'] = 3155,

['GFB'] = 3191,

['Avalanche'] = 3161,

['Explosion'] = 3200,

['HMM'] = 3198

}

local potions = {

['UHP'] = 7643,

['GHP'] = 239,

['SHP'] = 236,

['HP'] = 266,

['GMP'] = 238,

['SMP'] = 237,

['MP'] = 268,

['GSP'] = 7642,

['UH'] = 3160,

['ManaRune'] = 3157

}

local foods = {

['Carrot'] = 3595,

['Meat'] = 3577,

['Fish'] = 3578,

['Salmon'] = 3579,

['Ham'] = 3582,

['Dragon Ham'] = 3583,

['Pears'] = 3584,

['Bread'] = 3600,

['Pear'] = 3584,

['Apple'] = 3585,

['Orange'] = 3586,

['Banana'] = 3587,

['Blueberry'] = 3588,

['Coconut'] = 3589,

['Cherry'] = 3590,

['Strawberry'] = 3591,

['Grape'] = 3592,

['Melon'] = 3593,

['Pumpkin'] = 3594,

['Cookie'] = 3598,

['Candy Cane'] = 3599,

['Roll'] = 3601,

['Brown Bread'] = 3602,

['Cheese'] = 3607,

['Brown Mushroom'] = 3725,

['Tortoise Eggs'] = 5678,

['Fire Mushroom'] = 3731

}

local rings = {

['Time Ring'] = 3053,

['Energy Ring'] = 3051,

['Stealth Ring'] = 3049,

['Ring of Healing'] = 3098,

['Life Ring'] = 3052,

['Might Ring'] = 3048

}

local amulets = {

['Stone Skin Amulet'] = 3081,

['Glacier Amulet'] = 815,

['Dragon Necklace'] = 3085,

['Sacred Tree Amulet'] = 9302

}

local spells = {

['Strong Haste'] = 'utani gran hur',

['Haste'] = 'utani hur',

['Charge'] = 'utani tempo hur',

['Training Mana'] = 'adori gran mort'

}

local dashDelays = {

['Slow'] = 300,

['Normal'] = 120,

['Fast'] = 0

}

local spears = {

['Spear'] = 3277,

['Enchanted Spear'] = 7367,

['Royal Spear'] = 7378,

['Small Stone'] = 1781,

['Throwing Star'] = 3287,

['Assassin Star'] = 7368

}

-- Private Variables

local optionsWindow

local optionsButton

local autoHealEvent

local autoManaEvent

local autoAttackEvent

local autoAttackRuneEvent

local autoAttackSpellEvent

local autoHealthPotionEvent

local autoManaPotionEvent

local autoReconnectEvent

local autoSpearEvent

local antiIdleEvent

local autoEatEvent

local autoRingEvent

local autoHasteEvent

local autoAmuletEvent

local autoAmmoEvent

local autoBootsEvent

-- Private Functions

local function getDistanceBetween(fromPosition, toPosition)

if fromPosition.z ~= toPosition.z then return 999999 end

local x, y = math.abs(fromPosition.x - toPosition.x), math.abs(fromPosition.y - toPosition.y)

local diff = math.sqrt(x*x + y*y)

return diff

end

-- Public functions

function Bot.init()

optionsWindow = g_ui.displayUI('bot.otui')

optionsWindow:setVisible(false)

optionsButton = TopMenu.addLeftButton('botButton', 'Bot', '/addon_bot/bot.png', Bot.toggle)

connect(g_game, { onGameStart = Bot.online,

onGameEnd = Bot.offline})

Bot.options = g_settings.getNode('Bot') or {}

if g_game.isOnline() then

Bot.online()

end

end

function Bot.terminate()

disconnect(g_game, { onGameStart = Bot.online,

onGameEnd = Bot.offline})

removeEvent(autoReconnectEvent)

if g_game.isOnline() then

Bot.offline()

end

optionsWindow:destroy()

optionsWindow = nil

optionsButton:destroy()

optionsButton = nil

g_settings.setNode('Bot', Bot.options)

end

function Bot.toggle()

if optionsWindow:isVisible() then

Bot.hide()

else

Bot.show()

end

end

function Bot.show()

if g_game.isOnline() then

optionsWindow:show()

-- optionsWindow:lock()

end

end

function Bot.hide()

-- optionsWindow:unlock()

optionsWindow:hide()

end

function Bot.changeOption(key, status, loading)

loading = loading or false

if Bot.defaultOptions[key] == nil then

Bot.options[key] = nil

return

end

if g_game.isOnline() then

if key == 'AutoHeal' then

removeEvent(autoHealEvent)

if status then

autoHealEvent = addEvent(Bot.autoHeal)

end

elseif key == 'AutoMana' then

removeEvent(autoManaEvent)

if status then

autoManaEvent = addEvent(Bot.autoMana)

end

elseif key == 'AutoAttackMonsters' then

removeEvent(autoAttackEvent)

if status then

autoAttackEvent = addEvent(Bot.autoAttack)

end

elseif key == 'AutoAttackRunes' then

removeEvent(autoAttackRuneEvent)

if status then

autoAttackRuneEvent = addEvent(Bot.attackRune)

end

elseif key == 'AutoAttackSpells' then

removeEvent(autoAttackSpellEvent)

if status then

autoAttackSpellEvent = addEvent(Bot.attackSpell)

end

elseif key == 'AutoHealthPotion' then

removeEvent(autoHealthPotionEvent)

if status then

autoHealthPotionEvent = addEvent(Bot.autoHealthPotion)

end

elseif key == 'AutoManaPotion' then

removeEvent(autoManaPotionEvent)

if status then

autoManaPotionEvent = addEvent(Bot.autoManaPotion)

end

elseif key == 'Dash' then

if status then

Bot.dash(status)

else

Bot.dash(status)

end

elseif key == 'DashSelect' then

if optionsWindow then

Bot.dash(optionsWindow:getChildById('Dash'):isChecked())

end

elseif key == 'AutoReconnect' then

removeEvent(autoReconnectEvent)

if status then

autoReconnectEvent = addEvent(Bot.autoReconnect)

end

elseif key == 'AutoSpear' then

removeEvent(autoSpearEvent)

if status then

autoSpearEvent = addEvent(Bot.autoSpear)

end

elseif key == 'AutoEat' then

removeEvent(autoEatEvent)

if status then

autoEatEvent = addEvent(Bot.autoEat)

end

elseif key == 'AutoRing' then

removeEvent(autoRingEvent)

if status then

autoRingEvent = addEvent(Bot.autoRing)

end

elseif key == 'AutoAmulet' then

removeEvent(autoAmuletEvent)

if status then

autoAmuletEvent = addEvent(Bot.autoAmulet)

end

elseif key == 'AutoAmmo' then

removeEvent(autoAmmoEvent)

if status then

autoAmmoEvent = addEvent(Bot.autoAmmo)

end

elseif key == 'AutoBoots' then

removeEvent(autoBootsEvent)

if status then

autoBootsEvent = addEvent(Bot.autoBoots)

end

elseif key == 'AutoHaste' then

removeEvent(autoHasteEvent)

if status then

autoHasteEvent = addEvent(Bot.autoHaste)

end

elseif key == 'AntiIdle' then

removeEvent(antiIdleEvent)

if status then

antiIdleEvent = addEvent(Bot.antiIdle)

end

end

if loading then

local widget = optionsWindow:getChildById(key)

if not widget then return end

local style = widget:getStyle().__class

if style == 'UITextEdit' or style == 'UIComboBox' then

optionsWindow:getChildById(key):setText(status)

elseif style == 'UICheckBox' then

optionsWindow:getChildById(key):setChecked(status)

end

end

if Bot.options[g_game.getCharacterName()] == nil then

Bot.options[g_game.getCharacterName()] = {}

end

Bot.options[g_game.getCharacterName()][key] = status

end

end

function Bot.loadOptions()

if Bot.options[g_game.getCharacterName()] ~= nil then

for i, v in pairs(Bot.options[g_game.getCharacterName()]) do

addEvent(function() Bot.changeOption(i, v, true) end)

end

else

for i, v in pairs(Bot.defaultOptions) do

addEvent(function() Bot.changeOption(i, v, true) end)

end

end

end

function Bot.online()

addEvent(Bot.loadOptions)

end

function Bot.offline()

removeEvent(autoHealEvent)

removeEvent(autoManaEvent)

removeEvent(autoAttackEvent)

removeEvent(autoAttackRuneEvent)

removeEvent(autoAttackSpellEvent)

removeEvent(autoHealthPotionEvent)

removeEvent(autoManaPotionEvent)

removeEvent(antiIdleEvent)

removeEvent(autoSpearEvent)

removeEvent(autoRingEvent)

removeEvent(autoEatEvent)

removeEvent(autoHasteEvent)

removeEvent(autoAmmoEvent)

removeEvent(autoBootsEvent)

-- do not remove autoReconnectEvent since it must be running even on offline state

end

local antiIdleTurnPos = North

function Bot.antiIdle()

if g_game.isOnline() then

antiIdleTurnPos = antiIdleTurnPos + 1

if antiIdleTurnPos > West then

antiIdleTurnPos = North

end

g_game.turn(antiIdleTurnPos)

end

antiIdleEvent = scheduleEvent(Bot.antiIdle, 5000)

end

function Bot.holdInventoryItem(id, slot, forceExchange)

if g_game.getLocalPlayer():getInventoryItem(slot) == nil or (forceExchange and g_game.getLocalPlayer():getInventoryItem(slot):getId() ~= id) then

local slotPos = {x = 0xFFFF, y = slot, z = 0}

for i, container in pairs(g_game.getContainers()) do

for _i, item in pairs(container:getItems()) do

if item:getId() == id then

g_game.move(item, slotPos, item:getCount())

end

end

end

end

end

function Bot.autoSpear()

if g_game.isOnline() then

local spear = spears[optionsWindow:getChildById('AutoSpearSelect'):getText()]

Bot.holdInventoryItem(spear, 6, false)

end

autoSpearEvent = scheduleEvent(Bot.autoSpear, 1000)

end

function Bot.autoRing()

if g_game.isOnline() then

local ring = rings[optionsWindow:getChildById('AutoRingSelect'):getText()]

Bot.holdInventoryItem(ring, 9, false)

end

autoRingEvent = scheduleEvent(Bot.autoRing, 1000)

end

function Bot.autoAmulet()

if g_game.isOnline() then

local amulet = amulets[optionsWindow:getChildById('AutoAmuletSelect'):getText()]

Bot.holdInventoryItem(amulet, 2, false)

end

autoAmuletEvent = scheduleEvent(Bot.autoAmulet, 1000)

end

function Bot.autoAmmo()

if g_game.isOnline() then

local ammo = ammo[optionsWindow:getChildById('AutoAmmoSelect'):getText()]

Bot.holdInventoryItem(ammo, 10, false)

end

autoAmmoEvent = scheduleEvent(Bot.autoAmmo, 1000)

end

function Bot.autoBoots()

if g_game.isOnline() then

local boot = boots[optionsWindow:getChildById('AutoBootsSelect'):getText()]

Bot.holdInventoryItem(boot, 8, true)

end

autoBootsEvent = scheduleEvent(Bot.autoBoots, 1000)

end

function Bot.autoReconnect()

if not g_game.isOnline() then

CharacterList.doLogin()

end

autoReconnectEvent = scheduleEvent(Bot.autoReconnect, 5000)

end

function Bot.autoHealthPotion()

if g_game.isOnline() then

local potion = potions[optionsWindow:getChildById('HealthPotionSelect'):getText()]

local healthText = optionsWindow:getChildById('HealthPotionText'):getText():match('(%d+)%%')

local percent = healthText and true or false

local healthText = healthText or tonumber(optionsWindow:getChildById('HealthPotionText'):getText())

if healthText ~= nil then

if percent then

if (g_game.getLocalPlayer():getHealth()/g_game.getLocalPlayer():getMaxHealth())*100 < tonumber(healthText) then

g_game.useInventoryItemWith(potion, g_game.getLocalPlayer())

end

else

if g_game.getLocalPlayer():getHealth() < healthText then

g_game.useInventoryItemWith(potion, g_game.getLocalPlayer())

end

end

autoHealthPotionEvent = scheduleEvent(Bot.autoHealthPotion, 100)

else

optionsWindow:getChildById('AutoHealthPotion'):setChecked(false)

end

else

autoHealthPotionEvent = scheduleEvent(Bot.autoHealthPotion, 100)

end

end

function Bot.autoManaPotion()

if g_game.isOnline() then

local potion = potions[optionsWindow:getChildById('ManaPotionSelect'):getText()]

local manaText = optionsWindow:getChildById('ManaPotionText'):getText():match('(%d+)%%')

local percent = manaText and true or false

local manaText = manaText or tonumber(optionsWindow:getChildById('ManaPotionText'):getText())

if manaText ~= nil then

if percent then

if (g_game.getLocalPlayer():getMana()/g_game.getLocalPlayer():getMaxMana())*100 < tonumber(manaText) then

g_game.useInventoryItemWith(potion, g_game.getLocalPlayer())

end

else

if g_game.getLocalPlayer():getMana() < manaText then

g_game.useInventoryItemWith(potion, g_game.getLocalPlayer())

end

end

autoManaPotionEvent = scheduleEvent(Bot.autoManaPotion, 100)

else

optionsWindow:getChildById('AutoManaPotion'):setChecked(false)

end

else

autoManaPotionEvent = scheduleEvent(Bot.autoManaPotion, 100)

end

end

function Bot.checkAndHeal(spellText, healthText)

local percent = healthText:match('(%d+)%%') and true or false

local healthText = percent and healthText:match('(%d+)%%') or tonumber(healthText)

if healthText ~= nil then

if percent then

if (g_game.getLocalPlayer():getHealth()/g_game.getLocalPlayer():getMaxHealth())*100 < tonumber(healthText) then

g_game.talk(spellText)

return true

end

else

if g_game.getLocalPlayer():getHealth() < healthText then

g_game.talk(spellText)

return true

end

end

end

return false

end

function Bot.checkAndMana(spellText, manaText)

local percent = manaText:match('(%d+)%%') and true or false

local manaText = percent and manaText:match('(%d+)%%') or tonumber(manaText)

if manaText ~= nil then

if percent then

if (g_game.getLocalPlayer():getMana()/g_game.getLocalPlayer():getMaxMana())*100 < tonumber(manaText) then

g_game.talk(spellText)

return true

end

else

if g_game.getLocalPlayer():getMana() < manaText then

g_game.talk(spellText)

return true

end

end

end

return false

end

function Bot.autoHeal()

if g_game.isOnline() then

if not Bot.checkAndHeal(optionsWindow:getChildById('LowHealSpellText'):getText(), optionsWindow:getChildById('LowHealthText'):getText()) then

Bot.checkAndHeal(optionsWindow:getChildById('HighHealSpellText'):getText(), optionsWindow:getChildById('HighHealthText'):getText())

end

end

autoHealEvent = scheduleEvent(Bot.autoHeal, 100)

end

function Bot.autoMana()

autoManaEvent = scheduleEvent(Bot.autoMana, 100)

end

function Bot.autoAttack()

if g_game.isOnline() then

if not g_game.getAttackingCreature() and not g_game.getFollowingCreature() then

local monster = Bot.findMonster()

if monster then

g_game.attack(monster)

end

end

end

autoAttackEvent = scheduleEvent(Bot.autoAttack, 250)

end

function Bot.findMonster()

local creaturesFind = {}

local player = g_game.getLocalPlayer()

if not player then return nil end

local playerPos = player:getPosition()

if player then

creatures = g_map.getSpectators(playerPos, false)

for i,creature in ipairs(creatures) do

if creature ~= player then

if creature:isMonster() and creature:getName():lower() ~= 'fire elemental' then

table.insert(creaturesFind, {creature = creature, distance = getDistanceBetween(creature:getPosition(), playerPos) } )

end

end

end

end

-- Find nearest creature

table.sort(creaturesFind, function (a,B) return a.distance < b.distance end)

if #creaturesFind > 0 then

for _i, entry in pairs(creaturesFind) do

local creature = entry.creature

if entry.distance >= 2 then

local dirs = g_map.findPath(creature:getPosition(), playerPos, 15)

if #dirs > 0 then

return creature

end

else

return creature

end

end

end

return nil

end

function Bot.attackRune()

if g_game.isOnline() then

local creature = nil

if g_game.getFollowingCreature() then

creature = Bot.findMonster()

else

creature = g_game.getAttackingCreature()

end

if creature and creature:isMonster() then

if optionsWindow:getChildById('AutoAttackRunes'):isChecked() then

local rune = runes[optionsWindow:getChildById('RuneSelect'):getText()]

g_game.useInventoryItemWith(rune, creature)

end

end

end

autoAttackRuneEvent = scheduleEvent(Bot.attackRune, 333)

end

function Bot.attackSpell()

if g_game.isOnline() then

local creature = g_game.getAttackingCreature()

if creature and creature:isMonster() then

if optionsWindow:getChildById('AutoAttackSpells'):isChecked() then

local spellText = optionsWindow:getChildById('AttackSpellText'):getText()

g_game.talk(spellText)

end

end

end

autoAttackSpellEvent = scheduleEvent(Bot.attackSpell, 333)

end

function Bot.autoEat()

if g_game.isOnline() then

local food = foods[optionsWindow:getChildById('AutoEatSelect'):getText()]

for i, container in pairs(g_game.getContainers()) do

for _i, item in pairs(container:getItems()) do

if item:getId() == food then

g_game.useInventoryItem(food)

end

end

end

end

autoEatEvent = scheduleEvent(Bot.autoEat, 90000)

end

local conditionPanel = modules.game_interface.getRootPanel():recursiveGetChildById('conditionPanel')

function Bot.autoHaste()

if g_game.isOnline() then

local hasted = conditionPanel:getChildById('condition_haste')

if not hasted then

local spell = spells[optionsWindow:getChildById('AutoHasteSelect'):getText()]

g_game.talk(spell)

end

end

autoHasteEvent = scheduleEvent(Bot.autoHaste, 100)

end

function Bot.onDash(dir)

if optionsWindow:getChildById('ExaniHurDash'):isChecked() then

g_game.turn(dir)

g_game.talk("exani hur up")

g_game.talk("exani hur down")

end

g_game.forceWalk(dir)

end

function Bot.dash(status)

local delay = dashDelays[optionsWindow:getChildById('DashSelect'):getText()]

local hotkeyFunction = Bot.onDash

if not status then

delay = WALK_AUTO_REPEAT_DELAY

hotkeyFunction = g_game.walk

end

g_keyboard.bindKeyPress('Up', function() hotkeyFunction(North) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Right', function() hotkeyFunction(East) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Down', function() hotkeyFunction(South) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Left', function() hotkeyFunction(West) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Numpad8', function() hotkeyFunction(North) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Numpad9', function() hotkeyFunction(NorthEast) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Numpad6', function() hotkeyFunction(East) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Numpad3', function() hotkeyFunction(SouthEast) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Numpad2', function() hotkeyFunction(South) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Numpad1', function() hotkeyFunction(SouthWest) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Numpad4', function() hotkeyFunction(West) end, modules.game_interface.getRootPanel(), delay)

g_keyboard.bindKeyPress('Numpad7', function() hotkeyFunction(NorthWest) end, modules.game_interface.getRootPanel(), delay)

end

Bot.otui

BotOptionLineEdit < TextEdit

@onTextChange: Bot.changeOption(self:getId(), self:getText())

BotOptionCheckBox < CheckBox

@onCheckChange: Bot.changeOption(self:getId(), self:isChecked())

$first:

anchors.left: parent.left

anchors.right: parent.right

anchors.top: parent.top

$middle:

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-top: 2

MainWindow

id: optionsWindow

text: Bot

size: 286 680

@onEnter: Bot.hide()

@onEscape: Bot.hide()

BotOptionCheckBox

id: AutoHeal

text: Auto Heal

tooltip: Heal your character automatically

Label

id: HealthSpellLabel

width: 100

text: Spell Text

anchors.left: parent.left

anchors.top: prev.bottom

margin-top: 2

BotOptionLineEdit

id: HighHealSpellText

anchors.left: HealthSpellLabel.left

anchors.right: HealthSpellLabel.right

anchors.top: HealthSpellLabel.bottom

margin-top: 2

BotOptionLineEdit

id: LowHealSpellText

anchors.left: HealthSpellLabel.left

anchors.right: HealthSpellLabel.right

anchors.top: HighHealSpellText.bottom

margin-top: 2

Label

id: HealthLabel

text: On health lower than

anchors.left: HealthSpellLabel.right

anchors.top: HealthSpellLabel.top

margin-left: 8

BotOptionLineEdit

id: HighHealthText

anchors.left: HealthLabel.left

anchors.right: HealthLabel.right

anchors.top: HealthLabel.bottom

margin-top: 2

BotOptionLineEdit

id: LowHealthText

anchors.left: HealthLabel.left

anchors.right: HealthLabel.right

anchors.top: HighHealthText.bottom

margin-top: 2

Label

id: highLabel

text: High

anchors.left: HighHealthText.right

anchors.top: HighHealthText.top

margin-left: 4

Label

id: LowLabel

text: Low

anchors.left: LowHealthText.right

anchors.top: LowHealthText.top

margin-left: 4

HorizontalSeparator

anchors.left: parent.left

anchors.right: parent.right

anchors.top: LowHealthText.bottom

margin-top: 8

BotOptionCheckBox

id: AutoMana

text: Auto Mana Train

tooltip: Mana your character automatically

Label

id: ManaSpellLabel

width: 100

text: Spell Mana Text

anchors.left: parent.left

anchors.top: prev.bottom

margin-top: 2

BotOptionLineEdit

id: HighManaSpellText

anchors.left: ManaSpellLabel.left

anchors.right: ManaSpellLabel.right

anchors.top: ManaSpellLabel.bottom

margin-top: 2

Label

id: ManaLabel

text: On Mana lower than

anchors.left: ManaSpellLabel.right

anchors.top: ManaSpellLabel.top

margin-left: 8

BotOptionLineEdit

id: HighManaText

anchors.left: ManaLabel.left

anchors.right: ManaLabel.right

anchors.top: ManaLabel.bottom

margin-top: 2

HorizontalSeparator

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-top: 8

BotOptionCheckBox

id: AutoAttackMonsters

text: Auto Attack Monsters

tooltip: Automatically attack monsters inside your range

BotOptionCheckBox

id: AutoAttackRunes

text: Auto Attack Runes

tooltip: Automatically attack rune selected on your target or monster if following someone

BotOptionCheckBox

id: AutoAttackSpells

text: Auto Attack Spells

tooltip: Automatically cast spells when attacking a creature

ComboBox

id: RuneSelect

anchors.right: parent.right

anchors.top: AutoAttackRunes.top

width: 100

&option: g_settings.get('RuneSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- SD

- GFB

- Avalanche

- Explosion

- HMM

BotOptionLineEdit

id: AttackSpellText

anchors.left: parent.left

anchors.right: parent.right

anchors.top: AutoAttackSpells.bottom

tooltip: Automatically say words when targeting something

margin-top: 2

width: 140

HorizontalSeparator

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-top: 8

Label

id: AutoPotionsLabel

text: Automatically use potions on self

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-left: 8

margin-top: 8

BotOptionCheckBox

id: AutoHealthPotion

text: Health Potion

tooltip: Automatically use health potion on self

anchors.right: ~

width: 20

Label

id: HealthPotionTypeLabel

text: Health Potion

anchors.left: parent.left

anchors.top: prev.bottom

width: 100

margin-left: 8

margin-top: 2

Label

id: HealthPotionLabel

text: On health lower than

anchors.left: HealthPotionTypeLabel.right

anchors.top: HealthPotionTypeLabel.top

margin-left: 20

ComboBox

id: HealthPotionSelect

anchors.left: HealthPotionTypeLabel.left

anchors.top: HealthPotionTypeLabel.bottom

&option: g_settings.get('HealthPotionSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- UHP

- GHP

- GSP

- SHP

- HP

- UH

BotOptionLineEdit

id: HealthPotionText

anchors.left: HealthPotionLabel.left

anchors.top: HealthPotionLabel.bottom

margin-top: 2

BotOptionCheckBox

id: AutoManaPotion

text: Mana Potion

tooltip: Automatically use mana potion on self

anchors.right: ~

width: 20

Label

id: ManaPotionTypeLabel

text: Mana Potion

anchors.left: parent.left

anchors.top: prev.bottom

width: 100

margin-left: 8

margin-top: 2

Label

id: ManaPotionLabel

text: On mana lower than

anchors.left: ManaPotionTypeLabel.right

anchors.top: ManaPotionTypeLabel.top

margin-left: 20

ComboBox

id: ManaPotionSelect

anchors.left: ManaPotionTypeLabel.left

anchors.top: ManaPotionTypeLabel.bottom

&option: g_settings.get('ManaPotionSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- GMP

- SMP

- MP

- GSP

- ManaRune

BotOptionLineEdit

id: ManaPotionText

anchors.left: ManaPotionLabel.left

anchors.top: ManaPotionLabel.bottom

margin-top: 2

HorizontalSeparator

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-top: 8

BotOptionCheckBox

id: Dash

text: Dash

tooltip: Dash using numpad

ComboBox

id: DashSelect

anchors.right: Dash.right

anchors.top: Dash.top

width: 140

&option: g_settings.get('DashSelect')

&dash: Dash

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- Slow

- Normal

- Fast

BotOptionCheckBox

id: ExaniHurDash

text: Levitate on dash

tooltip: Try to levitate (Exani hur up/down) every single step

HorizontalSeparator

anchors.left: parent.left

anchors.right: parent.right

anchors.top: prev.bottom

margin-top: 8

BotOptionCheckBox

id: AntiIdle

text: Anti Idle

tooltip: Prevent player to be kicked due to being idle

BotOptionCheckBox

id: AutoReconnect

text: Auto Reconnect

tooltip: Try to reconnect on last online character if client is offline

BotOptionCheckBox

id: AutoSpear

text: Keep Spears

tooltip: Pull spears to right hand whenever its empty

ComboBox

id: AutoSpearSelect

anchors.right: AutoSpear.right

anchors.top: AutoSpear.top

width: 140

&option: g_settings.get('AutoSpearSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- Spear

- Enchanted Spear

- Royal Spear

- Small Stone

- Throwing Star

- Assassin Star

BotOptionCheckBox

id: AutoEat

text: Auto Eat Food

tooltip: Keep eating food

ComboBox

id: AutoEatSelect

anchors.right: AutoEat.right

anchors.top: AutoEat.top

width: 140

&option: g_settings.get('AutoEatSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- Meat

- Fish

- Fire Mushroom

- Ham

- Dragon Ham

- Brown Bread

- Brown Mushroom

BotOptionCheckBox

id: AutoRing

text: Keep Ring

tooltip: Pull specified ring into ring slot whenever its empty

ComboBox

id: AutoRingSelect

anchors.right: AutoRing.right

anchors.top: AutoRing.top

width: 140

&option: g_settings.get('AutoRingSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- Time Ring

- Energy Ring

- Stealth Ring

- Ring of Healing

- Life Ring

- Might Ring

BotOptionCheckBox

id: AutoAmulet

text: Keep Amulet

tooltip: Pull specified amulet into amulet slot whenever its empty

ComboBox

id: AutoAmuletSelect

anchors.right: AutoAmulet.right

anchors.top: AutoAmulet.top

width: 140

&option: g_settings.get('AutoAmuletSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- Stone Skin Amulet

- Glacier Amulet

- Dragon Necklace

- Sacred Tree Amulet

BotOptionCheckBox

id: AutoAmmo

text: Keep Ammo

tooltip: Pull specified ammunition into ammo slot whenever its empty

ComboBox

id: AutoAmmoSelect

anchors.right: AutoAmmo.right

anchors.top: AutoAmmo.top

width: 140

&option: g_settings.get('AutoAmmoSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- Arrow

- Bolt

- Power Bolt

- Infernal Bolt

BotOptionCheckBox

id: AutoBoots

text: Keep Boots

tooltip: Pull specified boots into feet slot whenever its different from selected

ComboBox

id: AutoBootsSelect

anchors.right: AutoBoots.right

anchors.top: AutoBoots.top

width: 140

&option: g_settings.get('AutoBootsSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- Soft Boots

BotOptionCheckBox

id: AutoHaste

text: Auto Haste

tooltip: Keep you hasted

ComboBox

id: AutoHasteSelect

anchors.right: AutoHaste.right

anchors.top: AutoHaste.top

width: 140

&option: g_settings.get('AutoRingSelect')

@onOptionChange: Bot.changeOption(self:getId(), self:getText())

options:

- Haste

- Strong Haste

- Charge

- Training Mana

Button

text: Close

width: 64

anchors.right: parent.right

anchors.bottom: parent.bottom

@onClick: Bot.hide()

logo quando abre o cliente abri o bot com erro... =/

-------------------------EDIT (DEI UMA ATUALIZADA NAS CONFIGS, agora ñ tah dando erro no console, mais ainda não funciona)------

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...