Aller au contenu
Top-Metin2.org - Vous êtes à la recherche d'un serveur Metin 2 ? ×
×
×
  • Créer...

C++ - GlobalChat


Link

Messages recommandés

Centre de Téléchargement

Hidden Content

    Give reaction to this post to see the hidden content.
( Interne )

Bonsoir à tous, 

 

Après avoir fait des recherches sur le forum j'ai vu qu'aucun partage pour le global_chat a été fait, je décide donc de vous le partager pour les files 2014 vierges car sur les 2016 il est déjà implanté et fonctionnel mais ce serait un petit plus pour les personnes utilisant les 2014 pures.

 

Pour ce partage vous aurez besoin que de vos sources serveur et ces 4 fichiers:

  • config.cpp
  • config.h
  • input_main.cpp
  • input_p2p.cpp

 

 

1. config.cpp et config.h

 

Révélation

 

 

Dans le fichier config.cpp, cherchez :

int gPlayerMaxLevel = 99;

 

Juste en dessous mettez :

bool global_chat = false;

 

Ensuite cherchez :

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);
}

 

Et mettez en dessous :

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

	str_to_number(flag, value_string);
	
	if (1 == flag)
	{
		global_chat = true;
		fprintf(stderr, "GLOBAL_CHAT: %in", flag);
	}
}

 

Maintenant, dans le fichier config.h, cherchez :

extern int gPlayerMaxLevel;

 

Et mettez en dessous :

extern bool global_chat;

 

 

 

2. input_main.cpp

 

Révélation

 

 

Dans ce fichier, recherchez :

ch->SetLastShoutPulse(thecore_heart->pulse);

 

Et remplacer le code déjà existant par :

if(global_chat)
{
	const char* kingdoms[3] = { "|cFFFF0000[S]|r", "|cFFFFFF00[C]|r", "|cFF0080FF[J]|r" };
	const char * GMs = "|cFF009CD5[STAFF]|r";
	const char * GMIMPLEMENTOR = "|cFFD05A01[Admin]|r";
	char chatbuf_global[CHAT_MAX_LEN + 1];
	
	if (ch->GetGMLevel() == GM_PLAYER)
		snprintf(chatbuf_global, sizeof(chatbuf_global), "%s %s", kingdoms[ch->GetEmpire() - 1], chatbuf);
	else if (ch->GetGMLevel() == GM_IMPLEMENTOR)
		snprintf(chatbuf_global, sizeof(chatbuf_global), "%s %s", GMIMPLEMENTOR, chatbuf);
	else
		snprintf(chatbuf_global, sizeof(chatbuf_global), "%s  %s", GMs, chatbuf);
	
	TPacketGGShout p;
	p.bHeader = HEADER_GG_SHOUT;
	p.bEmpire = ch->GetEmpire();
	
	strlcpy(p.szText, chatbuf_global, sizeof(p.szText));
	P2P_MANAGER::instance().Send(&p, sizeof(TPacketGGShout));
	SendShout(chatbuf_global, ch->GetEmpire());
	
	return (iExtraLen);
}
data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

 

 

3. input_p2p.cpp

 

Révélation

 

Dans ce fichier, recherchez :

#include "threeway_war.h"

 

Et mettez en dessous :

extern bool global_chat;

 

Ensuite recherchez la fonction :

struct FuncShout

 

Dans cette fonction vous aurez :

void operator () (LPDESC d)

 

Remplacez-là par :

void operator () (LPDESC d)
{
	if(global_chat)
	{
		if (!d->GetCharacter())
			return;
	}
	else
	{
		if (!d->GetCharacter() || (d->GetCharacter()->GetGMLevel() == GM_PLAYER && d->GetEmpire() != m_bEmpire))
			return;
	}

	d->GetCharacter()->ChatPacket(CHAT_TYPE_SHOUT, "%s", m_str);
}

 

Vous pouvez recompiler vos sources et votre global_chat sera implanté et fonctionnel sans oublier de mettre global_chat: 1 dans les config de vos files.

 

Hidden Content

    Give reaction to this post to see the hidden content.

 

Link https://fr.metin2.dev/uploads/emoticons/smile.png

 

Modifié par Funky Emulation
Core X - External 2 Internal
  • Metin2 Dev 6
  • Love 14
Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 7
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Jours populaires

  • Développeur

Salut,

 

Merci pour ce partage. J'ai pris la peine de corriger quelques erreurs d'inattention et de coloration/indentation.

On attendra un éventuel retour sur l'état de fonctionnement du partage avant de l'accepter.

 

Bonne journée!

Modifié par Kameyu
Lien vers le commentaire
Partager sur d’autres sites

problème d'accent et du au code dans l'input_main du au système de link item sans les loupes magique fin pour ma part les accents bugué quand j'activais sa mais corriger par le bout de code a remplacer qui est partagé sur le forum par Asikoo

Lien vers le commentaire
Partager sur d’autres sites



Information importante

Conditions d’utilisation / Politique de confidentialité / Règles / Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.