JV

[Resolvido] Problema com Distro TFS e Allisow

Por jvcasarin, 01 de dez. de 2015 em Resolvidos

tfs
0.4
help
allisow
server
distro
resolvido
9
1.9k
jvcasarinJ
01 de dezembro de 2015 às 22:57

Bom galera, eu tenho um server com o mapa Hero editado, rachei muito pra achar ele, porém, ele veio com a distro Allisow Server 8.6, e o server contém MUITOS, mas MUITOS erros mesmo, mas até agora, nenhum prejudicou a jogatina dos players.

 

Eu fui trocar o distro para um TFS 0.4 que eu compilei aqui com war system, cast etc...

 

Quando eu troco o distro, ocorre um bug MUITO LOUCO que eu nunca tinha visto.

 

Não aparece nenhum erro no console(pelo o que eu consegui observar) que gerou esse bug.

 

O bug é: Quando eu iniciei o server pela primeira vez usando esse TFS 0.4 que eu tenho, TODAS as account names foram trocadas para o account id da account do cara, exemplo:

 

Antes de trocar o distro:

account ID : 3

account name: exemplo1

password: 12345678

 

 

Depois de trocar o distro para TFS 0.4:

account ID: 3

account name: 3

password: 12345678

valakasV
01 de dezembro de 2015 às 23:17

normalmente se tem que resetar o otserv para poder mudar a distro kk acretido eu,

 

e quando vc colocar a distro 0.4 voce deve mudar a criptografia para sha1 no config.lua que vai estar plain

 

 

não recomendo usar a distro do allisow porque ja usei ela e da muito crash e tem bug do elfbot com clonagem

Editado Dezembro 1 por valakas

jvcasarinJ
01 de dezembro de 2015 às 23:29

O TFS 0.4 fui eu que compilei, pedi em vários forums pra retirar a obrigatoriedade do sha1 e deixar usar plain, ou seja, agora meu TFS 0.4 aceita plain tbm rsrs


O TFS 0.4 fui eu que compilei, pedi em vários forums pra retirar a obrigatoriedade do sha1 e deixar usar plain, ou seja, agora meu TFS 0.4 aceita plain tbm rsrs

 

 

 

Edit:

 

Nunca precisei desse negócio de resetar a database pra trocar distro, ja fiz isso em alguns outros mapas meus, e nunca deu problema.. Mas vlw a intenção!!

valakasV
01 de dezembro de 2015 às 23:30

O TFS 0.4 fui eu que compilei, pedi em vários forums pra retirar a obrigatoriedade do sha1 e deixar usar plain, ou seja, agora meu TFS 0.4 aceita plain tbm rsrs

 

 

 

Edit:

 

Nunca precisei desse negócio de resetar a database pra trocar distro, ja fiz isso em alguns outros mapas meus, e nunca deu problema.. Mas vlw a intenção!!

não acho necessario por plain por enquanto rsrsrs porque logo o cara quer usar mysql

jvcasarinJ
03 de dezembro de 2015 às 16:56

kkkkkk, mas então, sabe alguma coisa q pode estar causando essa mudança nos account names? Muito estranho e novo isso pra mim '-'


up

Yan LiimaY
05 de dezembro de 2015 às 03:48
Melhor resposta

1º método

 

Eu sei porque amigo, importe sua database denovo mais não abre a distro...

 

Vai nas suas source procure definitions.h

 

Tente achar #define VERSION_DATABASE

 

e vê qual o número que está exemplo: #define VERSION_DATABASE 27

 

Após ter feito isso vai no seu banco de dados do servidor e procure: server_config

 

Altere o db_version para o número da versão da database que você viu no DEFINITIONS.H.

 

EXEMPLO:

 

Config value

db_version 27

 

Ou você pode olhar a que ficou com este problema que você diz, pois se a versão da database da distro for uma e na sua database for outra a sua distro altera para a dela, por isso muda, mais ele não muda so isso não viu, nos players muda os loot e talz e pode bugar na hora de morrer...

 

2º métedo (pela sources)

 

Abre suas sources pelo C++ e abre a databasemanager.cpp procure isto:

