mirror of
https://github.com/OTCv8/otclientv8.git
synced 2025-10-24 00:15:02 +02:00
Updated to OTCv8 3.1 rev 157
This commit is contained in:
712
modules/game_bot/default_configs/vBot_4.5/vBot/HealBot.lua
Normal file
712
modules/game_bot/default_configs/vBot_4.5/vBot/HealBot.lua
Normal file
@@ -0,0 +1,712 @@
|
||||
local standBySpells = false
|
||||
local standByItems = false
|
||||
|
||||
local red = "#ff0800" -- "#ff0800" / #ea3c53 best
|
||||
local blue = "#7ef9ff"
|
||||
|
||||
setDefaultTab("HP")
|
||||
local healPanelName = "healbot"
|
||||
local ui = setupUI([[
|
||||
Panel
|
||||
height: 38
|
||||
|
||||
BotSwitch
|
||||
id: title
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
text-align: center
|
||||
width: 130
|
||||
!text: tr('HealBot')
|
||||
|
||||
Button
|
||||
id: settings
|
||||
anchors.top: prev.top
|
||||
anchors.left: prev.right
|
||||
anchors.right: parent.right
|
||||
margin-left: 3
|
||||
height: 17
|
||||
text: Setup
|
||||
|
||||
Button
|
||||
id: 1
|
||||
anchors.top: prev.bottom
|
||||
anchors.left: parent.left
|
||||
text: 1
|
||||
margin-right: 2
|
||||
margin-top: 4
|
||||
size: 17 17
|
||||
|
||||
Button
|
||||
id: 2
|
||||
anchors.verticalCenter: prev.verticalCenter
|
||||
anchors.left: prev.right
|
||||
text: 2
|
||||
margin-left: 4
|
||||
size: 17 17
|
||||
|
||||
Button
|
||||
id: 3
|
||||
anchors.verticalCenter: prev.verticalCenter
|
||||
anchors.left: prev.right
|
||||
text: 3
|
||||
margin-left: 4
|
||||
size: 17 17
|
||||
|
||||
Button
|
||||
id: 4
|
||||
anchors.verticalCenter: prev.verticalCenter
|
||||
anchors.left: prev.right
|
||||
text: 4
|
||||
margin-left: 4
|
||||
size: 17 17
|
||||
|
||||
Button
|
||||
id: 5
|
||||
anchors.verticalCenter: prev.verticalCenter
|
||||
anchors.left: prev.right
|
||||
text: 5
|
||||
margin-left: 4
|
||||
size: 17 17
|
||||
|
||||
Label
|
||||
id: name
|
||||
anchors.verticalCenter: prev.verticalCenter
|
||||
anchors.left: prev.right
|
||||
anchors.right: parent.right
|
||||
text-align: center
|
||||
margin-left: 4
|
||||
height: 17
|
||||
text: Profile #1
|
||||
background: #292A2A
|
||||
]])
|
||||
ui:setId(healPanelName)
|
||||
|
||||
if not HealBotConfig[healPanelName] or not HealBotConfig[healPanelName][1] or #HealBotConfig[healPanelName] ~= 5 then
|
||||
HealBotConfig[healPanelName] = {
|
||||
[1] = {
|
||||
enabled = false,
|
||||
spellTable = {},
|
||||
itemTable = {},
|
||||
name = "Profile #1",
|
||||
Visible = true,
|
||||
Cooldown = true,
|
||||
Interval = true,
|
||||
Conditions = true,
|
||||
Delay = true,
|
||||
MessageDelay = false
|
||||
},
|
||||
[2] = {
|
||||
enabled = false,
|
||||
spellTable = {},
|
||||
itemTable = {},
|
||||
name = "Profile #2",
|
||||
Visible = true,
|
||||
Cooldown = true,
|
||||
Interval = true,
|
||||
Conditions = true,
|
||||
Delay = true,
|
||||
MessageDelay = false
|
||||
},
|
||||
[3] = {
|
||||
enabled = false,
|
||||
spellTable = {},
|
||||
itemTable = {},
|
||||
name = "Profile #3",
|
||||
Visible = true,
|
||||
Cooldown = true,
|
||||
Interval = true,
|
||||
Conditions = true,
|
||||
Delay = true,
|
||||
MessageDelay = false
|
||||
},
|
||||
[4] = {
|
||||
enabled = false,
|
||||
spellTable = {},
|
||||
itemTable = {},
|
||||
name = "Profile #4",
|
||||
Visible = true,
|
||||
Cooldown = true,
|
||||
Interval = true,
|
||||
Conditions = true,
|
||||
Delay = true,
|
||||
MessageDelay = false
|
||||
},
|
||||
[5] = {
|
||||
enabled = false,
|
||||
spellTable = {},
|
||||
itemTable = {},
|
||||
name = "Profile #5",
|
||||
Visible = true,
|
||||
Cooldown = true,
|
||||
Interval = true,
|
||||
Conditions = true,
|
||||
Delay = true,
|
||||
MessageDelay = false
|
||||
},
|
||||
}
|
||||
end
|
||||
|
||||
if not HealBotConfig.currentHealBotProfile or HealBotConfig.currentHealBotProfile == 0 or HealBotConfig.currentHealBotProfile > 5 then
|
||||
HealBotConfig.currentHealBotProfile = 1
|
||||
end
|
||||
|
||||
-- finding correct table, manual unfortunately
|
||||
local currentSettings
|
||||
local setActiveProfile = function()
|
||||
local n = HealBotConfig.currentHealBotProfile
|
||||
currentSettings = HealBotConfig[healPanelName][n]
|
||||
end
|
||||
setActiveProfile()
|
||||
|
||||
local activeProfileColor = function()
|
||||
for i=1,5 do
|
||||
if i == HealBotConfig.currentHealBotProfile then
|
||||
ui[i]:setColor("green")
|
||||
else
|
||||
ui[i]:setColor("white")
|
||||
end
|
||||
end
|
||||
end
|
||||
activeProfileColor()
|
||||
|
||||
ui.title:setOn(currentSettings.enabled)
|
||||
ui.title.onClick = function(widget)
|
||||
currentSettings.enabled = not currentSettings.enabled
|
||||
widget:setOn(currentSettings.enabled)
|
||||
vBotConfigSave("heal")
|
||||
end
|
||||
|
||||
ui.settings.onClick = function(widget)
|
||||
healWindow:show()
|
||||
healWindow:raise()
|
||||
healWindow:focus()
|
||||
end
|
||||
|
||||
rootWidget = g_ui.getRootWidget()
|
||||
if rootWidget then
|
||||
healWindow = UI.createWindow('HealWindow', rootWidget)
|
||||
healWindow:hide()
|
||||
|
||||
healWindow.onVisibilityChange = function(widget, visible)
|
||||
if not visible then
|
||||
vBotConfigSave("heal")
|
||||
healWindow.healer:show()
|
||||
healWindow.settings:hide()
|
||||
healWindow.settingsButton:setText("Settings")
|
||||
end
|
||||
end
|
||||
|
||||
healWindow.settingsButton.onClick = function(widget)
|
||||
if healWindow.healer:isVisible() then
|
||||
healWindow.healer:hide()
|
||||
healWindow.settings:show()
|
||||
widget:setText("Back")
|
||||
else
|
||||
healWindow.healer:show()
|
||||
healWindow.settings:hide()
|
||||
widget:setText("Settings")
|
||||
end
|
||||
end
|
||||
|
||||
local setProfileName = function()
|
||||
ui.name:setText(currentSettings.name)
|
||||
end
|
||||
healWindow.settings.profiles.Name.onTextChange = function(widget, text)
|
||||
currentSettings.name = text
|
||||
setProfileName()
|
||||
end
|
||||
healWindow.settings.list.Visible.onClick = function(widget)
|
||||
currentSettings.Visible = not currentSettings.Visible
|
||||
healWindow.settings.list.Visible:setChecked(currentSettings.Visible)
|
||||
end
|
||||
healWindow.settings.list.Cooldown.onClick = function(widget)
|
||||
currentSettings.Cooldown = not currentSettings.Cooldown
|
||||
healWindow.settings.list.Cooldown:setChecked(currentSettings.Cooldown)
|
||||
end
|
||||
healWindow.settings.list.Interval.onClick = function(widget)
|
||||
currentSettings.Interval = not currentSettings.Interval
|
||||
healWindow.settings.list.Interval:setChecked(currentSettings.Interval)
|
||||
end
|
||||
healWindow.settings.list.Conditions.onClick = function(widget)
|
||||
currentSettings.Conditions = not currentSettings.Conditions
|
||||
healWindow.settings.list.Conditions:setChecked(currentSettings.Conditions)
|
||||
end
|
||||
healWindow.settings.list.Delay.onClick = function(widget)
|
||||
currentSettings.Delay = not currentSettings.Delay
|
||||
healWindow.settings.list.Delay:setChecked(currentSettings.Delay)
|
||||
end
|
||||
healWindow.settings.list.MessageDelay.onClick = function(widget)
|
||||
currentSettings.MessageDelay = not currentSettings.MessageDelay
|
||||
healWindow.settings.list.MessageDelay:setChecked(currentSettings.MessageDelay)
|
||||
end
|
||||
|
||||
local refreshSpells = function()
|
||||
if currentSettings.spellTable then
|
||||
healWindow.healer.spells.spellList:destroyChildren()
|
||||
for _, entry in pairs(currentSettings.spellTable) do
|
||||
local label = UI.createWidget("SpellEntry", healWindow.healer.spells.spellList)
|
||||
label.enabled:setChecked(entry.enabled)
|
||||
label.enabled.onClick = function(widget)
|
||||
standBySpells = false
|
||||
standByItems = false
|
||||
entry.enabled = not entry.enabled
|
||||
label.enabled:setChecked(entry.enabled)
|
||||
end
|
||||
label.remove.onClick = function(widget)
|
||||
standBySpells = false
|
||||
standByItems = false
|
||||
table.removevalue(currentSettings.spellTable, entry)
|
||||
reindexTable(currentSettings.spellTable)
|
||||
label:destroy()
|
||||
end
|
||||
label:setText("(MP>" .. entry.cost .. ") " .. entry.origin .. entry.sign .. entry.value .. ": " .. entry.spell)
|
||||
end
|
||||
end
|
||||
end
|
||||
refreshSpells()
|
||||
|
||||
local refreshItems = function()
|
||||
if currentSettings.itemTable then
|
||||
healWindow.healer.items.itemList:destroyChildren()
|
||||
for _, entry in pairs(currentSettings.itemTable) do
|
||||
local label = UI.createWidget("ItemEntry", healWindow.healer.items.itemList)
|
||||
label.enabled:setChecked(entry.enabled)
|
||||
label.enabled.onClick = function(widget)
|
||||
standBySpells = false
|
||||
standByItems = false
|
||||
entry.enabled = not entry.enabled
|
||||
label.enabled:setChecked(entry.enabled)
|
||||
end
|
||||
label.remove.onClick = function(widget)
|
||||
standBySpells = false
|
||||
standByItems = false
|
||||
table.removevalue(currentSettings.itemTable, entry)
|
||||
reindexTable(currentSettings.itemTable)
|
||||
label:destroy()
|
||||
end
|
||||
label.id:setItemId(entry.item)
|
||||
label:setText(entry.origin .. entry.sign .. entry.value .. ": " .. entry.item)
|
||||
end
|
||||
end
|
||||
end
|
||||
refreshItems()
|
||||
|
||||
healWindow.healer.spells.MoveUp.onClick = function(widget)
|
||||
local input = healWindow.healer.spells.spellList:getFocusedChild()
|
||||
if not input then return end
|
||||
local index = healWindow.healer.spells.spellList:getChildIndex(input)
|
||||
if index < 2 then return end
|
||||
|
||||
local t = currentSettings.spellTable
|
||||
|
||||
t[index],t[index-1] = t[index-1], t[index]
|
||||
healWindow.healer.spells.spellList:moveChildToIndex(input, index - 1)
|
||||
healWindow.healer.spells.spellList:ensureChildVisible(input)
|
||||
end
|
||||
|
||||
healWindow.healer.spells.MoveDown.onClick = function(widget)
|
||||
local input = healWindow.healer.spells.spellList:getFocusedChild()
|
||||
if not input then return end
|
||||
local index = healWindow.healer.spells.spellList:getChildIndex(input)
|
||||
if index >= healWindow.healer.spells.spellList:getChildCount() then return end
|
||||
|
||||
local t = currentSettings.spellTable
|
||||
|
||||
t[index],t[index+1] = t[index+1],t[index]
|
||||
healWindow.healer.spells.spellList:moveChildToIndex(input, index + 1)
|
||||
healWindow.healer.spells.spellList:ensureChildVisible(input)
|
||||
end
|
||||
|
||||
healWindow.healer.items.MoveUp.onClick = function(widget)
|
||||
local input = healWindow.healer.items.itemList:getFocusedChild()
|
||||
if not input then return end
|
||||
local index = healWindow.healer.items.itemList:getChildIndex(input)
|
||||
if index < 2 then return end
|
||||
|
||||
local t = currentSettings.itemTable
|
||||
|
||||
t[index],t[index-1] = t[index-1], t[index]
|
||||
healWindow.healer.items.itemList:moveChildToIndex(input, index - 1)
|
||||
healWindow.healer.items.itemList:ensureChildVisible(input)
|
||||
end
|
||||
|
||||
healWindow.healer.items.MoveDown.onClick = function(widget)
|
||||
local input = healWindow.healer.items.itemList:getFocusedChild()
|
||||
if not input then return end
|
||||
local index = healWindow.healer.items.itemList:getChildIndex(input)
|
||||
if index >= healWindow.healer.items.itemList:getChildCount() then return end
|
||||
|
||||
local t = currentSettings.itemTable
|
||||
|
||||
t[index],t[index+1] = t[index+1],t[index]
|
||||
healWindow.healer.items.itemList:moveChildToIndex(input, index + 1)
|
||||
healWindow.healer.items.itemList:ensureChildVisible(input)
|
||||
end
|
||||
|
||||
healWindow.healer.spells.addSpell.onClick = function(widget)
|
||||
|
||||
local spellFormula = healWindow.healer.spells.spellFormula:getText():trim()
|
||||
local manaCost = tonumber(healWindow.healer.spells.manaCost:getText())
|
||||
local spellTrigger = tonumber(healWindow.healer.spells.spellValue:getText())
|
||||
local spellSource = healWindow.healer.spells.spellSource:getCurrentOption().text
|
||||
local spellEquasion = healWindow.healer.spells.spellCondition:getCurrentOption().text
|
||||
local source
|
||||
local equasion
|
||||
|
||||
if not manaCost then
|
||||
warn("HealBot: incorrect mana cost value!")
|
||||
healWindow.healer.spells.spellFormula:setText('')
|
||||
healWindow.healer.spells.spellValue:setText('')
|
||||
healWindow.healer.spells.manaCost:setText('')
|
||||
return
|
||||
end
|
||||
if not spellTrigger then
|
||||
warn("HealBot: incorrect condition value!")
|
||||
healWindow.healer.spells.spellFormula:setText('')
|
||||
healWindow.healer.spells.spellValue:setText('')
|
||||
healWindow.healer.spells.manaCost:setText('')
|
||||
return
|
||||
end
|
||||
|
||||
if spellSource == "Current Mana" then
|
||||
source = "MP"
|
||||
elseif spellSource == "Current Health" then
|
||||
source = "HP"
|
||||
elseif spellSource == "Mana Percent" then
|
||||
source = "MP%"
|
||||
elseif spellSource == "Health Percent" then
|
||||
source = "HP%"
|
||||
else
|
||||
source = "burst"
|
||||
end
|
||||
|
||||
if spellEquasion == "Above" then
|
||||
equasion = ">"
|
||||
elseif spellEquasion == "Below" then
|
||||
equasion = "<"
|
||||
else
|
||||
equasion = "="
|
||||
end
|
||||
|
||||
if spellFormula:len() > 0 then
|
||||
table.insert(currentSettings.spellTable, {index = #currentSettings.spellTable+1, spell = spellFormula, sign = equasion, origin = source, cost = manaCost, value = spellTrigger, enabled = true})
|
||||
healWindow.healer.spells.spellFormula:setText('')
|
||||
healWindow.healer.spells.spellValue:setText('')
|
||||
healWindow.healer.spells.manaCost:setText('')
|
||||
end
|
||||
standBySpells = false
|
||||
standByItems = false
|
||||
refreshSpells()
|
||||
end
|
||||
|
||||
healWindow.healer.items.addItem.onClick = function(widget)
|
||||
|
||||
local id = healWindow.healer.items.itemId:getItemId()
|
||||
local trigger = tonumber(healWindow.healer.items.itemValue:getText())
|
||||
local src = healWindow.healer.items.itemSource:getCurrentOption().text
|
||||
local eq = healWindow.healer.items.itemCondition:getCurrentOption().text
|
||||
local source
|
||||
local equasion
|
||||
|
||||
if not trigger then
|
||||
warn("HealBot: incorrect trigger value!")
|
||||
healWindow.healer.items.itemId:setItemId(0)
|
||||
healWindow.healer.items.itemValue:setText('')
|
||||
return
|
||||
end
|
||||
|
||||
if src == "Current Mana" then
|
||||
source = "MP"
|
||||
elseif src == "Current Health" then
|
||||
source = "HP"
|
||||
elseif src == "Mana Percent" then
|
||||
source = "MP%"
|
||||
elseif src == "Health Percent" then
|
||||
source = "HP%"
|
||||
else
|
||||
source = "burst"
|
||||
end
|
||||
|
||||
if eq == "Above" then
|
||||
equasion = ">"
|
||||
elseif eq == "Below" then
|
||||
equasion = "<"
|
||||
else
|
||||
equasion = "="
|
||||
end
|
||||
|
||||
if id > 100 then
|
||||
table.insert(currentSettings.itemTable, {index = #currentSettings.itemTable+1,item = id, sign = equasion, origin = source, value = trigger, enabled = true})
|
||||
standBySpells = false
|
||||
standByItems = false
|
||||
refreshItems()
|
||||
healWindow.healer.items.itemId:setItemId(0)
|
||||
healWindow.healer.items.itemValue:setText('')
|
||||
end
|
||||
end
|
||||
|
||||
healWindow.closeButton.onClick = function(widget)
|
||||
healWindow:hide()
|
||||
end
|
||||
|
||||
local loadSettings = function()
|
||||
ui.title:setOn(currentSettings.enabled)
|
||||
setProfileName()
|
||||
healWindow.settings.profiles.Name:setText(currentSettings.name)
|
||||
refreshSpells()
|
||||
refreshItems()
|
||||
healWindow.settings.list.Visible:setChecked(currentSettings.Visible)
|
||||
healWindow.settings.list.Cooldown:setChecked(currentSettings.Cooldown)
|
||||
healWindow.settings.list.Delay:setChecked(currentSettings.Delay)
|
||||
healWindow.settings.list.MessageDelay:setChecked(currentSettings.MessageDelay)
|
||||
healWindow.settings.list.Interval:setChecked(currentSettings.Interval)
|
||||
healWindow.settings.list.Conditions:setChecked(currentSettings.Conditions)
|
||||
end
|
||||
loadSettings()
|
||||
|
||||
local profileChange = function()
|
||||
setActiveProfile()
|
||||
activeProfileColor()
|
||||
loadSettings()
|
||||
vBotConfigSave("heal")
|
||||
end
|
||||
|
||||
local resetSettings = function()
|
||||
currentSettings.enabled = false
|
||||
currentSettings.spellTable = {}
|
||||
currentSettings.itemTable = {}
|
||||
currentSettings.Visible = true
|
||||
currentSettings.Cooldown = true
|
||||
currentSettings.Delay = true
|
||||
currentSettings.MessageDelay = false
|
||||
currentSettings.Interval = true
|
||||
currentSettings.Conditions = true
|
||||
currentSettings.name = "Profile #" .. HealBotConfig.currentBotProfile
|
||||
end
|
||||
|
||||
-- profile buttons
|
||||
for i=1,5 do
|
||||
local button = ui[i]
|
||||
button.onClick = function()
|
||||
HealBotConfig.currentHealBotProfile = i
|
||||
profileChange()
|
||||
end
|
||||
end
|
||||
|
||||
healWindow.settings.profiles.ResetSettings.onClick = function()
|
||||
resetSettings()
|
||||
loadSettings()
|
||||
end
|
||||
|
||||
|
||||
-- public functions
|
||||
HealBot = {} -- global table
|
||||
|
||||
HealBot.isOn = function()
|
||||
return currentSettings.enabled
|
||||
end
|
||||
|
||||
HealBot.isOff = function()
|
||||
return not currentSettings.enabled
|
||||
end
|
||||
|
||||
HealBot.setOff = function()
|
||||
currentSettings.enabled = false
|
||||
ui.title:setOn(currentSettings.enabled)
|
||||
vBotConfigSave("atk")
|
||||
end
|
||||
|
||||
HealBot.setOn = function()
|
||||
currentSettings.enabled = true
|
||||
ui.title:setOn(currentSettings.enabled)
|
||||
vBotConfigSave("atk")
|
||||
end
|
||||
|
||||
HealBot.getActiveProfile = function()
|
||||
return HealBotConfig.currentHealBotProfile -- returns number 1-5
|
||||
end
|
||||
|
||||
HealBot.setActiveProfile = function(n)
|
||||
if not n or not tonumber(n) or n < 1 or n > 5 then
|
||||
return error("[HealBot] wrong profile parameter! should be 1 to 5 is " .. n)
|
||||
else
|
||||
HealBotConfig.currentHealBotProfile = n
|
||||
profileChange()
|
||||
end
|
||||
end
|
||||
|
||||
HealBot.show = function()
|
||||
healWindow:show()
|
||||
healWindow:raise()
|
||||
healWindow:focus()
|
||||
end
|
||||
end
|
||||
|
||||
-- spells
|
||||
macro(100, function()
|
||||
if standBySpells then return end
|
||||
if not currentSettings.enabled then return end
|
||||
local somethingIsOnCooldown = false
|
||||
|
||||
for _, entry in pairs(currentSettings.spellTable) do
|
||||
if entry.enabled and entry.cost < mana() then
|
||||
if canCast(entry.spell, not currentSettings.Conditions, not currentSettings.Cooldown) then
|
||||
if entry.origin == "HP%" then
|
||||
if entry.sign == "=" and hppercent() == entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == ">" and hppercent() >= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == "<" and hppercent() <= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
end
|
||||
elseif entry.origin == "HP" then
|
||||
if entry.sign == "=" and hp() == entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == ">" and hp() >= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == "<" and hp() <= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
end
|
||||
elseif entry.origin == "MP%" then
|
||||
if entry.sign == "=" and manapercent() == entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == ">" and manapercent() >= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == "<" and manapercent() <= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
end
|
||||
elseif entry.origin == "MP" then
|
||||
if entry.sign == "=" and mana() == entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == ">" and mana() >= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == "<" and mana() <= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
end
|
||||
elseif entry.origin == "burst" then
|
||||
if entry.sign == "=" and burstDamageValue() == entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == ">" and burstDamageValue() >= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
elseif entry.sign == "<" and burstDamageValue() <= entry.value then
|
||||
say(entry.spell)
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
somethingIsOnCooldown = true
|
||||
end
|
||||
end
|
||||
end
|
||||
if not somethingIsOnCooldown then
|
||||
standBySpells = true
|
||||
end
|
||||
end)
|
||||
|
||||
-- items
|
||||
macro(100, function()
|
||||
if standByItems then return end
|
||||
if not currentSettings.enabled or #currentSettings.itemTable == 0 then return end
|
||||
if currentSettings.Delay and vBot.isUsing then return end
|
||||
if currentSettings.MessageDelay and vBot.isUsingPotion then return end
|
||||
|
||||
if not currentSettings.MessageDelay then
|
||||
delay(400)
|
||||
end
|
||||
|
||||
if TargetBot.isOn() and TargetBot.Looting.getStatus():len() > 0 and currentSettings.Interval then
|
||||
if not currentSettings.MessageDelay then
|
||||
delay(700)
|
||||
else
|
||||
delay(200)
|
||||
end
|
||||
end
|
||||
|
||||
for _, entry in pairs(currentSettings.itemTable) do
|
||||
local item = findItem(entry.item)
|
||||
if (not currentSettings.Visible or item) and entry.enabled then
|
||||
if entry.origin == "HP%" then
|
||||
if entry.sign == "=" and hppercent() == entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == ">" and hppercent() >= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == "<" and hppercent() <= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
end
|
||||
elseif entry.origin == "HP" then
|
||||
if entry.sign == "=" and hp() == tonumberentry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == ">" and hp() >= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == "<" and hp() <= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
end
|
||||
elseif entry.origin == "MP%" then
|
||||
if entry.sign == "=" and manapercent() == entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == ">" and manapercent() >= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == "<" and manapercent() <= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
end
|
||||
elseif entry.origin == "MP" then
|
||||
if entry.sign == "=" and mana() == entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == ">" and mana() >= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == "<" and mana() <= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
end
|
||||
elseif entry.origin == "burst" then
|
||||
if entry.sign == "=" and burstDamageValue() == entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == ">" and burstDamageValue() >= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
elseif entry.sign == "<" and burstDamageValue() <= entry.value then
|
||||
g_game.useInventoryItemWith(entry.item, player)
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
standByItems = true
|
||||
end)
|
||||
UI.Separator()
|
||||
|
||||
onPlayerHealthChange(function(healthPercent)
|
||||
standByItems = false
|
||||
standBySpells = false
|
||||
end)
|
||||
|
||||
onManaChange(function(player, mana, maxMana, oldMana, oldMaxMana)
|
||||
standByItems = false
|
||||
standBySpells = false
|
||||
end)
|
||||
Reference in New Issue
Block a user