[Modificare] Vip

In acest subforum puteti cere modificari necesare ale pluginurilor .
Forum rules
Image


Aveti grija cand creati un topic puneti la titlu [Modificare] Nume plugin.
Nu aveti voie sa cereti modificarea mai multor plugin-uri intr-un singur topic.
Locked
User avatar
Legends
Membru
Membru
Posts: 5
Joined: 6 years ago
Has thanked: 0
Been thanked: 0
Status: Offline

6 years ago

BUNA ZIUA , am incercat da nu am reusit in totalitate nu ma prea pricep si nu vreu sa stric nimic din el .

Code: Select all

#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <engine>
#include <fakemeta>
#include <colorchat>

#define VIP_LEVEL_ACCES ADMIN_LEVEL_F

#define SCOREATTRIB_NONE    0
#define SCOREATTRIB_DEAD    ( 1 << 0 )
#define SCOREATTRIB_BOMB    ( 1 << 1 )
#define SCOREATTRIB_VIP     ( 1 << 2 )

#define REMOVE_FLAGS "r"

new const RMaps [ ] [ ] =
{
	"35hp",
	"35hp_2",
	"31hp",
	"1hp",
	"100hp"
};

new const g_szBeginning[ ] = "Membrii VIP TIMISOARA"

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

new g_szMessage[256];
new round[33] = 0;
new cvar_vip_maxap, cvar_vip_maxhp, cvar_vip_showC, cvar_vip_showH, cvar_vip_in_out, cvar_tag, cvar_start_hp, cvar_start_ap, cvar_start_money, cvar_vip_jump, cvar_hp_kill, cvar_ap_kill, jumpnum[33], bool: dojump[33], SyncHudMessage;

public plugin_init() 
{
	register_plugin("Classic VIP-FIROGINAL.RO", "5.1.3", "Devil aKa. StefaN@CSX");
	
	RegisterHam(Ham_Spawn, "player", "Spawn", 1);
	
	register_clcmd("say /vip", "vip_info");
	register_clcmd("say", "handle_say");
	register_clcmd("say_team", "handle_say");
	
	register_event("DeathMsg", "eDeathMsg", "a");
	register_message(get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib");
	RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1);	

	cvar_tag = register_cvar("amx_vip_tag", "VIP");

	cvar_start_hp = register_cvar("amx_start_hp", "100");
	cvar_start_ap = register_cvar("amx_start_ap", "100");
	cvar_start_money = register_cvar("amx_start_money", "900");
	cvar_vip_jump = register_cvar("amx_vip_jump", "1" );
	cvar_hp_kill = register_cvar("amx_vip_addhp", "20");	
	cvar_ap_kill = register_cvar("amx_vip_addap", "20");
	cvar_vip_in_out = register_cvar("amx_vip_in_out", "1");
	cvar_vip_showC = register_cvar("amx_vip_show_chat", "1");
	cvar_vip_showH = register_cvar("amx_vip_show_hud", "1");
	cvar_vip_maxhp = register_cvar("amx_vip_maxhp", "100");
	cvar_vip_maxap = register_cvar("amx_vip_maxap", "100");	

	set_task(120.0, "mesaj_info", _, _, _, "b");
	set_task( 1.0, "TaskDisplayVips", _, _, _, "b", 0 );
	SyncHudMessage = CreateHudSyncObj( );		
}

public HAM_Spawn_Post(id)
{
	if(is_user_alive(id) && get_user_flags(id) & VIP_LEVEL_ACCES)
	{
		round[id]++
		
		if(round[id]>=6)
			vip_menu(id)
	}
}

public vip_menu(id) 
{
	if(!is_user_alive(id))
		return;	
	
	if(!(get_user_flags(id) & VIP_LEVEL_ACCES))
		return;
	
	new menu
	switch(cs_get_user_team(id))
	{
		case CS_TEAM_CT:
		{
			menu = menu_create("\y[\rVIP Classic\y] \wMeniu \yVIP", "menu_ammunition");
			menu_additem(menu, "M4a1+Deagle+Set gren?zi", "1");
			menu_additem(menu, "Famas+Deagle+Set gren?zi", "2");
			menu_additem(menu, "Awp+Deagle+Set gren?zi", "3");
		}
	
		case CS_TEAM_T:
		{
			menu = menu_create("\y[\rVIP Classic\y] \wMeniu \yVIP", "menu_ammunition");
			menu_additem(menu, "Ak47+Deagle+Set gren?zi", "1");
			menu_additem(menu, "Galil+Deagle+Set gren?zi", "2");
			menu_additem(menu, "Awp+Deagle+Set gren?zi", "3");
		}
	}
	menu_display(id, menu, 0)
}

