mirror of
https://github.com/OTCv8/otclientv8.git
synced 2025-04-30 19:29:21 +02:00
347 lines
10 KiB
Lua
347 lines
10 KiB
Lua
local context = G.botContext
|
|
local Panels = context.Panels
|
|
|
|
Panels.Haste = function(parent)
|
|
context.macro(500, "Auto Haste", nil, function()
|
|
if not context.hasHaste() and context.storage.autoHasteText:len() > 0 then
|
|
if context.saySpell(context.storage.autoHasteText, 2500) then
|
|
context.delay(5000)
|
|
end
|
|
end
|
|
end, parent)
|
|
context.addTextEdit("autoHasteText", context.storage.autoHasteText or "utani hur", function(widget, text)
|
|
context.storage.autoHasteText = text
|
|
end, parent)
|
|
end
|
|
|
|
Panels.ManaShield = function(parent)
|
|
local lastManaShield = 0
|
|
context.macro(100, "Auto Mana Shield", nil, function()
|
|
if not context.hasManaShield() or context.now > lastManaShield + 90000 then
|
|
if context.saySpell("utamo vita", 200) then
|
|
lastManaShield = context.now
|
|
end
|
|
end
|
|
end, parent)
|
|
end
|
|
|
|
Panels.AntiParalyze = function(parent)
|
|
context.macro(100, "Anti Paralyze", nil, function()
|
|
if context.isParalyzed() and context.storage.autoAntiParalyzeText:len() > 0 then
|
|
context.saySpell(context.storage.autoAntiParalyzeText, 750)
|
|
end
|
|
end, parent)
|
|
context.addTextEdit("autoAntiParalyzeText", context.storage.autoAntiParalyzeText or "utani hur", function(widget, text)
|
|
context.storage.autoAntiParalyzeText = text
|
|
end, parent)
|
|
end
|
|
|
|
|
|
Panels.Health = function(parent)
|
|
if not parent then
|
|
parent = context.panel
|
|
end
|
|
|
|
local panelName = "autoHealthPanel"
|
|
local panelId = 1
|
|
while parent:getChildById(panelName .. panelId) do
|
|
panelId = panelId + 1
|
|
end
|
|
panelName = panelName .. panelId
|
|
|
|
local ui = g_ui.createWidget("DualScrollPanel", parent)
|
|
ui:setId(panelName)
|
|
|
|
if not context.storage[panelName] then
|
|
context.storage[panelName] = {
|
|
item = 266,
|
|
min = 20,
|
|
max = 80,
|
|
text = "exura"
|
|
}
|
|
end
|
|
|
|
ui.title:setOn(context.storage[panelName].enabled)
|
|
ui.title.onClick = function(widget)
|
|
context.storage[panelName].enabled = not context.storage[panelName].enabled
|
|
widget:setOn(context.storage[panelName].enabled)
|
|
end
|
|
|
|
ui.text.onTextChange = function(widget, text)
|
|
context.storage[panelName].text = text
|
|
end
|
|
ui.text:setText(context.storage[panelName].text or "exura")
|
|
|
|
local updateText = function()
|
|
ui.title:setText("" .. context.storage[panelName].min .. "% <= hp <= " .. context.storage[panelName].max .. "%")
|
|
end
|
|
|
|
ui.scroll1.onValueChange = function(scroll, value)
|
|
context.storage[panelName].min = value
|
|
updateText()
|
|
end
|
|
ui.scroll2.onValueChange = function(scroll, value)
|
|
context.storage[panelName].max = value
|
|
updateText()
|
|
end
|
|
|
|
ui.scroll1:setValue(context.storage[panelName].min)
|
|
ui.scroll2:setValue(context.storage[panelName].max)
|
|
|
|
context.macro(25, function()
|
|
if context.storage[panelName].enabled and context.storage[panelName].text:len() > 0 and context.storage[panelName].min <= context.hppercent() and context.hppercent() <= context.storage[panelName].max then
|
|
if context.saySpell(context.storage[panelName].text, 500) then
|
|
context.delay(200)
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
|
|
Panels.HealthItem = function(parent)
|
|
if not parent then
|
|
parent = context.panel
|
|
end
|
|
|
|
local panelName = "autoHealthItemPanel"
|
|
local panelId = 1
|
|
while parent:getChildById(panelName .. panelId) do
|
|
panelId = panelId + 1
|
|
end
|
|
panelName = panelName .. panelId
|
|
|
|
local ui = g_ui.createWidget("DualScrollItemPanel", parent)
|
|
ui:setId(panelName)
|
|
|
|
if not context.storage[panelName] then
|
|
context.storage[panelName] = {
|
|
item = 266,
|
|
min = 0,
|
|
max = 60
|
|
}
|
|
end
|
|
|
|
ui.title:setOn(context.storage[panelName].enabled)
|
|
ui.title.onClick = function(widget)
|
|
context.storage[panelName].enabled = not context.storage[panelName].enabled
|
|
widget:setOn(context.storage[panelName].enabled)
|
|
end
|
|
|
|
ui.item.onItemChange = function(widget)
|
|
context.storage[panelName].item = widget:getItemId()
|
|
end
|
|
ui.item:setItemId(context.storage[panelName].item)
|
|
|
|
local updateText = function()
|
|
ui.title:setText("" .. (context.storage[panelName].min or "") .. "% <= hp <= " .. (context.storage[panelName].max or "") .. "%")
|
|
end
|
|
|
|
ui.scroll1.onValueChange = function(scroll, value)
|
|
context.storage[panelName].min = value
|
|
updateText()
|
|
end
|
|
ui.scroll2.onValueChange = function(scroll, value)
|
|
context.storage[panelName].max = value
|
|
updateText()
|
|
end
|
|
|
|
ui.scroll1:setValue(context.storage[panelName].min)
|
|
ui.scroll2:setValue(context.storage[panelName].max)
|
|
|
|
context.macro(25, function()
|
|
if context.storage[panelName].enabled and context.storage[panelName].item >= 100 and context.storage[panelName].min <= context.hppercent() and context.hppercent() <= context.storage[panelName].max then
|
|
if context.useRune(context.storage[panelName].item, context.player, 500) then
|
|
context.delay(300)
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
|
|
Panels.Mana = function(parent)
|
|
if not parent then
|
|
parent = context.panel
|
|
end
|
|
|
|
local panelName = "autoManaItemPanel"
|
|
local panelId = 1
|
|
while parent:getChildById(panelName .. panelId) do
|
|
panelId = panelId + 1
|
|
end
|
|
panelName = panelName .. panelId
|
|
|
|
local ui = g_ui.createWidget("DualScrollItemPanel", parent)
|
|
ui:setId(panelName)
|
|
|
|
if not context.storage[panelName] then
|
|
context.storage[panelName] = {
|
|
item = 268,
|
|
min = 0,
|
|
max = 60
|
|
}
|
|
end
|
|
|
|
ui.title:setOn(context.storage[panelName].enabled)
|
|
ui.title.onClick = function(widget)
|
|
context.storage[panelName].enabled = not context.storage[panelName].enabled
|
|
widget:setOn(context.storage[panelName].enabled)
|
|
end
|
|
|
|
ui.item.onItemChange = function(widget)
|
|
context.storage[panelName].item = widget:getItemId()
|
|
end
|
|
ui.item:setItemId(context.storage[panelName].item)
|
|
|
|
local updateText = function()
|
|
ui.title:setText("" .. (context.storage[panelName].min or "") .. "% <= mana <= " .. (context.storage[panelName].max or "") .. "%")
|
|
end
|
|
|
|
ui.scroll1.onValueChange = function(scroll, value)
|
|
context.storage[panelName].min = value
|
|
updateText()
|
|
end
|
|
ui.scroll2.onValueChange = function(scroll, value)
|
|
context.storage[panelName].max = value
|
|
updateText()
|
|
end
|
|
|
|
ui.scroll1:setValue(context.storage[panelName].min)
|
|
ui.scroll2:setValue(context.storage[panelName].max)
|
|
|
|
context.macro(25, function()
|
|
if context.storage[panelName].enabled and context.storage[panelName].item >= 100 and context.storage[panelName].min <= context.manapercent() and context.manapercent() <= context.storage[panelName].max then
|
|
if context.useRune(context.storage[panelName].item, context.player, 500) then
|
|
context.delay(300)
|
|
end
|
|
end
|
|
end)
|
|
end
|
|
Panels.ManaItem = Panels.Mana
|
|
|
|
Panels.Equip = function(parent)
|
|
if not parent then
|
|
parent = context.panel
|
|
end
|
|
|
|
local panelName = "autoEquipItem"
|
|
local panelId = 1
|
|
while parent:getChildById(panelName .. panelId) do
|
|
panelId = panelId + 1
|
|
end
|
|
panelName = panelName .. panelId
|
|
|
|
local ui = g_ui.createWidget("TwoItemsAndSlotPanel", parent)
|
|
ui:setId(panelName)
|
|
|
|
if not context.storage[panelName] then
|
|
context.storage[panelName] = {}
|
|
if panelId == 1 then
|
|
context.storage[panelName].item1 = 3052
|
|
context.storage[panelName].item2 = 3089
|
|
context.storage[panelName].slot = 9
|
|
end
|
|
end
|
|
|
|
ui.title:setText("Auto equip")
|
|
ui.title:setOn(context.storage[panelName].enabled)
|
|
ui.title.onClick = function(widget)
|
|
context.storage[panelName].enabled = not context.storage[panelName].enabled
|
|
widget:setOn(context.storage[panelName].enabled)
|
|
end
|
|
|
|
ui.item1:setItemId(context.storage[panelName].item1 or 0)
|
|
ui.item1.onItemChange = function(widget)
|
|
context.storage[panelName].item1 = widget:getItemId()
|
|
end
|
|
|
|
ui.item2:setItemId(context.storage[panelName].item2 or 0)
|
|
ui.item2.onItemChange = function(widget)
|
|
context.storage[panelName].item2 = widget:getItemId()
|
|
end
|
|
|
|
if not context.storage[panelName].slot then
|
|
context.storage[panelName].slot = 1
|
|
end
|
|
ui.slot:setCurrentIndex(context.storage[panelName].slot)
|
|
ui.slot.onOptionChange = function(widget)
|
|
context.storage[panelName].slot = widget.currentIndex
|
|
end
|
|
|
|
context.macro(250, function()
|
|
if context.storage[panelName].enabled and context.storage[panelName].slot > 0 then
|
|
local item1 = context.storage[panelName].item1 or 0
|
|
local item2 = context.storage[panelName].item2 or 0
|
|
if item1 < 100 and item2 < 100 then
|
|
return
|
|
end
|
|
local slotItem = context.getSlot(context.storage[panelName].slot)
|
|
if slotItem and (slotItem:getId() == item1 or slotItem:getId() == item2) then
|
|
return
|
|
end
|
|
local newItem = context.findItem(context.storage[panelName].item1)
|
|
if not newItem then
|
|
newItem = context.findItem(context.storage[panelName].item2)
|
|
if not newItem then
|
|
return
|
|
end
|
|
end
|
|
g_game.move(newItem, {x=65535, y=context.storage[panelName].slot, z=0})
|
|
context.delay(1000)
|
|
end
|
|
end)
|
|
end
|
|
Panels.AutoEquip = Panels.Equip
|
|
|
|
Panels.Eating = function(parent)
|
|
if not parent then
|
|
parent = context.panel
|
|
end
|
|
|
|
local panelName = "autoEatingPanel"
|
|
local panelId = 1
|
|
while parent:getChildById(panelName .. panelId) do
|
|
panelId = panelId + 1
|
|
end
|
|
panelName = panelName .. panelId
|
|
|
|
local ui = g_ui.createWidget("ItemsPanel", parent)
|
|
ui:setId(panelName)
|
|
|
|
if not context.storage[panelName] then
|
|
context.storage[panelName] = {}
|
|
end
|
|
|
|
ui.title:setText("Auto eating")
|
|
ui.title:setOn(context.storage[panelName].enabled)
|
|
ui.title.onClick = function(widget)
|
|
context.storage[panelName].enabled = not context.storage[panelName].enabled
|
|
widget:setOn(context.storage[panelName].enabled)
|
|
end
|
|
|
|
if type(context.storage[panelName].items) ~= 'table' then
|
|
context.storage[panelName].items = {3725, 0, 0, 0, 0}
|
|
end
|
|
|
|
for i=1,5 do
|
|
ui.items:getChildByIndex(i).onItemChange = function(widget)
|
|
context.storage[panelName].items[i] = widget:getItemId()
|
|
end
|
|
ui.items:getChildByIndex(i):setItemId(context.storage[panelName].items[i])
|
|
end
|
|
|
|
context.macro(15000, function()
|
|
if not context.storage[panelName].enabled then
|
|
return
|
|
end
|
|
local candidates = {}
|
|
for i, item in pairs(context.storage[panelName].items) do
|
|
if item >= 100 then
|
|
table.insert(candidates, item)
|
|
end
|
|
end
|
|
if #candidates == 0 then
|
|
return
|
|
end
|
|
context.use(candidates[math.random(1, #candidates)])
|
|
end)
|
|
end
|
|
|