End Game Custom

End Game Custom 1.7.4

Нет прав для скачивания
Код:
/*
    Community HL-HEV | All for Half-Life
    Plugin - EndMapCustom
    Author - BIGs
   
    Credits :
        TEPA6ANT - Tested and helped
        D-AIRY - Get FadeScreen code
        HL-HEV Team - Idea
        Lev - Hepled

*/


#pragma semicolon 1
#pragma ctrlchar  '\'

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <fun>

#define PLUGIN "EndMapCustom"
#define VERSION "1.7.4"
#define AUTHOR "BIGs"


#define FFADE_IN 0x0000 // Just here so we don't pass 0 into the function
#define FFADE_OUT 0x0001 // Fade out (not in)
#define FFADE_MODULATE 0x0002 // Modulate (don't blend)
#define FFADE_STAYOUT 0x0004 // ignores the duration, stays faded out until new ScreenFade message received

new time_left_func;
new cz_MAP[32];
new z_Kills[32], z_Hs[32];

new Float: g_Angles[33][3];



public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_event("DeathMsg", "EventDeathMsg", "a");
   
   
    set_task(60.0, "check_end", _, _, _, "b");
    InfoConsole();


    set_task(1.0, "checker", _, _, _, "b");
}
public InfoConsole()
{
    if(is_linux_server())
    {
    server_print("\e[01;38;05;226m");
    server_print("---------------------------------------------");
    server_print("\e[01;38;05;46m");
    server_print("[EMC] : Status - Loaded");
    server_print("[EMC] : Version - %s" , VERSION);
    server_print("[EMC] : Author - %s" , AUTHOR);
    server_print("\e[01;38;05;226m");
    server_print("---------------------------------------------");
    server_print("\e[0m");
    }else{
       
    server_print("---------------------------------------------");
    server_print("[EMC] : Status - Loaded");
    server_print("[EMC] : Version - %s" , VERSION);
    server_print("[EMC] : Author - %s" , AUTHOR);
    server_print("---------------------------------------------");
   
    }
}
public checker()
{
    get_cvar_string("amx_nextmap" , cz_MAP ,31);
    time_left_func = get_timeleft() / 60;
}
public client_authorized(id)
{
    client_cmd(0,"mp3 stop");
}
public check_end()
{
    if(time_left_func == 0)
    {
        set_task(15.0, "changelev", 1, _, _, "b");
        set_task(1.0, "get_winner", _, _, _, "b");
        emitet();
       
        new iNum, iTemp[32], iPlayer;
        get_players(iTemp, iNum, "h");

        for(new i; i < iNum; ++i)
        {
            iPlayer = iTemp[i];
            if(is_user_connected(iPlayer) && !is_user_bot(iPlayer))
            {
                doFade(iPlayer);
                strip_tiss(iPlayer);
            }
        }
    }
}
public strip_tiss(id)
{
    set_pev(id, pev_flags, pev(id, pev_flags) | FL_FROZEN);
    pev(id, pev_v_angle, g_Angles[id]);
    strip_user_weapons(id);
}
public get_winner(id)
{
    new BestPlayer = BPlayer();
    new z_Name[32];
    get_user_name(BestPlayer , z_Name , 31);
    strtoupper(cz_MAP);
   
    set_dhudmessage(0, 150, 150, -1.0, 0.20, 0, 6.0, 12.0);
    show_dhudmessage(id, "B E S T   P L A Y E R   -    %s" , z_Name );
    set_dhudmessage(255, 255, 0, -1.0, 0.17, 0, 6.0, 12.0 );
    show_dhudmessage(id, "K I L L S   -   %d   |   D E A T H S   -   %d" ,z_Kills[BestPlayer] ,get_user_deaths(BestPlayer));
    set_dhudmessage(255,0, 100, -1.0, 0.14, 0, 6.0, 12.0);
    show_dhudmessage(id, "N E X T   M A P   -   %s" ,cz_MAP);
   
}
public emitet()
{
        new rand_num = random_num(01 ,17);
        client_cmd(0,"mp3 play media/Half-Life%d.mp3" ,rand_num);
       
}
public changelev()
{
    new map[33];
    get_cvar_string("amx_nextmap" , map ,32);
    server_cmd("changelevel %s" , map);
    remove_task(1);
}
public doFade(id)
{
    message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id);
    write_short(1<<12); //Duration 1«12 == 1 second
    write_short(1<<12); //HoldTime 1«12 == 1 second
    write_short(FFADE_IN | FFADE_STAYOUT);
    write_byte(0); // R [0-255]
    write_byte(0); // G [0-255]
    write_byte(0); // B [0-255]
    write_byte(255); // opacity [0-255]
    message_end();
}

public client_disconnect(id)
{
    z_Hs[id] = 0;
    z_Kills[id] = 0;
}
public EventDeathMsg()
{
    new killer = read_data(1);
    new victim = read_data(2);
    new is_hs = read_data(3);
   
    if(killer != victim && killer)
    {
        z_Kills[killer]++;
        if(is_hs)
        {
            z_Kills[killer]++;
        }
    }else{
        z_Kills[killer]--;
    }
}

BPlayer()
{
    new players[32], num; 
    get_players(players, num); 
    SortCustom1D(players, num, "sort_bestplayer");
     
    return players[0];
}

public sort_bestplayer(id1 , id2)
{
    if(z_Kills[id1] > z_Kills[id2]) 
    {
        return -1; 
    }else if(z_Kills[id1] < z_Kills[id2]) 
    {
        return 1;
    }
     
    return 0; 
}
Назад
Верх