Ir para conteúdo
Propaganda

kenai

Membro
  • Total de Posts

    16
  • Registro em

  • Última visita

  • Dias Ganhos

    1

kenai ganhou no último dia 7 de Março

kenai teve o conteúdo mais curtida!

1 Seguidor

Sobre kenai

Últimos Visitantes

1.063 visualizações

kenai's Achievements

Contributor

Contributor (5/14)

  • Very Popular Rara
  • Collaborator Rara
  • Dedicated
  • Conversation Starter Rara
  • One Month Later

Emblemas Recentes

99

Reputação

  1. Jogo da galera?
  2. Olá seus mendigos de vazamentos, venho mostrar esse projeto que até onde sei é pouco conhecido e tem alguns sistemas bem legais. Aproveitem. Vazas.rar Client Ascension Project Scan: [Hidden Content]
  3. Entendi, é que queria fazer um module pra ele. Achei interessante.
  4. Ele é rev ou precisa das tag? nao abri ainda.
  5. Hmmm isso ta acontecendo aqui no meu tambem.. bem notado. Espero que alguem apareça pra resolver nossos problemas.
  6. kenai

    MinGW ATT

    Alguma alma boa teria o arquivo "MinGW ATT" pra compilar Otc antigo? Estou precisando dele porém nao acho em canto algum. em caso de duvidas, o arquivo que preciso é o mesmo desse video aqui: Obrigado.
      • 1
      • Like
  7. Sim, exatamente
  8. Posta o atualizado
  9. Fiquem a vontade para testar. Achei vazado e só to compartilhando. Servidor de pokemon Igual GBA online. [Hidden Content] PokeGBA Online.rar
  10. Tem tambem
  11. Espero que gostem dos tiles. No pacote há mais de 6 mil imagens. Tileset Pack By Kenai.rar
  12. Olá, este é meu primeiro tópico de magias e espero cativa-los com eles, sem delongas vamos à como ele funciona. Você usa uma magia virado para uma direção e seu personagem pula na direção oposta deixando uma chuva de flechas onde você estava anteriormente. Primeiro iremos colocar a tag no seu Spells.XML. Lembrando que foi testado no TFS 1.4.2 <instant group="attack" spellid="666" name="Backstep Barrage" words="Backstep Barrage" level="80" mana="200" premium="0" needtarget="0" cooldown="8000" groupcooldown="3000" needlearn="0" script="SEU OT/backstepbarrage.lua"> <vocation name="Paladin" /> <vocation name="Royal Paladin" /> </instant> Após ter feito isso, iremos colocar o código em sí. Iremos até a pasta Scripts e lá dentro criaremos o arquivo BackstepBarrage.LUA Após criado, cole este codigo dentro. -- Configurações da magia local teleportDistance = 5 -- Distância do recuo em SQMs local damageRadius = 2 -- Raio do dano em área (2 = 5x5) local baseDamage = 200 -- Dano base da magia local damagePerSkill = 5 -- Dano adicional por nível de Distance Fighting (certifique-se de que está definido) local speedBoostDuration = 5000 -- Duração do bônus de velocidade (5 segundos) local speedBoost = 200 -- Valor do bônus de velocidade local tempItemId = 26409 -- ID do item temporário local tempItemDuration = 230 -- Tempo que o item fica no chão (230ms) local blockedEffect = CONST_ME_BLOCKHIT -- Efeito visual ao atingir uma parede local damageEffect = 181 -- Efeito visual do dano -- Função para exibir efeito visual nos SQMs internos (removendo apenas as bordas) local function showEffectAround(centerPosition, radius, effect) for x = -radius, radius do for y = -radius, radius do -- Remove apenas os SQMs das bordas (x ou y no limite do raio) if not (math.abs(x) == radius and math.abs(y) == radius) then local targetPosition = Position(centerPosition.x + x, centerPosition.y + y, centerPosition.z) targetPosition:sendMagicEffect(effect) end end end end -- Função para causar dano nos SQMs internos (removendo apenas as bordas) local function doAreaDamage(centerPosition, radius, damage, caster) for x = -radius, radius do for y = -radius, radius do -- Remove apenas os SQMs das bordas (x ou y no limite do raio) if not (math.abs(x) == radius and math.abs(y) == radius) then local targetPosition = Position(centerPosition.x + x, centerPosition.y + y, centerPosition.z) local tile = Tile(targetPosition) if tile then local creatures = tile:getCreatures() if creatures then for _, creature in ipairs(creatures) do -- Verifica se a criatura não é o conjurador da magia if (creature:isMonster() or (creature:isPlayer() and creature ~= caster)) then creature:addHealth(-damage) end end end end end end end end -- Função principal da magia function onCastSpell(creature, variant) local player = creature:getPlayer() if not player then return false end -- Obtém o nível de Distance Fighting do jogador local distanceSkill = player:getSkillLevel(SKILL_DISTANCE) -- Calcula o dano escalado com base na skill de Distance Fighting local damage = baseDamage + (distanceSkill * damagePerSkill) -- Certifique-se de que damagePerSkill está definido -- Direção que o jogador está olhando local direction = player:getDirection() -- Posição atual do jogador local currentPosition = player:getPosition() -- Calcula a posição de destino com base na direção oposta local targetPosition = currentPosition for i = 1, teleportDistance do local nextPosition = Position(targetPosition) -- Cria uma nova posição baseada na atual if direction == NORTH then nextPosition.y = nextPosition.y + 1 -- Move para trás (oposto ao norte) elseif direction == SOUTH then nextPosition.y = nextPosition.y - 1 -- Move para trás (oposto ao sul) elseif direction == EAST then nextPosition.x = nextPosition.x - 1 -- Move para trás (oposto ao leste) elseif direction == WEST then nextPosition.x = nextPosition.x + 1 -- Move para trás (oposto ao oeste) end -- Verifica se o próximo quadrado é seguro (não é PZ, não tem paredes, etc.) local tile = Tile(nextPosition) if tile and not tile:hasProperty(CONST_PROP_IMMOVABLEBLOCKSOLID) and not tile:hasProperty(CONST_PROP_BLOCKSOLID) then targetPosition = nextPosition -- Atualiza a posição de destino else -- Se encontrar um obstáculo, para o loop e usa a última posição segura break end end -- Verifica se a posição de destino é diferente da atual if targetPosition ~= currentPosition then -- Exibe o efeito visual 181 nos SQMs internos (removendo apenas as bordas) showEffectAround(currentPosition, damageRadius, damageEffect) -- Causa dano nos SQMs internos (removendo apenas as bordas) doAreaDamage(currentPosition, damageRadius, damage, player) -- Passa o jogador como caster -- Teleporta o jogador para a posição segura após um pequeno atraso addEvent(function() player:teleportTo(targetPosition) -- Cria um item temporário no local de destino local tempItem = Game.createItem(tempItemId, 1, targetPosition) if tempItem then -- Remove o item após 230ms addEvent(function(pos) local tile = Tile(pos) if tile then local item = tile:getItemById(tempItemId) if item then item:remove() end end end, tempItemDuration, targetPosition) end -- Aplica bônus de velocidade ao jogador player:addCondition(CONDITION_HASTE, speedBoostDuration, 0, speedBoost) -- Dispara efeitos visuais de flechas no local original (sem criar itens) local arrowCount = 3 -- Número de flechas for i = 1, arrowCount do addEvent(function() currentPosition:sendMagicEffect(CONST_ME_ARROWATTACK) -- Efeito visual da flecha end, i * 200) -- Intervalo entre as flechas (200ms) end end, 100) -- Atraso de 100ms antes do teleporte else -- Se não houver movimento, mostra efeito de bloqueio currentPosition:sendMagicEffect(blockedEffect) player:sendCancelMessage("Não há espaço seguro para recuar.") end return true end E estará tudo pronto até aqui. O script já está funcional? Provavelmente em seu servidor ainda não. Você precisará criar um item "invisivel" ou "transparente" com elevação 8 no Object builder. Após isso, coloque o ID do seu item novo aqui nesta linha: local tempItemId = 26409 -- ID do item temporário e tambem crie um efeito de flechas ou se preferir pode deixar uma explosão, vai da sua imaginação. entao sabendo disso, mude nesta linha o efeito que deseja que apareça. local damageEffect = 181 -- Efeito visual do dano Espero que tenham gostado da magia, trarei mais logo logo.
      • 2
      • Like
×
  • Criar Novo...