Ir para conteúdo
Entre para seguir isso  
Mock

Bot cleanner v.4.2

Recommended Posts

Mock    32
Mock

Bot Cleanner

200px-Broom_icon.svg.png

Testado e funcionado em TFS 0.3.1 para tibia 8.4 feito por min MOCK!

 

Oi, mais uma vez a nova versao do bot cleanner! o incrivel bot (agora mais bot) que limpa o mapa. Na primeira versão ele nao passava de um add event que saia andando em direção aleatorio pelo mapa e onde passava limpava, você tinah que se matar colocando actionid 500 no chao em volta da area dele se nao ele saia até do mapa entrava nas houses, ja na 2.0 ele tem uma area definida igual monsters se passar da area ele some, foi tambem com a ajuda da função isWalkable que agora o bot so vai onde um player vai, tambem sobe escadas e dece. na 3.0 eu nao decidi postar e decidi fazer a 4.0 e posta-la logo:

 

Novidades:

  • Quando tem um item no chao e ele passa ao lado ele vai em direção do item mesmo na diagonal.
  • caso haja uma fileira de itens ele seguira a fileira até o possivel
  • Caso ele passe ao lado de 2 itens ele forçara uma clean bomb deletando estes 2 itens ou mais.
  • ele agora tem a opção: bot folow, playername > ele seguira playername até onde for possivel (subindo e descendo escadas!)
  • função bot find, itemname/id fará o botprocurar em seu campo de visao (igual de um player 7x5) os itens definidos quando encntrar ira em direção dos mesmos.
  • Novo: 4.2 Possibilidade de configurar a tabela: only_del. quando vazia o bot funciona normalmente quando e posto um itemid la dentro o bot passara por todos os itens como se os mesmos nao existissem e quando encontrar o itemid definido na tabela (ele ou outros) o bot ira deleta-lo.
    exemplo: oly_del = {6500,3000,2621}

Bom o bot cleanner 4.1 ainda tem alguns bugs, eu agradeço kaotar por ajudar com a função que faz o bot desviar de obstaculos, porem essa função ainda tem MUITOS erros entao ela esta desabilitada na configuração porem se quiser habili-tala denovo basta ao inves de FALSE trocar por TRUE na config porem ela tem alguns errinhos ainda.

 

Para começar adcione isso em seu functions.lua

function getDistanceTo(p1,p2)
   local c = p1
   local s = p2
   return math.max(math.abs(s.x - c.x), math.abs(s.y - c.y))
end
function doMove(dir,maspos,config)    --- funcion by kaotar THHHHHHHHHHHHHHHHHHHHHHHHHHHHHX!!!!

System = {
   {NORTH, NORTHWEST, NORTHEAST, EAST, WEST},
   {EAST, NORTHEAST, SOUTHEAST, NORTH, SOUTH},
   {SOUTH, SOUTHEAST, SOUTHWEST, EAST, WEST},
   {WEST, SOUTHWEST, NORTHWEST, SOUTH, NORTH},
   {SOUTHWEST, SOUTH, WEST, SOUTHEAST, NORTHWEST},
   {SOUTHEAST, EAST, SOUTH, NORTHEAST, SOUTHWEST},
   {NORTHWEST, WEST, NORTH, SOUTHWEST, NORTHEAST},
   {NORTHEAST, NORTH, EAST, NORTHWEST, SOUTHEAST},
}
if config.move_inteligente == TRUE then
   local dir_table = System[dir+1]
   local tmp
   for tmp = 1, #dir_table do

       if (isWalkable2(getPosByDir({x=maspos.x,y=maspos.y,z=maspos.z},dir_table[tmp])) == TRUE and getTileHouseInfo({x=maspos.x,y=maspos.y,z=maspos.z}) == 0 and getThingfromPos(getPosByDir({x=maspos.x,y=maspos.y,z=maspos.z},dir_table[tmp])).actionid ~= 500) then

           return dir_table[tmp]
       end
   end
   return math.random(0,3)
