antiblock
https://arwen2.global/
  • Chatbox

    Did you check out our Discord? https://discord.gg/FFdvMjk9xA
    You don't have permission to chat.
    Load More
Sign in to follow this  
Tyler Durden

[C++]Chat Global

5 posts in this topic

A pedido do @Wery Oliveira, para não ter que criar conta noutro fórum, vou postar aqui o procedimento de como ter chat global no servidor usando o source.

É de notar que não tenho quaisquer créditos, apenas vou fazer copy & paste com tradução para português e adicionada a TAG [staff].

Chat Global (com opção de activação/desactivação no ficheiro CONFIG)

 

1º game/input_p2p.cpp

Procurar por

#include "threeway_war.h"
e colar em baixo isto

extern bool global_chat;
3680ba5dd6.png

______________________________________

A seguir procurar por

struct FuncShout
e substituir esta função

if (!d->GetCharacter() || (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire))
            return;
por esta

		if(global_chat)
		{
			if (!d->GetCharacter())
				return;
		}
		else 
		{
			if (!d->GetCharacter() || (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire))
				return;
		}
KMCMf.png

2º game/input_main.cpp

Procurar por

ch->SetLastShoutPulse(thecore_heart->pulse);
e adicionam isto

		if(global_chat)
		{
			char buf[256];
			char chatbuf_global[CHAT_MAX_LEN + 1];
			const BYTE char_empire = ch->GetEmpire();
			if (ch->GetGMLevel() != GM_PLAYER)
			{
				strlcpy(buf, LC_TEXT("Staff"), sizeof(buf));
				std::string staff_color = "|cFFFFC700|H|h[";
				staff_color += buf;
				staff_color += "]|cFFA7FFD4|H|h";
				sprintf(chatbuf_global, "%s %s", staff_color.c_str(), chatbuf);
			}
			else if(char_empire == 1)
			{
				strlcpy(buf, LC_TEXT("Shinsoo"), sizeof(buf));
				std::string kingdom_red = "|cFFff0000|H|h[";
				kingdom_red += buf;
				kingdom_red += "]|cFFA7FFD4|H|h";
				sprintf(chatbuf_global, "%s %s", kingdom_red.c_str(), chatbuf);
			} 
			else if (char_empire == 2) 
			{
				strlcpy(buf, LC_TEXT("Chunjo"), sizeof(buf));
				std::string kingdom_yel = "|cFFFFFF00|H|h[";
				kingdom_yel += buf;
				kingdom_yel += "]|cFFA7FFD4|H|h";
				sprintf(chatbuf_global, "%s %s", kingdom_yel.c_str(), chatbuf);
			} 
			else if (char_empire == 3) 
			{
				strlcpy(buf, LC_TEXT("Jinno"), sizeof(buf));
				std::string kingdom_blue = "|cFF0080FF|H|h[";
				kingdom_blue += buf;
				kingdom_blue += "]|cFFA7FFD4|H|h";
				sprintf(chatbuf_global, "%s %s", kingdom_blue.c_str(), chatbuf);
			}
ALQRe.png

3º game/config.cpp

Procurar por

int gPlayerMaxLevel = 99;
e adicionam isto em baixo

bool global_chat = false;
5j1ge.png

______________________________________

A seguir procurar por

		TOKEN("max_level")
		{
			str_to_number(gPlayerMaxLevel, value_string);

			gPlayerMaxLevel = MINMAX(1, gPlayerMaxLevel, PLAYER_MAX_LEVEL_CONST);

			fprintf(stderr, "PLAYER_MAX_LEVEL: %d\n", gPlayerMaxLevel);
		}
e adicionam isto em baixo

		TOKEN("global_chat")
		{
			int flag = 0;

			str_to_number(flag, value_string);

			if (1 == flag)
			{
				global_chat = true;
				fprintf(stderr, "GLOBAL_CHAT: %i\n", flag);
			}
		}
mu5hc.png

4º game/config.h

Procurar por

extern int gPlayerMaxLevel;
e adicionam isto em baixo

extern bool global_chat;
d0eb2d4d7f.png

5º .../share/locale/???/

Adicionar isto no final do ficheiro locale_string.txt

"Staff";
"Staff, ou o que vocês quiserem";

"Jinno";
"Jinno, ou o que vocês quiserem";

"Chunjo";
"Chunjo, ou o que vocês quiserem";

"Shinsoo";
"Shinsoo, ou o que vocês quiserem";
655986c431.jpg

6º Todos os ficheiros CONFIG

Adicionar isto em todos os ficheiros CONFIG

GLOBAL_CHAT: 1/0
1 = Chat Global Activado

0 = Chat Global Desactivado

 

 

Fonte: metin2dev

Share this post


Link to post
Share on other sites
antiblock
Elveron

Muito bom Tyler, Meu game é 40267, funcionou perfeitamente, porem no input_main.cpp tive que fazer uma alteração, não sei se foi só no meu game que possa ter acontecido, ou se vc esqueceu de copiar a } para o fechamento da função, segue meu codigo a baixo e leva o meu +1

		if(global_chat)
		{
			char buf[256];
			char chatbuf_global[CHAT_MAX_LEN + 1];
			const BYTE char_empire = ch->GetEmpire();
			if (ch->GetGMLevel() != GM_PLAYER)
			{
				strlcpy(buf, LC_TEXT("Equipe"), sizeof(buf));
				std::string staff_color = "|cFFFFC700|H|h[";
				staff_color += buf;
				staff_color += "]|cFFA7FFD4|H|h";
				sprintf(chatbuf_global, "%s %s", staff_color.c_str(), chatbuf);
			}
			else if(char_empire == 1)
			{
				strlcpy(buf, LC_TEXT("Shinsoo"), sizeof(buf));
				std::string kingdom_red = "|cFFff0000|H|h[";
				kingdom_red += buf;
				kingdom_red += "]|cFFA7FFD4|H|h";
				sprintf(chatbuf_global, "%s %s", kingdom_red.c_str(), chatbuf);
			} 
			else if (char_empire == 2) 
			{
				strlcpy(buf, LC_TEXT("Chunjo"), sizeof(buf));
				std::string kingdom_yel = "|cFFFFFF00|H|h[";
				kingdom_yel += buf;
				kingdom_yel += "]|cFFA7FFD4|H|h";
				sprintf(chatbuf_global, "%s %s", kingdom_yel.c_str(), chatbuf);
			} 
			else if (char_empire == 3) 
			{
				strlcpy(buf, LC_TEXT("Jinno"), sizeof(buf));
				std::string kingdom_blue = "|cFF0080FF|H|h[";
				kingdom_blue += buf;
				kingdom_blue += "]|cFFA7FFD4|H|h";
				sprintf(chatbuf_global, "%s %s", kingdom_blue.c_str(), chatbuf);
			}
		}

Share this post


Link to post
Share on other sites

Muito bom Tyler, Meu game é 40267, funcionou perfeitamente, porem no input_main.cpp tive que fazer uma alteração, não sei se foi só no meu game que possa ter acontecido, ou se vc esqueceu de copiar a } para o fechamento da função, segue meu codigo a baixo e leva o meu +1

Ya esqueci-me de 1 }  :facepalm:

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this