Ir para conteúdo
  • Cadastre-se

(Resolvido)item que da dano adicional a arma equipada


Ir para solução Resolvido por FeeTads,

Posts Recomendados

.Qual servidor ou website você utiliza como base? 

0.4

Qual o motivo deste tópico? 

queria arrumar esse script pra ele dar dano so se tiver arma equipada .

 

esse e um item que coloca na onde tem uma flexa 

image.png.3eb1549735468fa7d8854c14ee0015b4.png

 

queria que desse o dano so se tiver equipado uma arma .

do jeito que esta o player pode tar sem arma que ele da o dano normal.

 

e mesmo se tiver uma parede tampando na tela ele da o dano queria tirar isso tbm para dar o dano so no targent

 

Você tem o código disponível? Se tiver publique-o aqui: 

local burnBuff = {
    storageID = 25000,
    interval = 1, -- intervalo entre turnos
    damage = 95000, -- dano de cada turno
    ticks = 5, -- quantidade de turnos
    effect = CONST_ME_GIANTICE, -- efeito
}

-- FIRE EFFECT
local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true)
setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ICEATTACK)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 37)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_)

local condition = createConditionObject(CONDITION_FREEZING)
setConditionParam(condition, CONDITION_PARAM_DELAYED, 1)
addDamageCondition(condition, burnBuff.ticks, burnBuff.interval, -burnBuff.damage)
setCombatCondition(combat, condition)

function onAttack(cid, target)
    storageStatus = getPlayerStorageValue (cid, burnBuff.storageID)
    playerPos = getCreaturePosition (cid)
    targetPos = getCreaturePosition (target)

    if storageStatus == 0 then return true end -- Se tiver como trocar essa fucnçao eu agradeço pois ela fica aparecendo o numero 0 na distrito
    if getDistanceBetween (playerPos, targetPos) > 8 then return true end -- FIM - jogador longe

    if storageStatus == 1 then -- Efeito Energy    Se tiver como trocar essa fucnçao eu agradeço pois ela fica aparecendo o numero   2 na distrito
        doCombatAreaCondition(cid, targetPos, nil, condition, burnBuff.effect)
    end

    return true
end

 

Link para o post
Compartilhar em outros sites
  • Solução

ja fiz essa function uma vez, se não me engano foi pra um post seu, cuidado com post duplicado!

NECESSÁRIO mudar o numero do "itemDeDano" pro id do seu item
 

function isWeapon(uid) -- By Killua
	return getItemWeaponType(uid) ~= 0
end

local itemDeDano = 1522 -- ID do item que irá no slot

function onStatsChange(cid, attacker, type, combat, value)
	if not isPlayer(cid) then
		return false
	end
  	if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and (combat ~= COMBAT_HEALING and value > 0) then
      local itemEquipado = getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid	-- pega o ID do ring no slot
      local armaEquipadaEsquerda = getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid		-- pega uid doq ta na mão esquerda
      local armaEquipadaDireita = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid		-- pega uid doq ta na mão direita
      if isWeapon(armaEquipadaEsquerda) or isWeapon(armaEquipadaDireita) then		-- se tiver arma na mão direita ou esquerda
        if itemEquipado and itemEquipado == itemDeDano then							-- se tiver ring equipado E o ring for o escolhido
          	local dano = value*0.5													-- 0.5 = 50% a mais de dano, 1 = 100% a mais....
        	local target = getCreatureTarget(cid)
		    doTargetCombatHealth(cid, target, combat, -dano, -dano, 255)			-- função de dar dano
        end
      end
    end
	
  return true
end

 

Link para o post
Compartilhar em outros sites
6 horas atrás, FeeTads disse:

ja fiz essa function uma vez, se não me engano foi pra um post seu, cuidado com post duplicado!

NECESSÁRIO mudar o numero do "itemDeDano" pro id do seu item
 


function isWeapon(uid) -- By Killua
	return getItemWeaponType(uid) ~= 0
end

local itemDeDano = 1522 -- ID do item que irá no slot

