Ir para conteúdo

[8.1] Bot Cleanner


Mock

Posts Recomendados

Bom esse script foi postado em outro forum la sou conhecido como Mock e venho postar aqui tambem.

Bom esse script consta apenas um Bot que limpa o mapa.

porem não e um script comun e um script revolucionario :D

 

 

Bom antes de ver o script sugiro ver o video:

 

http://br.youtube.com/watch?v=KaQlnGKkVfY

 

Agora qu voçê ja viu vamos ao CONFIG 1º

Crie um arquivo chamado

lixoconfig.lua

Ai nele ponha esse script:

---------------------Bot cleanner config by Mock----------
-----------------------Feito exclusivamente para ot net e Xtibia-----
----- Voçê não tem autorização para remover os creditos

velocidade = 700 --- Velocidade em milisegundos que ele ira dar 1 passo.
Efeito_normal = 46 -- magic effect do bot (nesse caso seria aquela plantinha carnivora verde
exclusoes1 = 1740 --- Id de item que não sera deleto pelo bot (esseção) 
exclusoes2 = 2106 --- Id de item que não sera deleto pelo bot (esseção) 
exclusoes3 = 2207 --- Id de item que não sera deleto pelo bot (esseção) 
exclusoes4 = 1027 --- Id de item que não sera deleto pelo bot (esseção) 
exclusoes5 = 7840 --- Id de item que não sera deleto pelo bot (esseção) 
exclusoes6 = 2207 --- Id de item que não sera deleto pelo bot (esseção) 
Bomb_chance = 6 --- Chance de ele usar um "Clean berserk"
Bomb_efeito = 13 --- Magic effect do "clean berserk"
----=======----
----Atenção!
----Antes de usar leia atentamente a isto.
----As exclusoes acima são de ID's de itens que não serão deletados.
----Apenas itens que se movem são deletados.
----E deletado apenas 1 item por vez.
----Para delimitar uma area que ele não passa em volta desta area ponha action id 500 exemplo: Casas NPCS
----O action id DEVE ser posto no chao!
----======----

Bom feito isso agora fassa o seguinte

va no actions.xml add esta tag:

<action actionid="1473" script="lixo.lua" />

Agora em seu map editor ponha um action id 1473 no meio do templo no chao em uma alavanca o que voçê quiser (pois so asses 6+ vai poder dar use)

feito isso sugjiro voçê por action id 500 no chao em volta do templo (CHAO! não conta como bordas paredes itens no chao é o chao mesmo o tile o sqm!)

Não deixe 1 brecha no qual seje possivel ele passar pois esse bot é perigoso se ele entra em uma house ele não ta nen ai ele sai limpando.

ele atravessa paredes

anda em sqms sem ground! (fica aparecendo msg de erro na janelinha do server ¬¬)

Bom agora preparem-se pois ai vem o script :D

Script!

 

---------------Bot cleanner By mock--------------
---------------Esclusivo para ot net e Xtibia-------------
--------------- Hail limao server :) Hail ot net Hail xtibia----
dofile('lixoconfig.lua')
local function andar(varli)
----- Falando
local random = math.random(1,220)
if random == 15 then
doSendAnimatedText(varli.topos,"Olá",TEXTCOLOR_DAR  KRED)
elseif random == 20 then
doSendAnimatedText(varli.topos,"Vou",TEXTCOLOR_DAR  KRED)
doSendAnimatedText({x = varli.topos.x+1, y = varli.topos.y ,z = varli.topos.z},"Destruir",TEXTCOLOR_DARKRED)
elseif random == 25 then
doSendAnimatedText(varli.topos,"Ahahaha",TEXTCOLOR  _DARKRED)
elseif random == 30 then
doSendAnimatedText(varli.topos,"xD",TEXTCOLOR_DARK  RED)
elseif random == 35 then
doSendAnimatedText(varli.topos,"Hail",TEXTCOLOR_DA  RKRED)
elseif random == 40 then
doSendAnimatedText(varli.topos,"Blz?",TEXTCOLOR_DA  RKRED)
elseif random == 45 then
doSendAnimatedText(varli.topos,"",TEXTCOLOR_DAR  KRED)
elseif random ==50 then
doSendAnimatedText(varli.topos,"Limpo",TEXTCOLOR_D  ARKRED)
elseif random == 55 then
doSendAnimatedText(varli.topos,":D",TEXTCOLOR_DARK  RED)
elseif random == 60 then
doSendMagicEffect(varli.topos,math.random(1,53))
end
if math.random(1,Bomb_chance) == 5 then
maspos1 = {x = varli.topos.x, y = varli.topos.y +1,z = varli.topos.z,stackpos=255}
doSendMagicEffect(maspos1,Bomb_efeito)
Items = getThingfromPos(maspos1)
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE)
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then
doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN)
doSendMagicEffect(maspos1,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos1,Efeito_normal)
doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED)
end
end
end
maspos1 = {x = varli.topos.x, y = varli.topos.y -1,z = varli.topos.z,stackpos=255}
doSendMagicEffect(maspos1,Bomb_efeito)
Items = getThingfromPos(maspos1)
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE)
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then
doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN)
doSendMagicEffect(maspos1,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos1,Efeito_normal)
doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED)
end
end
end
maspos1 = {x = varli.topos.x+1, y = varli.topos.y +1,z = varli.topos.z,stackpos=255}
doSendMagicEffect(maspos1,Bomb_efeito)
Items = getThingfromPos(maspos1)
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE)
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then
doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN)
doSendMagicEffect(maspos1,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos1,Efeito_normal)
doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED)
end
end
end
maspos1 = {x = varli.topos.x-1, y = varli.topos.y +1,z = varli.topos.z,stackpos=255}
doSendMagicEffect(maspos1,Bomb_efeito)
Items = getThingfromPos(maspos1)
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE)
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then
doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN)
doSendMagicEffect(maspos1,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos1,Efeito_normal)
doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED)
end
end
end
maspos1 = {x = varli.topos.x-1, y = varli.topos.y -1,z = varli.topos.z,stackpos=255}
doSendMagicEffect(maspos1,Bomb_efeito)
Items = getThingfromPos(maspos1)
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE)
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then
doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN)
doSendMagicEffect(maspos1,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos1,Efeito_normal)
doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED)
end
end
end
maspos1 = {x = varli.topos.x+1, y = varli.topos.y -1,z = varli.topos.z,stackpos=255}
doSendMagicEffect(maspos1,Bomb_efeito)
Items = getThingfromPos(maspos1)
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE)
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then
doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN)
doSendMagicEffect(maspos1,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos1,Efeito_normal)
doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED)
end
end
end
maspos1 = {x = varli.topos.x-1, y = varli.topos.y ,z = varli.topos.z,stackpos=255}
doSendMagicEffect(maspos1,Bomb_efeito)
Items = getThingfromPos(maspos1)
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE)
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then
doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN)
doSendMagicEffect(maspos1,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos1,Efeito_normal)
doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED)
end
end
end
maspos1 = {x = varli.topos.x+1, y = varli.topos.y ,z = varli.topos.z,stackpos=255}
doSendMagicEffect(maspos1,Bomb_efeito)
Items = getThingfromPos(maspos1)
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos1,"Player", TEXTCOLOR_PURPLE)
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then
doSendAnimatedText(maspos1,"Block", TEXTCOLOR_LIGHTGREEN)
doSendMagicEffect(maspos1,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos1,Efeito_normal)
doSendAnimatedText(maspos1,"Deleted", TEXTCOLOR_DARKRED)
end
end
end
end
---- Andando
dire = math.random(1,4)
if dire == 1 then
maspos = {x = varli.topos.x, y = varli.topos.y +1,z = varli.topos.z,stackpos=255}
Items = getThingfromPos(maspos)
-------------------
Itempost = {x = varli.topos.x, y = varli.topos.y +1,z = varli.topos.z,stackpos=0}
val = getThingfromPos(Itempost)

