Cerere Editare plugin VIP

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

User avatar
GoGuT112
Membru, skill 0
Membru, skill 0
Posts: 83
Joined: 05 Jan 2018, 06:40
Detinator Steam: Da
CS Status: s m o k r a
Detinator server CS: CSGO.DARKLAND.RO
SteamID: https://steamcommuni
Fond eXtream: 0
Location: Giurgiu
Been thanked: 1 time

16 Feb 2019, 01:45

| Afiseaza codul
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>

#define is_user_vip(%1)	(get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
	 PLUGIN_VERSION[] = "1.0", 
	 PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
	180,	// VIATA LA SPAWN
	180,	// ARMURA LA SPAWN
	16000,	// BANII LA START
	3,	// NUMARUL MAXIM DE SARITURI
	440,	// VITEZA MAXIMA
	50,	// DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
	20,	// VIATA PE KILL NORMAL
	35,	// VIATA PE HEADSHOT
	600,	// BANII PE KILL
}

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
	register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("level_mod_", PLUGIN_VERSION);

	register_event("DeathMsg", "event_DeathMsg", "a");
	
	RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
	RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);
}

public client_putinserver(id)
{
	g_JumpNum[id] = 0;
	g_bJump[id] = false;
}

public client_PreThink(id)
{
	if(!is_user_alive(id) || !is_user_vip(id))
		return PLUGIN_CONTINUE;
		
	new nbut = get_user_button(id);
	new obut = get_user_oldbutton(id);
	new jump_num = vip_benefits[MAX_JUMPS];
	
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(g_JumpNum[id] < jump_num)
		{
			g_bJump[id] = true;
			g_JumpNum[id]++;
			return PLUGIN_CONTINUE;
		}
	}
	
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		g_JumpNum[id] = 0;
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	if(!is_user_alive(id) || !is_user_vip(id))
		return PLUGIN_CONTINUE;

	if(g_bJump[id])
	{
		new Float:fVelocity[3];
		entity_get_vector(id, EV_VEC_velocity, fVelocity);
		fVelocity[2] = random_float(265.0, 285.0);
		entity_set_vector(id, EV_VEC_velocity, fVelocity);
		
		g_bJump[id] = false;
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
	new attacker = read_data(1);
	new victim = read_data(2);
	new headshot = read_data(3);
	new hitself = (attacker == victim) ? 1 : 0;

	if(is_user_alive(attacker) && is_user_vip(attacker))
	{
		if(hitself)
			return PLUGIN_HANDLED;

		if(headshot)
			set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);
		else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

		cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));
	}	

	return PLUGIN_HANDLED;
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
	if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
		return HAM_IGNORED;

	if(is_user_vip(attacker) && is_user_alive(attacker))
	{
		fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
		SetHamParamFloat(4, fDamage);
		return HAM_HANDLED;
	}
	return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
	if(!is_user_alive(id))
		return HAM_HANDLED;

	if(is_user_vip(id))
	{
		new Float:fMaxSpeed = float(vip_benefits[SPEED]);
		set_user_maxspeed(id, fMaxSpeed);

		new command[128];
		formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
		client_cmd(id, command);
	}

	return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
	if(!is_user_alive(id))
		return HAM_IGNORED;

	if(is_user_vip(id))
	{
		set_user_health(id, vip_benefits[HEALTH]);
		set_user_armor(id, vip_benefits[ARMOR]);
		cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));
	}
	
	return HAM_IGNORED;
}
Salut doresc si eu sa mi se adauge in sursa aceasta urmatoarele chesti , doar daca va pricepeti !
1 : Cand scri in chat /vips sa iti arate in chat o lista cu toti vipi de pe server !
2 : Meniu de arme :
AWP + DEAGLE + Set Grenade
AK47 + DEAGLE + Set Grenade
M4A1 + DEAGLE + Set Grenade la ct + defuse KIT daca se poate
3 : Cand faci kill sa se faca imaginea albastra , gen un flash ...stiti voi despre ce este vorba aici :)
4 : Sa arata damageul facut in timp real
5 : Refil automat la gloante cand dai HeadShot daca se poate
Atat doresc multumes ff frumos celui ce ma ajuta <3
RoyalServer 2
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

16 Feb 2019, 03:34

| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)	(get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
	 PLUGIN_VERSION[] = "1.0", 
	 PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
	180,	// VIATA LA SPAWN
	180,	// ARMURA LA SPAWN
	16000,	// BANII LA START
	3,	// NUMARUL MAXIM DE SARITURI
	440,	// VITEZA MAXIMA
	50,	// DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
	20,	// VIATA PE KILL NORMAL
	35,	// VIATA PE HEADSHOT
	600,	// BANII PE KILL
}


new const g_weapons[] =
{
	CSW_P228,
	CSW_SCOUT,
	CSW_XM1014,
	CSW_MAC10,
	CSW_AUG,
	CSW_ELITE,
	CSW_FIVESEVEN,
	CSW_UMP45,
	CSW_SG550,
	CSW_GALI,
	CSW_GALIL,
	CSW_FAMAS,
	CSW_USP,
	CSW_GLOCK18,
	CSW_AWP,
	CSW_MP5NAVY,
	CSW_M249,
	CSW_M3,
	CSW_M4A1,
	CSW_TMP,
	CSW_G3SG1,
	CSW_DEAGLE,
	CSW_SG552,
	CSW_AK47,
	CSW_P90
}

new const g_max_clip[] =
{
	13,
	10,
	7,
	30,
	30,
	30,
	20,
	25,
	30,
	35,
	35,
	25,
	12,
	20,
	10,
	30,
	100,
	8,
	30,
	30,
	20,
	7,
	30,
	30,
	50
}

new const g_other_weapons[] =
{
	CSW_KNIFE,
	CSW_HEGRENADE,
	CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
	register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("level_mod_", PLUGIN_VERSION);

	register_event("DeathMsg", "event_DeathMsg", "a");
	
	RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
	RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


	register_clcmd( "say /vips", "print_list" );
	register_clcmd( "say_team /vips", "print_list" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public client_putinserver(id)
{
	g_JumpNum[id] = 0;
	g_bJump[id] = false;
}

public client_PreThink(id)
{
	if(!is_user_alive(id) || !is_user_vip(id))
		return PLUGIN_CONTINUE;
		
	new nbut = get_user_button(id);
	new obut = get_user_oldbutton(id);
	new jump_num = vip_benefits[MAX_JUMPS];
	
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(g_JumpNum[id] < jump_num)
		{
			g_bJump[id] = true;
			g_JumpNum[id]++;
			return PLUGIN_CONTINUE;
		}
	}
	
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		g_JumpNum[id] = 0;
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	if(!is_user_alive(id) || !is_user_vip(id))
		return PLUGIN_CONTINUE;

	if(g_bJump[id])
	{
		new Float:fVelocity[3];
		entity_get_vector(id, EV_VEC_velocity, fVelocity);
		fVelocity[2] = random_float(265.0, 285.0);
		entity_set_vector(id, EV_VEC_velocity, fVelocity);
		
		g_bJump[id] = false;
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
	new attacker = read_data(1);
	new victim = read_data(2);
	new headshot = read_data(3);
	new hitself = (attacker == victim) ? 1 : 0;

	if(is_user_alive(attacker) && is_user_vip(attacker))
	{
		if(hitself)
			return;

		if(headshot)
		{
			set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


	for (new a = 0; a < sizeof (g_other_weapons); a++)	if (get_user_weapon(attacker) == g_other_weapons[a])	return
	new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
	for (new a = 0; a < sizeof (g_weapons); a++)
	{
		if (get_user_weapon(attacker) == g_weapons[a])
		{
			new ammo = get_weapon_maxclip(get_user_weapon(attacker))

			if (ammo)
			{
				client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
				cs_set_weapon_ammo(weapon, ammo)
			}
			return
		}
	}
}
		else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

		cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   if(is_user_alive(attacker))
   {
   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<10)
   write_short(1<<10)
   write_short(0x0000)
   write_byte(0)
   write_byte(0)
   write_byte(255)
   write_byte(75)
   message_end()
   }
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
	if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
		return HAM_IGNORED;

	if(is_user_vip(attacker) && is_user_alive(attacker))
	{
		fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
		SetHamParamFloat(4, fDamage);
		return HAM_HANDLED;
	}
	return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
	if(!is_user_alive(id))
		return HAM_HANDLED;

	if(is_user_vip(id))
	{
		new Float:fMaxSpeed = float(vip_benefits[SPEED]);
		set_user_maxspeed(id, fMaxSpeed);

		new command[128];
		formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
		client_cmd(id, command);
	}

	return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
	if(!is_user_alive(id))
		return HAM_IGNORED;

	if(is_user_vip(id))
	{
		set_user_health(id, vip_benefits[HEALTH]);
		set_user_armor(id, vip_benefits[ARMOR]);
		cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

		MeniuArme(id)
	}
	
	return HAM_IGNORED;
}

public MeniuArme(id)
{
	new menu = menu_create( "Equipment", "menu_handler" )

	menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
	menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
	menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

	menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
	menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
	if( Item < 0 || !is_user_alive(id) )	return 0;

	new Key[ 3 ],Access, CallBack;
	menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
	new isKey = str_to_num( Key );

	switch( isKey )
	{
		case 1:
		{       
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_hegrenade")
			give_item(id, "weapon_flashbang")
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
			give_item(id, "weapon_smokegrenade")

			give_item(id, "weapon_awp")
			cs_set_user_bpammo(id, CSW_AWP, 30)
		}
		case 2:
		{
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_hegrenade")
			give_item(id, "weapon_flashbang")
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
			give_item(id, "weapon_smokegrenade")

			give_item(id, "weapon_ak47")
			cs_set_user_bpammo(id, CSW_AK47, 90)
		}
		case 3:
		{
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_hegrenade")
			give_item(id, "weapon_flashbang")
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
			give_item(id, "weapon_smokegrenade")

			give_item(id, "weapon_m4a1")
			cs_set_user_bpammo(id, CSW_M4A1, 90)

			if(cs_get_user_team(id)==CS_TEAM_CT)	give_item(id, "item_thighpack");
		}  

	}
	menu_destroy(Menu) 
	return PLUGIN_HANDLED
}

public print_list( user )
{
	new adminnames[ 33 ][ 32 ];
	new message[ 256 ];
	new id, count, x, len;

	for( id = 1; id <= get_maxplayers( ); id++ )
	{
		if( is_user_connected( id ) )
		{
			if( is_user_vip(id) )
			{
				get_user_name( id, adminnames[ count ++ ], 31 );
			}
		}
	}

	len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

	if( count > 0 )
	{
		for( x = 0; x < count; x++ )
		{
			len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

			if( len > 96 )
			{
				len = formatex( message, 255, "" );
				print_message( user, message );
			}
		}

		print_message( user, message );
	}
	else
	{
		len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
		print_message( user, message );
	}
}

print_message( id, msg[ ] )
{
	message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
	write_byte( id );
	write_string( msg );
	message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 && is_user_vip(id) )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }  
  
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
	for (new a = 0; a < sizeof (g_weapons); a++)
		if (wpnid == g_weapons[a])
			return g_max_clip[a]

	return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
	new name[32]

	if(wpnid)
		get_weaponname(wpnid, name, 31)

	if (!equal(name, "weapon_", 7))
		format(name, sizeof (name) - 1, "weapon_%s", name)

	return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
	new strtype[16] = "classname"
	new ent = id

	switch (jghgtype)
	{
		case 1: strtype = "target"
		case 2: strtype = "targetname"
	}

	while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
	{
	}

	return ent
}[/code]
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
Laurentiu P.
Fost moderator
Fost moderator
Posts: 2550
Joined: 10 Jul 2013, 21:26
Detinator Steam: Da
Reputatie: Fost super moderator
Fond eXtream: 100
Has thanked: 26 times
Been thanked: 64 times
Contact:

16 Feb 2019, 06:38

mutat in modificari-pluginuri/
no...
User avatar
GoGuT112
Membru, skill 0
Membru, skill 0
Posts: 83
Joined: 05 Jan 2018, 06:40
Detinator Steam: Da
CS Status: s m o k r a
Detinator server CS: CSGO.DARKLAND.RO
SteamID: https://steamcommuni
Fond eXtream: 0
Location: Giurgiu
Been thanked: 1 time

16 Feb 2019, 18:56

L E V I N wrote:
| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)	(get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
	 PLUGIN_VERSION[] = "1.0", 
	 PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
	180,	// VIATA LA SPAWN
	180,	// ARMURA LA SPAWN
	16000,	// BANII LA START
	3,	// NUMARUL MAXIM DE SARITURI
	440,	// VITEZA MAXIMA
	50,	// DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
	20,	// VIATA PE KILL NORMAL
	35,	// VIATA PE HEADSHOT
	600,	// BANII PE KILL
}


new const g_weapons[] =
{
	CSW_P228,
	CSW_SCOUT,
	CSW_XM1014,
	CSW_MAC10,
	CSW_AUG,
	CSW_ELITE,
	CSW_FIVESEVEN,
	CSW_UMP45,
	CSW_SG550,
	CSW_GALI,
	CSW_GALIL,
	CSW_FAMAS,
	CSW_USP,
	CSW_GLOCK18,
	CSW_AWP,
	CSW_MP5NAVY,
	CSW_M249,
	CSW_M3,
	CSW_M4A1,
	CSW_TMP,
	CSW_G3SG1,
	CSW_DEAGLE,
	CSW_SG552,
	CSW_AK47,
	CSW_P90
}

new const g_max_clip[] =
{
	13,
	10,
	7,
	30,
	30,
	30,
	20,
	25,
	30,
	35,
	35,
	25,
	12,
	20,
	10,
	30,
	100,
	8,
	30,
	30,
	20,
	7,
	30,
	30,
	50
}

new const g_other_weapons[] =
{
	CSW_KNIFE,
	CSW_HEGRENADE,
	CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

public plugin_init()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
	register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("level_mod_", PLUGIN_VERSION);

	register_event("DeathMsg", "event_DeathMsg", "a");
	
	RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
	RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


	register_clcmd( "say /vips", "print_list" );
	register_clcmd( "say_team /vips", "print_list" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public client_putinserver(id)
{
	g_JumpNum[id] = 0;
	g_bJump[id] = false;
}

public client_PreThink(id)
{
	if(!is_user_alive(id) || !is_user_vip(id))
		return PLUGIN_CONTINUE;
		
	new nbut = get_user_button(id);
	new obut = get_user_oldbutton(id);
	new jump_num = vip_benefits[MAX_JUMPS];
	
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(g_JumpNum[id] < jump_num)
		{
			g_bJump[id] = true;
			g_JumpNum[id]++;
			return PLUGIN_CONTINUE;
		}
	}
	
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		g_JumpNum[id] = 0;
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	if(!is_user_alive(id) || !is_user_vip(id))
		return PLUGIN_CONTINUE;

	if(g_bJump[id])
	{
		new Float:fVelocity[3];
		entity_get_vector(id, EV_VEC_velocity, fVelocity);
		fVelocity[2] = random_float(265.0, 285.0);
		entity_set_vector(id, EV_VEC_velocity, fVelocity);
		
		g_bJump[id] = false;
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
	new attacker = read_data(1);
	new victim = read_data(2);
	new headshot = read_data(3);
	new hitself = (attacker == victim) ? 1 : 0;

	if(is_user_alive(attacker) && is_user_vip(attacker))
	{
		if(hitself)
			return;

		if(headshot)
		{
			set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


	for (new a = 0; a < sizeof (g_other_weapons); a++)	if (get_user_weapon(attacker) == g_other_weapons[a])	return
	new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
	for (new a = 0; a < sizeof (g_weapons); a++)
	{
		if (get_user_weapon(attacker) == g_weapons[a])
		{
			new ammo = get_weapon_maxclip(get_user_weapon(attacker))

			if (ammo)
			{
				client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
				cs_set_weapon_ammo(weapon, ammo)
			}
			return
		}
	}
}
		else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

		cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   if(is_user_alive(attacker))
   {
   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<10)
   write_short(1<<10)
   write_short(0x0000)
   write_byte(0)
   write_byte(0)
   write_byte(255)
   write_byte(75)
   message_end()
   }
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
	if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
		return HAM_IGNORED;

	if(is_user_vip(attacker) && is_user_alive(attacker))
	{
		fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
		SetHamParamFloat(4, fDamage);
		return HAM_HANDLED;
	}
	return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
	if(!is_user_alive(id))
		return HAM_HANDLED;

	if(is_user_vip(id))
	{
		new Float:fMaxSpeed = float(vip_benefits[SPEED]);
		set_user_maxspeed(id, fMaxSpeed);

		new command[128];
		formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
		client_cmd(id, command);
	}

	return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
	if(!is_user_alive(id))
		return HAM_IGNORED;

	if(is_user_vip(id))
	{
		set_user_health(id, vip_benefits[HEALTH]);
		set_user_armor(id, vip_benefits[ARMOR]);
		cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

		MeniuArme(id)
	}
	
	return HAM_IGNORED;
}

public MeniuArme(id)
{
	new menu = menu_create( "Equipment", "menu_handler" )

	menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
	menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
	menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

	menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
	menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
	if( Item < 0 || !is_user_alive(id) )	return 0;

	new Key[ 3 ],Access, CallBack;
	menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
	new isKey = str_to_num( Key );

	switch( isKey )
	{
		case 1:
		{       
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_hegrenade")
			give_item(id, "weapon_flashbang")
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
			give_item(id, "weapon_smokegrenade")

			give_item(id, "weapon_awp")
			cs_set_user_bpammo(id, CSW_AWP, 30)
		}
		case 2:
		{
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_hegrenade")
			give_item(id, "weapon_flashbang")
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
			give_item(id, "weapon_smokegrenade")

			give_item(id, "weapon_ak47")
			cs_set_user_bpammo(id, CSW_AK47, 90)
		}
		case 3:
		{
			give_item(id, "weapon_deagle")
			cs_set_user_bpammo(id, CSW_DEAGLE, 35)
			give_item(id, "weapon_hegrenade")
			give_item(id, "weapon_flashbang")
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
			give_item(id, "weapon_smokegrenade")

			give_item(id, "weapon_m4a1")
			cs_set_user_bpammo(id, CSW_M4A1, 90)

			if(cs_get_user_team(id)==CS_TEAM_CT)	give_item(id, "item_thighpack");
		}  

	}
	menu_destroy(Menu) 
	return PLUGIN_HANDLED
}

public print_list( user )
{
	new adminnames[ 33 ][ 32 ];
	new message[ 256 ];
	new id, count, x, len;

	for( id = 1; id <= get_maxplayers( ); id++ )
	{
		if( is_user_connected( id ) )
		{
			if( is_user_vip(id) )
			{
				get_user_name( id, adminnames[ count ++ ], 31 );
			}
		}
	}

	len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

	if( count > 0 )
	{
		for( x = 0; x < count; x++ )
		{
			len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

			if( len > 96 )
			{
				len = formatex( message, 255, "" );
				print_message( user, message );
			}
		}

		print_message( user, message );
	}
	else
	{
		len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
		print_message( user, message );
	}
}

print_message( id, msg[ ] )
{
	message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
	write_byte( id );
	write_string( msg );
	message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 && is_user_vip(id) )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }  
  
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
	for (new a = 0; a < sizeof (g_weapons); a++)
		if (wpnid == g_weapons[a])
			return g_max_clip[a]

	return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
	new name[32]

	if(wpnid)
		get_weaponname(wpnid, name, 31)

	if (!equal(name, "weapon_", 7))
		format(name, sizeof (name) - 1, "weapon_%s", name)

	return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
	new strtype[16] = "classname"
	new ent = id

	switch (jghgtype)
	{
		case 1: strtype = "target"
		case 2: strtype = "targetname"
	}

	while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
	{
	}

	return ent
}[/code]
Nu imi arata damageul dat playerilor doar cand membrii vip imi arata ..
Daca poti sa imi faci comanda /vreauvip care sa deschida un html cu info de la vip
Si sa nu poata lua 2 arme din meniu gen daca iau runda asta ak47 si nu mor next dau pe m4 am si m4 si ak47 :) ms mult
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

16 Feb 2019, 20:16

| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)   (get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
    PLUGIN_VERSION[] = "1.0", 
    PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
   180,   // VIATA LA SPAWN
   180,   // ARMURA LA SPAWN
   16000,   // BANII LA START
   3,   // NUMARUL MAXIM DE SARITURI
   440,   // VITEZA MAXIMA
   50,   // DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
   20,   // VIATA PE KILL NORMAL
   35,   // VIATA PE HEADSHOT
   600,   // BANII PE KILL
}


new const g_weapons[] =
{
   CSW_P228,
   CSW_SCOUT,
   CSW_XM1014,
   CSW_MAC10,
   CSW_AUG,
   CSW_ELITE,
   CSW_FIVESEVEN,
   CSW_UMP45,
   CSW_SG550,
   CSW_GALI,
   CSW_GALIL,
   CSW_FAMAS,
   CSW_USP,
   CSW_GLOCK18,
   CSW_AWP,
   CSW_MP5NAVY,
   CSW_M249,
   CSW_M3,
   CSW_M4A1,
   CSW_TMP,
   CSW_G3SG1,
   CSW_DEAGLE,
   CSW_SG552,
   CSW_AK47,
   CSW_P90
}

new const g_max_clip[] =
{
   13,
   10,
   7,
   30,
   30,
   30,
   20,
   25,
   30,
   35,
   35,
   25,
   12,
   20,
   10,
   30,
   100,
   8,
   30,
   30,
   20,
   7,
   30,
   30,
   50
}

