Jump to content

Olá Tibiano! Notamos que você está com um adblocker ligado... 

Nós promovemos servidores dentro da comunidade, para que eles tenham visibilidade.

Por favor, nos ajude a continuar promovendo esses servidores. Adicione nosso domínio na whitelist de seu adblocker, ok? :)

  • 0
luangop

Ajuda com query mysql na source tfs 0.4

Question

TFS 0.4 rev 3777
Estou a dias tentando fazer uma função na source e não consigo, sou leigo.

Este sistema é para um servidor exp alta, já consegui fazer o level do player aparecer no lugar da experiencia no client, pois no lugar do level buga quando chega em um número muito alto, para tal simplesmente fiz isso:
 

uint64_t experience = player->getPlayerInfo(PLAYERINFO_LEVEL);
		msg->put<uint32_t>(experience);

E como o servidor tem sistema de resets, eu queria fazer aparecer no lugar do level, o reset do player.. primeiramente meu sistema de resets era com storage, e eu consegui fazer isso da seguinte maneira:
 

std::string value;
        player->getStorage(378378, value);
		int32_t resets = atoi(value.c_str());

	msg->put<uint16_t>(resets);

Mas por motivos de praticidade para incluir informações e sistemas no site, mudei meu sistema de reset para registrar os resets na database. no caso o nome da coluna ficou 'reset'. Então tentei fazer aparecer os resets no client com uma query mysql mas como não tenho conhecimento de mysql em C++ deu errado kk

Vou postar como eu tentei:
 

Database* db = Database::getInstance();
DBQuery query;
query << "SELECT `reset` FROM `players` WHERE `id` = " << player->getGUID();
DBResult* result;
std::string resets;
resets = result->getDataInt("reset");
int32_t resetes = atoi(resets.c_str());
	msg->put<uint16_t>(resetes); 

Obs: Isso não é source de OTClient, isso é na source do servidor, eu utilizo oldclient mesmo.. esta é a parte que envia para o client a informação de experiencia e level para que o client mostre ao player..
No caso originalmente está assim na source:
 

	msg->put<uint16_t>(player->getPlayerInfo(PLAYERINFO_LEVEL));

Neste msg->put.. preciso por o valor que se encontra na minha database, na tabela reset.
Eu não sei fazer corretamente a query mysql e o code pra extrair a informação como int (número) e apresentar no lugar de player->getPlayerInfo(PLAYERINFO_LEVEL)

Eu já consegui alterar a informação que o servidor envia ao client, já está aparecendo meu level no lugar da exp, e resets no lugar do level quando uso o script de resets por storage, só não consigo fazer a query correta pra puxar a informação da database.

Segue prints:
 

Please login or register to see this attachment.

Please login or register to see this attachment.

Please login or register to see this attachment.

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...