Skocz do zawartości
DajK

[Brak rozwiązania] Problem w pluginie z prefixem - team say

Rekomendowane odpowiedzi

Witam, napotkałem się z problemem takim, że wiadomości [ADMIN], [VIP], [WŁAŚCICIEL] działają na chacie publicznym, ale na teamowym już nie do końca. Wydaję mi się, że mam wszystko dobrze, lecz proszę o porady co do kodu.

Wysyłam kod: 

Spoiler
#include <sourcemod>

#include <multicolors>

#include <cstrike>



// CS_TEAM_T

// CS_TEAM_CT




//{"{default}", "{darkred}", "{green}", "{lightgreen}", "{red}", "{blue}", "{olive}", "{lime}", "{lightred}", "{purple}", "{grey}", "{yellow}", "{orange}", "{bluegrey}", "{lightblue}", "{darkblue}", "{grey2}", "{orchid}", "{lightred2}"};



char prefix[][] = {

    "{darkred}[WŁAŚCICIEL]",

    "{darkblue}[ADMIN]",

    "{purple}[VIP]"

};



int flaga[] = {

    ADMFLAG_ROOT,

    ADMFLAG_BAN,

    ADMFLAG_CUSTOM1

}



public void OnPluginStart() {

    RegConsoleCmd("say", ProcessChat);

    RegConsoleCmd("say_team", ProcessChat_Team);

}



public Action ProcessChat(int client, int args) {

    char buffer[512];

    GetCmdArgString(buffer, sizeof(buffer));

    StripQuotes(buffer);

    if (strlen(buffer) == 0)    return Plugin_Handled;

    if (buffer[0] == '/' || buffer[0] == '!' || buffer[0] == '@')   return Plugin_Handled;



    char prefixBuffer[64];

    Format(prefixBuffer, sizeof(prefixBuffer), "");



    for (int i = 0; i < sizeof(prefix); i++) {

        if (GetUserFlagBits(client) & flaga) {

            Format(prefixBuffer, sizeof(prefixBuffer), "%s", prefix);

            break;

        }

 

    }

 

    CPrintToChatAll("%s%s%N{default}: %s", prefixBuffer, GetClientTeam(client) == CS_TEAM_T ? "{orange}" : "{orange}", client, buffer);

 

    return Plugin_Handled;

}

 

public Action ProcessChat_Team(int client, int args) {

    char buffer[512];

    GetCmdArgString(buffer, sizeof(buffer));

    StripQuotes(buffer);

    if (strlen(buffer) == 0)    return Plugin_Handled;

    if (buffer[0] == '/' || buffer[0] == '!' || buffer[0] == '@')   return Plugin_Handled;

 

    for (int i = 1; i < MAXPLAYERS; i++) {

        if (IsValidClient(i) && GetClientTeam(i) == GetClientTeam(client))

            CPrintToChat(i, "{orchid}(team say) %s%s%N{default}: %s", GraczJestAdminem(client) ? "{darkblue}[ADMIN] " : "", GraczJestVipem(client) ? "{purple}[VIP] " : "", GraczJestWlascicielem(client) ? "{darkred}[WŁAŚCICIEL] " : "", GetClientTeam(client) == CS_TEAM_T ? "{lightred}" : "{lightblue}", client, buffer);

 

    }

 

    return Plugin_Handled;

}

 

bool GraczJestAdminem(int client) {

    if (GetUserFlagBits(client) & ADMFLAG_BAN)  return true;

 

    return false;

}

 

bool GraczJestVipem(int client) {

    if (GetUserFlagBits(client) & ADMFLAG_CUSTOM1)  return true;

 

    return false;

}

 

bool GraczJestWlascicielem(int client) {

    if (GetUserFlagBits(client) & ADMFLAG_ROOT) return true;

 

    return false;

}

 

public bool IsValidClient(int client) {

  if (client >= 1 && client <= MaxClients && IsClientInGame(client))

    return true;

 

  return false;

}

 

prefix-4-.png.edc4f44e123f73f0d2263c2041e31a2d.png
prefix-3-.png.692ec8ae84488f3322e3aebefc199a40.png
prefix-5-.png.4a1eaeb451d86adbcae8b30932593343.png

prefix-3-.png

prefix-5-.png

Przez Vasto_Lorde,

Pamiętaj o wstawianiu kodu w tagi [code], a jeśli jest długi, to wstawiaj go również w tag [spoiler]. Poprawiam temat ^^

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Wiadomość wygenerowana automatycznie

 

Temat został zamknięty i przeniesiony do działu "Przestarzałe tematy". Powodem jest brak rozwiązania problemu zawartego w temacie lub brak zainteresowania autora w jego rozwiązaniu.

 

Jeśli się z tym nie zgadzasz, zaraportuj ten post z prośbą o ponowne otwarcie i kontynuację dyskusji.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

×
×
  • Dodaj nową pozycję...