Jump to content

Search the Community

Showing results for tags 'addevent'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Sou

Found 5 results

  1. FelipeXT

    Addevent Error

    Opá fala pessoal blz? Preciso de ajuda com esse script, na parte da function botMagic(params) tentei colocar essa linha abaixo, mas não funcionou! Até que na parte da function botEat(cid) a checagem acima funcionou! mas quando coloquei na function botMagic(params) não apareceu erros no console quando desloguei o character, mas também o script meio que parou de castar a magia. Queria uma ajuda! para resolver esse erro, sem a checagem fica rolando varios erros no console do otserver sem parar.
  2. Usando addEvent O uso do addEvent tem inúmeras utilidades e pode ser complicado para algumas pessoas, inclusive era para mim quando eu estava começando a aprender LUA. Para que serve o addEvent? Para "chamar" uma função após um periodo de tempo, ou seja, executar uma função após um tempo estipulado. O addEvent tem como parâmetros: callback, delay e ... addEvent(callback, delay, ...) Onde callback é a função que será chamada, delay é o tempo (em milissegundos) até que se chame essa função e ... são os parâmetros que a função chamada utiliza. Exemplo: addEvent(doBroadcastMessage, 1000, "Bom dia", 23) Aqui, após 1 segundo (1000 ms), a função doBroadcastMessage(message, type) será executada com os parâmetros message = "Bom dia" e type = 23. O addEvent pode ser usado de duas maneiras: Chamando uma função existente ou criando uma nova função. Para chamar uma função existente, basta usar como acima, para usá-lo para criar uma nova função, usa-se assim, por exemplo: addEvent(function() if isCreature(cid) then doPlayerAddItem(cid, 2160, 10) doPlayerSendTextMessage(cid, 25, "Voce ganhou 10k.") end end, 1000) Assim é basicamente a mesma coisa, mas pude colocar várias funções dentro de um único addEvent, e mantive o delay 1000 (1 segundo). Obs: Precisei usar 2 ends, um para fechar function() e outro para fechar o if. Atenção! Além disso, existe uma outra diferença entre as duas formas de uso, vou tentar explicar da melhor maneira possível: Quando usamos o addEvent com uma função já existente (1o exemplo), as informações usadas serão as geradas no momento em que o evento foi chamado, por exemplo: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(doCreateItem, 2000, 1308, 1, getThingPos(cid)) end return true end Se usarmos assim, a pedra irá ser criada na posição onde o jogador se encontrava no momento em que "deu use" e não onde ele etará 2 segundos depois. Se você quiser que a pedra seja criada na nova posição do jogador (pos de 2 segundos depois), você deve fazer uma nova checagem, criando uma função: function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerLevel(cid) > 10 then doPlayerSendTextMessage(cid, 25, "Uma pedra sera criada na sua posiçao dentro de 2 segundos.") addEvent(function() if isCreature(cid) then doCreateItem(1308, 1, getThingPos(cid)) end end, 2000) end return true end Atenção novamente: A checagem if isCreature(cid) que utilizei, é muito importante para um addEvent que envolva criaturas. Se você executasse o addEvent sem a checagem e o player logasse ou morresse antes desses 2 segundos se passarem, daria um erro na distro e interromperia o resto do script. Espero ter sido claro, qualquer dúvida, podem postar.
  3. Pessoal, eu queria saber como que posso fazer um addEvent com essa função aqui: doRemoveItem(getTileItemById(poss, 1316).uid) Essa função remove um item criado em tal position (poss). Só que eu queria que essa função só fizesse depois de 1 segundo após executar a spell. Qualquer dúvida sobre o meu post só dizer.
  4. PS: Meu teclado nao tem ascentos nem cedilha, nao reparem na grafia. Eae , vou postar um script que eu fiz. Eu utilizava ele no meu antigo servidor, o Mell World, pois ja que o server esta fexado eu nao queria que esse script fosse esquecido. Ele faz o seguinte: Quando usado, ele oferece 3 opcoes: Ser teleportado para uma area exclusiva de hunt, onde se pode permanecer por no maximo 1 hora (configuravel), uma vez por dia Sumonar um monstro diferente (no meu ot eu tinha criado a Alma Penada, que dropava itens exclusivos) Simplesmente perder 500 vida. Ele so pode ser usado a cada 15 minutos e, dependendo de qual opcao for sorteada, faz o player falar algo. Script (actions/scripts/necronomicon.lua) local hunt = {x=596, y=1037, z=4} local options = { [1] = {name = "teleportar"}, [2] = {name = "sefrodo"}, [3] = {name = "summon"} } function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(cid) then local fazer = options[math.random(1, #options)] if getPlayerStorageValue(cid, 12391) < os.time () then setPlayerStorageValue(cid, 12391, os.time () + 15*60) if fazer.name == "teleportar" then if getPlayerStorageValue(cid, 12481) < os.time () then setPlayerStorageValue(cid, 12481, os.time () + 60*60*24) addEvent(voltarprotemplo, 1000*60*60, cid) doTeleportThing(cid, hunt) setPlayerStorageValue(cid, 24739, 1) doSendMagicEffect(hunt, CONST_ME_TELEPORT) doCreatureSay(cid,"Aha! Consegui decifrar o caminho secreto!",TALKTYPE_ORANGE_1) else doPlayerSendCancel(cid,"Voce nao pode entrar na are 64 mais de uma vez por dia") end elseif fazer.name == "sefrodo" then doCreatureAddHealth(cid, -500) doCreatureSay(cid,"Cada coisa que esta escrita nesse livro... Nao consigo suportar!",TALKTYPE_ORANGE_1) elseif fazer.name == "summon" then doCreateMonster("Alma Penada",getCreaturePosition(cid)) doCreatureSay(cid,"Nao era bem isso que eu queria, mas...",TALKTYPE_ORANGE_1) end else doPlayerSendCancel(cid, "Você so consegue ler a cada 15 minutos! Espere.") end function voltarprotemplo(cid, pos) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, 24739, -1) doPlayerSendTextMessage(cid, 22, "Voce ja atingiu seu limite de permanencia na Area 64, voce foi teleportado para o templo") end end return true end
  5. Gostaria de criar uma magia que regenera-se 3% da vida do personagem por segundo. A magia so pode ser usada por Knights e Elite Knights. Duração de 30 segundos e a cada segundo piscar azul nele (CONST_ME_MAGIC_BLUE) Grato.
×
×
  • Create New...