Postado Abril 26, 2023 2 anos Autor Solução Consegui arrumar uma solução!! Depois de muito tempo fazendo testes cheguei a esse resultado: local combat = Combat() combat:setArea(createCombatArea(AREA_CIRCLE5X5)) function getRandomPositions(cid) local player = Player(cid) local playerPos = player:getPosition() local areaCircle5x5 = {} -- cria uma nova AREA_CIRCLE5X5 com base na posição do meu personagem for i = -5, 5 do for j = -5, 5 do local dist = math.sqrt(i^2 + j^2) if dist <= 5 then table.insert(areaCircle5x5, {x=playerPos.x+i, y=playerPos.y+j, z=playerPos.z}) end end end local randomPosition = {} for i = 1, 1 do local index = math.random(1, #areaCircle5x5) table.insert(randomPosition, areaCircle5x5[index]) end return randomPosition end function spellCallback(cid, position, count, maxCount) if Creature(cid) and count < maxCount then if count == 0 and math.random(0, 1) == 1 or math.random(0, 15) == 1 then position:sendMagicEffect(CONST_ME_MORTAREA) doAreaCombat(cid, COMBAT_DEATHDAMAGE, position, 0, -100, -100, CONST_ME_EXPLOSIONHIT) end count = count + 1 local area = getRandomPositions(cid) -- pega uma nova posição aleatoria com base na posição do meu personagem local positionAreaCircle = {x= area[1].x, y= area[1].y, z= area[1].z} local position1 = Position(positionAreaCircle) if count > 1 and count < 81 or count > 81 and count < 145 then addEvent(spellCallback,50, cid, position1, count, maxCount) else addEvent(spellCallback,math.random(1000, 2000) , cid, position1, count, maxCount) end if count > 141 then addEvent(spellCallback,math.random(600, 3000) , cid, position1, count, maxCount) end end end function onTargetTile(creature, position) local maxCount = 145 -- quantidade de execuções spellCallback(creature:getId(), position, 0, maxCount) end combat:setCallback(CALLBACK_PARAM_TARGETTILE, "onTargetTile") function onCastSpell(creature, variant, isHotkey) return combat:execute(creature, variant) end Dentro do game: @FeeTads de qualquer forma obrigado pela ajuda!
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.