Статус темы:
Закрыта.
  1. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    573
    Симпатии:
    151
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Имеется damager.amxx, который работает для всех, и bullet_damage, который работает только для випов.
    Мне нужен плагин, который будет работать только для випов.

    Плюсы имеющегося damager.amxx: циферки появляются рядом с прицелом, т.е. их сразу видно.
    Минусы: 1) при попадании одновременно в двух противников (например, гранатой), отображается урон, нанесенный только одному из них. 2) Данная версия работает для всех.
    PHP:
    1. #include <amxmodx>
    2.  
    3. new g_MsgSync
    4. new g_MsgSync2
    5.  
    6. new isConnected[33 char]
    7.  
    8. public plugin_init()
    9. {
    10.     register_plugin("Damager", "1.0", "Prayer")
    11.    
    12.     register_event("Damage", "EVENT_Damage", "b", "2!0", "3=0", "4!0")
    13.    
    14.     g_MsgSync = CreateHudSyncObj()
    15.     g_MsgSync2 = CreateHudSyncObj()
    16. }
    17.  
    18. public client_putinserver(id)
    19. {
    20.     isConnected{id} = true
    21. }
    22.  
    23. public client_disconnect(id)
    24. {
    25.     isConnected{id} = false
    26. }
    27.  
    28. public EVENT_Damage(id)
    29. {
    30.     if(isConnected{id})
    31.     {
    32.         static damage, pid
    33.         damage = read_data(2)
    34.        
    35.         set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
    36.         ShowSyncHudMsg(id, g_MsgSync2, "%d", damage)
    37.    
    38.         pid = get_user_attacker(id)
    39.        
    40.         if((pid > 0) && (pid < 33) && isConnected{pid})
    41.         {
    42.             set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
    43.             ShowSyncHudMsg(pid, g_MsgSync, "%d", damage)
    44.         }
    45.     }
    46. }
    47.  

    Плюсы имеющегося bullet_damage.amxx: 1) при попадании одновременно в двух (или более) противников выскакивает несколько циферок с уроном для каждого, 2) работает только для випов.
    Минусы: 1) все цифры разного цвета, иногда очень тусклого - их не видно. Оптимальным является зеленый цвет, 2) цифры появляются на разном расстоянии от прицела, иногда на весьма удаленном, что сильно отвлекает.
    PHP:
    1. #include <amxmodx>
    2. #include <amxmisc>
    3.  
    4. #define MAX_PLAYERS 32
    5.  
    6. new const Float:g_flCoords[][] =
    7. {
    8.     {0.40, 0.52},
    9.     {0.42, 0.54},
    10.     {0.44, 0.56},
    11.     {0.46, 0.58},
    12.     {0.48, 0.56},
    13.     {0.50, 0.54},
    14.     {0.52, 0.52}
    15. }
    16.  
    17. new const Float:g_flCoords2[][] =
    18. {
    19.     {0.42, 0.50},
    20.     {0.44, 0.48},
    21.     {0.46, 0.46},
    22.     {0.48, 0.44},
    23.     {0.50, 0.46},
    24.     {0.52, 0.48},
    25.     {0.54, 0.50}
    26.  
    27. }
    28.  
    29. new const g_iColors[][] =
    30. {
    31.     {0, 127, 255}, // blue
    32.     {255, 127, 0}, // orange
    33.     {127, 0, 255}, // purple
    34.     {0, 255, 0}, // green
    35.     {255, 100, 150} // pink
    36. }
    37.  
    38. new g_iPlayerPos[MAX_PLAYERS+1]
    39. new g_iPlayerPos2[MAX_PLAYERS+1]
    40. new g_iPlayerCol[MAX_PLAYERS+1]
    41. new g_iMaxPlayers
    42. new g_pCvarEnabled
    43.  
    44. public plugin_init()
    45. {
    46.     register_plugin( "Bullet Damage", "1.1", "ConnorMcLeod" )
    47.     g_pCvarEnabled = register_cvar("bullet_damage", "1")
    48.     register_event("Damage", "Event_Damage", "b", "2>0", "3=0")
    49.     g_iMaxPlayers = get_maxplayers()
    50. }
    51.  
    52. public Event_Damage( iVictim )
    53. {
    54.     if( get_pcvar_num(g_pCvarEnabled) > 0 && (read_data(4) || read_data(5) || read_data(6)) )
    55.     {
    56.         new id = get_user_attacker(iVictim)
    57.         if( (1 <= id <= g_iMaxPlayers) && is_user_connected(id) )
    58.         {
    59.             new iPos = ++g_iPlayerPos[id]
    60.             if( iPos == sizeof(g_flCoords) )
    61.             {
    62.                 iPos = g_iPlayerPos[id] = 0
    63.             }
    64.            
    65.             new iPos2 = ++g_iPlayerPos2[id]
    66.             if( iPos2 == sizeof(g_flCoords2) )
    67.             {
    68.                 iPos2 = g_iPlayerPos2[id] = 0
    69.             }
    70.            
    71.             new iCol = ++g_iPlayerCol[id]
    72.             if( iCol == sizeof(g_iColors) )
    73.             {
    74.                 iCol = g_iPlayerCol[id] = 0
    75.             }
    76.             if(get_user_flags(id) & ADMIN_LEVEL_H)
    77.             {  
    78.                 set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1)
    79.                 show_hudmessage(id, "%d", read_data(2))
    80.             }
    81.             if(get_user_flags(iVictim) & ADMIN_LEVEL_H)
    82.             {
    83.                 set_hudmessage(220, 0, 0, Float:g_flCoords2[iPos2][0], Float:g_flCoords2[iPos2][1], 0, 0.1, 2.5, 0.02, 0.02, -1)
    84.                 show_hudmessage(iVictim, "%d", read_data(2))
    85.             }
    86.         }
    87.        
    88.     }
    89. }
    90.  

    Можно ли собрать из этих двух оптимальный плагин, который бы учитывал все перечисленные плюсы и не содержал перечисленных минусов?
     
  2. xopoIIIuu Пользователь

    Регистрация:
    22.04.15
    Сообщения:
    234
    Симпатии:
    51
    Пол:
    Мужской
    Пробуй, заменил координаты. Цвет зелёный.
    Код (Unknown Language):
    1. #include <amxmodx>
    2. #include <amxmisc>
    3.  
    4. #define MAX_PLAYERS 32
    5.  
    6. new const Float:g_flCoords[][] =
    7. {
    8.     {0.45, 0.50}
    9. }
    10.  
    11. new const Float:g_flCoords2[][] =
    12. {
    13.     {-1.0, 0.55}
    14.  
    15. }
    16.  
    17. new const g_iColors[][] =
    18. {
    19.     {0, 255, 0} // green
    20. }
    21.  
    22. new g_iPlayerPos[MAX_PLAYERS+1]
    23. new g_iPlayerPos2[MAX_PLAYERS+1]
    24. new g_iPlayerCol[MAX_PLAYERS+1]
    25. new g_iMaxPlayers
    26. new g_pCvarEnabled
    27.  
    28. public plugin_init()
    29. {
    30.     register_plugin( "Bullet Damage", "1.1", "ConnorMcLeod" )
    31.     g_pCvarEnabled = register_cvar("bullet_damage", "1")
    32.     register_event("Damage", "Event_Damage", "b", "2>0", "3=0")
    33.     g_iMaxPlayers = get_maxplayers()
    34. }
    35.  
    36. public Event_Damage( iVictim )
    37. {
    38.     if( get_pcvar_num(g_pCvarEnabled) > 0 && (read_data(4) || read_data(5) || read_data(6)) )
    39.     {
    40.         new id = get_user_attacker(iVictim)
    41.         if( (1 <= id <= g_iMaxPlayers) && is_user_connected(id) )
    42.         {
    43.             new iPos = ++g_iPlayerPos[id]
    44.             if( iPos == sizeof(g_flCoords) )
    45.             {
    46.                 iPos = g_iPlayerPos[id] = 0
    47.             }
    48.          
    49.             new iPos2 = ++g_iPlayerPos2[id]
    50.             if( iPos2 == sizeof(g_flCoords2) )
    51.             {
    52.                 iPos2 = g_iPlayerPos2[id] = 0
    53.             }
    54.          
    55.             new iCol = ++g_iPlayerCol[id]
    56.             if( iCol == sizeof(g_iColors) )
    57.             {
    58.                 iCol = g_iPlayerCol[id] = 0
    59.             }
    60.             if(get_user_flags(id) & ADMIN_LEVEL_H)
    61.             {  
    62.                 set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 2, 0.1, 4.0, 0.1, 0.1, -1)
    63.                 show_hudmessage(id, "%d", read_data(2))
    64.             }
    65.             if(get_user_flags(iVictim) & ADMIN_LEVEL_H)
    66.             {
    67.                 set_hudmessage(220, 0, 0, Float:g_flCoords2[iPos2][0], Float:g_flCoords2[iPos2][1], 2, 0.1, 4.0, 0.02, 0.02, -1)
    68.                 show_hudmessage(iVictim, "%d", read_data(2))
    69.             }
    70.         }
    71.      
    72.     }
    73. }
     
    Le$hiy нравится это.
  3. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    573
    Симпатии:
    151
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Le$hiy, спасибо Вам огромное!!! Все работает так, как я и хотел.
     
  4. x00peR Пользователь

    Регистрация:
    16.10.15
    Сообщения:
    300
    Симпатии:
    42
    Пол:
    Мужской
    Skype:
    x00peR
    ICQ:
    474751117
    Заменив ADMIN_LEVEL_H на ADMIN_USER - будет для всех работать?
     
  5. neygomon Его Темнейшество :j Команда форума

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

    Регистрация:
    16.10.15
    Сообщения:
    300
    Симпатии:
    42
    Пол:
    Мужской
    Skype:
    x00peR
    ICQ:
    474751117
    neygomon, bullet_damage.sma
    В павне не шарю, потому вопрошаю :)
    Нагрузка большая от него?
    Ищу оптимальный плагин, функционал: показывать урон нанесённый сопернику, независимо от того где он находится.
    Этот плагин является ли оптимальным из знакомых тебе?
    --- добавлено 22.10.15 ---
    Вот этот более оптимален, верно? (судя по количеству кода) damager++ | Neugomon Community - CS Project ©
    Выпилив вот этот кусок плагин будет показывать просто урон, верно?
    Код (Unknown Language):
    1. , get_user_health(id)
     
  7. neygomon Его Темнейшество :j Команда форума

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

    Регистрация:
    16.10.15
    Сообщения:
    300
    Симпатии:
    42
    Пол:
    Мужской
    Skype:
    x00peR
    ICQ:
    474751117
    neygomon, а как правильно будет? =)
    еще вот это вырезать?
    Код (Unknown Language):
    1. [%d]
     
  9. neygomon Его Темнейшество :j Команда форума

    Регистрация:
    26.02.15
    Сообщения:
    7.572
    Симпатии:
    4.147
    Пол:
    Мужской
    x00peR, да
     
  10. Le$hiy VIP user

    Регистрация:
    13.06.15
    Сообщения:
    573
    Симпатии:
    151
    Пол:
    Мужской
    VKcom:
    leshiy_bannikoff
    Тему можно закрыть.
     
Статус темы:
Закрыта.