Jump to content

cerere clase bb


RoLex.

Recommended Posts

Reguli info

Descriere: Acest plugin face ca cel care se conecteaza pe server sa ii apara un meniu care sa-l intrebe daca Cunoaste Regulament-ul. Plugin-ul are 3 variante. 1.Nu il cunosc. [apare un motd]. 2.Il cunosc deja[te lasa sa joci.] 3. NU vreau sa il citesc.[Kick reason.]

Autor: das Faydee

Sma:

#include <amxmodx>

#pragma semicolon 1

#define PLUGIN "Plugin nou"
#define VERSION "1.0"

#define TASK_TIME     15.0

new const MENU_NAME[ ] = "\y Cunosti regulamentul serverului \r?";

new const KICK_REASON[ ] = "Ai face bine sa citesti regulile , altfel nu ai ce cauta pe server !";

new const MOTD_FILE[ ] = "addons/amxmodx/configs/reguli.txt";


public plugin_init( ) register_plugin( PLUGIN, VERSION, "Askhanar" );


public client_connect( id )
{
    if( is_user_bot( id ) || is_user_hltv( id ) ) return 1;
    
    set_task( TASK_TIME, "AdvertizePlayer", id + 112233 );
    
    return 0;
}

public client_disconnect( id )
{
    if( is_user_bot( id ) || is_user_hltv( id ) ) return 1;
    
    remove_task( id + 112233 );
    
    return 0;
}

public AdvertizePlayer( id )
{
    id -= 112233;
    if( !is_user_connected( id ) ) return 1;
    
    ShowAdvertizeMenu( id , 0 );
    
    return 0;
}


public ShowAdvertizeMenu( id, page )
{
    new menu = menu_create( MENU_NAME, "ShowAdvertizeMenuHandler" );    
    
    menu_additem( menu, "Nu , nu cunosc regulile", "1", 0 );
    menu_additem( menu, "Da , cunosc deja regulile", "2", 0 );
    menu_additem( menu, "Nu vreau sa le citesc", "3", 0 );
    
    menu_setprop( menu, MPROP_EXITNAME, "" );
    
    menu_display( id, menu, page );
    
}

public ShowAdvertizeMenuHandler( id, menu, item )
{
    
    if( item == MENU_EXIT )
    {
        ShowAdvertizeMenu( id, 0 );
        return 1;
    }
    
    new data[ 6 ], iName[ 64 ];
    new iaccess, callback;
    
    menu_item_getinfo( menu, item, iaccess, data, 5, iName, 63, callback );
    
    new key = str_to_num( data );
    
    switch( key )
    {
        case 1: show_motd( id, MOTD_FILE );
        case 2: return 1;
        case 3: server_cmd( "kick #%i ^"%s^"", get_user_userid( id ), KICK_REASON );
    }
    
    return 0;
}

!

 
Clase Zombie
Descriere: Acest plugin este unul cu rase de Zombie. 1. Schelete. 2. Asistenta Zombie 3. Moartea 4. Caine Extraterestru 5. Razboinic de Gheata 6. Dragon[admin] 7.Zombie Distrugator[Vip]
Autor: eu.
Sma:

include <amxmodx>

#include <basebuilder>
#include <hamsandwich>
#include <fun>
#include <cstrike>

/*================================================================================
[Plugin Customization]
=================================================================================*/

// Classic Zombie Attributes
new const zclass1_name[] = { "Scheleton" }
new const zclass1_info[] = { "=Echilibrat=" }
new const zclass1_model[] = { "v_schelete" }
new const zclass1_clawmodel[] = { "v_m_schelete" }
const zclass1_health = 9000
const zclass1_speed = 260
const Float:zclass1_gravity = 1.0
const zclass1_adminflags = ADMIN_ALL

// Fast Zombie Attributes
new const zclass2_name[] = { "Asistenta Zombie" }
new const zclass2_info[] = { "HP-- SP++" }
new const zclass2_model[] = { "nurse" }
new const zclass2_clawmodel[] = { "nurse_knife" }
const zclass2_health = 6500
const zclass2_speed = 328
const Float:zclass2_gravity = 1.0
const zclass2_adminflags = ADMIN_ALL

