Macro para otcv8 mobile.
Esse macro vai dar follow em qualquer coisa que você atacar.
macro(10, "Follow Target", function()
if g_game.isAttacking() then
return autoWalk(g_game.getAttackingCreature():getPosition(), 10, {ignoreNonPathable=true, precision=1})
end
end)
----
Macros para otcv8 mobile.
Esse macro vai jogar qualquer item que vc colocar o ID ali em IDDOITEM em qualquer coisa que você atacar.
macro(100, "USEWITH", function()
if g_game.isAttacking() then
usewith(IDDOTEM, g_game.getAttackingCreature())
delay(400)
end
end)
---
Macro mobile para otcv8. Esse macro vai curar todos os players que vc colocar o nick ali em friendList, lembre-se, sempre que adicionar algum player à lista, coloque entre (”nick”, "outro nick") etc...
local parent = nil;
local friendList = {"Player X", "Player Y", "Player Z", "Etc",}
macro(100, "Heal Friend", function()
for i, friendSio in ipairs(friendList) do
local friend = getPlayerByName(friendSio)
if friend and friend:getHealthPercent() < 90 then
say("mystical palm technique "" .. friendSio)
delay(400)
end
end
end, parent)
----
Macro mobile para otcv8. Esse macro vai usar algum item de regenerar stamina, assim que ela ficar vermelha (totalmente editável). Em ID coloque o ID do item.
macro(500, "Stamina", function()
if stamina() < 900 then
use(IDDOITEM)
end
end)
---
Macro mobile para otcv8. Esse macro vai abrir um loot na tela (não acho necessário usar já que o próprio bot otcv8 possui um autoloot que funciona perfeitamente).
local itemID = IDDOLOOT
macro(200, "Open Loot", function()
for _, tile in ipairs(g_map.getTiles(posz())) do
if tile:getTopUseThing():getId() == itemID then
use(tile:getTopUseThing())
return
end
end
end)
---
Macro mobile para otcv8.
Atenção: Esse macro é proibido em alguns servidores, por isso, use apenas em servidores que sejam liberados (use por sua conta e risco, não me responsabilizo por bans).
Esse macro vai atacar todos os players que aparecer na tela. Ali em "PLAYER X, PLAYER Y, ETC" coloque o nome dos players que você não quer atacar.
local playerList = {}
local friendPlayers = {"PLAYER X", "PLAYER Y", "PLAYER Z", "ETC",}
macro(200, "Auto Enemy", function()
for _,mob in ipairs(getSpectators(posz())) do
if mob:getEmblem() == 1 then
table.insert(friendPlayers, mob:getName():lower())
end
if not table.find(friendPlayers, mob:getName():lower()) then
if mob:isPlayer() then
table.insert(playerList, {player = mob, hpenemy = mob:getHealthPercent()})
end
end
end
table.sort(playerList, function(a,b) return a.hpenemy < b.hpenemy end)
if not g_game.isAttacking() and playerList[1] then
g_game.attack(playerList[1].player)
end
playerList = {}
end)
---
Macro mobile para otcv8.
Atenção: Esse macro é proibido em alguns servidores, por isso, use apenas em servidores que sejam liberados (use por sua conta e risco, não me responsabilizo por bans).
Macro de Target com icon do lado esquerdo, totalmente editável.
addIcon("Target", {item={id = 6117}, text= "TARGET"}, macro(900, "TARGET", function()
if g_game.isAttacking() then
oldTarget = g_game.getAttackingCreature() -- save the target
end
if oldTarget and not g_game.isAttacking() and
getDistanceBetween(pos(), oldTarget:getPosition())
<= 8 then -- if the player has no target and player is on distance
g_game.attack(oldTarget)
end
end) )
---
Macro mobile para otcv8. Esse macro vai usar buff e chakra rest automaticamente sempre que o buff acabar.
macro(500, "Auto Buff", function()
if not hasPartyBuff() then
say("NOME DO BUFF")
say("chakra rest")
end
end)
---
Macro mobile para otcv8. Esse macro vai usar haste (chakra feet) automaticamente sempre que o haste acabar.
macro(500, "Auto Haste", nil, function()
if not hasHaste() and storage.autoHasteText:len() > 0 then
if saySpell(storage.autoHasteText) then
delay(1000)
end
end
end)
addTextEdit("autoHasteText", storage.autoHasteText or "concentrate chakra feet", function(widget, text)
storage.autoHasteText = text
end)
---
Macro mobile para otcv8. No bot do otcv8 tem uma config de Regeneration, porém ela da bastante delay quando há muitos macros ativados, por isso, recomendo usar Regeneration usando um macro. Abaixo, deixo o melhor macro de Regeneration (totalmente sem delay).
local hpPercent = 99
macro(50, "Fast Regen", function()
if (hppercent() <= hpPercent) then
say(storage.HealText)
end
end)
addTextEdit("HealText", storage.HealText or "big regeneration", function(widget, text)
storage.HealText = text
end)
--
Macro mobile para otcv8. Esse macro vai usar kawarimi quando Hp chegar em 50%, totalmente editável.
local healingSpell = 'kawarimi no jutsu defensive' local hpPercent = 50 macro(50, "Kawarimi 50%", function() if (hppercent() <= hpPercent) then say(healingSpell) end end)
---
Macro mobile para otcv8. Macro de dance.
macro(250, "Dance", function()
turn(math.random(0, 3)) -- turn to a random direction.
end, warTab)
--
Macro mobile para otcv8. Com esse macro você vai poder dar follow e atacar ao mesmo tempo, pode ser melhorado.
local toFollow = "QUEM DEVO SEGUIR"
local toFollowPos = {}
local followMacro = macro(20, "Follow", function()
local target = getCreatureByName(toFollow)
if target then
local tpos = target:getPosition()
toFollowPos[tpos.z] = tpos
end
if player:isWalking() then return end
local p = toFollowPos[posz()]
if not p then return end
if autoWalk(p, 20, {ignoreNonPathable=true, precision=1}) then
delay(100)
end
end)
onCreaturePositionChange(function(creature, oldPos, newPos)
if creature:getName() == toFollow then
toFollowPos[newPos.z] = newPos
end
end)
--
Macro mobile para otcv8. Esse macro é para sio, ele vai ter 2 niveis de priorização de cura, no primeiro, vc coloca o nome do player que deseja que o sio foque primeiro, no segundo, colocar por exemplo, o seu nick ou o nick de algum outro player que desejar ser curado por último.
macro(100, "Sio", function()
local friend = getPlayerByName(storage.friendName)
local friend1 = getPlayerByName(storage.friend1Name)
if friend and friend:getHealthPercent() < 80 then
say("Mystical palm technique \""..storage.friendName)
delay(500)
elseif friend1 and friend1:getHealthPercent() <= 80 then -- If u need more you can copy this lines
say("Mystical palm technique \""..storage.friend1Name) --
delay(500) --
end -- And paste them between this end and the delay
end)
addTextEdit("friendName", storage.friendName or "Friend Name", function(widget, text)
storage.friendName = text
end)
addLabel("Priority 1 ^ Priority 2 v", "Priority 1 ^ Priority 2 v")
addTextEdit("friend1Name", storage.friend1Name or "Friend Name", function(widget, text) -- Also copy this lines
storage.friend1Name = text -- If u add more just rename the Friend1Name to Friend2Name in the lines u paste
end) --
---
Macro mobile para otcv8. Esse macro é conhecido como combo heal, porém, dá pra fazer muita coisa com ele. Ele basicam vai usar todas as suas spells de cura (esse macro é para healer).
local Heal1 = 'shousen no jutsu'
local Heal2 = 'Mystical Palm Technique "SEU NICK'
local Heal3 = 'saikan chuushutsu no jutsu'
local HpPerc = 90
macro(200, "Combo Heal", function()
if (hppercent() <= HpPerc) then
say(Heal1)
say(Heal2)
say(Heal3)
end
end)
---
Macro mobile para otcv8. Esse macro vai usar shield (chakra defense) sozinho e desativar sozinho. Totalmente editável.
local castBelowHp = 95
local deactiveBelowMana = 100
macro(98, "Chakra Defense", function()
if (hppercent() <= castBelowHp and manapercent() >= deactiveBelowMana and not hasManaShield()) then
say('chakra Defense')
end
if (manapercent() <= deactiveBelowMana and hppercent() >= castBelowHp and hasManaShield()) then
say('defense Kai')
end
end)
---
Macro mobile para otcv8. Esse macro vai atacar tudo na tela (menos player), priorizando o mob do menor Hp para o maior Hp.
macro(100, "Mobs", function()
local battlelist = getSpectators();
local closest = 10
local lowesthpc = 101
for key, val in pairs(battlelist) do
if val:isMonster() then
if getDistanceBetween(player:getPosition(), val:getPosition()) <= closest then
closest = getDistanceBetween(player:getPosition(), val:getPosition())
if val:getHealthPercent() < lowesthpc then
lowesthpc = val:getHealthPercent()
end
end
end
end
for key, val in pairs(battlelist) do
if val:isMonster() then
if getDistanceBetween(player:getPosition(), val:getPosition()) <= closest then
if g_game.getAttackingCreature() ~= val and val:getHealthPercent() <= lowesthpc then
g_game.attack(val)
delay(100)
break
end
end
end
end
end)
--