Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''doloopcallback''.



Mais opções de pesquisa

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • A Cidade OTBR
    • OTServ Brasil
    • Atendimento
    • Taverna
  • Projetos Open Source
    • Canary
    • OTServBR-Global
    • Mehah OTClient
    • MyAAC
  • OpenTibia
    • Notícias e Discussões
    • Suporte - Dúvidas, Bugs, Erros
    • Downloads
    • Tutoriais
    • Show-Off
  • Outros
    • Design

Encontrado 1 registro

  1. [FUNCTION] doLoopCallback

    Function doLoopCallback(callback,parameters,delay,loops,id) doStopCallbackLoop(id) É uma função simples, ela simplesmente repete uma callback chamada por um addEvent quantas vezes você quiser, com tempo configuravel alem de ter a função doStopCallbackLoop(id) que para tal Loop de callback. Para usar, abra uma LIB que você deseja (actions,movemets ou talkactions), e coloque isto: function doLoopCallback(callback,parameters,delay,loops,id) [left]--- LOOP CALLBACK ---[/left] [left]--- Autor: Undead Slayer --- [left]--- Versão 0.3 Beta --- Features of the BETA version --- --- *Repetição de funções chamadas por um addEvent --- *Mudança de quantas vezes ira repetir o callback de um addEvent --- *Mudança do tempo de cada vez que for repitir um calllback --- *Script chamando normalmente o callback, sem bugs ou falhas --- Vars --- local continue = { callback = callback, parameters = parameters, delay = delay } local delay_time = delay*1000 local loops_s = 50000+id local loops_id = 60000+id local loops_ss = getGlobalStorageValue(loops_s) local loops_ids = getGlobalStorageValue(loops_id) local number = 1 local nothing = 0 --- Function ---[/left] [/left] [left]if loops ~= nothing then if loops_ss ~= loops then [left]if loops_ss <= nothing then addEvent(onLoopContinue,number,continue) setGlobalStorageValue(loops_s,number) elseif loops >= number then addEvent(onLoopContinue,number,continue) setGlobalStorageValue(loops_s,loops_ss+number) end elseif loops_ss == loops then setGlobalStorageValue(loop_s,nothing) end elseif loops == nothing then if loops_ids <= nothing then addEvent(onLoopContinue,number,continue) elseif loops_ids == number then setGlobalStorageValue(loops_id,nothing) end end end [/left] [/left] [left]function doStopCallbackLoop(id) --- Vars --- [left]local loops_id = 60000+id local number = 1 --- Function --- setGlobalStorageValue(loops_id,number) end [/left] [/left] [left]function onLoopContinue(continue) --- Vars --- [left]local callback = continue.callback local parameters = continue.parameters local delay = continue.delay --- Function --- addEvent(callback,delay,parameters) [/left] [/left] [left]end [/left] USANDO EM UM SCRIPT Para usar é facil, basta no final das funções do callback, colocar a função ajustada, exemplo: function onUse(cid, item, frompos, item2, topos) [left]addEvent(onTest,3000,cid)[/left] [left]end[/left] [left]function onTest(cid)[/left] [left]--- Vars --- local new_position = {x=437, y=506, z=7} [left]--- Function --- doPlayerSendTextMessage(cid,22,"Onde você acha que vai???? VOLTE AQUI!") doTeleportThing(cid,new_position) doLoopCallback(onTest,cid,3000,2,1)[/left] [/left] end EXPLICANDO COMO CONFIGURAR Veja o exemplo de configuração acima. doLoopCallback(callback,parameters,delay,loops,id) doLoopCallback(onTest,cid,3000,2,1) *onTest - Nome da Callbaack a ser repitida *cid - Parametro usado originalmente pelo addEvent *3000 - Delay, tempo para chamar cada repetição de callback 'onTest' em mili-segundos *2 - Numero de vezes que vai repitir o callback 'onTest', e note, se vocÊ colokar 0, ele n ira fazer 0vezes a função, ira deixala eterna, sendo parada assim, somente com um doStopCallbackLoop *1 - ID do loop (Para cada função de loop de callback, deve se usar uma id DIFERETE, pois é importante para o script, e para, no caso, usar a função doStopCallbackLoop(id) --- doStopCallbackLoop(id) Essa função é facil, basta colocar em qualqur script, esta função, e em id, você coloca a mesma id do Loop, exemplo: Se a função foi usada da seguinte maneira: doLoopCallback(onTest,cid,3000,2,1) Para parar o Loop, deve se usar o doStopCallbackLoop da seguinte maneira: doStopCallbackLoop(1) É SO!!!! Esperto ter ajudado, e que não tenha sido muito confuso.(Y) :bye: COMENTEM, MOSTREM CRITICAS E MELHORAMENTOS PARA A VERSÃO 1.8 ALFA (Y) (Y)
×