|
Member
|

08-19-2009
, 00:03
Compatibility - chat isn't colorized on linux
|
#1
|
Hi. I cannot get this thing to work on my dedicated server. On windows code bellow is executed properly but on Linux whole text is yellow ( or orange... whatever ) and in places of color modifiers ( !g, !t, !y ) I see spaces. What can be the problem here?
PHP Code:
cc_chatMessage(0, "!gGreen !tRedOrBlue !yYellow");
PHP Code:
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "Chat"
#define VERSION "1.0"
#define AUTHOR "wthc" // Who The Hell Cares
new gHudOvertime, gSayText, gMaxSlots, gCvarTag;
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_dictionary("chat.txt");
gSayText = get_user_msgid("SayText");
gMaxSlots = get_maxplayers();
gCvarTag = register_cvar("chat_tag", "[SERVER]");
gHudOvertime = CreateHudSyncObj();
}
public plugin_natives()
{
register_library(PLUGIN);
register_native("cc_chatMessageLang", "cc_chatMessageLang", 1);
register_native("cc_chatMessage", "cc_chatMessage", 1);
register_native("cc_hudMessageLang", "cc_hudMessageLang", 1);
register_native("cc_hudMessage", "cc_hudMessage", 1);
}
/////////////////
//// NATIVES ////
/////////////////
public cc_chatMessageLang(iPlayer, const sKeyLang[])
{
param_convert(2);
ChatMessage(iPlayer, "%L", iPlayer, sKeyLang)
}
public cc_chatMessage(iPlayer, const sMessage[], ...)
{
for(new i = 2; i <= numargs(); i++) { param_convert(i); }
new sMsgFinal[192];
vformat(sMsgFinal, charsmax(sMsgFinal), sMessage, 3);
ChatMessage(iPlayer, sMsgFinal)
}
public cc_hudMessageLang(iPlayer, const sKeyLang[])
{
param_convert(2);
HudMessageLang(iPlayer, sKeyLang);
}
public cc_hudMessage(iPlayer, const sMessage[], ...)
{
for(new i = 2; i <= numargs(); i++) { param_convert(i); }
new sMsgFinal[192];
vformat(sMsgFinal, charsmax(sMsgFinal), sMessage, 3);
HudMessage(iPlayer, sMsgFinal);
}
//////////////////
//// MESSAGES ////
//////////////////
ChatMessage(iPlayer, const sMessage[], ...)
{
new index, MSG_Type, sMsg[192], sFinal[192], sTag[32];
get_pcvar_string(gCvarTag, sTag, 191);
if(iPlayer == 0)
{
index = PlayersFind();
MSG_Type = MSG_ALL;
} else {
MSG_Type = MSG_ONE;
index = iPlayer;
}
vformat(sMsg, charsmax(sMsg), sMessage, 3);
format(sFinal, charsmax(sFinal), "%s %s", sTag, sMsg);
ColorsReplace(sFinal, charsmax(sFinal));
message_begin(MSG_Type, gSayText, _, index);
write_byte(index);
write_string(sFinal);
message_end();
}
HudMessageLang(iPlayer, const sKeyLang[])
{
HudMessage(iPlayer, "%L", iPlayer, sKeyLang);
}
HudMessage(iPlayer, const sMessage[], ...)
{
new sMsgFinal[192];
vformat(sMsgFinal, charsmax(sMsgFinal), sMessage, 3);
set_hudmessage(255, 0, 0, -1.0, 0.90, 0, 0.0, 2.0, 0.0, 1.0, -1);
ShowSyncHudMsg(iPlayer, gHudOvertime, sMsgFinal);
}
ColorsReplace(sMsg[], iMsgLen)
{
replace_all(sMsg, iMsgLen, "!g", "^x04");
replace_all(sMsg, iMsgLen, "!t", "^x03");
replace_all(sMsg, iMsgLen, "!y", "^x01");
}
PlayersFind()
{
new i = -1;
while(i <= gMaxSlots)
{
if(PlayerIsConnected(++i)) { return i; }
}
return -1;
}
PlayerIsConnected(iPlayer)
{
return (is_user_connected(iPlayer) && !is_user_bot(iPlayer))
}
|
|