Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

Inext

Użytkownik
  • Postów

    7
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez Inext

  1. Spoiler

    #include <sourcemod>
    #include <sdktools>
    #include <cstrike>
    #include <smlib>
    #include <colors>
    #include <sdkhooks>

    int kolejka[10] = -1;

    public Plugin myinfo = 
    {
        name = "Kolejka H&S",
        author = "Inext",
        description = "",
        version = "",
        url = "https://steamcommunity.com/id/IInextt/"
    };
    public void OnPluginStart()
    {
        RegConsoleCmd("sm_szukaj", cmd_szukaj, "Komenda na dolaczenie do drużyny szukających");
        
        RegConsoleCmd("jointeam", JoinTeam);
        
        HookEvent("round_end", event_round_end);
    }
    public Action cmd_szukaj(client, args)
    {
        for(int i = 0; i < 10; i++)
        {
            int pozycja;
            pozycja = i + 1;
            if(kolejka != client)
            {
                if(kolejka <= 0)
                {
                    kolejka = client;
                    CPrintToChat(client, "{green}[H&S] {olive} Zostałeś dodany do kolejki Szukających. Jesteś na %i pozycji.", pozycja);
                    i = 10;
                }
                if(kolejka[9] > 0)
                {
                    CPrintToChat(client, "{green}[H&S] {olive} Aktualnie kolejka do TT jest pełna.");
                    i = 10;
                }
            }
            else
            {
                i = 10;
                CPrintToChat(client, "{green}[H&S] {olive} Dołączyłeś już do kolejki. Jesteś na %i pozycji.", pozycja);
            }
        }
    }
    public Action JoinTeam(client,args)
    {
        new String:s_Team[3];
        GetCmdArg(1, s_Team, sizeof(s_Team));
        new i_Team = StringToInt(s_Team);
        if(i_Team == 2)
        {
            CPrintToChat(client, "{green}[H&S] {olive}Dołaczenie do tej drużyny jest możliwe tylko przy pomocy komendy !szukaj");
            return Plugin_Handled;
        }
        return Plugin_Continue;
    }
    public void OnMapStart()
    {
        
        for(int i = 0; i < 11; i++)
        {
            kolejka = -1;
        }
    }
    public void OnClientPutInServer(client)
    {
        SDKHook(client, SDKHook_PreThink, Prethink);
    }
    public void OnClientDisconnect(int client)
    {
        SDKUnhook(client, SDKHook_PreThink, Prethink);
        
        for(int i = 0; i < 10; i++)
        {
            if(kolejka == client)
            {
                kolejka = -1;
                for(int x = 0; x < (10 - i); x++)
                {
                    kolejka[i+x] = kolejka[i+1+x];
                }
            }
        }
    }
    public Action Prethink(int client)
    {
        PokazKolejkaHud(client);
        return Plugin_Continue;
    }
    public Action event_round_end(Handle event, const char[] name, bool dontBroadcast)
    {
        for (int i; i <= MAXPLAYERS; i++)
        {
            if(IsValidPlayer(i))
            {
                if(GetClientTeam(i) == 2)
                {
                    CS_SwitchTeam(i, 3);
                }
            }
        }
        
        for(int i = 0; i < 10; i++)
        {
            if(IsValidPlayer(kolejka))
            {
                if(GetClientTeam(kolejka) != 2)
                {
                    CS_SwitchTeam(kolejka, 3);
                    CPrintToChat(kolejka, "{green}[H&S] {olive} Zostałeś przeniesiony do TT.");
                    kolejka = -1;
                    for(int x = 0; x < (10 - i); x++)
                    {
                        kolejka[i+x] = kolejka[i+1];
                    }
                    i--;
                }
                else if(GetClientTeam(kolejka) == 2)
                {
                    kolejka = -1;
                    for(int x = 0; x < (10 - i); x++)
                    {
                        kolejka[i+x] = kolejka[i+1+x];
                    }
                    i--;
                }
            }
        }
        
        if(Team_GetClientCount(2) == 0)
        {
            int random = GetRandomPlayer(3); 
            CS_SwitchTeam(random, 2);
            CPrintToChat(random, "{green}[H&S] {olive} Zostałeś przeniesiony do TT.");
        }
    }
    void PokazKolejkaHud(client)
    {
        char text[128];
        if(kolejka[0] > 0)
        {
            char nickGracz[64];
            GetClientName(kolejka[0], nickGracz, sizeof(nickGracz));
            Format(text, sizeof(text), "Nestępny w Kolejce:\n%s", nickGracz);
        }
        else
        {
            Format(text, sizeof(text), "Następny w Kolejce:\nBrak Chętnych");
        }
        SetHudTextParams(0.13, 0.10, 7.0, 45, 209, 0, 255, 0, 0.25, 1.5, 0.5);
        ShowHudText(client, 2, text);
    }
    stock GetRandomPlayer(team) 
    {

        new clients[MaxClients+1], clientCount;
        for (new i = 1; i <= MaxClients; i++)
            if (IsClientInGame(i) && (GetClientTeam(i) == team))
                clients[clientCount++] = i;
        return (clientCount == 0) ? -1 : clients[GetRandomInt(0, clientCount-1)];

    stock bool IsValidPlayer(client)
    {
        if(client >= 1 && client <= MaxClients && IsClientInGame(client) && IsClientConnected(client) && !IsFakeClient(client) && !IsClientSourceTV(client))
        {
            return true;
        }
        else
            return false;
    }

    Powinno działać dobrze.

  2. Witam mam problem a mianowicie potrzebuje do pluginu ,aby pobierało mi z bazy danych 10 graczy z największa liczba punktów, jest to rzecz z którą mam drobne problemy dlatego proszę o pomoc. Z góry dziękuje  za odpowiedz..

×
×
  • Dodaj nową pozycję...