if val.actionid ~= 500  then
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos,"Player", TEXTCOLOR_PURPLE)
varli = {cid = varli.cid, topos = maspos}
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 or val.actionid == 500 then
doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN)
masposa = {x = maspos.x, y = maspos.y -1,z = maspos.z,stackpos=255}
varli = {cid = varli.cid, topos = masposa}
doSendMagicEffect(masposa,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos,Efeito_normal)
doSendAnimatedText(maspos,"Deleted", TEXTCOLOR_DARKRED)
varli = {cid = varli.cid, topos = maspos}
end
end
else
varli = {cid = varli.cid, topos = maspos}
end
else
doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN)
masposa = {x = maspos.x, y = maspos.y -1,z = maspos.z,stackpos=255}
varli = {cid = varli.cid, topos = masposa}
doSendMagicEffect(masposa,31)
end
---------------------
doSendMagicEffect(maspos,Efeito_normal)
addEvent(andar,  velocidade, varli)
end
if dire == 2 then
maspos = {x = varli.topos.x, y = varli.topos.y -1,z = varli.topos.z,stackpos=255}
Items = getThingfromPos(maspos)
-----------
Itempost = {x = varli.topos.x, y = varli.topos.y -1,z = varli.topos.z,stackpos=0}
val = getThingfromPos(Itempost)
if val.actionid ~= 500  then
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos,"Player", TEXTCOLOR_PURPLE)
varli = {cid = varli.cid, topos = maspos}
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 or val.actionid == 500 then
doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN)
masposa = {x = maspos.x, y = maspos.y +1,z = maspos.z,stackpos=2}
varli = {cid = varli.cid, topos = masposa}
doSendMagicEffect(masposa,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos,9)
doSendAnimatedText(maspos,"Deleted", TEXTCOLOR_DARKRED)
varli = {cid = varli.cid, topos = maspos}
end
end
else
varli = {cid = varli.cid, topos = maspos}
end
else
doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN)
masposa = {x = maspos.x, y = maspos.y +1,z = maspos.z,stackpos=2}
varli = {cid = varli.cid, topos = masposa}
doSendMagicEffect(masposa,31)
end
---------------------------
doSendMagicEffect(maspos,Efeito_normal)
addEvent(andar,  velocidade, varli)
end
if dire == 3 then
maspos = {x = varli.topos.x +1, y = varli.topos.y ,z = varli.topos.z,stackpos=255}
Items = getThingfromPos(maspos)
Itempost = {x = varli.topos.x +1, y = varli.topos.y ,z = varli.topos.z,stackpos=0}
val = getThingfromPos(Itempost)
if val.actionid ~= 500  then
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos,"Player", TEXTCOLOR_PURPLE)
varli = {cid = varli.cid, topos = maspos}
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 or val.actionid == 500 then
doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN)
masposa = {x = maspos.x -1, y = maspos.y ,z = maspos.z,stackpos=255}
varli = {cid = varli.cid, topos = masposa}
doSendMagicEffect(masposa,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos,9)
doSendAnimatedText(maspos,"Deleted", TEXTCOLOR_DARKRED)
varli = {cid = varli.cid, topos = maspos}
end
end
else
varli = {cid = varli.cid, topos = maspos}
end
else
doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN)
masposa = {x = maspos.x -1, y = maspos.y ,z = maspos.z,stackpos=255}
varli = {cid = varli.cid, topos = masposa}
doSendMagicEffect(masposa,31)
end
---------------------
doSendMagicEffect(maspos,Efeito_normal)
addEvent(andar,  velocidade, varli)
end
if dire == 4 then
maspos = {x = varli.topos.x -1, y = varli.topos.y ,z = varli.topos.z,stackpos=255}
Items = getThingfromPos(maspos)
Itempost = {x = varli.topos.x -1, y = varli.topos.y ,z = varli.topos.z,stackpos=0}
val = getThingfromPos(Itempost)
if val.actionid ~= 500  then
if Items.itemid > 0 then
if (isPlayer(Items.uid) == TRUE) then
doSendAnimatedText(maspos,"Player", TEXTCOLOR_PURPLE)
varli = {cid = varli.cid, topos = maspos}
else
if Items.itemid == exclusoes1 or Items.itemid == exclusoes2 or Items.itemid == exclusoes3 or Items.itemid == exclusoes4 or 