else
return dir
end
end
--- se seu server é TFS 0.3.1 nao inclua essa função
if getTileHouseInfo == nil then
  function getTileHouseInfo(pos)
    return 0
  end
end
----
function isWalkable2(pos)
   local wall0 = getThingfromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=0})
   local wall1 = getThingfromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=1})
   local wall2 = getThingfromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=2})
   local creature = getThingfromPos({x=pos.x, y=pos.y, z=pos.z, stackpos=255})
   if isCreature(creature.uid) == FALSE then
   if wall0.uid ~= 0 and hasProperty(wall0.uid, 3) == FALSE and hasProperty(wall0.uid, 7) == FALSE then
       if wall1.uid == 0 or (hasProperty(wall1.uid, 3) == FALSE and hasProperty(wall1.uid, 7) == FALSE) then
           if wall2.uid == 0 or (hasProperty(wall2.uid, 3) == FALSE and hasProperty(wall2.uid, 7) == FALSE) then
                   return TRUE
               end
           end
       end
   end
   return FALSE
end
function hasSqm(maspos)
     if getTileThingByPos({x=maspos.x,y=maspos.y,z=maspos.z,stackpos=0}).itemid ~= 0 then
           return TRUE
     end
end  

function checkItensInArea(item, pos,memory,stack,ignore)
if stack == nil then
local stack = 255
end
   for y = 1, 11 do
       for x = 1, 15 do
               local pos = {x = pos.x+x -7 , y = pos.y+y-5 , z = pos.z,stackpos = stack}
               if hasSqm(pos) == TRUE then
                  local coisa = getThingfromPos(pos)
                  if coisa.uid ~= 0 then
                     if (coisa.itemid == item and getTileHouseInfo(pos) == 0 and isWalkable2(pos) == TRUE and memory.ignore ~= coisa.itemid) or (ignore == TRUE and coisa.itemid == item) then
                        doSendAnimatedText(pos, 'Target!', 200)
                        return coisa
                     end
                  end
               end
          end
   end
end
function doCleanArea(pos, exclusaos,config)
     pos1 = {x=pos.x-1,y=pos.y-1,z=pos.z}
     pos2 = {x=pos.x+1,y=pos.y+1,z=pos.z}
     for x = 0, math.abs(pos1.x-pos2.x) do
         for y = 0, math.abs(pos1.y-pos2.y) do
             pos3 = {x = pos1.x+x, y = pos1.y+y, z = pos1.z, stackpos = 255}
             local coisa = getThingfromPos(pos3)
             pos3 = {x = pos1.x+x, y = pos1.y+y, z = pos1.z, stackpos = 0}
             local coisa2 = getThingfromPos(pos3)
             doSendMagicEffect(pos3,config.BombEfect)
             if coisa.itemid ~= 0 then
                if isInArray(exclusaos, coisa.itemid) == FALSE and getTileHouseInfo(pos3) == 0 and coisa2.actionid ~= 500 and isWalkable2(pos3) == TRUE then
                   if config.only_del[1] == nil then
                          doRemoveItem(coisa.uid, -1)
                          doSendAnimatedText(pos3,"Deleted", math.random(1,255))
                   elseif isInArray(config.only_del, coisa.itemid) == TRUE then
                          doRemoveItem(coisa.uid, -1)
                          doSendAnimatedText(pos3,"Deleted", math.random(1,255))   
                   end
                end
             end
         end
     end
end
--- Thanks jovial for tihs function 
--- http://forums.otserv.com.br/f154/funcao-inscreen-2-0-by-jovial-3363/ 
function isInArea(center, pos2,radius)
if radius ~= 0 then
 return TRUE
end
   if ((math.abs(center.x - pos2.x) <= radius) and (math.abs(center.y - pos2.y) <= radius)) then
       return TRUE
   else
       return FALSE
   end
