setDefaultTab("Main") UI.Separator() macro(200, "UE Spell", function() local isSafe = true; local specAmount = 0 for i,mob in ipairs(getSpectators()) do if (mob:isPlayer() and player:getName() ~= mob:getName()) then isSafe = false; end if (getDistanceBetween(player:getPosition(), mob:getPosition()) <= storage.distanceUe and mob:isMonster()) then specAmount = specAmount + 1 end end if safeMacro.isOn() then if specAmount >= 1 then if isSafe then say(storage.ue) else if not g_game.isAttacking() then return end temp = string.sub(storage.ifplayer, 1, 1) local target = g_game.getAttackingCreature() if tonumber(temp) then useWith(tonumber(storage.ifplayer), target) else say(storage.ifplayer) end end end else if (specAmount >= 1) then say(storage.ue) end end end) UI.Label("Obszarowy Spell") UI.TextEdit(storage.ue or "Spell", function(widget, text) storage.ue = text end) UI.Label("Zasieg ue") UI.TextEdit(storage.distanceUe or "Ilosc kratek", function(widget, text) storage.distanceUe = tonumber(text) end) safeMacro = macro(100, "Nie bije przy ludziach", function() end) UI.Label("ID runy lub Spell jesli gracz") UI.TextEdit(storage.ifplayer or "ID lub Spell", function(widget, text) storage.ifplayer = text end) macro(10, "Target rune/Spell", function() if g_game.isAttacking() then temp = string.sub(storage.target, 1, 1) local target = g_game.getAttackingCreature() if tonumber(temp) then useWith(tonumber(storage.target), target) else say(storage.target) end end end) UI.Label("ID runy lub Spell") UI.TextEdit(storage.target or "ID lub Spell", function(widget, text) storage.target = text end) setDefaultTab("HP") macro(1, "Leczenie HP spells", function() local dataSpell = string.split(storage.healingSpells, ",") local dataHeal = string.split(storage.healingPercents, ",") if hppercent() < tonumber(dataHeal[1]) then say(dataSpell[1]) elseif hppercent() < tonumber(dataHeal[2]) then say(dataSpell[2]) elseif hppercent() < tonumber(dataHeal[3]) then say(dataSpell[3]) end end) UI.Label("Healing spelle po przecinku") UI.TextEdit(storage.healingSpells or "Exura San,Exura Vita,Exura Gran", function(widget, text) storage.healingSpells = text end) UI.Label("Wartosci po przecinku") UI.TextEdit(storage.healingPercents or "50,70,90", function(widget, text) storage.healingPercents = text end) UI.Separator() macro(1, "Leczenie HP Spell", function() if hppercent() < storage.hpSpellPer then say(storage.hpSpell) end end) UI.Label("Spell do leczenia") UI.TextEdit(storage.hpSpell or "Heal Spell", function(widget, text) storage.hpSpell = text end) UI.Label("Leczy ponizej %") UI.TextEdit(storage.hpSpellPer or "Ilosc", function(widget, text) storage.hpSpellPer = tonumber(text) end) UI.Separator() macro(1, "Leczenie HP Potion", function() if hppercent() <= storage.hpPotionPer then useWith(storage.hpPotion, player) delay(1000) end end) UI.Label("Potion do leczenia HP") UI.TextEdit(storage.hpPotion or "Heal Potion ID", function(widget, text) storage.hpPotion = tonumber(text) end) UI.Label("Leczy ponizej %") UI.TextEdit(storage.hpPotionPer or "Ilosc", function(widget, text) storage.hpPotionPer = tonumber(text) end) UI.Separator() macro(1, "Leczenie Many", function() if hppercent() > storage.hpAbovePer then if manapercent() < storage.mpPotionPer then if TargetBot.isOn() then if not looting then useWith(storage.mpPotion, player) delay(1000) end else useWith(storage.mpPotion, player) delay(1000) end end end end) UI.Label("Potion do leczenia Many") UI.TextEdit(storage.mpPotion or "Mana Potion ID", function(widget, text) storage.mpPotion = tonumber(text) end) UI.Label("Leczy ponizej % Many") UI.TextEdit(storage.mpPotionPer or "Ilosc", function(widget, text) storage.mpPotionPer = tonumber(text) end) UI.Label("Leczy POWYZEJ % HP") UI.TextEdit(storage.hpAbovePer or "Ilosc", function(widget, text) storage.hpAbovePer = tonumber(text) end) UI.Separator() macro(1, "Mega Hur", function() if (not hasHaste() and hppercent() >= storage.hpSpellPer) then say(storage.hasteSpell) elseif (hppercent() < storage.hpSpellPer and isParalyzed()) then say(storage.hasteSpell) end end) UI.Label("Haste Spell") UI.TextEdit(storage.hasteSpell or "Spell na haste", function(widget, text) storage.hasteSpell = text end) UI.Separator() local m = macro(10, "Utamo Vita", function() if hasManaShield() then return end say(storage.manaShield) end) macro(15000, "", function() if m.isOff() then return end say(storage.manaShield) end) UI.Label("Manashield spell:") UI.TextEdit(storage.manaShield or "utamo vita", function(widget, newText) storage.manaShield = newText end) UI.Separator() macro(1, "Utito Tempo", function() if hppercent() >= 90 and hasHaste() and not hasPartyBuff() then say(storage.buffSpell) end end) UI.Label("Spell na buffa") UI.TextEdit(storage.buffSpell or "Utito Tempo", function(widget, text) storage.buffSpell = text end) UI.Separator() macro(10, "Exeta Res", function() if getMonsters(1, 0) >= 1 then say("exeta res") delay(3000) end end) UI.Separator() local up = "Up" local down = "Down" local right = "Right" local left = "Left" dodgeDash = macro(10000000, "Dodge", function() end) local function fullUp() for i = 5, 1, -1 do local pos = {x = posx(), y = posy()-i, z = posz()} local tile = g_map.getTile(pos) if tile and tile:isWalkable() then local path = findPath(player:getPosition(), pos, 30, {ignoreNonPathable=true, ignoreCreatures=false, precision=0}) if path then local tile = g_map.getTile(pos) g_game.autoWalk(path, {x=0,y=0,z=0}) return end end end end local function fullRight() for i = 7, 1, -1 do local pos = {x = posx()+i, y = posy(), z = posz()} local tile = g_map.getTile(pos) if tile and tile:isWalkable() then local path = findPath(player:getPosition(), pos, 30, {ignoreNonPathable=true, ignoreCreatures=false, precision=0}) if path then local tile = g_map.getTile(pos) g_game.autoWalk(path, {x=0,y=0,z=0}) return end end end end local function fullDown() for i = 5, 1, -1 do local pos = {x = posx(), y = posy()+i, z = posz()} local tile = g_map.getTile(pos) if tile and tile:isWalkable() then local path = findPath(player:getPosition(), pos, 30, {ignoreNonPathable=true, ignoreCreatures=false, precision=0}) if path then local tile = g_map.getTile(pos) g_game.autoWalk(path, {x=0,y=0,z=0}) return end end end end local function fullLeft() for i = 7, 1, -1 do local pos = {x = posx()-i, y = posy(), z = posz()} local tile = g_map.getTile(pos) if tile and tile:isWalkable() then local path = findPath(player:getPosition(), pos, 30, {ignoreNonPathable=true, ignoreCreatures=false, precision=0}) if path then local tile = g_map.getTile(pos) g_game.autoWalk(path, {x=0,y=0,z=0}) return end end end end local function executeKey(keys) if dodgeDash.isOff() then return end if keys == up then for i = 1, 2 do schedule(i*50, function() fullUp() end) end elseif keys == right then for i = 1, 2 do schedule(i*50, function() fullRight() end) end elseif keys == down then for i = 1, 2 do schedule(i*50, function() fullDown() end) end elseif keys == left then for i = 1, 2 do schedule(i*50, function() fullLeft() end) end end end onKeyDown(function(keys) executeKey(keys) end) onKeyPress(function(keys) executeKey(keys) end)