diff --git a/modules/game_battle/battle.lua b/modules/game_battle/battle.lua index bc2e03c..4853ead 100644 --- a/modules/game_battle/battle.lua +++ b/modules/game_battle/battle.lua @@ -283,7 +283,7 @@ function checkCreatures() for i=#creatures + 1,maxCreatures do if battleButtons[i]:isHidden() then break end battleButtons[i]:hide() - battleButton:setOn(false) + battleButtons[i]:setOn(false) end battlePanel:getLayout():enableUpdates() diff --git a/modules/game_bot/default_configs/vithrax_1.1/_main.lua b/modules/game_bot/default_configs/vithrax_1.1/_main.lua deleted file mode 100644 index 9c0b26f..0000000 --- a/modules/game_bot/default_configs/vithrax_1.1/_main.lua +++ /dev/null @@ -1,7 +0,0 @@ --- main tab -UI.Label("Vithrax CFG v1.1 \n \n Scripting service: \n Vithrax#5814") - -UI.Separator() - - - diff --git a/modules/game_bot/default_configs/vithrax_1.1/storage.json b/modules/game_bot/default_configs/vithrax_1.1/storage.json deleted file mode 100644 index 3466aaa..0000000 --- a/modules/game_bot/default_configs/vithrax_1.1/storage.json +++ /dev/null @@ -1,303 +0,0 @@ -{ - "rope": 9596, - "castle": { - "enabled": false, - "id": 2983, - "around": false - }, - "supplyRetries": 0, - "foodItems": [ - { - "count": 1, - "id": 3582 - }, - { - "count": 1, - "id": 3577 - } - ], - "isUsing": false, - "healbot": { - "spellTable": [ - - ], - "enabled": false, - "itemTable": [ - - ] - }, - "supplies": { - "item3Max": 0, - "item2Min": 0, - "item4Max": 0, - "item1Min": 0, - "item2": 0, - "SoftBoots": false, - "item1": 0, - "item1Max": 0, - "item5Max": 0, - "item3Min": 0, - "item4Min": 0, - "imbues": false, - "item5Min": 0, - "staminaSwitch": false, - "item5": 0, - "staminaValue": 900, - "capSwitch": false, - "item3": 0, - "capValue": 0, - "item2Max": 0, - "item4": 0 - }, - "shovel": 9596, - "buySuppliesCap": 0, - "jewelleryEquipper": { - "pzCheck": true, - "ammyMin": 30, - "ringMin": 30, - "valueAmmy": false, - "ringMax": 80, - "valueRing": false, - "ringId": 3048, - "ammyId": 3081, - "ammySwitch": true, - "ringValue": "HP", - "ringSwitch": true, - "ammyMax": 80, - "ammyValue": "HP" - }, - "attackbot": { - "pvpSafe": true, - "enabled": false, - "attackTable": [ - { - "dist": 5, - "minMonsters": 4, - "pvp": false, - "category": 2, - "model": 3, - "attack": "exevo gran mas tera", - "manaCost": 25 - }, - { - "dist": 4, - "minMonsters": 2, - "pvp": false, - "category": 8, - "model": 11, - "attack": 3161, - "manaCost": 10 - }, - { - "dist": 4, - "minMonsters": 1, - "pvp": false, - "category": 6, - "model": 2, - "attack": "exori max frigo", - "manaCost": 10 - }, - { - "dist": 4, - "minMonsters": 2, - "pvp": false, - "category": 5, - "model": 8, - "attack": "exevo gran frigo hur", - "manaCost": 10 - }, - { - "dist": 9, - "minMonsters": 1, - "pvp": false, - "category": 7, - "model": 2, - "attack": 3155, - "manaCost": 1 - }, - { - "dist": 4, - "minMonsters": 1, - "pvp": false, - "category": 6, - "model": 2, - "attack": "exori frigo", - "manaCost": 1 - }, - { - "dist": 4, - "minMonsters": 1, - "pvp": true, - "category": 6, - "model": 2, - "attack": "exori max frigo", - "manaCost": 1 - }, - { - "dist": 9, - "manaCost": 1, - "pvp": true, - "category": 7, - "model": 2, - "attack": 3155, - "minMonsters": 1 - } - ], - "pvpMode": false - }, - "scythe": 9596, - "inboxContainerOpen": false, - "advancedFriendHealer": { - "itemHeal": true, - "minFriendHp": 40, - "id": 3160, - "minMana": 60, - "distance": 8, - "spellHeal": true, - "spellName": "exura sio" - }, - "autoTradeMessage": "I'm using OTClientV8!", - "BotServerChannel": "6797953434510", - "combobot": { - "attackSpellEnabled": false, - "attackLeaderTargetEnabled": false, - "onShootEnabled": false, - "item": 3155, - "followLeaderEnabled": false, - "serverTriggers": true, - "serverEnabled": false, - "attack": "", - "onSayEnabled": false, - "sayLeader": "", - "spell": "", - "shootLeader": "", - "attackItemToggle": false, - "serverLeaderTarget": false, - "commandsEnabled": true, - "sayPhrase": "", - "onCastEnabled": false, - "serverLeader": "", - "enabled": false, - "follow": "", - "castLeader": "" - }, - "antiPushPanel": { - "items": [ - 3031, - 3035, - 0, - 0, - 0 - ] - }, - "_macros": { - "": false, - "Stake Bodies": false, - "Supply Sorter": false - }, - "lootContainerOpen": false, - "sellAllCap": 0, - "_configs": { - "targetbot_configs": { - "enabled": false - }, - "cavebot_configs": { - "enabled": false - } - }, - "trashItems": [ - { - "count": 1, - "id": 283 - }, - { - "count": 1, - "id": 284 - }, - { - "count": 1, - "id": 285 - } - ], - "serverMembers": "[\"Otcliento\"]", - "stopSearch": false, - "BOTserver": { - "manaInfo": true, - "mwallInfo": true, - "mwalls": [ - - ] - }, - "ConditionPanel": { - "cureBurn": false, - "curseCost": 80, - "electrifyCost": 22, - "ignoreInPz": true, - "bleedCost": 45, - "cureCurse": false, - "holdHaste": false, - "curePosion": false, - "hasteSpell": "utani hur", - "cureParalyse": false, - "cureBleed": false, - "holdUtura": false, - "paralyseSpell": "utani hur", - "poisonCost": 20, - "utanaCost": 440, - "uturaType": "", - "utamoCost": 40, - "enabled": false, - "uturaCost": 100, - "cureElectrify": false, - "holdUtamo": false, - "paralyseCost": 40, - "hasteCost": 40, - "holdUtana": false, - "burnCost": 30 - }, - "machete": 9596, - "alarms": { - "playerDetected": false, - "creatureDetected": false, - "manaValue": 50, - "playerAttack": false, - "manaBelow": false, - "privateMessage": false, - "playerDetectedLogout": false, - "enabled": false, - "healthBelow": false, - "healthValue": 40 - }, - "playerList": { - "enemyList": [ - - ], - "outfits": false, - "groupMembers": true, - "marks": false, - "friendList": [ - - ] - }, - "pushmax": { - "pushMaxRuneId": 3188, - "mwallBlockId": 2128, - "pushDelay": 1060, - "enabled": true, - "pushMaxKey": "PageUp" - }, - "AnalysersPanel": { - "lootItems": [ - - ], - "bestHit": 0, - "bestHeal": 0 - }, - "posCheckRetries": 0, - "killSteal": { - "setting": true, - "enabled": false, - "hp": 20, - "id": 3155 - } -} \ No newline at end of file diff --git a/modules/game_bot/default_configs/vithrax_1.2/0_AAmain.lua b/modules/game_bot/default_configs/vithrax_1.2/0_AAmain.lua new file mode 100644 index 0000000..6abc411 --- /dev/null +++ b/modules/game_bot/default_configs/vithrax_1.2/0_AAmain.lua @@ -0,0 +1,7 @@ +-- main tab +UI.Label("Vithrax CFG v1.2 \n \n Scripting Service: \n Vithrax#5814") + +UI.Separator() + + + diff --git a/modules/game_bot/default_configs/vithrax_1.1/0_BotSever.lua b/modules/game_bot/default_configs/vithrax_1.2/0_BotSever.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/0_BotSever.lua rename to modules/game_bot/default_configs/vithrax_1.2/0_BotSever.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/1_alarms.lua b/modules/game_bot/default_configs/vithrax_1.2/1_alarms.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/1_alarms.lua rename to modules/game_bot/default_configs/vithrax_1.2/1_alarms.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/1_combo.lua b/modules/game_bot/default_configs/vithrax_1.2/1_combo.lua similarity index 99% rename from modules/game_bot/default_configs/vithrax_1.1/1_combo.lua rename to modules/game_bot/default_configs/vithrax_1.2/1_combo.lua index 966d717..641f495 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/1_combo.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/1_combo.lua @@ -377,7 +377,7 @@ macro(100, function() if player:isWalking() then return end local p = toFollowPos[posz()] if not p then return end - if autoWalk(p, 20, {ignoreNonPathable=true, precision=1, ignoreStairs=false}) then + if CaveBot.walkTo(p, 20, {ignoreNonPathable=true, precision=1, ignoreStairs=false}) then delay(100) end end) diff --git a/modules/game_bot/default_configs/vithrax_1.1/1_pushmax.lua b/modules/game_bot/default_configs/vithrax_1.2/1_pushmax.lua similarity index 86% rename from modules/game_bot/default_configs/vithrax_1.1/1_pushmax.lua rename to modules/game_bot/default_configs/vithrax_1.2/1_pushmax.lua index f4ff8df..e521d3f 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/1_pushmax.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/1_pushmax.lua @@ -89,14 +89,8 @@ end local target local targetTile local targetOldPos - macro(10, function() if not storage[pushPanelName].enabled then return end - if getTarget() then - target = getTarget() - else - target = g_game.getFollowingCreature() - end if target and targetTile then if not matchPosition(target:getPosition().x, target:getPosition().y, targetTile:getPosition().x, targetTile:getPosition().y) then local tile = g_map.getTile(target:getPosition()) @@ -140,19 +134,31 @@ end) local resetTimer = now onKeyDown(function(keys) - if not target or not storage[pushPanelName].enabled then return end + if not storage[pushPanelName].enabled then return end if keys == storage[pushPanelName].pushMaxKey and resetTimer == 0 then - local tile = getTileUnderCursor() - if tile and not tile:getCreatures()[1] then - targetTile = tile - tile:setText("DESTINATION") - end - end - resetTimer = now + if not target then + local tile = getTileUnderCursor() + if tile and getDistanceBetween(pos(), tile:getPosition()) <= 1 then + if tile:getCreatures()[1] then + target = tile:getCreatures()[1] + tile:setText("PUSH TARGET") + end + end + else + local tile = getTileUnderCursor() + if tile and not tile:getCreatures()[1] then + targetTile = tile + tile:setText("DESTINATION") + end + end + resetTimer = now + end end) + + onKeyPress(function(keys) - if not target or not storage[pushPanelName].enabled then return end - if keys == storage[pushPanelName].pushMaxKey and (resetTimer - now) < -10 then + if not storage[pushPanelName].enabled then return end + if keys == storage.pushMaxKey and (resetTimer - now) < -10 then for _, tile in ipairs(g_map.getTiles(posz())) do if getDistanceBetween(pos(), tile:getPosition()) < 3 then if tile:getText() ~= "" then @@ -167,9 +173,11 @@ onKeyPress(function(keys) resetTimer = 0 end end) + onCreaturePositionChange(function(creature, newPos, oldPos) - if target and target:isPlayer() and storage[pushPanelName].enabled then + if target and storage[pushPanelName].enabled then if creature:getName() == target:getName() then + target = nil targetTile = nil for _, tile in ipairs(g_map.getTiles(posz())) do if getDistanceBetween(pos(), tile:getPosition()) < 3 then diff --git a/modules/game_bot/default_configs/vithrax_1.1/2HealBot.lua b/modules/game_bot/default_configs/vithrax_1.2/2HealBot.lua similarity index 55% rename from modules/game_bot/default_configs/vithrax_1.1/2HealBot.lua rename to modules/game_bot/default_configs/vithrax_1.2/2HealBot.lua index 655c8dd..e609f0a 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/2HealBot.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/2HealBot.lua @@ -49,6 +49,154 @@ if rootWidget then healWindow = g_ui.createWidget('HealWindow', rootWidget) healWindow:hide() + local refreshSpells = function() + if storage[healPanelName].spellTable and #storage[healPanelName].spellTable > 0 then + for i, child in pairs(healWindow.spells.spellList:getChildren()) do + child:destroy() + end + for _, entry in pairs(storage[healPanelName].spellTable) do + local label = g_ui.createWidget("SpellEntry", healWindow.spells.spellList) + label.enabled:setChecked(entry.enabled) + label.enabled.onClick = function(widget) + entry.enabled = not entry.enabled + label.enabled:setChecked(entry.enabled) + end + label.remove.onClick = function(widget) + table.removevalue(storage[healPanelName].spellTable, entry) + label:destroy() + end + label:setText("(MP>" .. entry.cost .. ") " .. entry.origin .. entry.sign .. entry.value .. ":" .. entry.spell) + end + end + end + refreshSpells() + + local refreshItems = function() + if storage[healPanelName].itemTable and #storage[healPanelName].itemTable > 0 then + for i, child in pairs(healWindow.items.itemList:getChildren()) do + child:destroy() + end + for _, entry in pairs(storage[healPanelName].itemTable) do + local label = g_ui.createWidget("SpellEntry", healWindow.items.itemList) + label.enabled:setChecked(entry.enabled) + label.enabled.onClick = function(widget) + entry.enabled = not entry.enabled + label.enabled:setChecked(entry.enabled) + end + label.remove.onClick = function(widget) + table.removevalue(storage[healPanelName].itemTable, entry) + label:destroy() + end + label:setText(entry.origin .. entry.sign .. entry.value .. ":" .. entry.item) + end + end + end + refreshItems() + + healWindow.spells.MoveUp.onClick = function(widget) + local input = healWindow.spells.spellList:getFocusedChild() + if not input then return end + local index = healWindow.spells.spellList:getChildIndex(input) + if index < 2 then return end + + local move + if storage[healPanelName].spellTable and #storage[healPanelName].spellTable > 0 then + for _, entry in pairs(storage[healPanelName].spellTable) do + if entry.index == index -1 then + move = entry + end + if entry.index == index then + move.index = index + entry.index = index -1 + end + end + end + table.sort(storage[healPanelName].spellTable, function(a,b) return a.index < b.index end) + + healWindow.spells.spellList:moveChildToIndex(input, index - 1) + healWindow.spells.spellList:ensureChildVisible(input) + end + + healWindow.spells.MoveDown.onClick = function(widget) + local input = healWindow.spells.spellList:getFocusedChild() + if not input then return end + local index = healWindow.spells.spellList:getChildIndex(input) + if index >= healWindow.spells.spellList:getChildCount() then return end + + local move + local move2 + if storage[healPanelName].spellTable and #storage[healPanelName].spellTable > 0 then + for _, entry in pairs(storage[healPanelName].spellTable) do + if entry.index == index +1 then + move = entry + end + if entry.index == index then + move2 = entry + end + end + if move and move2 then + move.index = index + move2.index = index + 1 + end + end + table.sort(storage[healPanelName].spellTable, function(a,b) return a.index < b.index end) + + healWindow.spells.spellList:moveChildToIndex(input, index + 1) + healWindow.spells.spellList:ensureChildVisible(input) + end + + healWindow.items.MoveUp.onClick = function(widget) + local input = healWindow.items.itemList:getFocusedChild() + if not input then return end + local index = healWindow.items.itemList:getChildIndex(input) + if index < 2 then return end + + local move + if storage[healPanelName].itemTable and #storage[healPanelName].itemTable > 0 then + for _, entry in pairs(storage[healPanelName].itemTable) do + if entry.index == index -1 then + move = entry + end + if entry.index == index then + move.index = index + entry.index = index - 1 + end + end + end + table.sort(storage[healPanelName].itemTable, function(a,b) return a.index < b.index end) + + healWindow.items.itemList:moveChildToIndex(input, index - 1) + healWindow.items.itemList:ensureChildVisible(input) + end + + healWindow.items.MoveDown.onClick = function(widget) + local input = healWindow.items.itemList:getFocusedChild() + if not input then return end + local index = healWindow.items.itemList:getChildIndex(input) + if index >= healWindow.items.itemList:getChildCount() then return end + + local move + local move2 + if storage[healPanelName].itemTable and #storage[healPanelName].itemTable > 0 then + for _, entry in pairs(storage[healPanelName].itemTable) do + if entry.index == index +1 then + move = entry + end + if entry.index == index then + move2 = entry + end + end + if move and move2 then + move.index = index + move2.index = index + 1 + end + end + table.sort(storage[healPanelName].itemTable, function(a,b) return a.index < b.index end) + + healWindow.items.itemList:moveChildToIndex(input, index + 1) + healWindow.items.itemList:ensureChildVisible(input) + end + healWindow.spells.addSpell.onClick = function(widget) local spellFormula = healWindow.spells.spellFormula:getText():trim() @@ -93,17 +241,12 @@ if rootWidget then end if spellFormula:len() > 0 then - table.insert(storage[healPanelName].spellTable, {spell = spellFormula, sign = equasion, origin = source, cost = manaCost, value = spellTrigger}) - local label = g_ui.createWidget("SpellEntry", healWindow.spells.spellList) - label.remove.onClick = function(widget) - table.removevalue(storage[healPanelName].spellTable, label:getText()) - label:destroy() - end - label:setText("(MP>" .. manaCost .. ") " .. source .. equasion .. spellTrigger .. ":" .. spellFormula) + table.insert(storage[healPanelName].spellTable, {index = #storage[healPanelName].spellTable+1, spell = spellFormula, sign = equasion, origin = source, cost = manaCost, value = spellTrigger, enabled = true}) healWindow.spells.spellFormula:setText('') healWindow.spells.spellValue:setText('') healWindow.spells.manaCost:setText('') end + refreshSpells() end healWindow.items.addItem.onClick = function(widget) @@ -117,12 +260,11 @@ if rootWidget then if not trigger then warn("HealBot: incorrect trigger value!") - healWindow.items.id:setItemId(0) - healWindow.items.trigger:setText('') + healWindow.items.itemId:setItemId(0) + healWindow.items.itemValue:setText('') return end - if src == "Current Mana" then source = "MP" elseif src == "Current Health" then @@ -142,37 +284,10 @@ if rootWidget then end if id > 100 then - table.insert(storage[healPanelName].itemTable, {item = id, sign = equasion, origin = source, value = trigger}) - local label = g_ui.createWidget("SpellEntry", healWindow.items.itemList) - label.remove.onClick = function(widget) - table.removevalue(storage[healPanelName].itemTable, label:getText()) - label:destroy() - end - label:setText(source .. equasion .. trigger .. ":" .. id) - healWindow.items.id:setItemId(0) - healWindow.items.trigger:setText('') - end - end - - if storage[healPanelName].itemTable and #storage[healPanelName].itemTable > 0 then - for _, entry in pairs(storage[healPanelName].itemTable) do - local label = g_ui.createWidget("SpellEntry", healWindow.items.itemList) - label.remove.onClick = function(widget) - table.removevalue(storage[healPanelName].itemTable, entry) - label:destroy() - end - label:setText(entry.origin .. entry.sign .. entry.value .. ":" .. entry.item) - end - end - - if storage[healPanelName].spellTable and #storage[healPanelName].spellTable > 0 then - for _, entry in pairs(storage[healPanelName].spellTable) do - local label = g_ui.createWidget("SpellEntry", healWindow.spells.spellList) - label.remove.onClick = function(widget) - table.removevalue(storage[healPanelName].spellTable, entry) - label:destroy() - end - label:setText("(MP>" .. entry.cost .. ") " .. entry.origin .. entry.sign .. entry.value .. ":" .. entry.spell) + table.insert(storage[healPanelName].itemTable, {index = #storage[healPanelName].itemTable+1,item = id, sign = equasion, origin = source, value = trigger, enabled = true}) + refreshItems() + healWindow.items.itemId:setItemId(0) + healWindow.items.itemValue:setText('') end end @@ -186,7 +301,7 @@ macro(100, function() if not storage[healPanelName].enabled or modules.game_cooldown.isGroupCooldownIconActive(2) or #storage[healPanelName].spellTable == 0 then return end for _, entry in pairs(storage[healPanelName].spellTable) do - if mana() >= tonumber(entry.cost) and not getSpellCoolDown(entry.spell) then + if mana() >= tonumber(entry.cost) and not getSpellCoolDown(entry.spell) and entry.enabled then if entry.origin == "HP%" then if entry.sign == "=" and hppercent() == entry.value then say(entry.spell) @@ -242,7 +357,7 @@ macro(500, function() for _, entry in pairs(storage[healPanelName].itemTable) do local item = findItem(entry.item) - if item then + if item and entry.enabled then if entry.origin == "HP%" then if entry.sign == "=" and hppercent() == entry.value then useWith(entry.item, player) diff --git a/modules/game_bot/default_configs/vithrax_1.1/3_Sio.lua b/modules/game_bot/default_configs/vithrax_1.2/3_Sio.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/3_Sio.lua rename to modules/game_bot/default_configs/vithrax_1.2/3_Sio.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/3_player list.lua b/modules/game_bot/default_configs/vithrax_1.2/3_playerlist.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/3_player list.lua rename to modules/game_bot/default_configs/vithrax_1.2/3_playerlist.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/AttackBot.lua b/modules/game_bot/default_configs/vithrax_1.2/AttackBot.lua similarity index 66% rename from modules/game_bot/default_configs/vithrax_1.1/AttackBot.lua rename to modules/game_bot/default_configs/vithrax_1.2/AttackBot.lua index 5fe4abf..758da02 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/AttackBot.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/AttackBot.lua @@ -71,7 +71,8 @@ local categories = { "Wave (exevo tera hur, exevo gran vis lux)", "Targeted Spell (exori ico, exori flam etc.)", "Targeted Rune (sudden death, heavy magic missle etc.)", - "Area Rune (great fireball, avalanche etc.)" + "Area Rune (great fireball, avalanche etc.)", + "Empowerment (utito tempo)" } local labels = { @@ -83,6 +84,7 @@ local labels = { "Targeted Spell", "Targeted Rune", "Area Rune", + "Buff" } local range = { @@ -109,7 +111,8 @@ local pattern = { "Small Wave (gran frigo hur)", "Beam (exevo vis lux)", "Adjacent (exori)", - "Area Rune (GFB, AVA)" + "Area Rune (GFB, AVA)", + "Empowerment" } local updateModeText = function() @@ -290,6 +293,86 @@ if rootWidget then inputTypeToggle() end + local refreshAttacks = function() + if storage[attackPanelName].attackTable and #storage[attackPanelName].attackTable > 0 then + for i, child in pairs(attackWindow.attackList:getChildren()) do + child:destroy() + end + for _, entry in pairs(storage[attackPanelName].attackTable) do + local label = g_ui.createWidget("AttackEntry", attackWindow.attackList) + label.enabled:setChecked(entry.enabled) + label.enabled.onClick = function(widget) + entry.enabled = not entry.enabled + label.enabled:setChecked(entry.enabled) + end + label.remove.onClick = function(widget) + table.removevalue(storage[attackPanelName].attackTable, entry) + label:destroy() + end + if entry.pvp then + label:setText("(" .. entry.manaCost .. "% MP) " .. labels[entry.category] .. ": " .. entry.attack .. " (Range: ".. entry.dist .. ")") + label:setColor("yellow") + else + label:setText("(" .. entry.manaCost .. "% MP & mob >= " .. entry.minMonsters .. ") " .. labels[entry.category] .. ": " .. entry.attack .. " (Range: ".. entry.dist .. ")") + label:setColor("green") + end + end + end + end + refreshAttacks() + + attackWindow.MoveUp.onClick = function(widget) + local input = attackWindow.attackList:getFocusedChild() + if not input then return end + local index = attackWindow.attackList:getChildIndex(input) + if index < 2 then return end + + local move + if storage[attackPanelName].attackTable and #storage[attackPanelName].attackTable > 0 then + for _, entry in pairs(storage[attackPanelName].attackTable) do + if entry.index == index -1 then + move = entry + end + if entry.index == index then + move.index = index + entry.index = index -1 + end + end + end + table.sort(storage[attackPanelName].attackTable, function(a,b) return a.index < b.index end) + + attackWindow.attackList:moveChildToIndex(input, index - 1) + attackWindow.attackList:ensureChildVisible(input) + end + + attackWindow.MoveDown.onClick = function(widget) + local input = attackWindow.attackList:getFocusedChild() + if not input then return end + local index = attackWindow.attackList:getChildIndex(input) + if index >= attackWindow.attackList:getChildCount() then return end + + local move + local move2 + if storage[attackPanelName].attackTable and #storage[attackPanelName].attackTable > 0 then + for _, entry in pairs(storage[attackPanelName].attackTable) do + if entry.index == index +1 then + move = entry + end + if entry.index == index then + move2 = entry + end + end + if move and move2 then + move.index = index + move2.index = index + 1 + end + end + table.sort(storage[attackPanelName].attackTable, function(a,b) return a.index < b.index end) + + attackWindow.attackList:moveChildToIndex(input, index + 1) + attackWindow.attackList:ensureChildVisible(input) + end + attackWindow.addButton.onClick = function(widget) local val if (item and attackWindow.itemId:getItemId() <= 100) or (not item and attackWindow.spellFormula:getText():len() == 0) then @@ -306,36 +389,11 @@ if rootWidget then else val = attackWindow.spellFormula:getText() end - local pvpText - table.insert(storage[attackPanelName].attackTable, {attack = val, manaCost = tonumber(attackWindow.minMana:getText()), minMonsters = tonumber(attackWindow.minMonsters:getText()), pvp = pvpDedicated, dist = j-1, model = k, category = i}) - local label = g_ui.createWidget("AttackEntry", attackWindow.attackList) - if pvpDedicated then - label:setText("(" .. tonumber(attackWindow.minMana:getText()) .. "% MP) " .. labels[i] .. ": " .. val .. " (Range: ".. j-1 .. ")") - label:setColor("yellow") - else - label:setText("(" .. tonumber(attackWindow.minMana:getText()) .. "% MP & mob >= " .. tonumber(attackWindow.minMonsters:getText()) .. ") " .. labels[i] .. ": " .. val .. " (Range: ".. j-1 .. ")") - label:setColor("green") - end + table.insert(storage[attackPanelName].attackTable, {index = #storage[attackPanelName].attackTable+1, attack = val, manaCost = tonumber(attackWindow.minMana:getText()), minMonsters = tonumber(attackWindow.minMonsters:getText()), pvp = pvpDedicated, dist = j-1, model = k, category = i, enabled = true}) + refreshAttacks() clearValues() end end - - if storage[attackPanelName].attackTable and #storage[attackPanelName].attackTable > 0 then - for _, entry in pairs(storage[attackPanelName].attackTable) do - local label = g_ui.createWidget("AttackEntry", attackWindow.attackList) - label.remove.onClick = function(widget) - table.removevalue(storage[attackPanelName].attackTable, entry) - label:destroy() - end - if entry.pvp then - label:setText("(" .. entry.manaCost .. "% MP) " .. labels[entry.category] .. ": " .. entry.attack .. " (Range: ".. j-1 .. ")") - label:setColor("yellow") - else - label:setText("(" .. entry.manaCost .. "% MP & mob >= " .. entry.minMonsters .. ") " .. labels[entry.category] .. ": " .. entry.attack .. " (Range: ".. j-1 .. ")") - label:setColor("green") - end - end - end end -- executor @@ -345,6 +403,7 @@ end -- k = pattern - covered local patterns = { + "", "", [[ 0000001000000 @@ -440,6 +499,7 @@ local patterns = { } local safePatterns = { + "", "", [[ 000000010000000 @@ -571,7 +631,7 @@ local posW = [[ macro(1000, function() if not storage[attackPanelName].enabled then return end - if #storage[attackPanelName].attackTable == 0 or isInPz() or not target() or modules.game_cooldown.isGroupCooldownIconActive(1) or modules.game_cooldown.isGroupCooldownIconActive(4) then return end + if #storage[attackPanelName].attackTable == 0 or isInPz() or not target() or modules.game_cooldown.isGroupCooldownIconActive(1) then return end local monstersN = 0 local monstersE = 0 @@ -606,53 +666,71 @@ macro(1000, function() end for _, entry in pairs(storage[attackPanelName].attackTable) do - if (type(entry.attack) == "string" and canCast(entry.attack)) or (type(entry.attack) == "number" and findItem(entry.attack)) then - if manapercent() >= entry.manaCost and distanceFromPlayer(target():getPosition()) <= entry.dist then - if storage[attackPanelName].pvpMode then - if entry.pvp and target():canShoot() then - if type(entry.attack) == "string" then - say(entry.attack) - return - else - if not storage.isUsing then - useWith(entry.attack, target()) + if entry.enabled then + if (type(entry.attack) == "string" and canCast(entry.attack)) or (type(entry.attack) == "number" and findItem(entry.attack)) then + if manapercent() >= entry.manaCost and distanceFromPlayer(target():getPosition()) <= entry.dist then + if storage[attackPanelName].pvpMode then + if entry.pvp then + if type(entry.attack) == "string" and target():canShoot() then + say(entry.attack) return - end - end - end - else - if entry.category == 6 or entry.category == 7 then - if getMonsters(4) >= entry.minMonsters then - if type(entry.attack) == "number" then - if not storage.isUsing then + else + if not storage.isUsing and target():canShoot() then useWith(entry.attack, target()) return end - else - say(entry.attack) - return end end else - if killsToRs() > 2 then - local areaTile = getBestTileByPatern(patterns[4], 2, entry.dist, storage[attackPanelName].pvpSafe) - if entry.category == 4 and (not storage[attackPanelName].pvpSafe or isSafe(2, false)) and bestSide >= entry.minMonsters then - say(entry.attack) - return - elseif entry.category == 3 and (not storage[attackPanelName].pvpSafe or isSafe(2, false)) and getMonsters(1) >= entry.minMonsters then - say(entry.attack) - return - elseif entry.category == 5 and getCreaturesInArea(player, patterns[entry.model], 2) >= entry.minMonsters and (not storage[attackPanelName].pvpSafe or getCreaturesInArea(player, safePatterns[entry.model], 3) == 0) then - say(entry.attack) - return - elseif entry.category == 2 and getCreaturesInArea(pos(), patterns[entry.model], 2) >= entry.minMonsters and (not storage[attackPanelName].pvpSafe or getCreaturesInArea(pos(), safePatterns[entry.model], 3) == 0) then - say(entry.attack) - return - elseif entry.category == 8 and areaTile and areaTile.count >= entry.minMonsters then - if not storage.isUsing then - useWith(entry.attack, areaTile.pos:getTopUseThing()) + if entry.category == 6 or entry.category == 7 then + if getMonsters(4) >= entry.minMonsters then + if type(entry.attack) == "number" then + if not storage.isUsing then + useWith(entry.attack, target()) + return + end + else + say(entry.attack) + return + end + end + else + if killsToRs() > 2 then + if entry.category == 4 and (not storage[attackPanelName].pvpSafe or isSafe(2, false)) and bestSide >= entry.minMonsters then + say(entry.attack) + return + elseif entry.category == 3 and (not storage[attackPanelName].pvpSafe or isSafe(2, false)) and getMonsters(1) >= entry.minMonsters then + say(entry.attack) + return + elseif entry.category == 5 and getCreaturesInArea(player, patterns[entry.model], 2) >= entry.minMonsters and (not storage[attackPanelName].pvpSafe or getCreaturesInArea(player, safePatterns[entry.model], 3) == 0) then + say(entry.attack) + return + elseif entry.category == 2 and getCreaturesInArea(pos(), patterns[entry.model], 2) >= entry.minMonsters and (not storage[attackPanelName].pvpSafe or getCreaturesInArea(pos(), safePatterns[entry.model], 3) == 0) then + say(entry.attack) + return + elseif entry.category == 8 and getBestTileByPatern(patterns[5], 2, entry.dist, storage[attackPanelName].pvpSafe) and getBestTileByPatern(patterns[5], 2, entry.dist, storage[attackPanelName].pvpSafe).count >= entry.minMonsters then + if not storage.isUsing then + useWith(entry.attack, getBestTileByPatern(patterns[5], 2, entry.dist, storage[attackPanelName].pvpSafe).pos:getTopUseThing()) + end + return + elseif entry.category == 9 and not isBuffed() and getMonsters(entry.dist) >= entry.minMonsters then + say(entry.attack) + return + else + if entry.category == 6 or entry.category == 7 then + if getMonsters(4) >= entry.minMonsters then + if type(entry.attack) == "number" then + if not storage.isUsing then + useWith(entry.attack, target()) + return + end + else + say(entry.attack) + return + end + end + end end - return else if entry.category == 6 or entry.category == 7 then if getMonsters(4) >= entry.minMonsters then @@ -668,20 +746,6 @@ macro(1000, function() end end end - else - if entry.category == 6 or entry.category == 7 then - if getMonsters(4) >= entry.minMonsters then - if type(entry.attack) == "number" then - if not storage.isUsing then - useWith(entry.attack, target()) - return - end - else - say(entry.attack) - return - end - end - end end end end diff --git a/modules/game_bot/default_configs/vithrax_1.1/AttackBot.otui b/modules/game_bot/default_configs/vithrax_1.2/AttackBot.otui similarity index 83% rename from modules/game_bot/default_configs/vithrax_1.1/AttackBot.otui rename to modules/game_bot/default_configs/vithrax_1.2/AttackBot.otui index be03d32..e5c8299 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/AttackBot.otui +++ b/modules/game_bot/default_configs/vithrax_1.2/AttackBot.otui @@ -1,9 +1,18 @@ AttackEntry < Label background-color: alpha - text-offset: 2 0 + text-offset: 18 0 focusable: true height: 16 + CheckBox + id: enabled + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + width: 15 + height: 15 + margin-top: 2 + margin-left: 3 + $focus: background-color: #00000055 @@ -17,7 +26,7 @@ AttackEntry < Label AttackWindow < MainWindow !text: tr('AttackBot') - size: 490 350 + size: 520 350 @onEscape: self:hide() TextList @@ -26,7 +35,7 @@ AttackWindow < MainWindow anchors.right: parent.right anchors.top: parent.top padding: 1 - size: 470 150 + size: 500 150 margin-left: 3 margin-top: 3 margin-left: 3 @@ -147,7 +156,7 @@ AttackWindow < MainWindow Label anchors.left: parameter2Prev.left anchors.top: parameter2Prev.bottom - margin-top: 17 + margin-top: 10 text-align: center text: Min Monsters: @@ -173,21 +182,39 @@ AttackWindow < MainWindow CheckBox id: pvpSpell - anchors.left: minMonsters.right + anchors.right: minMana.right + anchors.top: minMana.bottom width: 100 - margin-left: 10 - anchors.verticalCenter: minMonsters.verticalCenter + margin-left: 30 + margin-top: 6 text: Spell for PVP Button id: addButton - anchors.horizontalCenter: pvpSpell.horizontalCenter - anchors.verticalCenter: minMana.verticalCenter + anchors.right: CloseButton.right + anchors.bottom: BottomSeparator.top text-align: center text: Add - margin-left: 5 - margin-left: 5 - size: 45 21 + margin-bottom: 10 + size: 80 20 + margin-right: 15 + + Button + id: MoveUp + anchors.right: prev.right + anchors.bottom: prev.top + size: 80 20 + text: Move Up + margin-bottom: 2 + + Button + id: MoveDown + anchors.right: prev.right + anchors.bottom: prev.top + size: 80 20 + text: Move Down + text-align: center + margin-bottom: 2 HorizontalSeparator id: BottomSeparator diff --git a/modules/game_bot/default_configs/vithrax_1.1/BotServer.otui b/modules/game_bot/default_configs/vithrax_1.2/BotServer.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/BotServer.otui rename to modules/game_bot/default_configs/vithrax_1.2/BotServer.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/Castle.lua b/modules/game_bot/default_configs/vithrax_1.2/Castle.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/Castle.lua rename to modules/game_bot/default_configs/vithrax_1.2/Castle.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/Conditions.otui b/modules/game_bot/default_configs/vithrax_1.2/Conditions.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/Conditions.otui rename to modules/game_bot/default_configs/vithrax_1.2/Conditions.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/HealBot.otui b/modules/game_bot/default_configs/vithrax_1.2/HealBot.otui similarity index 95% rename from modules/game_bot/default_configs/vithrax_1.1/HealBot.otui rename to modules/game_bot/default_configs/vithrax_1.2/HealBot.otui index be0f8e6..e179b85 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/HealBot.otui +++ b/modules/game_bot/default_configs/vithrax_1.2/HealBot.otui @@ -17,10 +17,19 @@ SpellConditionBox < ComboBox SpellEntry < Label background-color: alpha - text-offset: 2 0 + text-offset: 18 0 focusable: true height: 16 + CheckBox + id: enabled + anchors.left: parent.left + anchors.verticalCenter: parent.verticalCenter + width: 15 + height: 15 + margin-top: 2 + margin-left: 3 + $focus: background-color: #00000055 @@ -53,7 +62,7 @@ SpellHealing < Panel image-source: /images/ui/panel_flat image-border: 6 padding: 3 - size: 460 130 + size: 490 130 Label id: whenSpell @@ -124,7 +133,7 @@ SpellHealing < Panel anchors.left: parent.left anchors.bottom: parent.bottom padding: 1 - size: 240 116 + size: 270 116 margin-bottom: 3 margin-left: 3 vertical-scrollbar: spellListScrollBar @@ -171,7 +180,7 @@ ItemHealing < Panel image-source: /images/ui/panel_flat image-border: 6 padding: 3 - size: 460 130 + size: 490 130 Label id: whenItem @@ -228,7 +237,7 @@ ItemHealing < Panel anchors.left: parent.left anchors.bottom: parent.bottom padding: 1 - size: 240 116 + size: 270 116 margin-top: 3 margin-bottom: 3 margin-left: 3 @@ -274,7 +283,7 @@ ItemHealing < Panel HealWindow < MainWindow !text: tr('Self Healer') - size: 490 350 + size: 520 350 @onEscape: self:hide() SpellHealing diff --git a/modules/game_bot/default_configs/vithrax_1.1/Title.lua b/modules/game_bot/default_configs/vithrax_1.2/Title.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/Title.lua rename to modules/game_bot/default_configs/vithrax_1.2/Title.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/_Conditions.lua b/modules/game_bot/default_configs/vithrax_1.2/_Conditions.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/_Conditions.lua rename to modules/game_bot/default_configs/vithrax_1.2/_Conditions.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/_cavebot.lua b/modules/game_bot/default_configs/vithrax_1.2/_cavebot.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/_cavebot.lua rename to modules/game_bot/default_configs/vithrax_1.2/_cavebot.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/_vlib.lua b/modules/game_bot/default_configs/vithrax_1.2/_vlib.lua similarity index 98% rename from modules/game_bot/default_configs/vithrax_1.1/_vlib.lua rename to modules/game_bot/default_configs/vithrax_1.2/_vlib.lua index 873882e..fd87596 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/_vlib.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/_vlib.lua @@ -1,13 +1,15 @@ --- lib ver 1.4 +-- lib ver 1.41 -- Author: Vithrax -- contains mostly basic function shortcuts and code shorteners function isBuffed() - if (4*(player:getSkillLevel(2) - player:getSkillBaseLevel(2))) < player:getSkillLevel(2) then - return false - else - return true + local var = false + for i=1,4 do + if (player:getSkillLevel(i) - player:getSkillBaseLevel(i)) > 5 and (4*(player:getSkillLevel(i) - player:getSkillBaseLevel(i))) < player:getSkillLevel(i) then + var = true + end end + return var end function killsToRs() @@ -17,7 +19,6 @@ end function canCast(spell) if not spell then return end if not getSpellData(spell) then return true end - if not getSpellCoolDown(spell) and mana() >= getSpellData(spell).manaCost and level() >= getSpellData(spell).level then return true else @@ -607,7 +608,7 @@ function reachGroundItem(id) end end if distanceFromPlayer(targetTile) > 1 then - if autoWalk(targetTile, 10, {ignoreNonPathable = true, precision=1}) then + if CaveBot.walkTo(targetTile, 10, {ignoreNonPathable = true, precision=1}) then delay(200) end else @@ -627,7 +628,7 @@ function useGroundItem(id) end if targetTile then if distanceFromPlayer(targetTile) > 1 then - if autoWalk(targetTile, 20, {ignoreNonWalkable = true, ignoreNonPathable = true, precision=1}) then + if CaveBot.walkTo(targetTile, 20, {ignoreNonWalkable = true, ignoreNonPathable = true, precision=1}) then delay(200) end else diff --git a/modules/game_bot/default_configs/vithrax_1.1/alarms.otui b/modules/game_bot/default_configs/vithrax_1.2/alarms.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/alarms.otui rename to modules/game_bot/default_configs/vithrax_1.2/alarms.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/analyzers.lua b/modules/game_bot/default_configs/vithrax_1.2/analyzers.lua similarity index 99% rename from modules/game_bot/default_configs/vithrax_1.1/analyzers.lua rename to modules/game_bot/default_configs/vithrax_1.2/analyzers.lua index 816a02b..e4244d7 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/analyzers.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/analyzers.lua @@ -105,7 +105,7 @@ if storage[analyserPanelName].lootItems and #storage[analyserPanelName].lootItem end lootListWindow.AddLoot.onClick = function(widget) - local lootName = lootListWindow.LootName:getText() + local lootName = lootListWindow.LootName:getText():lower() if lootName:len() > 0 and not table.contains(storage[analyserPanelName].lootItems, lootName, true) then table.insert(storage[analyserPanelName].lootItems, lootName) local label = g_ui.createWidget("LootItemName", lootListWindow.LootList) diff --git a/modules/game_bot/default_configs/vithrax_1.1/analyzers.otui b/modules/game_bot/default_configs/vithrax_1.2/analyzers.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/analyzers.otui rename to modules/game_bot/default_configs/vithrax_1.2/analyzers.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/antikick.lua b/modules/game_bot/default_configs/vithrax_1.2/antikick.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/antikick.lua rename to modules/game_bot/default_configs/vithrax_1.2/antikick.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/antipush.lua b/modules/game_bot/default_configs/vithrax_1.2/antipush.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/antipush.lua rename to modules/game_bot/default_configs/vithrax_1.2/antipush.lua diff --git a/modules/game_bot/default_configs/vithrax_1.2/bless_buy.lua b/modules/game_bot/default_configs/vithrax_1.2/bless_buy.lua new file mode 100644 index 0000000..d56c639 --- /dev/null +++ b/modules/game_bot/default_configs/vithrax_1.2/bless_buy.lua @@ -0,0 +1,8 @@ +if player:getBlessings() == 0 then + say("!bless") + schedule(2000, function() + if player:getBlessings() == 0 then + error("!! Blessings not bought !!") + end + end) +end diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/actions.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/actions.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/actions.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/actions.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/bank.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/bank.lua similarity index 96% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/bank.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/bank.lua index 7ade925..a69caf8 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/bank.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/bank.lua @@ -43,7 +43,7 @@ CaveBot.Extensions.Bank.setup = function() local pos = player:getPosition() local npcPos = npc:getPosition() if math.max(math.abs(pos.x - npcPos.x), math.abs(pos.y - npcPos.y)) > 3 then - autoWalk(npcPos, 20, {ignoreNonPathable = true, precision=3}) + CaveBot.walkTo(npcPos, 20, {ignoreNonPathable = true, precision=3}) delay(300) return "retry" end diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/buy_supplies.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/buy_supplies.lua similarity index 98% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/buy_supplies.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/buy_supplies.lua index 959d506..21bcb9c 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/buy_supplies.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/buy_supplies.lua @@ -46,7 +46,7 @@ CaveBot.Extensions.BuySupplies.setup = function() local pos = player:getPosition() local npcPos = npc:getPosition() if math.max(math.abs(pos.x - npcPos.x), math.abs(pos.y - npcPos.y)) > 3 then - autoWalk(npcPos, 20, {ignoreNonPathable = true, precision=3}) + CaveBot.walkTo(npcPos, 20, {ignoreNonPathable = true, precision=3}) delay(300) return "retry" end diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/cavebot.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/cavebot.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/cavebot.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/cavebot.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/cavebot.otui b/modules/game_bot/default_configs/vithrax_1.2/cavebot/cavebot.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/cavebot.otui rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/cavebot.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/config.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/config.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/config.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/config.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/config.otui b/modules/game_bot/default_configs/vithrax_1.2/cavebot/config.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/config.otui rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/config.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/d_withdraw.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/d_withdraw.lua similarity index 98% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/d_withdraw.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/d_withdraw.lua index a034e5f..888fd6a 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/d_withdraw.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/d_withdraw.lua @@ -82,7 +82,7 @@ CaveBot.Extensions.DWithdraw.setup = function() local dest = g_map.getTile(tPos) if not comparePosition(pos(), dest:getPosition()) then if not dest:getCreatures()[1] and dest:isWalkable() then - if autoWalk(dest:getPosition(), {ignoreNonPathable=true}) then + if CaveBot.walkTo(dest:getPosition(), {ignoreNonPathable=true}) then storage.stopSearch = true delay(100) end diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/depositer.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/depositer.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/depositer.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/depositer.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/depositor.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/depositor.lua similarity index 99% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/depositor.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/depositor.lua index c596650..f4e6026 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/depositor.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/depositor.lua @@ -126,7 +126,7 @@ CaveBot.Extensions.Depositor.setup = function() local dest = g_map.getTile(tPos) if not (getDistanceBetween(pos(), dest:getPosition()) <= 1) then if not dest:getCreatures()[1] and dest:isWalkable() then - if autoWalk(dest:getPosition(), {ignoreNonPathable=true}) then + if CaveBot.walkTo(dest:getPosition(), {ignoreNonPathable=true}) then storage.stopSearch = true delay(100) end diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/doors.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/doors.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/doors.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/doors.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/editor.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/editor.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/editor.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/editor.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/editor.otui b/modules/game_bot/default_configs/vithrax_1.2/cavebot/editor.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/editor.otui rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/editor.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/example_functions.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/example_functions.lua similarity index 92% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/example_functions.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/example_functions.lua index 556129c..05549ce 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/example_functions.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/example_functions.lua @@ -20,6 +20,10 @@ addExampleFunction("Click to browse example functions", [[ return true ]]) +addExampleFunction("Check for stamina and imbues", [[ + if stamina() < 900 or player:getSkillLevel(11) ~= 100 then CaveBot.setOff() return false else return true end +]]) + addExampleFunction("buy 200 mana potion from npc Eryn", [[ --buy 200 mana potions local npc = getCreatureByName("Eryn") diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/extension_template.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/extension_template.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/extension_template.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/extension_template.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/inbox_withdraw.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/inbox_withdraw.lua similarity index 94% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/inbox_withdraw.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/inbox_withdraw.lua index f96b019..63b58a6 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/inbox_withdraw.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/inbox_withdraw.lua @@ -79,7 +79,7 @@ CaveBot.Extensions.InWithdraw.setup = function() local dest = g_map.getTile(tPos) if not comparePosition(pos(), dest:getPosition()) then if not dest:getCreatures()[1] and dest:isWalkable() then - if autoWalk(dest:getPosition(), {ignoreNonPathable=true}) then + if CaveBot.walkTo(dest:getPosition(), {ignoreNonPathable=true}) then storage.stopSearch = true delay(100) end @@ -150,7 +150,7 @@ CaveBot.Extensions.InWithdraw.setup = function() local destination for i, container in pairs(getContainers()) do - if container:getCapacity() > container:getSize() and not string.find(container:getName():lower(), "depot") and not string.find(container:getName():lower(), "loot") and not string.find(container:getName():lower(), "inbox") then + if container:getCapacity() > #container:getItems() and not string.find(container:getName():lower(), "depot") and not string.find(container:getName():lower(), "loot") and not string.find(container:getName():lower(), "inbox") then destination = container end end diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/lure.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/lure.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/lure.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/lure.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/pos_check.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/pos_check.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/pos_check.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/pos_check.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/recorder.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/recorder.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/recorder.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/recorder.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/sell_all.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/sell_all.lua similarity index 95% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/sell_all.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/sell_all.lua index 1078ed2..274cc58 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/sell_all.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/sell_all.lua @@ -38,7 +38,7 @@ CaveBot.Extensions.SellAll.setup = function() local pos = player:getPosition() local npcPos = npc:getPosition() if math.max(math.abs(pos.x - npcPos.x), math.abs(pos.y - npcPos.y)) > 3 then - autoWalk(npcPos, 20, {ignoreNonPathable = true, precision=3}) + CaveBot.walkTo(npcPos, 20, {ignoreNonPathable = true, precision=3}) delay(300) return "retry" end diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/supply.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/supply.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/supply.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/supply.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/supply.otui b/modules/game_bot/default_configs/vithrax_1.2/cavebot/supply.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/supply.otui rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/supply.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/supply_check.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/supply_check.lua similarity index 95% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/supply_check.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/supply_check.lua index 3f56102..9ca04fc 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/supply_check.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/supply_check.lua @@ -13,43 +13,43 @@ CaveBot.Extensions.SupplyCheck.setup = function() if storage.supplyRetries > 50 then print("CaveBot[SupplyCheck]: Round limit reached, going back on refill.") storage.supplyRetries = 0 - return true + return false elseif (storage[suppliesPanelName].imbues and player:getSkillLevel(11) ~= 100) then print("CaveBot[SupplyCheck]: Imbues ran out. Going on refill.") storage.supplyRetries = 0 - return true + return false elseif (storage[suppliesPanelName].staminaSwitch and stamina() < tonumber(storage[suppliesPanelName].staminaValue)) then print("CaveBot[SupplyCheck]: Stamina ran out. Going on refill.") storage.supplyRetries = 0 - return true + return false elseif (softCount < 1 and storage[suppliesPanelName].SoftBoots) then print("CaveBot[SupplyCheck]: No soft boots left. Going on refill.") storage.supplyRetries = 0 - return true + return false elseif (totalItem1 < tonumber(storage[suppliesPanelName].item1Min) and storage[suppliesPanelName].item1 > 100) then print("CaveBot[SupplyCheck]: Not enough item: " .. storage[suppliesPanelName].item1 .. "(only " .. totalItem1 .. " left). Going on refill.") storage.supplyRetries = 0 - return true + return false elseif (totalItem2 < tonumber(storage[suppliesPanelName].item2Min) and storage[suppliesPanelName].item2 > 100) then print("CaveBot[SupplyCheck]: Not enough item: " .. storage[suppliesPanelName].item2 .. "(only " .. totalItem2 .. " left). Going on refill.") storage.supplyRetries = 0 - return true + return false elseif (totalItem3 < tonumber(storage[suppliesPanelName].item3Min) and storage[suppliesPanelName].item3 > 100) then print("CaveBot[SupplyCheck]: Not enough item: " .. storage[suppliesPanelName].item3 .. "(only " .. totalItem3 .. " left). Going on refill.") storage.supplyRetries = 0 - return true + return false elseif (totalItem4 < tonumber(storage[suppliesPanelName].item4Min) and storage[suppliesPanelName].item4 > 100) then print("CaveBot[SupplyCheck]: Not enough item: " .. storage[suppliesPanelName].item4 .. "(only " .. totalItem4 .. " left). Going on refill.") storage.supplyRetries = 0 - return true + return false elseif (totalItem5 < tonumber(storage[suppliesPanelName].item5Min) and storage[suppliesPanelName].item5 > 100) then print("CaveBot[SupplyCheck]: Not enough item: " .. storage[suppliesPanelName].item5 .. "(only " .. totalItem5 .. " left). Going on refill.") storage.supplyRetries = 0 - return true + return false elseif (freecap() < tonumber(storage[suppliesPanelName].capValue) and storage[suppliesPanelName].capSwitch) then print("CaveBot[SupplyCheck]: Not enough capacity. Going on refill.") storage.supplyRetries = 0 - return true + return false else print("CaveBot[SupplyCheck]: Enough supplies. Hunting. Round (" .. storage.supplyRetries .. "/50)") storage.supplyRetries = storage.supplyRetries + 1 diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/travel.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/travel.lua similarity index 94% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/travel.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/travel.lua index 20abd3e..eaeb36a 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/travel.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/travel.lua @@ -30,7 +30,7 @@ CaveBot.Extensions.Travel.setup = function() local pos = player:getPosition() local npcPos = npc:getPosition() if math.max(math.abs(pos.x - npcPos.x), math.abs(pos.y - npcPos.y)) > 3 then - autoWalk(npcPos, 20, {ignoreNonPathable = true, precision=3}) + CaveBot.walkTo(npcPos, 20, {ignoreNonPathable = true, precision=3}) delay(300) return "retry" end diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/walking.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/walking.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/walking.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/walking.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/cavebot/withdraw.lua b/modules/game_bot/default_configs/vithrax_1.2/cavebot/withdraw.lua similarity index 95% rename from modules/game_bot/default_configs/vithrax_1.1/cavebot/withdraw.lua rename to modules/game_bot/default_configs/vithrax_1.2/cavebot/withdraw.lua index 81a9bbf..523ab5a 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/cavebot/withdraw.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/cavebot/withdraw.lua @@ -82,7 +82,7 @@ CaveBot.Extensions.Withdraw.setup = function() local dest = g_map.getTile(tPos) if not comparePosition(pos(), dest:getPosition()) then if not dest:getCreatures()[1] and dest:isWalkable() then - if autoWalk(dest:getPosition(), {ignoreNonPathable=true}) then + if CaveBot.walkTo(dest:getPosition(), {ignoreNonPathable=true}) then storage.stopSearch = true delay(100) end @@ -186,7 +186,7 @@ CaveBot.Extensions.Withdraw.setup = function() local destination for i, container in pairs(getContainers()) do - if container:getCapacity() > container:getSize() and not string.find(container:getName():lower(), "depot") and not string.find(container:getName():lower(), "loot") and not string.find(container:getName():lower(), "inbox") then + if container:getCapacity() > #container:getItems() and not string.find(container:getName():lower(), "depot") and not string.find(container:getName():lower(), "loot") and not string.find(container:getName():lower(), "inbox") then destination = container end end diff --git a/modules/game_bot/default_configs/vithrax_1.1/combo.otui b/modules/game_bot/default_configs/vithrax_1.2/combo.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/combo.otui rename to modules/game_bot/default_configs/vithrax_1.2/combo.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/drop_items.lua b/modules/game_bot/default_configs/vithrax_1.2/drop_items.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/drop_items.lua rename to modules/game_bot/default_configs/vithrax_1.2/drop_items.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/eat_food.lua b/modules/game_bot/default_configs/vithrax_1.2/eat food.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/eat_food.lua rename to modules/game_bot/default_configs/vithrax_1.2/eat food.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/hunt.otui b/modules/game_bot/default_configs/vithrax_1.2/hunt.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/hunt.otui rename to modules/game_bot/default_configs/vithrax_1.2/hunt.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/impact.otui b/modules/game_bot/default_configs/vithrax_1.2/impact.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/impact.otui rename to modules/game_bot/default_configs/vithrax_1.2/impact.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/items.lua b/modules/game_bot/default_configs/vithrax_1.2/items.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/items.lua rename to modules/game_bot/default_configs/vithrax_1.2/items.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/jewellery_equipper.lua b/modules/game_bot/default_configs/vithrax_1.2/jewellery_equipper.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/jewellery_equipper.lua rename to modules/game_bot/default_configs/vithrax_1.2/jewellery_equipper.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/kill_steal.lua b/modules/game_bot/default_configs/vithrax_1.2/kill_steal.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/kill_steal.lua rename to modules/game_bot/default_configs/vithrax_1.2/kill_steal.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/loot.otui b/modules/game_bot/default_configs/vithrax_1.2/loot.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/loot.otui rename to modules/game_bot/default_configs/vithrax_1.2/loot.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/lootList.otui b/modules/game_bot/default_configs/vithrax_1.2/lootList.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/lootList.otui rename to modules/game_bot/default_configs/vithrax_1.2/lootList.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/mwall_timer.lua b/modules/game_bot/default_configs/vithrax_1.2/mwall_timer.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/mwall_timer.lua rename to modules/game_bot/default_configs/vithrax_1.2/mwall_timer.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/oberon.lua b/modules/game_bot/default_configs/vithrax_1.2/oberon.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/oberon.lua rename to modules/game_bot/default_configs/vithrax_1.2/oberon.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/player_list.otui b/modules/game_bot/default_configs/vithrax_1.2/player_list.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/player_list.otui rename to modules/game_bot/default_configs/vithrax_1.2/player_list.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/pushmax.otui b/modules/game_bot/default_configs/vithrax_1.2/pushmax.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/pushmax.otui rename to modules/game_bot/default_configs/vithrax_1.2/pushmax.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/siolist.otui b/modules/game_bot/default_configs/vithrax_1.2/siolist.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/siolist.otui rename to modules/game_bot/default_configs/vithrax_1.2/siolist.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/spy_level.lua b/modules/game_bot/default_configs/vithrax_1.2/spy_level.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/spy_level.lua rename to modules/game_bot/default_configs/vithrax_1.2/spy_level.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/supplies.lua b/modules/game_bot/default_configs/vithrax_1.2/supplies.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/supplies.lua rename to modules/game_bot/default_configs/vithrax_1.2/supplies.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/supplies.otui b/modules/game_bot/default_configs/vithrax_1.2/supplies.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/supplies.otui rename to modules/game_bot/default_configs/vithrax_1.2/supplies.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/creature.lua b/modules/game_bot/default_configs/vithrax_1.2/targetbot/creature.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/creature.lua rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/creature.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/creature_attack.lua b/modules/game_bot/default_configs/vithrax_1.2/targetbot/creature_attack.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/creature_attack.lua rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/creature_attack.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/creature_editor.lua b/modules/game_bot/default_configs/vithrax_1.2/targetbot/creature_editor.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/creature_editor.lua rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/creature_editor.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/creature_editor.otui b/modules/game_bot/default_configs/vithrax_1.2/targetbot/creature_editor.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/creature_editor.otui rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/creature_editor.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/creature_priority.lua b/modules/game_bot/default_configs/vithrax_1.2/targetbot/creature_priority.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/creature_priority.lua rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/creature_priority.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/looting.lua b/modules/game_bot/default_configs/vithrax_1.2/targetbot/looting.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/looting.lua rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/looting.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/looting.otui b/modules/game_bot/default_configs/vithrax_1.2/targetbot/looting.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/looting.otui rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/looting.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/target.lua b/modules/game_bot/default_configs/vithrax_1.2/targetbot/target.lua similarity index 99% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/target.lua rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/target.lua index adcd20e..c00869b 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/targetbot/target.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/targetbot/target.lua @@ -44,7 +44,7 @@ targetbotMacro = macro(100, function() local highestPriorityParams = nil for i, creature in ipairs(creatures) do local path = findPath(player:getPosition(), creature:getPosition(), 7, {ignoreLastCreature=true, ignoreNonPathable=true, ignoreCost=true}) - if creature:isMonster() and path then + if creature:isMonster() and creature:getType() < 3 and path then local params = TargetBot.Creature.calculateParams(creature, path) -- return {craeture, config, danger, priority} dangerLevel = dangerLevel + params.danger if params.priority > 0 then diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/target.otui b/modules/game_bot/default_configs/vithrax_1.2/targetbot/target.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/target.otui rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/target.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/targetbot/walking.lua b/modules/game_bot/default_configs/vithrax_1.2/targetbot/walking.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/targetbot/walking.lua rename to modules/game_bot/default_configs/vithrax_1.2/targetbot/walking.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/_tools.lua b/modules/game_bot/default_configs/vithrax_1.2/tools.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/_tools.lua rename to modules/game_bot/default_configs/vithrax_1.2/tools.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/use_all.lua b/modules/game_bot/default_configs/vithrax_1.2/use_all.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/use_all.lua rename to modules/game_bot/default_configs/vithrax_1.2/use_all.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/xp.otui b/modules/game_bot/default_configs/vithrax_1.2/xp.otui similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/xp.otui rename to modules/game_bot/default_configs/vithrax_1.2/xp.otui diff --git a/modules/game_bot/default_configs/vithrax_1.1/z_click_reuse.lua b/modules/game_bot/default_configs/vithrax_1.2/z_click_reuse.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/z_click_reuse.lua rename to modules/game_bot/default_configs/vithrax_1.2/z_click_reuse.lua diff --git a/modules/game_bot/default_configs/vithrax_1.1/z_mwalls.lua b/modules/game_bot/default_configs/vithrax_1.2/z_mwalls.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/z_mwalls.lua rename to modules/game_bot/default_configs/vithrax_1.2/z_mwalls.lua diff --git a/modules/game_bot/default_configs/vithrax_1.2/z_npc_talk.lua b/modules/game_bot/default_configs/vithrax_1.2/z_npc_talk.lua new file mode 100644 index 0000000..c07f112 --- /dev/null +++ b/modules/game_bot/default_configs/vithrax_1.2/z_npc_talk.lua @@ -0,0 +1,10 @@ +macro(50, function() + if not g_game.isAttacking() then return end + + if target() and target():isNpc() then + NPC.say("hi") + NPC.say("trade") + end + delay(950) + +end) \ No newline at end of file diff --git a/modules/game_bot/default_configs/vithrax_1.1/z_sort_supply.lua b/modules/game_bot/default_configs/vithrax_1.2/z_sort_supply.lua similarity index 86% rename from modules/game_bot/default_configs/vithrax_1.1/z_sort_supply.lua rename to modules/game_bot/default_configs/vithrax_1.2/z_sort_supply.lua index c15f1ab..db3c353 100644 --- a/modules/game_bot/default_configs/vithrax_1.1/z_sort_supply.lua +++ b/modules/game_bot/default_configs/vithrax_1.2/z_sort_supply.lua @@ -1,11 +1,22 @@ setDefaultTab("Cave") UI.Separator() +function containerIsFull(c) + if not c then return false end + + if c:getCapacity() > #c:getItems() then + return false + else + return true + end + +end + -- config local ammoBp = "crystal backpack" local potionBp = "camouflage backpack" -local runeBp = "yellow backpack" +local runeBp = "red backpack" -- script @@ -39,7 +50,7 @@ macro(500, "Supply Sorter", function() for i, container in pairs(getContainers()) do if (container:getName():lower() ~= potionBp:lower() and (string.find(container:getName(), "backpack") or string.find(container:getName(), "bag") or string.find(container:getName(), "chess"))) and not string.find(container:getName():lower(), "loot") then for j, item in pairs(container:getItems()) do - if table.find(potions, item:getId()) then + if table.find(potions, item:getId()) and not containerIsFull(potionsContainer) then g_game.move(item, potionsContainer:getSlotPosition(potionsContainer:getItemsCount()), item:getCount()) end end @@ -52,7 +63,7 @@ macro(500, "Supply Sorter", function() for i, container in pairs(getContainers()) do if (container:getName():lower() ~= runeBp:lower() and (string.find(container:getName(), "backpack") or string.find(container:getName(), "bag") or string.find(container:getName(), "chess"))) and not string.find(container:getName():lower(), "loot") then for j, item in pairs(container:getItems()) do - if table.find(runes, item:getId()) then + if table.find(runes, item:getId()) and not containerIsFull(runesContainer) then g_game.move(item, runesContainer:getSlotPosition(runesContainer:getItemsCount()), item:getCount()) end end @@ -65,7 +76,7 @@ macro(500, "Supply Sorter", function() for i, container in pairs(getContainers()) do if (container:getName():lower() ~= ammoBp:lower() and (string.find(container:getName(), "backpack") or string.find(container:getName(), "bag") or string.find(container:getName(), "chess"))) and not string.find(container:getName():lower(), "loot") then for j, item in pairs(container:getItems()) do - if table.find(ammo, item:getId()) then + if table.find(ammo, item:getId()) and not containerIsFull(ammoContainer) then g_game.move(item, ammoContainer:getSlotPosition(ammoContainer:getItemsCount()), item:getCount()) end end diff --git a/modules/game_bot/default_configs/vithrax_1.1/z_skin_bodies.lua b/modules/game_bot/default_configs/vithrax_1.2/z_stake_knife.lua similarity index 100% rename from modules/game_bot/default_configs/vithrax_1.1/z_skin_bodies.lua rename to modules/game_bot/default_configs/vithrax_1.2/z_stake_knife.lua diff --git a/modules/game_market/market.lua b/modules/game_market/market.lua index 5e55f76..a361294 100644 --- a/modules/game_market/market.lua +++ b/modules/game_market/market.lua @@ -1384,7 +1384,7 @@ function Market.onMarketEnter(depotItems, offers, balance, vocation, items) for i = 1, #marketItems[MarketCategory.TibiaCoins] do local item = marketItems[MarketCategory.TibiaCoins][i].displayItem - depotItems[item:getId()] = tibiaCoins + information.depotItems[item:getId()] = tibiaCoins end -- update the items widget to match depot items @@ -1425,9 +1425,10 @@ end function Market.onCoinBalance(coins, transferableCoins) tibiaCoins = coins + if not information or type(information.depotItems) ~= "table" then return end if not marketItems[MarketCategory.TibiaCoins] then return end for i = 1, #marketItems[MarketCategory.TibiaCoins] do local item = marketItems[MarketCategory.TibiaCoins][i].displayItem - depotItems[item:getId()] = tibiaCoins + information.depotItems[item:getId()] = tibiaCoins end end diff --git a/modules/game_skills/skills.lua b/modules/game_skills/skills.lua index c68b53b..1fec5db 100644 --- a/modules/game_skills/skills.lua +++ b/modules/game_skills/skills.lua @@ -282,24 +282,13 @@ function onSkillButtonClick(button) end function onExperienceChange(localPlayer, value) - local postFix = "" - if value > 1e15 then - postFix = "B" - value = math.floor(value / 1e9) - elseif value > 1e12 then - postFix = "M" - value = math.floor(value / 1e6) - elseif value > 1e9 then - postFix = "K" - value = math.floor(value / 1e3) - end - setSkillValue('experience', comma_value(value) .. postFix) + setSkillValue('experience', comma_value(value)) end function onLevelChange(localPlayer, value, percent) setSkillValue('level', value) local text = tr('You have %s percent to go', 100 - percent) .. '\n' .. - tr('%s of experience left', expToAdvance(localPlayer:getLevel(), localPlayer:getExperience())) + tr('%s of experience left', comma_value(expToAdvance(localPlayer:getLevel(), localPlayer:getExperience()))) if localPlayer.expSpeed ~= nil then local expPerHour = math.floor(localPlayer.expSpeed * 3600) @@ -308,7 +297,7 @@ function onLevelChange(localPlayer, value, percent) local hoursLeft = (nextLevelExp - localPlayer:getExperience()) / expPerHour local minutesLeft = math.floor((hoursLeft - math.floor(hoursLeft))*60) hoursLeft = math.floor(hoursLeft) - text = text .. '\n' .. tr('%d of experience per hour', expPerHour) + text = text .. '\n' .. comma_value(expPerHour) .. tr(' of experience per hour') text = text .. '\n' .. tr('Next level in %d hours and %d minutes', hoursLeft, minutesLeft) end end