Ir para conteúdo

element absorb (absorver elemento)


wevertonvrb

Posts Recomendados

então eu gostaria de um script que se o pokemon X receber um dano do elemento fogo por exemplo ele não receba o dano mas absorva esse fogo e cure sua vida em 50% do dano que receberia
gostaria de uma tabela configurável mais o menos assim

--pokemon  -- elemento-- porcentagem
   charizard,       fire,     50%            --- nesse exemplo ele receberia dano de fogo reduzido em 50%
   magmar,        fire,     -50%           --- nesse exemplo o magmar não toma dano e absorvera 50% do dano que receberia
  electabuzz,   thunder, -50%          --- nesse caso não toma dano eletrico e absorvera 50% do dano que receberia
  electabuzz,  ground,  200%          --- aqui ele recebe o dobro de dano

sei q ja existe o equilíbrio dos elementos ja configurados no jogo mas quero esse script pois alguns pokemons tem essa habilidade de absorver elementos 
e sei tb que no tibia tem monstros que absorvem elementos  configuráveis em suas xml porem no pokemon existem elementos diferentes do tibia

3.6

@Poccnn e @zipter98 podem dar uma olhadinha nisso pfv?

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

  • 2 weeks later...

se ele cura metade do dano q nao receberia ele nao recebera nada de dano, nao é melhor deixar só a porcetagem q ele defende normal?

por exemplo se ele tem 50% de proteção e cura esses 50% vai ser igual 100% traduzindo ele nao toma dano, é melhor deixar a imunidade dele no 100% em vez de inventar um script assim

Link para o comentário
Compartilhar em outros sites

8 horas atrás, JeanCristian disse:

se ele cura metade do dano q nao receberia ele nao recebera nada de dano, nao é melhor deixar só a porcetagem q ele defende normal?

por exemplo se ele tem 50% de proteção e cura esses 50% vai ser igual 100% traduzindo ele nao toma dano, é melhor deixar a imunidade dele no 100% em vez de inventar um script assim

não man a questão é que alguns pokemons como Pachirisu não toma dano elétrico e caso ele tome dano elétrico ele absorve enche vida em numero igual ao dano que receberia e por isso preciso deste script

e outra é -50% tem o sinal de menos ali

 

olha esse video q tu vai entender melhor

 

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

  • 4 weeks later...

Não fizeram ainda isso e muito fácil vai no seu exp.lua e coloca acima do ultimo return de dano isso se não souber poste seu exp.lua se for outro servidor vai em creaturescript e ache o script que tenha essa function onStatsChange(cid, attacker, type, combat, value).

 

Magia_config = {
["Charizard"] = {damage = FIREDAMAGE},
["Venusaur"] = {damage = GRASSDAMAGE},
["Nidoking"] = {damage = POISONEDDAMAGE},
}
 if Magia_config[getCreatureName(cid)] and damageCombat == Magia_config[getCreatureName(cid)].damage then
 local min_percent = 40--Porcentagem mínima do dano curada.
 local max_percent = 75--Porcentagem máxima do dano curada.
 local amount = math.floor(valor * math.random(min_percent, max_percent) / 100)
 valor = 0
 doSendAnimatedText(getThingPos(cid), "+"..amount, 65)
 doCreatureAddHealth(cid, amount)
 end

 

https://gyazo.com/b0211884199d75b7b21101665ec611d7

Esqueci vc tb pode inverter a ordem pra poder colocar mais pokemon ou ate fazer pelo elemento fogo x fogo

 

tipo assim 

 

Magia_config = {
[FIREDAMAGE] = {"Charizard","Magmar"},
[GRASSDAMAGE] = {"Venusaur","Pikachu"},
[POISONEDDAMAGE] = {"Weezing","Magmar"},
}                                
if Magia_config[damageCombat] and isInArray(Magia_config[damageCombat], getCreatureName(cid))  then
local min_percent = 40--Porcentagem mínima do dano curada.
local max_percent = 75--Porcentagem máxima do dano curada.
local amount = math.floor(valor * math.random(min_percent, max_percent) / 100)
valor = 0
doSendAnimatedText(getThingPos(cid), "+"..amount, 65)
doCreatureAddHealth(cid, amount)
end

 

Link para o comentário
Compartilhar em outros sites

16 horas atrás, nociam disse:

Não fizeram ainda isso e muito fácil vai no seu exp.lua e coloca acima do ultimo return de dano isso se não souber poste seu exp.lua se for outro servidor vai em creaturescript e ache o script que tenha essa function onStatsChange(cid, attacker, type, combat, value).

 

Magia_config = {

["Charizard"] = {damage = FIREDAMAGE},

["Venusaur"] = {damage = GRASSDAMAGE},

["Nidoking"] = {damage = POISONEDDAMAGE},

}

 if Magia_config[getCreatureName(cid)] and damageCombat == Magia_config[getCreatureName(cid)].damage then

 local min_percent = 40--Porcentagem mínima do dano curada.

 local max_percent = 75--Porcentagem máxima do dano curada.

 local amount = math.floor(valor * math.random(min_percent, max_percent) / 100)

 valor = 0

 doSendAnimatedText(getThingPos(cid), "+"..amount, 65)

 doCreatureAddHealth(cid, amount)

 end

 

https://gyazo.com/b0211884199d75b7b21101665ec611d7

Esqueci vc tb pode inverter a ordem pra poder colocar mais pokemon ou ate fazer pelo elemento fogo x fogo

 

tipo assim 

 

Magia_config = {

[FIREDAMAGE] = {"Charizard","Magmar"},

[GRASSDAMAGE] = {"Venusaur","Pikachu"},

[POISONEDDAMAGE] = {"Weezing","Magmar"},

}                                

if Magia_config[damageCombat] and isInArray(Magia_config[damageCombat], getCreatureName(cid))  then

local min_percent = 40--Porcentagem mínima do dano curada.

local max_percent = 75--Porcentagem máxima do dano curada.

local amount = math.floor(valor * math.random(min_percent, max_percent) / 100)

valor = 0

doSendAnimatedText(getThingPos(cid), "+"..amount, 65)

doCreatureAddHealth(cid, amount)

end

 

obrigado man funcionou perfeitamente mas so uma duvida

esta enxendo vida mas mesmo assim ele ainda toma dano de fogo

tem como esse dano de fogo ficar igual a 0?

Link para o comentário
Compartilhar em outros sites

Em 2017-5-13 at 19:25, nociam disse:

se não me engano se coloca abixo do doCreatureAddHealth(cid, amount) um return false e testa

apezar de encher vida ele continua tomando dano de fodo, pode ajudar?

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

×
×
  • Criar Novo...