Postado Abril 15, 2015 10 anos Tenta isso, crie um arquivo em data/globalevents/scripts com o nome de areahit.lua e ponha isso dentro: local areas = { {leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z = 8}, minHit = 100, maxHit = 500, effect = 30}, } function onThink(interval, lastExecution, thinkInterval) for id, arr in pairs(areas) do for x = arr.leftUpPoint.x, arr.rightDownPoint.x do for y = arr.leftUpPoint.y, arr.rightDownPoint.y do for z = arr.leftUpPoint.z, arr.rightDownPoint.z do local pos = {x = x, y = y, z = z} local uid = getTopCreature(pos).uid doSendMagicEffect(pos, arr.effect) if isCreature(uid) then doCreatureAddHealth(uid, -(math.random(arr.minHit, arr.maxHit))) end end end end end return true end Em globalevents.xml adicione isso: <globalevent name="think" interval="30000" event="script" value="areahit.lua"/> Modifique o intervalo a seu gosto. Configuração do script: Modifique primeiro essa linha: {leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z = 8}, minHit = 100, maxHit = 500, effect = 30}, • leftUpPoint coloque as coordenadas do ponto superior esquerdo da área que você quer que de os danos. • rightDownPoint coloque as posições do canto inferior direito. • minHit coloque o dano mínimo. • maxHit coloque o dano máximo. • effect coloque o id do efeito que você quer. Após isso, é só copiar essa linha inteira e ir colocando e configurando mais áreas a seu gosto, exemplo: local areas = { {leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z = 8}, minHit = 100, maxHit = 500, effect = 30}, {leftUpPoint = {x = 178978, y = 213, z = 5}, rightDownPoint = {x = 612321312, y = 789890, z = 8}, minHit = 17800, maxHit = 4569000, effect = 20}, {leftUpPoint = {x = 567856, y = 123123, z = 6}, rightDownPoint = {x = 6567778, y = 7798, z = 10}, minHit = 19500, maxHit = 7890000, effect = 4}, }
Postado Abril 17, 2015 10 anos Autor Obrigado pela ajuda, vou testar assim que possível. Tô com uns problemas de saúde e longe do acesso ao meu servidor pra testar agora, assim que possível vou editar esse comentário. <3 -- edit Deixa eu perguntar, como funciona o interval? No caso aí tá quanto tempo? Editado Abril 17, 2015 10 anos por Spoonkly (veja o histórico de edições)
Postado Abril 17, 2015 10 anos Obrigado pela ajuda, vou testar assim que possível. Tô com uns problemas de saúde e longe do acesso ao meu servidor pra testar agora, assim que possível vou editar esse comentário. <3 -- edit Deixa eu perguntar, como funciona o interval? No caso aí tá quanto tempo? Creio que seja 30 segundos, caso não aconteça em 30 segundos, só mude o valor para 30.
Postado Abril 17, 2015 10 anos Autor Tenho uma outra dúvida, não sei como ficou no jogo ou se a configuração já tá assim, mas teria um jeito de aparecer o dano causado em tipo um daqueles AnimatedText?
Postado Abril 17, 2015 10 anos Solução local areas = { {leftUpPoint = {x = 1, y = 2, z = 3}, rightDownPoint = {x = 6, y = 7, z = 8}, minHit = 100, maxHit = 500, effect = 30}, } function onThink(interval, lastExecution, thinkInterval) for id, arr in pairs(areas) do for x = arr.leftUpPoint.x, arr.rightDownPoint.x do for y = arr.leftUpPoint.y, arr.rightDownPoint.y do for z = arr.leftUpPoint.z, arr.rightDownPoint.z do local pos = {x = x, y = y, z = z} local uid = getTopCreature(pos).uid doSendMagicEffect(pos, arr.effect) if isCreature(uid) then local random = math.random(arr.minHit, arr.maxHit) doCreatureAddHealth(uid, -random) doSendAnimatedText(pos,"-"..random, 180) end end end end end return true end
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.