Ir para conteúdo
  • Cadastre-se

(Resolvido)Alterando Script de Reflect pra ficar por %


Ir para solução Resolvido por Agaka,

Posts Recomendados

Esse é uma Spell de reflect, ao usar a magia, e alguem lhe atacar o golpe será refletido, porem na script nao tem como alterar quantos % de dano voltará, ent basicamente eu queria que alguem conseguisse modificar a script pra poder alterar quantos % do dano voltará pra quem atacou

Scripts:

Spells

Citar

local config = {
storage = 3482101,
cooldown = 15,
effect1 = 96
}

function onCastSpell(cid, var)
	if getPlayerStorageValue(cid, config.storage) == 1 then
		doPlayerSendCancel(cid, "Sua skill ja foi ativada.")
		return false
	end

	if os.time() - getPlayerStorageValue(cid, 55694) >= config.cooldown then
		setPlayerStorageValue(cid, 55694, os.time())
		doSendMagicEffect(getCreaturePosition(cid), config.effect1)
		setPlayerStorageValue(cid, config.storage, 1)
		doPlayerSendTextMessage(cid, 27, "Voce ativou sua skill, o próximo dano causado será refletido.")
		else
		doPlayerSendCancel(cid, "Voce poderá usar a skill novamente em "..(config.cooldown - (os.time() - getPlayerStorageValue(cid, 55694))).." segundos.")
		return false
	end
    return true
end

 

Lib

Citar

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)
doPlayerAddReflectedItem(cid,10220,50)
end

 

Creaturescript

Citar

local config = { 
storage = 3482101,
effect1 = 10, --- efeito que sai ao dar reflect
effect2 = 24 -- efeito que aparece na pessoa que levou reflect
} 

function onStatsChange(cid, attacker, type, combat, value)
if value >= 1 and (type == STATSCHANGE_HEALTHLOSS or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == STATSCHANGE_MANALOSS))  then
if getPlayerStorageValue(cid,config.storage) == 1 and isCreature(attacker) then
doSendAnimatedText(getCreaturePosition(attacker),"-"..value, 215)
doCreatureAddHealth(attacker, -value, true)
doSendAnimatedText(getCreaturePosition(cid), "REFLECT", 215)
doSendMagicEffect(getCreaturePosition(cid), config.effect1)
doSendMagicEffect(getCreaturePosition(attacker), config.effect2)
setPlayerStorageValue(cid,config.storage, 0)
return false
end
end
return true
end

 

REP++

Link para o post
Compartilhar em outros sites

@MikaelX 

Spoiler

local config = {
	reflectPercent = 10, -- Porcentagem do dano que será refletida // Valor inteiro!
	storage = 3482101,
	effect1 = 10, -- efeito que sai ao dar reflect
	effect2 = 24 -- efeito que aparece na pessoa que levou reflect
}

function onStatsChange(cid, attacker, type, combat, value)
	if value >= 1 and (type == STATSCHANGE_HEALTHLOSS or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == STATSCHANGE_MANALOSS))  then
		if getPlayerStorageValue(cid,config.storage) == 1 and isCreature(attacker) then
			doSendAnimatedText(getCreaturePosition(attacker),"-"..value, 215)
			doCreatureAddHealth(attacker, -((config.reflectPercent * value) / 100), true)
			doSendAnimatedText(getCreaturePosition(cid), "REFLECT", 215)
			doSendMagicEffect(getCreaturePosition(cid), config.effect1)
			doSendMagicEffect(getCreaturePosition(attacker), config.effect2)
			setPlayerStorageValue(cid,config.storage, 0)
			return false
		end
	end
	return true
end

 

 

edit: Comentário errado no código.

Editado por JoviM (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Agora, JoviM disse:

@MikaelX 

  Ocultar conteúdo


local config = {
	reflectPercent = 10, -- Chance de refletir o dano // Valor inteiro!
	storage = 3482101,
	effect1 = 10, -- efeito que sai ao dar reflect
	effect2 = 24 -- efeito que aparece na pessoa que levou reflect
}

function onStatsChange(cid, attacker, type, combat, value)
	if value >= 1 and (type == STATSCHANGE_HEALTHLOSS or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == STATSCHANGE_MANALOSS))  then
		if getPlayerStorageValue(cid,config.storage) == 1 and isCreature(attacker) then
			doSendAnimatedText(getCreaturePosition(attacker),"-"..value, 215)
			doCreatureAddHealth(attacker, -((config.reflectPercent * value) / 100), true)
			doSendAnimatedText(getCreaturePosition(cid), "REFLECT", 215)
			doSendMagicEffect(getCreaturePosition(cid), config.effect1)
			doSendMagicEffect(getCreaturePosition(attacker), config.effect2)
			setPlayerStorageValue(cid,config.storage, 0)
			return false
		end
	end
	return true
end

 

 

 

Boom valeu por tentar ajudar, mais o que eu queria era para poder alterar em quantos % o dano voltaria, se puder alterar fico agradecido

Link para o post
Compartilhar em outros sites

@JoviM Ah sim , desculpe rsrs, Testei aq e continua normal(igual o atual script), mesmo aumentando a porcentagem de dano refletid. (nenhum erro na distro). @JoviM

Editado por MikaelX (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

@MikaelX 

Spoiler

local config = {
	reflectPercent = 10, -- Chance de refletir o dano // Valor inteiro!
	storage = 3482101,
	effect1 = 10, -- efeito que sai ao dar reflect
	effect2 = 24 -- efeito que aparece na pessoa que levou reflect
}

function onStatsChange(cid, attacker, type, combat, value)
	if value >= 1 and (type == STATSCHANGE_HEALTHLOSS or (getCreatureCondition(cid, CONDITION_MANASHIELD) and type == STATSCHANGE_MANALOSS))  then
		if getPlayerStorageValue(cid,config.storage) == 1 and isCreature(attacker) then
			doSendAnimatedText(getCreaturePosition(attacker),"-"..value, 215)
			doCreatureAddHealth(attacker, -((config.reflectPercent * value) / 100), true)
			doSendAnimatedText(getCreaturePosition(cid), "REFLECT", 215)
			doSendMagicEffect(getCreaturePosition(cid), config.effect1)
			doSendMagicEffect(getCreaturePosition(attacker), config.effect2)
			setPlayerStorageValue(cid,config.storage, 0)
			return true
		end
	end
	return true
end

 

 

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