Ir para conteúdo
Propaganda

Ryohei

Membro
  • Total de Posts

    2
  • Registro em

  • Última visita

Sobre Ryohei

Ryohei's Achievements

Newbie

Newbie (1/14)

  • Dedicated
  • Reacting Well
  • Week One Done
  • First Post

Emblemas Recentes

0

Reputação

  1. No caso é só ele fazer como se fosse um "bow", que já funcionaria perfeitamente.
  2. Pedi para o chat, fazer com que fique atirando até usar o item novamente ou acabar a munição: local WEAPON_ID = 31159 -- ID da sua arma personalizada local AMMO_ID = 29564 -- ID da munição local MISSILE_EFFECT = 113 -- Efeito de míssil local DAMAGE_TYPE = COMBAT_PHYSICALDAMAGE -- Tipo de dano físico local SHOOT_INTERVAL = 1000 -- Intervalo de disparo em milissegundos (1 segundo) local shooting = false -- Variável de controle para saber se está atirando local function shoot(player, target) -- Verifica se o alvo ainda é válido e se o jogador tem munição if not target or not target:isMonster() or player:getItemCount(AMMO_ID) <= 0 then player:sendCancelMessage("Você não tem munição suficiente ou o alvo não é válido.") shooting = false return end -- Remove a munição player:removeItem(AMMO_ID, 1) -- Cria o efeito do míssil local startPosition = player:getPosition() local endPosition = target:getPosition() startPosition:sendDistanceEffect(endPosition, MISSILE_EFFECT) -- Calcula o dano local ammoItem = ItemType(AMMO_ID) local minDamage = ammoItem:getAttack() local maxDamage = minDamage * 2 local damage = math.random(minDamage, maxDamage) -- Aplica o dano ao monstro target:addHealth(-damage) target:getPosition():sendMagicEffect(CONST_ME_HITAREA) end function onUse(player, item, fromPosition, target, toPosition, isHotkey) -- Verifica se a arma está equipada na mão direita ou esquerda local weaponInRightHand = player:getSlotItem(CONST_SLOT_RIGHT) local weaponInLeftHand = player:getSlotItem(CONST_SLOT_LEFT) local isWeaponEquipped = (weaponInRightHand and weaponInRightHand:getId() == WEAPON_ID) or (weaponInLeftHand and weaponInLeftHand:getId() == WEAPON_ID) if not isWeaponEquipped then player:sendCancelMessage("Você precisa equipar a arma na sua mão para usá-la.") return false end -- Se o jogador já está atirando, interrompe o loop if shooting then shooting = false player:sendCancelMessage("Você parou de atirar.") return true end -- Verifica se o alvo é um monstro if not target or not target:isMonster() then player:sendCancelMessage("Você só pode usar essa arma em monstros.") return false end -- Ativa o modo de tiro contínuo shooting = true player:sendCancelMessage("Atirando automaticamente...") -- Função que repete o disparo em intervalos definidos addEvent(function() if shooting and player:isPlayer() then shoot(player, target) addEvent(onUse, SHOOT_INTERVAL, player, item, fromPosition, target, toPosition, isHotkey) end end, SHOOT_INTERVAL) return true end
×
  • Criar Novo...