Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

Link

 tutoriel / partage [C++]Globalchat dans les config

Messages recommandés

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);
wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==

 

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

 

Contenu Masqué !

    Donnez un like à l'auteur afin de pouvoir visualiser tout le contenu.

 

Link :)

 

Modifié par _Sufhal

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour le tuto, utile pour ceux qui ne l'ont pas :)

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Le partage et testé et fonctionnel j'ai mis un screen a la fin du tuto.

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui mais qu'il marche pour toi c'est une chose, mais il faut qu'il marche pour les autres aussi...

 

Tout ne se passe pas toujours comme prévu hein...

 

PS: Où est la source des fichiers ?

Modifié par Kameyu

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai piocher sa dans les files 2016 de la team FE

Partager ce message


Lien à poster
Partager sur d’autres sites

Les codes dans les files 2016 team FE sont bugués x.x

(pb d'accents)

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.