Модуль плагина Betting 1.6

Возможность делать ставки на кредиты

  1. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.186
    Симпатии:
    411
    Пользователь White Wolf разместил новый ресурс:

    Betting - Возможность делать ставки на кредиты

    Узнать больше об этом ресурсе...
     
    Последнее редактирование модератором: 9 мар 2016
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.978
    Re: [Shop] Bets

    PHP:
    HookEvent("round_end"Event_OnRoundEndEventHookMode_PostNoCopy);
    ..
    GetEventInt(event"winner");
    Это ничего?

    PHP:
    decl iWinnerTeam;
        
    iWinnerTeam GetEventInt(event"winner");
    Компилятор преобразует в
    PHP:
    new iWinnerTeam GetEventInt(event"winner");
    PHP:
    if (!(2<=iWinnerTeam<=3))
    А не проще ли
    PHP:
    if (iWinnerTeam 2)
    Ну если уж очень переживаешь то:
    PHP:
    if (iWinnerTeam != && iWinnerTeam != 3)
    Конкретное сравнение равно/не равно быстрее чем больше/меньше/равно.

    Мне кажется было бы рациональнее сделать 1 цикл. Т.к. Лучше каждый раз проверять WinnerTeam > 1 чем в каждом из циклов if (IsClientInGame(i) && g_iPlayerPot)

    Это уже выигрыш.

    PHP:
    static last_time[MAXPLAYERS+1];
        new 
    curr_time GetTime();
        new 
    time curr_time last_time[client];
    Почему бы curr_time и time так же не сделать static ?

    PHP:
    public Action:Command_Bet(clientargs)
    {
        if (
    client && IsClientInGame(client))
        {
            if (
    g_bBettingDead)
            {
                if (
    IsPlayerAlive(client))
                {
                    
    ReplyToCommand(client"[Shop|Bet] Вы должны быть мертвы чтобы делать ставки.");
                    return 
    Plugin_Handled;
                }
            }
            if (
    GetClientCount() < g_iBettingMinPl)
            {
                
    ReplyToCommand(client"[Shop|Bet] Недостаточно игроков, нужно %d"g_iBettingMinPl);
                return 
    Plugin_Handled;
            }
            else if (
    g_iBettingPeriod && g_iBettingStart+g_iBettingPeriod GetTime())
            {
                
    ReplyToCommand(client"[Shop|Bet] Период ставок истёк");
                return 
    Plugin_Handled;
            }
            else if (
    Flood(client)) return Plugin_Handled;
            else if (
    args 2)
            {
                
    ReplyToCommand(client"[Shop|Bet] sm_bet <t/ct> <bet/all/cancel>");
                return 
    Plugin_Handled;
            }
            
    /* else if (g_iPlayerPot[client])
            {
                ReplyToCommand(client, "[Shop|Bet] Вы уже сделали ставку (%d кр.)", g_iPlayerPot[client]);
                return Plugin_Handled;
            } */
            
            
    decl String:sTeam[4], String:sAmount[8];
            
    GetCmdArg(1sTeamsizeof(sTeam));
            
    GetCmdArg(2sAmountsizeof(sAmount));
            
            if (
    StrEqual(sTeam"t"true))
                
    g_iPlayerTeam[client] = CS_TEAM_T;
            else if (
    StrEqual(sTeam"ct"true))
                
    g_iPlayerTeam[client] = CS_TEAM_CT;
            else
            {
                
    ReplyToCommand(client"[Shop] Неверная команда");
                return 
    Plugin_Handled;
            }
            
            new 
    hascredits Shop_GetClientCredits(client);
            new 
    credits StringToInt(sAmount);
            if (
    StrEqual(sAmount"all"true))
            {
                
    g_iPlayerPot[client] = hascredits;
                
    PrintToChatAll("[\x03Shop|Bet\x01] \x04%N \x01поставил все свои кредиты (%d кр) на команду \x04%s"clienthascreditssTeam);
                
    PrintToChat(client"[\x03Shop|Bet\x01] Ваша ставка составляет %d кр."g_iPlayerPot[client]);
                
    PrintToChat(client"[\x03Shop|Bet\x01] В случае успеха ваш выйгрыш составит \x03%d \x01кр."RoundToCeil(g_iPlayerPot[client] * g_fMultiplier));
                
    Shop_SetClientCredits(client0);
                return 
    Plugin_Handled;
            }
            else if (
    StrEqual(sAmount"cancel"true))
            {
                
    Shop_GiveClientCredits(clientg_iPlayerPot[client]);
                
    g_iPlayerPot[client] = 0;
                
    g_iPlayerTeam[client] = CS_TEAM_NONE;
                
    ReplyToCommand(client"[Shop|Bet] Вы отменили свою ставку");
                return 
    Plugin_Handled;
            }
            else if (
    credits 0)
            {
                
    PrintToChat(client"[\x03Shop|Bet\x01] Неверное количество кредитов.");
                return 
    Plugin_Handled;
            }
            else if (
    credits hascredits)
            {
                
    g_iPlayerPot[client] += credits;
                
    PrintToChatAll("[\x03Shop|Bet\x01] \x04%N \x01 поставил \x04%d кр. \x01на команду \x04%s"clientcreditssTeam);
                
    PrintToChat(client"[\x03Shop|Bet\x01] Ваша ставка составляет %d кр."g_iPlayerPot[client]);
                
    PrintToChat(client"[\x03Shop|Bet\x01] В случае успеха ваш выйгрыш составит \x03%d \x01кр."RoundToCeil(g_iPlayerPot[client] * g_fMultiplier));
                
    Shop_TakeClientCredits(clientcredits);
                return 
    Plugin_Handled;
            }
            else
            {
                
    ReplyToCommand(client"[Shop|Bet] У вас недостаточно кредитов")
            }
        }
        return 
    Plugin_Handled;
    }
    Зачем везде return Plugin_Handled; если у тебя идет конструкция else if. Если одно условие выполнилось дальше уже не пойдет.

    PHP:
    if (StrEqual(sTeam"t"true))
                
    g_iPlayerTeam[client] = CS_TEAM_T;
            else if (
    StrEqual(sTeam"ct"true))
                
    g_iPlayerTeam[client] = CS_TEAM_CT;
    Может стоит добавить "т" и "кт" ?
     
    Tokko нравится это.
  3. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.186
    Симпатии:
    411
    Версия: 1.1
    Поправлены ошибки.
     
  4. B1g

    B1g

    Сообщения:
    696
    Симпатии:
    24
    Вот допустим если уже победила команда и игрок делает ставку , то у него креды на 0 ставятся потом возвращаются в новом раунде. Если ты поставил все креды на команду выиграл , проверяешь в этом раунде магаз все ок , в следующем раунде кредов в два раза больше , то есть выигрышь выдается 2 раза что ли
     
  5. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.186
    Симпатии:
    411
    Версия: 1.2
    Поправлен баг когда кредиты выдавались в начале раунда.
    Исправлен баг когда игрок мог сделать ставку в конце раунда.
     
    Последнее редактирование: 8 сен 2015
  6. Barsminsk

    Barsminsk

    Сообщения:
    61
    Симпатии:
    0
    Версия 1.1 работала, версия 1.2 после 2х рестартов сервера так и не заработала.
    в error логе пусто
     
  7. B1g

    B1g

    Сообщения:
    696
    Симпатии:
    24
    Всё прекрасно работает.
     
  8. 666pro

    666pro

    Сообщения:
    151
    Симпатии:
    12
    Было бы круто , если интегрировать в меню шопа , а то пока всем объяснишь и т.д.

    Так , через меню шопа , об этом многие узнают сразу )
     
  9. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.978
    666pro, хорошая идея. Если автор не сделает - я сделаю.
     
  10. DiSonDS

    DiSonDS

    Сообщения:
    61
    Симпатии:
    13
    Хотелось бы чтобы можно было ставить только за свою команду, а то некоторые специально поддаются.
     
  11. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.186
    Симпатии:
    411
    Плагин обновлён до версии 1.4.
    Изменения в первом посте.
     
  12. antonnn598

    antonnn598

    Сообщения:
    144
    Симпатии:
    2
    Сделайте, пожалуйста, версию без рекламы в чате.
     
  13. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.186
    Симпатии:
    411
    Обновление плагина.
    Версия: 1.6
    Уведомление о ставках регулируется кваром:
    PHP:
    sm_shop_bet_advert 1 // Отображать уведомление о ставках в начале раунда
     
  14. antonnn598

    antonnn598

    Сообщения:
    144
    Симпатии:
    2
    White Wolf, спасибо огромное
     
  15. Денис Шорохов

    Денис Шорохов

    Сообщения:
    2
    Симпатии:
    0
    А можешь сделать чтобы можно было сделать ставку командой в чате? В консоли не всем удобно это делать!
     
  16. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.186
    Симпатии:
    411
    Код:
    !sbet t 2200
    /sbet t 2200
     
  17. Fentazzi

    Fentazzi

    Сообщения:
    29
    Симпатии:
    0
    Можно ли как нибудь сменить цвет рекламы в чате? Просто весь шоп настроен цветной, а этот плагин тусклый, исходника нет не как не изменить цвет.
     
  18. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.186
    Симпатии:
    411
    Fentazzi, кнопка Исходник в первом посте ни о чем не говорит?
     
  19. Fentazzi

    Fentazzi

    Сообщения:
    29
    Симпатии:
    0
    Там нет его.
     
  20. Andy Freeman

    Andy Freeman Fatal error Супер-модератор

    Сообщения:
    407
    Симпатии:
    59