public menu_ammunition ( id, menu, item ) 
{
	new tag[32];
	get_pcvar_string(cvar_tag, tag, charsmax(tag));
	
	if(item == MENU_EXIT)
	{
		return PLUGIN_HANDLED;
	}

	new data[6], szName[64];
	new access, callback;
	menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
	new key = str_to_num(data);

	if(cs_get_user_team(id) == CS_TEAM_CT)
		switch(key)
	{
		case 1:
	{
			drop_weapons(id, 1)
			drop_weapons(id, 2)
			give_item(id, "weapon_knife");	
			give_item(id, "weapon_m4a1");
			give_item(id, "weapon_deagle");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
			cs_set_user_bpammo(id, CSW_M4A1, 90);
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);
			ColorChat(id,GREEN,"^4%s ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenazi^1.",tag);
	}
		case 2:
	{
			drop_weapons(id, 1)
			drop_weapons(id, 2)
			give_item(id, "weapon_knife");
			give_item(id, "weapon_famas");
			give_item(id, "weapon_deagle");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
			cs_set_user_bpammo(id, CSW_FAMAS, 90);
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);
			ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Famas^1+^4Deagle^1+^4Set grenazi^1.",tag);
	}
		case 3:
	{
			drop_weapons(id, 1)
			drop_weapons(id, 2)
			give_item(id, "weapon_knife");
			give_item(id, "weapon_awp");
			give_item(id, "weapon_deagle");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
			cs_set_user_bpammo(id, CSW_AWP, 30);
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);
			ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Awp^1+^4Deagle^1+^4Set grenazi^1.",tag);
	}      
}
	if(cs_get_user_team(id) == CS_TEAM_T)
		switch(key)
	{
		case 1:
	{
			drop_weapons(id, 1)
			drop_weapons(id, 2)
			give_item(id, "weapon_knife");
			give_item(id, "weapon_ak47");
			give_item(id, "weapon_deagle");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
			cs_set_user_bpammo(id, CSW_AK47, 90);
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);
			ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Ak47^1+^4Deagle^1+^4Set grenazi^1.",tag);
	}      
		case 2:
	{
			drop_weapons(id, 1)
			drop_weapons(id, 2)
			give_item(id, "weapon_knife");
			give_item(id, "weapon_galil");
			give_item(id, "weapon_deagle");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
			cs_set_user_bpammo(id, CSW_GALIL, 90);
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);
			ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Galil^1+^4Deagle^1+^4Set grenazi^1.",tag);
	}
		case 3:
	{
			drop_weapons(id, 1)
			drop_weapons(id, 2)
			give_item(id, "weapon_knife");
			give_item(id, "weapon_awp");
			give_item(id, "weapon_deagle");
			give_item(id, "weapon_hegrenade");
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_smokegrenade");
			cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
			cs_set_user_bpammo(id, CSW_AWP, 30);
			cs_set_user_bpammo(id, CSW_DEAGLE, 35);
			ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Awp^1+^4Deagle^1+^4Set grenazi^1.",tag);
	}      
	}
	menu_destroy(menu);
	return PLUGIN_HANDLED;  
}

public Spawn(id) 
{ 
	if(!is_user_alive(id))
		return;
    
	new CsTeams:team = cs_get_user_team(id) 
	if(get_user_flags(id) & VIP_LEVEL_ACCES) 
	{
		switch(team) 
	    {
		case CS_TEAM_T: 
		{
			set_user_health(id, get_pcvar_num(cvar_start_hp));
			set_user_armor(id, get_pcvar_num(cvar_start_ap));
			cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(cvar_start_money));
		}
		case CS_TEAM_CT: 
		{
			set_user_health(id, get_pcvar_num( cvar_start_hp ));
			set_user_armor(id, get_pcvar_num( cvar_start_ap ));
			cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(cvar_start_money));
		}
	    }
	}
	
	new MapName[32]; get_mapname(MapName, sizeof(MapName));
	for (new i = 0; i < sizeof (RMaps); i ++)
	{
		if(equali (MapName, RMaps[i])) 
		{
			remove_user_flags (id, read_flags(REMOVE_FLAGS));
		}
	}
}

public client_putinserver(id) 
{	
	set_task(2.0, "in", id);
	if(get_user_flags(id) & VIP_LEVEL_ACCES)
	{
		jumpnum[id] = 0;
		dojump[id] = false;
		round[id] = 0;
	}	
}

public client_disconnected(id)
{
	set_task(2.0, "out", id);

	if(get_user_flags(id) & VIP_LEVEL_ACCES)
	{
		jumpnum[id] = 0;
		dojump[id] = false;
		round[id] = 0;
	}
}

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

	new BUTON = get_user_button(id)
	new OLDBUTON = get_user_oldbutton(id)
	new JUMP_VIP = get_pcvar_num(cvar_vip_jump) 

	if((BUTON & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON & IN_JUMP))
	{
		if(((get_user_flags(id) & VIP_LEVEL_ACCES) && (jumpnum[id] < JUMP_VIP)))
		{
			dojump[id] = true
			jumpnum[id]++
		}
	}

	if((BUTON & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		jumpnum[id] = 0
	}

	return PLUGIN_CONTINUE;
}

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

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