function onStatsChange(cid, attacker, type, combat, value)
	if not isPlayer(cid) then
		return false
	end
  	if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and (combat ~= COMBAT_HEALING and value > 0) then
      local itemEquipado = getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid	-- pega o ID do ring no slot
      local armaEquipadaEsquerda = getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid		-- pega uid doq ta na mão esquerda
      local armaEquipadaDireita = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid		-- pega uid doq ta na mão direita
      if isWeapon(armaEquipadaEsquerda) or isWeapon(armaEquipadaDireita) then		-- se tiver arma na mão direita ou esquerda
        if itemEquipado and itemEquipado == itemDeDano then							-- se tiver ring equipado E o ring for o escolhido
          	local dano = value*0.5													-- 0.5 = 50% a mais de dano, 1 = 100% a mais....
        	local target = getCreatureTarget(cid)
		    doTargetCombatHealth(cid, target, combat, -dano, -dano, 255)			-- função de dar dano
        end
      end
    end
	
  return true
end

 

oxi nao primeira vez nao tinha funcionado kk

agora funcionou obrigado

 

 

teria como colocar pra sair um efeito tbm? tipo ice ou fire ou energy?

 

tentei assim mas nao saiu 

 

function isWeapon(uid) -- By Killua
    return getItemWeaponType(uid) ~= 0
end

local itemDeDano = 12730 -- ID do item que irá no slot

function onStatsChange(cid, attacker, type, combat, value)
    if not isPlayer(cid) then
        return false
    end
      if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and (combat ~= COMBAT_HEALING and value > 0) then
      local itemEquipado = getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid    -- pega o ID do ring no slot
      local armaEquipadaEsquerda = getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid        -- pega uid doq ta na mão esquerda
      local armaEquipadaDireita = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid        -- pega uid doq ta na mão direita
      if isWeapon(armaEquipadaEsquerda) or isWeapon(armaEquipadaDireita) then        -- se tiver arma na mão direita ou esquerda
        if itemEquipado and itemEquipado == itemDeDano then                            -- se tiver ring equipado E o ring for o escolhido
              local dano = value*0.5                                                    -- 0.5 = 50% a mais de dano, 1 = 100% a mais....
            local target = getCreatureTarget(cid)
                    setCombatParam(combat, COMBAT_PARAM_EFFECT, 37)           --- efeito ice mas nao funcionou
            doTargetCombatHealth(cid, target, combat, -dano, -dano, 255)            -- função de dar dano
        end
      end
    end
    
  return true
end

6 horas atrás, FeeTads disse:

ja fiz essa function uma vez, se não me engano foi pra um post seu, cuidado com post duplicado!

NECESSÁRIO mudar o numero do "itemDeDano" pro id do seu item
 


function isWeapon(uid) -- By Killua
	return getItemWeaponType(uid) ~= 0
end

local itemDeDano = 1522 -- ID do item que irá no slot

function onStatsChange(cid, attacker, type, combat, value)
	if not isPlayer(cid) then
		return false
	end
  	if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and (combat ~= COMBAT_HEALING and value > 0) then
      local itemEquipado = getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid	-- pega o ID do ring no slot
      local armaEquipadaEsquerda = getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid		-- pega uid doq ta na mão esquerda
      local armaEquipadaDireita = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid		-- pega uid doq ta na mão direita
      if isWeapon(armaEquipadaEsquerda) or isWeapon(armaEquipadaDireita) then		-- se tiver arma na mão direita ou esquerda
        if itemEquipado and itemEquipado == itemDeDano then							-- se tiver ring equipado E o ring for o escolhido
          	local dano = value*0.5													-- 0.5 = 50% a mais de dano, 1 = 100% a mais....
        	local target = getCreatureTarget(cid)
		    doTargetCombatHealth(cid, target, combat, -dano, -dano, 255)			-- função de dar dano
        end
      end
    end
	
  return true
end

 

so da o dano adicional em staff e wand... em sword w bow nao da o dano adicional @FeeTads

