Ir para conteúdo

Featured Replies

Postado

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:

25s4uhf.png

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 por Godfather (veja o histórico de edições)

  • Respostas 8
  • Visualizações 1.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Davi Brunelli
    Davi Brunelli

    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

  • O templo é quadrado ? (se for, fica bem mais fácil, pois eu posso usar for)

  • Davi Brunelli
    Davi Brunelli

    quaze inteiro quadrado mais as areas do clean e quadrado

Postado

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 por Davi Brunelli (veja o histórico de edições)

Postado
  • 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
  • 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 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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo