Ir para conteúdo

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


glugluguga

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
Compartilhar em outros sites

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).

Link para o comentário
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.

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

  • 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;
		}

 

 

 

Link para o comentário
Compartilhar em outros sites

  • 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
Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 7 years later...
Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...