Jump to content
×
×
  • Create New...

C++ - GlobalChat


Recommended Posts

Centre de Téléchargement

Télécharger ( 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.

 

http://image.noelshack.com/minis/2018/38/1/1537176121-screenshot-1.png

 

Link http://149.91.82.160/uploads/emoticons/smile.png

 

  • Funky Emulation 2
  • J'adore 14
Link to comment
  • 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!

Edited by Kameyu
Link to comment
  • Développeur

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 ?

Edited by Kameyu
Link to comment

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

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Flux d'Activité

    1. 38

      Rodnia.net | PVM | International | The Great Conqueror |

    2. 0

      [JAVA] Starloco

    3. 0

      Recherche CMS arkalys 2021

    4. 0

      AresiaCMS

    5. 62

      [CMS] Acamar Cms

    6. 3

      Éditeur Item 2.43 à 2.53

  • Recently Browsing

    • No registered users viewing this page.

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.