/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <fakemeta>
#include <engine>
 
#define PLUGIN "Knife VIP"
#define VERSION "1.0"
#define AUTHOR "Danii"
 
#define VIPJOG ADMIN_LEVEL_H
#define VIP_CHECK ADMIN_LEVEL_H
 
new maxplayers
new gmsgSayText
new bool:HasC4[33]
new kes_szam[33]
 
 
public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
 
	register_message(get_user_msgid("SayText"),"vip_perfix")
	register_event("ResetHUD", "resetModel", "b")
	maxplayers = get_maxplayers()
         gmsgSayText = get_user_msgid("SayText")
         register_clcmd("say", "handle_say")
	register_clcmd("say /vip","vipakarlenni")
	RegisterHam(Ham_TakeDamage, "player", "damage", 0)
	register_event( "ResetHUD", "ResetHUD", "be" )
	register_clcmd( "say /vipmenu", "vipmenu", VIPJOG);
	register_event("CurWeapon", "Event_Change_Weapon", "be", "1=1")
 
}
 
public plugin_precache() {
        precache_model("models/player/killah_vip_ct/killah_vip_ct.mdl")
        precache_model("models/player/killah_vip_te/killah_vip_te.mdl")
        precache_model("models/killah_vip/vipkes.mdl")
        precache_model("models/killah_vip/pvipkes.mdl")
 
        return PLUGIN_CONTINUE
}
 
public ResetHUD( id )
{
    set_task( 0.5, "VIP", id + 6910 )
 
    if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
        {
            HasC4[id] = true;
            set_task( 0.5, "VIP", id + 6910 )
        }
    if (get_user_team(id) == 2)
        {
            set_task( 0.5, "VIP", id + 6910 )
        }
}
 
public VIP( TaskID, id )
{
    new id = TaskID - 6910
 
    if(get_user_flags(id) & VIPJOG)
    {
        message_begin( MSG_ALL, get_user_msgid( "ScoreAttrib" ) )
        write_byte( id )
        write_byte( 4 )
        message_end( )
    }
 
    return PLUGIN_HANDLED
}
 
public resetModel(id, level, cid) {
        if (get_user_flags(id) & VIPJOG) {
                new CsTeams:userTeam = cs_get_user_team(id)
                if (userTeam == CS_TEAM_T) {
                        cs_set_user_model(id, "killah_vip_te")
                }
                else if(userTeam == CS_TEAM_CT) {
                        cs_set_user_model(id, "killah_vip_ct")
                }
                else {
                        cs_reset_user_model(id)
                }
        }
 
        return PLUGIN_CONTINUE
}
 
public vipmenu(id) {
	new cim[121]
	format(cim, charsmax(cim), "\yK i l l a h ~ Only Knife! VIP KÉS MENÜ!")
	new menu = menu_create(cim, "fo_menu_h" )
 
	if(get_user_flags(id) & VIPJOG)
	menu_additem(menu,"\rVIP KÉS","1",0)
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
}
 
public fo_menu_h(id, menu, item)
	{
	if( item == MENU_EXIT )
	{
	menu_destroy(menu);
	return PLUGIN_HANDLED;
	}
	new data[9], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);
 
	switch(key)
	{
	case 1:{
		if(!is_user_alive(id))
		{
			print_color(id, "!gK i l l ah!t ~!y Csak élők tudnak választani.")
		}
		else
		{
			strip_user_weapons(id)
			give_item(id, "weapon_knife")
			kes_szam[id] = -3
			print_color(id, "!gK i l l ah!t ~!y Sikeresen kiválasztottad késed.")
		}
	}
}
	menu_destroy(menu)
	return PLUGIN_HANDLED
}
 
public damage(victim, inflictor, attacker, Float:damage, damage_type)
{
 if(is_user_alive(attacker) && VIPJOG){
  new fgy = get_user_weapon(attacker)
 if(fgy == CSW_KNIFE)
  {
 SetHamParamFloat(4, damage * 2.0)
  }
 }
}
 
public client_putinserver(id)
{
	set_task(0.7, "vip_jon",id)	
}
 
public Event_Change_Weapon(id)
{
	new fgy = get_user_weapon(id)
	if(kes_szam[id] == -3 && fgy == CSW_KNIFE)
	{
	set_pev(id, pev_viewmodel2, "models/killah_vip/vipkes.mdl")
	set_pev(id, pev_weaponmodel2, "models/killah_vip/pvipkes.mdl")
	}
}
 
public vip_jon(id)
 
	if(get_user_flags(id) & VIPJOG)
	{
	new name[32]
    	get_user_name(id, name, 31)
	print_color(0, "!g*V.I.P*!y Játékos!t %s!y, csatlakozott a szerverre!t!!",name)
}
 
public vipakarlenni(id)
{
   show_motd( id,"addons/amxmodx/configs/vip.txt","Mit kap a VIP?!")
}
 
public vip_perfix(msgId,msgDest,msgEnt){
	new id = get_msg_arg_int(1)
	if(!is_user_connected(id))   
 
	return PLUGIN_CONTINUE
 
	if(get_user_flags(id) & VIPJOG)
	{
		new szTmp[256],szTmp2[256]
		get_msg_arg_string(2,szTmp, charsmax( szTmp ) )
		new szPrefix[64] = "^x04[VIP]"
		if(!equal(szTmp,"#Cstrike_Chat_All")){
			add(szTmp2,charsmax(szTmp2),szPrefix)
			add(szTmp2,charsmax(szTmp2)," ")
			add(szTmp2,charsmax(szTmp2),szTmp)
		}
		else{
			add(szTmp2,charsmax(szTmp2),szPrefix)
			add(szTmp2,charsmax(szTmp2),"^x03 %s1^x01 :  ^x04%s2")
		}
		set_msg_arg_string(2,szTmp2)
	}
	return PLUGIN_CONTINUE
}
 
public handle_say(id)
    {
    new said[192]
    read_args(said,192)
    if( ( containi(said, "who") != -1 && containi(said, "vips") != -1 ) || contain(said, "/vips") != -1 )
    set_task(0.1,"print_adminlist",id)
 
    return PLUGIN_CONTINUE
    }
    public print_adminlist(user)
    {
    new adminnames[33][32]
    new message[256]
    new id, count, x, len
    for(id = 1 ; id <= maxplayers ; id++)
    if(is_user_connected(id))
    if(get_user_flags(id) & VIP_CHECK)
    get_user_name(id, adminnames[count++], 31)
 
    len = format(message, 255, "^4killah^3 ~^1 Jelenlévő vipek: ")
    if(count > 0)
    {
    for(x = 0 ; x < count ; x++)
    {
    len += format(message[len], 255-len, "^x04%s%s ", adminnames[x], x < (count-1) ? "^x01 | ":"")
    if(len > 96 )
    {
    print_message(user, message)
    len = format(message, 255, "^x04")
    }
    }
    print_message(user, message)
    }
    else
    {
    format(message, 255, "^4killah^3 ~^1 Nincs jelenlévő vip !!!")
    print_message(user, message)
    }
    }
    print_message(id, msg[])
    {
    message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
    write_byte(id)
    write_string(msg)
    message_end()
    }
 
stock print_color(const id, const input[], any:...)
{
        new count = 1, players[32]
        static msg[191]
        vformat(msg, 190, input, 3)
 
        replace_all(msg, 190, "!g", "^4")
        replace_all(msg, 190, "!y", "^1")
        replace_all(msg, 190, "!t", "^3")
        replace_all(msg, 190, "á", "á")
        replace_all(msg, 190, "é", "Ă©")
        replace_all(msg, 190, "í", "Ă")
        replace_all(msg, 190, "ó", "Ăł")
        replace_all(msg, 190, "ö", "ö")
        replace_all(msg, 190, "ő", "Ĺ‘")
        replace_all(msg, 190, "ú", "Ăş")
        replace_all(msg, 190, "ü", "ĂĽ")
        replace_all(msg, 190, "ű", "ű")
        replace_all(msg, 190, "Á", "Ă")
        replace_all(msg, 190, "É", "É")
        replace_all(msg, 190, "Í", "ĂŤ")
        replace_all(msg, 190, "Ó", "Ă“")
        replace_all(msg, 190, "Ö", "Ă–")
        replace_all(msg, 190, "Ő", "Ĺ")
        replace_all(msg, 190, "Ú", "Ăš")
        replace_all(msg, 190, "Ü", "Ăś")
        replace_all(msg, 190, "Ű", "Ű")       
 
        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()
                        }
                }
        }
        return PLUGIN_HANDLED
}