Ir para conteúdo

Featured Replies

Postado

Estou dando upgrade de versão em um servidor baseado em TFS 1.2 porém ao adicionar novos monstros, o console gera vários erros.

Spoiler

kFJoc0V.jpg

 

Código de um monstro que gera erro: amazon.xml:

<?xml version="1.0" encoding="ISO-8859-1"?>
<monster name="Amazon" nameDescription="an amazon" race="blood" experience="60" speed="180" manacost="390">
	<health now="110" max="110" />
	<look type="137" head="113" body="120" legs="114" feet="132" corpse="20323" />
	<targetchange interval="4000" chance="10" />
	<flags>
		<flag summonable="1" />
		<flag attackable="1" />
		<flag hostile="1" />
		<flag illusionable="1" />
		<flag convinceable="1" />
		<flag pushable="0" />
		<flag canpushitems="1" />
		<flag canpushcreatures="0" />
		<flag targetdistance="4" />
		<flag staticattack="90" />
		<flag runonhealth="10" />
	</flags>
	<attacks>
		<attack name="melee" interval="2000" min="0" max="-45" />
		<attack name="physical" interval="2000" chance="15" range="7" min="0" max="-40">
			<attribute key="shootEffect" value="throwingknife" />
		</attack>
	</attacks>
	<defenses armor="10" defense="10" />
	<elements>
		<element physicalPercent="-5" />
		<element deathPercent="-5" />
	</elements>
	<voices interval="5000" chance="10">
		<voice sentence="Yeeee ha!" />
		<voice sentence="Your head shall be mine!" />
		<voice sentence="Your head will be mine!" />
	</voices>
	<loot>
		<item id="2050" chance="1005" />
		<item name="crystal necklace" chance="287" />
		<item name="small ruby" chance="161" />
		<item name="gold coin" countmax="20" chance="40000" />
		<item id="2229" countmax="2" chance="80000" />
		<item name="dagger" chance="80000" />
		<item name="sabre" chance="23000" />
		<item name="brown bread" chance="30333" />
	</loot>
</monster>

Modificando esse código eu percebi que o erro SÓ acontece quando o eu configuro o loot pelo nome (ex:         <item name="small ruby" chance="161" />)

Se eu colocar o loot pelo ID: (ex:     <item id="2125" chance="161" />) Não acontece nenhum erro.

 

OU SEJA: A source que eu estou usando (TFS 1.2 modificada) teve a parte que lida com o loot pelo nome excluida. Alguem tem ideia onde fica e oque modificar para restaurar essa função?

Postado

monsters.cpp
Procure esse trecho.

bool Monsters::loadLootItem(const pugi::xml_node& node, LootBlock& lootBlock)
{
	pugi::xml_attribute attr;
	if ((attr = node.attribute("id"))) {
		lootBlock.id = pugi::cast<int32_t>(attr.value());
	}

Substitua por.
 

bool Monsters::loadLootItem(const pugi::xml_node& node, LootBlock& lootBlock)
{
	pugi::xml_attribute attr;
	if ((attr = node.attribute("id"))) {
		lootBlock.id = pugi::cast<int32_t>(attr.value());
	} else if ((attr = node.attribute("name"))) {
		lootBlock.id = Item::items.getItemIdByName(attr.as_string());
	}


 

ichigo.gif
https://github.com/Cjaker/

  , _ ,
 ( o o )
/'` ' `'\                     ESTOU TE OBSERVANDO O_O
|'''''''|
|\\'''//|
   """

 

Postado
  • Autor

Sem eu mesmo postar meu monsters.cpp vc foi capaz de achar o erro e mandar o código, muito obrigado @Cjaker era exatamente isso que eu queria!

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo