Bonsoir !
J'en viens à vous pour obtenir de l'aide afin d'achever un plugin que j'essaye de faire tant bien que mal mais étant bloqué cela m'est compliqué!
Le plugin susnommé que j'essaye de créer paraît simpliste (j'espère que ça l'est au niveau du code). Ce plugin doit donc changer les couleurs des noms d'équipes, je m'explique !
Quand un joueur choisit l'équipe bleu et qu'il écrit, son pseudo est de cette façon : Walgrim : blabla
Et vis versa pour l'équipe rouge, ce que j'ai essayé donc de faire est donc ceci :
#include <sourcemod>
#include <morecolors>
public Plugin myinfo =
{
name = "[TF2] Change Team Chat Colors",
url = "https://forums.alliedmods.net/showthread.php?t=286558"
};
public OnPluginStart()
{
AddCommandListener(ChatTriggers, "say");
AddCommandListener(ChatTriggers, "say_team");
}
public Action ChatTriggers(int client, const String:command[], int argc)
{
decl String:sMessage[255];
decl String:sClientName[64];
GetCmdArgString(sMessage, sizeof(sMessage));
GetClientName(client, sClientName, sizeof(sClientName));
StripQuotes(sMessage);
if (IsPlayerAlive(client) && CGetTeamColor(client) == 0x99CCFF)
{
CPrintToChatAll("{steelblue}%s {default}: %s", sClientName, sMessage);
}
else if (CGetTeamColor(client) == 0x99CCFF)
{
CPrintToChatAll("*DEAD* {steelblue}%s {default}: %s", sClientName, sMessage);
}
if (IsPlayerAlive(client) && CGetTeamColor(client) == 0xFF4040)
{
CPrintToChatAll("{corrupted}%s {default}: %s", sClientName, sMessage);
}
else if (CGetTeamColor(client) == 0xFF4040)
{
CPrintToChatAll("*DEAD* {corrupted}%s {default}: %s", sClientName, sMessage);
}
else if (CGetTeamColor(client) == 0xCCCCCC)
{
CPrintToChatAll("*SPEC* {dimgray}%s {default}: %s", sClientName, sMessage);
}
return Plugin_Handled
}
Après plusieurs recherches et essais j'en ai conclut ce que j'ai au dessus, j'ai essayé d'utiliser simple chat processor, malheuresement, je n'arrive pas à comprendre comment l'utiliser à mon niveau.
Le problème est le suivant, dans le code, morecolors utilise CPrintToChat et CPrintToChatAll, les problèmes sont :
- CPrintToChat va uniquement envoyer le message à celui qui l'a envoyé, autrement dis, personne ne verra le message des autres mais uniquement les leur.
- CPrintToChatAll va envoyer à tout le monde le message ce qui est bon en soit et malheureusement pas tant que ça, les commandes du genre "/admin" sont directement mise dans le chat au lieu d'être cachée et aucun joueur ne peut utiliser le canal d'équipe : (EQUIPE) Walgrim : Blabla. Ce qui m'énerve au plus haut point!
- La dernière chose est que cela m'écrase littéralement les couleurs du custom chat colors pour mes admins.
J'ai déjà essayé d'obtenir de l'aide sur le forum AlliedModders malheureusement sans résultats très probants : https://forums.alliedmods.net/showthread.php?t=286558
J'espère que l'un d'entre vous saura m'aider (c'est pratiquement mon dernier recours). Merci d'avoir lu et j'espère, avoir une réponse qui m'aidera.