Ir para conteúdo

Damage Reflector // Reflete Quantas Veses Voce Quiser, Ou Infinitamente


bepokemon

Posts Recomendados

E ae galera, eu estava pensando aqui pro War. E acabei fazendo por que uma magia iria dar 5 Reflect para uma pessoa.

Entao o script funciona assim, ele reflete qualquer tipo de dano de acordo com a porcentagem que voce colocou, e se voce quiser colocar veses que ele vai refletir, eh muito facil colocar.

 

Vamos la. O script principal:

data/creaturescripts/scripts/damageReflector.lua

 

local config = {
author = Uissu,
reflectHeal = false, -- '[true/false]'
reflectMana = true, -- '[true/false]'
onlyMonsters = false, -- '[true/false]'
storage = 63941, -- 'dont change this'
storageCount = storage+1
}

function getPlayerReflectPercent(cid)
return getPlayerStorageValue(cid, config.storage)
end

local reflectValue = value/getPlayerReflectPercent(cid)

function onStatsChange(cid, attacker, enps, combatee, value)

if not(config.reflectHeal) and enps == STATSCHANGE_HEALTHGAIN then return TRUE end
if config.onlyMonsters and not isMonster(attacker) then return TRUE end
if not(config.reflectMana) and enps == STATSCHANGE_MANALOSS then return TRUE end
if enps == STATSCHANGE_MANAGAIN then return TRUE end
if attacker == nil then return TRUE end
if getPlayerStorageValue(cid, config.storageCount) > 0 then setPlayerStorageValue(cid, config.storageCount, getPlayerStorageValue(cid, config.storageCount)-1) end
if getPlayerStorageValue(cid, config.storageCount) == 0 then setPlayerStorageValue(cid, config.storageCount, -1) setPlayerStorageValue(cid, config.storage, -1) end

doTargetCombatHealth(cid, attacker, combatee, -reflectValue, -reflectValue, CONST_ME_NONE)
doSendAnimatedText(getThingPos(cid), "REFLECT!", TEXTCOLOR_WHITE)
value = value - reflectValue

return TRUE
end

 

 

data/creaturescripts/creaturescripts.xml

 

<event type="statschange" name="damageReflector" script="damageReflector.lua"/>

 

 

data/creaturescripts/scripts/login.lua

 

Logo abaixo de

registerCreatureEvent(cid, "ReportBug")

coloque:

registerCreatureEvent(cid, "damageReflector")

 

Como utilizar?

Primeiro precisamos de uma funçao que seta se vai refletir e quantas veses, ou nao:

 

 

function setPlayerReflectPercent(cid, percent, count)
setPlayerStorageValue(cid, 63941, percent < 101 and percent or 100)
setPlayerStorageValue(cid, 63942, count ~= false and count or -1)
return true
end

Mas como usar essa funçao?

setPlayerReflectPercent(cid, PORCENTAGEM, NUMERODEVESES OU FALSE)

PORCENTAGEM = um valor numerico entre 0 e 100 (ex: 57 para refletir 57% do dano)

NUMERODEVESES = um valor numerico para o numero de veses que ele vai reflect (ex: 5 para refletir 5 veses) ou false, para refletir ilimitadamente.

 

Editado por Byerne
Link para o comentário
Compartilhar em outros sites

Excelente função, desanimador deve ser o resultado de postar

um script que a galera não sabe usar, e por isso não comenta nem nada

ainda não testei, mas concerteza deve funcionar :p

Parabéns cara, rep+ ae e continua postando coisas boas!

Link para o comentário
Compartilhar em outros sites

discupa amis como que eu fasso esa funçao , aonde e como eu coloco pra 1 item reflectir ?

agradeço deiz de ja si conseguir me explicar REP++ pra vc ou pra quem explicar .

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...

não entendi direito

 

onde coloco esta parte

function setPlayerReflectPercent(cid, percent, count)setPlayerStorageValue(cid, 63941, percent < 101 and percent or 100)setPlayerStorageValue(cid, 63942, count ~= false and count or -1)return trueend

Link para o comentário
Compartilhar em outros sites

@SubWin

se pode coloca na 050-functions ou no proprio script de addiciona charges reflect(se vai te que cria um script pra isso)

 

@Churupetinhaa

n é por tag esse system, é por storage

nuca vi nenhum script de reflect que seja por tag(n que nseja possivel,ja vi ate um system pra um sub-item.xml por um script)

é seria bom um por attribute key e n por storage

Editado por lordbug99
Link para o comentário
Compartilhar em outros sites

@lordbug99

 

so add isso no iten em item.xml e ele reflete!

 

<attribute key="reflectpercentholy" value="100"/>

<attribute key="reflectpercentice" value="100"/>

<attribute key="reflectpercentfire" value="100"/>

<attribute key="reflectpercentdeath" value="100"/>

<attribute key="reflectpercentearth" value="100"/>

<attribute key="reflectpercentenergy" value="100"/>

<attribute key="reflectpercentphysical" value="100"/>

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...