added racetimer lvl display and colour display to tiers
This commit is contained in:
parent
8f4e205db0
commit
55f573db8d
@ -3,21 +3,31 @@
|
|||||||
#include <json>
|
#include <json>
|
||||||
#include <ccc>
|
#include <ccc>
|
||||||
#include <cstrike>
|
#include <cstrike>
|
||||||
|
#include <unloze_playtime>
|
||||||
|
|
||||||
public Plugin myinfo =
|
public Plugin myinfo =
|
||||||
{
|
{
|
||||||
name = "Racetimer Rank",
|
name = "Racetimer Rank",
|
||||||
author = "jenz",
|
author = "jenz",
|
||||||
description = "Give racetimer points as a level clan tag to players, also for chat tag",
|
description = "Give racetimer points as a level clan tag to players, also for chat tag",
|
||||||
version = "1.1",
|
version = "1.2",
|
||||||
url = ""
|
url = ""
|
||||||
};
|
};
|
||||||
|
|
||||||
bool g_b_ignoring_tags[MAXPLAYERS + 1];
|
bool g_b_ignoring_tags[MAXPLAYERS + 1];
|
||||||
Database g_hDatabase;
|
Database g_hDatabase;
|
||||||
|
ConVar g_Cvar_TierChatLVL;
|
||||||
|
ConVar g_Cvar_TierChatLVLMultiColor;
|
||||||
|
ConVar g_Cvar_TierChatLVLAllColor;
|
||||||
|
ConVar g_Cvar_TierClanLVL;
|
||||||
|
|
||||||
public void OnPluginStart()
|
public void OnPluginStart()
|
||||||
{
|
{
|
||||||
|
g_Cvar_TierClanLVL = CreateConVar("sm_display_lvl_clan", "5", "Tier required to display your LVL as clan tag");
|
||||||
|
g_Cvar_TierChatLVL = CreateConVar("sm_display_lvl_chat", "8", "Tier required to display your LVL in chat");
|
||||||
|
g_Cvar_TierChatLVLMultiColor = CreateConVar("sm_display_lvl_chat_multi_colour", "10", "Tier required to display your LVL with multi colours");
|
||||||
|
g_Cvar_TierChatLVLAllColor = CreateConVar("sm_display_lvl_chat_all_colour", "12", "Tier required to display your LVL with all possible colour combinations");
|
||||||
|
|
||||||
RegConsoleCmd("sm_lvl", Command_LvTag, "Turns the Lv. tag feature on or off");
|
RegConsoleCmd("sm_lvl", Command_LvTag, "Turns the Lv. tag feature on or off");
|
||||||
if (!g_hDatabase)
|
if (!g_hDatabase)
|
||||||
{
|
{
|
||||||
@ -28,9 +38,10 @@ public void OnPluginStart()
|
|||||||
{
|
{
|
||||||
if(IsClientInGame(client))
|
if(IsClientInGame(client))
|
||||||
{
|
{
|
||||||
OnClientPostAdminFilter(client);
|
OnClientPostAdminCheck(client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnMapStart()
|
public void OnMapStart()
|
||||||
@ -55,7 +66,7 @@ public void SQL_OnDatabaseConnect(Database db, const char[] error, any data)
|
|||||||
{
|
{
|
||||||
if(IsClientInGame(client))
|
if(IsClientInGame(client))
|
||||||
{
|
{
|
||||||
OnClientPostAdminFilter(client);
|
OnClientPostAdminCheck(client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -66,6 +77,15 @@ public Action Command_LvTag(int client, int args)
|
|||||||
{
|
{
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int tier_required = GetConVarInt(g_Cvar_TierClanLVL);
|
||||||
|
int client_tier = GetPlayerTier_native(client);
|
||||||
|
if (tier_required > client_tier)
|
||||||
|
{
|
||||||
|
PrintToChat(client, "You are Tier %i and need Tier %i for using this command", client_tier, tier_required);
|
||||||
|
return Plugin_Handled;
|
||||||
|
}
|
||||||
|
|
||||||
//i am only adding this shit because lighty wanted it to be turn-off able, after half a year probably only 7 people will have made use of it.
|
//i am only adding this shit because lighty wanted it to be turn-off able, after half a year probably only 7 people will have made use of it.
|
||||||
//kinda hate wasting time on pointless stuff like this.
|
//kinda hate wasting time on pointless stuff like this.
|
||||||
char sSID[64];
|
char sSID[64];
|
||||||
@ -107,7 +127,7 @@ public void SQL_FinishedQuery(Database db, DBResultSet results, const char[] err
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
PrintToChat(client, "Now displaying LVL tag again.");
|
PrintToChat(client, "Now displaying LVL tag again.");
|
||||||
OnClientPostAdminFilter(client);
|
OnClientPostAdminCheck(client);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -116,20 +136,18 @@ public void OnClientDisconnect(int client)
|
|||||||
g_b_ignoring_tags[client] = false;
|
g_b_ignoring_tags[client] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnClientPostAdminFilter(int client)
|
public void OnClientPostAdminCheck(int client)
|
||||||
{
|
{
|
||||||
if(!IsClientAuthorized(client) || IsClientSourceTV(client))
|
if(!IsClientAuthorized(client) || IsClientSourceTV(client))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (IsFakeClient(client))
|
if (IsFakeClient(client))
|
||||||
{
|
{
|
||||||
char tag[64];
|
|
||||||
Format(tag, sizeof(tag), "[LVL 1]");
|
|
||||||
CS_SetClientClanTag(client, tag);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
g_b_ignoring_tags[client] = false;
|
g_b_ignoring_tags[client] = false;
|
||||||
|
|
||||||
check_ignoring_tags(client);
|
check_ignoring_tags(client);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -236,19 +254,22 @@ public int OnTransferResponse(char[] sData, int iSerial)
|
|||||||
I_player_points = 1000; //setting level 1
|
I_player_points = 1000; //setting level 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!HasClanTag(client))
|
int tier_required = GetConVarInt(g_Cvar_TierClanLVL);
|
||||||
|
int client_tier = GetPlayerTier_native(client);
|
||||||
|
if (!HasClanTag(client) && client >= tier_required)
|
||||||
{
|
{
|
||||||
char tag[64];
|
char tag[64];
|
||||||
Format(tag, sizeof(tag), "[LVL %i]", I_player_points/1000);
|
Format(tag, sizeof(tag), "[LVL %i]", I_player_points/1000);
|
||||||
CS_SetClientClanTag(client, tag);
|
CS_SetClientClanTag(client, tag);
|
||||||
}
|
}
|
||||||
|
|
||||||
int I_rank = obj.GetInt("Rank") //if no endpoint for steamID default value is -1
|
tier_required = GetConVarInt(g_Cvar_TierChatLVL);
|
||||||
if (0 < I_rank < 1000) //only give chat tag to top 1000
|
client_tier = GetPlayerTier_native(client);
|
||||||
|
if (client_tier >= tier_required)
|
||||||
{
|
{
|
||||||
if (player_has_no_chattag(client))
|
if (player_has_no_chattag(client))
|
||||||
{
|
{
|
||||||
set_level_tag(client, I_player_points/1000, I_rank);
|
set_level_tag(client, I_player_points/1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
json_cleanup_and_delete(obj);
|
json_cleanup_and_delete(obj);
|
||||||
@ -262,7 +283,7 @@ public bool player_has_no_chattag(int client)
|
|||||||
return strlen(tag) < 2;
|
return strlen(tag) < 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void set_level_tag(int client, int lvl, int I_rank)
|
public void set_level_tag(int client, int lvl)
|
||||||
{
|
{
|
||||||
char hexadecimals[16];
|
char hexadecimals[16];
|
||||||
char hexadecimals2[16];
|
char hexadecimals2[16];
|
||||||
@ -271,7 +292,11 @@ public void set_level_tag(int client, int lvl, int I_rank)
|
|||||||
int green = ((lvl + 50) * 13) % 256;
|
int green = ((lvl + 50) * 13) % 256;
|
||||||
int blue = ((lvl + 100) * 19) % 256;
|
int blue = ((lvl + 100) * 19) % 256;
|
||||||
Format(hexadecimals, sizeof(hexadecimals), "%02X%02X%02X", red, green, blue);
|
Format(hexadecimals, sizeof(hexadecimals), "%02X%02X%02X", red, green, blue);
|
||||||
if (I_rank > 250)
|
|
||||||
|
int tier_required = GetConVarInt(g_Cvar_TierChatLVLMultiColor);
|
||||||
|
int client_tier = GetPlayerTier_native(client);
|
||||||
|
//we display LVL with one colour
|
||||||
|
if (client_tier < tier_required)
|
||||||
{
|
{
|
||||||
char tag[64];
|
char tag[64];
|
||||||
Format(tag, sizeof(tag), "[LVL %i] ", lvl);
|
Format(tag, sizeof(tag), "[LVL %i] ", lvl);
|
||||||
@ -279,7 +304,9 @@ public void set_level_tag(int client, int lvl, int I_rank)
|
|||||||
CCC_SetColor(client, CCC_TagColor, StringToInt(hexadecimals, 16), false);
|
CCC_SetColor(client, CCC_TagColor, StringToInt(hexadecimals, 16), false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (I_rank > 50)
|
tier_required = GetConVarInt(g_Cvar_TierChatLVLAllColor);
|
||||||
|
//we display LVL with some of the multi colour combinations
|
||||||
|
if (client_tier < tier_required)
|
||||||
{
|
{
|
||||||
red = (lvl * 27) % 256;
|
red = (lvl * 27) % 256;
|
||||||
green = ((lvl + 50) * 23) % 256;
|
green = ((lvl + 50) * 23) % 256;
|
||||||
@ -312,6 +339,8 @@ public void set_level_tag(int client, int lvl, int I_rank)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//we display LVL with ALL of the multi colour combinations
|
||||||
|
|
||||||
red = (GetRandomInt(0, 255)) % 256;
|
red = (GetRandomInt(0, 255)) % 256;
|
||||||
green = (GetRandomInt(0, 255)) % 256;
|
green = (GetRandomInt(0, 255)) % 256;
|
||||||
blue = (GetRandomInt(0, 255)) % 256;
|
blue = (GetRandomInt(0, 255)) % 256;
|
||||||
|
|||||||
@ -288,8 +288,6 @@ public int Native_GetPlayerWorthRTV_boost(Handle plugin, int numParams)
|
|||||||
return view_as<int>(-1);
|
return view_as<int>(-1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int avg = GetAveragePlayerActiveTimeServer();
|
|
||||||
|
|
||||||
//give vips the rtv/nomination/mapvote boost by default
|
//give vips the rtv/nomination/mapvote boost by default
|
||||||
AdminId id = GetUserAdmin(client);
|
AdminId id = GetUserAdmin(client);
|
||||||
if (id != INVALID_ADMIN_ID && GetAdminFlag(id, Admin_Reservation))
|
if (id != INVALID_ADMIN_ID && GetAdminFlag(id, Admin_Reservation))
|
||||||
@ -303,20 +301,7 @@ public int Native_GetPlayerWorthRTV_boost(Handle plugin, int numParams)
|
|||||||
return g_iPlayerRTVCapacity;
|
return g_iPlayerRTVCapacity;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (g_iPlayerTimeServer[client] <= avg || avg == 0 || is_bot_player[client] || IsFakeClient(client))
|
|
||||||
{
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
if ((float(g_iPlayerTimeServer[client]) / float(avg)) > g_iPlayerRTVCapacity)
|
|
||||||
{
|
|
||||||
return g_iPlayerRTVCapacity; //1.0-5.0 booster probably
|
|
||||||
}
|
|
||||||
int val = RoundToFloor((g_iPlayerTimeServer[client]) / float(avg));
|
|
||||||
if (val < 1)
|
|
||||||
{
|
|
||||||
val = 1;
|
|
||||||
}
|
|
||||||
return val;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnPluginEnd()
|
public void OnPluginEnd()
|
||||||
@ -722,6 +707,18 @@ public void PrintClientGroupOverrides(int client)
|
|||||||
char multi_nomination_tier[32];
|
char multi_nomination_tier[32];
|
||||||
Format(multi_nomination_tier, sizeof(multi_nomination_tier), "tier%i", FindConVar("mce_multiple_nominations_tier").IntValue);
|
Format(multi_nomination_tier, sizeof(multi_nomination_tier), "tier%i", FindConVar("mce_multiple_nominations_tier").IntValue);
|
||||||
|
|
||||||
|
char lvl_chat_tag[32];
|
||||||
|
Format(lvl_chat_tag, sizeof(lvl_chat_tag), "tier%i", FindConVar("sm_display_lvl_chat").IntValue);
|
||||||
|
|
||||||
|
char lvl_clan_tag[32];
|
||||||
|
Format(lvl_clan_tag, sizeof(lvl_clan_tag), "tier%i", FindConVar("sm_display_lvl_clan").IntValue);
|
||||||
|
|
||||||
|
char lvl_chat_tag_multicolour[32];
|
||||||
|
Format(lvl_chat_tag_multicolour, sizeof(lvl_chat_tag_multicolour), "tier%i", FindConVar("sm_display_lvl_chat_multi_colour").IntValue);
|
||||||
|
|
||||||
|
char lvl_chat_tag_allcolour[32];
|
||||||
|
Format(lvl_chat_tag_allcolour, sizeof(lvl_chat_tag_allcolour), "tier%i", FindConVar("sm_display_lvl_chat_all_colour").IntValue);
|
||||||
|
|
||||||
menu.AddItem("-1", "Several tiers: playermodels in !zclass.", ITEMDRAW_DISABLED);
|
menu.AddItem("-1", "Several tiers: playermodels in !zclass.", ITEMDRAW_DISABLED);
|
||||||
menu.AddItem("-1", "Several tiers: grenade skins in !grenadeskins.", ITEMDRAW_DISABLED);
|
menu.AddItem("-1", "Several tiers: grenade skins in !grenadeskins.", ITEMDRAW_DISABLED);
|
||||||
|
|
||||||
@ -746,6 +743,23 @@ public void PrintClientGroupOverrides(int client)
|
|||||||
{
|
{
|
||||||
Format(entry, sizeof(entry), "%s%s: Multiple nominations, ", entry, g_GroupNames[i]);
|
Format(entry, sizeof(entry), "%s%s: Multiple nominations, ", entry, g_GroupNames[i]);
|
||||||
}
|
}
|
||||||
|
if (StrEqual(g_GroupNames[i], lvl_chat_tag))
|
||||||
|
{
|
||||||
|
Format(entry, sizeof(entry), "%s%s: LVL chat tag with one colour, ", entry, g_GroupNames[i]);
|
||||||
|
}
|
||||||
|
if (StrEqual(g_GroupNames[i], lvl_clan_tag))
|
||||||
|
{
|
||||||
|
Format(entry, sizeof(entry), "%s%s: LVL clan tag, ", entry, g_GroupNames[i]);
|
||||||
|
}
|
||||||
|
if (StrEqual(g_GroupNames[i], lvl_chat_tag_multicolour))
|
||||||
|
{
|
||||||
|
Format(entry, sizeof(entry), "%s%s: LVL chat tag with multi colours, ", entry, g_GroupNames[i]);
|
||||||
|
}
|
||||||
|
if (StrEqual(g_GroupNames[i], lvl_chat_tag_allcolour))
|
||||||
|
{
|
||||||
|
Format(entry, sizeof(entry), "%s%s: LVL chat tag with all colours, ", entry, g_GroupNames[i]);
|
||||||
|
}
|
||||||
|
|
||||||
if (g_GroupFlags[i][0] != '\0' && StrEqual(g_GroupFlags[i], "aop"))
|
if (g_GroupFlags[i][0] != '\0' && StrEqual(g_GroupFlags[i], "aop"))
|
||||||
{
|
{
|
||||||
Format(entry, sizeof(entry), "%s%s: VIP, ", entry, g_GroupNames[i]);
|
Format(entry, sizeof(entry), "%s%s: VIP, ", entry, g_GroupNames[i]);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user