GL

[Arquivado]Descoberta Incrivel E Muiiiito [Util Em Otservs]

Por glugluguga, 07 de jun. de 2010 em Noticias - Arquivo

otserv
tibia
script
12
2.7k
gluglugugaG
07 de junho de 2010 às 20:28

Seguinte pessoal estava olhando em um site polonês e la estava escrito que provavelmente na versão 8.54 acima chegaram novos attributes dos famosos item.xml que todo ot tem, e é o seguinte eu vou explicar mais ou menos a função dele e o que ele faz, essa descoberta é incrível.

 

<attribute key="reflectpercentall" value="30"/>

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

 

 

seguinte, primeiro irei explicar qual a função desses dois paramêtros eles refletem o dano causado pela criatura, ainda não testei com players, e quer dizer que a parte do reflectpercentall, significa que de cada hit 30% dos hits tem chances de refletir e o reflectchanceall é a porcentagem que vai refletir, por exemplo ali esta 100 se eu colocar 65 vai refletir 65% dos danos, por exemplo o monstro me hitou 100 rapidamente ele toma devolta 65.

 

Essa foi uma descoberta feita obviamente por mim e descobri a função dela sozinho.

 

Irei tentar lembrar o link que ela estava escrita, mais não vem alguns (tolos)queridinhos dizer assim, esse cara é uma fraude, ele não sabe nada não, pode procurar, ele viu em outro site, forúm e resolveu postar aqui,Não, nada disso não eu estava procurando no :google_lt: "item refletor de danos" apareceu muitos scripts aqui do xtibia e outros sites que não posso dizer aqui...

 

mais intão tava quase que assim "akskdllüds, não entendo polonês mas acredito que estava escrito quae isso, bem voltando no assunto estava escrito "akskdllüds

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

<attribute key="reflectchanceall" value="65"/>

......------$$!#@#!$!$!-------........, e o resto que eu nao lembro, então eu coloquei isso no items.xml pra ver o que acontecia, então fui em dragon pra ver se refletia e nada, passou uns minutos eu fui olhar a vida do dragon estava descendo sozinha, e ele não me hitava resolvi tirar itens e ele continuou levando hits, foi isso que me fez descobrir que o dano era refletido, e fui descobrindo como controla-lo.

 

É isso ai pessoal espero que gostem :XTibia_smile:.

 

Obrigado, glugluguga

 

Mais informações me adicione no msn g.seberino@hotmail.com

VodkartV
07 de junho de 2010 às 20:34

Hm legal

 

só falto organizar mais o tópico e chegar direto ao assunto sem previas,ou sejá somente com relação com o tópico(Função).

KydraiK
07 de junho de 2010 às 20:48

Boa, mas vc deveria ter feito um script e postado, ja que não é bem um artigo.

 

Vc pode achar muito mais nas sources, "items.cpp" para ser mais específico.

La vc acha:

reflectpercentall
reflectpercentelements
reflectpercentmagic
reflectpercentenergy
reflectpercentfire
...
reflectchanceall

E tudo mais.

gluglugugaG
07 de junho de 2010 às 22:45

Vodkart

Realmente acredito que eu deveria organizar o topico assim, mais se você achar que esta bom assim... Vou achar que ta ótimo.

 

Kydrai

Exatamente, mas não tive muito tempo tive compromissos entende, mais será raro alguem querer que só reflita energy, fire ou ice, provavelmente ele vai querer colocar reflectpercentall, pra refletir os hit xD.

3 meses depois...
zelockZ
07 de setembro de 2010 às 14:32

excelente ! era justamente isso que eu procurava !

BlueSilverB
07 de setembro de 2010 às 14:37

