Olá pessoal, seguindo a onda do desafio do mês eu bolei um novo desafio pra vocês no mesmo esquema do anterior (você pode verificar o desafio do mês passado clicando aqui)
Eu vou mais uma vez apresentar um pseudocódigo, algumas partes dele estão mais explícitas na linguagem e outras estão mais teóricas mas isso não vai influenciar tanto.
local position = {x = 160, y = 154, z = 7} -- posição do que? function fazQualquerCoisa(cid, pos, i, j) -- recursao caudal j = j or 0 p = i or 0 if p >= config.rX then p = 0 j = j < config.rY -1 and j + 1 or false end if j then posi = {x = pos.x + ( p * config.distX), y = pos.y + (j * config.distY), z = pos.z} if check_disponivel(posi) then doTeleportThing(cid, posi) countdown({{x = posi.x + 1, y = posi.y - 1, z = posi.z}, {x = posi.x - 1 , y = posi.y - 1, z = posi.z}} ) else fazQualquerCoisa(cid, pos, p + 1, j) end end end function check_disponivel(npos) if disponivel(npos) then return true end return false end function countdown(pos, Arraypos) -- apenas a ideia, pode ser que isso nao seja a prova de bugs e tenha que ser feito uma versao recursiva. local tempo = 5 -- tempo de que? for lugares = 1, #Arraypos do for j = 0, tempo do addEvent(function() sendTextMessage(Arraypos[lugares], tempo - j, TEXTCOLOR_ORANGE) if j == tempo and not check_disponivel(pos) then createMonster(Arraypos[lugares], "Nome monstro") end end, 1000 * j) end end end function onStepIn(cid) fazQualquerCoisa(cid, position) return true end
O desafio é o seguinte: vocês tem que tentar adivinhar do que se trata esse código. Isso vale tanto para explicar partes do código quanto para explicar a idéia por trás dele.
A cada dia (o primeiro não conta) irei postar uma dica para ajudá-los nesse desafio, podendo ser uma dica explicando partes do código ou dicas sobre a funcionalidade dele.
"Mas lobo, por que eu iria tentar descobrir do que se trata seu código estúpido?" Bem meu caro, será uma tarefa legal e esse script é uma idéia bem inovadora.. só o fato de você tentar ler irá ajudá-lo a treinar seu cérebro para a linguagem Lua. E também há uma recompensa!! aquele que acertar ou chegar mais perto verá e terá acesso ao código antes de todo mundo!!111
Espero que vocês aninem pra participar deste tanto quanto animaram para participar do outro
Dicas = { }
Lembrando que toda resposta próxima da correta irá ganhar 1 ponto de reputação.