// Jumper Zombie Attributes
new const zclass3_name[] = { "Moartea" }
new const zclass3_info[] = { "HP- GR+" }
new const zclass3_model[] = { "v_sat" }
new const zclass3_clawmodel[] = { "v_m_sat" }
const zclass3_health = 7200
const zclass3_speed = 285
const Float:zclass3_gravity = 0.5
const zclass3_adminflags = ADMIN_ALL

// Alien Dog Zombie Attributes
new const zclass4_name[] = { "Caine Extraterestru" }
new const zclass4_info[] = { "HP-- GR++ SP++" }
new const zclass4_model[] = { "dog" }
new const zclass4_clawmodel[] = { "dogg" }
const zclass4_health = 4200
const zclass4_speed = 390
const Float:zclass4_gravity = 0.3
const zclass4_adminflags = ADMIN_ALL

// Tanker Zombie Attributes
new const zclass5_name[] = { "Razboinic de Gheata" }
new const zclass5_info[] = { "HP++ SP-" }
new const zclass5_model[] = { "v_frost" }
new const zclass5_clawmodel[] = { "v_m_frost" }
const zclass5_health = 11500
const zclass5_speed = 210
const Float:zclass5_gravity = 1.0
const zclass5_adminflags = ADMIN_ALL
#define TANK_ARMOR 200

// Cioara Zombie Attributes
new const zclass6_name[] = { "Dragon Zburator" }
new const zclass6_info[] = { "HP--- SP+ GR +++" }
new const zclass6_model[] = { "v_dragon" }
new const zclass6_clawmodel[] = { "v_m_dragon" }
const zclass6_health = 3000
const zclass6_speed = 390
const Float:zclass6_gravity = 0.155
const zclass6_adminflags = ADMIN_MAP

// Vip Zombie Attributes
new const zclass7_name[] = { "Zombie Distrugator" }
new const zclass7_info[] = { "HP+++ SP++ GR+" }
new const zclass7_model[] = { "new_viaipi" }
new const zclass7_clawmodel[] = { "n_m_vip" }
const zclass7_health = 13000
const zclass7_speed = 328
const Float:zclass7_gravity = 0.4
const zclass7_adminflags = ADMIN_IMMUNITY



/*============================================================================*/

new g_zclass_tanker

// Zombie Classes MUST be registered on plugin_precache
public plugin_precache()
{
    register_plugin("[bB] Clase Zombalai", "Basebuilder v6.9", "Tirant + DanTe's update")
    
    // Register all classes
    bb_register_zombie_class(zclass1_name, zclass1_info, zclass1_model, zclass1_clawmodel, zclass1_health, zclass1_speed, zclass1_gravity, 0.0, zclass1_adminflags)
bb_register_zombie_class(zclass2_name, zclass2_info, zclass2_model, zclass2_clawmodel, zclass2_health, zclass2_speed, zclass2_gravity, 0.0, zclass2_adminflags)
bb_register_zombie_class(zclass3_name, zclass3_info, zclass3_model, zclass3_clawmodel, zclass3_health, zclass3_speed, zclass3_gravity, 0.0, zclass3_adminflags)
    bb_register_zombie_class(zclass4_name, zclass4_info, zclass4_model, zclass4_clawmodel, zclass4_health, zclass4_speed, zclass4_gravity, 0.0, zclass4_adminflags)
    g_zclass_tanker = bb_register_zombie_class(zclass5_name, zclass5_info, zclass5_model, zclass5_clawmodel, zclass5_health, zclass5_speed, zclass5_gravity, 0.0, zclass5_adminflags)
    bb_register_zombie_class(zclass6_name, zclass6_info, zclass6_model, zclass6_clawmodel, zclass6_health, zclass6_speed, zclass6_gravity, 0.0, zclass6_adminflags)
    bb_register_zombie_class(zclass7_name, zclass7_info, zclass7_model, zclass7_clawmodel, zclass7_health, zclass7_speed, zclass7_gravity, 0.0, zclass7_adminflags)
    
}

#if defined TANK_ARMOR
public plugin_init()
{
    RegisterHam(Ham_Spawn, "player", "ham_PlayerSpawn_Post", 1)
}

public ham_PlayerSpawn_Post(id)
{
    if (!is_user_alive(id))
        return ;
        
    if (bb_is_user_zombie(id) && bb_get_user_zombie_class(id) == g_zclass_tanker)
    {
        give_item(id, "item_assaultsuit");
        cs_set_user_armor(id, TANK_ARMOR, CS_ARMOR_VESTHELM);
    }
}
#endif!

