Skocz do zawartości

Rekomendowane odpowiedzi

  • Moderator poziom 2

Jeżeli interesuje Cię ruletka pod kredyty zapraszam na pw. Mam jedną na sprzedaż.

Sygnatura użytkownika

» Support: https://discord.com/invite/zMXt97R63v

» Steam: https://steamcommunity.com/id/pawelsteam/

» Discord: Paweł#8244

» PluginyCS: https://pluginycs.pl/profile/Pawel

» Przyjmuję zlecenia na paczki oraz pluginy.  «

Odnośnik do odpowiedzi
Udostępnij na innych stronach
Spoiler
#include <sourcemod>
#include <sdktools>
#include <sdkhooks>
#include <clients>
#include <cstrike>
#include <store>

bool IsClientInRoulette[MAXPLAYERS + 1] = {false, ...};
int win = 0;
int ClientMoneyInRoulette[MAXPLAYERS + 1] = {0, ...};
int ClientColorBet[MAXPLAYERS + 1] = {0, ...};
int RedPull = 0;
int RouletteWinner = 0;
int BluePull = 0;
int GreenPull = 0;
int RouletteTime = 30;
int RouletteCooldown = 0;
bool IsRouletteStarted = false;

public OnPluginStart()
{
    RegConsoleCmd("sm_ruletka", OnRouletteStart);
    RegConsoleCmd("sm_roulette", OnRouletteStart);
    RegConsoleCmd("sm_r", OnRouletteStart);
    RegConsoleCmd("sm_ruleta", OnRouletteStart);
    RegConsoleCmd("sm_red", OnClientBetRed);
    RegConsoleCmd("sm_czerwone", OnClientBetRed);
    RegConsoleCmd("sm_czerw", OnClientBetRed);
    RegConsoleCmd("sm_czerwony", OnClientBetRed);
    RegConsoleCmd("sm_blue", OnClientBetBlue);
    RegConsoleCmd("sm_niebieskie", OnClientBetBlue);
    RegConsoleCmd("sm_niebieski", OnClientBetBlue);
    RegConsoleCmd("sm_nieb", OnClientBetBlue);
    RegConsoleCmd("sm_green", OnClientBetGreen);
    RegConsoleCmd("sm_zielone", OnClientBetGreen);
    RegConsoleCmd("sm_zielony", OnClientBetGreen);
    RegConsoleCmd("sm_ziel", OnClientBetGreen);
}

public Action ShowHud(Handle timer)
{
    for (int i = 1;i <= MaxClients; i++)
    {
        SetHudTextParams(0.66, 0.06, 1.0, 230, 50, 50, 140);
        ShowHudText(i, -1, "[RULETKA] Czerwone [2x] [%d$]", RedPull);
        SetHudTextParams(0.66, 0.10, 1.0, 50, 50, 230, 140);
        ShowHudText(i, -1, "[RULETKA] Niebieskie [3x] [%d$]", BluePull);
        SetHudTextParams(0.66, 0.14, 1.0, 50, 230, 50, 140);
        ShowHudText(i, -1, "[RULETKA] Zielone [14x] [%d$]", GreenPull);
        SetHudTextParams(0.66, 0.18, 1.0, 200, 50, 200, 140);
        ShowHudText(i, -1, "[RULETKA] Pozostało [%ds]", RouletteTime);
        if (RouletteTime <= 1)
        {
            KillTimer(timer);
            return Plugin_Handled;
        }
    }
    return Plugin_Continue;
}
 
