Ir para conteúdo
  • Cadastre-se

Item que ao ser equipado da dano a uma arma.


Posts Recomendados

Boa noite galerinha do tk.

Venho pedir a vcs um script.

Não sei fazer assim do jeito que eu quero, então venho pedir ajudar ..

 

Quero um item... Ex: ring que ao ser equipado ele da um dano a minha ... Ex: tenho um bow que ataca 100 de dano. 

Se eu equipar o ring ele vai continuar atacando os 100 normalmente do bow mas vai dar um dano adicional ao bow . Pode ser em elementos . Ex 100 de dano do bow mais 60 de elemento Holy. Mas só funcionar se tiver uma arma equipada .

 

Tipo acrescentando na arma o elemento por ter o ring equipado ... 

 

 

Tentei ser o mais explicativo possível. 

 

Se alguém puder me ajudar com esse script ficarei muito grato . Obrigado 

Link para o post
Compartilhar em outros sites

Este tópico foi movido para a seção de Suporte Otserv.

Em 21/10/2022 em 00:17, mullino disse:

dano do bow mais 60 de elemento Holy. Mas só funcionar se tiver uma arma equipada .

 pra isso seria necessário talvez uma modificação na source, mas acho que da pra fazer com movements de Equip item, ou um creatureScripts de StatsChange, mas stats change é meio "pesadinho" pro servidor.

 

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

local ringDeDano = 1522 -- ID do ring

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 ringEquipado = getPlayerSlotItem(cid, CONST_SLOT_RING).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 ringEquipado and ringEquipado == ringDeDano 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
18 minutos atrás, FeeTads disse:

Este tópico foi movido para a seção de Suporte Otserv.

 pra isso seria necessário talvez uma modificação na source, mas acho que da pra fazer com movements de Equip item, ou um creatureScripts de StatsChange, mas stats change é meio "pesadinho" pro servidor.

 


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

local ringDeDano = 1522 -- ID do ring

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 ringEquipado = getPlayerSlotItem(cid, CONST_SLOT_RING).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 ringEquipado and ringEquipado == ringDeDano 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

 

Esse é de qual ? Creature/ movment ou weapons? Kk

Link para o post
Compartilhar em outros sites

 

ai regista no XML
 

<event type="statschange" name="RingMaisDano" event="script" value="NOME-DO-SCRIPT.lua"/>


E registrar ele la no login.lua

registerCreatureEvent(cid, "RingMaisDano")

 

Agora, mullino disse:

Esse é de qual ? Creature/ movment ou weapons? Kk

creatureScripts

 

Link para o post
Compartilhar em outros sites
Agora, FeeTads disse:

 

ai regista no XML
 


<event type="statschange" name="RingMaisDano" event="script" value="NOME-DO-SCRIPT.lua"/>


E registrar ele la no login.lua


registerCreatureEvent(cid, "RingMaisDano")

 

creatureScripts

 

Obrigado.. vou já testar e volto com o feed

Link para o post
Compartilhar em outros sites
21 minutos atrás, FeeTads disse:

 funfou? algum erro no console?

 

Ainda não cheguei em casa pra testar ?

Agora, mullino disse:

Ainda não cheguei em casa pra testar ?

Pelo andar da carruagem aqui no trabalho só umas 19 horas amigo 

2 horas atrás, FeeTads disse:

 funfou? algum erro no console?

 

[Error - Event::checkScript] Event onAttack not found (data/creaturescripts/scripts/freescenceice.lua)

deu esse erro. 

deixa eu te falar 

ao invez de ser no ring, tem como colocar para equipar  o item que vai dar o attack adicional, no lugar onde fica a flexa

ai inlustrei de amarelo

image.png.736bc19bd9184e4670a1adf7843edd8b.png

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

Error - Event::checkScript] Event onAttack not found (data/creaturescripts/scripts/freescenceice.lua)

deu esse erro. 

acho que esse erro ai é de outro script, não foi mexido nada nele.

 

 

22 horas atrás, mullino disse:

ao invez de ser no ring, tem como colocar para equipar  o item que vai dar o attack adicional, no lugar onde fica a flexa

ai inlustrei de amarelo


 

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 == ringDeDano 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
7 minutos atrás, FeeTads disse:

acho que esse erro ai é de outro script, não foi mexido nada nele.

 

 


 


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 == ringDeDano 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

 

Assim que chegar já testo

10 horas atrás, FeeTads disse:

acho que esse erro ai é de outro script, não foi mexido nada nele.

 

 


 


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 == ringDeDano 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

 

ele ta configuraro pro ring ne se for nao mudou nada, nao da attack adicional a nenhuma arma testei tbm na onde fica a flexa e tbm nao mudou ... tbm nao da erro

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