1. Altaj Пользователь

    Регистрация:
    16.03.15
    Сообщения:
    142
    Симпатии:
    38
    Пол:
    Мужской
    Ребят скиньте, если у кого есть нормальный плагин "Лучший игрок раунда" по нанесенному урону. Чтобы писал в чат + бонус выдавался. Всякие худы не нужны.
     
  2. l3x1s Пользователь

    Регистрация:
    28.02.15
    Сообщения:
    555
    Симпатии:
    129
    Пол:
    Мужской
    Скинул бы, но
    [​IMG]
     
  3. gudaus Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.509
    Симпатии:
    1.103
    Пол:
    Мужской
    А ты в архив запихни.
     
  4. l3x1s Пользователь

    Регистрация:
    28.02.15
    Сообщения:
    555
    Симпатии:
    129
    Пол:
    Мужской
    Gudaus, не знал, спасибо
    Altaj, держи
     

    Вложения:

    Altaj нравится это.
  5. Эдуард S.T.A.L.K.E.R.

    Регистрация:
    01.03.15
    Сообщения:
    353
    Симпатии:
    61
    Пол:
    Мужской
    PHP:
    1. #include <amxmodx>
    2. #include <cstrike>
    3. #include <fun>
    4.  
    5. #pragma semicolon 1
    6.  
    7. #define MAX_PLAYERS 32 // Максимальное кол-во игроков на сервере, заменить своим (по умолчанию 32)
    8. #define MIN_PLAYERS 2 // Минимальное кол-во игроков, присутствующих на сервере, необходимое для работы плагина (по умолчанию 2)
    9. #define ROUND_NUM 3 // Порядковый номер раунда от момента начала игры, с которого плагин будет работать (по умолчанию 3)
    10. #define MIN_MONEY 200 // Минимальное кол-во призовых у.е., которое может получить игрок (по умолчанию 200)
    11. #define MAX_MONEY 10000 // Максимальное кол-во призовых у.е., которое может получить игрок (по умолчанию 10000)
    12. #define MENU_KEYS (1<<0|1<<1)
    13. #define PRIMARY_WEAPONS (1<<CSW_SCOUT|1<<CSW_XM1014|1<<CSW_MAC10|1<<CSW_AUG|1<<CSW_UMP45|1<<CSW_SG550|1<<CSW_GALIL|1<<CSW_FAMAS|1<<CSW_AWP|1<<CSW_MP5NAVY|1<<CSW_M249|1<<CSW_M3|1<<CSW_M4A1|1<<CSW_TMP|1<<CSW_G3SG1|1<<CSW_SG552|1<<CSW_AK47|1<<CSW_P90)
    14. #define SECONDARY_WEAPONS (1<<CSW_P228|1<<CSW_ELITE|1<<CSW_FIVESEVEN|1<<CSW_USP|1<<CSW_GLOCK18|1<<CSW_DEAGLE)
    15.  
    16. enum _:WEAPON_DATA_SIZE
    17. {
    18.     Data_Name[32],
    19.     Data_Item[24],
    20.     Data_Index,
    21.     Data_Ammo
    22. };
    23.  
    24. new g_Data[][WEAPON_DATA_SIZE] =
    25. {
    26.     {"IMI Galil", "weapon_galil", CSW_GALIL, 90},
    27.     {"GIAT FAMAS", "weapon_famas", CSW_FAMAS, 90},
    28.     {"AK-47", "weapon_ak47", CSW_AK47, 90},
    29.     {"Colt M4A1", "weapon_m4a1", CSW_M4A1, 90},
    30.     {"Steyr Scout", "weapon_scout", CSW_SCOUT, 90},
    31.     {"AI Arctic Warfare Magnum", "weapon_awp", CSW_AWP, 30},
    32.     {"FN Minimi M249 Para", "weapon_m249", CSW_M249, 200},
    33.     {"Desert Eagle", "weapon_deagle", CSW_DEAGLE, 35}
    34. };
    35.  
    36. new g_iPlayerFrags[MAX_PLAYERS + 1];
    37. new g_iPlayerDamage[MAX_PLAYERS + 1];
    38. new g_iPlayers[MAX_PLAYERS];
    39. new g_iPlayersNum;
    40. new g_szBestPlayerName[32];
    41. new g_pBestPlayer;
    42. new g_iRandomPrise;
    43. new g_iRoundCounter;
    44.  
    45. public plugin_init()
    46. {
    47.     register_plugin("Best Player", "0.1a", "Subb98");
    48.     register_event("HLTV", "EventHLTV", "a", "1=0", "2=0");
    49.     register_event("Damage", "EventDamage", "b", "2!0", "3=0", "4!0");
    50.     register_event("DeathMsg", "EventDeathMsg", "a", "1>0");
    51.     register_logevent("EventRestartRound", 2, "1&Restart_Round_");
    52.     register_logevent("EventRoundEnd", 2, "1=Round_End");
    53.     register_menucmd(register_menuid("Prise_Menu"), MENU_KEYS, "HandleMenu");
    54. }
    55.  
    56. public plugin_cfg()
    57. {
    58.     new const szDisableMapTypes[][] = {"35hp_", "ka_"}; // Типы карт, на которых плагин не будет работать
    59.     new szMapname[32];
    60.     get_mapname(szMapname, charsmax(szMapname));
    61.     for(new i; i < sizeof szDisableMapTypes; i++)
    62.         if(equali(szMapname, szDisableMapTypes[i], strlen(szDisableMapTypes[i]))) pause("ad");
    63. }
    64.  
    65. public EventHLTV()
    66.     if(get_playersnum() >= MIN_PLAYERS)
    67.         if(++g_iRoundCounter >= ROUND_NUM && g_pBestPlayer != 0 && is_user_alive(g_pBestPlayer)) ShowMenu(g_pBestPlayer);
    68.  
    69. public EventRestartRound() g_iRoundCounter = 0;
    70.  
    71. public EventDamage(const id)
    72. {
    73.     if(g_iRoundCounter < ROUND_NUM) return;
    74.     static pAttacker; pAttacker = get_user_attacker(id);
    75.     if(is_user_connected(pAttacker) && cs_get_user_team(pAttacker) != cs_get_user_team(id) && pAttacker != id) g_iPlayerDamage[pAttacker] += read_data(2);
    76. }
    77.  
    78. public EventDeathMsg()
    79. {
    80.     if(g_iRoundCounter < ROUND_NUM) return;
    81.     new pKiller = read_data(1);
    82.     g_iPlayerFrags[pKiller]++;
    83. }
    84.  
    85. public EventRoundEnd()
    86. {
    87.     if(g_iRoundCounter < ROUND_NUM || get_playersnum() < MIN_PLAYERS) return;
    88.     g_pBestPlayer = 0;
    89.     new id, i;
    90.     get_players(g_iPlayers, g_iPlayersNum, "ch");
    91.     new bool:bDrawKills;
    92.     for(i = 0; i < g_iPlayersNum; i++)
    93.     {
    94.         id = g_iPlayers[i];
    95.         if(g_iPlayerFrags[id] > g_iPlayerFrags[g_pBestPlayer]) g_pBestPlayer = id;
    96.     }
    97.     for(i = 0; i < g_iPlayersNum; i++)
    98.     {
    99.         id = g_iPlayers[i];
    100.         if(g_iPlayerFrags[id] == g_iPlayerFrags[g_pBestPlayer] && id != g_pBestPlayer)
    101.         {
    102.             bDrawKills = true;
    103.             break;
    104.         }
    105.     }
    106.     if(bDrawKills)
    107.     {
    108.         for(i = 0; i < g_iPlayersNum; i++)
    109.         {
    110.             id = g_iPlayers[i];
    111.             if(g_iPlayerDamage[id] > g_iPlayerDamage[g_pBestPlayer] && g_iPlayerFrags[id] >= g_iPlayerFrags[g_pBestPlayer]) g_pBestPlayer = id;
    112.         }
    113.     }
    114.     if(g_pBestPlayer != 0)
    115.     {
    116.         get_user_name(g_pBestPlayer, g_szBestPlayerName, charsmax(g_szBestPlayerName));
    117.         client_print(0, print_chat, "Лучший результат в этом раунде показал %s, он будет награждён", g_szBestPlayerName);
    118.     }
    119.     for(i = 0; i < g_iPlayersNum; i++)
    120.     {
    121.         id = g_iPlayers[i];
    122.         g_iPlayerFrags[id] = 0;
    123.         g_iPlayerDamage[id] = 0;
    124.     }
    125. }
    126.  
    127. ShowMenu(const id)
    128. {
    129.     new szMenu[256], szRandomPrise[34];
    130.     g_iRandomPrise = random_num(0, 3);
    131.     switch(g_iRandomPrise)
    132.     {
    133.         case 0: add(szRandomPrise, charsmax(szRandomPrise), "оружие");
    134.         case 1: add(szRandomPrise, charsmax(szRandomPrise), "набор гранат");
    135.         case 2: add(szRandomPrise, charsmax(szRandomPrise), "бронежилет и шлем");
    136.         case 3: add(szRandomPrise, charsmax(szRandomPrise), "деньги");
    137.     }
    138.     formatex(szMenu, charsmax(szMenu), "\yВаш приз - это %s^n^n1. \wВзять приз^n\y2. \wОтказаться от приза", szRandomPrise);
    139.     show_menu(id, MENU_KEYS, szMenu, -1, "Prise_Menu");
    140. }
    141.  
    142. public HandleMenu(const id, const iKey)
    143. {
    144.     switch(iKey)
    145.     {
    146.         case 0: GiveRandomPrise(id);
    147.         case 1: client_print(0, print_chat, "%s отказался от приза", g_szBestPlayerName);
    148.     }
    149. }
    150.  
    151. GiveRandomPrise(const id)
    152. {
    153.     switch(g_iRandomPrise)
    154.     {
    155.         case 0: GiveRandomWeapon(id);
    156.         case 1:
    157.         {
    158.             give_item(id, "weapon_hegrenade");
    159.             give_item(id, "weapon_flashbang");
    160.             give_item(id, "weapon_smokegrenade");
    161.             cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
    162.             client_print(0, print_chat, "%s взял приз - набор гранат", g_szBestPlayerName);
    163.         }
    164.         case 2:
    165.         {
    166.             cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);
    167.             client_print(0, print_chat, "%s взял приз - бронежилет и шлем", g_szBestPlayerName);
    168.         }
    169.         case 3:
    170.         {
    171.             new iMoney = random_num(MIN_MONEY, MAX_MONEY);
    172.             cs_set_user_money(id, min(cs_get_user_money(id) + iMoney, 16000));
    173.             client_print(0, print_chat, "%s взял приз - $%d", g_szBestPlayerName, iMoney);
    174.         }
    175.     }
    176. }
    177.  
    178. GiveRandomWeapon(const id)
    179. {
    180.     new iNum = random_num(0, charsmax(g_Data));
    181.     DropWeapon(id, iNum);
    182.     give_item(id, g_Data[iNum][Data_Item]);
    183.     cs_set_user_bpammo(id, g_Data[iNum][Data_Index], g_Data[iNum][Data_Ammo]);
    184.     client_print(0, print_chat, "%s взял приз - %s", g_szBestPlayerName, g_Data[iNum][Data_Name]);
    185. }
    186.  
    187. DropWeapon(const id, const iType)
    188. {
    189.     new iWeapons[32], iWeponsNum;
    190.     get_user_weapons(id, iWeapons, iWeponsNum);
    191.     for(new i; i < iWeponsNum; i++)
    192.     {
    193.         if((iType == charsmax(g_Data) ? (SECONDARY_WEAPONS & (1<<iWeapons[i])) : (PRIMARY_WEAPONS & (1<<iWeapons[i]))))
    194.         {
    195.             new szWeaponName[24];
    196.             get_weaponname(iWeapons[i], szWeaponName, charsmax(szWeaponName));
    197.             engclient_cmd(id, "drop", szWeaponName);
    198.         }
    199.     }
    200. }
     
  6. l3x1s Пользователь

    Регистрация:
    28.02.15
    Сообщения:
    555
    Симпатии:
    129
    Пол:
    Мужской
    Эдуард, 1. под павн выложить не?
    2. я его уже скинул
     
  7. Эдуард S.T.A.L.K.E.R.

    Регистрация:
    01.03.15
    Сообщения:
    353
    Симпатии:
    61
    Пол:
    Мужской
    выложил так выложил. и что с того.когда я вставлял ничего не было
     
  8. Altaj Пользователь

    Регистрация:
    16.03.15
    Сообщения:
    142
    Симпатии:
    38
    Пол:
    Мужской
    Как с него убрать все бонусы и оставить только денежный приз?
     
  9. asc Пользователь

    Регистрация:
    14.03.15
    Сообщения:
    81
    Симпатии:
    15
    Пол:
    Мужской
    l3x1s, второй вариант кривой
    неправильно считает урон
     
  10. l3x1s Пользователь

    Регистрация:
    28.02.15
    Сообщения:
    555
    Симпатии:
    129
    Пол:
    Мужской
    asc, Это не ко мне, меня попросили скинуть - я скинул
     
  11. asc Пользователь

    Регистрация:
    14.03.15
    Сообщения:
    81
    Симпатии:
    15
    Пол:
    Мужской
    Неугомон, пофикси плагин, чтобы урон правильно считал :)
    А то автор говорит, что невозможно так сделать :D
     

    Вложения:

  12. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.572
    Симпатии:
    4.147
    Пол:
    Мужской
    asc, общий или при попаданиях?
     
  13. asc Пользователь

    Регистрация:
    14.03.15
    Сообщения:
    81
    Симпатии:
    15
    Пол:
    Мужской
    neygomon, общий. В /me пишет одно, а он пишет совсем другое.
     
  14. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.572
    Симпатии:
    4.147
    Пол:
    Мужской
    asc, он гейский)
    его проще заново написать
     
  15. asc Пользователь

    Регистрация:
    14.03.15
    Сообщения:
    81
    Симпатии:
    15
    Пол:
    Мужской
    neygomon, напиши, пжл, думаю тебе недолго :)
     
  16. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.572
    Симпатии:
    4.147
    Пол:
    Мужской
    asc, посмотрим. настроения нет чет.
     
  17. Safety1st Пользователь

    Регистрация:
    05.06.15
    Сообщения:
    58
    Симпатии:
    20
    Пол:
    Мужской
    Ахахахахх. Забавно, что на самом деле наоборот: /me показывает фейковый урон (без учёта брони), а тот плагин - реальный, который получил игрок :)

    Как-то спросил у народа, желает ли кто в 'Nice Killer' видеть реальный урон - все отказались :)
     
    Последнее редактирование: 06.06.15
  18. gudaus Команда форума

    Регистрация:
    27.02.15
    Сообщения:
    1.509
    Симпатии:
    1.103
    Пол:
    Мужской
    Safety1st, я твой плагин юзаю, nice killer. он какой урон показывает?
     
  19. Safety1st Пользователь

    Регистрация:
    05.06.15
    Сообщения:
    58
    Симпатии:
    20
    Пол:
    Мужской
    Выше глянь, я подправил)
     
  20. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.572
    Симпатии:
    4.147
    Пол:
    Мужской
    Safety1st, да кому ты ссышь в уши?)
    PHP:
    1. register_event("Damage", "EventDamage", "b", "2!0", "3=0", "4!0");
    и
    PHP:
    1. g_iPlayerDamage[pAttacker] += read_data(2);
    у /me так же) по крайней мере в моем.