end     
string.trim = function (str)
return (string.gsub(str, "^%s*(.-)%s*$", "%1"))
end
string.explode = function (str, sep)
local pos, t = 1, {}
if #sep == 0 or #str == 0 then
 return
end
for s, e in function() return str:find(sep, pos) end do
 table.insert(t, str:sub(pos, s - 1):trim())
 pos = e + 1
end
table.insert(t, str:sub(pos):trim())
return t
end       

 

Agora se você ja tem o bot em seu server basta subistuir, caso nao tenha va em actions.xml adcione a tag:

<action actionid="1234" script="lixos.lua"/>

crie o arquivvo lixos.lua dentro da pasta scripts e nele ponha isso:

--[[
script by mock!
don't be a ripper!
this is exclusive for OTSERV NETWORKS!
]]
config = {
velocidade = 1000,
credits = {made_by="Mock",to="otServNetworks"},
Efeito_normal = 47, --- magic effect  (normal)
Efeito_block = 31,  --- magic effect (blocking in some wall
BombEfect = 1,
Allow_funnyTalks = TRUE,
funnyTalks = {"lol","Hello","o0"},
Allow_Bombs = TRUE, --- clean bombs (limpa em volta do bot)
----ssecurity
exclusoes ={9999,2092,2554}, -- Ignored itemids
allowFloorChange = TRUE,  -- floor change?
stairs_up_ids = {1386,1385,1389,3687,5259,6911,9573}, -- Stairs id (to up)
stairs_down_ids = {459,4834,3219,4837,3219,9846},  -- Stairs id (down)
sqms_de_distancia_do_centro = 5, -- spawn radius
move_inteligente = FALSE, -- ainda ta meio bugado
only_del = {},
}
local function andar(topos,cento,config,move,cid,memory)

   cid = getGlobalStorageValue(1234)
   ----- talking...
   if math.random(1,12) > 8 and config.Allow_funnyTalks == TRUE then
        doSendAnimatedText(topos,config.funnyTalks[math.random(1,#config.funnyTalks)],math.random(1,255))
     end

   --- Some important thinks ""
   local maspos = {x = topos.x, y = topos.y ,z = topos.z,stackpos=255}
   local oldpos = topos
   local changed = FALSE
   local dires = {}
   local getdir = math.random(0,3)
   ignore_now = FALSE


   if isCreature(cid) == FALSE then
        for dir = 0,7 do
            local p = getPosByDir({x=maspos.x,y=maspos.y,z=maspos.z}, dir)
            p.stackpos = 255
            local coisa = getThingfromPos(p)
            p.stackpos = 0
            local coisa2 = getThingfromPos(p)
            if coisa.itemid ~= 0 then
             if isInArray(config.exclusoes, coisa.itemid) == FALSE and getTileHouseInfo(p) == 0 and coisa2.actionid ~= 500 and isWalkable2(p) == TRUE  then
                if config.only_del[1] == nil then
                   table.insert(move, 1, dir)   
                   table.insert(dires, 1, dir)
                elseif isInArray(config.only_del, coisa.itemid) == TRUE then
                   table.insert(move, 1, dir)   
                   table.insert(dires, 1, dir)
                end

             end
            end
        end
     end
   if #move ~= 0 then
        ignore_dir = TRUE
        getdir = move[1]
        table.remove(move,1)
     end  
   local doBomb = FALSE
   if #dires >= 2 and config.Allow_Bombs == TRUE then
        doCleanArea(topos, config.exclusoes,config)
        doBomb = TRUE
      end  
   if getGlobalStorageValue(12345) ~= -1 then
      local coisae = checkItensInArea(getGlobalStorageValue(12345),{x=maspos.x,y=maspos.y,z=maspos.z},memory,255)
       if coisae ~= nil then
            memory.toFind = coisae
            memory.Olddir2 = memory.Olddir
            if memory.Olddir2 == nil then
            memory.Olddir2 = 8
            end



            memory.Olddir = memory.dir
            local p = getThingPos(coisae.uid)
            if isInArray(config.exclusoes, coisae.itemid) == FALSE and getTileHouseInfo(p) == 0 and isWalkable2(p) == TRUE  then
                   getdir = doMove(getDirectionTo({x=maspos.x,y=maspos.y,z=maspos.z}, p),{x=maspos.x,y=maspos.y,z=maspos.z},config)
            end
       else
           memory.toFind = nil
       end
   else
      memory.ignore = 0
      memory.toFind = nil 
   end
   if isCreature(cid) == TRUE then
       local creature_pos = getCreaturePosition(cid)
       if creature_pos.z < maspos.z then
           for i=1, #config.stairs_up_ids do
           local coisae = checkItensInArea(config.stairs_up_ids[i],{x=maspos.x,y=maspos.y,z=maspos.z},memory,1,TRUE)
               if coisae ~= nil then
                   memory.toFind = coisae
                   break
               end
           end
           if memory.toFind ~= nil then 
               getdir = doMove(getDirectionTo({x=maspos.x,y=maspos.y,z=maspos.z},getThingPos(memory.toFind.uid)),{x=maspos.x,y=maspos.y,z=maspos.z},config)
           end
       elseif creature_pos.z > maspos.z then
           for i=1, #config.stairs_down_ids do
               local coisae = checkItensInArea(config.stairs_down_ids[i],{x=maspos.x,y=maspos.y,z=maspos.z},memory,0,TRUE)
               if coisae ~= nil then
                   memory.toFind = coisae
                   break
               end
           end
           if memory.toFind ~= nil then 
               getdir = doMove(getDirectionTo({x=maspos.x,y=maspos.y,z=maspos.z},getThingPos(memory.toFind.uid)),{x=maspos.x,y=maspos.y,z=maspos.z},config)
           end
       else  

           getdir =  doMove(getDirectionTo({x=maspos.x,y=maspos.y,z=maspos.z},creature_pos),{x=maspos.x,y=maspos.y,z=maspos.z},config)
       end
   end
   maspos = getPosByDir(maspos,getdir)
   if hasSqm(maspos) == TRUE then 
       Items = getThingfromPos(maspos)
       Items2 = getThingfromPos({x=maspos.x,y=maspos.y,z=maspos.z,stackpos=1})
       Itempost = maspos
       Itempost.stackpos = 0
       val = getThingfromPos(Itempost)
   else
       Items = {uid=0,itemid=0}
       Items2 = {uid=0,itemid=0}
       val = {actionid=0}
   end
   if (hasSqm(maspos) == FALSE or val.actionid == 500 or getTileHouseInfo(maspos) ~= 0 or isWalkable2(maspos) == FALSE or isCreature(Items.uid) == TRUE or isInArea(cento, maspos,config.sqms_de_distancia_do_centro) == FALSE) then
        if config.allowFloorChange == TRUE then
                if hasSqm(maspos) == TRUE then                   
                items2 = getThingfromPos({x = maspos.x, y = maspos.y ,z = maspos.z,stackpos=1})
                items3 = getThingfromPos({x = maspos.x, y = maspos.y ,z = maspos.z,stackpos=0})
                else
                items2.itemid = 0
                items3.itemid = 0
                end
                if isInArray(config.stairs_up_ids, items2.itemid) == TRUE and ignore_now == FALSE then
                   doSendAnimatedText(maspos,"UP!", math.random(1,255))
                   if memory.toFind ~= nil then
                   if isInArray(config.stairs_up_ids, memory.toFind.itemid) == TRUE then
                   memory.toFind = nil
                   end
                   end
                   maspos.z = maspos.z-1
                   changed = TRUE
                elseif isInArray(config.stairs_down_ids, items3.itemid) == TRUE and ignore_now == FALSE then
                   doSendAnimatedText(maspos,"DOWN!", math.random(1,255))
                   if memory.toFind ~= nil then
                   if isInArray(config.stairs_down_ids, memory.toFind.itemid) == TRUE then
                   memory.toFind = nil
                   end
                   end
                   maspos.z = maspos.z+1
                   changed = TRUE
                end        
        end
        if getDistanceTo(cento,maspos) > config.sqms_de_distancia_do_centro and config.sqms_de_distancia_do_centro ~= 0 then
         addEvent(andar,  config.velocidade, cento,cento,config,move,cid,memory)
        return TRUE
        end
         if memory.toFind ~= nil then
           if memory.last_pos.x == maspos.x and memory.last_pos.y == maspos.y then
             doSendAnimatedText(maspos,"No way.", math.random(1,255))
             memory.ignore = memory.toFind.itemid 
             memory.toFind = nil
           end
         end        
        memory.last_pos.x = maspos.x
        memory.last_pos.y = maspos.y
        if getdir == 1 then
        getdir = 3     
        elseif getdir == 3 then
        getdir = 1       
        elseif getdir == 0 then
        getdir = 2    
        elseif getdir == 2 then
        getdir = 0    
        elseif getdir == 4 then
        getdir = 7      
        elseif getdir == 7 then
        getdir = 4     
        elseif getdir == 5 then
        getdir = 6
        elseif getdir == 6 then
        getdir = 5
        end
        if changed == FALSE then
        doSendAnimatedText(maspos,"Block", math.random(1,255))
        topos = getPosByDir(maspos, getdir)
        doSendMagicEffect(maspos,config.Efeito_block)
        end
     else
         if Items.itemid ~= 0 then
            if isInArray(config.exclusoes, Items.itemid) == FALSE then
               if isInArray(config.only_del,Items.itemid) == FALSE then
                  if  config.only_del[1] == nil then
                  doSendMagicEffect(maspos,config.Efeito_normal)
                  local cor = math.random(1,255)
                  addEvent(doSendAnimatedText, 200,maspos,"Deleted",cor)
                  doRemoveItem(Items.uid, -1)
                  topos = maspos
                  end
                else
                  doSendMagicEffect(maspos,config.Efeito_normal)
                  local cor = math.random(1,255)
                  addEvent(doSendAnimatedText, 200,maspos,"Deleted",cor)
                  doRemoveItem(Items.uid, -1)
                  topos = maspos
                end  
            else
               topos = maspos
               doSendAnimatedText(maspos,"Ignore", math.random(1,255)) 
            end
         end
     end
   if math.random(30,100) <= 30 and config.Allow_Bombs == TRUE and doBomb == FALSE then
        doCleanArea(topos, config.exclusoes,config)
     end
   doSendMagicEffect(maspos,config.Efeito_normal)
   topos = maspos
if config.credits.made_by == "Mock" then
   addEvent(andar,  config.velocidade, topos,cento,config,move,cid,memory)
else
   doBroadcastMessage('Esse script foi ripado! você nao tem o direito de usar -.-, This script was ripped! you cannot use this, so FUCK YOU!', 11)
end
end
---- Ativaction 
function onUse(cid, item, frompos, item2, topos)
        if getPlayerGroupId(cid) > 3 then
           local cento = topos
           move = {2}
                       memory = {last_pos = topos,last_del=0,id=math.random(9999,30000),ignore  =0}

           addEvent(andar,  config.velocidade, topos,cento,config,move,cid,memory)
           doSendAnimatedText(topos,"Bot "..memory.id, math.random(1,255))
           return true
        else
            return false
        end
end
--- original link:

Bom nas ultimas linhas você viu uma tabela: move = {2} isso e a direção inicial e as direções, caso você quira que o bot va para cima cima cima esquerda direita esquerda etc~ muda na tabela: move = {1,2,0,0,0,3,5} << isso é as direções

 

Agora va em talkactions.xml e adcione esta tag (novidade xD)

<talkaction log="yes" access="6" words="bot" script="bot.lua"/>

crie o arquivo bot.lua e ponha isso:

function onSay(cid, words, param)
if param == "" then
  param = "No param"
end
local str = string.lower(param)              
str = string.explode(str,", ")
if str[1] == "folow" and str[2] ~= nil then
  local creature = getCreatureByName(str[2])
  if isCreature(creature) == TRUE then
     setGlobalStorageValue(1234,creature)
     doPlayerSendTextMessage(cid,12,"Todos os bots esstão programados para segui 'Creature "..str[2].."'")
  else
      doPlayerSendTextMessage(cid,12,"Não encontrado 'Creature "..str[2].."' Caso exista alguma creature selecionada para se seguir o comando foi cancelado.")
      setGlobalStorageValue(1234,-1)
  end
else
   if str[2] == nil or str[2] == "" then
  doPlayerSendTextMessage(cid,12,"Parametros insuficientes para 'folow'")
  end 
end
if str[1] == "find" and str[2] ~= nil then
local n = tonumber(str[2])
   if type(n) == 'number' and n > 100 then
      setGlobalStorageValue(12345,n)
      doPlayerSendTextMessage(cid,12,"Todos os bots estão a procura do itemid '"..str[2].."' -> '".. getItemNameById(str[2]).."'") 
   elseif type(str[2]) == 'string' and n == 1 then
   d = getItemIdByName(str[2])
   if d ~= -1 then
     setGlobalStorageValue(12345,d)
      doPlayerSendTextMessage(cid,12,"Todos os bots estão a procura de ".. str[2].."s.")
   else
     doPlayerSendTextMessage(cid,12,str[2].." Não encontrado.")
   end 
   else
   doPlayerSendTextMessage(cid,12,"'find' presisa conter um numero apos ',' , Valores existentes limpos")   
   setGlobalStorageValue(12345,-1) 
   end
else
   doPlayerSendTextMessage(cid,12,"Parametros insuficientes para 'find', Valores existentes limpos")
   setGlobalStorageValue(12345,-1) 
end
return TRUE
end

Salve tudo ponha actionid 1234 em alguma coisa e é so dar use nela que o bot estar-a la, PS: nao esqueça de configurar algumas coisas na tabela config.

Editado por Black Ice
update

Compartilhar este post


Link para o post
Elys Zarox    0
Elys Zarox

Cara sem duvida esse foi o script seu que mais me surprendeu e quando eu vi eu fiquei sem saber o que poderia colocar mais nisso xD, pessoal eu recomendo parece até um servo que obedece seus comandos xD, tibia ficando inteligente graças a scripters assim

@Edit

 

bug:a string.explode ta dando erro quando só poem um numero =p

 

Parabens mock

Editado por Elys Zarox

Compartilhar este post


Link para o post
Mock    32
Mock

sim é 1 problema dessa função... vo ver se acho otra p subistiuir essa.

Compartilhar este post


Link para o post
Shyzoul    0
Shyzoul

aaaaaaaaaaa

 

Não entendi pra que serve explica ;S

 

thx ;~

Compartilhar este post


Link para o post
Mock    32
Mock

é um bot que limpa o mapa ele sai andando pelo mapa e quando acha um item jogado no chao tipo vial etc ele deleta.

Compartilhar este post


Link para o post
Eratsu    37
Eratsu

Mock! mais tem como arruma ele pra, so pegar vials e bps do chao?

Compartilhar este post


Link para o post
Mock    32
Mock

@guido

e uma boa função, vo faze um update nele com essa função :P vlw pela sujestao

Compartilhar este post


Link para o post
Shyzoul    0
Shyzoul

Uma duvida ainda ele cata TUDO ou so vials?

Compartilhar este post


Link para o post
Mock    32
Mock

ele cata TUDO mais vc pode configura pra ser só os vials

Compartilhar este post


Link para o post
Darkjav    0
Darkjav

i used cryingdamson 0.3.3

8.41, and not work, why?

Compartilhar este post


Link para o post
Mock    32
Mock

darkjav

your server show some error message?

Compartilhar este post


Link para o post
Darkjav    0
Darkjav
darkjav

your server show some error message?

 

 

without error, only not work :S, the bot wait in 1 sqm and not walk

Compartilhar este post


Link para o post
Mock    32
Mock

The real problem is the function getTileHouseInfo(pos)

Ever returns 1.

do it

function getTileHouseInfo(pos)

return FALSE

end

add on functions.lua

Compartilhar este post


Link para o post
Seven    0
Seven

Eu ainda não entendi direito o que esse bot tem de mais...

O que ele é melhor do que um /clean automatico?

Compartilhar este post


Link para o post
Conde2    0
Conde2

@Seven

Cara pensa em um server com uns 100 player online +

Um simples /clean daria um lag consideravel !!

Alem disso voce pode usar a criatividate o.O

 

@Mock

Cara genial !! Simplesmente perfeito

Script perfeito, mas nao gostei do grande uso do addEvent, acho que pode da bug o.O....

Mas vc sabe o que faz kkk

 

OBS:

Achei meio tosco esse sistema anti rippi hsadasuhudhashda

tem um jeito bem melhor pra fazer isso, esse daew nao adianta nada !!!

ahsdudhasus

depois te falo kkkkk

Compartilhar este post


Link para o post
Anywhere    0
Anywhere

Acabei de colokar no meu ot, criatividade exelente....

Mas ta dando esse erro olha...

Eu falo o comando e aparece isso.

 

16:38 /cleaner

16:38 Parametros insuficientes para 'folow'

16:38 Parametros insuficientes para 'find', Valores existentes limpos

 

To achando que colokei akele codigo das functions em lugar lugar errado, eu achei um functions dentro da pasta lib...

=s

Se não é essa qual eh o arquivo certo?

 

[Edit...]

 

To com o mesmo problema do americano, o bot aparece, mais n se meche, nem limpa nada, ai vc disse a solução pra ele, só que fui tentar fazer, mais tem um monte de RETURN, n faço ideia daonde tem q mudar varios TRUE e FALSE =s

 

Quando ele vai anda aparece Block, no tile que ele ia, pq falei pra ele me seguir =p

 

Desculpa a burrice e vlws =x...

Editado por Anywhere

Compartilhar este post


Link para o post
Kerooker    0
Kerooker

Kra, estou com uma duvida, gostaria de saber exatamente em ke pasta salvar, por exemplo, apenas function.lua naum me ajuda... se vc pudesse informar exatamente em q pasta eh, fikaria grato (data/... monster/...)

Compartilhar este post


Link para o post
Gahzinhu    0
Gahzinhu

ta dando o mesmo erro aqui:

16:38 /cleaner

16:38 Parametros insuficientes para 'folow'

16:38 Parametros insuficientes para 'find', Valores existentes limpos

 

e quando eu uso o item com o ActionID o bot nao anda fica parado falando block, block...

Compartilhar este post


Link para o post
Mock    32
Mock

@all

cara antes de sair pondo o bot verifique a versao do seu ot.

se vcs n sabem eme foi testado em tfs 0.3.0 en ao em 0.2.1 ou 0.3.1+ siginifica que ele SÓ funciona no TFS que ta no topico nao funciona em outros

e o comando vcs nao tam sabendo usar

 

/claner find, 6500

/claner folow, Mock

 

 

 

Adcionem isso no lixos.lua:
function getTileHouseInfo(pos)

return FALSE

end

Editado por Mock

Compartilhar este post


Link para o post
Gahzinhu    0
Gahzinhu

entao meu server é The Forgotten Server 0.3

ai quando eu uso o item com a ActionID o bot nao anda fica falando

 

bot e uns numeros

 

obs: ele deleta os itens que estao em sua volta com bomb, mas ele nao sai dali

Compartilhar este post


Link para o post
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×