public Action OnRouletteStart(int client, int args)
{
    if (!IsRouletteStarted)
    {
        if (RouletteCooldown > 0)
        {
            PrintToChat(client, " \x10[RULETKA]\x01 Ruletka będzie dostępna za \x10%d\x01 sekund!", RouletteCooldown);
            return Plugin_Handled;
        }
        IsRouletteStarted = true;
        PrintToChatAll(" \x10**********************************************************************************************\x01");
        PrintToChatAll(" ");
        PrintToChatAll(" \x10[RULETKA]\x01 RULETKA WŁASNIE WYSTARTOWAŁA!");
        PrintToChatAll(" \x10[RULETKA]\x01 Wpisz \x0F!red <ilosc>\x01 aby obstawić na \x0FCZERWONY [x2]\x01 kolor.");
        PrintToChatAll(" \x10[RULETKA]\x01 Wpisz \x0B!blue <ilosc>\x01 aby obstawić na \x0BNIEBIESKI [x3]\x01 kolor.");
        PrintToChatAll(" \x10[RULETKA]\x01 Wpisz \x04!green <ilosc>\x01 aby obstawić na \x04ZIELONY [x14]\x01 kolor.");
        PrintToChatAll(" ");
        PrintToChatAll(" \x10**********************************************************************************************\x01");
        CreateTimer(1.0, TimerStart, _, TIMER_REPEAT);
        CreateTimer(1.0, ShowHud, _, TIMER_REPEAT);
    }
    else
    {
        PrintToChat(client, " \x10[RULETKA]\x01 Ruletka trwa!");
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
 
public Action RouletteCooldownTimer(Handle timer)
{
    RouletteCooldown--;
    if (RouletteCooldown <= 0)
    {
        KillTimer(timer);
    }
    return Plugin_Continue;
}
 
public Action TimerStart(Handle timer)
{
    RouletteTime--;
    if (RouletteTime <= 0)
    {
        RouletteTime = 0;
        OnRouletteEnd();
        KillTimer(timer);
        return Plugin_Handled;
    }
    return Plugin_Continue;
}
 
void AddClientCredits(int client, int money)
{
    Store_SetClientCredits(client, Store_GetClientCredits(client) + money);
}
 
void SubClientCredits(int client, int money)
{
    Store_SetClientCredits(client, Store_GetClientCredits(client) - money);
}
 
void RouletteReset()
{
    win = 0;
    RedPull = 0;
    BluePull = 0;
    GreenPull = 0;
    RouletteTime = 30;
    RouletteCooldown = 90;
    RouletteWinner = 0;
    IsRouletteStarted = false;
    CreateTimer(1.0, RouletteCooldownTimer, _, TIMER_REPEAT);
    for (int client = 1;client <= MaxClients; client++)
    {
        IsClientInRoulette[client] = false;
        ClientMoneyInRoulette[client] = 0;
        ClientColorBet[client] = 0;
    }
}
 
void OnRouletteEnd()
{
    win = GetRandomInt(1, 100);
    if (win >= 1 && win < 10)
        RouletteWinner = 3;
    else if (win >= 10 && win < 40)
        RouletteWinner = 2;
    else
        RouletteWinner = 1;
    for (int client = 1;client <= MaxClients; client++)
    {
        if (IsClientInRoulette[client])
        {
            if (RouletteWinner == 3)
            {
                if (ClientColorBet[client] == 3)
                    AddClientCredits(client, ClientMoneyInRoulette[client] * 14);   
            }
            else if (RouletteWinner == 2)
            {
                if (ClientColorBet[client] == 2)
                    AddClientCredits(client, ClientMoneyInRoulette[client] * 3);   
            }
            else {
                if (ClientColorBet[client] == 1)
                    AddClientCredits(client, ClientMoneyInRoulette[client] * 2);
            }
        }
    }
 
    if (RouletteWinner == 3)
    {
        PrintToChatAll(" \x10**********************************************************************************************\x01");
        PrintToChatAll(" ");
        PrintToChatAll(" \x10[RULETKA]\x01 \x0FSUMA STRAT: %d kredytów!\x01", RedPull);
        PrintToChatAll(" \x10[RULETKA]\x01 \x0BSUMA STRAT: %d kredytów!\x01", BluePull);
        PrintToChatAll(" \x10[RULETKA]\x01 \x04SUMA WYGRANA: %d kredytów!\x01", GreenPull *14);
        PrintToChatAll(" \x10[RULETKA]\x01 WYGRAŁ KOLOR \x04ZIELONY!\x01");
        PrintToChatAll(" ");
        PrintToChatAll(" \x10**********************************************************************************************\x01");
    }
    else if (RouletteWinner == 2)
    {
        PrintToChatAll(" \x10**********************************************************************************************\x01");
        PrintToChatAll(" ");
        PrintToChatAll(" \x10[RULETKA]\x01 \x0FSUMA STRAT: %d kredytów!\x01", RedPull);
        PrintToChatAll(" \x10[RULETKA]\x01 \x04SUMA STRAT: %d kredytów!\x01", GreenPull);
        PrintToChatAll(" \x10[RULETKA]\x01 \x0BSUMA WYGRANA: %d kredytów!\x01", BluePull * 3);
        PrintToChatAll(" \x10[RULETKA]\x01 WYGRAŁ KOLOR \x0BNIEBIESKI!\x01");
        PrintToChatAll(" ");
        PrintToChatAll(" \x10**********************************************************************************************\x01");
    }
    else if (RouletteWinner == 1)
    {
        PrintToChatAll(" \x10**********************************************************************************************\x01");
        PrintToChatAll(" ");
        PrintToChatAll(" \x10[RULETKA]\x01 \x04SUMA STRAT: %d kredytów!\x01", GreenPull);
        PrintToChatAll(" \x10[RULETKA]\x01 \x0BSUMA STRAT: %d kredytów!\x01", BluePull);
        PrintToChatAll(" \x10[RULETKA]\x01 \x0FSUMA WYGRANA: %d kredytów!\x01", RedPull * 2);
        PrintToChatAll(" \x10[RULETKA]\x01 WYGRAŁ KOLOR \x0FCZERWONY!\x01");
        PrintToChatAll(" ");
        PrintToChatAll(" \x10**********************************************************************************************\x01");
    }
    else {
        PrintToChatAll(" \x10error\x01");
    }
    
    RouletteReset();
}
 
public Action OnClientBetRed(int client, int args)
{
    if (IsClientInGame(client) && !IsFakeClient(client) && IsClientConnected(client))
    {
        if (!IsRouletteStarted)
        {
            PrintToChat(client, " \x10[RULETKA]\x01 Ruletka jeszcze nie wystartowała!");
            return Plugin_Handled;
        }
        if (!IsClientInRoulette[client])
        {
            char ClientRouletteBetChar[32];
            GetCmdArg(args, ClientRouletteBetChar, sizeof(ClientRouletteBetChar));
            int ClientBet = StringToInt(ClientRouletteBetChar);
            if (ClientBet > 0) 
            {
                if (Store_GetClientCredits(client) < ClientBet) 
                {
                    PrintToChat(client, " \x10[RULETKA]\x01 Nie możesz obstawić więcej niż masz!");
                    return Plugin_Handled;
                }
                SubClientCredits(client, ClientBet);
                ClientMoneyInRoulette[client] = ClientBet;
                RedPull += ClientBet;
                IsClientInRoulette[client] = true;
                ClientColorBet[client] = 1;
                PrintToChat(client, " \x10[RULETKA]\x01 Obstawiłeś \x0F%d$\x01 na kolor \x0FCZERWONY!\x01", ClientBet);
            }
            else
                PrintToChat(client, " \x10[RULETKA]\x01 Minimalna stawka to 1$!");
        }
        else {
            PrintToChat(client, " \x10[RULETKA]\x01 Akutalnie bierzesz udział w ruletce!");
        }
    }
    return Plugin_Continue;
}
 
public Action OnClientBetBlue(int client, int args)
{
    if (IsClientInGame(client) && !IsFakeClient(client) && IsClientConnected(client))
    {
        if (!IsRouletteStarted)
        {
            PrintToChat(client, " \x10[RULETKA]\x01 Ruletka jeszcze nie wystartowała!");
            return Plugin_Handled;
        }
        if (!IsClientInRoulette[client])
        {
            char ClientRouletteBetChar[32];
            GetCmdArg(args, ClientRouletteBetChar, sizeof(ClientRouletteBetChar));
            int ClientBet = StringToInt(ClientRouletteBetChar);
            if (ClientBet > 0) 
            {
                if (Store_GetClientCredits(client) < ClientBet) 
                {
                    PrintToChat(client, " \x10[RULETKA]\x01 Nie możesz obstawić więcej niż masz!");
                    return Plugin_Handled;
                }
                SubClientCredits(client, ClientBet);
                ClientMoneyInRoulette[client] = ClientBet;
                BluePull += ClientBet;
                IsClientInRoulette[client] = true;
                ClientColorBet[client] = 2;
                PrintToChat(client, " \x10[RULETKA]\x01 Obstawiłeś \x0F%d$\x01 na kolor \x0BNIEBIESKI!\x01", ClientBet);
            }
            else
                PrintToChat(client, " \x10[RULETKA]\x01 Minimalna stawka to 1$!");
        }
        else {
            PrintToChat(client, " \x10[RULETKA]\x01 Akutalnie bierzesz udział w ruletce!");
        }
    }
    return Plugin_Continue;
}
 
public Action OnClientBetGreen(int client, int args)
{
    if (IsClientInGame(client) && !IsFakeClient(client) && IsClientConnected(client))
    {
        if (!IsRouletteStarted)
        {
            PrintToChat(client, " \x10[RULETKA]\x01 Ruletka jeszcze nie wystartowała!");
            return Plugin_Handled;
        }
        if (!IsClientInRoulette[client])
        {
            char ClientRouletteBetChar[32];
            GetCmdArg(args, ClientRouletteBetChar, sizeof(ClientRouletteBetChar));
            int ClientBet = StringToInt(ClientRouletteBetChar);
            if (ClientBet > 0) 
            {
                if (Store_GetClientCredits(client) < ClientBet) 
                {
                    PrintToChat(client, " \x10[RULETKA]\x01 Nie możesz obstawić więcej niż masz!");
                    return Plugin_Handled;
                }
                SubClientCredits(client, ClientBet);
                ClientMoneyInRoulette[client] = ClientBet;
                GreenPull += ClientBet;
                IsClientInRoulette[client] = true;
                ClientColorBet[client] = 3;
                PrintToChat(client, " \x10[RULETKA]\x01 Obstawiłeś \x0F%d$\x01 na kolor \x04ZIELONY!\x01", ClientBet);
            }
            else
                PrintToChat(client, " \x10[RULETKA]\x01 Minimalna stawka to 1$!");
        }
        else {
            PrintToChat(client, " \x10[RULETKA]\x01 Akutalnie bierzesz udział w ruletce!");
        }
    }
    return Plugin_Continue;
}

 

pod store od zephyrusa, jeden z moich pierwszych pluginow dlatego kod wyglada jak wyglada

ruleta.sp

Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ostatnio przeglądający ten temat (5 użytkowników)

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...