new const g_other_weapons[] =
{
   CSW_KNIFE,
   CSW_HEGRENADE,
   CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

new bool:choosed[33]

public plugin_init()
{
   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
   register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
   set_cvar_string("level_mod_", PLUGIN_VERSION);

   register_event("DeathMsg", "event_DeathMsg", "a");
   
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
   RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
   RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


   register_clcmd( "say /vips", "print_list" );
   register_clcmd( "say_team /vips", "print_list" );
   register_clcmd( "say /vreauvip", "print_info" );
   register_clcmd( "say_team /vreauvip", "print_info" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public event_new_round()	for(new id=0;id<get_maxplayers();++id)	choosed[id]=false

public client_putinserver(id)
{
   g_JumpNum[id] = 0;
   g_bJump[id] = false;

	choosed[id]=false
}

public client_PreThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;
      
   new nbut = get_user_button(id);
   new obut = get_user_oldbutton(id);
   new jump_num = vip_benefits[MAX_JUMPS];
   
   if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
   {
      if(g_JumpNum[id] < jump_num)
      {
         g_bJump[id] = true;
         g_JumpNum[id]++;
         return PLUGIN_CONTINUE;
      }
   }
   
   if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
   {
      g_JumpNum[id] = 0;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;

   if(g_bJump[id])
   {
      new Float:fVelocity[3];
      entity_get_vector(id, EV_VEC_velocity, fVelocity);
      fVelocity[2] = random_float(265.0, 285.0);
      entity_set_vector(id, EV_VEC_velocity, fVelocity);
      
      g_bJump[id] = false;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
   new attacker = read_data(1);
   new victim = read_data(2);
   new headshot = read_data(3);
   new hitself = (attacker == victim) ? 1 : 0;

   if(is_user_alive(attacker) && is_user_vip(attacker))
   {
      if(hitself)
         return;

      if(headshot)
      {
         set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


   for (new a = 0; a < sizeof (g_other_weapons); a++)   if (get_user_weapon(attacker) == g_other_weapons[a])   return
   new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
   for (new a = 0; a < sizeof (g_weapons); a++)
   {
      if (get_user_weapon(attacker) == g_weapons[a])
      {
         new ammo = get_weapon_maxclip(get_user_weapon(attacker))

         if (ammo)
         {
            client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
            cs_set_weapon_ammo(weapon, ammo)
         }
         return
      }
   }
}
else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

      cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<12)
   write_short(1<<12)
   write_short(0x0000)
   write_byte(30)
   write_byte(144)
   write_byte(255)
   write_byte(90)
   message_end()
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
   if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
      return HAM_IGNORED;

   if(is_user_vip(attacker) && is_user_alive(attacker))
   {
      fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
      SetHamParamFloat(4, fDamage);
      return HAM_HANDLED;
   }
   return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
   if(!is_user_alive(id))
      return HAM_HANDLED;

   if(is_user_vip(id))
   {
      new Float:fMaxSpeed = float(vip_benefits[SPEED]);
      set_user_maxspeed(id, fMaxSpeed);

      new command[128];
      formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
      client_cmd(id, command);
   }

   return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
   if(!is_user_alive(id))
      return HAM_IGNORED;

   if(is_user_vip(id))
   {
      set_user_health(id, vip_benefits[HEALTH]);
      set_user_armor(id, vip_benefits[ARMOR]);
      cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

      if(!choosed[id])	MeniuArme(id)
   }
   
   return HAM_IGNORED;
}

public MeniuArme(id)
{
   new menu = menu_create( "Equipment", "menu_handler" )

   menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
   menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
   menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
   menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
   if( Item < 0 || !is_user_alive(id) )   return 0;

   new Key[ 3 ],Access, CallBack;
   menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
   new isKey = str_to_num( Key );

   switch( isKey )
   {
      case 1:
      {       
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_awp")
         cs_set_user_bpammo(id, CSW_AWP, 30)
      }
      case 2:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_ak47")
         cs_set_user_bpammo(id, CSW_AK47, 90)
      }
      case 3:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_m4a1")
         cs_set_user_bpammo(id, CSW_M4A1, 90)

         if(cs_get_user_team(id)==CS_TEAM_CT)   give_item(id, "item_thighpack");
      }
   }

	if(isKey)	choosed[id]=true

   menu_destroy(Menu) 
   return PLUGIN_HANDLED
}

public print_info(id)	show_motd(id,"addons/amxmodx/configs/vipinfo.html","VIP INFO")

public print_list( user )
{
   new adminnames[ 33 ][ 32 ];
   new message[ 256 ];
   new id, count, x, len;

   for( id = 1; id <= get_maxplayers( ); id++ )
   {
      if( is_user_connected( id ) )
      {
         if( is_user_vip(id) )
         {
            get_user_name( id, adminnames[ count ++ ], 31 );
         }
      }
   }

   len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

   if( count > 0 )
   {
      for( x = 0; x < count; x++ )
      {
         len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

         if( len > 96 )
         {
            len = formatex( message, 255, "" );
            print_message( user, message );
         }
      }

      print_message( user, message );
   }
   else
   {
      len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
      print_message( user, message );
   }
}

print_message( id, msg[ ] )
{
   message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
   write_byte( id );
   write_string( msg );
   message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
   for (new a = 0; a < sizeof (g_weapons); a++)
      if (wpnid == g_weapons[a])
         return g_max_clip[a]

   return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
   new name[32]

   if(wpnid)
      get_weaponname(wpnid, name, 31)

   if (!equal(name, "weapon_", 7))
      format(name, sizeof (name) - 1, "weapon_%s", name)

   return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
   new strtype[16] = "classname"
   new ent = id

   switch (jghgtype)
   {
      case 1: strtype = "target"
      case 2: strtype = "targetname"
   }

   while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
   {
   }

   return ent
}[/code]
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
GoGuT112
Membru, skill 0
Membru, skill 0
Posts: 83
Joined: 05 Jan 2018, 06:40
Detinator Steam: Da
CS Status: s m o k r a
Detinator server CS: CSGO.DARKLAND.RO
SteamID: https://steamcommuni
Fond eXtream: 0
Location: Giurgiu
Been thanked: 1 time

16 Feb 2019, 22:25

L E V I N wrote:
| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)   (get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
    PLUGIN_VERSION[] = "1.0", 
    PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
   180,   // VIATA LA SPAWN
   180,   // ARMURA LA SPAWN
   16000,   // BANII LA START
   3,   // NUMARUL MAXIM DE SARITURI
   440,   // VITEZA MAXIMA
   50,   // DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
   20,   // VIATA PE KILL NORMAL
   35,   // VIATA PE HEADSHOT
   600,   // BANII PE KILL
}


new const g_weapons[] =
{
   CSW_P228,
   CSW_SCOUT,
   CSW_XM1014,
   CSW_MAC10,
   CSW_AUG,
   CSW_ELITE,
   CSW_FIVESEVEN,
   CSW_UMP45,
   CSW_SG550,
   CSW_GALI,
   CSW_GALIL,
   CSW_FAMAS,
   CSW_USP,
   CSW_GLOCK18,
   CSW_AWP,
   CSW_MP5NAVY,
   CSW_M249,
   CSW_M3,
   CSW_M4A1,
   CSW_TMP,
   CSW_G3SG1,
   CSW_DEAGLE,
   CSW_SG552,
   CSW_AK47,
   CSW_P90
}

new const g_max_clip[] =
{
   13,
   10,
   7,
   30,
   30,
   30,
   20,
   25,
   30,
   35,
   35,
   25,
   12,
   20,
   10,
   30,
   100,
   8,
   30,
   30,
   20,
   7,
   30,
   30,
   50
}

new const g_other_weapons[] =
{
   CSW_KNIFE,
   CSW_HEGRENADE,
   CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

new bool:choosed[33]

public plugin_init()
{
   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
   register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
   set_cvar_string("level_mod_", PLUGIN_VERSION);

   register_event("DeathMsg", "event_DeathMsg", "a");
   
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
   RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
   RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


   register_clcmd( "say /vips", "print_list" );
   register_clcmd( "say_team /vips", "print_list" );
   register_clcmd( "say /vreauvip", "print_info" );
   register_clcmd( "say_team /vreauvip", "print_info" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public event_new_round()	for(new id=0;id<get_maxplayers();++id)	choosed[id]=false

public client_putinserver(id)
{
   g_JumpNum[id] = 0;
   g_bJump[id] = false;

	choosed[id]=false
}

public client_PreThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;
      
   new nbut = get_user_button(id);
   new obut = get_user_oldbutton(id);
   new jump_num = vip_benefits[MAX_JUMPS];
   
   if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
   {
      if(g_JumpNum[id] < jump_num)
      {
         g_bJump[id] = true;
         g_JumpNum[id]++;
         return PLUGIN_CONTINUE;
      }
   }
   
   if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
   {
      g_JumpNum[id] = 0;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;

   if(g_bJump[id])
   {
      new Float:fVelocity[3];
      entity_get_vector(id, EV_VEC_velocity, fVelocity);
      fVelocity[2] = random_float(265.0, 285.0);
      entity_set_vector(id, EV_VEC_velocity, fVelocity);
      
      g_bJump[id] = false;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
   new attacker = read_data(1);
   new victim = read_data(2);
   new headshot = read_data(3);
   new hitself = (attacker == victim) ? 1 : 0;

   if(is_user_alive(attacker) && is_user_vip(attacker))
   {
      if(hitself)
         return;

      if(headshot)
      {
         set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


   for (new a = 0; a < sizeof (g_other_weapons); a++)   if (get_user_weapon(attacker) == g_other_weapons[a])   return
   new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
   for (new a = 0; a < sizeof (g_weapons); a++)
   {
      if (get_user_weapon(attacker) == g_weapons[a])
      {
         new ammo = get_weapon_maxclip(get_user_weapon(attacker))

         if (ammo)
         {
            client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
            cs_set_weapon_ammo(weapon, ammo)
         }
         return
      }
   }
}
else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

      cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<12)
   write_short(1<<12)
   write_short(0x0000)
   write_byte(30)
   write_byte(144)
   write_byte(255)
   write_byte(90)
   message_end()
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
   if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
      return HAM_IGNORED;

   if(is_user_vip(attacker) && is_user_alive(attacker))
   {
      fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
      SetHamParamFloat(4, fDamage);
      return HAM_HANDLED;
   }
   return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
   if(!is_user_alive(id))
      return HAM_HANDLED;

   if(is_user_vip(id))
   {
      new Float:fMaxSpeed = float(vip_benefits[SPEED]);
      set_user_maxspeed(id, fMaxSpeed);

      new command[128];
      formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
      client_cmd(id, command);
   }

   return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
   if(!is_user_alive(id))
      return HAM_IGNORED;

   if(is_user_vip(id))
   {
      set_user_health(id, vip_benefits[HEALTH]);
      set_user_armor(id, vip_benefits[ARMOR]);
      cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

      if(!choosed[id])	MeniuArme(id)
   }
   
   return HAM_IGNORED;
}

public MeniuArme(id)
{
   new menu = menu_create( "Equipment", "menu_handler" )

   menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
   menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
   menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
   menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
   if( Item < 0 || !is_user_alive(id) )   return 0;

   new Key[ 3 ],Access, CallBack;
   menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
   new isKey = str_to_num( Key );

   switch( isKey )
   {
      case 1:
      {       
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_awp")
         cs_set_user_bpammo(id, CSW_AWP, 30)
      }
      case 2:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_ak47")
         cs_set_user_bpammo(id, CSW_AK47, 90)
      }
      case 3:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_m4a1")
         cs_set_user_bpammo(id, CSW_M4A1, 90)

         if(cs_get_user_team(id)==CS_TEAM_CT)   give_item(id, "item_thighpack");
      }
   }

	if(isKey)	choosed[id]=true

   menu_destroy(Menu) 
   return PLUGIN_HANDLED
}

public print_info(id)	show_motd(id,"addons/amxmodx/configs/vipinfo.html","VIP INFO")

public print_list( user )
{
   new adminnames[ 33 ][ 32 ];
   new message[ 256 ];
   new id, count, x, len;

   for( id = 1; id <= get_maxplayers( ); id++ )
   {
      if( is_user_connected( id ) )
      {
         if( is_user_vip(id) )
         {
            get_user_name( id, adminnames[ count ++ ], 31 );
         }
      }
   }

   len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

   if( count > 0 )
   {
      for( x = 0; x < count; x++ )
      {
         len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

         if( len > 96 )
         {
            len = formatex( message, 255, "" );
            print_message( user, message );
         }
      }

      print_message( user, message );
   }
   else
   {
      len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
      print_message( user, message );
   }
}

print_message( id, msg[ ] )
{
   message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
   write_byte( id );
   write_string( msg );
   message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
   for (new a = 0; a < sizeof (g_weapons); a++)
      if (wpnid == g_weapons[a])
         return g_max_clip[a]

   return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
   new name[32]

   if(wpnid)
      get_weaponname(wpnid, name, 31)

   if (!equal(name, "weapon_", 7))
      format(name, sizeof (name) - 1, "weapon_%s", name)

   return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
   new strtype[16] = "classname"
   new ent = id

   switch (jghgtype)
   {
      case 1: strtype = "target"
      case 2: strtype = "targetname"
   }

   while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
   {
   }

   return ent
}[/code]
Meniul de arme il da din prima runda , nu din a doua cum am precizat
Si sa nu poata lua 2 arme din meniu gen daca iau runda asta ak47 si nu mor next dau pe m4 am si m4 si ak47 :) ms mult
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

16 Feb 2019, 23:32

GoGuT112 wrote:
L E V I N wrote:
| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)   (get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
    PLUGIN_VERSION[] = "1.0", 
    PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
   180,   // VIATA LA SPAWN
   180,   // ARMURA LA SPAWN
   16000,   // BANII LA START
   3,   // NUMARUL MAXIM DE SARITURI
   440,   // VITEZA MAXIMA
   50,   // DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
   20,   // VIATA PE KILL NORMAL
   35,   // VIATA PE HEADSHOT
   600,   // BANII PE KILL
}


new const g_weapons[] =
{
   CSW_P228,
   CSW_SCOUT,
   CSW_XM1014,
   CSW_MAC10,
   CSW_AUG,
   CSW_ELITE,
   CSW_FIVESEVEN,
   CSW_UMP45,
   CSW_SG550,
   CSW_GALI,
   CSW_GALIL,
   CSW_FAMAS,
   CSW_USP,
   CSW_GLOCK18,
   CSW_AWP,
   CSW_MP5NAVY,
   CSW_M249,
   CSW_M3,
   CSW_M4A1,
   CSW_TMP,
   CSW_G3SG1,
   CSW_DEAGLE,
   CSW_SG552,
   CSW_AK47,
   CSW_P90
}

new const g_max_clip[] =
{
   13,
   10,
   7,
   30,
   30,
   30,
   20,
   25,
   30,
   35,
   35,
   25,
   12,
   20,
   10,
   30,
   100,
   8,
   30,
   30,
   20,
   7,
   30,
   30,
   50
}

new const g_other_weapons[] =
{
   CSW_KNIFE,
   CSW_HEGRENADE,
   CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

new bool:choosed[33]

public plugin_init()
{
   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
   register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
   set_cvar_string("level_mod_", PLUGIN_VERSION);

   register_event("DeathMsg", "event_DeathMsg", "a");
   
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
   RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
   RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


   register_clcmd( "say /vips", "print_list" );
   register_clcmd( "say_team /vips", "print_list" );
   register_clcmd( "say /vreauvip", "print_info" );
   register_clcmd( "say_team /vreauvip", "print_info" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public event_new_round()	for(new id=0;id<get_maxplayers();++id)	choosed[id]=false

public client_putinserver(id)
{
   g_JumpNum[id] = 0;
   g_bJump[id] = false;

	choosed[id]=false
}

public client_PreThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;
      
   new nbut = get_user_button(id);
   new obut = get_user_oldbutton(id);
   new jump_num = vip_benefits[MAX_JUMPS];
   
   if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
   {
      if(g_JumpNum[id] < jump_num)
      {
         g_bJump[id] = true;
         g_JumpNum[id]++;
         return PLUGIN_CONTINUE;
      }
   }
   
   if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
   {
      g_JumpNum[id] = 0;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;

   if(g_bJump[id])
   {
      new Float:fVelocity[3];
      entity_get_vector(id, EV_VEC_velocity, fVelocity);
      fVelocity[2] = random_float(265.0, 285.0);
      entity_set_vector(id, EV_VEC_velocity, fVelocity);
      
      g_bJump[id] = false;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
   new attacker = read_data(1);
   new victim = read_data(2);
   new headshot = read_data(3);
   new hitself = (attacker == victim) ? 1 : 0;

   if(is_user_alive(attacker) && is_user_vip(attacker))
   {
      if(hitself)
         return;

      if(headshot)
      {
         set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


   for (new a = 0; a < sizeof (g_other_weapons); a++)   if (get_user_weapon(attacker) == g_other_weapons[a])   return
   new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
   for (new a = 0; a < sizeof (g_weapons); a++)
   {
      if (get_user_weapon(attacker) == g_weapons[a])
      {
         new ammo = get_weapon_maxclip(get_user_weapon(attacker))

         if (ammo)
         {
            client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
            cs_set_weapon_ammo(weapon, ammo)
         }
         return
      }
   }
}
else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

      cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<12)
   write_short(1<<12)
   write_short(0x0000)
   write_byte(30)
   write_byte(144)
   write_byte(255)
   write_byte(90)
   message_end()
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
   if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
      return HAM_IGNORED;

   if(is_user_vip(attacker) && is_user_alive(attacker))
   {
      fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
      SetHamParamFloat(4, fDamage);
      return HAM_HANDLED;
   }
   return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
   if(!is_user_alive(id))
      return HAM_HANDLED;

   if(is_user_vip(id))
   {
      new Float:fMaxSpeed = float(vip_benefits[SPEED]);
      set_user_maxspeed(id, fMaxSpeed);

      new command[128];
      formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
      client_cmd(id, command);
   }

   return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
   if(!is_user_alive(id))
      return HAM_IGNORED;

   if(is_user_vip(id))
   {
      set_user_health(id, vip_benefits[HEALTH]);
      set_user_armor(id, vip_benefits[ARMOR]);
      cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

      if(!choosed[id])	MeniuArme(id)
   }
   
   return HAM_IGNORED;
}

public MeniuArme(id)
{
   new menu = menu_create( "Equipment", "menu_handler" )

   menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
   menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
   menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
   menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
   if( Item < 0 || !is_user_alive(id) )   return 0;

   new Key[ 3 ],Access, CallBack;
   menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
   new isKey = str_to_num( Key );

   switch( isKey )
   {
      case 1:
      {       
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_awp")
         cs_set_user_bpammo(id, CSW_AWP, 30)
      }
      case 2:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_ak47")
         cs_set_user_bpammo(id, CSW_AK47, 90)
      }
      case 3:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_m4a1")
         cs_set_user_bpammo(id, CSW_M4A1, 90)

         if(cs_get_user_team(id)==CS_TEAM_CT)   give_item(id, "item_thighpack");
      }
   }

	if(isKey)	choosed[id]=true

   menu_destroy(Menu) 
   return PLUGIN_HANDLED
}

public print_info(id)	show_motd(id,"addons/amxmodx/configs/vipinfo.html","VIP INFO")

public print_list( user )
{
   new adminnames[ 33 ][ 32 ];
   new message[ 256 ];
   new id, count, x, len;

   for( id = 1; id <= get_maxplayers( ); id++ )
   {
      if( is_user_connected( id ) )
      {
         if( is_user_vip(id) )
         {
            get_user_name( id, adminnames[ count ++ ], 31 );
         }
      }
   }

   len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

   if( count > 0 )
   {
      for( x = 0; x < count; x++ )
      {
         len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

         if( len > 96 )
         {
            len = formatex( message, 255, "" );
            print_message( user, message );
         }
      }

      print_message( user, message );
   }
   else
   {
      len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
      print_message( user, message );
   }
}

print_message( id, msg[ ] )
{
   message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
   write_byte( id );
   write_string( msg );
   message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
   for (new a = 0; a < sizeof (g_weapons); a++)
      if (wpnid == g_weapons[a])
         return g_max_clip[a]

   return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
   new name[32]

   if(wpnid)
      get_weaponname(wpnid, name, 31)

   if (!equal(name, "weapon_", 7))
      format(name, sizeof (name) - 1, "weapon_%s", name)

   return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
   new strtype[16] = "classname"
   new ent = id

   switch (jghgtype)
   {
      case 1: strtype = "target"
      case 2: strtype = "targetname"
   }

   while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
   {
   }

   return ent
}[/code]
Meniul de arme il da din prima runda , nu din a doua cum am precizat
Si sa nu poata lua 2 arme din meniu gen daca iau runda asta ak47 si nu mor next dau pe m4 am si m4 si ak47 :) ms mult
unde ai precizat?
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
GoGuT112
Membru, skill 0
Membru, skill 0
Posts: 83
Joined: 05 Jan 2018, 06:40
Detinator Steam: Da
CS Status: s m o k r a
Detinator server CS: CSGO.DARKLAND.RO
SteamID: https://steamcommuni
Fond eXtream: 0
Location: Giurgiu
Been thanked: 1 time

17 Feb 2019, 04:43

L E V I N wrote:
GoGuT112 wrote:
L E V I N wrote:
| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)   (get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
    PLUGIN_VERSION[] = "1.0", 
    PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
   180,   // VIATA LA SPAWN
   180,   // ARMURA LA SPAWN
   16000,   // BANII LA START
   3,   // NUMARUL MAXIM DE SARITURI
   440,   // VITEZA MAXIMA
   50,   // DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
   20,   // VIATA PE KILL NORMAL
   35,   // VIATA PE HEADSHOT
   600,   // BANII PE KILL
}


new const g_weapons[] =
{
   CSW_P228,
   CSW_SCOUT,
   CSW_XM1014,
   CSW_MAC10,
   CSW_AUG,
   CSW_ELITE,
   CSW_FIVESEVEN,
   CSW_UMP45,
   CSW_SG550,
   CSW_GALI,
   CSW_GALIL,
   CSW_FAMAS,
   CSW_USP,
   CSW_GLOCK18,
   CSW_AWP,
   CSW_MP5NAVY,
   CSW_M249,
   CSW_M3,
   CSW_M4A1,
   CSW_TMP,
   CSW_G3SG1,
   CSW_DEAGLE,
   CSW_SG552,
   CSW_AK47,
   CSW_P90
}

new const g_max_clip[] =
{
   13,
   10,
   7,
   30,
   30,
   30,
   20,
   25,
   30,
   35,
   35,
   25,
   12,
   20,
   10,
   30,
   100,
   8,
   30,
   30,
   20,
   7,
   30,
   30,
   50
}

new const g_other_weapons[] =
{
   CSW_KNIFE,
   CSW_HEGRENADE,
   CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

new bool:choosed[33]

public plugin_init()
{
   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
   register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
   set_cvar_string("level_mod_", PLUGIN_VERSION);

   register_event("DeathMsg", "event_DeathMsg", "a");
   
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
   RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
   RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


   register_clcmd( "say /vips", "print_list" );
   register_clcmd( "say_team /vips", "print_list" );
   register_clcmd( "say /vreauvip", "print_info" );
   register_clcmd( "say_team /vreauvip", "print_info" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public event_new_round()	for(new id=0;id<get_maxplayers();++id)	choosed[id]=false

public client_putinserver(id)
{
   g_JumpNum[id] = 0;
   g_bJump[id] = false;

	choosed[id]=false
}

public client_PreThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;
      
   new nbut = get_user_button(id);
   new obut = get_user_oldbutton(id);
   new jump_num = vip_benefits[MAX_JUMPS];
   
   if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
   {
      if(g_JumpNum[id] < jump_num)
      {
         g_bJump[id] = true;
         g_JumpNum[id]++;
         return PLUGIN_CONTINUE;
      }
   }
   
   if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
   {
      g_JumpNum[id] = 0;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;

   if(g_bJump[id])
   {
      new Float:fVelocity[3];
      entity_get_vector(id, EV_VEC_velocity, fVelocity);
      fVelocity[2] = random_float(265.0, 285.0);
      entity_set_vector(id, EV_VEC_velocity, fVelocity);
      
      g_bJump[id] = false;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
   new attacker = read_data(1);
   new victim = read_data(2);
   new headshot = read_data(3);
   new hitself = (attacker == victim) ? 1 : 0;

   if(is_user_alive(attacker) && is_user_vip(attacker))
   {
      if(hitself)
         return;

      if(headshot)
      {
         set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


   for (new a = 0; a < sizeof (g_other_weapons); a++)   if (get_user_weapon(attacker) == g_other_weapons[a])   return
   new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
   for (new a = 0; a < sizeof (g_weapons); a++)
   {
      if (get_user_weapon(attacker) == g_weapons[a])
      {
         new ammo = get_weapon_maxclip(get_user_weapon(attacker))

         if (ammo)
         {
            client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
            cs_set_weapon_ammo(weapon, ammo)
         }
         return
      }
   }
}
else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

      cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<12)
   write_short(1<<12)
   write_short(0x0000)
   write_byte(30)
   write_byte(144)
   write_byte(255)
   write_byte(90)
   message_end()
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
   if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
      return HAM_IGNORED;

   if(is_user_vip(attacker) && is_user_alive(attacker))
   {
      fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
      SetHamParamFloat(4, fDamage);
      return HAM_HANDLED;
   }
   return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
   if(!is_user_alive(id))
      return HAM_HANDLED;

   if(is_user_vip(id))
   {
      new Float:fMaxSpeed = float(vip_benefits[SPEED]);
      set_user_maxspeed(id, fMaxSpeed);

      new command[128];
      formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
      client_cmd(id, command);
   }

   return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
   if(!is_user_alive(id))
      return HAM_IGNORED;

   if(is_user_vip(id))
   {
      set_user_health(id, vip_benefits[HEALTH]);
      set_user_armor(id, vip_benefits[ARMOR]);
      cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

      if(!choosed[id])	MeniuArme(id)
   }
   
   return HAM_IGNORED;
}

public MeniuArme(id)
{
   new menu = menu_create( "Equipment", "menu_handler" )

   menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
   menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
   menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
   menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
   if( Item < 0 || !is_user_alive(id) )   return 0;

   new Key[ 3 ],Access, CallBack;
   menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
   new isKey = str_to_num( Key );

   switch( isKey )
   {
      case 1:
      {       
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_awp")
         cs_set_user_bpammo(id, CSW_AWP, 30)
      }
      case 2:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_ak47")
         cs_set_user_bpammo(id, CSW_AK47, 90)
      }
      case 3:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_m4a1")
         cs_set_user_bpammo(id, CSW_M4A1, 90)

         if(cs_get_user_team(id)==CS_TEAM_CT)   give_item(id, "item_thighpack");
      }
   }

	if(isKey)	choosed[id]=true

   menu_destroy(Menu) 
   return PLUGIN_HANDLED
}

public print_info(id)	show_motd(id,"addons/amxmodx/configs/vipinfo.html","VIP INFO")

public print_list( user )
{
   new adminnames[ 33 ][ 32 ];
   new message[ 256 ];
   new id, count, x, len;

   for( id = 1; id <= get_maxplayers( ); id++ )
   {
      if( is_user_connected( id ) )
      {
         if( is_user_vip(id) )
         {
            get_user_name( id, adminnames[ count ++ ], 31 );
         }
      }
   }

   len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

   if( count > 0 )
   {
      for( x = 0; x < count; x++ )
      {
         len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

         if( len > 96 )
         {
            len = formatex( message, 255, "" );
            print_message( user, message );
         }
      }

      print_message( user, message );
   }
   else
   {
      len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
      print_message( user, message );
   }
}

print_message( id, msg[ ] )
{
   message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
   write_byte( id );
   write_string( msg );
   message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
   for (new a = 0; a < sizeof (g_weapons); a++)
      if (wpnid == g_weapons[a])
         return g_max_clip[a]

   return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
   new name[32]

   if(wpnid)
      get_weaponname(wpnid, name, 31)

   if (!equal(name, "weapon_", 7))
      format(name, sizeof (name) - 1, "weapon_%s", name)

   return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
   new strtype[16] = "classname"
   new ent = id

   switch (jghgtype)
   {
      case 1: strtype = "target"
      case 2: strtype = "targetname"
   }

   while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
   {
   }

   return ent
}[/code]
Meniul de arme il da din prima runda , nu din a doua cum am precizat
Si sa nu poata lua 2 arme din meniu gen daca iau runda asta ak47 si nu mor next dau pe m4 am si m4 si ak47 :) ms mult
unde ai precizat?
Scuze ... am crezut ca am scris cu meniul din a doua runda ...ori cum daca imi faci ce ti-am zis mai sus este cel mai bine <3 merge ff bine tot ce ai facut pana aici :)
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

17 Feb 2019, 12:47

| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)   (get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
    PLUGIN_VERSION[] = "1.0", 
    PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
   180,   // VIATA LA SPAWN
   180,   // ARMURA LA SPAWN
   16000,   // BANII LA START
   3,   // NUMARUL MAXIM DE SARITURI
   440,   // VITEZA MAXIMA
   50,   // DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
   20,   // VIATA PE KILL NORMAL
   35,   // VIATA PE HEADSHOT
   600,   // BANII PE KILL
}


