Team_Tag

D1fox

Просто люблю чай
Сообщения
902
Реакции
212
Нужно сделать так что бы тег можно было давать для т/кт отдельно, а не всем
C-подобный:
    if
    {
        HookEvent("player_team", change_clantag);
        isEnable = CreateConVar("custom_clantag_enable", "1", "Is plugin enabled");
        baseFlag = CreateConVar("custom_clantag_base", "PLAYER", "Clan tag to be set for other players");
    }
}

public Action change_clantag(Event event, const char[] name, bool dontBroadcast)
{
    if (!GetConVarBool(isEnable)) return;
   
    int client = GetClientOfUserId(GetEventInt(event, "userid"));
    char tag[128];
   
    if
        GetConVarString(baseFlag, tag, sizeof(tag));
       
    CS_SetClientClanTag(client, tag);
}
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,569
Реакции
5,071
C-подобный:
#include <cstrike>

bool
    bEnable;
char
    sTeamtag[2][MAX_NAME_LENGTH];

public void OnPluginStart()
{
    ConVar cvar;
    cvar = CreateConVar("sm_teamtag_enable", "0", "On/Off set team-dependent clantag", _, true, _, true, 1.0);
    cvar.AddChangeHook(CVarChanged_Enable);
    CVarChanged_Enable(cvar, NULL_STRING, NULL_STRING);

    cvar = CreateConVar("sm_teamtag_t", "Ter", "Clantag for terorrists team", FCVAR_PRINTABLEONLY);
    cvar.AddChangeHook(CVarChanged_TagT);
    CVarChanged_TagT(cvar, NULL_STRING, NULL_STRING);

    cvar = CreateConVar("sm_teamtag_ct", "Ct", "Clantag for counter-terorrists team", FCVAR_PRINTABLEONLY);
    cvar.AddChangeHook(CVarChanged_TagCt);
    CVarChanged_TagCt(cvar, NULL_STRING, NULL_STRING);
}

public void CVarChanged_Enable(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    bEnable = cvar.BoolValue;
    static bool hooked;
    if(bEnable == hooked) return;

    if((hooked = !hooked))
    {
        HookEvent("player_team", Event_Team);
        for(int i = 1, t; i <= MaxClients; i++) if(IsClientInGame(i))
            CS_SetClientClanTag(i, (t = GetClientTeam(i)) < CS_TEAM_T ? "" : sTeamtag[t-2]);
    }
    else
    {
        UnhookEvent("player_team", Event_Team);
        for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && GetClientTeam(i) > CS_TEAM_SPECTATOR)
            CS_SetClientClanTag(i, "");
    }
}

public void CVarChanged_TagT(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    cvar.GetString(sTeamtag[0], sizeof(sTeamtag[]));
    if(!bEnable) return;

    for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && GetClientTeam(i) == CS_TEAM_T)
        CS_SetClientClanTag(i, sTeamtag[0]);
}

public void CVarChanged_TagCt(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    cvar.GetString(sTeamtag[1], sizeof(sTeamtag[]));
    if(!bEnable) return;

    for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && GetClientTeam(i) == CS_TEAM_CT)
        CS_SetClientClanTag(i, sTeamtag[1]);
}

public void Event_Team(Event event, const char[] name, bool dontBroadcast)
{
    if(!event.GetInt("disconnect")) return;

    static int client, team;
    if((client = GetClientOfUserId(event.GetInt("userid"))))
        CS_SetClientClanTag(client, (team = event.GetInt("team")) < CS_TEAM_T ? "" : sTeamtag[team-2]);
}
 

D1fox

Просто люблю чай
Сообщения
902
Реакции
212
C-подобный:
#include <cstrike>

bool
    bEnable;
char
    sTeamtag[2][MAX_NAME_LENGTH];

public void OnPluginStart()
{
    ConVar cvar;
    cvar = CreateConVar("sm_teamtag_enable", "0", "On/Off set team-dependent clantag", _, true, _, true, 1.0);
    cvar.AddChangeHook(CVarChanged_Enable);
    CVarChanged_Enable(cvar, NULL_STRING, NULL_STRING);

    cvar = CreateConVar("sm_teamtag_t", "Ter", "Clantag for terorrists team", FCVAR_PRINTABLEONLY);
    cvar.AddChangeHook(CVarChanged_TagT);
    CVarChanged_TagT(cvar, NULL_STRING, NULL_STRING);

    cvar = CreateConVar("sm_teamtag_ct", "Ct", "Clantag for counter-terorrists team", FCVAR_PRINTABLEONLY);
    cvar.AddChangeHook(CVarChanged_TagCt);
    CVarChanged_TagCt(cvar, NULL_STRING, NULL_STRING);
}

public void CVarChanged_Enable(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    bEnable = cvar.BoolValue;
    static bool hooked;
    if(bEnable == hooked) return;

    if((hooked = !hooked))
    {
        HookEvent("player_team", Event_Team);
        for(int i = 1, t; i <= MaxClients; i++) if(IsClientInGame(i))
            CS_SetClientClanTag(i, (t = GetClientTeam(i)) < CS_TEAM_T ? "" : sTeamtag[t-2]);
    }
    else
    {
        UnhookEvent("player_team", Event_Team);
        for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && GetClientTeam(i) > CS_TEAM_SPECTATOR)
            CS_SetClientClanTag(i, "");
    }
}

public void CVarChanged_TagT(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    cvar.GetString(sTeamtag[0], sizeof(sTeamtag[]));
    if(!bEnable) return;

    for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && GetClientTeam(i) == CS_TEAM_T)
        CS_SetClientClanTag(i, sTeamtag[0]);
}

public void CVarChanged_TagCt(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    cvar.GetString(sTeamtag[1], sizeof(sTeamtag[]));
    if(!bEnable) return;

    for(int i = 1; i <= MaxClients; i++) if(IsClientInGame(i) && GetClientTeam(i) == CS_TEAM_CT)
        CS_SetClientClanTag(i, sTeamtag[1]);
}

public void Event_Team(Event event, const char[] name, bool dontBroadcast)
{
    if(!event.GetInt("disconnect")) return;

    static int client, team;
    if((client = GetClientOfUserId(event.GetInt("userid"))))
        CS_SetClientClanTag(client, (team = event.GetInt("team")) < CS_TEAM_T ? "" : sTeamtag[team-2]);
}
Могу сказать одно, спасибо за быструю отзывчивость:)
 
Сверху Снизу