Meniu VIP

Descriere: Acest plugin face ca atunci cand scri in chat /vmenu iti apare un meniu cu diferite arme / puteri / arme cu puteri pe care le poti alege odata pe runda

Autor: eu.

Sma:

#pragma semicolon 1

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <engine>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <vault>

#define ADMIN_BBVIP ADMIN_IMMUNITY

// Define the Plugin Version
new const VERSION[] = { "1.0" };

// PREFIX
new const PREFIX[] = { "!g[ BB.NumeServer.Ro ]!n" };

new const g_szKnifeBModel[] = "models/cutit_nebun.mdl";
new const g_szKnifeWModel[] = "models/cutit_nebun2.mdl";
new const g_szAk47Model[] = "models/dragonu_ak_47.mdl";
new const g_szDeagleModel[] = "models/deagleu.mdl";

new VipUsed[33];
new HasSpeed;

new bool:g_bHasKnifeB[33];
new bool:g_bHasKnifeW[33];
new bool:g_bHasAk47[33];
new bool:g_bHasDeagle[33];
new Float:fast_speed = 400.0;
new Float:normal_speed = 250.0;
//new g_pVisiblity;
new mpd,/* mkb,*/ mhb;
new maxplayers;

public plugin_init()
{
    register_plugin("BaseBuilder: VIP Menu", VERSION, "anti-talent");
    RegisterHam(Ham_Spawn, "player", "FwdHamSpawn_Post", 1);
    RegisterHam(Ham_Item_PreFrame, "player", "FwdPreFrame_Post", 1);
    RegisterHam(Ham_TakeDamage, "player", "FwdPlayerDamage");
    //RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
    
    register_event("CurWeapon","event_curweapon","be","1=1");
    
    register_clcmd("say vmenu", "cmdVmenu");
    register_clcmd("say /vmenu", "cmdVmenu");
    register_clcmd("say_team vmenu", "cmdVmenu");
    register_clcmd("say_team /vmenu", "cmdVmenu");
    register_clcmd("say /sagasgasf", "cmdBuyvip");
    register_clcmd("say sagasgas", "cmdBuyvip");
    register_clcmd("say_team sagasgafs", "cmdBuyvip");
    register_clcmd("say_team /sagasfgsa", "cmdBuyvip");
    register_clcmd("say /safasgas", "cmdPreturi");
    register_clcmd("say_team /gassae", "cmdPreturi");
    //g_pVisiblity = register_cvar( "km_invis", "200" ); // 255 = clearly visible
    set_task(480.0, "kmodmsg", 0, _, _, "b");
    
    mpd = register_cvar("money_per_damage","3");
    //mkb = register_cvar("money_kill_bonus","200");
    mhb = register_cvar("money_hs_bonus","500");
    register_event("Damage","Damage","b");
    maxplayers = get_maxplayers();
    
    
    // Ham TakeDamage
    register_forward( FM_CmdStart, "fw_CmdStart" );
    //RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
}

public Damage(id)
{
    new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint);
    if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
        if (get_user_flags(attacker) & ADMIN_IMMUNITY)
    {
        new money = read_data(2) * get_pcvar_num(mpd);
        if(hitpoint==1) money += get_pcvar_num(mhb);
        cs_set_user_money(attacker,cs_get_user_money(attacker) + money);
    }
}
public FwdPlayerDamage(victim, inflictor, attacker, Float:damage, damagebits)
{
    if(inflictor == attacker
    && attacker != victim
    && g_bHasKnifeB[ attacker ]
    && is_user_alive(attacker)
    && get_user_weapon(attacker) == CSW_KNIFE )
{
    SetHamParamFloat(4, damage * 3.0);
}
    if(inflictor == attacker
&& attacker != victim
&& g_bHasAk47[ attacker ]
&& is_user_alive(attacker)
&& get_user_weapon(attacker) == CSW_AK47 )
{
SetHamParamFloat(4, damage * 3.0);
}
    if(inflictor == attacker
&& attacker != victim
&& g_bHasDeagle[ attacker ]
&& is_user_alive(attacker)
&& get_user_weapon(attacker) == CSW_DEAGLE )
{
SetHamParamFloat(4, damage * 4.0);
}


}
public plugin_precache()
{
precache_model(g_szKnifeBModel);
precache_model(g_szAk47Model);
precache_model(g_szKnifeWModel);
precache_model(g_szDeagleModel);
}

