vio_line
Участник
- Сообщения
- 44
- Реакции
- 8
Здравствуйте. Нужна помощь в небольшом исправлении плагина.
Сам плагин полностью рабочий. Суть модуля, в вынесении звания клантегом в таблице счета.
Клантег пишется в квадратных скобках [Silver Elite].
Очень нужно чтобы никаких скобок не было.
Пожалуйста помогите исправить.
Оффтоп
Сам плагин полностью рабочий. Суть модуля, в вынесении звания клантегом в таблице счета.
Клантег пишется в квадратных скобках [Silver Elite].
Очень нужно чтобы никаких скобок не было.
Пожалуйста помогите исправить.
Оффтоп
C-подобный:
#pragma semicolon 1
#include <cstrike>
#include <clientprefs>
#define PLUGIN_MAINNAME "[Levels Ranks] Module - RankTag"
#define PLUGIN_NAME "Levels Ranks"
#define PLUGIN_AUTHOR "RoadSide Romeo"
#define PLUGIN_VERSION "v1.1.0"
#define MAX_COUNTS 64
#define MAX_LENGTH 192
#define DEFAULT "\x01"
#define RED "\x02"
#define GREEN "\x04"
#define LIME "\x05"
#define ORANGE "\x10"
#define PURPLE "\x0E"
#include "include/levels_ranks/new_incsyn_levels.inc"
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
int RankTagOffOn[MAXPLAYERS+1] = 1,
g_iRank[MAXPLAYERS+1] = 0;
Ranks_Count = 0;
char RankTagPrefix[MAX_COUNTS][MAX_LENGTH];
Handle g_hRankTag = null;
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////
public Plugin myinfo = {name = PLUGIN_MAINNAME, author = PLUGIN_AUTHOR, version = PLUGIN_VERSION}
public void OnPluginStart()
{
if(LR_CoreIsStarted()) LR_Started();
}
void LR_Started()
{
HookEvent("player_spawn", PlayerSpawn);
g_hRankTag = RegClientCookie("LR_Module_RankTag", "LR_Module_RankTag", CookieAccess_Private);
LoadTranslations("levels_ranks_ranktag.phrases");
for(int client = 1; client <= MaxClients; client++)
{
if(IsClientInGame(client))
{
if(AreClientCookiesCached(client))
{
OnClientCookiesCached(client);
}
}
}
}
public void OnMapStart()
{
char buffer[PLATFORM_MAX_PATH];
if(!FileExists(buffer))
{
BuildPath(Path_SM, buffer, sizeof(buffer), "configs/levels_ranks/ranktag.ini");
if(!FileExists(buffer))
{
LogError("Levels Ranks: фатальная ошибка - \"%s\" файл не был загружен", buffer);
SetFailState("Levels Ranks: фатальная ошибка - \"%s\" файл не был загружен", buffer);
}
}
Handle kv_ranktag = CreateKeyValues("RankTag");
FileToKeyValues(kv_ranktag, buffer);
if(!KvGotoFirstSubKey(kv_ranktag))
{
LogError("Levels Ranks: %s файл некорректен, поправьте его", buffer);
SetFailState("Levels Ranks: %s файл некорректен, поправьте его", buffer);
delete(kv_ranktag);
}
char clantag[MAX_COUNTS];
Ranks_Count = 0;
do
{
if(KvGetString(kv_ranktag, "clantag", clantag, sizeof(clantag)))
{
strcopy(RankTagPrefix[Ranks_Count], sizeof(RankTagPrefix[]), clantag);
Ranks_Count++;
}
else
{
LogError("Levels Ranks: данные о клантегах указаны некорректно ");
SetFailState("Levels Ranks: данные о клантегах указаны некорректно");
}
}
while (KvGotoNextKey(kv_ranktag));
delete(kv_ranktag);
}
public void PlayerSpawn(Handle event, char[] name, bool dontBroadcast)
{
int client = GetClientOfUserId(GetEventInt(event, "userid"));
if(RankTagOffOn[client] == 1)
{
char text[128];
g_iRank[client] = LR_GetClientRankLevel(client);
Format(text, sizeof(text), "[%s]", RankTagPrefix[g_iRank[client]]);
CS_SetClientClanTag(client, text);
}
}
public LR_OnMenuCreated(client, &Handle:hMenu)
{
char text[64];
SetGlobalTransTarget(client);
if(RankTagOffOn[client] == 0)
{
FormatEx(text, sizeof(text), "%t", "RankTagOn");
AddMenuItem(hMenu, "RankTag", text);
}
else
{
FormatEx(text, sizeof(text), "%t", "RankTagOff");
AddMenuItem(hMenu, "RankTag", text);
}
}
public LR_OnMenuItemSelected(client, const String:sInfo[])
{
if(strcmp(sInfo, "RankTag") == 0)
{
if(RankTagOffOn[client] == 0)
{
char text[128];
RankTagOffOn[client] = 1;
g_iRank[client] = LR_GetClientRankLevel(client);
Format(text, sizeof(text), "[%s]", RankTagPrefix[g_iRank[client]]);
CS_SetClientClanTag(client, text);
}
else
{
RankTagOffOn[client] = 0;
CS_SetClientClanTag(client, "");
}
}
}
public void OnClientCookiesCached(int client)
{
char SaveString[100];
GetClientCookie(client, g_hRankTag, SaveString, sizeof(SaveString));
RankTagOffOn[client] = StringToInt(SaveString);
}
public void OnClientDisconnect(int client)
{
if(AreClientCookiesCached(client))
{
char SaveString[15];
Format(SaveString, sizeof(SaveString), "%i", RankTagOffOn[client]);
SetClientCookie(client, g_hRankTag, SaveString);
}
}
public void OnPluginEnd()
{
for(int client = 1; client <= MaxClients; client++)
{
if(IsClientInGame(client))
{
OnClientDisconnect(client);
}
}
}