BR

Servidor aceitando qualquer items.otb

Por Bruno, 08 de jul. de 2015 em Linguagens de Programação

programação
tfs
distro
otserv
items.otb
items
versão
14
3k
BrunoB
08 de julho de 2015 às 13:20

Lembrando que este procedimento foi testado no tfs v0.4.

 

Abra o seu items.cpp e procure por:

if(Items::dwMajorVersion == 0xFFFFFFFF)
	std::clog << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl;
else if(Items::dwMajorVersion < 3) {
	std::clog << "[Error - Items::loadFromOtb] Old version detected, a newer version of items.otb is required." << std::endl;
	return ERROR_INVALID_FORMAT;
}
else if(Items::dwMajorVersion > 3) {
	std::clog << "[Error - Items::loadFromOtb] New version detected, an older version of items.otb is required." << std::endl;
	return ERROR_INVALID_FORMAT;
}
else if(!g_config.getBool(ConfigManager::SKIP_ITEMS_VERSION) && Items::dwMinorVersion != CLIENT_VERSION_920) {
	std::clog << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl;
	return ERROR_INVALID_FORMAT;
}
Agora basta comentar, ficando assim:

/*if(Items::dwMajorVersion == 0xFFFFFFFF)
	std::clog << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl;
else if(Items::dwMajorVersion < 3) {
	std::clog << "[Error - Items::loadFromOtb] Old version detected, a newer version of items.otb is required." << std::endl;
	return ERROR_INVALID_FORMAT;
}
else if(Items::dwMajorVersion > 3) {
	std::clog << "[Error - Items::loadFromOtb] New version detected, an older version of items.otb is required." << std::endl;
	return ERROR_INVALID_FORMAT;
}
else if(!g_config.getBool(ConfigManager::SKIP_ITEMS_VERSION) && Items::dwMinorVersion != CLIENT_VERSION_920) {
	std::clog << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl;
	return ERROR_INVALID_FORMAT;
}*/
Qualquer problema ou dúvida, só postar aqui!
2 semanas depois...
NoockN
22 de julho de 2015 às 12:56

Tem como fazer no o tfs v1.x ?

 

qual o procedimento ?

 

Editado Julho 22 por Noock

AlayenA
22 de julho de 2015 às 13:31

Tem como fazer no o tfs v1.x ?

 

qual o procedimento ?

 

 

https://github.com/otland/forgottenserver/blob/master/src/items.cpp#L191-199

BrunoB
22 de julho de 2015 às 14:18

Tem como fazer no o tfs v1.x ?

 

qual o procedimento ?

Olha, para versões mais antigas ele não impede o uso de outros .otb's

Só quando você tenta usar uma versão antiga depois do update onde aparecem os novos efeitos, ai não da mesmo. (creio que foi implantado na versão 10.58)

MUNlZM
27 de julho de 2015 às 23:51

Ótimo tutorial XD

BrunoB
28 de julho de 2015 às 08:33

Ótimo tutorial XD

 

Obrigado man :)

BeekiB
28 de julho de 2015 às 08:39

não precisava comentar o código todo, só a parte que faz a checagem da versão...

BrunoB
28 de julho de 2015 às 09:06

não precisava comentar o código todo, só a parte que faz a checagem da versão...

Leia a parte comentada e verá que é justamente isso que está sendo feito :)

AvuenjaA
28 de julho de 2015 às 09:28

Muito bom Bruno! Um ótimo tutorial, simples e direto! Parabéns

BrunoB
28 de julho de 2015 às 09:37

Muito bom Bruno! Um ótimo tutorial, simples e direto! Parabéns

Vlw Marcelo :)

BeekiB
28 de julho de 2015 às 10:11

Leia a parte comentada e verá que é justamente isso que está sendo feito :)

 

Tô falando dessa parte aqui chapa. :D

else if(!g_config.getBool(ConfigManager::SKIP_ITEMS_VERSION) && Items::dwMinorVersion != CLIENT_VERSION_920) {
	std::clog << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl;
	return ERROR_INVALID_FORMAT;
}
BrunoB
28 de julho de 2015 às 10:21

Tô falando dessa parte aqui chapa. :D

else if(!g_config.getBool(ConfigManager::SKIP_ITEMS_VERSION) && Items::dwMinorVersion != CLIENT_VERSION_920) {
	std::clog << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl;
	return ERROR_INVALID_FORMAT;
}

 

return ERROR_INVALID_FORMAT;
O retorno que conta, não a mensagem, e em ambas as validações, caso não estejam adequadas, irá dar retorno, apenas o primeiro if que gera um warning.
1 mês depois...
tatotheusT
31 de agosto de 2015 às 10:20

Minha Source não contem items.cpp, no lugar ela tem item.cpp, procurei o código nela mesmo mas não encontrei. poderia me ajudar ?

 

@Resolvido

Editado Agosto 31 por tatotheus

BrunoB
31 de agosto de 2015 às 10:28

Faz uma busca por Items::dwMinorVersion ou dwMinorVersion, e ve se acha algo.