public event_curweapon(id)
{
if(g_bHasKnifeB[id] && read_data(2) == CSW_KNIFE)
{
set_pev(id, pev_viewmodel2, g_szKnifeBModel);
set_user_gravity(id, 0.5);
}

if(g_bHasAk47[id] && read_data(2) == CSW_AK47)
{
set_pev(id, pev_viewmodel2, g_szAk47Model);
}

if(g_bHasDeagle[id] && read_data(2) == CSW_DEAGLE)
{
set_pev(id, pev_viewmodel2, g_szDeagleModel);
}
}


public FwdPreFrame_Post(id)
{
if(!is_user_alive(id))
{
return PLUGIN_HANDLED;
}

if(!HasSpeed)
{
return PLUGIN_HANDLED;
}

else if(HasSpeed)
{
set_user_maxspeed(id, fast_speed);
}

return PLUGIN_HANDLED;
}


public FwdHamSpawn_Post(id)
{
if (!is_user_alive(id))
return PLUGIN_CONTINUE;

HasSpeed = false;
VipUsed[id] = false;
g_bHasKnifeB[id] = false;
g_bHasKnifeW[id] = false;
g_bHasAk47[id] = false;
g_bHasDeagle[id] = false;
set_user_maxspeed(id, normal_speed);
set_user_rendering( id, _, 0, 0, 0, _, 0 );
return PLUGIN_CONTINUE;
}

public cmdVmenu(id)
{
if(!(get_user_flags(id) & ADMIN_BBVIP))
{
client_printc(id, "%s Doar !gVIPurile !tau acces la !gMeniul de vip", PREFIX);

return PLUGIN_HANDLED;
}

if(VipUsed[id])
{
client_printc(id, "%s Ti-ai luat deja ceva din !gMeniul de VIP!n in aceasta runda. !tAsteapta pana runda viitoare sa iti mai iei inca un item", PREFIX);

return PLUGIN_HANDLED;
}

switch(cs_get_user_team(id))
{
case CS_TEAM_T:
    VipTMenu(id);
    
case CS_TEAM_CT:
    VipCTMenu(id);
    }
return PLUGIN_HANDLED;
}

public VipCTMenu(id)
{
    new menu = menu_create("\yMeniu De ViP:^n\r", "VipCTMenu_handler");
    
    menu_additem(menu, "\w+150HP si +100Armor", "1", 0);
    menu_additem(menu, "\wViteza", "2", 0);
    menu_additem(menu, "\wM249 si Deagle", "3", 0);
    menu_additem(menu, "\wRevive", "4", 0);
    menu_additem(menu, "\wSG550", "5", 0);
    menu_additem(menu, "\wG3SG1", "6", 0);
    menu_additem(menu, "\wAK 47 Auriu", "7", 0);
    menu_additem(menu, "\wDeagle Nebun", "8", 0);
    menu_additem(menu, "\wAWP cu 600 dmg", "9", 0);
    menu_display(id, menu);
}

public VipCTMenu_handler(id, menu, item)
{
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    
    new data[6], iName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
    
    new key = str_to_num(data);
    
    switch(key)
    {
        case 1:
        {
            set_user_health(id, get_user_health(id) + 150);
            set_user_armor(id, get_user_armor(id) + 100);
            VipUsed[id] = true;
            
            client_printc(id, "%s Tocmai ai primit !g150HP!n si !g100Armor!n", PREFIX);
        }
        case 2:
        {
            VipUsed[id] = true;
            HasSpeed = true;
            
            set_user_maxspeed(id, fast_speed);
            
            client_printc(id, "%s Tocmai ai primit !gViteza", PREFIX);
        }
        
        case 3:
        {
            give_item(id, "weapon_m249");
            give_item(id, "weapon_deagle");
            cs_set_user_bpammo(id, CSW_M249, 200);
            cs_set_user_bpammo(id, CSW_DEAGLE, 100);
            
            VipUsed[id] = true;
            
            
            client_printc(id, "%s Tocmai ai primit un !gM249!n si un !gDeagle!n", PREFIX);
        }
        
        case 4:
        {
            
            ExecuteHamB(Ham_CS_RoundRespawn, id);
            
            VipUsed[id] = true;
            
            client_printc(id, "%s Ai fost !gReinviat", PREFIX);
        }
        case 5:
        {
            
            give_item(id, "weapon_sg550");
            cs_set_user_bpammo(id, CSW_SG550, 200);
            
            VipUsed[id] = true;
            
            client_printc(id, "%s Tocmai ai primit un !gSG550", PREFIX);
        }
        case 6:
        {
            
            give_item(id, "weapon_g3sg1");
            cs_set_user_bpammo(id, CSW_G3SG1, 200);
            
            VipUsed[id] = true;
            
            client_printc(id, "%s Tocmai ai primit un !gG3SG1", PREFIX);
        }
        case 7:
        {
            
            give_item(id, "weapon_ak47");
            cs_set_user_bpammo(id, CSW_AK47, 200);
            set_pev(id, pev_viewmodel2, "models/dragonu_ak_47.mdl");
            g_bHasAk47[id] = true;
            VipUsed[id] = true;
            
            client_printc(id, "%s Tocmai ai primit un !gAK-47 Auriu", PREFIX);
        }
        case 8:
        {
            
            give_item(id, "weapon_deagle");
            cs_set_user_bpammo(id, CSW_DEAGLE, 200);
            set_pev(id, pev_viewmodel2, "models/deagleu.mdl");
            g_bHasDeagle[id] = true;
            VipUsed[id] = true;
            
            client_printc(id, "%s Tocmai ai primit un !gDeagle Nebun", PREFIX);
        }
        case 9:
        {
            
            give_item(id, "weapon_awp");
            cs_set_user_bpammo(id, CSW_AWP, 200);
            VipUsed[id] = true;
            
            client_printc(id, "%s Tocmai ai primit un !gAWP", PREFIX);
        }
        
        
    }
    
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

public VipTMenu(id)
{
    new menu = menu_create("\yMeniu De ViP:^n\r", "VipTMenu_handler");
    
    menu_additem(menu, "\wViteza", "1", 0);
    menu_additem(menu, "\w+5000Hp si +5000Armor", "2", 0);
    menu_additem(menu, "\wCutit Nebun 1", "3", 0);
    menu_additem(menu, "\wCutit Nebun 2", "4", 0);
    menu_display(id, menu);
}

public VipTMenu_handler(id, menu, item)
{
    if( item == MENU_EXIT )
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }
    
    new data[6], iName[64];
    new access, callback;
    menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
    
    new key = str_to_num(data);
    
    switch(key)
    {
        
        case 1:
        {
            VipUsed[id] = true;
            HasSpeed = true;
            
            set_user_maxspeed(id, fast_speed);
            
            client_printc(id, "%s Tocmai ai primit !gViteza", PREFIX);
        }
        
        case 2:
        {
            set_user_health(id, get_user_health(id) + 5000);
            set_user_armor(id, get_user_armor(id) + 5000);
            VipUsed[id] = true;
            
            client_printc(id, "%s Tocmai ai primit !g5000 HP!n si !g5000 Armura!n", PREFIX);
        }
        
        case 3:
        {
            set_user_health(id, get_user_health(id) + 2000);
            set_user_armor(id, get_user_armor(id) + 2000);
            set_user_maxspeed(id, fast_speed);
            HasSpeed = true;
            set_pev(id, pev_viewmodel2, "models/cutit_nebun.mdl");
            g_bHasKnifeB[id] = true;
            
            VipUsed[id] = true;
            
            client_printc(id, "%s Tocmai ai primit !tViata !nsi un !gCutit Nebun", PREFIX);
        }
        case 4:
        {
            set_user_health(id, get_user_health(id) + 2500);
            set_user_armor(id, get_user_armor(id) + 2500);
            set_user_maxspeed(id, fast_speed);
            HasSpeed = true;
            set_pev(id, pev_viewmodel2, "models/cutit_nebun2.mdl");
            g_bHasKnifeW[id] = true;
            set_user_rendering(id, kRenderFxNone, 0, 0, 0, kRenderTransAlpha, 125);
            
            VipUsed[id] = true;
            
            client_printc(id, "%s Tocmai ai primit !tViata !nsi un !gCutit Nebun", PREFIX);
        }
        
        
    }
    
    menu_destroy(menu);
    return PLUGIN_HANDLED;
}