Items.itemid == exclusoes5 or Items.itemid == exclusoes6 then
doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN)
masposa = {x = maspos.x +1, y = maspos.y ,z = maspos.z,stackpos=255}
varli = {cid = varli.cid, topos = masposa}
doSendMagicEffect(masposa,31)
else
doRemoveItem(Items.uid, -1)
doSendMagicEffect(maspos,Efeito_normal)
doSendAnimatedText(maspos,"Deleted", TEXTCOLOR_DARKRED)
varli = {cid = varli.cid, topos = maspos}
end
end
else
varli = {cid = varli.cid, topos = maspos}
end 
else
doSendAnimatedText(maspos,"Block", TEXTCOLOR_LIGHTGREEN)
masposa = {x = maspos.x +1, y = maspos.y ,z = maspos.z,stackpos=255}
varli = {cid = varli.cid, topos = masposa}
doSendMagicEffect(masposa,31)
end
-------------------			
doSendMagicEffect(maspos,Efeito_normal)
addEvent(andar,  velocidade, varli)
end
end
function onUse(cid, item, frompos, item2, topos)
if getPlayerAccess(cid) >= 3 then
varli = {cid = cid, topos = topos}
addEvent(andar,  velocidade, varli)
end
end

 

Bom crie um arquivo.lua ponha o nome de lixo.lua salve ligue seu bot e deixe ele o dia todo limpando o templo quando players jogarem itens no chao e ele passar por la ele vai limpar :D

 

