mirror of
https://github.com/OTCv8/otclientv8.git
synced 2025-10-20 22:53:26 +02:00
Version 2.6.1
This commit is contained in:
187
modules/game_bot/default_configs/vithrax_1.3/1_pushmax.lua
Normal file
187
modules/game_bot/default_configs/vithrax_1.3/1_pushmax.lua
Normal file
@@ -0,0 +1,187 @@
|
||||
setDefaultTab("Main")
|
||||
|
||||
pushPanelName = "pushmax"
|
||||
local ui = setupUI([[
|
||||
Panel
|
||||
height: 19
|
||||
|
||||
BotSwitch
|
||||
id: title
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
text-align: center
|
||||
width: 130
|
||||
!text: tr('PUSHMAX')
|
||||
|
||||
Button
|
||||
id: push
|
||||
anchors.top: prev.top
|
||||
anchors.left: prev.right
|
||||
anchors.right: parent.right
|
||||
margin-left: 3
|
||||
height: 17
|
||||
text: Setup
|
||||
|
||||
]])
|
||||
ui:setId(pushPanelName)
|
||||
|
||||
if not storage[pushPanelName] then
|
||||
storage[pushPanelName] = {
|
||||
enabled = true,
|
||||
pushDelay = 1060,
|
||||
pushMaxRuneId = 3188,
|
||||
mwallBlockId = 2128,
|
||||
pushMaxKey = "PageUp"
|
||||
}
|
||||
end
|
||||
|
||||
ui.title:setOn(storage[pushPanelName].enabled)
|
||||
ui.title.onClick = function(widget)
|
||||
storage[pushPanelName].enabled = not storage[pushPanelName].enabled
|
||||
widget:setOn(storage[pushPanelName].enabled)
|
||||
end
|
||||
|
||||
ui.push.onClick = function(widget)
|
||||
pushWindow:show()
|
||||
pushWindow:raise()
|
||||
pushWindow:focus()
|
||||
end
|
||||
|
||||
rootWidget = g_ui.getRootWidget()
|
||||
if rootWidget then
|
||||
pushWindow = g_ui.createWidget('PushMaxWindow', rootWidget)
|
||||
pushWindow:hide()
|
||||
|
||||
pushWindow.closeButton.onClick = function(widget)
|
||||
pushWindow:hide()
|
||||
end
|
||||
|
||||
local updateDelayText = function()
|
||||
pushWindow.delayText:setText("Push Delay: ".. storage[pushPanelName].pushDelay)
|
||||
end
|
||||
updateDelayText()
|
||||
pushWindow.delay.onValueChange = function(scroll, value)
|
||||
storage[pushPanelName].pushDelay = value
|
||||
updateDelayText()
|
||||
end
|
||||
pushWindow.delay:setValue(storage[pushPanelName].pushDelay)
|
||||
|
||||
pushWindow.runeId.onItemChange = function(widget)
|
||||
storage[pushPanelName].pushMaxRuneId = widget:getItemId()
|
||||
end
|
||||
pushWindow.runeId:setItemId(storage[pushPanelName].pushMaxRuneId)
|
||||
pushWindow.mwallId.onItemChange = function(widget)
|
||||
storage[pushPanelName].mwallBlockId = widget:getItemId()
|
||||
end
|
||||
pushWindow.mwallId:setItemId(storage[pushPanelName].mwallBlockId)
|
||||
|
||||
pushWindow.hotkey.onTextChange = function(widget, text)
|
||||
storage[pushPanelName].pushMaxKey = text
|
||||
end
|
||||
pushWindow.hotkey:setText(storage[pushPanelName].pushMaxKey)
|
||||
end
|
||||
|
||||
|
||||
function matchPosition(curX, curY, destX, destY)
|
||||
return (curX == destX and curY == destY)
|
||||
end
|
||||
|
||||
local target
|
||||
local targetTile
|
||||
local targetOldPos
|
||||
macro(10, function()
|
||||
if not storage[pushPanelName].enabled then return 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())
|
||||
targetOldPos = tile:getPosition()
|
||||
if tile then
|
||||
if tile:getTopUseThing():isPickupable() or not tile:getTopUseThing():isNotMoveable() then
|
||||
useWith(tonumber(storage[pushPanelName].pushMaxRuneId), target)
|
||||
delay(10)
|
||||
end
|
||||
if targetTile:getTopThing():getId() == 2129 or targetTile:getTopThing():getId() == 2130 or targetTile:getTopThing():getId() == tonumber(storage[pushPanelName].mwallBlockId) then
|
||||
if targetTile:getTimer() <= tonumber(storage[pushPanelName].pushDelay) then
|
||||
info("now")
|
||||
g_game.move(target, targetTile:getPosition())
|
||||
tile:setText("")
|
||||
targetTile:setText("")
|
||||
target = nil
|
||||
targetTile = nil
|
||||
end
|
||||
else
|
||||
g_game.move(target, targetTile:getPosition())
|
||||
delay(1250)
|
||||
end
|
||||
end
|
||||
else
|
||||
if targetOldPos then
|
||||
local tile = g_map.getTile(targetOldPos)
|
||||
if tile then
|
||||
tile:setText("")
|
||||
targetTile:setText("")
|
||||
end
|
||||
end
|
||||
target = nil
|
||||
targetTile = nil
|
||||
end
|
||||
end
|
||||
end)
|
||||
|
||||
local resetTimer = now
|
||||
onKeyDown(function(keys)
|
||||
if not storage[pushPanelName].enabled then return end
|
||||
if keys == storage[pushPanelName].pushMaxKey and resetTimer == 0 then
|
||||
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 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
|
||||
tile:setText("")
|
||||
end
|
||||
end
|
||||
end
|
||||
target = nil
|
||||
targetTile = nil
|
||||
resetTimer = 0
|
||||
else
|
||||
resetTimer = 0
|
||||
end
|
||||
end)
|
||||
|
||||
onCreaturePositionChange(function(creature, newPos, oldPos)
|
||||
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
|
||||
if tile:getText() ~= "" then
|
||||
tile:setText("")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end)
|
Reference in New Issue
Block a user