public cmdBuyvip(id)
{
    show_motd(id, "vip.txt", "VIP");
}
public PrintText(id)
{
    client_print(id, print_chat, "!t[bB.GoDpLaY.Ro] !gPentru a cumpara !tVIP !gadauga id-ul !gKinderbueno_cs .");
}

public cmdPreturi(id)
{
    show_motd(id, "preturi.txt", "PRETURI");
    
    client_printc(id, "!t[bB.GoDpLaY.Ro] !tPentru a vedea beneficiile !gVIP-ului !ntasteaza in chat !t/privilegii .");
}



// Colour Chat
stock client_printc(const id, const input[], any:...)
{
    new count = 1, players[32];
    static msg[191];
    vformat(msg, 190, input, 3);
    
    replace_all(msg, 190, "!g", "^x04"); // Green Color
    replace_all(msg, 190, "!n", "^x01"); // Default Color
    replace_all(msg, 190, "!t", "^x03"); // Team Color
    
    if (id) players[0] = id; else get_players(players, count, "ch");
    
    for (new i = 0; i < count; i++)
    {
        if (is_user_connected(players))
        {
            message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players);
            write_byte(players);
            write_string(msg);
            message_end();
        }
    }
}!

 

Health Bar

Descriere: Acest plugin arata tuturor jucatoriilor deasupra capului o bara care le arata cat de multa viata au / mai au

Autor: eu

Sma:

#include < amxmodx >

#include < cstrike >
#include < fakemeta >
#include < hamsandwich >

#define VERSION "3.0"

new const HEALTH_BAR_MODEL[ ] = "sprites/barenoize.spr";

new g_playerBar[ 33 ], g_isAlive[ 33 ], CsTeams: g_playerTeam[ 33 ], g_playerBot[ 33 ], g_playerMaxHealth[ 33 ], g_showHB[ 33 ];
new pcvarBotSupport, pcvarShowMode, pcvarSpec, cvarSpec, cvarShowMode, cvarBotSupport;
new g_maxPlayers, fwShowMode, botRegistered, msg_SayText;
new g_botQuotaPointer;

public plugin_init( )
{
register_plugin( "Health Bar", VERSION, "Bboy Grun" );

register_cvar( "Health_Bars", VERSION, FCVAR_SERVER | FCVAR_SPONLY );
set_cvar_string( "Health_Bars", VERSION );

register_event( "HLTV", "evNewRound", "a", "1=0", "2=0" );
register_event( "DeathMsg", "evDeathMsg", "a" );
register_event( "Health", "evHealth", "be" );

RegisterHam( Ham_Spawn, "player", "fwHamSpawn", true );

register_clcmd( "say hb", "hbHandle" );
register_clcmd( "say /hb", "hbHandle" );

pcvarShowMode = register_cvar( "health_ShowMode", "2" );
pcvarBotSupport = register_cvar( "health_BotSupport", "1" );
pcvarSpec = register_cvar( "health_ShowToSpectators", "1" );

g_maxPlayers = get_maxplayers( );
msg_SayText = get_user_msgid( "SayText" );
g_botQuotaPointer = get_cvar_pointer( "bot_quota" );

new playerBar, allocString = engfunc( EngFunc_AllocString, "env_sprite" );

for( new id = 1; id <= g_maxPlayers; id ++ )
{
g_playerBar[ id ] = engfunc( EngFunc_CreateNamedEntity, allocString );

playerBar = g_playerBar[ id ];

if( pev_valid( playerBar ) )
{
set_pev( playerBar, pev_scale, 0.1 );
engfunc( EngFunc_SetModel, playerBar, HEALTH_BAR_MODEL );
}
}

evNewRound( );
}

public plugin_init_bots( id )
{
RegisterHamFromEntity( Ham_Spawn, id, "fwHamSpawn", 1 );
fwHamSpawn( id );
}

public plugin_precache( )
{
precache_model( HEALTH_BAR_MODEL );
}

