LE

[Encerrado] [Dúvida] Fazer uma vocação ter resistência a elemento

Por LeoTK, 07 de ago. de 2017 em Tópicos Sem Resposta

11
2k
LeoTKL
07 de agosto de 2017 às 15:52

Fala guys estava aqui pensando existe alguma maneira de colocar resistência de algum elemento em alguma vocação? por exemplo:

 

<vocation id="1" name="Naruto" description="a naruto" needpremium="0" gaincap="10" gainhp="10" gainmana="14" gainhpticks="1" gainhpamount="10" gainmanaticks="1" gainmanaamount="14" manamultiplier="1.1" attackspeed="1500" soulmax="5000" gainsoulticks="10" absorvelement="wind" absorvpercent="10" fromvoc="1"><formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/><skill fist="1.0" club="1.0" sword="1.0" axe="1.0" distance="1.0" shielding="1.0" fishing="1.0" experience="1.0"/></vocation>

Adicionado essas duas linhas 

 

absorvelement="wind" absorvpercent="10"

assim a vocação 1 ao tomar dano do elemento wind ira absorver 10% do dano recebido

LeoxtibiaL
07 de agosto de 2017 às 21:13
Em 07/08/2017 at 15:52, Brunds disse:

Fala guys estava aqui pensando existe alguma maneira de colocar resistência de algum elemento em alguma vocação? por exemplo:

 

Rapaz, acho que assim vai. :ok:

 

Em creaturescripts/scripts:

 

elementResistence.lua

 

Spoiler
local t = {[1] = {resistence = 10, element = COMBAT_FIREDAMAGE},[2] = {resistence = 20, element = COMBAT_EARTHDAMAGE},[3] = {resistence = 30, element = COMBAT_FIREDAMAGE},[4] = {resistence = 40, element = COMBAT_ICEDAMAGE}}function onStatsChange(cid, attacker, type, combat, value)    local m = t[getPlayerVocation(cid)]    if m == nil then return true end        if (type == STATSCHANGE_HEALTHLOSS or type == STATSCHANGE_MANALOSS) and combat == m.element then                 if getPlayerStorageValue(cid, 16464) > 0 then                    local block = math.ceil(value*0.01*m.resistence)                    doCreatureAddHealth(cid, block)	                    doSendAnimatedText(getPlayerPosition(cid), "+"..block, COLOR_GREEN)                end        endreturn trueend-- Script by Leoxtibia

 

 

Lembrando que os elementos são: (pelo menos para alguns servidores)

 

COMBAT_NONE = 0COMBAT_PHYSICALDAMAGE = 1COMBAT_ENERGYDAMAGE = 2COMBAT_EARTHDAMAGE = 4COMBAT_POISONDAMAGE = 4COMBAT_FIREDAMAGE = 8COMBAT_UNDEFINEDDAMAGE = 16COMBAT_LIFEDRAIN = 32COMBAT_MANADRAIN = 64COMBAT_HEALING = 128COMBAT_DROWNDAMAGE = 256COMBAT_ICEDAMAGE = 512COMBAT_HOLYDAMAGE = 1024COMBAT_DEATHDAMAGE = 2048

 

 

No login.lua:

 

Spoiler
local t = {[1] = {resistence = 10},[2] = {resistence = 20},[3] = {resistence = 30},[4] = {resistence = 40}}registerCreatureEvent(cid, "AbsorbElement")setPlayerStorageValue(cid, 16464, t[getPlayerVocation(cid)].resistence)

 

 

 

Em creaturescripts.xml, adicione a tag: <event type="statschange" name="AbsorbElement" event="script" value="elementResistence.lua"/>

Editado Agosto 8 por Leoxtibia

LeoTKL
07 de agosto de 2017 às 21:32

@Leoxtibia Testei não funfou é 0.3.6 ... testei de diversas formas possiveis coloquei para bloequear 98% do dano para ver se estava funcionando mesma coisa que nada

LeoxtibiaL
07 de agosto de 2017 às 21:39

Testei aqui agora no tfs 0.4 e funcionou 100%. A vocação que você testou é um dos ids que eu tinha colocado? [1], [2], [3] ou [4]? Se não for, adicione lá. A resistência ali funciona da seguinte forma:

resistence = 10 -- vai bloquear 10%, ou seja, se o player tiver resistência ao elemento o hit que seria de 10 será de 9

Resumindo, vai mostrar o hit normal e o quanto healou devido a resistência ao elemento: 10 +1

 

 