new const g_weapons[] =
{
   CSW_P228,
   CSW_SCOUT,
   CSW_XM1014,
   CSW_MAC10,
   CSW_AUG,
   CSW_ELITE,
   CSW_FIVESEVEN,
   CSW_UMP45,
   CSW_SG550,
   CSW_GALI,
   CSW_GALIL,
   CSW_FAMAS,
   CSW_USP,
   CSW_GLOCK18,
   CSW_AWP,
   CSW_MP5NAVY,
   CSW_M249,
   CSW_M3,
   CSW_M4A1,
   CSW_TMP,
   CSW_G3SG1,
   CSW_DEAGLE,
   CSW_SG552,
   CSW_AK47,
   CSW_P90
}

new const g_max_clip[] =
{
   13,
   10,
   7,
   30,
   30,
   30,
   20,
   25,
   30,
   35,
   35,
   25,
   12,
   20,
   10,
   30,
   100,
   8,
   30,
   30,
   20,
   7,
   30,
   30,
   50
}

new const g_other_weapons[] =
{
   CSW_KNIFE,
   CSW_HEGRENADE,
   CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

new bool:choosed[33],active=0

public plugin_init()
{
   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
   register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
   set_cvar_string("level_mod_", PLUGIN_VERSION);

   register_event("DeathMsg", "event_DeathMsg", "a");
   
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
   RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
   RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


   register_clcmd( "say /vips", "print_list" );
   register_clcmd( "say_team /vips", "print_list" );
   register_clcmd( "say /vreauvip", "print_info" );
   register_clcmd( "say_team /vreauvip", "print_info" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public event_new_round()
{
	active++
	for(new id=0;id<get_maxplayers();++id)   choosed[id]=false
}

public client_putinserver(id)
{
   g_JumpNum[id] = 0;
   g_bJump[id] = false;

   choosed[id]=false
}

public client_PreThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;
      
   new nbut = get_user_button(id);
   new obut = get_user_oldbutton(id);
   new jump_num = vip_benefits[MAX_JUMPS];
   
   if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
   {
      if(g_JumpNum[id] < jump_num)
      {
         g_bJump[id] = true;
         g_JumpNum[id]++;
         return PLUGIN_CONTINUE;
      }
   }
   
   if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
   {
      g_JumpNum[id] = 0;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;

   if(g_bJump[id])
   {
      new Float:fVelocity[3];
      entity_get_vector(id, EV_VEC_velocity, fVelocity);
      fVelocity[2] = random_float(265.0, 285.0);
      entity_set_vector(id, EV_VEC_velocity, fVelocity);
      
      g_bJump[id] = false;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
   new attacker = read_data(1);
   new victim = read_data(2);
   new headshot = read_data(3);
   new hitself = (attacker == victim) ? 1 : 0;

   if(is_user_alive(attacker) && is_user_vip(attacker))
   {
      if(hitself)
         return;

      if(headshot)
      {
         set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


   for (new a = 0; a < sizeof (g_other_weapons); a++)   if (get_user_weapon(attacker) == g_other_weapons[a])   return
   new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
   for (new a = 0; a < sizeof (g_weapons); a++)
   {
      if (get_user_weapon(attacker) == g_weapons[a])
      {
         new ammo = get_weapon_maxclip(get_user_weapon(attacker))

         if (ammo)
         {
            client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
            cs_set_weapon_ammo(weapon, ammo)
         }
         return
      }
   }
}
else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

      cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<12)
   write_short(1<<12)
   write_short(0x0000)
   write_byte(30)
   write_byte(144)
   write_byte(255)
   write_byte(90)
   message_end()
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
   if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
      return HAM_IGNORED;

   if(is_user_vip(attacker) && is_user_alive(attacker))
   {
      fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
      SetHamParamFloat(4, fDamage);
      return HAM_HANDLED;
   }
   return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
   if(!is_user_alive(id))
      return HAM_HANDLED;

   if(is_user_vip(id))
   {
      new Float:fMaxSpeed = float(vip_benefits[SPEED]);
      set_user_maxspeed(id, fMaxSpeed);

      new command[128];
      formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
      client_cmd(id, command);
   }

   return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
   if(!is_user_alive(id))
      return HAM_IGNORED;

   if(is_user_vip(id))
   {
      set_user_health(id, vip_benefits[HEALTH]);
      set_user_armor(id, vip_benefits[ARMOR]);
      cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

      if(!choosed[id]&&active>=2)   MeniuArme(id)
   }
   
   return HAM_IGNORED;
}

public MeniuArme(id)
{
   new menu = menu_create( "Equipment", "menu_handler" )

   menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
   menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
   menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
   menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
   if( Item < 0 || !is_user_alive(id) )   return 0;

   new Key[ 3 ],Access, CallBack;
   menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
   new isKey = str_to_num( Key );

   switch( isKey )
   {
      case 1:
      {       
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_awp")
         cs_set_user_bpammo(id, CSW_AWP, 30)
      }
      case 2:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_ak47")
         cs_set_user_bpammo(id, CSW_AK47, 90)
      }
      case 3:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_m4a1")
         cs_set_user_bpammo(id, CSW_M4A1, 90)

         if(cs_get_user_team(id)==CS_TEAM_CT)   give_item(id, "item_thighpack");
      }
   }

   if(isKey)   choosed[id]=true

   menu_destroy(Menu) 
   return PLUGIN_HANDLED
}

public print_info(id)   show_motd(id,"addons/amxmodx/configs/vipinfo.html","VIP INFO")

public print_list( user )
{
   new adminnames[ 33 ][ 32 ];
   new message[ 256 ];
   new id, count, x, len;

   for( id = 1; id <= get_maxplayers( ); id++ )
   {
      if( is_user_connected( id ) )
      {
         if( is_user_vip(id) )
         {
            get_user_name( id, adminnames[ count ++ ], 31 );
         }
      }
   }

   len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

   if( count > 0 )
   {
      for( x = 0; x < count; x++ )
      {
         len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

         if( len > 96 )
         {
            len = formatex( message, 255, "" );
            print_message( user, message );
         }
      }

      print_message( user, message );
   }
   else
   {
      len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
      print_message( user, message );
   }
}

print_message( id, msg[ ] )
{
   message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
   write_byte( id );
   write_string( msg );
   message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
   for (new a = 0; a < sizeof (g_weapons); a++)
      if (wpnid == g_weapons[a])
         return g_max_clip[a]

   return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
   new name[32]

   if(wpnid)
      get_weaponname(wpnid, name, 31)

   if (!equal(name, "weapon_", 7))
      format(name, sizeof (name) - 1, "weapon_%s", name)

   return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
   new strtype[16] = "classname"
   new ent = id

   switch (jghgtype)
   {
      case 1: strtype = "target"
      case 2: strtype = "targetname"
   }

   while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
   {
   }

   return ent
}[/code]
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
GoGuT112
Membru, skill 0
Membru, skill 0
Posts: 83
Joined: 05 Jan 2018, 06:40
Detinator Steam: Da
CS Status: s m o k r a
Detinator server CS: CSGO.DARKLAND.RO
SteamID: https://steamcommuni
Fond eXtream: 0
Location: Giurgiu
Been thanked: 1 time

17 Feb 2019, 13:31

L E V I N wrote:
| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)   (get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
    PLUGIN_VERSION[] = "1.0", 
    PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
   180,   // VIATA LA SPAWN
   180,   // ARMURA LA SPAWN
   16000,   // BANII LA START
   3,   // NUMARUL MAXIM DE SARITURI
   440,   // VITEZA MAXIMA
   50,   // DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
   20,   // VIATA PE KILL NORMAL
   35,   // VIATA PE HEADSHOT
   600,   // BANII PE KILL
}


new const g_weapons[] =
{
   CSW_P228,
   CSW_SCOUT,
   CSW_XM1014,
   CSW_MAC10,
   CSW_AUG,
   CSW_ELITE,
   CSW_FIVESEVEN,
   CSW_UMP45,
   CSW_SG550,
   CSW_GALI,
   CSW_GALIL,
   CSW_FAMAS,
   CSW_USP,
   CSW_GLOCK18,
   CSW_AWP,
   CSW_MP5NAVY,
   CSW_M249,
   CSW_M3,
   CSW_M4A1,
   CSW_TMP,
   CSW_G3SG1,
   CSW_DEAGLE,
   CSW_SG552,
   CSW_AK47,
   CSW_P90
}

new const g_max_clip[] =
{
   13,
   10,
   7,
   30,
   30,
   30,
   20,
   25,
   30,
   35,
   35,
   25,
   12,
   20,
   10,
   30,
   100,
   8,
   30,
   30,
   20,
   7,
   30,
   30,
   50
}

new const g_other_weapons[] =
{
   CSW_KNIFE,
   CSW_HEGRENADE,
   CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

new bool:choosed[33],active=0

public plugin_init()
{
   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
   register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
   set_cvar_string("level_mod_", PLUGIN_VERSION);

   register_event("DeathMsg", "event_DeathMsg", "a");
   
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
   RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
   RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


   register_clcmd( "say /vips", "print_list" );
   register_clcmd( "say_team /vips", "print_list" );
   register_clcmd( "say /vreauvip", "print_info" );
   register_clcmd( "say_team /vreauvip", "print_info" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public event_new_round()
{
	active++
	for(new id=0;id<get_maxplayers();++id)   choosed[id]=false
}

public client_putinserver(id)
{
   g_JumpNum[id] = 0;
   g_bJump[id] = false;

   choosed[id]=false
}

public client_PreThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;
      
   new nbut = get_user_button(id);
   new obut = get_user_oldbutton(id);
   new jump_num = vip_benefits[MAX_JUMPS];
   
   if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
   {
      if(g_JumpNum[id] < jump_num)
      {
         g_bJump[id] = true;
         g_JumpNum[id]++;
         return PLUGIN_CONTINUE;
      }
   }
   
   if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
   {
      g_JumpNum[id] = 0;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;

   if(g_bJump[id])
   {
      new Float:fVelocity[3];
      entity_get_vector(id, EV_VEC_velocity, fVelocity);
      fVelocity[2] = random_float(265.0, 285.0);
      entity_set_vector(id, EV_VEC_velocity, fVelocity);
      
      g_bJump[id] = false;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
   new attacker = read_data(1);
   new victim = read_data(2);
   new headshot = read_data(3);
   new hitself = (attacker == victim) ? 1 : 0;

   if(is_user_alive(attacker) && is_user_vip(attacker))
   {
      if(hitself)
         return;

      if(headshot)
      {
         set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


   for (new a = 0; a < sizeof (g_other_weapons); a++)   if (get_user_weapon(attacker) == g_other_weapons[a])   return
   new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
   for (new a = 0; a < sizeof (g_weapons); a++)
   {
      if (get_user_weapon(attacker) == g_weapons[a])
      {
         new ammo = get_weapon_maxclip(get_user_weapon(attacker))

         if (ammo)
         {
            client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
            cs_set_weapon_ammo(weapon, ammo)
         }
         return
      }
   }
}
else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

      cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<12)
   write_short(1<<12)
   write_short(0x0000)
   write_byte(30)
   write_byte(144)
   write_byte(255)
   write_byte(90)
   message_end()
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
   if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
      return HAM_IGNORED;

   if(is_user_vip(attacker) && is_user_alive(attacker))
   {
      fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
      SetHamParamFloat(4, fDamage);
      return HAM_HANDLED;
   }
   return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
   if(!is_user_alive(id))
      return HAM_HANDLED;

   if(is_user_vip(id))
   {
      new Float:fMaxSpeed = float(vip_benefits[SPEED]);
      set_user_maxspeed(id, fMaxSpeed);

      new command[128];
      formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
      client_cmd(id, command);
   }

   return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
   if(!is_user_alive(id))
      return HAM_IGNORED;

   if(is_user_vip(id))
   {
      set_user_health(id, vip_benefits[HEALTH]);
      set_user_armor(id, vip_benefits[ARMOR]);
      cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

      if(!choosed[id]&&active>=2)   MeniuArme(id)
   }
   
   return HAM_IGNORED;
}

public MeniuArme(id)
{
   new menu = menu_create( "Equipment", "menu_handler" )

   menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
   menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
   menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
   menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
   if( Item < 0 || !is_user_alive(id) )   return 0;

   new Key[ 3 ],Access, CallBack;
   menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
   new isKey = str_to_num( Key );

   switch( isKey )
   {
      case 1:
      {       
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_awp")
         cs_set_user_bpammo(id, CSW_AWP, 30)
      }
      case 2:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_ak47")
         cs_set_user_bpammo(id, CSW_AK47, 90)
      }
      case 3:
      {
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_m4a1")
         cs_set_user_bpammo(id, CSW_M4A1, 90)

         if(cs_get_user_team(id)==CS_TEAM_CT)   give_item(id, "item_thighpack");
      }
   }

   if(isKey)   choosed[id]=true

   menu_destroy(Menu) 
   return PLUGIN_HANDLED
}

public print_info(id)   show_motd(id,"addons/amxmodx/configs/vipinfo.html","VIP INFO")

public print_list( user )
{
   new adminnames[ 33 ][ 32 ];
   new message[ 256 ];
   new id, count, x, len;

   for( id = 1; id <= get_maxplayers( ); id++ )
   {
      if( is_user_connected( id ) )
      {
         if( is_user_vip(id) )
         {
            get_user_name( id, adminnames[ count ++ ], 31 );
         }
      }
   }

   len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

   if( count > 0 )
   {
      for( x = 0; x < count; x++ )
      {
         len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

         if( len > 96 )
         {
            len = formatex( message, 255, "" );
            print_message( user, message );
         }
      }

      print_message( user, message );
   }
   else
   {
      len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
      print_message( user, message );
   }
}

print_message( id, msg[ ] )
{
   message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
   write_byte( id );
   write_string( msg );
   message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
   for (new a = 0; a < sizeof (g_weapons); a++)
      if (wpnid == g_weapons[a])
         return g_max_clip[a]

   return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
   new name[32]

   if(wpnid)
      get_weaponname(wpnid, name, 31)

   if (!equal(name, "weapon_", 7))
      format(name, sizeof (name) - 1, "weapon_%s", name)

   return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
   new strtype[16] = "classname"
   new ent = id

   switch (jghgtype)
   {
      case 1: strtype = "target"
      case 2: strtype = "targetname"
   }

   while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
   {
   }

   return ent
}[/code]
Aceias problema ma lasa ca 2 - 3 arme , poti face in asa fel cand selectez o alta arma din meniu pe ce-a actuala sa o arunce si sa ii dea ce am ales din meniu ?
User avatar
levin
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 3854
Joined: 24 Aug 2011, 12:24
Detinator Steam: Nu
CS Status:
Detinator server CS: ☯∴
Reputatie: Scripter eXtreamCS
Nume anterior: Adryyy
Location: ҳ̸Ҳ̸ҳ
Discord: devilclass
Has thanked: 36 times
Been thanked: 595 times
Contact:

17 Feb 2019, 14:51

| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)   (get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
    PLUGIN_VERSION[] = "1.0", 
    PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
   180,   // VIATA LA SPAWN
   180,   // ARMURA LA SPAWN
   16000,   // BANII LA START
   3,   // NUMARUL MAXIM DE SARITURI
   440,   // VITEZA MAXIMA
   50,   // DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
   20,   // VIATA PE KILL NORMAL
   35,   // VIATA PE HEADSHOT
   600,   // BANII PE KILL
}


new const g_weapons[] =
{
   CSW_P228,
   CSW_SCOUT,
   CSW_XM1014,
   CSW_MAC10,
   CSW_AUG,
   CSW_ELITE,
   CSW_FIVESEVEN,
   CSW_UMP45,
   CSW_SG550,
   CSW_GALI,
   CSW_GALIL,
   CSW_FAMAS,
   CSW_USP,
   CSW_GLOCK18,
   CSW_AWP,
   CSW_MP5NAVY,
   CSW_M249,
   CSW_M3,
   CSW_M4A1,
   CSW_TMP,
   CSW_G3SG1,
   CSW_DEAGLE,
   CSW_SG552,
   CSW_AK47,
   CSW_P90
}

new const g_max_clip[] =
{
   13,
   10,
   7,
   30,
   30,
   30,
   20,
   25,
   30,
   35,
   35,
   25,
   12,
   20,
   10,
   30,
   100,
   8,
   30,
   30,
   20,
   7,
   30,
   30,
   50
}

new const g_other_weapons[] =
{
   CSW_KNIFE,
   CSW_HEGRENADE,
   CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

new active=0

public plugin_init()
{
   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
   register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
   set_cvar_string("level_mod_", PLUGIN_VERSION);

   register_event("DeathMsg", "event_DeathMsg", "a");
   
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
   RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
   RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


   register_clcmd( "say /vips", "print_list" );
   register_clcmd( "say_team /vips", "print_list" );
   register_clcmd( "say /vreauvip", "print_info" );
   register_clcmd( "say_team /vreauvip", "print_info" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public event_new_round()	active++

public client_putinserver(id)
{
   g_JumpNum[id] = 0;
   g_bJump[id] = false;
}

public client_PreThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;
      
   new nbut = get_user_button(id);
   new obut = get_user_oldbutton(id);
   new jump_num = vip_benefits[MAX_JUMPS];
   
   if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
   {
      if(g_JumpNum[id] < jump_num)
      {
         g_bJump[id] = true;
         g_JumpNum[id]++;
         return PLUGIN_CONTINUE;
      }
   }
   
   if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
   {
      g_JumpNum[id] = 0;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;

   if(g_bJump[id])
   {
      new Float:fVelocity[3];
      entity_get_vector(id, EV_VEC_velocity, fVelocity);
      fVelocity[2] = random_float(265.0, 285.0);
      entity_set_vector(id, EV_VEC_velocity, fVelocity);
      
      g_bJump[id] = false;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
   new attacker = read_data(1);
   new victim = read_data(2);
   new headshot = read_data(3);
   new hitself = (attacker == victim) ? 1 : 0;

   if(is_user_alive(attacker) && is_user_vip(attacker))
   {
      if(hitself)
         return;

      if(headshot)
      {
         set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


   for (new a = 0; a < sizeof (g_other_weapons); a++)   if (get_user_weapon(attacker) == g_other_weapons[a])   return
   new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
   for (new a = 0; a < sizeof (g_weapons); a++)
   {
      if (get_user_weapon(attacker) == g_weapons[a])
      {
         new ammo = get_weapon_maxclip(get_user_weapon(attacker))

         if (ammo)
         {
            client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
            cs_set_weapon_ammo(weapon, ammo)
         }
         return
      }
   }
}
else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

      cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<12)
   write_short(1<<12)
   write_short(0x0000)
   write_byte(30)
   write_byte(144)
   write_byte(255)
   write_byte(90)
   message_end()
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
   if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
      return HAM_IGNORED;

   if(is_user_vip(attacker) && is_user_alive(attacker))
   {
      fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
      SetHamParamFloat(4, fDamage);
      return HAM_HANDLED;
   }
   return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
   if(!is_user_alive(id))
      return HAM_HANDLED;

   if(is_user_vip(id))
   {
      new Float:fMaxSpeed = float(vip_benefits[SPEED]);
      set_user_maxspeed(id, fMaxSpeed);

      new command[128];
      formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
      client_cmd(id, command);
   }

   return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
   if(!is_user_alive(id))
      return HAM_IGNORED;

   if(is_user_vip(id))
   {
      set_user_health(id, vip_benefits[HEALTH]);
      set_user_armor(id, vip_benefits[ARMOR]);
      cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

      if(active>=2)   MeniuArme(id)
   }
   
   return HAM_IGNORED;
}

public MeniuArme(id)
{
   new menu = menu_create( "Equipment", "menu_handler" )

   menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
   menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
   menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
   menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
   if( Item < 0 || !is_user_alive(id) )   return 0;

   new Key[ 3 ],Access, CallBack;
   menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
   new isKey = str_to_num( Key );

   switch( isKey )
   {
      case 1:
      {
strip_user_weapons(id)
         give_item(id, "weapon_knife")
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_awp")
         cs_set_user_bpammo(id, CSW_AWP, 30)
      }
      case 2:
      {
strip_user_weapons(id)
         give_item(id, "weapon_knife")
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_ak47")
         cs_set_user_bpammo(id, CSW_AK47, 90)
      }
      case 3:
      {
strip_user_weapons(id)
         give_item(id, "weapon_knife")
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_m4a1")
         cs_set_user_bpammo(id, CSW_M4A1, 90)

         if(cs_get_user_team(id)==CS_TEAM_CT)   give_item(id, "item_thighpack");
      }
   }

   menu_destroy(Menu) 
   return PLUGIN_HANDLED
}

public print_info(id)   show_motd(id,"addons/amxmodx/configs/vipinfo.html","VIP INFO")

public print_list( user )
{
   new adminnames[ 33 ][ 32 ];
   new message[ 256 ];
   new id, count, x, len;

   for( id = 1; id <= get_maxplayers( ); id++ )
   {
      if( is_user_connected( id ) )
      {
         if( is_user_vip(id) )
         {
            get_user_name( id, adminnames[ count ++ ], 31 );
         }
      }
   }

   len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

   if( count > 0 )
   {
      for( x = 0; x < count; x++ )
      {
         len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

         if( len > 96 )
         {
            len = formatex( message, 255, "" );
            print_message( user, message );
         }
      }

      print_message( user, message );
   }
   else
   {
      len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
      print_message( user, message );
   }
}

print_message( id, msg[ ] )
{
   message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
   write_byte( id );
   write_string( msg );
   message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
   for (new a = 0; a < sizeof (g_weapons); a++)
      if (wpnid == g_weapons[a])
         return g_max_clip[a]

   return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
   new name[32]

   if(wpnid)
      get_weaponname(wpnid, name, 31)

   if (!equal(name, "weapon_", 7))
      format(name, sizeof (name) - 1, "weapon_%s", name)

   return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
   new strtype[16] = "classname"
   new ent = id

   switch (jghgtype)
   {
      case 1: strtype = "target"
      case 2: strtype = "targetname"
   }

   while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
   {
   }

   return ent
}[/code]
Nu îmi mai trimiteți PM pe forum! Nu merge să răspund
Pentru ajutor, faceți cerere bine detaliată, completând și respectând modelul corespunzător.
Nu-mi mai dați cereri doar pentru a mă avea în lista de prieteni.
Dacă te ajut, și mă ignori/etc > te adaug în „foe”.
Aveți grijă la cei ce încearcă să mă copieze sau să dea drept mine..Puteți lua legătura cu mine prin STEAM dacă aveți o problemă/nelămurire în acest caz! Cont de forum am doar aici.
În cazul în care utilizați ceva din ce am postat(ex: aici), e bine să fiți la curent cu modificările aduse și de aici, iar dacă sunt ceva probleme nu ezitați să luați legătura cu mine. Actualizarea unor coduri nu se vor afișa public, doar dacă se găsește ceva critic/urgent de remediat, unele fiind coduri vechi iar unele refăcute chiar recent dar private.
* Nume pe cs1.6: eVoLuTiOn \ Nume vechi: eVo
* Atelierul meu - post2819572.html#p2819572 (închis, click link ca să vedeți de ce)
User avatar
GoGuT112
Membru, skill 0
Membru, skill 0
Posts: 83
Joined: 05 Jan 2018, 06:40
Detinator Steam: Da
CS Status: s m o k r a
Detinator server CS: CSGO.DARKLAND.RO
SteamID: https://steamcommuni
Fond eXtream: 0
Location: Giurgiu
Been thanked: 1 time

23 Feb 2019, 19:59

L E V I N wrote:
| Afiseaza codul
[code]
#include <amxmodx>
#include <hamsandwich>
#include <cstrike>
#include <engine>
#include <fun>
#include <fakemeta>

#pragma tabsize 0

#define is_user_vip(%1)   (get_user_flags(%1) & ADMIN_LEVEL_H)

new const PLUGIN_NAME[] = "[RS] VIP System", 
    PLUGIN_VERSION[] = "1.0", 
    PLUGIN_AUTHOR[] = "YONTU";

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;
new g_JumpNum[33] = 0
new bool:g_bJump[33] = false

enum { HEALTH = 0, ARMOR = 1, START_MONEY, MAX_JUMPS, SPEED, DAMAGE, HP_KILL, HP_HEADSHOT, MONEY_KILL };
new const vip_benefits[] =
{
   180,   // VIATA LA SPAWN
   180,   // ARMURA LA SPAWN
   16000,   // BANII LA START
   3,   // NUMARUL MAXIM DE SARITURI
   440,   // VITEZA MAXIMA
   50,   // DAMAGE IN PLUS (VALOAREA SA FIE INTRE 1 SI 100) (50 reprezinta 50% din dmg)
   20,   // VIATA PE KILL NORMAL
   35,   // VIATA PE HEADSHOT
   600,   // BANII PE KILL
}


new const g_weapons[] =
{
   CSW_P228,
   CSW_SCOUT,
   CSW_XM1014,
   CSW_MAC10,
   CSW_AUG,
   CSW_ELITE,
   CSW_FIVESEVEN,
   CSW_UMP45,
   CSW_SG550,
   CSW_GALI,
   CSW_GALIL,
   CSW_FAMAS,
   CSW_USP,
   CSW_GLOCK18,
   CSW_AWP,
   CSW_MP5NAVY,
   CSW_M249,
   CSW_M3,
   CSW_M4A1,
   CSW_TMP,
   CSW_G3SG1,
   CSW_DEAGLE,
   CSW_SG552,
   CSW_AK47,
   CSW_P90
}

new const g_max_clip[] =
{
   13,
   10,
   7,
   30,
   30,
   30,
   20,
   25,
   30,
   35,
   35,
   25,
   12,
   20,
   10,
   30,
   100,
   8,
   30,
   30,
   20,
   7,
   30,
   30,
   50
}

new const g_other_weapons[] =
{
   CSW_KNIFE,
   CSW_HEGRENADE,
   CSW_C4
}

new g_type , g_recieved, g_hudmsg1, g_hudmsg2

new active=0

public plugin_init()
{
   register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
   register_cvar("level_mod_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
   set_cvar_string("level_mod_", PLUGIN_VERSION);

   register_event("DeathMsg", "event_DeathMsg", "a");
   
   RegisterHam(Ham_TakeDamage, "player", "fw_PlayerTakeDamage");
   RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
   RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);


   register_clcmd( "say /vips", "print_list" );
   register_clcmd( "say_team /vips", "print_list" );
   register_clcmd( "say /vreauvip", "print_info" );
   register_clcmd( "say_team /vreauvip", "print_info" );

    register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
register_event("HLTV", "event_new_round", "a", "1=0", "2=0")

    g_type = register_cvar("amx_bulletdamage","1")  
    g_recieved = register_cvar("amx_bulletdamage_recieved","1")      
      
    g_hudmsg1 = CreateHudSyncObj()      
    g_hudmsg2 = CreateHudSyncObj()  
}

public event_new_round()	active++

public client_putinserver(id)
{
   g_JumpNum[id] = 0;
   g_bJump[id] = false;
}

public client_PreThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;
      
   new nbut = get_user_button(id);
   new obut = get_user_oldbutton(id);
   new jump_num = vip_benefits[MAX_JUMPS];
   
   if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
   {
      if(g_JumpNum[id] < jump_num)
      {
         g_bJump[id] = true;
         g_JumpNum[id]++;
         return PLUGIN_CONTINUE;
      }
   }
   
   if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
   {
      g_JumpNum[id] = 0;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
   if(!is_user_alive(id) || !is_user_vip(id))
      return PLUGIN_CONTINUE;

   if(g_bJump[id])
   {
      new Float:fVelocity[3];
      entity_get_vector(id, EV_VEC_velocity, fVelocity);
      fVelocity[2] = random_float(265.0, 285.0);
      entity_set_vector(id, EV_VEC_velocity, fVelocity);
      
      g_bJump[id] = false;
      return PLUGIN_CONTINUE;
   }
   
   return PLUGIN_CONTINUE;
}

public event_DeathMsg()
{
   new attacker = read_data(1);
   new victim = read_data(2);
   new headshot = read_data(3);
   new hitself = (attacker == victim) ? 1 : 0;

   if(is_user_alive(attacker) && is_user_vip(attacker))
   {
      if(hitself)
         return;

      if(headshot)
      {
         set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_HEADSHOT]);


   for (new a = 0; a < sizeof (g_other_weapons); a++)   if (get_user_weapon(attacker) == g_other_weapons[a])   return
   new weapon = fm_get_weapon_ent(attacker, get_user_weapon(attacker))
   for (new a = 0; a < sizeof (g_weapons); a++)
   {
      if (get_user_weapon(attacker) == g_weapons[a])
      {
         new ammo = get_weapon_maxclip(get_user_weapon(attacker))

         if (ammo)
         {
            client_cmd(attacker, "spk ^"items/9mmclip1.wav^"")
            cs_set_weapon_ammo(weapon, ammo)
         }
         return
      }
   }
}
else set_user_health(attacker, get_user_health(attacker) + vip_benefits[HP_KILL]);

      cs_set_user_money(attacker, clamp(get_user_health(attacker) + vip_benefits[MONEY_KILL], 0, 16000));


   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, attacker)
   write_short(1<<12)
   write_short(1<<12)
   write_short(0x0000)
   write_byte(30)
   write_byte(144)
   write_byte(255)
   write_byte(90)
   message_end()
}
}

public fw_PlayerTakeDamage(victim, inflictor, attacker, Float:fDamage, iDamageType)
{
   if(iDamageType & DMG_GENERIC || victim == attacker || !is_user_alive(victim))
      return HAM_IGNORED;

   if(is_user_vip(attacker) && is_user_alive(attacker))
   {
      fDamage = (vip_benefits[DAMAGE] / 100) * fDamage + fDamage;
      SetHamParamFloat(4, fDamage);
      return HAM_HANDLED;
   }
   return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
   if(!is_user_alive(id))
      return HAM_HANDLED;

   if(is_user_vip(id))
   {
      new Float:fMaxSpeed = float(vip_benefits[SPEED]);
      set_user_maxspeed(id, fMaxSpeed);

      new command[128];
      formatex(command, charsmax(command), "cl_forwardspeed %.1f;cl_sidespeed %.1f;cl_backspeed %.1f", fMaxSpeed, fMaxSpeed, fMaxSpeed);
      client_cmd(id, command);
   }

   return HAM_IGNORED;
}

public fw_PlayerSpawnPost(id)
{
   if(!is_user_alive(id))
      return HAM_IGNORED;

   if(is_user_vip(id))
   {
      set_user_health(id, vip_benefits[HEALTH]);
      set_user_armor(id, vip_benefits[ARMOR]);
      cs_set_user_money(id, clamp(vip_benefits[START_MONEY], 0, 16000));

      if(active>=2)   MeniuArme(id)
   }
   
   return HAM_IGNORED;
}

public MeniuArme(id)
{
   new menu = menu_create( "Equipment", "menu_handler" )

   menu_additem( menu, "AWP + DEAGLE + Set Grenade", "1" )
   menu_additem( menu, "AK47 + DEAGLE + Set Grenade", "2" )
   menu_additem( menu, "M4A1 + DEAGLE + Set Grenade la ct + defuse KIT", "3" )

   menu_setprop( menu, MPROP_EXIT, MEXIT_ALL )
   menu_display( id, menu, 0 )
}
public menu_handler( id, Menu, Item )
{
   if( Item < 0 || !is_user_alive(id) )   return 0;

   new Key[ 3 ],Access, CallBack;
   menu_item_getinfo( Menu, Item, Access, Key, 2, _, _, CallBack );
   new isKey = str_to_num( Key );

   switch( isKey )
   {
      case 1:
      {
strip_user_weapons(id)
         give_item(id, "weapon_knife")
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_awp")
         cs_set_user_bpammo(id, CSW_AWP, 30)
      }
      case 2:
      {
strip_user_weapons(id)
         give_item(id, "weapon_knife")
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_ak47")
         cs_set_user_bpammo(id, CSW_AK47, 90)
      }
      case 3:
      {
strip_user_weapons(id)
         give_item(id, "weapon_knife")
         give_item(id, "weapon_deagle")
         cs_set_user_bpammo(id, CSW_DEAGLE, 35)
         give_item(id, "weapon_hegrenade")
         give_item(id, "weapon_flashbang")
         cs_set_user_bpammo(id, CSW_FLASHBANG, 2)
         give_item(id, "weapon_smokegrenade")

         give_item(id, "weapon_m4a1")
         cs_set_user_bpammo(id, CSW_M4A1, 90)

         if(cs_get_user_team(id)==CS_TEAM_CT)   give_item(id, "item_thighpack");
      }
   }

   menu_destroy(Menu) 
   return PLUGIN_HANDLED
}

public print_info(id)   show_motd(id,"addons/amxmodx/configs/vipinfo.html","VIP INFO")

public print_list( user )
{
   new adminnames[ 33 ][ 32 ];
   new message[ 256 ];
   new id, count, x, len;

   for( id = 1; id <= get_maxplayers( ); id++ )
   {
      if( is_user_connected( id ) )
      {
         if( is_user_vip(id) )
         {
            get_user_name( id, adminnames[ count ++ ], 31 );
         }
      }
   }

   len = formatex( message, 255, "^1[^3VIPS^1]^4 VIPs ONLINE^1: " );

   if( count > 0 )
   {
      for( x = 0; x < count; x++ )
      {
         len += formatex( message[ len ], 255 - len, "^1[^3 %s^1 ]^4 %s ", adminnames[ x ], x < ( count - 1 ) ? " | " : "" );

         if( len > 96 )
         {
            len = formatex( message, 255, "" );
            print_message( user, message );
         }
      }

      print_message( user, message );
   }
   else
   {
      len += formatex( message[ len ], 255 - len, "Nu este nici un^3 VIP^1 Conectat." );
      print_message( user, message );
   }
}

print_message( id, msg[ ] )
{
   message_begin( MSG_ONE, get_user_msgid( "SayText" ), { 0, 0, 0 }, id );
   write_byte( id );
   write_string( msg );
   message_end( );
}

public on_damage(id)  
{  
    if(get_pcvar_num(g_type)==1 )
    {          
        static attacker; attacker = get_user_attacker(id)  
        static damage; damage = read_data(2)          
        if(get_pcvar_num(g_recieved)==1)  
        {              
            set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)  
            ShowSyncHudMsg(id, g_hudmsg2, "%i^n", damage)          
        }  
        if(is_user_connected(attacker))  
        {  
            if( is_user_vip(attacker) )  
            {  
                set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)  
                ShowSyncHudMsg(attacker, g_hudmsg1, "%i^n", damage)  
            }
        }  
    }  
}

get_weapon_maxclip(wpnid = 0)
{
   for (new a = 0; a < sizeof (g_weapons); a++)
      if (wpnid == g_weapons[a])
         return g_max_clip[a]

   return false
}

fm_get_weapon_ent(id, wpnid = 0)
{
   new name[32]

   if(wpnid)
      get_weaponname(wpnid, name, 31)

   if (!equal(name, "weapon_", 7))
      format(name, sizeof (name) - 1, "weapon_%s", name)

   return fm_find_ent_by_owner(get_maxplayers(), name, id)
}

fm_find_ent_by_owner(id, const classname[], owner, jghgtype = 0)
{
   new strtype[16] = "classname"
   new ent = id

   switch (jghgtype)
   {
      case 1: strtype = "target"
      case 2: strtype = "targetname"
   }

   while ((ent = engfunc(EngFunc_FindEntityByString, ent, strtype, classname)) && pev(ent, pev_owner) != owner)
   {
   }

   return ent
}[/code]
imi poti face ca vipul sa se dezactiveze automat pe o mapa care o scriu eu intr-un cfg sau un words ?
Post Reply

Return to “Modificari pluginuri”

  • Information
  • Who is online

    Users browsing this forum: Yandex [Bot] and 21 guests