Ir para conteúdo

Featured Replies

Postado

OLA GALERA.

 

BOM ... O CARA POSTOU O SCRIPT DE REFLECT SO QUE NÃO EXPLICOU MUITO, GOSTARIA QUE VOCÊS ME AJUDASSEM PF.

 

QUERIA SABER ONDE QUE COLOCO ESSES SCRIPT, ONDE Q EU COLOCO O ITEM PRA REFLETIR ONDE QUE COLOCO A %
SE POSSÍVEL EXPLICAÇÕES NOS MÍNIMOS DETALHES ONDE BOTO AS COISAS, QUE ATE PRA QUEM E LEIGO COMO EU FICA MUITO DIFÍCIL.

 

SEI QUE E EM MODS E LIB. MAS O PRINCIPAL MESMO E SABER ONDE COLOCO O ''ID DO ITEM'' E A ''%''

SE ALGUÉM PUDER AJUDAR.

O ID DO ITEM É : 2644

E A % É 30%

AGRADEÇO DESDE JA =D


 

[MOD]reflectSystem.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes">
		<description>
				Script que funciona para refletir danos para as creatures que o atacar.
		</description>

		<event type="login" name="regReflectDamage" event="script"><![CDATA[
				function onLogin(cid)
						registerCreatureEvent(cid,"ReflectDamage")
						return true
				end
	]]></event>

		<event type="statschange" name="ReflectDamage" event="script"><![CDATA[

local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING}
	
function onStatsChange(cid, attacker, type, combat, value)
		local reflectPercent = 0
	local dmg = value
	local playerPos = getCreaturePosition(cid)
	local attackerPos = getCreaturePosition(attacker)

	for i = 1, #slotPos do
		if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then
			if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then
				reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid)
			end
		end
	end
		
	if reflectPercent > 0 then
		dmg = math.ceil(-value*((100-reflectPercent)/100))		
		if (dmg < 0) then
			doCreatureAddHealth(cid, dmg)	
			doSendAnimatedText(playerPos, -dmg, COLOR_RED)
			doSendMagicEffect(playerPos, 0)					
		else
			doSendMagicEffect(playerPos, 3)
		end

		dmg = math.ceil(-value*(reflectPercent/100))
		if (dmg < 0) then
			doCreatureAddHealth(attacker, dmg)
			doSendAnimatedText(attackerPos, -dmg, COLOR_RED)
			doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY)
		end
	else
		return true
	end
end]]></event>
</mod>

ReflectLib.lua

 

function getItemReflectPercent(itemuid)
	return getItemAttribute(itemuid, "reflectPercent")
end
function doPlayerAddReflectedItem(cid, itemid, percent)
local item = doPlayerAddItem(cid, itemid)
doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]")
doItemSetAttribute(item, "reflectPercent", percent)
end

 

Postado

na vdd esse item teria que ser criado pela função para adicionar o atributo.

 

mas tente assim:

 

<?xml version="1.0" encoding="UTF-8"?>
<mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes">
		<description>
				Script que funciona para refletir danos para as creatures que o atacar.
		</description>

		<event type="login" name="regReflectDamage" event="script"><![CDATA[
				function onLogin(cid)
						registerCreatureEvent(cid,"ReflectDamage")
						return true
				end
	]]></event>

		<event type="statschange" name="ReflectDamage" event="script"><![CDATA[

local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} -- slots que ele vai checar

function onStatsChange(cid, attacker, type, combat, value)
	local item_id, p = 2644,30
	local reflectPercent = 0
	local dmg = value
	local playerPos = getCreaturePosition(cid)
	local attackerPos = getCreaturePosition(attacker)

	for i = 1, #slotPos do
		if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then
			if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then
				reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid)
			end
			if getPlayerSlotItem(cid, slotPos[i]).itemid == item_id then
			reflectPercent = reflectPercent + p
			end
		end
	end
		
	if reflectPercent > 0 then
		dmg = math.ceil(-value*((100-reflectPercent)/100))		
		if (dmg < 0) then
			doCreatureAddHealth(cid, dmg)	
			doSendAnimatedText(playerPos, -dmg, COLOR_RED)
			doSendMagicEffect(playerPos, 0)					
		else
			doSendMagicEffect(playerPos, 3)
		end

		dmg = math.ceil(-value*(reflectPercent/100))
		if (dmg < 0) then
			doCreatureAddHealth(attacker, dmg)
			doSendAnimatedText(attackerPos, -dmg, COLOR_RED)
			doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY)
		end
	else
		return true
	end
end]]></event>
</mod>

 

Editado por Vodkart (veja o histórico de edições)

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Postado
  • Autor
6 horas atrás, Vodkart disse:

na vdd esse item teria que ser criado pela função para adicionar o atributo.

 

mas tente assim:

 


<?xml version="1.0" encoding="UTF-8"?>
<mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes">
		<description>
				Script que funciona para refletir danos para as creatures que o atacar.
		</description>

		<event type="login" name="regReflectDamage" event="script"><![CDATA[
				function onLogin(cid)
						registerCreatureEvent(cid,"ReflectDamage")
						return true
				end
	]]></event>

		<event type="statschange" name="ReflectDamage" event="script"><![CDATA[

local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING} -- slots que ele vai checar

function onStatsChange(cid, attacker, type, combat, value)
	local item_id, p = 2644,30
	local reflectPercent = 0
	local dmg = value
	local playerPos = getCreaturePosition(cid)
	local attackerPos = getCreaturePosition(attacker)

	for i = 1, #slotPos do
		if getPlayerSlotItem(cid, slotPos[i]).uid > 1 then
			if getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid) then
				reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos[i]).uid)
			end
			if getPlayerSlotItem(cid, slotPos[i]).itemid == item_id then
			reflectPercent = reflectPercent + p
			end
		end
	end
		
	if reflectPercent > 0 then
		dmg = math.ceil(-value*((100-reflectPercent)/100))		
		if (dmg < 0) then
			doCreatureAddHealth(cid, dmg)	
			doSendAnimatedText(playerPos, -dmg, COLOR_RED)
			doSendMagicEffect(playerPos, 0)					
		else
			doSendMagicEffect(playerPos, 3)
		end

		dmg = math.ceil(-value*(reflectPercent/100))
		if (dmg < 0) then
			doCreatureAddHealth(attacker, dmg)
			doSendAnimatedText(attackerPos, -dmg, COLOR_RED)
			doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY)
		end
	else
		return true
	end
end]]></event>
</mod>

 

Ta dando erro mano =[

ALGUEM PRA ME AJUDAR ?

Postado
  • Autor
12 horas atrás, Vodkart disse:

se vc falar o erro talvez alguém ajude né

 

Na Vdd amigo e que eu nao sei como configurar. Nao seu onde que colocar o o ID DO ''ITEM'' E A ''%''

QUERIA ESSE ITEM E A %

O ID DO ITEM É : 2644

E A % É 30%

Tem como ajudar ?

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 520.3k

Informação Importante

Confirmação de Termo