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

bepokemon
em Globalevents e Spells

bepokemon

Lo sono il accolito.
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 23/02/08Posts: 273Char no Tibia: Foxx Rookslayer

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.

 

logo.png

Scripter

@MagicWorld

Ex: Colaborador de Scripting

Contato: bepokemon@hotmail.com

jedian1

Cuidado, Espada inflamável!
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 18/01/10Posts: 17Char no Tibia: NemTeConto

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!

Afogamento é uma coisa de dar água na boca!



 

Todos os Cogumélos são comestíveis, alguns, só uma vez!

 

920384.png

 

Ei Você aí!

É, Você mesmo, que está lendo minha assinatura!

Você concerteza viu que meu post ali em cima foi muuuuito útil né?

Então...

Me da REP +!!

e Upa o Barkis(meu pet) também!

Mutter03

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 09/10/11Posts: 7Char no Tibia: Zina Lee

Muito legal cara, ate tinha visto algo parecido, + refletia so o ataque melee, eu tentei por aki no meu ot, so q deu um erro no creaturescript, ajuda ae

 

 

semttuloziz.png

 

funny-gifs-c-c-c-combo-breaker.gif

4857649

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 06/10/11Posts: 2

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 .

SubWin

avatar
Banidos
Banidos

INFOS

Grupo: BanidosRegistrado: 17/11/11Posts: 43Char no Tibia: ADM SubWin

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

Eu fui hackiado, mas logo logo ja arrumarei todos os post's

williamserravalle

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 13/07/11Posts: 104Char no Tibia: Willliam Serravalle

Quero uma tag no item.xml que reflet attack sabe qual e?

Vinc

The white fox
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 30/10/11Posts: 625Gênero: Masculino

@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

^w^

williamserravalle

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 13/07/11Posts: 104Char no Tibia: Willliam Serravalle

@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"/>

GuuhMaster

avatar
Artesão
Artesão

INFOS

Grupo: ArtesãoRegistrado: 12/08/11Posts: 101Char no Tibia: Tomurka

não coloquei fire,energy,earth pois tem aqueles fire/energy/earth no chão ai o server cai!

assinaturasite.png