Jump to content
  • Chmurka
  • Boróweczka
  • Jabłuszko
  • Limonka
  • Czekoladka
  • Węgielek

Recommended Posts

Witam, napotkałem problem z prefixem na serwerze nie działa to tak jak powinno. Chodzi o to że publiczny czat dział dobrze, ale teamowy już nie. Możecie zobaczyć w kodzie co jest nie tak i podpowiedzieć mi co mam poprawić. 

KLIKNIJ:

 


 
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;

}

 

Z góry za odpowiedzi dzięki!

prefix-3-.png

prefix-4-.png

prefix-5-.png

Share this post


Link to post
Share on other sites
6 godzin temu, DajK napisał:

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);

%s odnosi się do GraczJestAdminem(client);
następne %s odnosi się do GraczJestVipem(client)
%N odnosi się do GraczJestWlascicielem(client) ? Raczej na 100% powinno się odnosić do "client"
no i ostatnie %s odnosi się do GetClientTeam(client); Tutaj powinno odnosić się do wiadomości.

Masz jeszcze nie wykorzystane 2 argumenty(chyba tak się na to mówi, nie pamiętam), a mianowicie client i buffer

 

CPrintToChat(i, "{orchid}(team say) %s%s%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);


 

  • Lubię to! 1

Share this post


Link to post
Share on other sites

Wiadomość wygenerowana automatycznie

 

Temat został zamknięty. Powodem jest całkowite rozwiązanie problemu zawartego w temacie.

 

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

Nasza historia

Na początku byliśmy małą grupą internetowych znajomych, którzy stwierdzili, że potrzebne jest solidne forum, na którym znajdą się ludzie z dużą wiedzą programistyczną ukierunkowaną na CS:GO. Pomysł powstał na początku 2018 roku, a parę miesięcy później, 19 kwietnia, powstała ta strona internetowa. Jako alternatywna odpowiedź na inne tego typu miejsca, poważnie podeszliśmy do tematu, najpierw tłumacząc angielską dokumentację SourceMod'a na język polski, a potem pisząc rozległe poradniki i wypełniając forum najpotrzebniejszymi rzeczami dla właścicieli serwerów i programistów. Cała nasza Ekipa jest dumna z pracy jaką w to włożyliśmy i cieszymy się że zbierają się wokół nas zarówno ludzie znający tematy sourcepawn'a i konfiguracji, jak i również nowe twarze w tym "biznesie", którym z chęcią niesiemy wiedzę oraz pomoc w rozwiązywaniu problemów.

Największe modyfikacje serwerowe

×
×
  • Create New...