*Ele não ve onde os itens estão

*O movimento e aleatorio

*Se ele passar por npcs vai ficar dando mensagem de erro

*Cuidado pois se ele sair da area que voçê especificou pelo map por um sqm sem action id ele pode ir nas houses.

voçê pode por quantos quiser de uma vez.

*Para parar o bot e so usar o comando /reload actions

 

Como esse script e meio revolucionario eu peço poucas coisas:

Comenten

Ponham em seus ot serves (se possivel)

Podem modificar o bot avontade contanto que não tire os creditos

 

Flws :D

Vou dar mais atenção a esse forum tambem vou postar meus outros scritps aqui tambem.

flws

Editado por Mock
Link para o comentário
Compartilhar em outros sites

sim...

o clean e mais pratico so que tipo

se um noob chega la no seu templo ai joga variso vials e seu server ta meio sobrecarregado ou voçê não quer dar clean p limpa os itens do npc e so vc usar esse bot :D

e alem disso que isso diferencia seu server de outros

Link para o comentário
Compartilhar em outros sites

Isto não é tão útil, podem ser adcionadas diversas funções para ficar perfeito.

Checar se o tile é de house, ou protection zone, caso não tenha uma function que verifique se é uma house.

Deletar todos items do sqm e não só o primeiro.

Habilitar infinitos items para não serem deletados com array, ou em lua, tables. Checando se o valor do itemid está no array, se não estiver, deleta.

 

E muitas outras funções, a idéia foi boa, mas bastante coisas podem ser diminuídas neste script, a primeira versão do meu sistema de soul pet, ficou enorme. E depois de uns 5 meses, fiz a 2ª versão, que ficou bem pequena e com bem mais funções.

 

Parabéns pela idéia e motivação, continue e pode virar um bom scripter, ou melhor do que já é. :)

Link para o comentário
Compartilhar em outros sites

Na minha opinião é muito bom, porém complicado de mais...Principalmente pelas coisas que o bot não ira apagar....Realmente é so da /clean..Mas se um noob joga um item no chão do templo é so vc pega o item -.- Cara parabens e eu sei que vc é um ótimo scripter, o script fiko legal mas o problema foi a ideia...O wolfriding system q vc crio é muito bom!Isso prova que você é um ótimo scripter!Só uq falto realmente foi a ideia neh..Que eu achei meio ruim..mas c ta de parabens!Continue assimn!

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
×
×
  • Criar Novo...