mirror of
https://github.com/shavitush/bhoptimer.git
synced 2025-12-09 03:18:25 +00:00
Fix chat colors when RTLer is on.
This commit is contained in:
parent
86442a4059
commit
55604dfe77
35
scripting/include/rtler.inc
Normal file
35
scripting/include/rtler.inc
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
// code by alongub https://github.com/alongubkin/
|
||||||
|
|
||||||
|
#if defined _rtler_included
|
||||||
|
#endinput
|
||||||
|
#endif
|
||||||
|
#define _rtler_included
|
||||||
|
|
||||||
|
#pragma semicolon 1
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts a string that contains words in RTL languages to be displayed correctly in-game.
|
||||||
|
*
|
||||||
|
* @param dest Destination string buffer to copy the RTL-ed string to.
|
||||||
|
* @param destLen Destination buffer length (includes null terminator).
|
||||||
|
* @param original Original non-rtled string.
|
||||||
|
*
|
||||||
|
* @return The amount of words that needed RTLifying.
|
||||||
|
*/
|
||||||
|
native int RTLify(char[] dest, int destLen, const char[] original);
|
||||||
|
|
||||||
|
public SharedPlugin __pl_rtler =
|
||||||
|
{
|
||||||
|
name = "rtler",
|
||||||
|
file = "rtler.smx",
|
||||||
|
#if defined REQUIRE_PLUGIN
|
||||||
|
required = 1,
|
||||||
|
#else
|
||||||
|
required = 0,
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
public void __pl_rtler_SetNTVOptional()
|
||||||
|
{
|
||||||
|
MarkNativeAsOptional("RTLify");
|
||||||
|
}
|
||||||
@ -26,11 +26,18 @@
|
|||||||
#undef REQUIRE_PLUGIN
|
#undef REQUIRE_PLUGIN
|
||||||
#define USES_CHAT_COLORS
|
#define USES_CHAT_COLORS
|
||||||
#include <shavit>
|
#include <shavit>
|
||||||
|
#include <rtler>
|
||||||
|
|
||||||
|
#pragma newdecls required
|
||||||
|
#pragma semicolon 1
|
||||||
|
|
||||||
// database
|
// database
|
||||||
Database gH_SQL = null;
|
Database gH_SQL = null;
|
||||||
char gS_MySQLPrefix[32];
|
char gS_MySQLPrefix[32];
|
||||||
|
|
||||||
|
// modules
|
||||||
|
bool gB_RTLer = false;
|
||||||
|
|
||||||
// cache
|
// cache
|
||||||
EngineVersion gEV_Type = Engine_Unknown;
|
EngineVersion gEV_Type = Engine_Unknown;
|
||||||
|
|
||||||
@ -51,6 +58,11 @@ public Plugin myinfo =
|
|||||||
url = "https://github.com/shavitush/bhoptimer"
|
url = "https://github.com/shavitush/bhoptimer"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnAllPluginsLoaded()
|
||||||
|
{
|
||||||
|
gB_RTLer = LibraryExists("rtler");
|
||||||
|
}
|
||||||
|
|
||||||
public void OnPluginStart()
|
public void OnPluginStart()
|
||||||
{
|
{
|
||||||
gEV_Type = GetEngineVersion();
|
gEV_Type = GetEngineVersion();
|
||||||
@ -131,6 +143,22 @@ void SQL_SetPrefix()
|
|||||||
delete fFile;
|
delete fFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnLibraryAdded(const char[] name)
|
||||||
|
{
|
||||||
|
if(StrEqual(name, "rtler"))
|
||||||
|
{
|
||||||
|
gB_RTLer = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnLibraryRemoved(const char[] name)
|
||||||
|
{
|
||||||
|
if(StrEqual(name, "rtler"))
|
||||||
|
{
|
||||||
|
gB_RTLer = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void OnClientDisconnect(int client)
|
public void OnClientDisconnect(int client)
|
||||||
{
|
{
|
||||||
gB_AllowCustom[client] = false;
|
gB_AllowCustom[client] = false;
|
||||||
@ -294,7 +322,7 @@ public Action Command_CCList(int client, int args)
|
|||||||
{
|
{
|
||||||
if(gB_AllowCustom[i])
|
if(gB_AllowCustom[i])
|
||||||
{
|
{
|
||||||
PrintToConsole(client, "%N (%d/%d) (name: \"%s\"; message: \"%s\")", i, i, GetClientUserId(i), gS_CustomName[i], gS_CustomMessage[i])
|
PrintToConsole(client, "%N (%d/%d) (name: \"%s\"; message: \"%s\")", i, i, GetClientUserId(i), gS_CustomName[i], gS_CustomMessage[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -324,8 +352,20 @@ public Action CP_OnChatMessage(int &author, ArrayList recipients, char[] flagstr
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(gB_MessageEnabled[author] && strlen(gS_CustomMessage[author]) > 0)
|
if(gB_MessageEnabled[author] && strlen(gS_CustomMessage[author]) > 0)
|
||||||
|
{
|
||||||
|
char[] sTemp = new char[MAXLENGTH_MESSAGE];
|
||||||
|
|
||||||
|
// proper colors with rtler
|
||||||
|
if(gB_RTLer && RTLify(sTemp, MAXLENGTH_MESSAGE, message))
|
||||||
|
{
|
||||||
|
Format(message, MAXLENGTH_MESSAGE, "%s%s", message, gS_CustomMessage[author]);
|
||||||
|
}
|
||||||
|
|
||||||
|
else
|
||||||
{
|
{
|
||||||
Format(message, MAXLENGTH_MESSAGE, "%s%s", gS_CustomMessage[author], message);
|
Format(message, MAXLENGTH_MESSAGE, "%s%s", gS_CustomMessage[author], message);
|
||||||
|
}
|
||||||
|
|
||||||
FormatRandom(message, MAXLENGTH_MESSAGE);
|
FormatRandom(message, MAXLENGTH_MESSAGE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1346,7 +1346,6 @@ public void OnClientPutInServer(int client)
|
|||||||
gB_Auto[client] = true;
|
gB_Auto[client] = true;
|
||||||
gB_DoubleSteps[client] = false;
|
gB_DoubleSteps[client] = false;
|
||||||
gF_StrafeWarning[client] = 0.0;
|
gF_StrafeWarning[client] = 0.0;
|
||||||
gBS_Style[client] = 0;
|
|
||||||
gB_PracticeMode[client] = false;
|
gB_PracticeMode[client] = false;
|
||||||
gI_SHSW_FirstCombination[client] = -1;
|
gI_SHSW_FirstCombination[client] = -1;
|
||||||
gI_Track[client] = 0;
|
gI_Track[client] = 0;
|
||||||
@ -1358,13 +1357,13 @@ public void OnClientPutInServer(int client)
|
|||||||
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBS_Style[client] = 0;
|
|
||||||
|
|
||||||
UpdateAutoBhop(client);
|
UpdateAutoBhop(client);
|
||||||
UpdateAiraccelerate(client);
|
UpdateAiraccelerate(client);
|
||||||
UpdateBunnyhopping(client);
|
UpdateBunnyhopping(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gBS_Style[client] = 0;
|
||||||
|
|
||||||
if(gH_SQL == null)
|
if(gH_SQL == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user