db->query("DELETE FROM `player_storage` WHERE `key` = 30018;");
   db->query("ALTER TABLE `accounts` ADD `name` VARCHAR(32) NOT NULL DEFAULT '';");
   if((result = db->storeQuery("SELECT `id` FROM `accounts`;")))
   {
	do
	{
	 query << "UPDATE `accounts` SET `name` = '" << result->getDataInt("id") << "' WHERE `id` = " << result->getDataInt("id") << ";";
	 db->query(query.str());
	 query.str("");
	}
	while(result->next());
	result->free();
   }

Altere para:

/*db->query("DELETE FROM `player_storage` WHERE `key` = 30018;");
   db->query("ALTER TABLE `accounts` ADD `name` VARCHAR(32) NOT NULL DEFAULT '';");
   if((result = db->storeQuery("SELECT `id` FROM `accounts`;")))
   {
	do
	{
	 query << "UPDATE `accounts` SET `name` = '" << result->getDataInt("id") << "' WHERE `id` = " << result->getDataInt("id") << ";";
	 db->query(query.str());
	 query.str("");
	}
	while(result->next());
	result->free();
   }*/

Pronto isso não alteraria o Login da sua conta.

 

Eu preferia fazer o método 1 rsrs mais fique de sua escolha.

Editado Dezembro 5 por nedroesdoksdja

jvcasarinJ
05 de dezembro de 2015 às 04:27

1º método

 

Eu sei porque amigo, importe sua database denovo mais não abre a distro...

 

Vai nas suas source procure definitions.h

 

Tente achar #define VERSION_DATABASE

 

e vê qual o número que está exemplo: #define VERSION_DATABASE 27

 

Após ter feito isso vai no seu banco de dados do servidor e procure: server_config

 

Altere o db_version para o número da versão da database que você viu no DEFINITIONS.H.

 

EXEMPLO:

 

Config value

db_version 27

 

Ou você pode olhar a que ficou com este problema que você diz, pois se a versão da database da distro for uma e na sua database for outra a sua distro altera para a dela, por isso muda, mais ele não muda so isso não viu, nos players muda os loot e talz e pode bugar na hora de morrer...

 

2º métedo (pela sources)

 

Abre suas sources pelo C++ e abre a databasemanager.cpp procure isto:

db->query("DELETE FROM `player_storage` WHERE `key` = 30018;");
   db->query("ALTER TABLE `accounts` ADD `name` VARCHAR(32) NOT NULL DEFAULT '';");
   if((result = db->storeQuery("SELECT `id` FROM `accounts`;")))
   {
	do
	{
	 query << "UPDATE `accounts` SET `name` = '" << result->getDataInt("id") << "' WHERE `id` = " << result->getDataInt("id") << ";";
	 db->query(query.str());
	 query.str("");
	}
	while(result->next());
	result->free();
   }

Altere para:

/*db->query("DELETE FROM `player_storage` WHERE `key` = 30018;");
   db->query("ALTER TABLE `accounts` ADD `name` VARCHAR(32) NOT NULL DEFAULT '';");
   if((result = db->storeQuery("SELECT `id` FROM `accounts`;")))
   {
	do
	{
	 query << "UPDATE `accounts` SET `name` = '" << result->getDataInt("id") << "' WHERE `id` = " << result->getDataInt("id") << ";";
	 db->query(query.str());
	 query.str("");
	}
	while(result->next());
	result->free();
   }*/

Pronto isso não alteraria o Login da sua conta.

 

Eu preferia fazer o método 1 rsrs mais fique de sua escolha.

 

RESOLVIDO pelo 1º método! VLW REP+

3 semanas depois...
DanihcvD
25 de dezembro de 2015 às 16:20

Tópico movido para dúvidas / pedidos resolvidos.

1 ano depois...
FrenviusF
29 de novembro de 2017 às 14:20
A questão neste tópico de suporte foi respondida e/ou o autor do tópico resolveu o problema. Este tópico está fechado e foi movido para Suporte - Resolvidos. Se você tiver outras dúvidas, crie um novo tópico.