Postado Maio 6, 2012 13 anos ATENÇÃO: LER TODO O TÓPICO NÃO DOU DIREITO À NINGUÉM DE POSTAR ESTE SCRIPT EM OUTRO LUGAR, SEM MINHA PERMISSÃO. MEU MSN: [email protected] Pretexto: Olá, dessa estou aqui no TibiaKing para resolvi trazer pra vocês um script que eu criei. Lembrando que se gostou, dá um gostei aí, rs. É difícil explicar, então teste pois é mais fácil entender como funciona. Explicando: Quando você dá use no item, ele cria um "mascote". Ele é formado por efeitos, e vai se movimentando aleatoriamente. Caso tenha algum item em seu caminho, ele remove, e caso tenha uma barreira, ele se move para qualquer lado menos o da barreira (não importa quantas barreiras estiverem ao redor dele, o movimento vai ser anulado) - Você precisa cercar todo o local onde ele pode passar. Lembrando que ele só pode andar no chão puro! Ou seja, qualquer item não-móvel (exceto o chão) é classificado como barreira. Exemplo de local que funciona: Em vermelho, os exemplos de barreiras (a parede também é barreira, óbvio) Script: [data/actions/scripts/clean.lua] -- script by Eitor Laba -- bot cleaner v1.0 local c = {x=0,y=0,z=0} function onUse(cid, item, frompos, item2, topos) function newEffect() local random = math.random(1,4) local effects = {47} local delay = 0.8 local msgs = {"Oops!","Bloqueado","Epa!"} if random == 1 then c.x = c.x + 1 elseif random == 2 then c.x = c.x - 1 elseif random == 3 then c.y = c.y + 1 elseif random == 4 then c.y = c.y - 1 end if math.random(1,8) == 5 then local saudacoes = {"Tudo bom?","Limpando!","Olá!","","Passando!"} doSendAnimatedText(c,saudacoes[math.random(0,#saudacoes)],160) end if getThingFromPos(c).itemid > 0 then if isItemMovable(getThingFromPos(c).itemid) then c.stackpos = 253 if not isCreature(getThingFromPos(c).uid) then doSendAnimatedText(c,"Limpo!",TEXTCOLOR_YELLOW) doCleanTile(c) c.stackpos = 1 else doSendAnimatedText(c,"Licença!",160) c.stackpos = 1 end else if random == 1 then c.x = c.x - 1 elseif random == 2 then c.x = c.x + 1 elseif random == 3 then c.y = c.y - 1 elseif random == 4 then c.y = c.y + 1 end doSendAnimatedText(c,msgs[math.random(0,#msgs)],TEXTCOLOR_YELLOW) end end doSendMagicEffect(c,effects[math.random(1,#effects)]) addEvent(newEffect,delay * 1000) end c = getPlayerPosition(cid) c.stackpos = 1 newEffect() return TRUE end[/code] [size=2]Nota: você pode editar as falas na variável [i]saudacoes [/i]([i]ctrl + f: saudacoes[/i])[/size][/color] [color=#ff0000][b]Tag:[/b][/color] [color=#696969][data/actions/actions[/color][color=#0000ff].xml[/color][/i] [code]<action uniqueid="xxx" script="clean.lua"/> para usar-se uma unique id no item; ou <action itemid="xxx" script="clean.lua"/> para usar-se qualquer item deste id; Nota: xxx é o uniqueid (se você usou o primeiro exemplo) do item a ser usado, ou o id do item (se você usou o segundo exemplo) que será usado. Editado Maio 6, 2012 13 anos por Godfather (veja o histórico de edições)
Postado Maio 6, 2012 13 anos Boa, rep++ show ae vc conseguiria fazer um globalevents de clean, quaze igual este que vc postou porem que linpase insima de tapetes tbm etc. e com uma cordenada fixa exenplo. ele so linpa no templo e nao pasa dele Editado Maio 6, 2012 13 anos por Davi Brunelli (veja o histórico de edições)
Postado Maio 6, 2012 13 anos Autor Boa, rep++ show ae vc conseguiria fazer um globalevents de clean, quaze igual este que vc postou porem que linpase insima de tapetes tbm etc. e com uma cordenada fixa exenplo. ele so linpa no templo e nao pasa dele O templo é quadrado ? (se for, fica bem mais fácil, pois eu posso usar for)
Postado Maio 6, 2012 13 anos Autor quaze inteiro quadrado mais as areas do clean e quadrado function onThink(interval, lastExecution, thinkInterval) local pos = { fromx=157, fromy=47, tox=164, toy=57, z=7 } for x = pos.fromx, pos.tox do for y = pos.fromy, pos.toy do local pos = {x=x,y=y,z=pos.z} pos.stackpos = 255 pid = getThingFromPos(pos).uid if pid > 0 then if not isCreature(pid) then doCleanTile(pos) doSendMagicEffect(pos,36) end end end end return true end Assumiremos que essa é a área de clean: x___ |___| |___| |___| ____y Ali no x, é o primeiro tile superior esquerdo do quadrado onde vai executar o clean. Você vai ver as coordenadas x e y dele e vai por no fromx, e fromy. Ali no y, é o último tile inferior direito do quadrado onde vai executar o clean. Você vai ver as coordenadas x e y dele e vai por no tox, e toy. E o z é a coordenada z onde vai ter o clean. Entendes? Ou seja, vai limpar do x até o y. <globalevent name="cleantemple" interval="5" script="xxx.lua" /> Abraços. Se tiver alguma dúvida manda por mensagem, não conversaremos aqui. Editado Maio 6, 2012 13 anos por Godfather Faltaram as vírgulas rs (veja o histórico de edições)
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.