Link para o post
Compartilhar em outros sites
13 horas atrás, mullino disse:

oxi nao primeira vez nao tinha funcionado kk

agora funcionou obrigado

 

 

teria como colocar pra sair um efeito tbm? tipo ice ou fire ou energy?

 

tentei assim mas nao saiu 

 

function isWeapon(uid) -- By Killua
    return getItemWeaponType(uid) ~= 0
end

local itemDeDano = 12730 -- ID do item que irá no slot

function onStatsChange(cid, attacker, type, combat, value)
    if not isPlayer(cid) then
        return false
    end
      if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and (combat ~= COMBAT_HEALING and value > 0) then
      local itemEquipado = getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid    -- pega o ID do ring no slot
      local armaEquipadaEsquerda = getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid        -- pega uid doq ta na mão esquerda
      local armaEquipadaDireita = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid        -- pega uid doq ta na mão direita
      if isWeapon(armaEquipadaEsquerda) or isWeapon(armaEquipadaDireita) then        -- se tiver arma na mão direita ou esquerda
        if itemEquipado and itemEquipado == itemDeDano then                            -- se tiver ring equipado E o ring for o escolhido
              local dano = value*0.5                                                    -- 0.5 = 50% a mais de dano, 1 = 100% a mais....
            local target = getCreatureTarget(cid)
                    setCombatParam(combat, COMBAT_PARAM_EFFECT, 37)           --- efeito ice mas nao funcionou
            doTargetCombatHealth(cid, target, combat, -dano, -dano, 255)            -- função de dar dano
        end
      end
    end
    
  return true
end

so da o dano adicional em staff e wand... em sword w bow nao da o dano adicional @FeeTads

voce adicionou onde o script?

Editado por carloos (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
19 minutos atrás, carloos disse:

voce adicionou onde o script?

sim

2 horas atrás, carloos disse:

voce adicionou onde o script?

Creaturescript

Link para o post
Compartilhar em outros sites
Em 07/11/2022 em 07:53, mullino disse:

oxi nao primeira vez nao tinha funcionado kk

agora funcionou obrigado

 

 

teria como colocar pra sair um efeito tbm? tipo ice ou fire ou energy?

 

tentei assim mas nao saiu 

 

function isWeapon(uid) -- By Killua
    return getItemWeaponType(uid) ~= 0
end

local itemDeDano = 12730 -- ID do item que irá no slot

function onStatsChange(cid, attacker, type, combat, value)
    if not isPlayer(cid) then
        return false
    end
      if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and (combat ~= COMBAT_HEALING and value > 0) then
      local itemEquipado = getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid    -- pega o ID do ring no slot
      local armaEquipadaEsquerda = getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid        -- pega uid doq ta na mão esquerda
      local armaEquipadaDireita = getPlayerSlotItem(cid, CONST_SLOT_RIGHT).uid        -- pega uid doq ta na mão direita
      if isWeapon(armaEquipadaEsquerda) or isWeapon(armaEquipadaDireita) then        -- se tiver arma na mão direita ou esquerda
        if itemEquipado and itemEquipado == itemDeDano then                            -- se tiver ring equipado E o ring for o escolhido
              local dano = value*0.5                                                    -- 0.5 = 50% a mais de dano, 1 = 100% a mais....
            local target = getCreatureTarget(cid)
                    setCombatParam(combat, COMBAT_PARAM_EFFECT, 37)           --- efeito ice mas nao funcionou
            doTargetCombatHealth(cid, target, combat, -dano, -dano, 255)            -- função de dar dano
        end
      end
    end
    
  return true
end

so da o dano adicional em staff e wand... em sword w bow nao da o dano adicional @FeeTads

Uma dúvida @FeeTads se eu mudar no item.xml o weaponType value pra wand as sword e axe e club e bow será que iria funcionar ? E continuaria upando as skill certas ?

Meio que bugaria o sistema pra reconhecer como wand aí o script daria o dano adicional ?

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo