element absorb (absorver elemento)

wevertonvrb
em Tópicos Sem Resposta

wevertonvrb

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/05/13Posts: 303

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?

Josegvb

avatar
Marquês
Marquês

INFOS

Grupo: MarquêsRegistrado: 23/09/12Posts: 1041Gênero: Masculino

to querendo saber tb

JeanCristian

ADM MiHawk
avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 12/04/12Posts: 328Char no Tibia: ADM MiHawk

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

Acadêmico: 5 Post[x]

Gennin: 15 Posts[x]

Chunnin: 40 Posts[x]

Jounnin: 60 Posts[x]

Jounnin Tokubetsu: 80 Posts[x]

ANBU: 100 Posts[X]

ANBU Elite: 130 Posts[ ]

Kage: 160 Posts[ ]

Sannin: 200 Posts[ ]

Sannin Lendário: 250 Posts[ ]

Sannin Mundial: 300 Posts[ ]

 

th_Ichigo_Mugetsu-1.gifth_BleachMovie4-SkullCladIchigo.gifth_HollowTransformation.gif

wevertonvrb

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/05/13Posts: 303
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

 

wevertonvrb

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/05/13Posts: 303

por favor alguem ajude com isso?
@zipter98 tem como pelo menos tentar me ajudar?

 

nociam

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/02/13Posts: 541Gênero: Masculino

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

 

wevertonvrb

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/05/13Posts: 303
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?

nociam

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/02/13Posts: 541Gênero: Masculino

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

wevertonvrb

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/05/13Posts: 303
1 hora atrás, nociam disse:

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

ele continua tomando dano

 

wevertonvrb

avatar
Visconde
Visconde

INFOS

Grupo: ViscondeRegistrado: 21/05/13Posts: 303
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?

nociam

avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 04/02/13Posts: 541Gênero: Masculino

posta o script toda ai