Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

История благодарностей участнику technique88 ::: Спасибо сказали: 4
Дата поста: В теме: За сообщение: Спасибо сказали:
25.9.2020, 9:14 Ишю плагин ВАМПИР
Может надо кому, скальпель отредачил код


Код:
#include <amxmodx>
#include <fun>

new pMaxHP, pAddHP, pHsAddHP, pOnlyAdmins;
new AddHP, HsAddHP, MaxHP, oAdmins;
new g_HudSyncMsg;
new killer_HP, killerID;
//new g_ScreenMsg;

new g_iAdmin[33];

public plugin_init()
{
#define Version "1.3"
register_plugin("Lite Vampire + Fade", Version, "neygomon");
register_cvar("lv_neygomon", Version, FCVAR_SERVER | FCVAR_SPONLY)

register_event("DeathMsg", "eDeathMsg", "a", "1>0");
//g_ScreenMsg = get_user_msgid("ScreenFade");

pMaxHP = register_cvar("lv_maxhp", "100"); // Максимум HP
pAddHP = register_cvar("lv_addhp", "10"); // Добавление за убийство в тело
pHsAddHP = register_cvar("lv_hsaddhp", "15"); // Добавление за убийство в лицо :D
pOnlyAdmins = register_cvar("lv_oadmins", "0"); // Все функции плагина только для админов

g_HudSyncMsg = CreateHudSyncObj();
//g_ScreenMsg = get_user_msgid("ScreenFade");

set_task(1.5, "Load_Cfg");
}

public Load_Cfg()
{
AddHP = get_pcvar_num(pAddHP);
HsAddHP = get_pcvar_num(pHsAddHP);
MaxHP = get_pcvar_num(pMaxHP);
oAdmins = get_pcvar_num(pOnlyAdmins);
}

public client_putinserver(id)
{
if(oAdmins)
{
if(get_user_flags(id) & ADMIN_MENU) g_iAdmin[id] = 1;
else g_iAdmin[id] = 0;
}
}

public eDeathMsg()
{
if(((killerID = read_data(1)) == read_data(2)) || (oAdmins && !g_iAdmin[killerID]))
return;
killer_HP = get_user_health(killerID);
static TempHP; TempHP = (read_data(3) == 1) ? HsAddHP : AddHP;
set_user_health(killerID, ((killer_HP += TempHP) > MaxHP) ? MaxHP : killer_HP);
set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1);
ShowSyncHudMsg(killerID, g_HudSyncMsg, "Добавлено +%d HP", TempHP);

/*static id;
if((id = read_data(1)) == read_data(2))
return;

message_begin(MSG_ONE, g_ScreenMsg, {0, 0, 0}, id);
write_short(1<<10);
write_short(1<<10);
write_short(0x0000);
write_byte(0);
write_byte(0); // R
write_byte(200); // G
write_byte(75); // B
message_end(); */
}
DUPEKTOP
26.6.2019, 8:19 Score DHUD
Может надо кому, исправил сам

Код:
Код
#include <amxmodx>
#include <dhudmessage>

#define PLUGIN        "Score HUD"
#define VERSION        "1.0"
#define AUTHOR         "AndrewZ"
    
enum _:SCORE_DATA
{
    DISABLE,
    KILLS,
    HEADSHOTS,
    KNIFEKILLS,
    GRENADEKILLS,
    DEATHS
}

new g_user_score[ 33 ][ SCORE_DATA + 1 ]
new g_maxplayers
    
new bool:g_reset_data

public plugin_init()
{
    register_plugin( PLUGIN, VERSION, AUTHOR )
    
    g_maxplayers = get_maxplayers()
    
    register_clcmd( "say /score", "cmd_score" )
    
    register_event( "DeathMsg", "event_death", "a" )
    register_event( "TextMsg", "event_textmsg_restart", "a", "2=#Game_will_restart_in" )
    
    register_logevent( "logevent_game_commencing", 2, "1=Game_Commencing" )
    register_logevent( "logevent_round_start", 2, "1=Round_Start" )
    
    set_task( 1.0, "rtask_show_hud", _, _, _, "b" )
}

public cmd_score( id )
{
    if( g_user_score[ id ][ DISABLE ] )
    {
        g_user_score[ id ][ DISABLE ] = 0
        client_print( id, print_chat, "HUD информер статистики включен." )
    }
    else
    {
        g_user_score[ id ][ DISABLE ] = 1
        client_print( id, print_chat, "HUD информер статистики выключен." )
    }
    
    return PLUGIN_HANDLED
}    

public clear_data( id )
{
    if( !id )
    {
        for( new i = 1; i <= g_maxplayers; i ++ )
        {
            for( new data; data <= SCORE_DATA; data ++ )
                g_user_score[ i ][ data ] = 0
        }
    }
    else
    {
        for( new data; data <= SCORE_DATA; data ++ )
            g_user_score[ id ][ data ] = 0
    }
}


public client_connect( id )         clear_data( id )
public client_disconnect( id )         clear_data( id )
public logevent_game_commencing()    clear_data( 0 )
public event_textmsg_restart()         g_reset_data = true
public logevent_round_start()
{
    if( g_reset_data )
    {
        clear_data( 0 )
        g_reset_data = false
    }
}

public event_death()
{
    new killer = read_data( 1 )
    new victim = read_data( 2 )
    new headshot = read_data( 3 )
    new weapon[ 12 ]; read_data( 4, weapon, 11 )
    
    if( !is_user_connected( killer ) && !is_user_connected( victim ) )
        return
        
    if( killer == victim )
    {
        g_user_score[ victim ][ DEATHS ] ++
        return
    }
        
    g_user_score[ killer ][ KILLS ] ++
    
    if( headshot )
        g_user_score[ killer ][ HEADSHOTS ] ++
        
    if( equal( weapon, "knife" ) )
        g_user_score[ killer ][ KNIFEKILLS ] ++
    else if( equal( weapon, "grenade" ) )
        g_user_score[ killer ][ GRENADEKILLS ] ++
    
    g_user_score[ victim ][ DEATHS ] ++
}
    

public rtask_show_hud()
{
    for( new id = 1; id <= g_maxplayers; id ++ )
    {
        if( !is_user_alive( id ) || g_user_score[ id ][ DISABLE ] )
            continue
        
        new Float:kd,
            Float:k = float( g_user_score[ id ][ KILLS ] ),
            Float:d = float( g_user_score[ id ][ DEATHS ] )
        
        if( k && d )
            kd = k / d
            
        else kd = 0.0
        
        
        set_dhudmessage( 255, 255, 255, -1.0, 0.01, 0, 0.0, 1.0, 0.1, 0.1, true )
        show_dhudmessage
        (
            id, "Убийств: %d | Смертей: %d | К/Д: %.2f",
            g_user_score[ id ][ KILLS ],
            g_user_score[ id ][ DEATHS ],
            kd
        )
    }
}
Izmayl7, oxoTHuk.