public client_putinserver( id )
{
g_isAlive[ id ] = 0;
g_playerTeam[ id ] = CS_TEAM_SPECTATOR;
g_playerBot[ id ] = is_user_bot( id );
g_playerMaxHealth[ id ] = 0;
g_showHB[ id ] = true;

if( cvarBotSupport && !botRegistered && g_playerBot[ id ] && g_botQuotaPointer )
{
set_task( 0.4, "plugin_init_bots", id );
botRegistered = 1;
}
}

public client_disconnect( id )
{
g_isAlive[ id ] = 0;
g_playerTeam[ id ] = CS_TEAM_UNASSIGNED;
g_playerBot[ id ] = 0;
g_playerMaxHealth[ id ] = 0;
g_showHB[ id ] = false;
}

public hbHandle( id ) // [ ^4 = GREEN ] [ ^3 = Team Color ] [ ^1 = client con_color value ]
{
g_showHB[ id ] = !g_showHB[ id ];

message_begin( MSG_ONE_UNRELIABLE, msg_SayText, .player = id );
write_byte( id );
write_string
(
g_showHB[ id ] ?
"^4[ HEALTH BARS ]^3 Enabled for you^1 ! Write /hb to^4 disable^1 it"
:
"^4[ HEALTH BARS ]^3 Disabled for you^1 ! Write /hb to^4 enable^1 it"
);
message_end( );
}

public fwAddToFullPack( es, e, ent, host, host_flags, player, p_set )
{
if( !player && !g_playerBot[ host ] && ( g_isAlive[ host ] || cvarSpec ) && g_showHB[ host ] )
{
new user;

for( user = g_maxPlayers; user > 0; -- user )
{
if( g_playerBar[ user ] == ent )
{
if( user != host && g_isAlive[ user ] && ( !g_playerBot[ user ] || cvarBotSupport )
&& ( cvarShowMode == 2 || g_playerTeam[ host ] == g_playerTeam[ user ] ) )
{
new Float: playerOrigin[ 3 ];
pev( user, pev_origin, playerOrigin );

playerOrigin[ 2 ] += 30.0;

set_es( es, ES_Origin, playerOrigin );
}
else
{
set_es( es, ES_Effects, EF_NODRAW );
}

break;
}
}
}
}

public fwHamSpawn( id )
{
if( cvarShowMode && is_user_alive( id ) )
{
new Float: playerOrigin[ 3 ];
pev( id, pev_origin, playerOrigin );

g_isAlive[ id ] = 1;
g_playerTeam[ id ] = cs_get_user_team( id );

engfunc( EngFunc_SetOrigin, g_playerBar[ id ], playerOrigin );
evHealth( id );
}
}

public evDeathMsg( )
{
new id = read_data( 2 );

g_isAlive[ id ] = 0;
g_playerTeam[ id ] = cs_get_user_team( id );
g_playerMaxHealth[ id ] = 0;
}

public evHealth( id )
{
new hp = get_user_health( id );

if( g_playerMaxHealth[ id ] < hp )
{
g_playerMaxHealth[ id ] = hp;
set_pev( g_playerBar[ id ], pev_frame, 99.0 );
}
else
{
set_pev( g_playerBar[ id ], pev_frame, 0.0 + ( ( ( hp - 1 ) * 100 ) / g_playerMaxHealth[ id ] ) );
}
}

public evNewRound( )
{
cvarShowMode = get_pcvar_num( pcvarShowMode );
cvarSpec = get_pcvar_num( pcvarSpec );
new valueBotSupport = get_pcvar_num( pcvarBotSupport );

if( cvarShowMode > 0 )
{
if( !fwShowMode )
{
fwShowMode = register_forward( FM_AddToFullPack, "fwAddToFullPack", true );
for( new id = 1; id <= g_maxPlayers; set_pev( g_playerBar[ id ++ ], pev_effects, 0 ) ) { }
}
}
else
{
if( fwShowMode )
{
unregister_forward( FM_AddToFullPack, fwShowMode, true );
fwShowMode = 0;
for( new id = 1; id <= g_maxPlayers; set_pev( g_playerBar[ id ++ ], pev_effects, EF_NODRAW ) ) { }
}
}

if( valueBotSupport && !botRegistered )
{
for( new id = 1; id <= g_maxPlayers; id ++ )
{
if( g_playerBot[ id ] )
{
plugin_init_bots( id );
botRegistered = 1;
break;
}
}
}

cvarBotSupport = valueBotSupport;
}!

Edited by das Faydee
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...