Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
ts.kript.romic_none

Sign in to follow this  
Shadows Adi

[KRIPT] VIP CSGO REMAKE - KRIPT.RO (vip_kript.amxx)

Recommended Posts

VIP CSGO REMAKE - KRIPT.RO

(Versiune curenta 1.2 | Autor Shadows Adi)

 

  • Descriere: Acest plugin este dedicat pentru serverele de CSGO REMAKE; ofera jucatorilor diferite avantaje + meniu de arme personalizat.

 

 

 

 

  • Comenzi:
  •  
    	/vmenu - deschide meniul V.I.P.
    	/vips - arata V.I.P.-urlie ONLINE (hud)
    	/arme - arata un meniu cu arme pentru V.I.P.
    	

     

  • Cvaruri:
  • 	vip_bulletdamage "1"  // BulletDamage - afiseaza dmg-ul facut unui jucator
    	vip_hud "1" // Arata Vip-urile online in HUD prin scrierea in chat a comenzii /vips
    	vip_hp_kill "10" // Hp primit pe un kill  
    	vip_hp_hs "25" // Hp primit pe un hs
    	vip_hp_max "100" // Valoarea maxima a hp-ului pe care o poate avea Vip-ul
    	vip_money_damage "3" // Banii primiti pe un damage
    	vip_money_kill "500" // Banii primiti pe un kill
    	vip_money_hs "1000" // Banii primiti pe un hs
    	vip_gun_menu "1" // Guns Menu - afiseaza meniul cu arme // Pe hartile de tip AWP, acest meniu va fi automat dezactivat
    	vip_items_round "abdef" // Items per round - primiti diverse obiecte la inceputul fiecarei runde ( a - He Grenade; b - Flashbang (x2); c - Smoke Grenade; d - Deagle; e - Vest + Helm;  f - Defuse Kit (Doar CT); g - NightVision
    	vip_jumps "1" // Jumps - Salturi // 1 - Activat   0 - Dezactivat
    	vip_maxjumps "1" // Cate sarituri in plus poate sa faca deodata
    	

     

  • Module necesare:
  • 	cstrike
    	fun
    	hamsandwich
    	engine
    	fakemeta
    	csx
    	

     

  • Instalare:
  •  

  • Copiem fisierul vip_kript.amxx in addons\amxmodx\plugins
  • Copiem fisierul vip_kript.sma in addons\amxmodx\scripting
  • Deschidem addons\amxmodx\configs\plugins.ini si adaugam la urma :
  • 	vip_kript.amxx
    	

     

  • Informatii:
  • Vip-ul se dezactiveaza pe mapele de awp. 

    Contine reclame editabile in sursa.

     VIP-ul se adauga in fisierul configs/VIP/Lista_VIP.ini (numele de pe server)

     Pentru orice modificare dorita / nelamurire postati aici / PM

 

  • Sursa:

 

 

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


#define ITEM_HE (1<<0) // "y"
#define ITEM_FS (1<<1) // "y"
#define ITEM_SG (1<<2) // "y"
#define ITEM_DG (1<<3) // "y"
#define ITEM_VH (1<<4) // "y"
#define ITEM_DF (1<<5) // "y"
#define ITEM_NV (1<<6) // "y"
#define VIP_LEVEL_ACCES ADMIN_LEVEL_H

new const Float: g_flCoords[][] = 
{
	{ 0.50, 0.40 },
	{ 0.56, 0.44 },
	{ 0.60, 0.50 },
	{ 0.56, 0.56 },
	{ 0.50, 0.60 },
	{ 0.44, 0.56 },
	{ 0.40, 0.50 },
	{ 0.44, 0.44 }
};

new g_iPosition[33]
new jumpnum[33] = 0
new bool:dojump[33] = false
new hk_File4[ 128 ];
new hk_VipsList[ 128 ][ 32 ], hk_TotalLines;
new hk_IsUserVip[ 33 ];
new hk_viplist[ ] = "Lista_VIP.ini";
new hk_Folder[ ] = "CSGO_VIP";
new hk_cfg[ ] = "Setari_VIP";
new hk_File[ 128 ];
new hk_File1[ 128 ];
new g_type, g_hudmsg
new vip_hud
new maxplayers
new mpd, mkb, mhb
new health_add
new health_hs_add
new health_max
new hk_Killer
new hk_KillerHp
new hk_HpAdd
new hk_HpMax
new cvar_vip_bulletdmg
new jumps, items
new g_iSize
new hk_iRoundCount
new bool:hk_IsRestarting
new gun_menu

enum
{
    Primary = 1
    , Secondary
    , Knife
    , Grenades
    , C4
};

const PRIMARY_WEAPONS_BIT_SUM = (1<<CSW_SCOUT)|(1<<CSW_XM1014)|(1<<CSW_MAC10)|(1<<CSW_AUG)|(1<<CSW_UMP45)|(1<<CSW_SG550)|(1<<CSW_GALIL)|(1<<CSW_FAMAS)|(1<<CSW_AWP)|(1<<CSW_MP5NAVY)|(1<<CSW_M249)|(1<<CSW_M3)|(1<<CSW_M4A1)|(1<<CSW_TMP)|(1<<CSW_G3SG1)|(1<<CSW_SG552)|(1<<CSW_AK47)|(1<<CSW_P90);
const SECONDARY_WEAPONS_BIT_SUM = (1<<CSW_P228)|(1<<CSW_ELITE)|(1<<CSW_FIVESEVEN)|(1<<CSW_USP)|(1<<CSW_GLOCK18)|(1<<CSW_DEAGLE);

public plugin_init() 
{
    register_plugin("Vip", "1.0", "Adi")
    
    register_concmd("say /vips", "showAdmin", ADMIN_ALL, "")
    register_concmd("amx_addvips", "addvips", ADMIN_RCON, "<Nume sau SteamID>")
    register_concmd("amx_vips", "vips", ADMIN_RCON, "Lista Vip-urilor")
    register_clcmd("say /vmenu", "vmenu", -1);
    register_clcmd("say /arme", "vmenu2", -1);
    RegisterHam ( Ham_Spawn, "player", "Hook_PlayerSpawn", 1 )
    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
    register_event("DeathMsg", "hook_death", "a", "1>0")
    register_event("Damage","Damage","b")
    register_event("DeathMsg","death_msg","a")
    register_event("TextMsg", "Event_TextMsg_Restart", "a", "2&#Game_C", "2&#Game_w")
    register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0")
    
    register_cvar("vip_maxjumps","1")
    cvar_vip_bulletdmg = register_cvar("vip_bulletdmg", "1");
    jumps = register_cvar("vip_jumps","1")
    vip_hud = register_cvar("vip_hud","1")
    g_type = register_cvar("vip_bulletdamage","1")
    health_add = register_cvar("vip_hp_kill", "10")
    health_hs_add = register_cvar("vip_hp_hs", "25")
    health_max = register_cvar("vip_hp_max", "100")
    mpd = register_cvar("vip_money_damage","3")
    mkb = register_cvar("vip_money_kill","500")
    mhb = register_cvar("vip_money_hs","1000")
    items = register_cvar("vip_items_round", "abcdefg")
    gun_menu = register_cvar("vip_gun_menu","1")
    g_hudmsg = CreateHudSyncObj()
    g_iSize = sizeof(g_flCoords);
    maxplayers = get_maxplayers()
    
    
}

