mirror of
https://github.com/shavitush/bhoptimer.git
synced 2025-12-07 10:28:26 +00:00
Added {points} variable to chat titles.
Also extended the display text's limitations.
This commit is contained in:
parent
61cf6e09ba
commit
3f3f9c3c0b
@ -1,5 +1,5 @@
|
||||
// Available settings:
|
||||
// "ranks" - inclusive rank range. (i.e. 1, 2, 10-19 or 0.0%-0.5%). Use a percent sign to use a percentile of total players.
|
||||
// "ranks" - inclusive rank range. (i.e. 1, 2, 10-19 or 0.0%-0.5%). Use a percent sign to use a percentile of total players. Add "p" as a prefix to use points instead of ranks, don't specify a range for points if you only want a minimum to unlock the title.
|
||||
// "name" - custom name appearance. Default: "{name}"
|
||||
// "message" - a prefix to the message itself. Default: ""
|
||||
// "display" - display text in the !chatranks menu. "<n>" for a new line. Filling this is required.
|
||||
@ -31,41 +31,49 @@
|
||||
|
||||
"1"
|
||||
{
|
||||
"ranks" "1"
|
||||
"name" "{rand}ONE TRUE GOD {team}{name}"
|
||||
"message" "{rand}"
|
||||
"display" "[ONE TRUE GOD]<n>A title awarded only to the very best players."
|
||||
"ranks" "p10000"
|
||||
"free" "0"
|
||||
"name" "{rand}10k! {team}{name}"
|
||||
"display" "10k Challenger<n>You are insane. You are a hero. You are a challenger.<n>A title awarded to the magnificent players who achieve 10,000 points."
|
||||
}
|
||||
|
||||
"2"
|
||||
{
|
||||
"ranks" "1"
|
||||
"name" "{rand}ONE TRUE GOD {team}{name}"
|
||||
"message" "{rand}"
|
||||
"display" "[ONE TRUE GOD]<n>A title awarded only to the very best players."
|
||||
}
|
||||
|
||||
"3"
|
||||
{
|
||||
"ranks" "2"
|
||||
"name" "{green}LEGENDARY {name}"
|
||||
"display" "[LEGENDARY]<n>A title obtained by legendary players."
|
||||
}
|
||||
|
||||
"3"
|
||||
"4"
|
||||
{
|
||||
"ranks" "3"
|
||||
"name" "{green}HERO {team}{name}"
|
||||
"display" "[HERO]<n>You're a hero, and you deserve this title."
|
||||
}
|
||||
|
||||
"4"
|
||||
"5"
|
||||
{
|
||||
"ranks" "4-10"
|
||||
"name" "{rand}scrub{rand}! {name}"
|
||||
"display" "scrub!<n>You're a noob."
|
||||
}
|
||||
|
||||
"5"
|
||||
"6"
|
||||
{
|
||||
"ranks" "11-100%"
|
||||
"name" ":( {name}"
|
||||
"display" "sad face<n>You're terrible. Get good!"
|
||||
}
|
||||
|
||||
"6"
|
||||
"7"
|
||||
{
|
||||
"free" "1"
|
||||
"name" "{rand}:) {name}"
|
||||
|
||||
@ -34,20 +34,21 @@
|
||||
|
||||
enum ChatRanksCache
|
||||
{
|
||||
iCRRangeType, // 0 - flat, 1 - percent
|
||||
iCRRangeType, // 0 - flat, 1 - percent, 2 - point range
|
||||
Float:fCRFrom,
|
||||
Float:fCRTo,
|
||||
bool:bCRFree,
|
||||
String:sCRName[MAXLENGTH_NAME],
|
||||
String:sCRMessage[MAXLENGTH_MESSAGE],
|
||||
String:sCRDisplay[128],
|
||||
String:sCRDisplay[192],
|
||||
CRCACHE_SIZE
|
||||
}
|
||||
|
||||
enum
|
||||
{
|
||||
Rank_Flat,
|
||||
Rank_Percentage
|
||||
Rank_Percentage,
|
||||
Rank_Points
|
||||
}
|
||||
|
||||
#pragma newdecls required
|
||||
@ -181,7 +182,17 @@ bool LoadChatConfig()
|
||||
char[] sRanks = new char[32];
|
||||
kv.GetString("ranks", sRanks, MAXLENGTH_NAME, "0");
|
||||
|
||||
aChatTitle[iCRRangeType] = (StrContains(sRanks, "%%") == -1)? Rank_Flat:Rank_Percentage;
|
||||
if(sRanks[0] == 'p')
|
||||
{
|
||||
aChatTitle[iCRRangeType] = Rank_Points;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
aChatTitle[iCRRangeType] = (StrContains(sRanks, "%%") == -1)? Rank_Flat:Rank_Percentage;
|
||||
}
|
||||
|
||||
ReplaceString(sRanks, 32, "p", "");
|
||||
ReplaceString(sRanks, 32, "%%", "");
|
||||
|
||||
if(StrContains(sRanks, "-") != -1)
|
||||
@ -197,14 +208,14 @@ bool LoadChatConfig()
|
||||
float fRank = StringToFloat(sRanks);
|
||||
|
||||
aChatTitle[fCRFrom] = fRank;
|
||||
aChatTitle[fCRTo] = fRank;
|
||||
aChatTitle[fCRTo] = (aChatTitle[iCRRangeType] != Rank_Points)? fRank:2147483648.0;
|
||||
}
|
||||
|
||||
aChatTitle[bCRFree] = view_as<bool>(kv.GetNum("free", false));
|
||||
|
||||
kv.GetString("name", aChatTitle[sCRName], MAXLENGTH_NAME, "{name}");
|
||||
kv.GetString("message", aChatTitle[sCRMessage], MAXLENGTH_MESSAGE, "");
|
||||
kv.GetString("display", aChatTitle[sCRDisplay], 128, "");
|
||||
kv.GetString("display", aChatTitle[sCRDisplay], 192, "");
|
||||
|
||||
if(strlen(aChatTitle[sCRDisplay]) > 0)
|
||||
{
|
||||
@ -577,11 +588,11 @@ bool HasRankAccess(int client, int rank)
|
||||
return false;
|
||||
}
|
||||
|
||||
int iRank = Shavit_GetRank(client);
|
||||
float fRank = (aCache[iCRRangeType] != Rank_Points)? float(Shavit_GetRank(client)):Shavit_GetPoints(client);
|
||||
|
||||
if(aCache[iCRRangeType] == Rank_Flat)
|
||||
if(aCache[iCRRangeType] == Rank_Flat || aCache[iCRRangeType] == Rank_Points)
|
||||
{
|
||||
if(aCache[fCRFrom] <= iRank <= aCache[fCRTo])
|
||||
if(aCache[fCRFrom] <= fRank <= aCache[fCRTo])
|
||||
{
|
||||
return true;
|
||||
}
|
||||
@ -597,7 +608,7 @@ bool HasRankAccess(int client, int rank)
|
||||
iRanked = 1;
|
||||
}
|
||||
|
||||
float fPercentile = (float(iRank) / iRanked) * 100.0;
|
||||
float fPercentile = (fRank / iRanked) * 100.0;
|
||||
|
||||
if(aCache[fCRFrom] <= fPercentile <= aCache[fCRTo])
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user