1. Mr.Butch Пользователь

    Регистрация:
    19.03.15
    Сообщения:
    27
    Симпатии:
    1
    Пол:
    Мужской
    Всем привет! Уважаемые гуру скриптинга помогите пожалуйста поправить плагин. Плагин выдает бонусы steam игрокам. Необходимо сделать выдачу бонусов начиная с 3го раунда и убрать дымовую гранату.
    Код

    Код (Unknown Language):
    1. /*
    2. * Обновление 28.09.2014
    3. * v1.1 -    
    4.     Исправлены ошибки
    5.     Оптимизирован код
    6.     Выдавание бонусов теперь по очереди
    7.     Добавлено приветственное DHUD сообщение
    8. *
    9. * Обновление 06.03.2015
    10. * v1.2 -
    11.     Исправлено предупреждение при компиляции на AMXX ниже 1.8.3
    12.     Добавлен вывод второго DHUD сообщения, чтобы помещался ник
    13. */
    14.  
    15. #include <amxmodx>
    16. #include <fun>
    17. #include <cstrike>
    18. #include <hamsandwich>
    19. #include <dhudmessage>
    20.  
    21. #if AMXX_VERSION_NUM < 183
    22.     #include <colorchat>
    23.    
    24.     #define client_print_color    ColorChat
    25.     #define print_team_red    RED
    26. #endif
    27.  
    28. #pragma semicolon    1
    29.  
    30. #define PLUGIN    "Steam Bonus"
    31. #define VERSION    "1.2"
    32. #define AUTHOR    "Stimul"
    33. #define PREFIX    "[Steam бонус]"
    34.  
    35. #define get_bit(%1,%2)    (%1 & (1 << (%2 & 31)))
    36. #define set_bit(%1,%2)    (%1 |= (1 << (%2 & 31)))
    37. #define reset_bit(%1,%2)    (%1 &= ~(1 << (%2 & 31)))
    38.  
    39. // Цвет DHUD сообщения
    40. #define COLOR_RED    random(255)    // Количество красного цвета
    41. #define COLOR_GREEN    random(255) // Количество зелёного цвета
    42. #define COLOR_BLUE    random(255)    // Количество синего цвета
    43.  
    44. #define TIME    5.0    // Время показа
    45.  
    46. #define NUM_MONEY    1000    // Количество денег
    47.  
    48. new g_bIsConnected;
    49. new g_bIsSteam;
    50. new g_bProcedure;
    51.  
    52. public plugin_init()
    53. {
    54.     register_plugin(PLUGIN, VERSION, AUTHOR);
    55.    
    56.     RegisterHam(Ham_CS_RoundRespawn, "player", "fw_CS_RoundRespawn_Post", true);
    57. }
    58.  
    59. public client_putinserver(id)
    60. {
    61.     set_bit(g_bIsConnected, id);
    62.    
    63.     if(is_user_steam(id))
    64.     {
    65.         set_bit(g_bIsSteam, id);
    66.         reset_bit(g_bProcedure, id);
    67.         set_task(3.0, "WelcomeMessage", id);
    68.     }
    69.     else
    70.         reset_bit(g_bIsSteam, id);
    71. }
    72.  
    73. public client_disconnect(id)
    74.     reset_bit(g_bIsConnected, id);
    75.  
    76. public WelcomeMessage(id)
    77. {
    78.     if(get_bit(g_bIsConnected, id))
    79.     {
    80.         static szName[32];
    81.         get_user_name(id, szName, charsmax(szName));
    82.        
    83.         set_dhudmessage(COLOR_RED, COLOR_GREEN, COLOR_BLUE, -1.0, 0.3, 0, 0.0, TIME);
    84.         show_dhudmessage(id, "Привет, %s!", szName);
    85.         set_dhudmessage(COLOR_RED, COLOR_GREEN, COLOR_BLUE, -1.0, 0.34, 0, 0.0, TIME);
    86.         show_dhudmessage(id, "У тебя Steam, поэтому каждый раунд ты будешь получать бонусы");
    87.     }
    88. }
    89.  
    90. public fw_CS_RoundRespawn_Post(id)
    91. {
    92.     if(get_bit(g_bIsConnected, id) && get_bit(g_bIsSteam, id))
    93.     {
    94.         if(!get_bit(g_bProcedure, id))
    95.         {
    96.             cs_set_user_money(id, cs_get_user_money(id) + NUM_MONEY);
    97.             client_print_color(id, print_team_red, "^3%s ^1Ты получаешь бонус: ^4'%d$'", PREFIX, NUM_MONEY);
    98.             set_bit(g_bProcedure, id);
    99.         }
    100.         else
    101.         {
    102.             give_item(id, "weapon_hegrenade");
    103.             give_item(id, "weapon_flashbang");
    104.             cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
    105.             give_item(id, "weapon_smokegrenade");
    106.             client_print_color(id, print_team_red, "^3%s ^1Ты получаешь бонус: ^4'все гранаты'", PREFIX);
    107.             reset_bit(g_bProcedure, id);
    108.         }
    109.     }
    110. }
    111.  
    112. stock bool:is_user_steam(id)
    113. {
    114.     static dp_pointer;
    115.    
    116.     if(dp_pointer || (dp_pointer = get_cvar_pointer("dp_r_id_provider")))
    117.     {
    118.         server_cmd("dp_clientinfo %d", id);
    119.         server_exec();
    120.         return (get_pcvar_num(dp_pointer) == 2) ? true : false;
    121.     }
    122.    
    123.     new szAuthid[34];
    124.     get_user_authid(id, szAuthid, charsmax(szAuthid));
    125.    
    126.     return (containi(szAuthid, "LAN") < 0);
    127. }
     
  2. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.572
    Симпатии:
    4.147
    Пол:
    Мужской
    Mr.Butch, автор явный дрочер на оперативу. каждый байт в RAM экономит.
     
    Mr.Butch и jokin нравится это.
  3. Mr.Butch Пользователь

    Регистрация:
    19.03.15
    Сообщения:
    27
    Симпатии:
    1
    Пол:
    Мужской
    Не стоит да ставить?
     
  4. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.572
    Симпатии:
    4.147
    Пол:
    Мужской
    Mr.Butch, да почему?
    это правильно, в целом.
    я б тоже так делал, но мне тупо лень)