public plugin_cfg()
{    
    
    
    new Dir[ 64 ];
    get_configsdir(Dir,charsmax(Dir));
    formatex ( hk_File, charsmax ( hk_File ), "%s/%s", Dir, hk_Folder );
    formatex ( hk_File1, charsmax ( hk_File1 ), "%s/%s.cfg", hk_File, hk_cfg );
    if(!dir_exists(hk_File))
    mkdir(hk_File);

    formatex ( hk_File4, charsmax ( hk_File4 ), "%s/%s", hk_File, hk_viplist );
    
    if (!file_exists(hk_File4))
    write_file(hk_File4,"; -->VIP List<--");
    
    new hk_Buffer[ 192 ], hk_Line, hk_Len;
    while ( ( hk_Line = read_file ( hk_File4, hk_Line, hk_Buffer, charsmax ( hk_Buffer ), hk_Len ) ) )
    {
        if ( ! strlen ( hk_Buffer ) || hk_Buffer[ 0 ] == ';' || ( hk_Buffer[ 0 ] == '/' && hk_Buffer[ 1 ] == '/' ) )
            continue;
            
        copy ( hk_VipsList[ hk_TotalLines++ ], 32, hk_Buffer );

    }    
    
    if(!file_exists(hk_File1))
    {
    write_file(hk_File1,"// Vip Configuration File")
    write_file(hk_File1,"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Vips Online")
    write_file(hk_File1,"// Arata Vip-urile online in HUD prin scrierea in chat a comenzii /vips")
    write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
    write_file(hk_File1,"vip_hud ^"1^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Hp primit pe un kill  ")
    write_file(hk_File1,"vip_hp_kill ^"10^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Hp primit pe un hs")
    write_file(hk_File1,"vip_hp_hs ^"25^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Valoarea maxima a hp-ului pe care o poate avea Vip-ul")
    write_file(hk_File1,"vip_hp_max ^"100^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// VIP bullet Damage // 1 = ON; 0 = OFF")
    write_file(hk_File1,"vip_bulletdamage ^"1^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Banii primiti pe un damage")
    write_file(hk_File1,"vip_money_damage ^"3^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Banii primiti pe un kill")
    write_file(hk_File1,"vip_money_kill ^"500^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Banii primiti pe un hs")
    write_file(hk_File1,"vip_money_hs ^"1000^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Guns Menu - afiseaza meniul cu arme")
    write_file(hk_File1,"// Pe hartile de tip AWP, acest meniu va fi automat dezactivat")
    write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
    write_file(hk_File1,"vip_gun_menu ^"1^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Items per round - primiti diverse obiecte la inceputul fiecarei runde")
    write_file(hk_File1,"// a - He Grenade")
    write_file(hk_File1,"// b - Flashbang (x2)")
    write_file(hk_File1,"// c - Smoke Grenade ")
    write_file(hk_File1,"// d - Deagle")
    write_file(hk_File1,"// e - Vest + Helm")
    write_file(hk_File1,"// f - Defuse Kit (Doar CT)")
    write_file(hk_File1,"// g - NightVision")
    write_file(hk_File1,"vip_items_round ^"abcdef^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Jumps - Salturi")
    write_file(hk_File1,"// 1 - Activat   0 - Dezactivat")
    write_file(hk_File1,"vip_jumps ^"1^"")
    write_file(hk_File1,"")
    write_file(hk_File1,"// Cate sarituri in plus poate sa faca deodata")
    write_file(hk_File1,"vip_maxjumps ^"1^"")
    write_file(hk_File1,"")
    
    }
    
    server_cmd("exec %s",hk_File1)
}

public client_putinserver(id)
{
    
    hk_IsUserVip[ id ] = 0;
    jumpnum[id] = 0
    dojump[id] = false
}

public client_disconnect(id)
{
    
    hk_IsUserVip[ id ] = 0;
    jumpnum[id] = 0
    dojump[id] = false
}
public addvips(id, level, cid)
{
    if (!cmd_access(id, level, cid, 2))
        return PLUGIN_HANDLED

    new arg[32]    
    
    read_argv(1, arg, 31)
    
    new szLog[256];
    formatex(szLog,255,"%s",arg);
    write_file(hk_File4,szLog,-1);
    console_print(id, "[KRIPT] Vip-ul a fost adaugat in lista")
    
    return PLUGIN_HANDLED
    
}

public vmenu(id)
{
    if(get_user_flags(id) & VIP_LEVEL_ACCES)
    {
        GameMenu(id);
    }
    else
    {
        ColorChat( id,  "^4[CSGO REMAKE] ^1Acest meniu este doar pentru ^4VIP ^1!");
    }
    return 0;
}

public vmenu2(id)
{
    if(get_user_flags(id) & VIP_LEVEL_ACCES)
    {
        Showrod( id );
    }
    else
    {
        ColorChat(id, "^4[CSGO.KRIPT.RO] ^1Acest meniu este doar pentru ^4VIP ^3!");
    }
    return 0;
}

public GameMenu(id)
{
    new Menu = menu_create("\r[CSGO REMAKE]  \rVIP \yMENU", "GameMenuCmd");
    menu_additem(Menu, "\rARME", "", 0);
    menu_additem(Menu, "\yCumpara \rZeus x27-\w2500$", "", 0);
    menu_additem(Menu, "\yCumpara \rMolotov-\w1200$", "", 0);
    menu_additem(Menu, "\yV.I.P \rModels", "", 0);
    menu_setprop(Menu, 6, 1);
    menu_display(id, Menu, 0);
    return 1;
}

public GameMenuCmd(id, menu, item)
{
    switch (item)
    {
        case 0:
        {
            client_cmd(id, "say /arme");
        }
        case 1:
        {
            client_cmd(id, "say /zeus");
        }
        case 2:
        {
            client_cmd(id, "say /molotov");
        }
        case 3:
        {
            client_cmd(id, "say /models");
        }
    }
    
    if (item == MENU_EXIT)
    {
    menu_destroy( menu );
    return PLUGIN_CONTINUE;
    }
    return 1
}

public vips(id, level, cid)
{
    if (!cmd_access(id, level, cid, 1))
        return PLUGIN_HANDLED
    
    new s_Name[ 32 ], s_AuthID[ 32 ];
    get_user_name ( id, s_Name, 31 );
    get_user_authid ( id, s_AuthID, 31 );
    
    console_print(id, "========= .::CSGO REMAKE::. ==========")
    for ( new i; i < hk_TotalLines; i++ )
    {
        if (  strcmp ( s_Name, hk_VipsList[ i ] ) || strcmp ( s_AuthID, hk_VipsList[ i ] ) )
        console_print(id, " - %s", hk_VipsList[ i ])    
            
        
    }
    console_print(id, "========== .::CSGO REMAKE::. ============")
    return PLUGIN_HANDLED
}


public Event_TextMsg_Restart()
{
    hk_IsRestarting = true
}
 
public Event_HLTV_New_Round()
{
    if( hk_IsRestarting )
    {
        hk_IsRestarting = false
        hk_iRoundCount = 0
    }
}

public Hook_PlayerSpawn ( const id )
{
    if ( ! is_user_alive ( id ) )
        return HAM_IGNORED;
    if ( ! is_user_vip ( id ) )
    {
        hk_IsUserVip[ id ] = 0;
        return HAM_IGNORED;
    }
    
    hk_IsUserVip[ id ] = 1;
    hk_iRoundCount++
    new map[32];
    get_mapname(map,31);
    
    if(equali(map, "awp_", 3))
    return HAM_IGNORED;
    
    if (get_pcvar_num(gun_menu) == 1)
    if(hk_iRoundCount>=4)
    Showrod(id);
    
    return HAM_IGNORED;
}

public on_damage(id)
{
    if(get_pcvar_num(g_type))
    {
        static attacker; attacker = get_user_attacker(id)
        static damage; damage = read_data(2)    

        if ( is_user_vip ( attacker ) )
        {
            hk_IsUserVip[ id ] = 1;
        
            if(is_user_connected(attacker))
            {
                if(fm_is_ent_visible(attacker,id))
                {
                    set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
                    ShowSyncHudMsg(attacker, g_hudmsg, "%i^n", damage)                
                }
                    
                
            }
        }else hk_IsUserVip[ id ] = 0;
    }
}

public Damage(id)
{
    new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
    if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
    
    if ( is_user_vip ( id ) )
    {
        hk_IsUserVip[ id ] = 1;
        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)
    }else hk_IsUserVip[ id ] = 0;
}

public death_msg()
{
    if(read_data(1)<=maxplayers && read_data(1) && read_data(1)!=read_data(2)) 
    cs_set_user_money(read_data(1),cs_get_user_money(read_data(1)) + get_pcvar_num(mkb) - 300)
}

public hook_death()
{
    hk_Killer = read_data(1)
   
    if ( (read_data(3) == 1) && (read_data(5) == 0) )
    {
        hk_HpAdd = get_pcvar_num (health_hs_add)
    }
    else
    hk_HpAdd = get_pcvar_num (health_add)
    
    hk_HpMax = get_pcvar_num (health_max)
   
   
    if ( ! is_user_vip ( hk_Killer ) )
    {
        hk_IsUserVip[ hk_Killer ] = 0;
        return;
    }
    hk_IsUserVip[ hk_Killer ] = 1;
    
    hk_KillerHp = get_user_health(hk_Killer)
    hk_KillerHp += hk_HpAdd
   
    if (hk_KillerHp > hk_HpMax) hk_KillerHp = hk_HpMax
    set_user_health(hk_Killer, hk_KillerHp)

}

public vip_damage(iAttacker, iVictim, iDamage)
{
	if(!(get_user_flags(iAttacker) & VIP_LEVEL_ACCES))
		return 1;
		
	if(get_pcvar_num(cvar_vip_bulletdmg) == 1)
	{
		if(++g_iPosition[iAttacker] == g_iSize)
			g_iPosition[iAttacker] = 0;
	
		set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), Float: g_flCoords[g_iPosition[iAttacker]][0], Float: g_flCoords[g_iPosition[iAttacker]][1], 0, 0.1, 2.5, 0.02, 0.02);
		show_dhudmessage(iAttacker, "%i", iDamage);
	}
	
	return 1;
}

public showAdmin(id)
{
    if(get_pcvar_num(vip_hud) == 1)
    {
            
        
        new num, iLen, admin
        static pl[32], name[32], szBuff[2048]
    
        get_players(pl, num, "c")
    
        for(new i = 0; i < num; i++)
        {
            if (  is_user_vip ( pl[i] ) )
            {
            hk_IsUserVip[ pl[i] ] = 1;
            get_user_name(pl[i], name, 31)
            iLen += format(szBuff[iLen], 2048 - iLen, "%d. %s^n", admin + 1, name)
            admin++
            }
            
        }

    
        set_hudmessage(0, 255, 0, 0.02, 0.2, 0, 6.0, 7.0 )
        show_hudmessage(id, " %s online:^n%s", admin > 1 ? "Vips" : "Vips", szBuff)
    
        arrayset(szBuff, 0, 2048)
    }
    return PLUGIN_HANDLED
}

public client_PreThink(id)
{
        if(!is_user_alive(id)) return PLUGIN_CONTINUE
        if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE
    
        if ( ! is_user_vip ( id ) )
        {
            hk_IsUserVip[ id ] = 0;
            return PLUGIN_CONTINUE
        }
    
    
        hk_IsUserVip[ id ] = 1;
        new nbut = get_user_button(id)
        new obut = get_user_oldbutton(id)
        if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
        {
            if(jumpnum[id] < get_cvar_num("vip_maxjumps"))
            {
                dojump[id] = true
                jumpnum[id]++
                return PLUGIN_CONTINUE
            }
        }
        if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
        {
            jumpnum[id] = 0
            return PLUGIN_CONTINUE
        }
    
        return PLUGIN_CONTINUE
}

public client_PostThink(id)
{
    if(!is_user_alive(id)) return PLUGIN_CONTINUE
    if(get_pcvar_num(jumps) == 0) return PLUGIN_CONTINUE
    
    if ( ! is_user_vip ( id ) )
    {
        hk_IsUserVip[ id ] = 0;
        return PLUGIN_CONTINUE
    }
    
    
    hk_IsUserVip[ id ] = 1;
    if(dojump[id] == true)
    {
        new Float:velocity[3]    
        entity_get_vector(id,EV_VEC_velocity,velocity)
        velocity[2] = random_float(265.0,285.0)
        entity_set_vector(id,EV_VEC_velocity,velocity)
        dojump[id] = false
        return PLUGIN_CONTINUE
    }
    
    return PLUGIN_CONTINUE
}

public Showrod( id ) 
{
    if(!is_user_alive(id) || !(get_user_flags(id) & VIP_LEVEL_ACCES))
        return 1;
    new menu = menu_create( "\r[CSGO REMAKE] \yMeniu \yArme", "Pressedrod" );
    menu_additem(menu, "\yM4A1+Deagle+Grenazi", "", 0 );
    menu_additem(menu, "\yAK47+Deagle+Grenazi", "", 0 );
    menu_additem(menu, "\yAWP+Deagle+Grenazi", "", 0 );
    menu_display( id, menu, 0);
    return 1;
}

public Pressedrod(id, menu, item) 
{
    switch (item) 
    {
        case 0: 
        { 
            drop_weapons(id, 1)
            drop_weapons(id, 2)
            give_item(id, "weapon_knife");    
            give_item(id, "weapon_m4a1");
            give_item(id, "weapon_deagle");
            give_item(id, "weapon_hegrenade");
            give_item(id, "weapon_flashbang");
            cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
            cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
            cs_set_user_bpammo(id, CSW_M4A1, 90);
            cs_set_user_bpammo(id, CSW_DEAGLE, 35);
            ColorChat (id, "^4[CSGO] ^1Ai ales ^4M4A1^1+Deagle+^4Set grenazi.");
            }

        case 1:
    {
            drop_weapons(id, 1)
            drop_weapons(id, 2)
            give_item(id, "weapon_knife");
            give_item(id, "weapon_ak47");
            give_item(id, "weapon_deagle");
            give_item(id, "weapon_hegrenade");
            give_item(id, "weapon_flashbang");
            cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
            cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
            cs_set_user_bpammo(id, CSW_FAMAS, 90);
            cs_set_user_bpammo(id, CSW_DEAGLE, 35);
            ColorChat(id, "^4[CSGO] ^1Ai ales ^4AK47^1+Deagle+^4Set grenazi.");
    }
        case 2:
    {
            drop_weapons(id, 1)
            drop_weapons(id, 2)
            give_item(id, "weapon_knife");
            give_item(id, "weapon_awp");
            give_item(id, "weapon_deagle");
            give_item(id, "weapon_hegrenade");
            give_item(id, "weapon_flashbang");
            cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
            cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
            cs_set_user_bpammo(id, CSW_AWP, 30);
            cs_set_user_bpammo(id, CSW_DEAGLE, 35);
            ColorChat( id,"^4[CSGO] ^1Ai ales ^4AWP^1+Deagle+^4Set grenazi.");
    }  
    }
    if (item == MENU_EXIT)
    {
    menu_destroy( menu );
    return PLUGIN_HANDLED;
    }
    return 1;
}

public get_item_flags() 
{ 
    new sFlags[24] 
    get_pcvar_string(items,sFlags,23) 
    return read_flags(sFlags) 
}

stock is_user_vip ( id )
{
    new s_Name[ 32 ], s_AuthID[ 32 ];
    get_user_name ( id, s_Name, 31 );
    get_user_authid ( id, s_AuthID, 31 );
    
    for ( new i; i < hk_TotalLines; i++ )
    {
        if ( ! strcmp ( s_Name, hk_VipsList[ i ] ) )
            return 1;
        if ( ! strcmp ( s_AuthID, hk_VipsList[ i ] ) )
            return 1;
    }
    
    return 0;

}

stock StripWeapons(id, Type, bool: bSwitchIfActive = true)
{
    new iReturn;
    
    if(is_user_alive(id))
    {
        new iEntity, iWeapon;
        while((iWeapon = GetWeaponFromSlot(id, Type, iEntity)) > 0)
            iReturn = ham_strip_user_weapon(id, iWeapon, Type, bSwitchIfActive);
    }
    
    return iReturn;
}

stock GetWeaponFromSlot( id , iSlot , &iEntity )
{
    if ( !( 1 <= iSlot <= 5 ) )
        return 0;
    
    iEntity = 0;
    const m_rgpPlayerItems_Slot0 = 367;
    const m_iId = 43;
    const XO_WEAPONS = 4;
    const XO_PLAYER = 5;
        
    iEntity = get_pdata_cbase( id , m_rgpPlayerItems_Slot0 + iSlot , XO_PLAYER );
    
    return ( iEntity > 0 ) ? get_pdata_int( iEntity , m_iId , XO_WEAPONS ) : 0;
}  

stock ham_strip_user_weapon(id, iCswId, iSlot = 0, bool:bSwitchIfActive = true)
{
    new iWeapon
    if( !iSlot )
    {
        static const iWeaponsSlots[] = {
            -1,
            2, //CSW_P228
            -1,
            1, //CSW_SCOUT
            4, //CSW_HEGRENADE
            1, //CSW_XM1014
            5, //CSW_C4
            1, //CSW_MAC10
            1, //CSW_AUG
            4, //CSW_SMOKEGRENADE
            2, //CSW_ELITE
            2, //CSW_FIVESEVEN
            1, //CSW_UMP45
            1, //CSW_SG550
            1, //CSW_GALIL
            1, //CSW_FAMAS
            2, //CSW_USP
            2, //CSW_GLOCK18
            1, //CSW_AWP
            1, //CSW_MP5NAVY
            1, //CSW_M249
            1, //CSW_M3
            1, //CSW_M4A1
            1, //CSW_TMP
            1, //CSW_G3SG1
            4, //CSW_FLASHBANG
            2, //CSW_DEAGLE
            1, //CSW_SG552
            1, //CSW_AK47
            3, //CSW_KNIFE
            1 //CSW_P90
        }
        iSlot = iWeaponsSlots[iCswId]
    }

    const XTRA_OFS_PLAYER = 5
    const m_rgpPlayerItems_Slot0 = 367

    iWeapon = get_pdata_cbase(id, m_rgpPlayerItems_Slot0 + iSlot, XTRA_OFS_PLAYER)

    const XTRA_OFS_WEAPON = 4
    const m_pNext = 42
    const m_iId = 43

    while( iWeapon > 0 )
    {
        if( get_pdata_int(iWeapon, m_iId, XTRA_OFS_WEAPON) == iCswId )
        {
            break
        }
        iWeapon = get_pdata_cbase(iWeapon, m_pNext, XTRA_OFS_WEAPON)
    }

    if( iWeapon > 0 )
    {
        const m_pActiveItem = 373
        if( bSwitchIfActive && get_pdata_cbase(id, m_pActiveItem, XTRA_OFS_PLAYER) == iWeapon )
        {
            ExecuteHamB(Ham_Weapon_RetireWeapon, iWeapon)
        }

        if( ExecuteHamB(Ham_RemovePlayerItem, id, iWeapon) )
        {
            user_has_weapon(id, iCswId, 0)
            ExecuteHamB(Ham_Item_Kill, iWeapon)
            return 1
        }
    }

    return 0
} 

stock drop_weapons(id, dropwhat)
{
    // Get user weapons
    new weapons[32], num_weapons, index, weaponid
    get_user_weapons(id, weapons, num_weapons)
    
    // Loop through them and drop primaries or secondaries
    for (index = 0; index < num_weapons; index++)
    {
        // Prevent re-indexing the array
        weaponid = weapons[index]
        
        if ((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) 
        || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM))
        || (dropwhat == 3) && (((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM) || ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            // Get weapon entity
            new wname[32]
            get_weaponname(weaponid, wname, charsmax(wname))
            
            // Player drops the weapon
            engclient_cmd(id, "drop", wname)
        }
    }
}  

   // Stock: ChatColor!
    stock ColorChat(const id, const input[], any:...)
    {
        new count = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)
        
        replace_all(msg, 190, "!g", "^4") // Green Color
        replace_all(msg, 190, "!y", "^1") // Default Color
        replace_all(msg, 190, "!team", "^3") // Team Color
        replace_all(msg, 190, "!team2", "^0") // Team2 Color
        
        if (id) players[0] = id; else get_players(players, count, "ch")
        {
            for (new i = 0; i < count; i++)
            {
                if (is_user_connected(players[i]))
                {
                    message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
                    write_byte(players[i]);
                    write_string(msg);
                    message_end();
                }
            }
        }
    }

 

Edited by Shadows Adi
Update v1.2

Share this post


Link to post
Share on other sites

Changelog:

 

   v1.0

      Versiunea publica.

Update: 

    1.1 

             - Au fost scoase reclamele.

             - Am fixat un bug la meniul principal.

             - Am optimizat codul.

Update: 

    1.2 

             - Bug fix: 

                               - La meniul /arme nu aparea mereu meniul de arme.

                               - La meniul /vmenu nu puteai selecta optiunile din meniu.

                               - Toti jucatorii puteau deschide meniul

              - Am adaugat suport ChatColor.

              - Am schimbat bullet damage-ul normal cu unul mai imbunatatit.

Edited by Shadows Adi

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  


×
×
  • Create New...