Ir para conteúdo

Posts Recomendados

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

Link para o comentário
https://xtibia.com/forum/topic/134499-arquivadodescoberta-incrivel-e-muiiiito-util-em-otservs/
Compartilhar em outros sites

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.

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.

  • 2 months later...

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 months later...
  • 4 weeks later...

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 por affcara
  • 2 weeks later...

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 years later...
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.
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...