Пользователи, просматривающие тему (Пользователей: 0, Гостей: 0)

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

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

    Плюсы имеющегося damager.amxx: циферки появляются рядом с прицелом, т.е. их сразу видно.
    Минусы: 1) при попадании одновременно в двух противников (например, гранатой), отображается урон, нанесенный только одному из них. 2) Данная версия работает для всех.
    PHP:
    #include <amxmodx>

    new g_MsgSync
    new g_MsgSync2

    new isConnected[33 char]

    public 
    plugin_init()
    {
        
    register_plugin("Damager""1.0""Prayer")
       
        
    register_event("Damage""EVENT_Damage""b""2!0""3=0""4!0")
       
        
    g_MsgSync CreateHudSyncObj()
        
    g_MsgSync2 CreateHudSyncObj()
    }

    public 
    client_putinserver(id)
    {
        
    isConnected{id} = true
    }

    public 
    client_disconnect(id)
    {
        
    isConnected{id} = false
    }

    public 
    EVENT_Damage(id)
    {
        if(
    isConnected{id})
        {
            static 
    damagepid
            damage 
    read_data(2)
           
            
    set_hudmessage(255000.450.5020.14.00.10.1, -1)
            
    ShowSyncHudMsg(idg_MsgSync2"%d"damage)
       
            
    pid get_user_attacker(id)
           
            if((
    pid 0) && (pid 33) && isConnected{pid})
            {
                
    set_hudmessage(0100200, -1.00.5520.14.00.020.02, -1)
                
    ShowSyncHudMsg(pidg_MsgSync"%d"damage)
            }
        }
    }

    Плюсы имеющегося bullet_damage.amxx: 1) при попадании одновременно в двух (или более) противников выскакивает несколько циферок с уроном для каждого, 2) работает только для випов.
    Минусы: 1) все цифры разного цвета, иногда очень тусклого - их не видно. Оптимальным является зеленый цвет, 2) цифры появляются на разном расстоянии от прицела, иногда на весьма удаленном, что сильно отвлекает.
    PHP:
    #include <amxmodx>
    #include <amxmisc>

    #define MAX_PLAYERS 32

    new const Float:g_flCoords[][] = 
    {
        {
    0.400.52},
        {
    0.420.54},
        {
    0.440.56},
        {
    0.460.58},
        {
    0.480.56},
        {
    0.500.54},
        {
    0.520.52}
    }

    new const 
    Float:g_flCoords2[][] = 
    {
        {
    0.420.50},
        {
    0.440.48},
        {
    0.460.46},
        {
    0.480.44},
        {
    0.500.46},
        {
    0.520.48},
        {
    0.540.50}

    }

    new const 
    g_iColors[][] =
    {
        {
    0127255}, // blue
        
    {2551270}, // orange
        
    {1270255}, // purple
        
    {02550}, // green
        
    {255100150// pink
    }

    new 
    g_iPlayerPos[MAX_PLAYERS+1]
    new 
    g_iPlayerPos2[MAX_PLAYERS+1]
    new 
    g_iPlayerCol[MAX_PLAYERS+1]
    new 
    g_iMaxPlayers
    new g_pCvarEnabled

    public plugin_init()
    {
        
    register_plugin"Bullet Damage""1.1""ConnorMcLeod" )
        
    g_pCvarEnabled register_cvar("bullet_damage""1")
        
    register_event("Damage""Event_Damage""b""2>0""3=0")
        
    g_iMaxPlayers get_maxplayers()
    }

    public 
    Event_DamageiVictim )
    {
        if( 
    get_pcvar_num(g_pCvarEnabled) > && (read_data(4) || read_data(5) || read_data(6)) )
        {
            new 
    id get_user_attacker(iVictim)
            if( (
    <= id <= g_iMaxPlayers) && is_user_connected(id) )
            {
                new 
    iPos = ++g_iPlayerPos[id]
                if( 
    iPos == sizeof(g_flCoords) )
                {
                    
    iPos g_iPlayerPos[id] = 0
                
    }
               
                new 
    iPos2 = ++g_iPlayerPos2[id]
                if( 
    iPos2 == sizeof(g_flCoords2) )
                {
                    
    iPos2 g_iPlayerPos2[id] = 0
                
    }
               
                new 
    iCol = ++g_iPlayerCol[id]
                if( 
    iCol == sizeof(g_iColors) )
                {
                    
    iCol g_iPlayerCol[id] = 0
                
    }
                if(
    get_user_flags(id) & ADMIN_LEVEL_H)
                {   
                    
    set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 00.12.50.020.02, -1)
                    
    show_hudmessage(id"%d"read_data(2))
                }
                if(
    get_user_flags(iVictim) & ADMIN_LEVEL_H)
                {
                    
    set_hudmessage(22000Float:g_flCoords2[iPos2][0], Float:g_flCoords2[iPos2][1], 00.12.50.020.02, -1)
                    
    show_hudmessage(iVictim"%d"read_data(2))
                }
            }
           
        }
    }

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

    Регистрация:
    22.04.15
    Сообщения:
    244
    Симпатии:
    54
    Пол:
    Мужской
    Пробуй, заменил координаты. Цвет зелёный.
    Код:
    #include <amxmodx>
    #include <amxmisc>
    
    #define MAX_PLAYERS 32
    
    new const Float:g_flCoords[][] =
    {
        {0.45, 0.50}
    }
    
    new const Float:g_flCoords2[][] =
    {
        {-1.0, 0.55}
    
    }
    
    new const g_iColors[][] =
    {
        {0, 255, 0} // green
    }
    
    new g_iPlayerPos[MAX_PLAYERS+1]
    new g_iPlayerPos2[MAX_PLAYERS+1]
    new g_iPlayerCol[MAX_PLAYERS+1]
    new g_iMaxPlayers
    new g_pCvarEnabled
    
    public plugin_init()
    {
        register_plugin( "Bullet Damage", "1.1", "ConnorMcLeod" )
        g_pCvarEnabled = register_cvar("bullet_damage", "1")
        register_event("Damage", "Event_Damage", "b", "2>0", "3=0")
        g_iMaxPlayers = get_maxplayers()
    }
    
    public Event_Damage( iVictim )
    {
        if( get_pcvar_num(g_pCvarEnabled) > 0 && (read_data(4) || read_data(5) || read_data(6)) )
        {
            new id = get_user_attacker(iVictim)
            if( (1 <= id <= g_iMaxPlayers) && is_user_connected(id) )
            {
                new iPos = ++g_iPlayerPos[id]
                if( iPos == sizeof(g_flCoords) )
                {
                    iPos = g_iPlayerPos[id] = 0
                }
              
                new iPos2 = ++g_iPlayerPos2[id]
                if( iPos2 == sizeof(g_flCoords2) )
                {
                    iPos2 = g_iPlayerPos2[id] = 0
                }
              
                new iCol = ++g_iPlayerCol[id]
                if( iCol == sizeof(g_iColors) )
                {
                    iCol = g_iPlayerCol[id] = 0
                }
                if(get_user_flags(id) & ADMIN_LEVEL_H)
                {  
                    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)
                    show_hudmessage(id, "%d", read_data(2))
                }
                if(get_user_flags(iVictim) & ADMIN_LEVEL_H)
                {
                    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)
                    show_hudmessage(iVictim, "%d", read_data(2))
                }
            }
          
        }
    }
     
    isss67wtf и Le$hiy нравится это.
  3. Le$hiy VIP user

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

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

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

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

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

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

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

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