public eDeathMsg()
{
	new id_Killer = read_data(1);
	new VIP_MAXHP = get_pcvar_num(cvar_vip_maxhp);
	new VIP_MAX_HP = get_user_health(id_Killer);
	new VIP_MAXAP = get_pcvar_num(cvar_vip_maxap);
	new VIP_MAX_AP = get_user_armor(id_Killer);

	if(is_user_alive(id_Killer))
	{
		if(get_user_flags(id_Killer) & VIP_LEVEL_ACCES )
			{
				set_user_health(id_Killer, get_user_health(id_Killer) + get_pcvar_num(cvar_hp_kill));
				set_user_armor(id_Killer, get_user_armor(id_Killer) + get_pcvar_num(cvar_ap_kill));
			}
	}

	if(VIP_MAX_HP >= VIP_MAXHP)
	{
               	set_user_health(id_Killer, get_pcvar_num(cvar_vip_maxhp));
		return PLUGIN_HANDLED;
	}
	
	if(VIP_MAX_AP >= VIP_MAXAP)
	{
               	set_user_armor(id_Killer, get_pcvar_num(cvar_vip_maxap));
		return PLUGIN_HANDLED;
	}

	return PLUGIN_HANDLED;
}

public in(id) 	
{
	if(get_pcvar_num(cvar_vip_in_out))
	{
		new tag[32], name[32];

		get_pcvar_string(cvar_tag, tag, charsmax(tag)); 
		get_user_name(id, name, charsmax(name)); 

		if(get_user_flags(id) & VIP_LEVEL_ACCES)   
		{ 
			ColorChat(0, GREEN, "^4%s ^1VIP: ^4%s ^1s-a conectat.", tag, name); 
		}
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

public out(id) 	
{	
	if(get_pcvar_num(cvar_vip_in_out))
	{
		new tag[32], name[32];

		get_pcvar_string(cvar_tag, tag, charsmax(tag)); 
		get_user_name(id, name, charsmax(name)); 

		if(get_user_flags(id) & VIP_LEVEL_ACCES)   
		{ 
			ColorChat(0, GREEN, "^4%s ^1VIP: ^4%s ^1s-a deconectat.", tag, name); 
		}
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE;
}

public vip_info(id)
{
	show_motd(id, "/addons/amxmodx/configs/vip_info.html");
}

public mesaj_info()	
{
	new tag[32];
	get_pcvar_string(cvar_tag, tag, charsmax(tag));
	
	ColorChat(0, GREEN, "^4%s ^1Tastati in chat ^4/vip ^1pentru a vedea beneficiile si pretul vip-ului.", tag);
}

public TaskDisplayVips( )
{
	if(get_pcvar_num(cvar_vip_showH))
	{
		static iPlayers[ 32 ];
		static iPlayersNum;
	
		get_players( iPlayers, iPlayersNum, "ch" );
		if( !iPlayersNum )
			return 1;
	
		static iVipsConnected, szVipsNames[ 128 ], szName[ 32 ];
		formatex( szVipsNames, sizeof ( szVipsNames ) -1, "" ); // Is this needed ?
		iVipsConnected = 0;
	
		static id, i;
		for( i = 0; i < iPlayersNum; i++ )
		{
			id = iPlayers[ i ];
			if( get_user_flags( id ) & VIP_LEVEL_ACCES )
			{
				get_user_name( id, szName, sizeof ( szName ) -1 );
			
				add( szVipsNames, sizeof ( szVipsNames ) -1, szName );
				add( szVipsNames, sizeof ( szVipsNames ) -1, "^n" );
			
				iVipsConnected++;
			}
		}
	
		formatex( g_szMessage, sizeof ( g_szMessage ) -1, "%s ( %i )^n%s",
			g_szBeginning, iVipsConnected, szVipsNames );
		
		set_hudmessage( 25, 255, 25, 0.01, 0.25, 0, 0.0, 1.0, 0.1, 0.1, -1 );
		ShowSyncHudMsg( 0, SyncHudMessage, g_szMessage );
	}
	return PLUGIN_CONTINUE;
		
}

public handle_say(id) 
{
	new said[192];
	read_args(said,192);
	if(contain(said, "/vips") != -1)
	set_task(0.1,"print_adminlist",id);
	return PLUGIN_CONTINUE;
}

public print_adminlist(user) 
{
	if(get_pcvar_num(cvar_vip_showC))
	{
		new tag[32];
		get_pcvar_string(cvar_tag, tag, charsmax(tag));
	
		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(get_user_flags(id) & VIP_LEVEL_ACCES)
					get_user_name(id, adminnames[count++], charsmax(adminnames[ ]));
    
		len = format(message, 255, "^4%s ^1VIP-ii online sunt:^4 " ,tag);
		if(count > 0) 
			{
			for(x = 0 ; x < count ; x++) 
				{
				len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"");
				if(len > 96) 
				{
					print_message(user, message);
					len = format(message, 255, " ");
				}
				}
			print_message(user, message);
			}
		else 
		{
			ColorChat(0, GREEN, "^4%s ^1Nu sunt ^4VIP^1-i online.", tag);
		} 
	}
	return PLUGIN_CONTINUE;  
}

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 MessageScoreAttrib(iMsgID, iDest, iReceiver) 
{
    	new iPlayer = get_msg_arg_int(1);
    	if(is_user_connected( iPlayer )
    	&& (get_user_flags( iPlayer ) & VIP_LEVEL_ACCES)) 
		{
        		set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
    		}
}

stock fm_find_ent_by_owner ( entity, const classname[], owner )
{
	while((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) {  }
	return entity;
}

stock drop_weapons(id, dropwhat)
{
	static Weapons[32], Num, i, WeaponID;
	Num = 0;
	get_user_weapons(id, Weapons, Num);
	for(i = 0; i < Num; i ++)
	{
		WeaponID = Weapons[i];
		if((dropwhat == 1 && ((1 << WeaponID) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1 << WeaponID) & SECONDARY_WEAPONS_BIT_SUM )))
		{
			static DropName[32], WeaponEntity;
			get_weaponname(WeaponID, DropName, charsmax(DropName));
			WeaponEntity = fm_find_ent_by_owner(-1, DropName, id);
			set_pev(WeaponEntity, pev_iuser1, cs_get_user_bpammo (id, WeaponID));
			engclient_cmd(id, "drop", DropName);
			cs_set_user_bpammo(id, WeaponID, 0);
		}
	}
}
Deci :
1. As dori sa fie fara flag sa mii se faca automat in config un folder sa adaug acolo numele celor cu vip.
2. VIP'UL SA AIBA :
PRIMA RUNDA 1HE 2 FLASH 1 SMOKE 1 KEY DEAGLE INCARCAT FULL
A DOUA RUNDA LA FEL .
A TREIA RUNDA SA APARA MENIU
AK
M4A1
AWP
Start hp 100 max 100
ap 100 max 100
Kill normal +20 hp
kill hs 30 hp
dublu jump
parasuta aici as vrea daca se poate invizibila daca nu e bun si cu dll
As dori daca sa-r putea costum diferit sa scrie vip pe spate .
As dori un html mai fain cand scriu /vip .

2 euro vip 1 luna si 5 euro permanent

si sub sa screi beneficiile vipului

SEARA DE LA 22:00 PANA DIMINEATA LA 10:00 SA FIE VIP FREE

DACA E NEVOIE SI PLATESC ! SAU VIN CU SV IN COMUNITATE VOASTRA

VA MULTUMESC PTR TIMPU ACORDAT !

Cu Stima ,
Legends

[/b]
Last edited by Legends 6 years ago, edited 1 time in total.
User avatar
Aneimar
Fondator
Fondator
Posts: 1901
Joined: 8 years ago
Location: RO - DE
Has thanked: 0
Been thanked: 11 times
Zodiac:
Age: 28
Contact:
Status: Offline
Romania

6 years ago

ai uitat sa adaugi plugin-ul in topic pentru modificarea lui .
Image


|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯•.•¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
Image
|___________________________.•.___________________________|

|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯•.•¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
Image
|___________________________.•.___________________________|

|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯•.•¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
Image
|___________________________.•.___________________________|
User avatar
Legends
Membru
Membru
Posts: 5
Joined: 6 years ago
Has thanked: 0
Been thanked: 0
Status: Offline

6 years ago

Gata !
User avatar
Whispers
Membru
Membru
Posts: 316
Joined: 6 years ago
Has thanked: 0
Been thanked: 0
Zodiac:
Age: 26
Status: Offline

6 years ago

O cautare pe google si gaseai tot ce voiai, inafara de parasuta dar sunt pluginuri si pentru acest lucru

sma :
#include <amxmodx>
#include <cstrike>
#include <fun>
#include <hamsandwich>
#include <engine>
#include <fakemeta>
#include <colorchat>

#define VIP_LEVEL_ACCES ADMIN_LEVEL_F

#define SCOREATTRIB_NONE 0
#define SCOREATTRIB_DEAD ( 1 << 0 )
#define SCOREATTRIB_BOMB ( 1 << 1 )
#define SCOREATTRIB_VIP ( 1 << 2 )

#define REMOVE_FLAGS "r"

new const RMaps [ ] [ ] =
{
"35hp",
"35hp_2",
"31hp",
"1hp",
"100hp"
};

new const g_szBeginning[ ] = "Membrii VIP"

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

new g_szMessage[256];
new round[33] = 0;
new cvar_vip_maxap, cvar_vip_maxhp, cvar_vip_showC, cvar_vip_showH, cvar_vip_in_out, cvar_tag, cvar_start_hp, cvar_start_ap, cvar_start_money, cvar_vip_jump, cvar_hp_kill, cvar_ap_kill, jumpnum[33], bool: dojump[33], SyncHudMessage;

public plugin_init()
{
register_plugin("Classic VIP-FIROGINAL.RO", "5.1.3", "Devil aKa. StefaN@CSX");

RegisterHam(Ham_Spawn, "player", "Spawn", 1);

register_clcmd("say /vip", "vip_info");
register_clcmd("say", "handle_say");
register_clcmd("say_team", "handle_say");

register_event("DeathMsg", "eDeathMsg", "a");
register_message(get_user_msgid( "ScoreAttrib" ), "MessageScoreAttrib");
RegisterHam(Ham_Spawn, "player", "HAM_Spawn_Post", 1);

cvar_tag = register_cvar("amx_vip_tag", "VIP");

cvar_start_hp = register_cvar("amx_start_hp", "150");
cvar_start_ap = register_cvar("amx_start_ap", "180");
cvar_start_money = register_cvar("amx_start_money", "8000");
cvar_vip_jump = register_cvar("amx_vip_jump", "1" );
cvar_hp_kill = register_cvar("amx_vip_addhp", "10");
cvar_ap_kill = register_cvar("amx_vip_addap", "10");
cvar_vip_in_out = register_cvar("amx_vip_in_out", "1");
cvar_vip_showC = register_cvar("amx_vip_show_chat", "1");
cvar_vip_showH = register_cvar("amx_vip_show_hud", "1");
cvar_vip_maxhp = register_cvar("amx_vip_maxhp", "180");
cvar_vip_maxap = register_cvar("amx_vip_maxap", "200");

set_task(120.0, "mesaj_info", _, _, _, "b");
set_task( 1.0, "TaskDisplayVips", _, _, _, "b", 0 );
SyncHudMessage = CreateHudSyncObj( );
}

public HAM_Spawn_Post(id)
{
if(is_user_alive(id) && get_user_flags(id) & VIP_LEVEL_ACCES)
{
round[id]++

if(round[id]>=6)
vip_menu(id)
}
}

public vip_menu(id)
{
if(!is_user_alive(id))
return;

if(!(get_user_flags(id) & VIP_LEVEL_ACCES))
return;

new menu
switch(cs_get_user_team(id))
{
case CS_TEAM_CT:
{
menu = menu_create("\y[\rVIP Classic\y] \wMeniu \yVIP", "menu_ammunition");
menu_additem(menu, "M4a1+Deagle+Set grenăzi", "1");
menu_additem(menu, "Famas+Deagle+Set grenăzi", "2");
menu_additem(menu, "Awp+Deagle+Set grenăzi", "3");
}

case CS_TEAM_T:
{
menu = menu_create("\y[\rVIP Classic\y] \wMeniu \yVIP", "menu_ammunition");
menu_additem(menu, "Ak47+Deagle+Set grenăzi", "1");
menu_additem(menu, "Galil+Deagle+Set grenăzi", "2");
menu_additem(menu, "Awp+Deagle+Set grenăzi", "3");
}
}
menu_display(id, menu, 0)
}

public menu_ammunition ( id, menu, item )
{
new tag[32];
get_pcvar_string(cvar_tag, tag, charsmax(tag));

if(item == MENU_EXIT)
{
return PLUGIN_HANDLED;
}

new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new key = str_to_num(data);

if(cs_get_user_team(id) == CS_TEAM_CT)
switch(key)
{
case 1:
{
drop_weapons(id, 1)
drop_weapons(id, 2)
give_item(id, "weapon_knife");
give_item(id, "weapon_m4a1");
give_item(id, "weapon_deagle");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_bpammo(id, CSW_M4A1, 90);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
ColorChat(id,GREEN,"^4%s ^1Ai ales ^4M4a1^1+^4Deagle^1+^4Set grenazi^1.",tag);
}
case 2:
{
drop_weapons(id, 1)
drop_weapons(id, 2)
give_item(id, "weapon_knife");
give_item(id, "weapon_famas");
give_item(id, "weapon_deagle");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_bpammo(id, CSW_FAMAS, 90);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Famas^1+^4Deagle^1+^4Set grenazi^1.",tag);
}
case 3:
{
drop_weapons(id, 1)
drop_weapons(id, 2)
give_item(id, "weapon_knife");
give_item(id, "weapon_awp");
give_item(id, "weapon_deagle");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_bpammo(id, CSW_AWP, 30);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Awp^1+^4Deagle^1+^4Set grenazi^1.",tag);
}
}
if(cs_get_user_team(id) == CS_TEAM_T)
switch(key)
{
case 1:
{
drop_weapons(id, 1)
drop_weapons(id, 2)
give_item(id, "weapon_knife");
give_item(id, "weapon_ak47");
give_item(id, "weapon_deagle");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_bpammo(id, CSW_AK47, 90);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Ak47^1+^4Deagle^1+^4Set grenazi^1.",tag);
}
case 2:
{
drop_weapons(id, 1)
drop_weapons(id, 2)
give_item(id, "weapon_knife");
give_item(id, "weapon_galil");
give_item(id, "weapon_deagle");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
cs_set_user_bpammo(id, CSW_HEGRENADE, 1);
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_bpammo(id, CSW_GALIL, 90);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Galil^1+^4Deagle^1+^4Set grenazi^1.",tag);
}
case 3:
{
drop_weapons(id, 1)
drop_weapons(id, 2)
give_item(id, "weapon_knife");
give_item(id, "weapon_awp");
give_item(id, "weapon_deagle");
give_item(id, "weapon_hegrenade");
give_item(id, "weapon_flashbang");
give_item(id, "weapon_smokegrenade");
cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
cs_set_user_bpammo(id, CSW_AWP, 30);
cs_set_user_bpammo(id, CSW_DEAGLE, 35);
ColorChat(id,GREEN,"^4%s ^1Ai ales ^4Awp^1+^4Deagle^1+^4Set grenazi^1.",tag);
}
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}

public Spawn(id)
{
if(!is_user_alive(id))
return;

new CsTeams:team = cs_get_user_team(id)
if(get_user_flags(id) & VIP_LEVEL_ACCES)
{
switch(team)
{
case CS_TEAM_T:
{
set_user_health(id, get_pcvar_num(cvar_start_hp));
set_user_armor(id, get_pcvar_num(cvar_start_ap));
cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(cvar_start_money));
}
case CS_TEAM_CT:
{
set_user_health(id, get_pcvar_num( cvar_start_hp ));
set_user_armor(id, get_pcvar_num( cvar_start_ap ));
cs_set_user_money(id, cs_get_user_money(id) + get_pcvar_num(cvar_start_money));
}
}
}

new MapName[32]; get_mapname(MapName, sizeof(MapName));
for (new i = 0; i < sizeof (RMaps); i ++)
{
if(equali (MapName, RMaps))
{
remove_user_flags (id, read_flags(REMOVE_FLAGS));
}
}
}

public client_putinserver(id)
{
set_task(2.0, "in", id);
if(get_user_flags(id) & VIP_LEVEL_ACCES)
{
jumpnum[id] = 0;
dojump[id] = false;
round[id] = 0;
}
}

public client_disconnect(id)
{
set_task(2.0, "out", id);

if(get_user_flags(id) & VIP_LEVEL_ACCES)
{
jumpnum[id] = 0;
dojump[id] = false;
round[id] = 0;
}
}

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

new BUTON = get_user_button(id)
new OLDBUTON = get_user_oldbutton(id)
new JUMP_VIP = get_pcvar_num(cvar_vip_jump)

if((BUTON & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(OLDBUTON & IN_JUMP))
{
if(((get_user_flags(id) & VIP_LEVEL_ACCES) && (jumpnum[id] < JUMP_VIP)))
{
dojump[id] = true
jumpnum[id]++
}
}

if((BUTON & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
{
jumpnum[id] = 0
}

return PLUGIN_CONTINUE;
}

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

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

public eDeathMsg()
{
new id_Killer = read_data(1);
new VIP_MAXHP = get_pcvar_num(cvar_vip_maxhp);
new VIP_MAX_HP = get_user_health(id_Killer);
new VIP_MAXAP = get_pcvar_num(cvar_vip_maxap);
new VIP_MAX_AP = get_user_armor(id_Killer);

if(is_user_alive(id_Killer))
{
if(get_user_flags(id_Killer) & VIP_LEVEL_ACCES )
{
set_user_health(id_Killer, get_user_health(id_Killer) + get_pcvar_num(cvar_hp_kill));
set_user_armor(id_Killer, get_user_armor(id_Killer) + get_pcvar_num(cvar_ap_kill));
}
}

if(VIP_MAX_HP >= VIP_MAXHP)
{
set_user_health(id_Killer, get_pcvar_num(cvar_vip_maxhp));
return PLUGIN_HANDLED;
}

if(VIP_MAX_AP >= VIP_MAXAP)
{
set_user_armor(id_Killer, get_pcvar_num(cvar_vip_maxap));
return PLUGIN_HANDLED;
}

return PLUGIN_HANDLED;
}

public in(id)
{
if(get_pcvar_num(cvar_vip_in_out))
{
new tag[32], name[32];

get_pcvar_string(cvar_tag, tag, charsmax(tag));
get_user_name(id, name, charsmax(name));

if(get_user_flags(id) & VIP_LEVEL_ACCES)
{
ColorChat(0, GREEN, "^4%s ^1VIP: ^4%s ^1s-a conectat.", tag, name);
}
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

public out(id)
{
if(get_pcvar_num(cvar_vip_in_out))
{
new tag[32], name[32];

get_pcvar_string(cvar_tag, tag, charsmax(tag));
get_user_name(id, name, charsmax(name));

if(get_user_flags(id) & VIP_LEVEL_ACCES)
{
ColorChat(0, GREEN, "^4%s ^1VIP: ^4%s ^1s-a deconectat.", tag, name);
}
return PLUGIN_HANDLED;
}
return PLUGIN_CONTINUE;
}

public vip_info(id)
{
show_motd(id, "/addons/amxmodx/configs/vip_info.html");
}

public mesaj_info()
{
new tag[32];
get_pcvar_string(cvar_tag, tag, charsmax(tag));

ColorChat(0, GREEN, "^4%s ^1Tastati in chat ^4/vip ^1pentru a vedea beneficiile si pretul vip-ului.", tag);
}

public TaskDisplayVips( )
{
if(get_pcvar_num(cvar_vip_showH))
{
static iPlayers[ 32 ];
static iPlayersNum;

get_players( iPlayers, iPlayersNum, "ch" );
if( !iPlayersNum )
return 1;

static iVipsConnected, szVipsNames[ 128 ], szName[ 32 ];
formatex( szVipsNames, sizeof ( szVipsNames ) -1, "" ); // Is this needed ?
iVipsConnected = 0;

static id, i;
for( i = 0; i < iPlayersNum; i++ )
{
id = iPlayers[ i ];
if( get_user_flags( id ) & VIP_LEVEL_ACCES )
{
get_user_name( id, szName, sizeof ( szName ) -1 );

add( szVipsNames, sizeof ( szVipsNames ) -1, szName );
add( szVipsNames, sizeof ( szVipsNames ) -1, "^n" );

iVipsConnected++;
}
}

formatex( g_szMessage, sizeof ( g_szMessage ) -1, "%s ( %i )^n%s",
g_szBeginning, iVipsConnected, szVipsNames );

set_hudmessage( 25, 255, 25, 0.01, 0.25, 0, 0.0, 1.0, 0.1, 0.1, -1 );
ShowSyncHudMsg( 0, SyncHudMessage, g_szMessage );
}
return PLUGIN_CONTINUE;

}

public handle_say(id)
{
new said[192];
read_args(said,192);
if(contain(said, "/vips") != -1)
set_task(0.1,"print_adminlist",id);
return PLUGIN_CONTINUE;
}

public print_adminlist(user)
{
if(get_pcvar_num(cvar_vip_showC))
{
new tag[32];
get_pcvar_string(cvar_tag, tag, charsmax(tag));

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(get_user_flags(id) & VIP_LEVEL_ACCES)
get_user_name(id, adminnames[count++], charsmax(adminnames[ ]));

len = format(message, 255, "^4%s ^1VIP-ii online sunt:^4 " ,tag);
if(count > 0)
{
for(x = 0 ; x < count ; x++)
{
len += format(message[len], 255-len, "%s%s ", adminnames[x], x < (count-1) ? ", ":"");
if(len > 96)
{
print_message(user, message);
len = format(message, 255, " ");
}
}
print_message(user, message);
}
else
{
ColorChat(0, GREEN, "^4%s ^1Nu sunt ^4VIP^1-i online.", tag);
}
}
return PLUGIN_CONTINUE;
}

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 MessageScoreAttrib(iMsgID, iDest, iReceiver)
{
new iPlayer = get_msg_arg_int(1);
if(is_user_connected( iPlayer )
&& (get_user_flags( iPlayer ) & VIP_LEVEL_ACCES))
{
set_msg_arg_int(2, ARG_BYTE, is_user_alive(iPlayer) ? SCOREATTRIB_VIP : SCOREATTRIB_DEAD);
}
}

stock fm_find_ent_by_owner ( entity, const classname[], owner )
{
while((entity = engfunc(EngFunc_FindEntityByString, entity, "classname", classname)) && pev(entity, pev_owner) != owner) { }
return entity;
}

stock drop_weapons(id, dropwhat)
{
static Weapons[32], Num, i, WeaponID;
Num = 0;
get_user_weapons(id, Weapons, Num);
for(i = 0; i < Num; i ++)
{
WeaponID = Weapons;
if((dropwhat == 1 && ((1 << WeaponID) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1 << WeaponID) & SECONDARY_WEAPONS_BIT_SUM )))
{
static DropName[32], WeaponEntity;
get_weaponname(WeaponID, DropName, charsmax(DropName));
WeaponEntity = fm_find_ent_by_owner(-1, DropName, id);
set_pev(WeaponEntity, pev_iuser1, cs_get_user_bpammo (id, WeaponID));
engclient_cmd(id, "drop", DropName);
cs_set_user_bpammo(id, WeaponID, 0);
}
}
}


html : creezi un fisier in addons\amxmodx\configs

<html>
<head>
<style type="text/css">
body {
background-color: #000000;
font-family:Tahoma;
}
</style>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1257">
</head>
<font size="1" color="#40FF00"><b><center>Ce avantaje are VIP-ul?</center></b></font><br />
<font size="1" color="#aa00dd">
<b>
<LI TYPE=square>Meniul vip-ului va aparea la tastarea comenzii /vmenu:</LI><br>
* <font color=#80FF00>La CT :</font><br>
<font color=#FFFFFF>1. M4a1+Deagle+Set grenazi<br>
2. Famas+Deagle+Set grenazi<br>
3. Awp+Deagle+Set grenazi<br></font>

* <font color=#80FF00>La T :</font><br>
<font color=#FFFFFF>1. Ak47+Deagle+Set grenazi<br>
2. Galil+Deagle+Set grenazi<br>
3. Awp+Deagle+Set grenazi<br><br></font>

<LI TYPE=square>INFO:</LI><br>
- Incepi runda cu <font color=#FFFF00>150 HP / 180 AP / 8000 $</font><br>
- Primesti 10 HP si 10 AP la fiecare kill facut.<br>
- Poti sari de 2 ori.<br>
- Apari in TAB si in HUD ca VIP .<br>
- Tastezi <font color=#80FFFF>/vips</font> pentru a vedea <font color=#00FF00>VIP-ii online.</font><br>
- Slot rezervat.<br><br>

<font size="1" color=#FF0000><strong>Pret: </strong></font><br>
<font size="1" color=#FF0000><strong>Contact: </strong></font><br>
</body>
</html>



Comenzi cvar (adaugi in .amxx):

amx_vip_tag "TAG" -> Pune tag-ul din fata tuturor mesajelor. (default "VIP")
amx_start_hp "valoare" -> Seteaza cu cat HP sa inceapa VIP-ul. (default "150")
amx_start_ap "valoare" -> Seteaza cu cat AP sa inceapa VIP-ul. (default "180")
amx_start_money "valoare" -> Seteaza cu cati BANI sa inceapa VIP-ul. (default "8000")
amx_vip_jump "valoare" -> Seteaza de cate ori sa sara VIP-ul. (default "1") || EX: 1 = 2 sarituri / 2 = 3sarituri / etc..
amx_vip_addhp "valoare" -> Seteaza cat HP sa primeasca VIP-ul pe kill. (default "10")
amx_vip_addap "valoare" -> Seteaza cat AP sa primeasca VIP-ul pe kill (default "10")
amx_vip_in_out "valoare" -> 0 - dezactiveaza / 1 - activeaza apartita mesajului la conectare/deconectare pe server (default "1")
amx_vip_show_chat "valoare" -> 0 - dezactiveaza / 1 - activeaza comanda /vips (default "1")
amx_vip_show_hud "valoare" -> 0 - dezactiveaza / 1 - activeaza aparitia hudului ce arata vipii online (default "1")
amx_vip_maxhp "valoare" -> Seteaza hp-ul maxim pe care il poate avea VIP-ul (default "180")
amx_vip_maxap "valoare" -> Seteaza ap-ul maxim pe care il poate avea VIP-ul (default "200")

Comenzi:
/vmenu - deschide meniul vipului oricui tasteaza comanda, dar poate fi folosit doar de cei care au flagul 'R' si este disponibila doar in versiunea 5.0
/vip - deschide motd-ul ce ofera informatii despre vip
/vips - arata vipii online in chat
User avatar
Legends
Membru
Membru
Posts: 5
Joined: 6 years ago
Has thanked: 0
Been thanked: 0
Status: Offline

6 years ago

Pai asta il am si eu doar ca nu are primele 3 runde deagle nu are seara intre ora 21:00 pana dimineata 11:00 vip gratis . Html e tor ala.
Locked

Return to “Modificare plugin”