Parece ser legal, dei uma olhada aqui nas sources...

 

 

 

 

		else if(tmpStrValue == "reflectpercentall")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
			{
				for(int32_t i = COMBAT_FIRST; i <= COMBAT_LAST; i++)
					it.abilities.reflect[REFLECT_PERCENT][i] += intValue;
			}
		}
		else if(tmpStrValue == "reflectpercentelements")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
			{
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_ENERGYDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_FIREDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_EARTHDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_ICEDAMAGE] += intValue;
			}
		}
		else if(tmpStrValue == "reflectpercentmagic")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
			{
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_ENERGYDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_FIREDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_EARTHDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_ICEDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_HOLYDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_DEATHDAMAGE] += intValue;
			}
		}
		else if(tmpStrValue == "reflectpercentenergy")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_ENERGYDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectpercentfire")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_FIREDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectpercentpoison" ||	tmpStrValue == "reflectpercentearth")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_EARTHDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectpercentice")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_ICEDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectpercentholy")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_HOLYDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectpercentdeath")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_DEATHDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectpercentlifedrain")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_LIFEDRAIN] += intValue;
		}
		else if(tmpStrValue == "reflectpercentmanadrain")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_MANADRAIN] += intValue;
		}
		else if(tmpStrValue == "reflectpercentdrown")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_DROWNDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectpercentphysical")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_PHYSICALDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectpercenthealing")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_HEALING] += intValue;
		}
		else if(tmpStrValue == "reflectpercentundefined")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_PERCENT][COMBAT_UNDEFINEDDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectchanceall")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
			{
				for(int32_t i = COMBAT_FIRST; i <= COMBAT_LAST; i++)
					it.abilities.reflect[REFLECT_CHANCE][i] += intValue;
			}
		}
		else if(tmpStrValue == "reflectchanceelements")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
			{
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_ENERGYDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_FIREDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_EARTHDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_ICEDAMAGE] += intValue;
			}
		}
		else if(tmpStrValue == "reflectchancemagic")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
			{
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_ENERGYDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_FIREDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_EARTHDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_ICEDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_HOLYDAMAGE] += intValue;
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_DEATHDAMAGE] += intValue;
			}
		}
		else if(tmpStrValue == "reflectchanceenergy")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_ENERGYDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectchancefire")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_FIREDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectchancepoison" ||	tmpStrValue == "reflectchanceearth")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_EARTHDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectchanceice")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_ICEDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectchanceholy")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_HOLYDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectchancedeath")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_DEATHDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectchancelifedrain")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_LIFEDRAIN] += intValue;
		}
		else if(tmpStrValue == "reflectchancemanadrain")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_MANADRAIN] += intValue;
		}
		else if(tmpStrValue == "reflectchancedrown")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_DROWNDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectchancephysical")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_PHYSICALDAMAGE] += intValue;
		}
		else if(tmpStrValue == "reflectchancehealing")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_HEALING] += intValue;
		}
		else if(tmpStrValue == "reflectchanceundefined")
		{
			if(readXMLInteger(itemAttributesNode, "value", intValue))
				it.abilities.reflect[REFLECT_CHANCE][COMBAT_UNDEFINEDDAMAGE] += intValue;
		}

 

 

 

3 meses depois...
RoksasR
14 de dezembro de 2010 às 18:41

Caramba, que legal a "descoberta" gostei, rsrs. Obrigado ae pela informaçao, mais um complemento para mim :winksmiley02:

 

Atensiosamente,

Roksas.

1 mês depois...
affcaraA
12 de janeiro de 2011 às 05:56

cara se isso funcionar vai ser d++ vlw =D

bem funcionaria perfeitamente se nao fosse pelo fato de que quando o player pisa em um "field" ou em uma armadilha..

o sistema não sabe a quem refletir o dano tomada e o ot cai.. =S

mas mesmo assim vale a pena tirei os danos de field do meu pra usar esse atribute =D

Editado Janeiro 13 por affcara

romeraR
12 de janeiro de 2011 às 14:54

Parabéns, não entendi perfeitamente mas vo testart, vlws aew por trazer ao Xtibia!!

Te+

dmxkinhaD
17 de janeiro de 2011 às 23:52

Bom eu nao tinha intendido muito mas baixei e vi que é muito bom e vou colocar no meu ot sem duvida!

2 semanas depois...
MockM
29 de janeiro de 2011 às 21:04

Que tal vc parar de procurar no google como fazer um item e começar a ler A PORRA DO MANUAL DO OPEN TIBIA

Tenho certeza que você vai descobrir mais outros novos atributos.

7 anos depois...
StigalS
25 de abril de 2018 às 16:28
Esta noticia foi arquivada.
Este tópico está fechado e foi movido para Noticia - Arquivo.

+ Caso tenha atualizações você poderá criar outro tópico.