Page 3 of 6

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 31 Aug 2018, 00:24
by YONTU
RaFy1995 wrote:Salut, mi-ai scris pe Privat sa iti pun aici VIP-ul pe care il doresc,

Code: Select all

- VIP-ul sa se activeze din a 3-a Runda cu Meniul de arme 
- M4A1 + Deagle + Armor / AK47 + Deagle + Armor / AWP + Deagle + Armor
- Sa ai Bullet Damage + Multi-Jump + Ecran albastru cand faci frag
- Cand faci kill viata poate ajunge pana la 110
- Primesti +15 HP Frag Normal 
- Primesti +30 HP Frag Headshot
- Primesti +60 HP Frag Knife
- Primesti +80 HP Frag KnifeHeadshot
- Damage marit cu 50% pentru toate armele, inclusiv Grenada
- Apari ca VIP in Tab + Slot rezervat pe Server
- Mesaj la connectare, atunci cand te connectezi va aparea asa, Atentie "*VIP* X s-a connectat
- Si sa fie FREE EVENT la toata lumea sa aiba VIP gratis de la ora 00:00 pana la ora 12:00!

Si pe Hartile de AWP sa fie Dezactivat!
Si Flagul sa fie litera t

Si daca ai putea sa il faci in asa fel sa fie fara cvaruri in amxx cfg stii tu!
| Afiseaza codul
/*
CREDITE:
ConnorMcLeod - pentru bullet damage
twistedeuphoria - pentru multi jump
cheap_suit - cateva bucati de cod extrase din biohazard
*/

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

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[CS.SERVERULTAU.RO]";		// TAGUL IN CHAT CARE APARE
new const CONTACT[] = "O ADRESA DE CONTACT";

#define is_user_vip(%1) (get_user_flags(%1) & read_flags("b") && get_user_flags(%1) & read_flags("t"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"

#define is_user_valid(%1) (1 <= %1 <= max_players)

enum cvars
{
	hp_spawn = 0,
	ap_spawn,
	hp_kill,
	hp_hs,
	hp_knife,
	hp_knife_hs,
	hp_max,
	show_vip_tab,
	show_bullet_dmg,
	multi_jump,
	damage
}

new cvar[cvars], rounds = 0;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];

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

// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] = 
{ 
	{0, 127, 255}, // blue 
	{255, 127, 0}, // orange 
	{127, 0, 255}, // purple 
	{255, 0, 0}, // red 
	{255, 100, 150}, // pink
	{0, 255, 0} // green
}

public plugin_init()
{	
	new path[64];
	get_localinfo("amxx_configsdir", path, charsmax(path));
	formatex(path, charsmax(path), "%s/vip_maps.ini", path);
	
	new file = fopen(path, "r+");
	
	if(!file_exists(path))
	{
		write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
		write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
	}
	
	new mapname[32];
	get_mapname(mapname, charsmax(mapname));
	
	new text[121], maptext[32], bool:remove_vip = false;
	while(!feof(file))
	{
		fgets(file, text, charsmax(text));
		trim(text);
		
		if(text[0] == ';' || !strlen(text)) 
		{
			continue; 
		}
		
		parse(text, maptext, charsmax(maptext));
		
		if(equal(maptext, mapname) || contain(maptext, "awp_"))
		{
			log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
			remove_vip = true;
			break;
		}
		
	}
	fclose(file);
	
	if(!remove_vip)
	{
		register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

		register_event("Damage", "event_Damage", "b", "2>0", "3=0");
		register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
		register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")

		RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawnPost", 1);
		RegisterHam(Ham_TakeDamage, "player", "fw_TakeDamagePre");

		register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");

		register_clcmd("say /vips", "CmdVipsOnline");
		register_clcmd("say_team /vips", "CmdVipsOnline");
		register_clcmd("say vips", "CmdVipsOnline");
		register_clcmd("say_team vips", "CmdVipsOnline");
		
		register_clcmd("say vip", "CmdPrintAttributes");
		register_clcmd("say_team vip", "CmdPrintAttributes");
		register_clcmd("say vip", "CmdPrintAttributes");
		register_clcmd("say_team vip", "CmdPrintAttributes");

		cvar[hp_spawn] = register_cvar("vip_hp_spawn", "0");			// 0 = dezactivat
		cvar[ap_spawn] = register_cvar("vip_ap_spawn", "0");			// 0 = dezactivat
		cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");			// 0 = dezactivat
		cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "0");		// 0 = dezactivat
		cvar[multi_jump] = register_cvar("vip_multijump", "1");			// 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
		cvar[hp_kill] = register_cvar("vip_hp_kill", "10");				// 0 = dezactivat
		cvar[hp_hs] = register_cvar("vip_hp_hs", "10");				// 0 = dezactivat
		cvar[hp_knife] = register_cvar("vip_hp_knife", "10");			// 0 = dezactivat
		cvar[hp_knife_hs] = register_cvar("vip_hp_knife_hs", "10");			// 0 = dezactivat
		cvar[hp_max] = register_cvar("vip_hp_max", "110");				// 0 = viata infinita
		cvar[damage] = register_cvar("vip_damage", "50");				// 0 = dezactivat | 50 = 50% mai mult

		max_players = get_maxplayers();
	}
	else
	{
		register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
		pause("ade");
	}
	
	register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("vip_", PLUGIN_VERSION);
}

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

	if(is_user_vip(id))
	{
		new nume[32];
		get_user_name(id, nume, charsmax(nume));
		ColorChat(0, "!4%s!1 Atentie !3*VIP*!4 %s! s-a connectat.", TAG, nume);
	}
}

public CmdVipsOnline(id)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;

	new adminnames[33][32], message[256], i, count, len;
	len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
	for(i = 1 ; i <= max_players; i++)
	{
		if(is_user_connected(i) && is_user_vip(i))
			get_user_name(i, adminnames[count++], charsmax(adminnames[]));
	}
	
	if(count > 0)
	{
		for(i = 0; i < count; i++)
		{
			len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
		}
		ColorChat(id, message);
	}
	else
	{
		len += format(message[len], 255 -len, "!4No one !")
		ColorChat(id, message);
	}

	return PLUGIN_CONTINUE;
}

public CmdPrintAttributes(id)
{
	if(!is_user_connected(id)) return;
	show_motd(id, "vip.html", "Beneficii VIP");
}

public client_PreThink(id)
{
	new cache = get_pcvar_num(cvar[multi_jump]);
	if(is_user_alive(id) && !is_user_vip(id))
		return PLUGIN_CONTINUE;

	if(rounds < 3)
		return PLUGIN_CONTINUE;

	new nbut = get_user_button(id);
	new obut = get_user_oldbutton(id);

	if(cache != 0)
	{	
		if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
		{
			if(g_JumpNum[id] < cache)
			{
				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)
{
	new jump_num = get_pcvar_num(cvar[multi_jump]);
	if(!jump_num)
		return PLUGIN_CONTINUE;
		
	if(is_user_alive(id) && !is_user_vip(id))
		return PLUGIN_CONTINUE;

	if(rounds < 3)
		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 client_death(killer, victim, wpnindex, hitplace, TK)
{
	if(!is_user_alive(killer))
		return;
	if(!is_user_vip(killer))
		return;
	if(killer == victim)
		return;
	if(rounds < 3)
		return;

	static g_msg_screenfade = 0;
	if(!g_msg_screenfade)
		g_msg_screenfade = get_user_msgid("ScreenFade");

	//0x2^0 + 0x2^1 + 0x2^2 + 0x2^3 + 0x2^4 + 0x2^5 + 1x2^6
	message_begin(MSG_ONE_UNRELIABLE, g_msg_screenfade, _, killer);
	write_short(6<<10);		// duration
	write_short(5<<10);		// hold time
	write_short(1<<12);		// fade type
	write_byte(0);		// r
	write_byte(0);		// g
	write_byte(random(255));	// b
	write_byte(255);		// a
	message_end();

	new cache;
	switch(wpnindex)
	{
		case CSW_KNIFE: (hitplace == HIT_HEAD) ? get_pcvar_num(cvar[hp_knife_hs]) : get_pcvar_num(cvar[hp_knife]);
		default: (hitplace == HIT_HEAD) ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
	}
	if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));
}

public event_Damage(victim)
{
	if(!get_pcvar_num(cvar[show_bullet_dmg]))
		return PLUGIN_CONTINUE;
		
	new id = get_user_attacker(victim);
	if(is_user_valid(id))
	{
		if(is_user_alive(id) && !is_user_vip(id))
			return PLUGIN_HANDLED;

		if(rounds < 3)
			return PLUGIN_HANDLED;
		
		if(read_data(4) || read_data(5) || read_data(6))
		{		
			new iPos = ++g_iPlayerPos[id];
			if(iPos == sizeof(g_flCoords))
				iPos = g_iPlayerPos[id] = 0;
			
			new iCol = ++g_iPlayerCol[id];
			if(iCol == sizeof(g_iColors))
				iCol = g_iPlayerCol[id] = 0;
			
			set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
			show_hudmessage(id, "%d", read_data(2));
		}
	}
	
	return PLUGIN_CONTINUE;
}

public event_NewRound()
{
	rounds++;
}

public event_textmsg()
{
	rounds = 0;
}

public fw_PlayerSpawnPost(id)
{
	if(is_user_vip(id) && is_user_alive(id) && rounds >= 3)
	{
		set_task(0.25, "give_items", id + 212);
		return HAM_IGNORED;
	}
	
	return HAM_IGNORED;
}

public give_items(taskid)
{
	new id = taskid - 212;
	if(!is_user_alive(id))
		return;

	new cache = get_pcvar_num(cvar[hp_spawn])
	if(cache != 0) set_user_health(id, cache);

	cache = get_pcvar_num(cvar[ap_spawn]);
	if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);

	ShowVipMenu(id);
}

public fw_TakeDamagePre(iVictim, iInflictor, attacker, Float:fDamage, iDmgType)
{
	if(iVictim == attacker)
		return HAM_HANDLED;

	if(is_user_valid(attacker) && is_user_vip(attacker) && is_user_alive(attacker))
	{
		new Float:Damage = float(get_pcvar_num(cvar[damage]) / 100);
		if(Damage == 0)
			return HAM_IGNORED;

		Damage *= fDamage;
		fDamage += Damage;
		
		SetHamParamFloat(4, fDamage);
		return HAM_HANDLED;
	}

	return HAM_IGNORED;
}

public msg_ScoreAttrib(msgid, dest, id)
{
	if(!get_pcvar_num(cvar[show_vip_tab]))
		return PLUGIN_CONTINUE;
		
	new id = get_msg_arg_int(1);
	if(is_user_connected(id) && is_user_vip(id))
		set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
	
	return PLUGIN_CONTINUE;
}

public ShowVipMenu(id)
{
	if(!is_user_connected(id))
		return PLUGIN_HANDLED;

	if(!is_user_vip(id))
	{
		ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
		ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
		return PLUGIN_HANDLED;
	}

	drop_weapons(id, 2);
	give_item(id, "weapon_deagle");
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	cs_set_user_armor(id, 100, CS_ARMOR_VESTHELM);

	new menu = menu_create("\rMeniu VIP", "VipMenuHandler");
	menu_additem(menu, "\yM4A1 + Deagle + Armor", "1");
	menu_additem(menu, "\yAK-47 + Deagle + Armor", "2");
	menu_additem(menu, "\yAWP + Deagle + Armor", "3");
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
	
	return PLUGIN_CONTINUE;
}

public VipMenuHandler(id, menu, item)
{
	if(!is_user_connected(id) || item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	switch(item)
	{
		case 0:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_m4a1");
			cs_set_user_bpammo(id, CSW_M4A1, 120);
			
			ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3Armor!1.", TAG);
		}
		case 1:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_ak47");
			cs_set_user_bpammo(id, CSW_AK47, 120);
			
			ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3Armor!1.", TAG);
		}
		case 2:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, CSW_AWP, 30);
			
			ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3Armor!1.", TAG);
		}
	}

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

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);

// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
	// Get user weapons
	static weapons[32], num, i, weaponid, wname[32];
	num = 0; // reset passed weapons count (bugfix)
	get_user_weapons(id, weapons, num);
	
	// Loop through them and drop primaries or secondaries
	for (i = 0; i < num; i++)
	{
		// Prevent re-indexing the array
		weaponid = weapons;
		
		if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
		{
			// Get weapon entity
			get_weaponname(weaponid, wname, charsmax(wname));
			engclient_cmd(id, "drop", wname);
		}
	}
}

stock ColorChat(id, String[], any:...) 
{
	static szMesage[192];
	vformat(szMesage, charsmax(szMesage), String, 3);
	
	replace_all(szMesage, charsmax(szMesage), "!1", "^1");
	replace_all(szMesage, charsmax(szMesage), "!3", "^3");
	replace_all(szMesage, charsmax(szMesage), "!4", "^4");
	
	static g_msg_SayText = 0;
	if(!g_msg_SayText)
		g_msg_SayText = get_user_msgid("SayText");
	
	new Players[32], iNum = 1, i;

 	if(id) Players[0] = id;
	else get_players(Players, iNum, "ch");
	
	for(--iNum; iNum >= 0; iNum--) 
	{
		i = Players[iNum];
		
		message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
		write_byte(i);
		write_string(szMesage);
		message_end();
	}
}


Se va creea automat un fisier in configs sub numele de vip_maps.ini
Acolo vei trece hartile unde plginul de mai sus se va dezactiva.
Am facut exact cum ai zis, pluginul are cvar-uri.
Comenzi: | Afiseaza codul
vips - arata vip-ii online in chat
vip - deschide un motd cu beneficii vip, fisierul trebuie pus in configs sub numele de vip,txt (acolo vei trece beneficiile in limbaj html)

ATENTIE: Atunci cand treci un vip in users.ini ii vei trece flagurile bt. Orice alt user din fisier care are flagurile bt va avea vip.
cvar-uri: copy/paste in amxx.cfg | Afiseaza codul
vip_hp_spawn 0        // 0 = dezactivat
vip_ap_spawn 0        // 0 = dezactivat
vip_show_tab 1        // 0 = dezactivat
vip_show_bullet_dmg 1    // 0 = dezactivat
vip_hp_kill 15        // 0 = dezactivat
vip_hp_hs 30        // 0 = dezactivat
vip_hp_knife 60	 // 0 = dezactivat
vip_hp_knife_hs 80	 // 0 = dezactivat
vip_hp_max 110        // 0 = viata infinita
vip_multijump 1	 // 0 = dezactivat || orice valoare pui va avea +1 jump
vip_damage 50	 // 0 = dezactivat || cu cat la % se va mari dmg ul


vip eventul il iei din primul topic

Daca apar erori sau daca esti nemutumit de plugin, lasi replay mai jos si se rezolva

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 31 Aug 2018, 00:35
by NemeSyS17
[/code]NICK: NemeSyS
CERINTE VIP:

Code: Select all

Flag - "t" ADMIN_LEVEL_H
VIP-ul la spawn 200 HP/AP + 1HE
Trail efect prin comanda "trail - random" si ex :"trail 12x12 red"
VIP auto bunnyhop.
Mod : AWP

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 31 Aug 2018, 01:24
by R0tty
Salut
Te rog , daca poti , si ai timp ,sa ma ajuti si pe mine , cu modificarea surse-i vip de mai jos.
Imi doresc mult , ca in loc de AWP sa aiba armele dupa exemplul de mai jos.
Se poate ?
Multumesc din suflet !

la TERO

* VIP Menu Tero
* 1. Get M4A1+Deagle+Armura+Set Grenade( fara smoke )
* 2. Get AK47+Deagle+Armura+Set Grenade ( fara smoke )
* 3. Get GALIL+Deagle+Armura +Set Grenade( fara smoke )
* 0. Exit

si la CT

* VIP Menu CT
* 1. Get M4A1+Deagle+Armura+Set Grenade ( fara smoke )
* 2. Get AK47+Deagle+Armura +Set Grenade( fara smoke )
* 3. Get FAMAS+Deagle+Armura+Set Grenade ( fara smoke )
* 0. Exit

Multumesc Anticipat !

| Afiseaza codul
#define DAMAGE_RECIEVED
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

static const COLOR[] = "^x04" //green
static const CONTACT[] = "R0tty"
new maxplayers
new gmsgSayText
new mpd, mkb, mhb
new g_MsgSync
new health_add
new health_hs_add
new health_max
new nKiller
new nKiller_hp
new nHp_add
new nHp_max
new g_awp_active
new g_menu_active
new CurrentRound
new bool:HasC4[33]
#define Keysrod (1<<0)|(1<<1)|(1<<2)|(1<<9) // Keys: 1234567890
#if defined DAMAGE_RECIEVED
	new g_MsgSync2
#endif

public plugin_init()
{
	register_plugin("VIP PREMIUM Version", "3.1", "CSR")
	mpd = register_cvar("money_per_damage","3")
	mkb = register_cvar("money_kill_bonus","200")
	mhb = register_cvar("money_hs_bonus","500")
	health_add = register_cvar("amx_vip_hp", "15")
	health_hs_add = register_cvar("amx_vip_hp_hs", "30")
	health_max = register_cvar("amx_vip_max_hp", "100")
	g_awp_active = register_cvar("awp_active", "1")
	g_menu_active = register_cvar("menu_active", "1")
	register_event("Damage","Damage","b")
	register_event("DeathMsg","death_msg","a")
	register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")
	register_clcmd("awp","HandleCmd")
    	register_clcmd("sg550","HandleCmd")
    	register_clcmd("g3sg1","HandleCmd")
	register_clcmd("say /wantvip","ShowMotd")
	maxplayers = get_maxplayers()
	gmsgSayText = get_user_msgid("SayText")
	register_clcmd("say", "handle_say")
	register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
	register_logevent("LogEvent_RoundStart", 2, "1=Round_Start" );
	register_event("TextMsg","Event_RoundRestart","a","2&#Game_w")
	register_event("TextMsg","Event_RoundRestart","a","2&#Game_C");
	register_event("DeathMsg", "hook_death", "a", "1>0")
	register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
	g_MsgSync = CreateHudSyncObj()
#if defined DAMAGE_RECIEVED
	g_MsgSync2 = CreateHudSyncObj()
#endif	
}

public on_damage(id)
{
	new attacker = get_user_attacker(id)

#if defined DAMAGE_RECIEVED
	// id should be connected if this message is sent, but lets check anyway
	if ( is_user_connected(id) && is_user_connected(attacker) )
	if (get_user_flags(attacker) & ADMIN_LEVEL_H)
	{
		new damage = read_data(2)

		set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
		ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
#else
	if ( is_user_connected(attacker) && if (get_user_flags(attacker) & ADMIN_LEVEL_H) )
	{
		new damage = read_data(2)
#endif
		set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
		ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
	}
}

public Damage(id)
{
	new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
	if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
	if (get_user_flags(attacker) & ADMIN_LEVEL_H) 
	{
		new money = read_data(2) * get_pcvar_num(mpd)
		if(hitpoint==1) money += get_pcvar_num(mhb)
		cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
	}
}

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

public LogEvent_RoundStart()
{
	CurrentRound++;
	new players[32], player, pnum;
	get_players(players, pnum, "a");
	for(new i = 0; i < pnum; i++)
	{
		player = players;
		if(is_user_alive(player) && get_user_flags(player) & ADMIN_LEVEL_H)
		{
			give_item(player, "weapon_hegrenade")
			give_item(player, "weapon_flashbang")
			give_item(player, "weapon_flashbang")
			give_item(player, "item_assaultsuit")
			give_item(player, "item_thighpack")
			
			if (!get_pcvar_num(g_menu_active))
				return PLUGIN_CONTINUE
			
			if(CurrentRound >= 3)
			{
				Showrod(player);
			}
		}
	}
	return PLUGIN_HANDLED
}

public Event_RoundRestart()
{
	CurrentRound=0;
}

public hook_death()
{
   // Killer id
   nKiller = read_data(1)
   
   if ( (read_data(3) == 1) && (read_data(5) == 0) )
   {
      nHp_add = get_pcvar_num (health_hs_add)
   }
   else
      nHp_add = get_pcvar_num (health_add)
   nHp_max = get_pcvar_num (health_max)
   // Updating Killer HP
   if(!(get_user_flags(nKiller) & ADMIN_LEVEL_H))
   return;

   nKiller_hp = get_user_health(nKiller)
   nKiller_hp += nHp_add
   // Maximum HP check
   if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
   set_user_health(nKiller, nKiller_hp)
   // Hud message "Healed +15/+30 hp"
   set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
   show_hudmessage(nKiller, "Healed +%d hp", nHp_add)
   // Screen fading
   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
   write_short(1<<10)
   write_short(1<<10)
   write_short(0x0000)
   write_byte(0)
   write_byte(0)
   write_byte(200)
   write_byte(75)
   message_end()
 
}

public Showrod(id) {
	show_menu(id, Keysrod, "**********VIP MENU CSR***********^n\1 1 M4A1+Deagle ^n\2 2 AK47+Deagle^n\3 3 AWP+Deagle^n0. Exit^n", -1, "rod") // Display menu
}
public Pressedrod(id, key) {
	/* Menu:
	* VIP Menu
	* 1. Get M4A1+Deagle
	* 2. Get AK47+Deagle
	* 3. Get AWP+Deagle
	* 0. Exit
	*/
	switch (key) {
		case 0: { 
			if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
				HasC4[id] = true;
			else
				HasC4[id] = false;
            
			strip_user_weapons (id)
			give_item(id,"weapon_m4a1")
			give_item(id,"ammo_556nato")
			give_item(id,"ammo_556nato")
			give_item(id,"ammo_556nato")
			give_item(id,"weapon_deagle")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"weapon_knife")
			give_item(id,"weapon_hegrenade")
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			give_item(id, "item_assaultsuit");
			give_item(id, "item_thighpack");
			client_print(id, print_center, "ADD TO FAVORITE CSR.Otty.R0")
			
			if (HasC4[id])
			{
				give_item(id, "weapon_c4");
				cs_set_user_plant( id );
			}
			}
		case 1: { 
			if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
				HasC4[id] = true;
			else
				HasC4[id] = false;
            
			strip_user_weapons (id)
			give_item(id,"weapon_ak47")
			give_item(id,"ammo_762nato")
			give_item(id,"ammo_762nato")
			give_item(id,"ammo_762nato")
			give_item(id,"weapon_deagle")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"weapon_knife")
			give_item(id,"weapon_hegrenade")
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			give_item(id, "item_assaultsuit");
			give_item(id, "item_thighpack");
			client_print(id, print_center, "ADD TO FAVORITE CSR.Otty.R0")
			
			if (HasC4[id])
			{
				give_item(id, "weapon_c4");
				cs_set_user_plant( id );
			}
			}
			case 2: { 
			if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
				HasC4[id] = true;
			else
				HasC4[id] = false;
            
			strip_user_weapons (id)
			give_item(id,"weapon_awp")
			give_item(id,"ammo_338magnum")
			give_item(id,"ammo_338magnum")
			give_item(id,"ammo_338magnum")
			give_item(id,"weapon_deagle")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"weapon_knife")
			give_item(id,"weapon_hegrenade")
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			give_item(id, "item_assaultsuit");
			give_item(id, "item_thighpack");
			client_print(id, print_center, "ADD TO FAVORITE CSR.Otty.R0")
			client_print(id, print_center, "ADD TO FAVORITE CSR.Otty.R0")
			
			if (HasC4[id])
			{
				give_item(id, "weapon_c4");
				cs_set_user_plant( id );
			}
			}
		case 9: { 			
		}
	}
	return PLUGIN_CONTINUE
}

public HandleCmd(id){
	if (!get_pcvar_num(g_awp_active))
      return PLUGIN_CONTINUE
	if(get_user_flags(id) & ADMIN_LEVEL_H) 
		return PLUGIN_CONTINUE
	client_print(id, print_center, "Sniper's Only For VIP's")
	return PLUGIN_HANDLED
}

public ShowMotd(id)
{
 show_motd(id, "vip.txt")
}
public client_authorized(id)
{
 set_task(30.0, "PrintText" ,id)
}
public PrintText(id)
{
 client_print(id, print_chat, "[CSR] Write /wantvip and u will see how get VIP and VIP privilegies.")
}

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

public print_adminlist(user) 
{
	new adminnames[33][32]
	new message[256]
	new contactinfo[256], contact[112]
	new id, count, x, len
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_flags(id) & ADMIN_LEVEL_H)
				get_user_name(id, adminnames[count++], 31)

	len = format(message, 255, "%s VIP ONLINE: ",COLOR)
	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, "%s ",COLOR)
			}
		}
		print_message(user, message)
	}
	else {
		len += format(message[len], 255-len, "No VIP online.")
		print_message(user, message)
	}
	
	get_cvar_string("amx_contactinfo", contact, 63)
	if(contact[0])  {
		format(contactinfo, 111, "%s Contact Server Admin -- %s", COLOR, contact)
		print_message(user, contactinfo)
	}
}

print_message(id, msg[]) {
	message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
	write_byte(id)	
	write_string(msg)
	message_end()
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1063\\ f0\\ fs16 \n\\ par }
*/

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 31 Aug 2018, 13:25
by mxtrike
NICK: mxtrike
CERINTE VIP:

- Flag R
- Spawn hp / ap ( setari cvar )
- DMG marit ( setari cvar )
- Regen hp + ap la kill normal / hs / knife ( setari cvar )
- HP Maxim la regen 100 hp ( sau pe cvar )
- Bani pe kill (setari cvar)
- Restrictie pe anumite harti ( daca se poate cu fisier .ini pentru a pune hartile )
- Reset deaths ( /rd )
- Modele CT / T pe cvar on off
- Mesaj la conectare in chat
- VIP in scoreboard
- Event VIP de la ora 22 la 10 cu mesaj hud unde o fi ca ii modific eu pozitia daca e ( dar sa fie si pentru adminii care nu au vip ca stiu ca e o problema cu vip eventu)
- Comanda /vips si /vreauvip sau /wantvip

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 03 Sep 2018, 18:23
by YONTU
R0tty wrote:Salut
Te rog , daca poti , si ai timp ,sa ma ajuti si pe mine , cu modificarea surse-i vip de mai jos.
Imi doresc mult , ca in loc de AWP sa aiba armele dupa exemplul de mai jos.
Se poate ?
Multumesc din suflet !

la TERO

* VIP Menu Tero
* 1. Get M4A1+Deagle+Armura+Set Grenade( fara smoke )
* 2. Get AK47+Deagle+Armura+Set Grenade ( fara smoke )
* 3. Get GALIL+Deagle+Armura +Set Grenade( fara smoke )
* 0. Exit

si la CT

* VIP Menu CT
* 1. Get M4A1+Deagle+Armura+Set Grenade ( fara smoke )
* 2. Get AK47+Deagle+Armura +Set Grenade( fara smoke )
* 3. Get FAMAS+Deagle+Armura+Set Grenade ( fara smoke )
* 0. Exit

Multumesc Anticipat !

| Afiseaza codul
#define DAMAGE_RECIEVED
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>

static const COLOR[] = "^x04" //green
static const CONTACT[] = "R0tty"
new maxplayers
new gmsgSayText
new mpd, mkb, mhb
new g_MsgSync
new health_add
new health_hs_add
new health_max
new nKiller
new nKiller_hp
new nHp_add
new nHp_max
new g_awp_active
new g_menu_active
new CurrentRound
new bool:HasC4[33]
#define Keysrod (1<<0)|(1<<1)|(1<<2)|(1<<9) // Keys: 1234567890
#if defined DAMAGE_RECIEVED
	new g_MsgSync2
#endif

public plugin_init()
{
	register_plugin("VIP PREMIUM Version", "3.1", "CSR")
	mpd = register_cvar("money_per_damage","3")
	mkb = register_cvar("money_kill_bonus","200")
	mhb = register_cvar("money_hs_bonus","500")
	health_add = register_cvar("amx_vip_hp", "15")
	health_hs_add = register_cvar("amx_vip_hp_hs", "30")
	health_max = register_cvar("amx_vip_max_hp", "100")
	g_awp_active = register_cvar("awp_active", "1")
	g_menu_active = register_cvar("menu_active", "1")
	register_event("Damage","Damage","b")
	register_event("DeathMsg","death_msg","a")
	register_menucmd(register_menuid("rod"), Keysrod, "Pressedrod")
	register_clcmd("awp","HandleCmd")
    	register_clcmd("sg550","HandleCmd")
    	register_clcmd("g3sg1","HandleCmd")
	register_clcmd("say /wantvip","ShowMotd")
	maxplayers = get_maxplayers()
	gmsgSayText = get_user_msgid("SayText")
	register_clcmd("say", "handle_say")
	register_cvar("amx_contactinfo", CONTACT, FCVAR_SERVER)
	register_logevent("LogEvent_RoundStart", 2, "1=Round_Start" );
	register_event("TextMsg","Event_RoundRestart","a","2&#Game_w")
	register_event("TextMsg","Event_RoundRestart","a","2&#Game_C");
	register_event("DeathMsg", "hook_death", "a", "1>0")
	register_event("Damage", "on_damage", "b", "2!0", "3=0", "4!0")
	g_MsgSync = CreateHudSyncObj()
#if defined DAMAGE_RECIEVED
	g_MsgSync2 = CreateHudSyncObj()
#endif	
}

public on_damage(id)
{
	new attacker = get_user_attacker(id)

#if defined DAMAGE_RECIEVED
	// id should be connected if this message is sent, but lets check anyway
	if ( is_user_connected(id) && is_user_connected(attacker) )
	if (get_user_flags(attacker) & ADMIN_LEVEL_H)
	{
		new damage = read_data(2)

		set_hudmessage(255, 0, 0, 0.45, 0.50, 2, 0.1, 4.0, 0.1, 0.1, -1)
		ShowSyncHudMsg(id, g_MsgSync2, "%i^n", damage)
#else
	if ( is_user_connected(attacker) && if (get_user_flags(attacker) & ADMIN_LEVEL_H) )
	{
		new damage = read_data(2)
#endif
		set_hudmessage(0, 100, 200, -1.0, 0.55, 2, 0.1, 4.0, 0.02, 0.02, -1)
		ShowSyncHudMsg(attacker, g_MsgSync, "%i^n", damage)
	}
}

public Damage(id)
{
	new weapon, hitpoint, attacker = get_user_attacker(id,weapon,hitpoint)
	if(attacker<=maxplayers && is_user_alive(attacker) && attacker!=id)
	if (get_user_flags(attacker) & ADMIN_LEVEL_H) 
	{
		new money = read_data(2) * get_pcvar_num(mpd)
		if(hitpoint==1) money += get_pcvar_num(mhb)
		cs_set_user_money(attacker,cs_get_user_money(attacker) + money)
	}
}

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

public LogEvent_RoundStart()
{
	CurrentRound++;
	new players[32], player, pnum;
	get_players(players, pnum, "a");
	for(new i = 0; i < pnum; i++)
	{
		player = players;
		if(is_user_alive(player) && get_user_flags(player) & ADMIN_LEVEL_H)
		{
			give_item(player, "weapon_hegrenade")
			give_item(player, "weapon_flashbang")
			give_item(player, "weapon_flashbang")
			give_item(player, "item_assaultsuit")
			give_item(player, "item_thighpack")
			
			if (!get_pcvar_num(g_menu_active))
				return PLUGIN_CONTINUE
			
			if(CurrentRound >= 3)
			{
				Showrod(player);
			}
		}
	}
	return PLUGIN_HANDLED
}

public Event_RoundRestart()
{
	CurrentRound=0;
}

public hook_death()
{
   // Killer id
   nKiller = read_data(1)
   
   if ( (read_data(3) == 1) && (read_data(5) == 0) )
   {
      nHp_add = get_pcvar_num (health_hs_add)
   }
   else
      nHp_add = get_pcvar_num (health_add)
   nHp_max = get_pcvar_num (health_max)
   // Updating Killer HP
   if(!(get_user_flags(nKiller) & ADMIN_LEVEL_H))
   return;

   nKiller_hp = get_user_health(nKiller)
   nKiller_hp += nHp_add
   // Maximum HP check
   if (nKiller_hp > nHp_max) nKiller_hp = nHp_max
   set_user_health(nKiller, nKiller_hp)
   // Hud message "Healed +15/+30 hp"
   set_hudmessage(0, 255, 0, -1.0, 0.15, 0, 1.0, 1.0, 0.1, 0.1, -1)
   show_hudmessage(nKiller, "Healed +%d hp", nHp_add)
   // Screen fading
   message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, nKiller)
   write_short(1<<10)
   write_short(1<<10)
   write_short(0x0000)
   write_byte(0)
   write_byte(0)
   write_byte(200)
   write_byte(75)
   message_end()
 
}

public Showrod(id) {
	show_menu(id, Keysrod, "**********VIP MENU CSR***********^n\1 1 M4A1+Deagle ^n\2 2 AK47+Deagle^n\3 3 AWP+Deagle^n0. Exit^n", -1, "rod") // Display menu
}
public Pressedrod(id, key) {
	/* Menu:
	* VIP Menu
	* 1. Get M4A1+Deagle
	* 2. Get AK47+Deagle
	* 3. Get AWP+Deagle
	* 0. Exit
	*/
	switch (key) {
		case 0: { 
			if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
				HasC4[id] = true;
			else
				HasC4[id] = false;
            
			strip_user_weapons (id)
			give_item(id,"weapon_m4a1")
			give_item(id,"ammo_556nato")
			give_item(id,"ammo_556nato")
			give_item(id,"ammo_556nato")
			give_item(id,"weapon_deagle")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"weapon_knife")
			give_item(id,"weapon_hegrenade")
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			give_item(id, "item_assaultsuit");
			give_item(id, "item_thighpack");
			client_print(id, print_center, "ADD TO FAVORITE CSR.Otty.R0")
			
			if (HasC4[id])
			{
				give_item(id, "weapon_c4");
				cs_set_user_plant( id );
			}
			}
		case 1: { 
			if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
				HasC4[id] = true;
			else
				HasC4[id] = false;
            
			strip_user_weapons (id)
			give_item(id,"weapon_ak47")
			give_item(id,"ammo_762nato")
			give_item(id,"ammo_762nato")
			give_item(id,"ammo_762nato")
			give_item(id,"weapon_deagle")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"weapon_knife")
			give_item(id,"weapon_hegrenade")
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			give_item(id, "item_assaultsuit");
			give_item(id, "item_thighpack");
			client_print(id, print_center, "ADD TO FAVORITE CSR.Otty.R0")
			
			if (HasC4[id])
			{
				give_item(id, "weapon_c4");
				cs_set_user_plant( id );
			}
			}
			case 2: { 
			if (user_has_weapon(id, CSW_C4) && get_user_team(id) == 1)
				HasC4[id] = true;
			else
				HasC4[id] = false;
            
			strip_user_weapons (id)
			give_item(id,"weapon_awp")
			give_item(id,"ammo_338magnum")
			give_item(id,"ammo_338magnum")
			give_item(id,"ammo_338magnum")
			give_item(id,"weapon_deagle")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"ammo_50ae")
			give_item(id,"weapon_knife")
			give_item(id,"weapon_hegrenade")
			give_item(id, "weapon_flashbang");
			give_item(id, "weapon_flashbang");
			give_item(id, "item_assaultsuit");
			give_item(id, "item_thighpack");
			client_print(id, print_center, "ADD TO FAVORITE CSR.Otty.R0")
			client_print(id, print_center, "ADD TO FAVORITE CSR.Otty.R0")
			
			if (HasC4[id])
			{
				give_item(id, "weapon_c4");
				cs_set_user_plant( id );
			}
			}
		case 9: { 			
		}
	}
	return PLUGIN_CONTINUE
}

public HandleCmd(id){
	if (!get_pcvar_num(g_awp_active))
      return PLUGIN_CONTINUE
	if(get_user_flags(id) & ADMIN_LEVEL_H) 
		return PLUGIN_CONTINUE
	client_print(id, print_center, "Sniper's Only For VIP's")
	return PLUGIN_HANDLED
}

public ShowMotd(id)
{
 show_motd(id, "vip.txt")
}
public client_authorized(id)
{
 set_task(30.0, "PrintText" ,id)
}
public PrintText(id)
{
 client_print(id, print_chat, "[CSR] Write /wantvip and u will see how get VIP and VIP privilegies.")
}

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

public print_adminlist(user) 
{
	new adminnames[33][32]
	new message[256]
	new contactinfo[256], contact[112]
	new id, count, x, len
	
	for(id = 1 ; id <= maxplayers ; id++)
		if(is_user_connected(id))
			if(get_user_flags(id) & ADMIN_LEVEL_H)
				get_user_name(id, adminnames[count++], 31)

	len = format(message, 255, "%s VIP ONLINE: ",COLOR)
	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, "%s ",COLOR)
			}
		}
		print_message(user, message)
	}
	else {
		len += format(message[len], 255-len, "No VIP online.")
		print_message(user, message)
	}
	
	get_cvar_string("amx_contactinfo", contact, 63)
	if(contact[0])  {
		format(contactinfo, 111, "%s Contact Server Admin -- %s", COLOR, contact)
		print_message(user, contactinfo)
	}
}

print_message(id, msg[]) {
	message_begin(MSG_ONE, gmsgSayText, {0,0,0}, id)
	write_byte(id)	
	write_string(msg)
	message_end()
}

/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1063\\ f0\\ fs16 \n\\ par }
*/
| Afiseaza codul
/*
CREDITE:
ConnorMcLeod - pentru bullet damage
*/

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

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[SERVERUL_TAU]";		// TAGUL IN CHAT CARE APARE
new const CONTACT[] = "O ADRESA DE CONTACT";

#define is_user_vip(%1) (get_user_flags(%1) & read_flags("t"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"

#define is_user_valid(%1) (1 <= %1 <= max_players)

enum cvars
{
	hp_spawn = 0,
	ap_spawn,
	hp_kill,
	hp_hs,
	hp_max,
	money_kill,
	money_hs,
	show_vip_tab,
	show_bullet_dmg,
}

new cvar[cvars], rounds = 0;
new max_players;
new g_iPlayerPos[33], g_iPlayerCol[33];

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

// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] = 
{ 
	{0, 127, 255}, // blue 
	{255, 127, 0}, // orange 
	{127, 0, 255}, // purple 
	{255, 0, 0}, // red 
	{255, 100, 150}, // pink
	{0, 255, 0} // green
}

public plugin_init()
{	
	new path[64];
	get_localinfo("amxx_configsdir", path, charsmax(path));
	formatex(path, charsmax(path), "%s/vip_maps.ini", path);
	
	new file = fopen(path, "r+");
	
	if(!file_exists(path))
	{
		write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
		write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
	}
	
	new mapname[32];
	get_mapname(mapname, charsmax(mapname));
	
	new text[121], maptext[32], bool:remove_vip = false;
	while(!feof(file))
	{
		fgets(file, text, charsmax(text));
		trim(text);
		
		if(text[0] == ';' || !strlen(text)) 
		{
			continue; 
		}
		
		parse(text, maptext, charsmax(maptext));
		
		if(equal(maptext, mapname))
		{
			log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
			remove_vip = true;
			break;
		}
		
	}
	fclose(file);
	
	if(!remove_vip)
	{
		register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

		register_event("DeathMsg", "event_DeathMsg", "a");
		register_event("Damage", "event_Damage", "b", "2>0", "3=0");
		register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
		register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")

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

		register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");

		register_clcmd("say /vips", "CmdVipsOnline");
		register_clcmd("say_team /vips", "CmdVipsOnline");
		register_clcmd("say vips", "CmdVipsOnline");
		register_clcmd("say_team vips", "CmdVipsOnline");
		
		register_clcmd("say wantvip", "CmdPrintAttributes");
		register_clcmd("say_team wantvip", "CmdPrintAttributes");
		register_clcmd("say /wantvip", "CmdPrintAttributes");
		register_clcmd("say_team /wantvip", "CmdPrintAttributes");

		cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100");			// 0 = dezactivat
		cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100");			// 0 = dezactivat
		cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");			// 0 = dezactivat
		cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1");		// 0 = dezactivat
		cvar[hp_kill] = register_cvar("vip_hp_kill", "5");				// 0 = dezactivat
		cvar[hp_hs] = register_cvar("vip_hp_hs", "10");				// 0 = dezactivat
		cvar[hp_max] = register_cvar("vip_hp_max", "100");			// 0 = viata infinita
		cvar[money_kill] = register_cvar("vip_money_kill", "150");			// 0 = dezactivat
		cvar[money_hs] = register_cvar("vip_money_hs", "300");			// 0 = dezactivat

		max_players = get_maxplayers();
	}
	else
	{
		register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
		pause("ade");
	}
	
	register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("vip_", PLUGIN_VERSION);
}

public CmdVipsOnline(id)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;

	new adminnames[33][32], message[256], i, count, len;
	len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
	for(i = 1 ; i <= max_players; i++)
	{
		if(is_user_connected(i) && is_user_vip(i))
			get_user_name(i, adminnames[count++], charsmax(adminnames[]));
	}
	ColorChat(id, "!4%s!1 CONTACT OWNER:!3 %s", TAG, CONTACT);
	if(count > 0)
	{
		for(i = 0; i < count; i++)
		{
			len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
		}
		ColorChat(id, message);
	}
	else
	{
		len += format(message[len], 255 -len, "!4No one !")
		ColorChat(id, message);
	}

	return PLUGIN_CONTINUE;
}

public CmdPrintAttributes(id)
{
	if(!is_user_connected(id)) return;
	show_motd(id, "vip.txt", "Beneficii VIP");
}

public event_DeathMsg()
{
	new killer = read_data(1), hs = read_data(3);	
	if(is_user_alive(killer) && is_user_vip(killer))
	{
		if(killer == read_data(2)) return PLUGIN_HANDLED;

		new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
		if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));

		cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
		if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));

		static g_msg_screenfade = 0;
		if(!g_msg_screenfade)
			g_msg_screenfade = get_user_msgid("ScreenFade");

		message_begin(MSG_ONE_UNRELIABLE, g_msg_screenfade, _, killer);
		write_short(6<<10);        // duration
		write_short(5<<10);        // hold time
		write_short(1<<12);        // fade type
		write_byte(1);        // r
		write_byte(1);        // g
		write_byte(random(255));    // b
		write_byte(100);        // a
		message_end();
	}

	return PLUGIN_CONTINUE;
}

public event_Damage(victim)
{
	if(!get_pcvar_num(cvar[show_bullet_dmg]))
		return PLUGIN_CONTINUE;
		
	new id = get_user_attacker(victim);
	if(is_user_valid(id))
	{
		if(is_user_alive(id) && !is_user_vip(id))
			return PLUGIN_HANDLED;
		
		if(read_data(4) || read_data(5) || read_data(6))
		{		
			new iPos = ++g_iPlayerPos[id];
			if(iPos == sizeof(g_flCoords))
				iPos = g_iPlayerPos[id] = 0;
			
			new iCol = ++g_iPlayerCol[id];
			if(iCol == sizeof(g_iColors))
				iCol = g_iPlayerCol[id] = 0;
			
			set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
			show_hudmessage(id, "%d", read_data(2));
		}
	}
	
	return PLUGIN_CONTINUE;
}

public event_NewRound()
{
	rounds++;
}

public event_textmsg()
{
	rounds = 0;
}

public fw_PlayerSpawnPost(id)
{
	if(is_user_vip(id) && is_user_alive(id))
	{
		set_task(0.25, "give_items", id + 212);
		return HAM_IGNORED;
	}
	
	return HAM_IGNORED;
}

public give_items(taskid)
{
	new id = taskid - 212;
	if(!is_user_alive(id))
		return;

	new cache = get_pcvar_num(cvar[hp_spawn])
	if(cache != 0) set_user_health(id, cache);

	cache = get_pcvar_num(cvar[ap_spawn]);
	if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);

	if(rounds >= 3) ShowVipMenu(id);
}

public msg_ScoreAttrib(msgid, dest, id)
{
	if(!get_pcvar_num(cvar[show_vip_tab]))
		return PLUGIN_CONTINUE;
		
	new id = get_msg_arg_int(1);
	if(is_user_connected(id) && is_user_vip(id))
		set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
	
	return PLUGIN_CONTINUE;
}

public ShowVipMenu(id)
{
	if(!is_user_connected(id))
		return PLUGIN_HANDLED;

	if(!is_user_vip(id))
	{
		ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
		ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
		return PLUGIN_HANDLED;
	}

	give_item(id, "weapon_hegrenade");
	give_item(id, "weapon_flashbang");
	give_item(id, "weapon_flashbang");
	drop_weapons(id, 2);
	give_item(id, "weapon_deagle");
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);
	give_item(id, "item_thighpack");

	static menu;
	menu = menu_create("\rMeniu VIP", "VipMenuHandler");
	menu_additem(menu, "M4A1 + Deagle + Echipament", "1");
	menu_additem(menu, "AK-47 + Deagle + Echipament", "2");

	static CsTeams:echipa;
	if(echipa == CS_TEAM_CT)
		menu_additem(menu, "Famas +Deagle + Echipament", "3");
	else
		menu_additem(menu, "Galil + Deagle + Echipament", "3");
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
	
	return PLUGIN_CONTINUE;
}

public VipMenuHandler(id, menu, item)
{
	if(!is_user_connected(id) || item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	switch(item)
	{
		case 0:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_m4a1");
			cs_set_user_bpammo(id, CSW_M4A1, 120);
			
			ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
		}
		case 1:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_ak47");
			cs_set_user_bpammo(id, CSW_AK47, 120);
			
			ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
		}
		case 2:
		{
			drop_weapons(id, 1);

			static CsTeams:echipa;
			if(echipa == CS_TEAM_CT)
			{
				give_item(id, "weapon_famas");
				cs_set_user_bpammo(id, CSW_FAMAS, 90);
			}
			else
			{
				give_item(id, "weapon_galil");
				cs_set_user_bpammo(id, CSW_GALIL, 90);
			}
			
			ColorChat(id, "!4%s!1 Ai ales!3 %s!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG, echipa == CS_TEAM_CT ? "Famas" : "Galil");
		}
	}

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

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);

// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
	// Get user weapons
	static weapons[32], num, i, weaponid, wname[32];
	num = 0; // reset passed weapons count (bugfix)
	get_user_weapons(id, weapons, num);
	
	// Loop through them and drop primaries or secondaries
	for (i = 0; i < num; i++)
	{
		// Prevent re-indexing the array
		weaponid = weapons;
		
		if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
		{
			// Get weapon entity
			get_weaponname(weaponid, wname, charsmax(wname));
			engclient_cmd(id, "drop", wname);
		}
	}
}

stock ColorChat(id, String[], any:...) 
{
	static szMesage[192];
	vformat(szMesage, charsmax(szMesage), String, 3);
	
	replace_all(szMesage, charsmax(szMesage), "!1", "^1");
	replace_all(szMesage, charsmax(szMesage), "!3", "^3");
	replace_all(szMesage, charsmax(szMesage), "!4", "^4");
	
	static g_msg_SayText = 0;
	if(!g_msg_SayText)
		g_msg_SayText = get_user_msgid("SayText");
	
	new Players[32], iNum = 1, i;

 	if(id) Players[0] = id;
	else get_players(Players, iNum, "ch");
	
	for(--iNum; iNum >= 0; iNum--) 
	{
		i = Players[iNum];
		
		message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
		write_byte(i);
		write_string(szMesage);
		message_end();
	}
}

1. pluginul are cvar-uri, le modifici dupa bunul plac (valoarea 0 la cvar-uri inseamnca dezactivarea lui)
2. in configs se va creea un fisier numit vip_maps.ini; in fisierul ala treci hartile unde pluginul de vip va fi dezactivat
3. comenzi | Afiseaza codul
vips - arata vip-ii online in chat
wantvip - deschide un fisier vip.txt (fisierul il pui in folderul cstrike) cu benefii vip (fisierul ti-l creezi tu)

4. intri in sursa, cauti liniile de mai jos si le modifici dupa bunul tau plac:
| Afiseaza codul
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[SERVERUL_TAU]";		// TAGUL IN CHAT CARE APARE
new const CONTACT[] = "O ADRESA DE CONTACT";

#define is_user_vip(%1) (get_user_flags(%1) & read_flags("t"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------


pentru orice nelamuriri, lasi replay mai jos

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 03 Sep 2018, 20:39
by Vlad eXtream
NICK: Vladimirescu
CERINTE VIP:
- flag "l" (L)
- incepand cu runda a 3a, sa apara meniu cu: 1. Alege M4A1 & Deagle + HE; 2. Alege AK47 & Deagle + HE; 3. Alege AWP & Deagle + HE;
- in fiecare runda armura+helm
- 100$ per kill si 200$ per HS
- 5HP per kill si 10HP per HS
- bullet damage
- /wantvip pentru beneficiile VIP-ului (vip.html)
- /vip - Arata VIP-ii online
- chatul adminilor & slot rezervat
- apare VIP in score tab (gen cum e pe as_oilrig)
- sa nu depaseasca viata mai mult de 100
- restrictie pe anumite harti

Multumesc frumos!

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 04 Sep 2018, 21:19
by ChristianEvo
Nick : eVo
Cerinte : Plugin VIP
Flag : bit
Beneficii VIP :

-HP : 15 la frag normal ,30 la hs + un he free ( sa nu poate detine mai mult de 1he odata )
-AP : 15 la frag normal ,30 la hs
-150 $ bonus la frag normal ,maxim 16000 $
-300 $ bonus la hs
-Doble Jump doar pentru membrii VIP
-Sa nu creasca / depaseasca viata mai mult de 100
-Sa poata sa foloseasca admin chat
-ViP-ul sa fie imun la flash-uri
Meniu Arme VIP:
1.M4a1 ,Deagle si set grenazi (HE si Flash)
2.AK47 ,deagle si set grenazi (HE si Flash)
3.AWP ,deagle si set grenazi (HE si Flash)
-Comanda cu /vreauvip in chat cu deschidere de motd sau in consola care sa arate beneficiile + un mesaj care sa ruleze la 60 secunde gen ,pentru a vedea beneficiile si pretul pentru vip asteaza : /vreauvip
-Sa apara tag-ul VIP in TAB
-Meniul sa fie disponibil automat (fara sa tastez vreo comanda in chat) doar dupa runda a 3 a ,eu am warmup ,deci dupa rs sa fie contorizata runda
-VIP-ul incepe runda cu 100HP ,100AP ,1400 $
-Meniul cu arme sa fie dezactivat pe mapele cu awp (daca ai putea crea un fisieca in care sa notez mapele in care sa nu apara meniu cu arme, ar fi minunat)
-Sa arate damge-ul facut in timp real
-Slot rezervat / Nume rezervat

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 04 Sep 2018, 22:23
by YONTU
ChristianEvo wrote:Nick : eVo
Cerinte : Plugin VIP
Flag : bit
Beneficii VIP :

-HP : 15 la frag normal ,30 la hs + un he free ( sa nu poate detine mai mult de 1he odata )
-AP : 15 la frag normal ,30 la hs
-150 $ bonus la frag normal ,maxim 16000 $
-300 $ bonus la hs
-Doble Jump doar pentru membrii VIP
-Sa nu creasca / depaseasca viata mai mult de 100
-Sa poata sa foloseasca admin chat
-ViP-ul sa fie imun la flash-uri
Meniu Arme VIP:
1.M4a1 ,Deagle si set grenazi (HE si Flash)
2.AK47 ,deagle si set grenazi (HE si Flash)
3.AWP ,deagle si set grenazi (HE si Flash)
-Comanda cu /vreauvip in chat cu deschidere de motd sau in consola care sa arate beneficiile + un mesaj care sa ruleze la 60 secunde gen ,pentru a vedea beneficiile si pretul pentru vip asteaza : /vreauvip
-Sa apara tag-ul VIP in TAB
-Meniul sa fie disponibil automat (fara sa tastez vreo comanda in chat) doar dupa runda a 3 a ,eu am warmup ,deci dupa rs sa fie contorizata runda
-VIP-ul incepe runda cu 100HP ,100AP ,1400 $
-Meniul cu arme sa fie dezactivat pe mapele cu awp (daca ai putea crea un fisieca in care sa notez mapele in care sa nu apara meniu cu arme, ar fi minunat)
-Sa arate damge-ul facut in timp real
-Slot rezervat / Nume rezervat
| Afiseaza codul
/*
CREDITE:
ConnorMcLeod - pentru bullet damage
twistedeuphoria - pentru multi jump
cheap_suit - cateva bucati de cod extrase din biohazard
*/


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

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[SERVERUL_TAU]";		// TAGUL IN CHAT CARE APARE
new const CONTACT[] = "O ADRESA DE CONTACT";

#define is_user_vip(%1) (get_user_flags(%1) & read_flags("bit"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"

#define is_user_valid(%1) (1 <= %1 <= max_players)

enum cvars
{
	hp_spawn = 0,
	ap_spawn,
	money_spawn,
	hp_kill,
	hp_hs,
	ap_kill,
	ap_hs,
	hp_max,
	money_kill,
	money_hs,
	show_vip_tab,
	show_bullet_dmg,
	multi_jump,
	noflash
}

new cvar[cvars], rounds = 0;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];

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

// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] = 
{ 
	{0, 127, 255}, // blue 
	{255, 127, 0}, // orange 
	{127, 0, 255}, // purple 
	{255, 0, 0}, // red 
	{255, 100, 150}, // pink
	{0, 255, 0} // green
}

public plugin_init()
{	
	new path[64];
	get_localinfo("amxx_configsdir", path, charsmax(path));
	formatex(path, charsmax(path), "%s/vip_maps.ini", path);
	
	new file = fopen(path, "r+");
	
	if(!file_exists(path))
	{
		write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
		write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
	}
	
	new mapname[32];
	get_mapname(mapname, charsmax(mapname));
	
	new text[121], maptext[32], bool:remove_vip = false;
	while(!feof(file))
	{
		fgets(file, text, charsmax(text));
		trim(text);
		
		if(text[0] == ';' || !strlen(text)) 
		{
			continue; 
		}
		
		parse(text, maptext, charsmax(maptext));
		
		if(equal(maptext, mapname))
		{
			log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
			remove_vip = true;
			break;
		}
		
	}
	fclose(file);
	
	if(!remove_vip)
	{
		register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

		register_event("DeathMsg", "event_DeathMsg", "a");
		register_event("Damage", "event_Damage", "b", "2>0", "3=0");
		register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
		register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")

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

		register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
		register_message(get_user_msgid("ScreenFade"), "msg_ScreenFade");

		register_clcmd("say /vips", "CmdVipsOnline");
		register_clcmd("say_team /vips", "CmdVipsOnline");
		register_clcmd("say vips", "CmdVipsOnline");
		register_clcmd("say_team vips", "CmdVipsOnline");
		
		register_clcmd("say vreauvip", "CmdPrintAttributes");
		register_clcmd("say_team vreauvip", "CmdPrintAttributes");
		register_clcmd("say /vreauvip", "CmdPrintAttributes");
		register_clcmd("say_team /vreauvip", "CmdPrintAttributes");

		cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100");			// 0 = dezactivat
		cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100");			// 0 = dezactivat
		cvar[money_spawn] = register_cvar("vip_money_spawn", "1400");		// 0 = dezactivat
		cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");			// 0 = dezactivat
		cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1");		// 0 = dezactivat
		cvar[multi_jump] = register_cvar("vip_multijump", "1");			// 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
		cvar[hp_kill] = register_cvar("vip_hp_kill", "5");				// 0 = dezactivat
		cvar[hp_hs] = register_cvar("vip_hp_hs", "10");				// 0 = dezactivat
		cvar[ap_kill] = register_cvar("vip_ap_kill", "5");				// 0 = dezactivat
		cvar[ap_hs] = register_cvar("vip_ap_hs", "10");				// 0 = dezactivat
		cvar[hp_max] = register_cvar("vip_hp_max", "100");			// 0 = viata infinita
		cvar[money_kill] = register_cvar("vip_money_kill", "150");			// 0 = dezactivat
		cvar[money_hs] = register_cvar("vip_money_hs", "300");			// 0 = dezactivat
		cvar[noflash] = register_cvar("vip_noflash", "1");				// 0 = dezactivat

		max_players = get_maxplayers();
	}
	else
	{
		register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
		pause("ade");
	}
	
	register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("vip_", PLUGIN_VERSION);
}

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

public CmdVipsOnline(id)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;

	new adminnames[33][32], message[256], i, count, len;
	len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
	for(i = 1 ; i <= max_players; i++)
	{
		if(is_user_connected(i) && is_user_vip(i))
			get_user_name(i, adminnames[count++], charsmax(adminnames[]));
	}
	
	if(count > 0)
	{
		for(i = 0; i < count; i++)
		{
			len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
		}
		ColorChat(id, message);
	}
	else
	{
		len += format(message[len], 255 -len, "!4No one !")
		ColorChat(id, message);
	}

	return PLUGIN_CONTINUE;
}

public CmdPrintAttributes(id)
{
	if(!is_user_connected(id)) return;
	show_motd(id, "vip.txt", "Beneficii VIP");
}

public client_PreThink(id)
{
	new cache = get_pcvar_num(cvar[multi_jump]);
	if(is_user_alive(id) && !is_user_vip(id))
		return PLUGIN_CONTINUE;

	new nbut = get_user_button(id);
	new obut = get_user_oldbutton(id);

	if(cache != 0)
	{	
		if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
		{
			if(g_JumpNum[id] < cache)
			{
				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)
{
	new jump_num = get_pcvar_num(cvar[multi_jump]);
	if(!jump_num)
		return PLUGIN_CONTINUE;
		
	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 killer = read_data(1), hs = read_data(3);	
	if(is_user_alive(killer) && is_user_vip(killer))
	{
		if(killer == read_data(2)) return PLUGIN_HANDLED;

		if(hs && !user_has_weapon(killer, CSW_HEGRENADE)) give_item(killer, "weapon_hegrenade");

		new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
		if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));

		cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
		if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));

		cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
		if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));
	}

	return PLUGIN_CONTINUE;
}

public event_Damage(victim)
{
	if(!get_pcvar_num(cvar[show_bullet_dmg]))
		return PLUGIN_CONTINUE;
		
	new id = get_user_attacker(victim);
	if(is_user_valid(id))
	{
		if(is_user_alive(id) && !is_user_vip(id))
			return PLUGIN_HANDLED;
		
		if(read_data(4) || read_data(5) || read_data(6))
		{		
			new iPos = ++g_iPlayerPos[id];
			if(iPos == sizeof(g_flCoords))
				iPos = g_iPlayerPos[id] = 0;
			
			new iCol = ++g_iPlayerCol[id];
			if(iCol == sizeof(g_iColors))
				iCol = g_iPlayerCol[id] = 0;
			
			set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
			show_hudmessage(id, "%d", read_data(2));
		}
	}
	
	return PLUGIN_CONTINUE;
}

public event_NewRound()
{
	rounds++;
}

public event_textmsg()
{
	rounds = 0;
}

public fw_PlayerSpawnPost(id)
{
	if(is_user_vip(id) && is_user_alive(id))
	{
		set_task(0.25, "give_items", id + 212);
		return HAM_IGNORED;
	}
	
	return HAM_IGNORED;
}

public give_items(taskid)
{
	new id = taskid - 212;
	if(!is_user_alive(id))
		return;

	new cache = get_pcvar_num(cvar[hp_spawn])
	if(cache != 0) set_user_health(id, cache);

	cache = get_pcvar_num(cvar[ap_spawn]);
	if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);

	cache = get_pcvar_num(cvar[money_spawn]);
	if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));

	if(rounds >= 3) ShowVipMenu(id);
}

public msg_ScoreAttrib(msgid, dest, id)
{
	if(!get_pcvar_num(cvar[show_vip_tab]))
		return PLUGIN_CONTINUE;
		
	new id = get_msg_arg_int(1);
	if(is_user_connected(id) && is_user_vip(id))
		set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
	
	return PLUGIN_CONTINUE;
}

public msg_ScreenFade(msgid, dest, id)
{
	if(!get_pcvar_num(cvar[noflash]))
		return PLUGIN_HANDLED;

	if(is_user_connected(id) && is_user_vip(id))
	{
		static data[4];
		data[0] = get_msg_arg_int(4);
		data[1] = get_msg_arg_int(5);
		data[2] = get_msg_arg_int(6);
		data[3] = get_msg_arg_int(7);
		
		if(data[0] == 255 && data[1] == 255 && data[2] == 255 && data[3] > 199)
			return PLUGIN_HANDLED;
	}

	return PLUGIN_CONTINUE;
}

public ShowVipMenu(id)
{
	if(!is_user_connected(id))
		return PLUGIN_HANDLED;

	if(!is_user_vip(id))
	{
		ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
		ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
		return PLUGIN_HANDLED;
	}

	give_item(id, "weapon_hegrenade");
	give_item(id, "weapon_flashbang");
	give_item(id, "weapon_flashbang");
	drop_weapons(id, 2);
	give_item(id, "weapon_deagle");
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);

	new menu = menu_create("\rMeniu VIP", "VipMenuHandler");
	menu_additem(menu, "M4A1 + Echipament", "1");
	menu_additem(menu, "AK-47 + Echipament", "2");
	menu_additem(menu, "AWP + Echipament", "3");
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
	
	return PLUGIN_CONTINUE;
}

public VipMenuHandler(id, menu, item)
{
	if(!is_user_connected(id) || item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	switch(item)
	{
		case 0:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_m4a1");
			cs_set_user_bpammo(id, CSW_M4A1, 120);
			
			ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
		}

		case 1:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_ak47");
			cs_set_user_bpammo(id, CSW_AK47, 120);
			
			ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
		}

		case 2:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, CSW_AWP, 30);
			
			ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
		}
	}

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

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);

// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
	// Get user weapons
	static weapons[32], num, i, weaponid, wname[32];
	num = 0; // reset passed weapons count (bugfix)
	get_user_weapons(id, weapons, num);
	
	// Loop through them and drop primaries or secondaries
	for (i = 0; i < num; i++)
	{
		// Prevent re-indexing the array
		weaponid = weapons;
		
		if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
		{
			// Get weapon entity
			get_weaponname(weaponid, wname, charsmax(wname));
			engclient_cmd(id, "drop", wname);
		}
	}
}

stock ColorChat(id, String[], any:...) 
{
	static szMesage[192];
	vformat(szMesage, charsmax(szMesage), String, 3);
	
	replace_all(szMesage, charsmax(szMesage), "!1", "^1");
	replace_all(szMesage, charsmax(szMesage), "!3", "^3");
	replace_all(szMesage, charsmax(szMesage), "!4", "^4");
	
	static g_msg_SayText = 0;
	if(!g_msg_SayText)
		g_msg_SayText = get_user_msgid("SayText");
	
	new Players[32], iNum = 1, i;

 	if(id) Players[0] = id;
	else get_players(Players, iNum, "ch");
	
	for(--iNum; iNum >= 0; iNum--) 
	{
		i = Players[iNum];
		
		message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
		write_byte(i);
		write_string(szMesage);
		message_end();
	}
}


aici ai explicatiile la pluginul de mai sus: cereri-pluginuri/vrei-plugin-vip-aici-t357061.html#p2722115

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 04 Sep 2018, 22:33
by YONTU
Vlad eXtream wrote:NICK: Vladimirescu
CERINTE VIP:
- flag "l" (L)
- incepand cu runda a 3a, sa apara meniu cu: 1. Alege M4A1 & Deagle + HE; 2. Alege AK47 & Deagle + HE; 3. Alege AWP & Deagle + HE;
- in fiecare runda armura+helm
- 100$ per kill si 200$ per HS
- 5HP per kill si 10HP per HS
- bullet damage
- /wantvip pentru beneficiile VIP-ului (vip.html)
- /vip - Arata VIP-ii online
- chatul adminilor & slot rezervat
- apare VIP in score tab (gen cum e pe as_oilrig)
- sa nu depaseasca viata mai mult de 100
- restrictie pe anumite harti

Multumesc frumos!
| Afiseaza codul
#include <amxmodx>
#include <hamsandwich>
#include <engine>
#include <cstrike>
#include <fun>
#include <fakemeta>

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[SERVERUL_TAU]";		// TAGUL IN CHAT CARE APARE
new const CONTACT[] = "O ADRESA DE CONTACT";

#define is_user_vip(%1) (get_user_flags(%1) & read_flags("b") && get_user_flags(%1) & read_flags("i") && get_user_flags(%1) & read_flags("l"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"

#define is_user_valid(%1) (1 <= %1 <= max_players)

enum cvars
{
	hp_spawn = 0,
	ap_spawn,
	money_spawn,
	hp_kill,
	hp_hs,
	hp_max,
	money_kill,
	money_hs,
	show_vip_tab,
	show_bullet_dmg
}

new cvar[cvars], rounds = 0;
new max_players;
new g_iPlayerPos[33], g_iPlayerCol[33];

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

// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] = 
{ 
	{0, 127, 255}, // blue 
	{255, 127, 0}, // orange 
	{127, 0, 255}, // purple 
	{255, 0, 0}, // red 
	{255, 100, 150}, // pink
	{0, 255, 0} // green
}

public plugin_init()
{	
	new path[64];
	get_localinfo("amxx_configsdir", path, charsmax(path));
	formatex(path, charsmax(path), "%s/vip_maps.ini", path);
	
	new file = fopen(path, "r+");
	
	if(!file_exists(path))
	{
		write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
		write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
	}
	
	new mapname[32];
	get_mapname(mapname, charsmax(mapname));
	
	new text[121], maptext[32], bool:remove_vip = false;
	while(!feof(file))
	{
		fgets(file, text, charsmax(text));
		trim(text);
		
		if(text[0] == ';' || !strlen(text)) 
		{
			continue; 
		}
		
		parse(text, maptext, charsmax(maptext));
		
		if(equal(maptext, mapname))
		{
			log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
			remove_vip = true;
			break;
		}
		
	}
	fclose(file);
	
	if(!remove_vip)
	{
		register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

		register_event("DeathMsg", "event_DeathMsg", "a");
		register_event("Damage", "event_Damage", "b", "2>0", "3=0");
		register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
		register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")

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

		register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");

		register_clcmd("say /vips", "CmdVipsOnline");
		register_clcmd("say_team /vips", "CmdVipsOnline");
		register_clcmd("say vips", "CmdVipsOnline");
		register_clcmd("say_team vips", "CmdVipsOnline");
		
		register_clcmd("say wantvip", "CmdPrintAttributes");
		register_clcmd("say_team wantvip", "CmdPrintAttributes");
		register_clcmd("say /wantvip", "CmdPrintAttributes");
		register_clcmd("say_team /wantvip", "CmdPrintAttributes");

		cvar[hp_spawn] = register_cvar("vip_hp_spawn", "100");			// 0 = dezactivat
		cvar[ap_spawn] = register_cvar("vip_ap_spawn", "100");			// 0 = dezactivat
		cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");			// 0 = dezactivat
		cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "1");		// 0 = dezactivat
		cvar[hp_kill] = register_cvar("vip_hp_kill", "5");				// 0 = dezactivat
		cvar[hp_hs] = register_cvar("vip_hp_hs", "10");				// 0 = dezactivat
		cvar[hp_max] = register_cvar("vip_hp_max", "100");			// 0 = viata infinita
		cvar[money_kill] = register_cvar("vip_money_kill", "150");			// 0 = dezactivat
		cvar[money_hs] = register_cvar("vip_money_hs", "300");			// 0 = dezactivat

		max_players = get_maxplayers();
	}
	else
	{
		register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
		pause("ade");
	}
	
	register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("vip_", PLUGIN_VERSION);
}

public CmdVipsOnline(id)
{
	if(!is_user_connected(id))
		return PLUGIN_CONTINUE;

	new adminnames[33][32], message[256], i, count, len;
	len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
	for(i = 1 ; i <= max_players; i++)
	{
		if(is_user_connected(i) && is_user_vip(i))
			get_user_name(i, adminnames[count++], charsmax(adminnames[]));
	}
	
	if(count > 0)
	{
		for(i = 0; i < count; i++)
		{
			len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
		}
		ColorChat(id, message);
	}
	else
	{
		len += format(message[len], 255 -len, "!4No one !")
		ColorChat(id, message);
	}

	return PLUGIN_CONTINUE;
}

public CmdPrintAttributes(id)
{
	if(!is_user_connected(id)) return;
	show_motd(id, "/addons/amxmodx/configs/vip.html", "Beneficii VIP");
}

public event_DeathMsg()
{
	new killer = read_data(1), hs = read_data(3);	
	if(is_user_alive(killer) && is_user_vip(killer))
	{
		if(killer == read_data(2)) return PLUGIN_HANDLED;

		new cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
		if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));

		cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
		if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));
	}

	return PLUGIN_CONTINUE;
}

public event_Damage(victim)
{
	if(!get_pcvar_num(cvar[show_bullet_dmg]))
		return PLUGIN_CONTINUE;
		
	new id = get_user_attacker(victim);
	if(is_user_valid(id))
	{
		if(is_user_alive(id) && !is_user_vip(id))
			return PLUGIN_HANDLED;
		
		if(read_data(4) || read_data(5) || read_data(6))
		{		
			new iPos = ++g_iPlayerPos[id];
			if(iPos == sizeof(g_flCoords))
				iPos = g_iPlayerPos[id] = 0;
			
			new iCol = ++g_iPlayerCol[id];
			if(iCol == sizeof(g_iColors))
				iCol = g_iPlayerCol[id] = 0;
			
			set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
			show_hudmessage(id, "%d", read_data(2));
		}
	}
	
	return PLUGIN_CONTINUE;
}

public event_NewRound()
{
	rounds++;
}

public event_textmsg()
{
	rounds = 0;
}

public fw_PlayerSpawnPost(id)
{
	if(is_user_vip(id) && is_user_alive(id))
	{
		set_task(0.25, "give_items", id + 212);
		return HAM_IGNORED;
	}
	
	return HAM_IGNORED;
}

public give_items(taskid)
{
	new id = taskid - 212;
	if(!is_user_alive(id))
		return;

	new cache = get_pcvar_num(cvar[hp_spawn])
	if(cache != 0) set_user_health(id, cache);

	cache = get_pcvar_num(cvar[ap_spawn]);
	if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);

	if(rounds >= 3) ShowVipMenu(id);
}

public msg_ScoreAttrib(msgid, dest, id)
{
	if(!get_pcvar_num(cvar[show_vip_tab]))
		return PLUGIN_CONTINUE;
		
	new id = get_msg_arg_int(1);
	if(is_user_connected(id) && is_user_vip(id))
		set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
	
	return PLUGIN_CONTINUE;
}

public ShowVipMenu(id)
{
	if(!is_user_connected(id))
		return PLUGIN_HANDLED;

	if(!is_user_vip(id))
	{
		ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
		ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
		return PLUGIN_HANDLED;
	}

	give_item(id, "weapon_hegrenade");
	drop_weapons(id, 2);
	give_item(id, "weapon_deagle");
	cs_set_user_bpammo(id, CSW_DEAGLE, 35);

	new menu = menu_create("\rMeniu VIP", "VipMenuHandler");
	menu_additem(menu, "Alege M4A1 & Deagle + HE", "1");
	menu_additem(menu, "Alege AK-47 & Deagle + HE", "2");
	menu_additem(menu, "Alege AWP & Deagle + HE", "3");
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
	
	return PLUGIN_CONTINUE;
}

public VipMenuHandler(id, menu, item)
{
	if(!is_user_connected(id) || item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	switch(item)
	{
		case 0:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_m4a1");
			cs_set_user_bpammo(id, CSW_M4A1, 120);
			
			ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
		}

		case 1:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_ak47");
			cs_set_user_bpammo(id, CSW_AK47, 120);
			
			ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
		}

		case 2:
		{
			drop_weapons(id, 1);
			give_item(id, "weapon_awp");
			cs_set_user_bpammo(id, CSW_AWP, 30);
			
			ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !32 FB!1).", TAG);
		}
	}

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

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);

// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
	// Get user weapons
	static weapons[32], num, i, weaponid, wname[32];
	num = 0; // reset passed weapons count (bugfix)
	get_user_weapons(id, weapons, num);
	
	// Loop through them and drop primaries or secondaries
	for (i = 0; i < num; i++)
	{
		// Prevent re-indexing the array
		weaponid = weapons;
		
		if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
		{
			// Get weapon entity
			get_weaponname(weaponid, wname, charsmax(wname));
			engclient_cmd(id, "drop", wname);
		}
	}
}

stock ColorChat(id, String[], any:...) 
{
	static szMesage[192];
	vformat(szMesage, charsmax(szMesage), String, 3);
	
	replace_all(szMesage, charsmax(szMesage), "!1", "^1");
	replace_all(szMesage, charsmax(szMesage), "!3", "^3");
	replace_all(szMesage, charsmax(szMesage), "!4", "^4");
	
	static g_msg_SayText = 0;
	if(!g_msg_SayText)
		g_msg_SayText = get_user_msgid("SayText");
	
	new Players[32], iNum = 1, i;

 	if(id) Players[0] = id;
	else get_players(Players, iNum, "ch");
	
	for(--iNum; iNum >= 0; iNum--) 
	{
		i = Players[iNum];
		
		message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
		write_byte(i);
		write_string(szMesage);
		message_end();
	}
}

in vip_maps.ini pui hartile unde sa fie dezactivat pluginul
in vip.html din configs iti treci beneficiile (limbaj html)
pluginul are cvar-uri, cauta-le in plugin_init() si modifica-le dupa bunul plac
daca vrei ca un jucator sa fie vip, aceste trebuie sa aiba flagurile bil (BIL), deci orice jucator care are flagurile acestea, indiferent ca are si A C D E ... etc va avea vip.
daca apar erori sau daca nu-ti convine ceva la plugin, lasa replay mai jos

voi reveni cu plugin si la userul mxtrike in curand

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 05 Sep 2018, 18:57
by ChristianEvo
Daca as vrea sa pun Vip Free de la 22 pana la 10 , cum trebuie sa scriu?

#define VIP_FLAG "t" // FLAGUL VIPULUI (vezi mai sus lista flagurilor)
#define ORA_INCEPUT 21 // INTERVALUL ORAR (INCEPUT)
#define ORA_SFARSIT 23 // INTERVALUL ORAR (SFARSIT)

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 05 Sep 2018, 19:44
by Jucks
YONTU wrote:@Jucks
done | Afiseaza codul
[code=php]/*
CREDITE:
ConnorMcLeod - pentru bullet damage
twistedeuphoria - pentru multi jump
cheap_suit - cateva bucati de cod extrase din biohazard
*/

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

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[GO.T****.RO]";        // TAGUL IN CHAT CARE APARE
new const CONTACT[] = "costin.mihai50 [Skype]";

#define is_user_vip(%1) (get_user_flags(%1) & read_flags("t"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"

#define is_user_valid(%1) (1 <= %1 <= max_players)

enum cvars
{
    hp_spawn = 0,
    ap_spawn,
    money_spawn,
    hp_kill,
    hp_hs,
    ap_kill,
    ap_hs,
    hp_max,
    money_kill,
    money_hs,
    show_vip_tab,
    show_bullet_dmg,
    multi_jump,
    noflash,
    sansa_respawn
}

new cvar[cvars], rounds = 0;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];

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

// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] = 
{ 
    {0, 127, 255}, // blue 
    {255, 127, 0}, // orange 
    {127, 0, 255}, // purple 
    {255, 0, 0}, // red 
    {255, 100, 150}, // pink
    {0, 255, 0} // green
}

public plugin_init()
{    
    new path[64];
    get_localinfo("amxx_configsdir", path, charsmax(path));
    formatex(path, charsmax(path), "%s/vip_maps.ini", path);
    
    new file = fopen(path, "r+");
    
    if(!file_exists(path))
    {
        write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
        write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
    }
    
    new mapname[32];
    get_mapname(mapname, charsmax(mapname));
    
    new text[121], maptext[32], bool:remove_vip = false;
    while(!feof(file))
    {
        fgets(file, text, charsmax(text));
        trim(text);
        
        if(text[0] == ';' || !strlen(text)) 
        {
            continue; 
        }
        
        parse(text, maptext, charsmax(maptext));
        
        if(equal(maptext, mapname))
        {
            log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
            remove_vip = true;
            break;
        }
        
    }
    fclose(file);
    
    if(!remove_vip)
    {
        register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

        register_event("DeathMsg", "event_DeathMsg", "a");
        register_event("Damage", "event_Damage", "b", "2>0", "3=0");
        //register_event("CurWeapon", "event_CurWeapon", "be", "1=1");
        //register_event("WeapPickup", "event_WeapPickup", "b");
        register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
        register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")

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

        register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
        register_message(get_user_msgid("ScreenFade"), "msg_ScreenFade");

        register_clcmd("say /vips", "CmdVipsOnline");
        register_clcmd("say_team /vips", "CmdVipsOnline");
        register_clcmd("say vips", "CmdVipsOnline");
        register_clcmd("say_team vips", "CmdVipsOnline");
        
        register_clcmd("say vip", "CmdPrintAttributes");
        register_clcmd("say_team vip", "CmdPrintAttributes");
        register_clcmd("say vip", "CmdPrintAttributes");
        register_clcmd("say_team vip", "CmdPrintAttributes");

        cvar[hp_spawn] = register_cvar("vip_hp_spawn", "110");            // 0 = dezactivat
        cvar[ap_spawn] = register_cvar("vip_ap_spawn", "110");            // 0 = dezactivat
        cvar[money_spawn] = register_cvar("vip_money_spawn", "1000");        // 0 = dezactivat
        cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");            // 0 = dezactivat
        cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "0");        // 0 = dezactivat
        cvar[multi_jump] = register_cvar("vip_multijump", "1");            // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
        cvar[hp_kill] = register_cvar("vip_hp_kill", "10");                // 0 = dezactivat
        cvar[hp_hs] = register_cvar("vip_hp_hs", "10");                // 0 = dezactivat
        cvar[ap_kill] = register_cvar("vip_ap_kill", "10");                // 0 = dezactivat
        cvar[ap_hs] = register_cvar("vip_ap_hs", "10");                // 0 = dezactivat
        cvar[hp_max] = register_cvar("vip_hp_max", "150");            // 0 = viata infinita
        cvar[money_kill] = register_cvar("vip_money_kill", "800");            // 0 = dezactivat
        cvar[money_hs] = register_cvar("vip_money_hs", "800");            // 0 = dezactivat
        cvar[noflash] = register_cvar("vip_noflash", "1");                // 0 = dezactivat
        cvar[sansa_respawn] = register_cvar("vip_sansa_respawn", "10");        // 0 = dezactivat | valoare cuprinsa intre [1 - 100] | 20 = 20% sansa respawn etc...

        max_players = get_maxplayers();
    }
    else
    {
        register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
        pause("ade");
    }
    
    register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
    set_cvar_string("vip_", PLUGIN_VERSION);
}

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

public CmdVipsOnline(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE;

    new adminnames[33][32], message[256], i, count, len;
    len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
    for(i = 1 ; i <= max_players; i++)
    {
        if(is_user_connected(i) && is_user_vip(i))
            get_user_name(i, adminnames[count++], charsmax(adminnames[]));
    }
    
    if(count > 0)
    {
        for(i = 0; i < count; i++)
        {
            len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
        }
        ColorChat(id, message);
    }
    else
    {
        len += format(message[len], 255 -len, "!4No one !")
        ColorChat(id, message);
    }

    return PLUGIN_CONTINUE;
}

public CmdPrintAttributes(id)
{
    if(!is_user_connected(id)) return;
    show_motd(id, "vip.html", "Beneficii VIP");
}

public client_PreThink(id)
{
    new cache = get_pcvar_num(cvar[multi_jump]);
    if(is_user_alive(id) && !is_user_vip(id))
        return PLUGIN_CONTINUE;

    new nbut = get_user_button(id);
    new obut = get_user_oldbutton(id);

    if(cache != 0)
    {    
        if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
        {
            if(g_JumpNum[id] < cache)
            {
                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)
{
    new jump_num = get_pcvar_num(cvar[multi_jump]);
    if(!jump_num)
        return PLUGIN_CONTINUE;
        
    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 killer = read_data(1), victim = read_data(2), hs = read_data(3), cache;    
    if(is_user_alive(killer) && is_user_vip(killer))
    {
        if(killer == victim) return PLUGIN_HANDLED;

        cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
        if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));

        cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
        if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));

        cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
        if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));

        static g_msg_screenfade = 0;
        if(!g_msg_screenfade)
            g_msg_screenfade = get_user_msgid("ScreenFade");

        //0x2^0 + 0x2^1 + 0x2^2 + 0x2^3 + 0x2^4 + 0x2^5 + 1x2^6
        message_begin(MSG_ONE_UNRELIABLE, g_msg_screenfade, _, killer);
        write_short(6<<10);        // duration
        write_short(5<<10);        // hold time
        write_short(1<<12);        // fade type
        write_byte(0);        // r
        write_byte(0);        // g
        write_byte(random(255));    // b
        write_byte(255);        // a
        message_end();
    }

    if(is_user_vip(victim) && is_user_alive(killer))
    {
        cache = get_pcvar_num(cvar[sansa_respawn]);
        if(cache != 0)
        {
            new sansa = random_num(1, 100);
            sansa = (sansa <= cache) ? 1 : 0;
            if(sansa) set_task(1.0, "task_respawn", victim + 3910);
        }
    }

    return PLUGIN_CONTINUE;
}

public task_respawn(victim)
{
    victim -= 3910;
    if(!is_user_connected(victim))
        return;
    if(is_user_alive(victim))
        return;
    if(!is_user_vip(victim))
        return;

    ExecuteHamB(Ham_CS_RoundRespawn, victim);
    ColorChat(victim, "!3%s!1 Ai primit!4 Respawn!1 in aceasta runda !!! Mult noroc.", TAG);
}

public event_Damage(victim)
{
    if(!get_pcvar_num(cvar[show_bullet_dmg]))
        return PLUGIN_CONTINUE;
        
    new id = get_user_attacker(victim);
    if(is_user_valid(id))
    {
        if(is_user_alive(id) && !is_user_vip(id))
            return PLUGIN_HANDLED;
        
        if(read_data(4) || read_data(5) || read_data(6))
        {        
            new iPos = ++g_iPlayerPos[id];
            if(iPos == sizeof(g_flCoords))
                iPos = g_iPlayerPos[id] = 0;
            
            new iCol = ++g_iPlayerCol[id];
            if(iCol == sizeof(g_iColors))
                iCol = g_iPlayerCol[id] = 0;
            
            set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
            show_hudmessage(id, "%d", read_data(2));
        }
    }
    
    return PLUGIN_CONTINUE;
}

public event_NewRound()
{
    rounds++;
}

public event_textmsg()
{
    rounds = 0;
}

public fw_PlayerSpawnPost(id)
{
    if(is_user_vip(id) && is_user_alive(id))
    {
        set_task(0.25, "give_items", id + 212);
        return HAM_IGNORED;
    }
    
    return HAM_IGNORED;
}

public give_items(taskid)
{
    new id = taskid - 212;
    if(!is_user_alive(id))
        return;

    new cache = get_pcvar_num(cvar[hp_spawn])
    if(cache != 0) set_user_health(id, cache);

    cache = get_pcvar_num(cvar[ap_spawn]);
    if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);

    cache = get_pcvar_num(cvar[money_spawn]);
    if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));

    // meniu disponibil doar dupa ce trec 3 runde, adica din a 4a va fi disponibil
    if(rounds >= 4) ShowVipMenu(id);
}

public msg_ScoreAttrib(msgid, dest, id)
{
    if(!get_pcvar_num(cvar[show_vip_tab]))
        return PLUGIN_CONTINUE;
        
    new id = get_msg_arg_int(1);
    if(is_user_connected(id) && is_user_vip(id))
        set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
    
    return PLUGIN_CONTINUE;
}

public msg_ScreenFade(msgid, dest, id)
{
    if(!get_pcvar_num(cvar[noflash]))
        return PLUGIN_HANDLED;

    if(is_user_connected(id) && is_user_vip(id))
    {
        static data[4];
        data[0] = get_msg_arg_int(4);
        data[1] = get_msg_arg_int(5);
        data[2] = get_msg_arg_int(6);
        data[3] = get_msg_arg_int(7);
        
        if(data[0] == 255 && data[1] == 255 && data[2] == 255 && data[3] > 199)
            return PLUGIN_HANDLED;
    }

    return PLUGIN_CONTINUE;
}

public ShowVipMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;

    if(!is_user_vip(id))
    {
        ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
        ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
        return PLUGIN_HANDLED;
    }

    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    drop_weapons(id, 2);
    give_item(id, "weapon_deagle");
    cs_set_user_bpammo(id, CSW_DEAGLE, 35);

    new menu = menu_create("\rMeniu VIP", "VipMenuHandler");
    menu_additem(menu, "Vreau \yM4A1 + Deagle", "1");
    menu_additem(menu, "Vreau \yAK-47 + Deagle", "2");
    menu_additem(menu, "Vreau \yAWP + Deagle", "3");
    
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
    
    return PLUGIN_CONTINUE;
}

public VipMenuHandler(id, menu, item)
{
    if(!is_user_connected(id) || item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }

    switch(item)
    {
        case 0:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_m4a1");
            cs_set_user_bpammo(id, CSW_M4A1, 120);
            
            ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !31 FB!1).", TAG);
        }
        case 1:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_ak47");
            cs_set_user_bpammo(id, CSW_AK47, 120);
            
            ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !31 FB!1).", TAG);
        }
        case 2:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_awp");
            cs_set_user_bpammo(id, CSW_AWP, 30);
            
            ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !31 FB!1).", TAG);
        }
    }

    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

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);

// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
    // Get user weapons
    static weapons[32], num, i, weaponid, wname[32];
    num = 0; // reset passed weapons count (bugfix)
    get_user_weapons(id, weapons, num);
    
    // Loop through them and drop primaries or secondaries
    for (i = 0; i < num; i++)
    {
        // Prevent re-indexing the array
        weaponid = weapons;
        
        if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            // Get weapon entity
            get_weaponname(weaponid, wname, charsmax(wname));
            engclient_cmd(id, "drop", wname);
        }
    }
}

stock ColorChat(id, String[], any:...) 
{
    static szMesage[192];
    vformat(szMesage, charsmax(szMesage), String, 3);
    
    replace_all(szMesage, charsmax(szMesage), "!1", "^1");
    replace_all(szMesage, charsmax(szMesage), "!3", "^3");
    replace_all(szMesage, charsmax(szMesage), "!4", "^4");
    
    static g_msg_SayText = 0;
    if(!g_msg_SayText)
        g_msg_SayText = get_user_msgid("SayText");
    
    new Players[32], iNum = 1, i;

     if(id) Players[0] = id;
    else get_players(Players, iNum, "ch");
    
    for(--iNum; iNum >= 0; iNum--) 
    {
        i = Players[iNum];
        
        message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
        write_byte(i);
        write_string(szMesage);
        message_end();
    }
}[/code]



O sa revin cu sma si la restul cererilor pentru ceilalti utilizatori.

Nick : jucks
Nu funcționează următoarele :
1.Nu funcționează /vips
2.Nu se face ecranul albastru când faci kill
3.nu funcționează /vip , cred ca ai pus "vip" doar

Re: Vrei un plugin VIP? Aici îl găsești

Posted: 05 Sep 2018, 19:44
by Jucks
YONTU wrote:@Jucks
done | Afiseaza codul
[code=php]/*
CREDITE:
ConnorMcLeod - pentru bullet damage
twistedeuphoria - pentru multi jump
cheap_suit - cateva bucati de cod extrase din biohazard
*/

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

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------
new const TAG[] = "[GO.T****.RO]";        // TAGUL IN CHAT CARE APARE
new const CONTACT[] = "costin.mihai50 [Skype]";

#define is_user_vip(%1) (get_user_flags(%1) & read_flags("t"))
// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

#define PLUGIN_NAME "VIP System"
#define PLUGIN_NAME_PAUSED "VIP System [OPRIT]"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"

#define is_user_valid(%1) (1 <= %1 <= max_players)

enum cvars
{
    hp_spawn = 0,
    ap_spawn,
    money_spawn,
    hp_kill,
    hp_hs,
    ap_kill,
    ap_hs,
    hp_max,
    money_kill,
    money_hs,
    show_vip_tab,
    show_bullet_dmg,
    multi_jump,
    noflash,
    sansa_respawn
}

new cvar[cvars], rounds = 0;
new max_players;
new bool:g_bJump[33] = false, g_JumpNum[33] = 0;
new g_iPlayerPos[33], g_iPlayerCol[33];

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

// NU SCHIMBA VALORILE DEJA EXISTENTE. Poti adauga mai multe culori, respectand matricea
new const g_iColors[][] = 
{ 
    {0, 127, 255}, // blue 
    {255, 127, 0}, // orange 
    {127, 0, 255}, // purple 
    {255, 0, 0}, // red 
    {255, 100, 150}, // pink
    {0, 255, 0} // green
}

public plugin_init()
{    
    new path[64];
    get_localinfo("amxx_configsdir", path, charsmax(path));
    formatex(path, charsmax(path), "%s/vip_maps.ini", path);
    
    new file = fopen(path, "r+");
    
    if(!file_exists(path))
    {
        write_file(path, "; VIP-UL ESTE DEZACTIVAT PE URMATOARELE HARTI: ");
        write_file(path, "; Exemplu de adaugare HARTA:^n; ^"harta^"^n^nfy_snow^ncss_bycastor");
    }
    
    new mapname[32];
    get_mapname(mapname, charsmax(mapname));
    
    new text[121], maptext[32], bool:remove_vip = false;
    while(!feof(file))
    {
        fgets(file, text, charsmax(text));
        trim(text);
        
        if(text[0] == ';' || !strlen(text)) 
        {
            continue; 
        }
        
        parse(text, maptext, charsmax(maptext));
        
        if(equal(maptext, mapname))
        {
            log_amx("Am dezactivat pluginul 'VIP' pe harta %s.", maptext);
            remove_vip = true;
            break;
        }
        
    }
    fclose(file);
    
    if(!remove_vip)
    {
        register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);

        register_event("DeathMsg", "event_DeathMsg", "a");
        register_event("Damage", "event_Damage", "b", "2>0", "3=0");
        //register_event("CurWeapon", "event_CurWeapon", "be", "1=1");
        //register_event("WeapPickup", "event_WeapPickup", "b");
        register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");
        register_event("TextMsg", "event_textmsg", "a", "2=#Game_will_restart_in")

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

        register_message(get_user_msgid("ScoreAttrib"), "msg_ScoreAttrib");
        register_message(get_user_msgid("ScreenFade"), "msg_ScreenFade");

        register_clcmd("say /vips", "CmdVipsOnline");
        register_clcmd("say_team /vips", "CmdVipsOnline");
        register_clcmd("say vips", "CmdVipsOnline");
        register_clcmd("say_team vips", "CmdVipsOnline");
        
        register_clcmd("say vip", "CmdPrintAttributes");
        register_clcmd("say_team vip", "CmdPrintAttributes");
        register_clcmd("say vip", "CmdPrintAttributes");
        register_clcmd("say_team vip", "CmdPrintAttributes");

        cvar[hp_spawn] = register_cvar("vip_hp_spawn", "110");            // 0 = dezactivat
        cvar[ap_spawn] = register_cvar("vip_ap_spawn", "110");            // 0 = dezactivat
        cvar[money_spawn] = register_cvar("vip_money_spawn", "1000");        // 0 = dezactivat
        cvar[show_vip_tab] = register_cvar("vip_show_tab", "1");            // 0 = dezactivat
        cvar[show_bullet_dmg] = register_cvar("vip_show_bullet_dmg", "0");        // 0 = dezactivat
        cvar[multi_jump] = register_cvar("vip_multijump", "1");            // 0 = dezactivat. Daca valoarea cvar-ului este 1, vei sari de 2 ori. Orice valoare pui, va fi +1 jump
        cvar[hp_kill] = register_cvar("vip_hp_kill", "10");                // 0 = dezactivat
        cvar[hp_hs] = register_cvar("vip_hp_hs", "10");                // 0 = dezactivat
        cvar[ap_kill] = register_cvar("vip_ap_kill", "10");                // 0 = dezactivat
        cvar[ap_hs] = register_cvar("vip_ap_hs", "10");                // 0 = dezactivat
        cvar[hp_max] = register_cvar("vip_hp_max", "150");            // 0 = viata infinita
        cvar[money_kill] = register_cvar("vip_money_kill", "800");            // 0 = dezactivat
        cvar[money_hs] = register_cvar("vip_money_hs", "800");            // 0 = dezactivat
        cvar[noflash] = register_cvar("vip_noflash", "1");                // 0 = dezactivat
        cvar[sansa_respawn] = register_cvar("vip_sansa_respawn", "10");        // 0 = dezactivat | valoare cuprinsa intre [1 - 100] | 20 = 20% sansa respawn etc...

        max_players = get_maxplayers();
    }
    else
    {
        register_plugin(PLUGIN_NAME_PAUSED, PLUGIN_VERSION, PLUGIN_AUTHOR);
        pause("ade");
    }
    
    register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
    set_cvar_string("vip_", PLUGIN_VERSION);
}

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

public CmdVipsOnline(id)
{
    if(!is_user_connected(id))
        return PLUGIN_CONTINUE;

    new adminnames[33][32], message[256], i, count, len;
    len = format(message, charsmax(message), "!4%s!3 VIPS ONLINE: ", TAG);
    for(i = 1 ; i <= max_players; i++)
    {
        if(is_user_connected(i) && is_user_vip(i))
            get_user_name(i, adminnames[count++], charsmax(adminnames[]));
    }
    
    if(count > 0)
    {
        for(i = 0; i < count; i++)
        {
            len += format(message[len], 255 -len, "!4%s!1%s ", adminnames, i < (count -1) ? " | " : "");
        }
        ColorChat(id, message);
    }
    else
    {
        len += format(message[len], 255 -len, "!4No one !")
        ColorChat(id, message);
    }

    return PLUGIN_CONTINUE;
}

public CmdPrintAttributes(id)
{
    if(!is_user_connected(id)) return;
    show_motd(id, "vip.html", "Beneficii VIP");
}

public client_PreThink(id)
{
    new cache = get_pcvar_num(cvar[multi_jump]);
    if(is_user_alive(id) && !is_user_vip(id))
        return PLUGIN_CONTINUE;

    new nbut = get_user_button(id);
    new obut = get_user_oldbutton(id);

    if(cache != 0)
    {    
        if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
        {
            if(g_JumpNum[id] < cache)
            {
                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)
{
    new jump_num = get_pcvar_num(cvar[multi_jump]);
    if(!jump_num)
        return PLUGIN_CONTINUE;
        
    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 killer = read_data(1), victim = read_data(2), hs = read_data(3), cache;    
    if(is_user_alive(killer) && is_user_vip(killer))
    {
        if(killer == victim) return PLUGIN_HANDLED;

        cache = hs ? get_pcvar_num(cvar[hp_hs]) : get_pcvar_num(cvar[hp_kill]);
        if(cache != 0) set_user_health(killer, min(get_user_health(killer) + cache, get_pcvar_num(cvar[hp_max])));

        cache = hs ? get_pcvar_num(cvar[ap_hs]) : get_pcvar_num(cvar[ap_kill]);
        if(cache != 0) set_user_armor(killer, min(get_user_armor(killer) + cache, get_pcvar_num(cvar[hp_max])));

        cache = hs ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
        if(cache != 0) cs_set_user_money(killer, min(cs_get_user_money(killer) + cache, 16000));

        static g_msg_screenfade = 0;
        if(!g_msg_screenfade)
            g_msg_screenfade = get_user_msgid("ScreenFade");

        //0x2^0 + 0x2^1 + 0x2^2 + 0x2^3 + 0x2^4 + 0x2^5 + 1x2^6
        message_begin(MSG_ONE_UNRELIABLE, g_msg_screenfade, _, killer);
        write_short(6<<10);        // duration
        write_short(5<<10);        // hold time
        write_short(1<<12);        // fade type
        write_byte(0);        // r
        write_byte(0);        // g
        write_byte(random(255));    // b
        write_byte(255);        // a
        message_end();
    }

    if(is_user_vip(victim) && is_user_alive(killer))
    {
        cache = get_pcvar_num(cvar[sansa_respawn]);
        if(cache != 0)
        {
            new sansa = random_num(1, 100);
            sansa = (sansa <= cache) ? 1 : 0;
            if(sansa) set_task(1.0, "task_respawn", victim + 3910);
        }
    }

    return PLUGIN_CONTINUE;
}

public task_respawn(victim)
{
    victim -= 3910;
    if(!is_user_connected(victim))
        return;
    if(is_user_alive(victim))
        return;
    if(!is_user_vip(victim))
        return;

    ExecuteHamB(Ham_CS_RoundRespawn, victim);
    ColorChat(victim, "!3%s!1 Ai primit!4 Respawn!1 in aceasta runda !!! Mult noroc.", TAG);
}

public event_Damage(victim)
{
    if(!get_pcvar_num(cvar[show_bullet_dmg]))
        return PLUGIN_CONTINUE;
        
    new id = get_user_attacker(victim);
    if(is_user_valid(id))
    {
        if(is_user_alive(id) && !is_user_vip(id))
            return PLUGIN_HANDLED;
        
        if(read_data(4) || read_data(5) || read_data(6))
        {        
            new iPos = ++g_iPlayerPos[id];
            if(iPos == sizeof(g_flCoords))
                iPos = g_iPlayerPos[id] = 0;
            
            new iCol = ++g_iPlayerCol[id];
            if(iCol == sizeof(g_iColors))
                iCol = g_iPlayerCol[id] = 0;
            
            set_hudmessage(g_iColors[iCol][0], g_iColors[iCol][1], g_iColors[iCol][2], Float:g_flCoords[iPos][0], Float:g_flCoords[iPos][1], 0, 0.1, 2.5, 0.02, 0.02, -1);
            show_hudmessage(id, "%d", read_data(2));
        }
    }
    
    return PLUGIN_CONTINUE;
}

public event_NewRound()
{
    rounds++;
}

public event_textmsg()
{
    rounds = 0;
}

public fw_PlayerSpawnPost(id)
{
    if(is_user_vip(id) && is_user_alive(id))
    {
        set_task(0.25, "give_items", id + 212);
        return HAM_IGNORED;
    }
    
    return HAM_IGNORED;
}

public give_items(taskid)
{
    new id = taskid - 212;
    if(!is_user_alive(id))
        return;

    new cache = get_pcvar_num(cvar[hp_spawn])
    if(cache != 0) set_user_health(id, cache);

    cache = get_pcvar_num(cvar[ap_spawn]);
    if(cache != 0) cs_set_user_armor(id, cache, CS_ARMOR_VESTHELM);

    cache = get_pcvar_num(cvar[money_spawn]);
    if(cache != 0) cs_set_user_money(id, min(cs_get_user_money(id) + cache, 16000));

    // meniu disponibil doar dupa ce trec 3 runde, adica din a 4a va fi disponibil
    if(rounds >= 4) ShowVipMenu(id);
}

public msg_ScoreAttrib(msgid, dest, id)
{
    if(!get_pcvar_num(cvar[show_vip_tab]))
        return PLUGIN_CONTINUE;
        
    new id = get_msg_arg_int(1);
    if(is_user_connected(id) && is_user_vip(id))
        set_msg_arg_int(2, ARG_BYTE, is_user_alive(id) ? (1<<2) : (1<<0));
    
    return PLUGIN_CONTINUE;
}

public msg_ScreenFade(msgid, dest, id)
{
    if(!get_pcvar_num(cvar[noflash]))
        return PLUGIN_HANDLED;

    if(is_user_connected(id) && is_user_vip(id))
    {
        static data[4];
        data[0] = get_msg_arg_int(4);
        data[1] = get_msg_arg_int(5);
        data[2] = get_msg_arg_int(6);
        data[3] = get_msg_arg_int(7);
        
        if(data[0] == 255 && data[1] == 255 && data[2] == 255 && data[3] > 199)
            return PLUGIN_HANDLED;
    }

    return PLUGIN_CONTINUE;
}

public ShowVipMenu(id)
{
    if(!is_user_connected(id))
        return PLUGIN_HANDLED;

    if(!is_user_vip(id))
    {
        ColorChat(id, "!4%s!1 Imi pare rau, dar nu ai acces la meniul pentru!3 membrii VIP!1.", TAG);
        ColorChat(id, "!4%s!1 Poti cumpara VIP, contactand adresa Y!M:!3 %s!1.", TAG, CONTACT);
        return PLUGIN_HANDLED;
    }

    give_item(id, "weapon_hegrenade");
    give_item(id, "weapon_flashbang");
    drop_weapons(id, 2);
    give_item(id, "weapon_deagle");
    cs_set_user_bpammo(id, CSW_DEAGLE, 35);

    new menu = menu_create("\rMeniu VIP", "VipMenuHandler");
    menu_additem(menu, "Vreau \yM4A1 + Deagle", "1");
    menu_additem(menu, "Vreau \yAK-47 + Deagle", "2");
    menu_additem(menu, "Vreau \yAWP + Deagle", "3");
    
    menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
    menu_display(id, menu, 0);
    
    return PLUGIN_CONTINUE;
}

public VipMenuHandler(id, menu, item)
{
    if(!is_user_connected(id) || item == MENU_EXIT)
    {
        menu_destroy(menu);
        return PLUGIN_HANDLED;
    }

    switch(item)
    {
        case 0:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_m4a1");
            cs_set_user_bpammo(id, CSW_M4A1, 120);
            
            ColorChat(id, "!4%s!1 Ai ales!3 M4A1!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !31 FB!1).", TAG);
        }
        case 1:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_ak47");
            cs_set_user_bpammo(id, CSW_AK47, 120);
            
            ColorChat(id, "!4%s!1 Ai ales!3 AK47!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !31 FB!1).", TAG);
        }
        case 2:
        {
            drop_weapons(id, 1);
            give_item(id, "weapon_awp");
            cs_set_user_bpammo(id, CSW_AWP, 30);
            
            ColorChat(id, "!4%s!1 Ai ales!3 AWP!1 +!3 Deagle!1 +!3 Set grenade!1 (!31 HE!1 + !31 FB!1).", TAG);
        }
    }

    menu_destroy(menu);
    return PLUGIN_HANDLED;
}

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);

// Drop primary/secondary weapons
stock drop_weapons(id, dropwhat)
{
    // Get user weapons
    static weapons[32], num, i, weaponid, wname[32];
    num = 0; // reset passed weapons count (bugfix)
    get_user_weapons(id, weapons, num);
    
    // Loop through them and drop primaries or secondaries
    for (i = 0; i < num; i++)
    {
        // Prevent re-indexing the array
        weaponid = weapons;
        
        if((dropwhat == 1 && ((1<<weaponid) & PRIMARY_WEAPONS_BIT_SUM)) || (dropwhat == 2 && ((1<<weaponid) & SECONDARY_WEAPONS_BIT_SUM)))
        {
            // Get weapon entity
            get_weaponname(weaponid, wname, charsmax(wname));
            engclient_cmd(id, "drop", wname);
        }
    }
}

stock ColorChat(id, String[], any:...) 
{
    static szMesage[192];
    vformat(szMesage, charsmax(szMesage), String, 3);
    
    replace_all(szMesage, charsmax(szMesage), "!1", "^1");
    replace_all(szMesage, charsmax(szMesage), "!3", "^3");
    replace_all(szMesage, charsmax(szMesage), "!4", "^4");
    
    static g_msg_SayText = 0;
    if(!g_msg_SayText)
        g_msg_SayText = get_user_msgid("SayText");
    
    new Players[32], iNum = 1, i;

     if(id) Players[0] = id;
    else get_players(Players, iNum, "ch");
    
    for(--iNum; iNum >= 0; iNum--) 
    {
        i = Players[iNum];
        
        message_begin(MSG_ONE_UNRELIABLE, g_msg_SayText, _, i);
        write_byte(i);
        write_string(szMesage);
        message_end();
    }
}[/code]



O sa revin cu sma si la restul cererilor pentru ceilalti utilizatori.

Nick : jucks
Nu funcționează următoarele :
1.Nu funcționează /vips
2.Nu se face ecranul albastru când faci kill, de fapt apare dar nu trebuia așa, gen sa nu se facă albastru sa ți se închidă ecranul doar sa se facă putin albastru nu sa fie tot ecranul albastru , uIta te aici când face băiatul acela kill cu catanele https://youtu.be/V7AGRDAveUQ
3.nu funcționează /vip , cred ca ai pus "vip" doar