Seus tipos de danos são esses também? Se não for, troque para os seus.

COMBAT_NONE = 0COMBAT_PHYSICALDAMAGE = 1COMBAT_ENERGYDAMAGE = 2COMBAT_EARTHDAMAGE = 4COMBAT_POISONDAMAGE = 4COMBAT_FIREDAMAGE = 8COMBAT_UNDEFINEDDAMAGE = 16COMBAT_LIFEDRAIN = 32COMBAT_MANADRAIN = 64COMBAT_HEALING = 128COMBAT_DROWNDAMAGE = 256COMBAT_ICEDAMAGE = 512COMBAT_HOLYDAMAGE = 1024COMBAT_DEATHDAMAGE = 2048

Editado Agosto 8 por Leoxtibia

LeoTKL
07 de agosto de 2017 às 22:31
51 minutos atrás, Leoxtibia disse:

Testei aqui agora no tfs 0.4 e funcionou 100%. A vocação que você testou é um dos ids que eu tinha colocado? [1], [2], [3] ou [4]? Se não for, adicione lá. A resistência ali funciona da seguinte forma:

resistence = 10 -- vai bloquear 10%, ou seja, se o player tiver resistência ao elemento o hit que seria de 10 será de 9

Resumindo, vai mostrar o hit normal e o quanto healou devido a resistência ao elemento: 10 +9

 

 

Seus tipos de danos são esses também? Se não for, troque para os seus.

COMBAT_NONE = 0COMBAT_PHYSICALDAMAGE = 1COMBAT_ENERGYDAMAGE = 2COMBAT_EARTHDAMAGE = 4COMBAT_POISONDAMAGE = 4COMBAT_FIREDAMAGE = 8COMBAT_UNDEFINEDDAMAGE = 16COMBAT_LIFEDRAIN = 32COMBAT_MANADRAIN = 64COMBAT_HEALING = 128COMBAT_DROWNDAMAGE = 256COMBAT_ICEDAMAGE = 512COMBAT_HOLYDAMAGE = 1024COMBAT_DEATHDAMAGE = 2048

simplesmente não funcionou o meu é 0.3.6 ele toma o dano todo normalmente não aparece nada só o dano normal que o char toma nada mais

FjinstF
07 de agosto de 2017 às 23:32

Leo, seguindo esse raciocínio ai da pra fazer uma magia que bloqueia porcentagem de dano? estilo uma magia que tem um efeito de SSA por alguns segundos.

CrypterC
07 de agosto de 2017 às 23:38
4 minutos atrás, Fjinst disse:

Leo, seguindo esse raciocínio ai da pra fazer uma magia que bloqueia porcentagem de dano? estilo uma magia que tem um efeito de SSA por alguns segundos.

Cria uma Spell que seta uma storage com segundos , e poem pra executar a creaturescripts com a storage

LeoTKL
09 de agosto de 2017 às 00:07

@Leoxtibia

 

Achei isso em outro fórum porém testei e não funfou mas era isso que estava pensando em fazer

 

<vocation id="4" name="Knight" description="a knight" needpremium="0" gaincap="25" gainhp="15" gainmana="5" gainhpticks="6" gainhpamount="1" gainmanaticks="6" gainmanaamount="2" manamultiplier="3.0" attackspeed="2000" soulmax="100" gainsoulticks="120" fromvoc="4">
<formula meleeDamage="1.0" distDamage="1.0" wandDamage="1.0" magDamage="1.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/>
<skill fist="1.1" club="1.1" sword="1.1" axe="1.1" distance="1.4" shielding="1.1" fishing="1.1" experience="1.0"/>
<absorb percentEnergy="12"/>
<absorb percentFire="14"/>
<absorb percentPoison="10"/>
<absorb percentice="8"/>
<absorb percentHoly="-7"/>
<absorb percentPhysical="-7"/>
<absorb percentDeath="5"/>
<absorb percentLifeDrain="0"/>
<absorb percentManaDrain="15"/>
<absorb percentDrown="0"/>
</vocation>

 

LeoxtibiaL
09 de agosto de 2017 às 08:25

É a mesma coisa que o script

LeoTKL
09 de agosto de 2017 às 10:34
2 horas atrás, Leoxtibia disse:

É a mesma coisa que o script

não posso descordar ambos não funcionaram

3 meses depois...
StigalS
29 de novembro de 2017 às 15:19
A questão neste tópico de suporte foi encerrada por falta de resposta. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta