Cerere plugin hns level

Categoria cu cereri de pluginuri si nu numai.

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Forum rules
Accesează link-ul pentru a putea vedea regulile forumului

Daca doriti sa vi se modifice un plugin, va rugam postati aici .
Post Reply
ggamer302
Membru, skill 0
Membru, skill 0
Posts: 34
Joined: 02 Nov 2014, 12:13
Detinator Steam: Da
Detinator server CS: Inca nu.
SteamID: MR.PIKACHU
Fond eXtream: 0
Location: Suceava
Contact:

22 Mar 2018, 23:08

Salut extreamcs, as vrea daca se poate sa-mi dea cineva acel plugin de hns levelmod cu level max infinite..era unul pe internet in care puteai sa-ti pui tu cate nivele voiai..
Mai exact cel din poza de mai jos:
| Afiseaza codul
https://imgur.com/a/N9Plt
RoyalServer
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

23 Mar 2018, 14:52

ggamer302 wrote:Salut extreamcs, as vrea daca se poate sa-mi dea cineva acel plugin de hns levelmod cu level max infinite..era unul pe internet in care puteai sa-ti pui tu cate nivele voiai..
Mai exact cel din poza de mai jos:
| Afiseaza codul
https://imgur.com/a/N9Plt
| Afiseaza codul
// Includes
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <cstrike>
#include <fakemeta>
#include <fun>
#include <csx>
#include <nvault>


#define HEALTH_FIX
#define MANAGE_PLAYERS
#define SHOW_HUD	// arata in hud nivelul tau + xp-ul tau + rank-ul tau

// Register Plugin
new const PLUGIN_NAME[] = "Game Mod: Level System", 
	 PLUGIN_VERSION[] = "3.0", 
	 PLUGIN_AUTHOR[] = "YONTU";
	 
//new ocnst PLUGIN_UPDATE[] = "13.02.2018";

#define MAX_BUFFER_LENGTH 2047
#define is_user_valid(%1) (1 <= %1 <= 32)
#define is_user_vip(%1) (get_user_flags(%1) & read_flags("t"))		// flag VIP	(vip-ul face x2 xp)

new const Tag[] = "[Level System]";
new const SoundLevelUp[] = "misc/levelup.wav";

enum _:e_data
{
	Experienta[10], 
	Rank[64],
	Viata[4],
	Armura[4],
	Flash[4], 
	He[4], 
	Smoke[4],
	Viteza[4],
	Gravitatie[4]
}

new Array:levelmod, nivel_maxim = 0, levelmoddata[e_data];
new xp_jucator[33], xpant_jucator[33], nivel_jucator[33], nume_jucator[33][32], bool:este_inviata[33], bool:este_conectat[33];
new nume_host[64], cvar_hostname, motd[MAX_BUFFER_LENGTH + 1], len = 0, g_Vault;

#if defined SHOW_HUD
new SyncHudMessage;
#endif

// Hack to be able to use Ham_Player_ResetMaxSpeed (by joaquimandrade)
new Ham:Ham_Player_ResetMaxSpeed = Ham_Item_PreFrame;

new g_drop_weapons[][] =
{
	"weapon_hegrenade",
	"weapon_flashbang",
	"weapon_smokegrenade"
}

#if defined MANAGE_PLAYERS
#define ADMIN_ACCESS	ADMIN_IMMUNITY
#endif

enum _data_cvars
{
	cvarname[32],
	cvarvalue[5],
	cvardesc[512]
}

enum _:cvars
{
	xp_kill = 0,
	xp_hs,
	xp_kill_knife,
	xp_hs_knife,
	xp_he,
	xp_plant_bmb,
	xp_defuse_bmb,
	xp_explode_bmb,
	xp_levelup_protection,
	xp_levelup_effects
}
new cvar[cvars], cvar_cache[cvars];

new const data_cvars[][_data_cvars] = 
{
	//nume cvar + valore + descriere cvar
	{"xp_kill", "10", "XP-ul obtinut pe kill:"},
	{"xp_hs", "25", "XP-ul obtinut pe headshot:"},
	{"xp_kill_knife", "30", "XP-ul obtinut pe kill facut cu cutitul:"},
	{"xp_hs_knife", "40", "XP-ul obtinut pe headshot facut cu cutitul:"},
	{"xp_he", "30", "XP-ul obtinut pe kill facut cu grenada:"},
	{"xp_plant_bmb", "10", "XP-ul obtinut plantand bomba:"},
	{"xp_defuse_bmb", "15", "XP-ul obtinut dezamorsand bomba:"},
	{"xp_explode_bmb", "20", "XP-ul obtinut datorita exploziei bombei:"},
	{"xp_levelup_protection", "1", "Atunci cand faci nivel nou, esti imun la orice atac timp cateva secunde (0/1)"},
	{"xp_levelup_effects", "1", "Efecte atunci cand faci nivel nou (0/1)"}
}

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

	new i;
	for(i = 0; i < sizeof data_cvars; i++)
		cvar = register_cvar(data_cvars[cvarname], data_cvars[cvarvalue]);

	register_event("HLTV", "event_NewRound", "a", "1=0", "2=0");

	#if defined HEALTH_FIX
	register_message(get_user_msgid("Health"), "msg_health");
	#endif
	
	// Block change name. Is restricted.
	register_forward(FM_ClientUserInfoChanged, "fw_ChangeName");

	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn", 1);
	RegisterHam(Ham_Player_ResetMaxSpeed, "player", "fw_ResetMaxSpeed_Post", 1);
	
	register_clcmd("say /xp", "ClShowXp");
	register_clcmd("say_team /xp", "ClShowXp");

	#if defined MANAGE_PLAYERS
	register_clcmd("say /level", "CmdManagePlayers");
	register_clcmd("say_team /level", "CmdManagePlayers");
	#endif

	register_clcmd("say /help", "CmdOpenHelpMenu");
	register_clcmd("say_team /help", "CmdOpenHelpMenu");

	register_concmd("amx_info", "CmdInfo");

	#if defined SHOW_HUD
	SyncHudMessage = CreateHudSyncObj();
	#endif

	cvar_hostname = get_cvar_pointer("hostname");
	
	g_Vault = nvault_open("_level_mod_");
	if(g_Vault == INVALID_HANDLE)
		set_fail_state("Eroare la deschiderea bazei de date din foldeurul data/vault.");
		
	_read_file();
}

public CmdInfo(id)
{
	new i;
	console_print(id, "========= | %s | =========", PLUGIN_NAME);
	for(i = 1; i <= nivel_maxim; i++)
	{
		ArrayGetArray(levelmod, i, levelmoddata);
		console_print(id, "Level: %d | XP: %d | Rank: %s | HP: %d | AP: %d | FLASH: %d | HE: %d | SMOKE: %d | SPEED: %d | GRAVITY: %d^n", 
		i, levelmoddata[Experienta], levelmoddata[Rank], levelmoddata[Viata], levelmoddata[Armura], levelmoddata[Flash], levelmoddata[He], levelmoddata[Smoke], levelmoddata[Viteza], levelmoddata[Gravitatie]);
	}
}

_read_file()
{
	new path[64];
	get_localinfo("amxx_configsdir", path, charsmax(path));
	format(path, charsmax(path), "%s/levelmod.ini", path);
	
	new file = fopen(path, "r+");
	new const errors_file[] = "levelmod_errors.txt";
	new format_txt[128];
	
	if(!file_exists(path))
	{
		log_to_file(errors_file, "Nu am gasit fisierul '%s'. Il creez acum!", path);

		format(format_txt, 127, ";------------ | %s - Configuration file | ------------", PLUGIN_NAME);
		write_file(path, format_txt);
		format(format_txt, 127, ";-------------------------- | by %s | --------------------------^n^n^n", PLUGIN_AUTHOR);
		write_file(path, format_txt);
		write_file(path, ";Salut. In fisierul asta iti adaugi cate nivele vrei tu. Liniile care contin ';' in fata lor nu vor fi luate in consideratie.");
		write_file(path, ";Pentru a seta un nivel, procedezi in felul urmator. Trebuie doar sa completezi linia de mai jos:");
		write_file(path, ";^"XP^"    ^"RANK^"    ^"VIATA^"    ^"ARMURA^"    ^"FLASH^"    ^"HE^"    ^"SMOKE^"    ^"VITEZA^"    ^"GRAVITATIE^"");
		write_file(path, ";XP reprezinta experienta necesara pe care trebuie sa o acumulezi pentru a trece la nivelul urmator.");
		write_file(path, ";RANK este rank-ul care te reprezinta, in functie de ce nivel ai.");
		write_file(path, ";VIATA este viata pe care o primesti cand ai nivelul respectiv.");
		write_file(path, ";ARMURA este armura pe care o primesti cand ai nivelul respectiv.");
		write_file(path, ";FLASH este numarul de grenade flashbang pe care le primesti cand ai nivelul respectiv.");
		write_file(path, ";HE este numarul de grenade he pe care le primesti cand ai nivelul respectiv.");
		write_file(path, ";SMOKE este numarul de grenade smoke pe care le primesti cand ai nivelul respectiv.");
		write_file(path, ";VITEZA este viteza pe care o primesti cand ai nivelul respectiv.");
		write_file(path, ";GRAVITATIE este gravitatia pe care o primesti cand ai nivelul respectiv.^n;");
		write_file(path, ";IMPORTANTA: Cate linii ai in fisier, atatea NIVELE VOR FI. DACA VREI CA JUCATORUL SA NU PRIMEASCA NICIO GRENADA, ATUNCI PUNE VALOARE 0 LA HE SAU FB SAU SMOKE^n;");
		write_file(path, ";Un exemplu de nivel este:");
		write_file(path, ";^"100^" ^"BAROS^" ^"100^" ^"100^" ^"2^" ^"1^" ^"1^" ^"300^" ^"500^"");
		write_file(path, ";- ai nevoie de 100 XP sa avansezi^n;- rankul tau va fi: BAROS^n;- primesti la spawn 100 HP, 100 AP, 2 HB, 1 HE, 1 SM^n;- ai 300 viteza^n;- ai 500 gravitatie");
		write_file(path, ";Valoarea vitezei trebuie sa se afle in intervalul [260, 600] (260 reprezinta viteza default)^n;Gravitatia trebuie sa se afle in intervalul [100, 800] (800 reprezinta gravitatia defaul)");
		write_file(path, ";PRIMA LINIE TREBUIE SA FIE NECOMPLETATA.^n;Ti-am adaugat eu mai jos doua nivele. Adauga acum cate nivele vrei sa aiba pluginul.^n^n^n");
		write_file(path, "^"0^"      ^"0^"      ^"0^"      ^"0^"      ^"0^"      ^"0^"      ^"0^"      ^"0^"      ^"0^";      Level      0");
		write_file(path, "^"100^"      ^"Avansat^"      ^"50^"      ^"0^"      ^"3^"      ^"2^"      ^"2^"      ^"260^"      ^"750^";      Level      1");
		write_file(path, "^"200^"      ^"Expert^"      ^"100^"      ^"50^"      ^"4^"      ^"3^"      ^"3^"      ^"270^"      ^"700^";      Level      2");
	}
	
	if(nivel_maxim)
	{
		ArrayClear(levelmod);
		nivel_maxim = 0;
	}
	
	new text[121], levelmod_infos[e_data];
	while(!feof(file))
	{
		fgets(file, text, charsmax(text));
		trim(text);
		
		if(text[0] == ';' || !strlen(text)) 
		{
			continue; 
		}
		
		if(parse(text, levelmod_infos[Experienta], charsmax(levelmod_infos), levelmod_infos[Rank], charsmax(levelmod_infos), levelmod_infos[Viata], charsmax(levelmod_infos),
		levelmod_infos[Armura], charsmax(levelmod_infos), levelmod_infos[Flash], charsmax(levelmod_infos), levelmod_infos[He], charsmax(levelmod_infos),
		levelmod_infos[Smoke], charsmax(levelmod_infos), levelmod_infos[Viteza], charsmax(levelmod_infos), levelmod_infos[Gravitatie], charsmax(levelmod_infos)) != 9)
		{
			log_to_file(errors_file, "[AMXX] Nu am putut delimita linia (%s). Este scrisa gresit.", text);
			continue;
		}
		
		levelmoddata[Experienta] = str_to_num(levelmod_infos[Experienta]);
		copy(levelmoddata[Rank], charsmax(levelmoddata), levelmod_infos[Rank]);
		levelmoddata[Viata] = str_to_num(levelmod_infos[Viata]);
		levelmoddata[Armura] = str_to_num(levelmod_infos[Armura]);
		levelmoddata[Flash] = str_to_num(levelmod_infos[Flash]);
		levelmoddata[He] = str_to_num(levelmod_infos[He]);
		levelmoddata[Smoke] = str_to_num(levelmod_infos[Smoke]);
		levelmoddata[Viteza] = str_to_num(levelmod_infos[Viteza]);
		levelmoddata[Gravitatie] = str_to_num(levelmod_infos[Gravitatie]);
		
		ArrayPushArray(levelmod, levelmoddata);
		nivel_maxim++;
	}
	nivel_maxim--;
	fclose(file);
	server_print("[%s] Numarul total de nivele: %d.", PLUGIN_NAME, nivel_maxim);
	
	get_localinfo("amxx_configsdir", path, charsmax(path));
	format(path, charsmax(path), "%s/level_mod.cfg", path);
	if(!file_exists(path))
	{
		new i;
		for(i = 0; i < sizeof data_cvars; i++)
		{
			formatex(format_txt, 127, "// %s^n%s %s^n^n", data_cvars[cvardesc], data_cvars[cvarname], data_cvars[cvarvalue]);
			write_file(path, format_txt);
		}
	}
	server_cmd("exec %s", path);
}

public plugin_precache()
	precache_sound(SoundLevelUp);

public plugin_end()
{
	nvault_close(g_Vault);
	ArrayDestroy(levelmod);
}

public plugin_cfg()
{
	new i;
	for(i = 0; i < sizeof data_cvars; i++)
		cvar_cache = get_pcvar_num(cvar);

	get_pcvar_string(cvar_hostname, nume_host, charsmax(nume_host));
}

public plugin_natives()
{
	levelmod = ArrayCreate(e_data);
	
	// Player specific natives
	register_native("xp_mod", "native_xp_mod", 1);
	register_native("get_user_xp", "native_get_user_xp", 1);
	register_native("get_user_level", "native_get_user_level", 1);
	register_native("get_max_level", "native_get_nivel_maxim", 1);
	register_native("get_user_next_level_xp", "native_get_user_next_level_xp", 1);
}

public native_xp_mod(id, xp, update, save)
{
	if(!is_user_valid(id))
	{
		log_error(AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id);
		return false;
	}

	return make_user_happy(id, xp, update, save);
}

public native_get_user_xp(id)
{
	if(!is_user_valid(id))
	{
		log_error(AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id);
		return false;
	}

	return xp_jucator[id];
}

public native_get_user_level(id)
{
	if(!is_user_valid(id))
	{
		log_error(AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id);
		return false;
	}

	return calculeaza_nivel(id);
}

public native_get_nivel_maxim()
	return nivel_maxim;

public native_get_user_next_level_xp(id)
{
	if(!is_user_valid(id))
	{
		log_error(AMX_ERR_NATIVE, "%s: Invalid Player (%d).", PLUGIN_NAME, id);
		return false;
	}
	
	new level = calculeaza_nivel(id) + 1;
	ArrayGetArray(levelmod, level, levelmoddata);
	
	if(este_conectat[id] && (level <= nivel_maxim))
		return levelmoddata[Experienta];

	return true;
}

public client_putinserver(id)
{
	get_user_name(id, nume_jucator[id], 31);
	xp_jucator[id] = 0;
	este_conectat[id] = true;
	este_inviata[id] = false;
	LoadUserExperienta(id);
	nivel_jucator[id] = calculeaza_nivel(id);
	#if defined SHOW_HUD
	set_task(1.0, "task_ShowHUD", id + 1221, _, _, "b");
	#endif
}

public client_disconnect(id)
{
	este_conectat[id] = false;
	este_inviata[id] = false;
	SaveUserExperienta(id);
	#if defined SHOW_HUD
	remove_task(id + 1221);
	#endif
}

// thx ConnorMcLeod
public fw_ChangeName(id)
{
	static const name[] = "name"
	static szOldName[32], szNewName[32];

	pev(id, pev_netname, szOldName, charsmax(szOldName));
	if(szOldName[0])
	{
		get_user_info(id, name, szNewName, charsmax(szNewName));
		if(!equal(szOldName, szNewName))
		{
			set_user_info(id, name, szOldName);
			ColorChat(id, "!3%s!1 Este!4 INTERZISA!1 schimbarea numelui pe server.", Tag);
			return FMRES_HANDLED;
		}
	}

	return FMRES_IGNORED;
}

public fw_PlayerSpawn(id)
{
	if(!is_user_alive(id))
		return HAM_IGNORED;
		
	este_inviata[id] = true;
	set_task(1.0, "set_user_items", id);

	return HAM_IGNORED;
}

public fw_ResetMaxSpeed_Post(id)
{
	if(!este_inviata[id])
		return HAM_HANDLED;
	
	ArrayGetArray(levelmod, nivel_jucator[id], levelmoddata);
	new Float:fMaxSpeed = floatclamp(float(levelmoddata[Viteza]), 250.0, 600.0);
	set_user_maxspeed(id, fMaxSpeed);

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

	return HAM_IGNORED;
}

public event_NewRound()
{
	new i;
	for(i = 0; i < sizeof data_cvars; i++)
		cvar_cache = get_pcvar_num(cvar);
}

public client_death(killer, victim, wpnindex, hitplace, TK)
{
	if(killer == victim || !este_inviata[killer])
		return;

	este_inviata[victim] = false;
		
	new xp;
	switch(wpnindex)
	{
		case CSW_KNIFE:
		{
			if(hitplace == HIT_HEAD) xp = (cvar_cache[xp_hs_knife] == 0) ? 0 : cvar_cache[xp_hs_knife];
			else xp = (cvar_cache[xp_kill_knife] == 0) ? 0 : cvar_cache[xp_kill_knife];
		}
		case CSW_HEGRENADE: xp = (cvar_cache[xp_he] == 0) ? 0 : cvar_cache[xp_he];
		default:
		{
			if(hitplace == HIT_HEAD) xp = (cvar_cache[xp_hs] == 0) ? 0 : cvar_cache[xp_hs];
			else xp = (cvar_cache[xp_kill] == 0) ? 0 : cvar_cache[xp_kill];
		}
	}

	if(is_user_vip(killer))
		xp *= 2;

	if(xp != 0)
	{
		make_user_happy(killer, xp, 1, 1);
		ColorChat(killer, "!4%s!1 +!3 %i xp", Tag, xp);
	}
}

public bomb_planted(planter)
{
	if(!este_conectat[planter] || cvar_cache[xp_plant_bmb] == 0)
		return PLUGIN_CONTINUE;

	if(is_user_vip(planter))
		cvar_cache[xp_plant_bmb] *= 2;
	
	make_user_happy(planter, cvar_cache[xp_plant_bmb], 1, 0);
	ColorChat(0, "!3%s!1 Jucatorul!4 %s!1 a primit!3 %d!1 XP pentru plantarea bombei.", Tag, nume_jucator[planter], cvar_cache[xp_plant_bmb]);

	return PLUGIN_CONTINUE;
}

public bomb_explode(planter, defuser)
{
	if(!este_conectat[planter] || cvar_cache[xp_explode_bmb] == 0)
		return PLUGIN_CONTINUE;

	if(is_user_vip(planter))
		cvar_cache[xp_explode_bmb] *= 2;

	make_user_happy(planter, cvar_cache[xp_explode_bmb], 1, 0);
	ColorChat(0, "!3%s!1 Jucatorul!4 %s!1 a primit!3 %d!1 XP pentru ca a avut grija de bomba.", Tag, nume_jucator[planter], cvar_cache[xp_explode_bmb]);

	return PLUGIN_CONTINUE;
}

public bomb_defused(defuser)
{
	if(!este_conectat[defuser] || cvar_cache[xp_defuse_bmb] == 0)
		return PLUGIN_CONTINUE;

	if(is_user_vip(defuser))
		cvar_cache[xp_defuse_bmb] *= 2;
	
	make_user_happy(defuser, cvar_cache[xp_defuse_bmb], 1, 0);
	ColorChat(0, "!3%s!1 Jucatorul!4 %s!1 a primit!3 %d!1 XP pentru dezamorsarea bombei.", Tag, nume_jucator[defuser], cvar_cache[xp_defuse_bmb]);

	return PLUGIN_CONTINUE;
}

#if defined HEALTH_FIX
public msg_health(msgid, dest, id)
{
	static health;
	health = get_msg_arg_int(1);
	
	if(health > 255)
		set_msg_arg_int(1, ARG_BYTE, 255);
	
	return PLUGIN_CONTINUE;
}
#endif

public ClShowXp(id)
{
	if(este_conectat[id])
	{
		new rank[64];
		ArrayGetArray(levelmod, nivel_jucator[id], levelmoddata);
		if(equal(levelmoddata[Rank], ""))
			formatex(rank, charsmax(rank), "");
		else
			formatex(rank, charsmax(rank), "!4 ***!1 Rank:!3 %s", levelmoddata[Rank]);

		if(nivel_jucator[id] == nivel_maxim)
			ColorChat(id, "!4***!1 Level:!3 %d!4 ***!1 XP:!3 %d%s", nivel_maxim, xp_jucator[id], rank);
		else
			ColorChat(id, "!4***!1 Level:!3 %d!1/!3%d!4 ***!1 XP:!3 %d!1/!3%d%s", nivel_jucator[id], nivel_maxim, xp_jucator[id], levelmoddata[Experienta], rank);
	}

	return PLUGIN_HANDLED;
}

#if defined MANAGE_PLAYERS
public CmdManagePlayers(id)
{
	if(!(get_user_flags(id) & ADMIN_ACCESS))
	{
		ColorChat(id, "!4%s!1 Doar!3 ADMINII!1 au acces!", Tag);
		return PLUGIN_HANDLED;
	}

	new menu = menu_create("Alege un jucator:", "MenuHandler");

	new iPlayers[32], iNum, i, player;
	new szUserID[32], szName[64];
	get_players(iPlayers, iNum);

	for(i = 0; i < iNum; i++)
	{ 
		player = iPlayers[i];

		formatex(szName, charsmax(szName), "%s:\y Level:\r %d", nume_jucator[player], nivel_jucator[player]);
		formatex(szUserID, charsmax(szUserID), "%d", get_user_userid(player));
		menu_additem(menu, szName, szUserID);
	}

	menu_display(id, menu);
	return PLUGIN_HANDLED;
}

public MenuHandler(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
   
	new item_access, callback, info[64], name[32];
	menu_item_getinfo(menu, item, item_access, info, charsmax(info), name, charsmax(name), callback);
	
	new userid = str_to_num(info);
	new player = find_player("k", userid);

	ChoosePlayer(id, player);
	return PLUGIN_HANDLED;
}

public ChoosePlayer(id, Choosen)
{
	new szTitle[101], mm[200], szChoosen[200], i;
	formatex(szTitle, charsmax(szTitle), "Schimba-i lui \r%s\y nivelul in:", nume_jucator[Choosen]);
	new menu = menu_create(szTitle, "SetLevelHandler");
	
	num_to_str(Choosen, szChoosen, charsmax(szChoosen));
	
	for(i = 1; i <= nivel_maxim; i++)
	{
		ArrayGetArray(levelmod, i, levelmoddata);
		formatex(mm, charsmax(mm), "\r%d\w (%d XP)", i, levelmoddata[Experienta]);
		menu_additem(menu, mm, szChoosen);
	}
	
	menu_display(id, menu);
	return PLUGIN_HANDLED;
}

public SetLevelHandler(id, menu, item)
{
	if(item == MENU_EXIT)
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	
	new item_access, callback, info[64], name[32];
	menu_item_getinfo(menu, item, item_access, info, charsmax(info), name, charsmax(name), callback);
	
	new player = str_to_num(info);	
	nivel_jucator[player] = item+1;//(item == 0) ? 1 : calculeaza_nivel(id);
	ArrayGetArray(levelmod, nivel_jucator[player], levelmoddata);	// necesar
	xp_jucator[player] = (item == 0) ? 0 : levelmoddata[Experienta];
	set_user_items(player);
	ColorChat(player, "!4%s!1 Adminul!3 %s!1 ti-a schimbat nivelul in!4 %d!1.", Tag, nume_jucator[id], nivel_jucator[player]);
	
	menu_destroy(menu);
	return PLUGIN_HANDLED;
}
#endif

public CheckUserLevel(id)
{
	if(!este_conectat[id])
		return;

	new level = calculeaza_nivel(id);
	ArrayGetArray(levelmod, level, levelmoddata);

	if(nivel_jucator[id] == nivel_maxim)
		return;

	// prima data verificam nivelul, a doua conditie e optionala (atunci cand jucatorul are 0 XP)
	if(level != nivel_jucator[id] || xp_jucator[id] == levelmoddata[Experienta])
	{
		nivel_jucator[id]++;
		emit_sound(id, CHAN_AUTO, SoundLevelUp, 1.0, ATTN_NORM, 0, PITCH_NORM);

		// Un mic efect? Nu strica...
		if(cvar_cache[xp_levelup_effects])
		{
			// Luam culorile setate pentru fiecare level in parte
			new g_Color[3];
			g_Color[0] = get_color_level(id, 0); // r
			g_Color[1] = get_color_level(id, 1); // g
			g_Color[2] = get_color_level(id, 2); // b

			// Producem efectul jucatorului
			MakeFadeScreen(id, 1.5, g_Color, random_num(100, 200));
		}

		if(cvar_cache[xp_levelup_protection])
		{
			fm_set_user_godmode(id, 1);
			set_task(1.0, "task_RemoveProtect", id);
		}

		ColorChat(id, "!3%s!1 Congratulations, you've !4leveled up!1. Current level:!3 %d!1 !", Tag, level);
		if(nivel_jucator[id] < nivel_maxim)
		{
			ArrayGetArray(levelmod, nivel_jucator[id] + 1, levelmoddata);
			ColorChat(id, "!3%s!1 Next XP:!4 %d!1 !", Tag, levelmoddata[Experienta]);
		}
	}
}

stock MakeFadeScreen(id, const Float:Seconds, const color[3], const Alpha)
{
	static g_MsgScreenFade = 0;
	if(!g_MsgScreenFade)
		g_MsgScreenFade = get_user_msgid("ScreenFade");

	message_begin(MSG_ONE, g_MsgScreenFade, _, id);
	write_short(floatround(4096.0 * Seconds, floatround_round));
	write_short(floatround(4096.0 * Seconds, floatround_round));
	write_short(0x0000);
	write_byte(color[0]);
	write_byte(color[1]);
	write_byte(color[2]);
	write_byte(Alpha);
	message_end();
}

public get_color_level(id, number)
{
	new g_Color[3];
	switch(nivel_jucator[id])
	{
		case 1:	g_Color = { 248, 172, 58 };
		case 2:	g_Color = { 0, 255, 128 };
		case 3:	g_Color = { 170, 255, 127 };
		case 4:	g_Color = { 155, 240, 70 };
		case 5:	g_Color = { 255, 255, 0 };
		case 6:	g_Color = { 255, 127, 85 };
		case 7:	g_Color = { 0, 212, 255 };
		case 8:	g_Color = { 70, 70, 240 };
		case 9:	g_Color = { 170, 0, 255 };
		case 10:	g_Color = { 255, 255, 0 };
		default:	g_Color = { 200, 200, 0 };
	}
	
	return g_Color[number];
}

public task_RemoveProtect(id)
	fm_set_user_godmode(id, 0);

#if defined SHOW_HUD
public task_ShowHUD(taskid)
{
	new id = taskid - 1221;
	ArrayGetArray(levelmod, nivel_jucator[id], levelmoddata);

	new rank[64];
	if(este_inviata[id])
	{
		new g_Color[3];
		g_Color[0] = get_color_level(id, 0);
		g_Color[1] = get_color_level(id, 1);
		g_Color[2] = get_color_level(id, 2);

		if(equal(levelmoddata[Rank], ""))
			formatex(rank, charsmax(rank), "");
		else
			formatex(rank, charsmax(rank), " - RANK: %s", levelmoddata[Rank]);

		if(nivel_jucator[id] == nivel_maxim)
		{
			set_hudmessage(g_Color[0], g_Color[1], g_Color[2], 0.02, 0.92, 0, 6.0, 1.1, 0.0, 0.0, -1);
			ShowSyncHudMsg(id, SyncHudMessage, "LEVEL: MAXIMUM  -  XP: %d%s",  xp_jucator[id], rank);
		}
		else
		{
			set_hudmessage(g_Color[0], g_Color[1], g_Color[2], 0.02, 0.92, 0, 6.0, 1.1, 0.0, 0.0, -1);
			ShowSyncHudMsg(id, SyncHudMessage, "LEVEL: %d/%d  -  XP: %d/%d%s", nivel_jucator[id], nivel_maxim, xp_jucator[id], levelmoddata[Experienta], rank);
		}
	}
	else
	{
		new idSpec;
		idSpec = pev(id, pev_iuser2);

		if(este_conectat[idSpec])
		{
			ArrayGetArray(levelmod, nivel_jucator[idSpec], levelmoddata);

			if(equal(levelmoddata[Rank], ""))
				formatex(rank, charsmax(rank), "");
			else
				formatex(rank, charsmax(rank), " Rank: %s | ", levelmoddata[Rank]);

			set_hudmessage(255, 255, 255, -1.0, 0.87, 0, 6.0, 1.1, 0.0, 0.0, -1);
			ShowSyncHudMsg(id, SyncHudMessage, "Spectating: %s (%0.f HP)^n%sLevel: %d | XP: %d", nume_jucator[idSpec], float(get_user_health(idSpec)), rank, nivel_jucator[idSpec], xp_jucator[idSpec]);
		}
	}
}
#endif

public SaveUserExperienta(id)
{
	new szVaultData[64];
	format(szVaultData, charsmax(szVaultData), "%i#", xp_jucator[id]);
	nvault_set(g_Vault, nume_jucator[id], szVaultData);
	//nvault_close(g_Vault);
}

public LoadUserExperienta(id)
{
 	new szVaultData[64], xp[33];
	format(szVaultData, charsmax(szVaultData), "%i#", xp_jucator[id]);

	nvault_get(g_Vault, nume_jucator[id], szVaultData, charsmax(szVaultData));
	replace_all(szVaultData, charsmax(szVaultData), "#", " ");

	parse(szVaultData, xp, charsmax(xp));
	xp_jucator[id] = str_to_num(xp);
	//nvault_close(g_Vault);
}

// STOCK'S
public set_user_items(id)
{
	if(!este_inviata[id])
		return;

	new rank[64];
	ArrayGetArray(levelmod, nivel_jucator[id], levelmoddata);
	
	if(equal(levelmoddata[Rank], ""))
		formatex(rank, charsmax(rank), "");
	else
		formatex(rank, charsmax(rank), "!4 ***!1 Rank:!3 %s", levelmoddata[Rank]);

	if(nivel_jucator[id] == nivel_maxim)
		ColorChat(id, "!4***!1 Level:!3 %d!4 ***!1 XP:!3 %d%s", nivel_maxim, xp_jucator[id], rank);
	else
		ColorChat(id, "!4***!1 Level:!3 %d!1/!3%d!4 ***!1 XP:!3 %d!1/!3%d%s", nivel_jucator[id], nivel_maxim, xp_jucator[id], levelmoddata[Experienta], rank);

	for(new i = 0; i < sizeof g_drop_weapons; i++)
		bacon_strip_weapon(id, g_drop_weapons[i]);

	// HEALTH
	set_user_health(id, clamp(levelmoddata[Viata], 10, 1000));
	
	// ARMOR
	new CsArmorType:ArmorType = CS_ARMOR_VESTHELM;
	cs_set_user_armor(id, clamp(levelmoddata[Armura], 0, 1000), ArmorType);
	
	// GRAVITY
	set_user_gravity(id, floatclamp(levelmoddata[Gravitatie] * 0.00125, 200.0 * 0.00125, 1000.0 * 0.00125));
	
	// FLASHBANGS
	if(levelmoddata[Flash] != 0)
	{
		give_item(id, "weapon_flashbang");
		if(levelmoddata[Flash] != 1)
			cs_set_user_bpammo(id, CSW_FLASHBANG, levelmoddata[Flash]);
	}

	// HE GRENADES
	if(levelmoddata[He] != 0)
	{
		give_item(id, "weapon_hegrenade");
		if(levelmoddata[He] != 1)
			cs_set_user_bpammo(id, CSW_HEGRENADE, levelmoddata[He]);
	}

	// SMOKE GRENADES
	if(levelmoddata[Smoke] != 0)
	{
		give_item(id, "weapon_smokegrenade");
		if(levelmoddata[Smoke] != 1)
			cs_set_user_bpammo(id, CSW_SMOKEGRENADE, levelmoddata[Smoke]);
	}
	
	ColorChat(id, "!3%s!1 Items: [!4%i HP!1] [!4%i AP!1] [!4%i Gravity!1] [!4%i Speed!1] [!4%i HE!1] [!4%i FB!1] [!4%i SM!1]", Tag,
	levelmoddata[Viata],
	levelmoddata[Armura],
	clamp(levelmoddata[Gravitatie], 200, 1000),
	clamp(levelmoddata[Viteza], 250, 600),
	levelmoddata[He],
	levelmoddata[Flash],
	levelmoddata[Smoke]);
}

stock make_user_happy(id, xp, update, save)
{
	if(!este_conectat[id])
		return PLUGIN_HANDLED;

	if(xp != 0)
	{
		xp_jucator[id] += xp;
		if(xp_jucator[id] <= 0) xp_jucator[id] = 0;
	}

	xpant_jucator[id] = xp_jucator[id];

	if(update) CheckUserLevel(id);
	if(save) SaveUserExperienta(id);

	return PLUGIN_CONTINUE;
}

stock calculeaza_nivel(id)
{
	new i, level = 1, bool:gasit = false;
	if(xp_jucator[id] != 0)
	{
		for(i = 1; i < nivel_maxim; i++)
		{
			ArrayGetArray(levelmod, i, levelmoddata);

			if(xp_jucator[id] < levelmoddata[Experienta])
			{
				level = i;
				gasit = true;
				break;
			}
		}
		if(!gasit) { level = nivel_maxim; }
	}
	else { level = 1; }
	
	return level; //clamp(level, 1, nivel_maxim);
}

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

stock fm_set_user_godmode(id, godmode = 0)
{
	set_pev(id, pev_takedamage, godmode == 1 ? DAMAGE_NO : DAMAGE_AIM);
	return PLUGIN_HANDLED;
}

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

stock bacon_strip_weapon(id, weapon[])
{
	if(!equal(weapon, "weapon_", 7))
		return PLUGIN_CONTINUE;

	static weaponid; weaponid = get_weaponid(weapon);
	if(!weaponid)
		return PLUGIN_CONTINUE;

	static weaponent; weaponent = fm_find_ent_by_owner(-1, weapon, id);
	if(!weaponent)
		return PLUGIN_CONTINUE;

	if(get_user_weapon(id) == weaponid) 
		ExecuteHamB(Ham_Weapon_RetireWeapon, weaponent);

	if(!ExecuteHamB(Ham_RemovePlayerItem, id, weaponent)) 
		return PLUGIN_CONTINUE;
	
	ExecuteHamB(Ham_Item_Kill, weaponent)
	set_pev(id, pev_weapons, pev(id, pev_weapons) & ~(1<<weaponid))

	return PLUGIN_HANDLED;
}

public CmdOpenHelpMenu(id)
{
	if(!este_conectat[id])
		return PLUGIN_HANDLED;
		
	OpenHelpMenu(id);
	return PLUGIN_CONTINUE;
}

public OpenHelpMenu(id)
{
	if(!este_conectat[id])
		return;

	new text_menu[128];
	formatex(text_menu, charsmax(text_menu), "\wMENIU\y AJUTOR^n\r%s", nume_host);
	new menu = menu_create(text_menu, "HelpHandler");
	
	menu_additem(menu, "GENERAL", "1", 0);
	menu_additem(menu, "VIATA", "2", 0);
	menu_additem(menu, "ARMURA", "3", 0);
	menu_additem(menu, "VITEZA", "4", 0);
	menu_additem(menu, "GRAVITATIE", "5", 0);
	menu_additem(menu, "GRENADE", "6", 0);
	
	menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
	menu_display(id, menu, 0);
}

public HelpHandler(id, menu, item)
{
	if(item == MENU_EXIT || !este_conectat[id])
	{
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}

	new data[6], name[64], access, CallBack;
	menu_item_getinfo(menu, item, access, data, charsmax(data), name, charsmax(name), CallBack);
	new iKey = str_to_num(data);

	switch(iKey)
	{
		case 1: OpenGeneralMotd(id);
		case 2: OpenHealthMotd(id);
		case 3: OpenArmorMotd(id);
		case 4: OpenSpeedMotd(id);
		case 5: OpenGravityMotd(id);
		case 6: OpenNadesMotd(id);
		default:
		{
			menu_destroy(menu);
			return PLUGIN_HANDLED;
		}
	}

	menu_destroy(menu);
	return PLUGIN_HANDLED;
}

public OpenGeneralMotd(id)
{
	new xp[128];
	ArrayGetArray(levelmod, nivel_jucator[id], levelmoddata);
	if(nivel_jucator[id] == nivel_maxim) formatex(xp, charsmax(xp), "<font color=#7D2579>%d</font>", xp_jucator[id]);
	else formatex(xp, charsmax(xp), "<font color=#7D2579>%d</font>/<font color=#7D2579>%d</font>", xp_jucator[id], levelmoddata[Experienta]);

	len = formatex(motd, charsmax(motd), "<html>");
	len += format(motd[len], sizeof(motd) - len - 1, "<style type=^"text/css^">");
	len += format(motd[len], sizeof(motd) - len - 1, "body{background-image: url(^"http://i52.tinypic.com/qoukhx.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}");
	len += format(motd[len], sizeof(motd) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>");
	len += format(motd[len], sizeof(motd) - len - 1, "<body><center><font face=Verdana size=2><b><br>"); // ^"
	len += format(motd[len], sizeof(motd) - len - 1, "<font size=4 color=#7D2579>%s<br>%s<br></font><br><br>", PLUGIN_NAME, nume_host);
	len += format(motd[len], sizeof(motd) - len - 1, "Acest server foloseste un nou game play, in care ai nevoie de <font color=#33CC33>XP</font> pentru a avansa in nivel. Daca ai adunat XP-ul suficient, atunci fii sigur ca ai trecut la urmatorul nivel.<br>");
	len += format(motd[len], sizeof(motd) - len - 1, "Acum ai %s XP si Level <font color=#7D2579>%d</font>.<br>", xp, nivel_jucator[id]);
	len += format(motd[len], sizeof(motd) - len - 1, "Nivelul maxim este <font color=#33CC33>%d</font>.<br><br>", nivel_maxim);
	len += format(motd[len], sizeof(motd) - len - 1, "<font color=red>Cum fac XP?</font><br>Este foarte simplu. Trebuie doar sa-ti elimini inamicii.<br>Mai jos este cantitatea de XP pe care o primesti:<br><br>", nivel_maxim);
	len += format(motd[len], sizeof(motd) - len - 1, "</center><table align=center width=50%% cellpadding=1 cellspacing=0>");
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><th width=40%%>Actiunea<th width=40%%>Arma<th width=40%%>Headshot<th width=40%%>XP");
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td>Omori un jucator</td><td>Toate</td><td>Nu</td><td>%d</td>", cvar_cache[0]);
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td></td><td>Toate</td><td>Da</td><td>%d</td>", cvar_cache[1]);
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td></td><td>HE</td><td>-</td><td>%d</td>", cvar_cache[4]);
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td></td><td>Cutit</td><td>Nu</td><td>%d</td>", cvar_cache[2]);
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td></td><td>Cutit</td><td>Da</td><td>%d</td>", cvar_cache[3]);
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td>Bmb Plant</td><td>C4</td><td>-</td><td>%d</td>", cvar_cache[5]);
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td>Bmb Defuse</td><td>C4</td><td>-</td><td>%d</td>", cvar_cache[6]);
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td>Bmb Explode</td><td>C4</td><td>-</td><td>%d</td>", cvar_cache[7]);
	len += format(motd[len], sizeof(motd) - len - 1, "</table></body></html>");
	show_motd(id, motd, "General Help");
}

public OpenHealthMotd(id)
{
	len = formatex(motd, charsmax(motd), "<html>");
	len += format(motd[len], sizeof(motd) - len - 1, "<style type=^"text/css^">");
	len += format(motd[len], sizeof(motd) - len - 1, "body{background-image: url(^"http://i52.tinypic.com/qoukhx.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}");
	len += format(motd[len], sizeof(motd) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>");
	len += format(motd[len], sizeof(motd) - len - 1, "<body><center><font face=Verdana size=2><b><br>"); // ^"
	len += format(motd[len], sizeof(motd) - len - 1, "<font size=4 color=#7D2579>%s<br>", PLUGIN_NAME);
	len += format(motd[len], sizeof(motd) - len - 1, "</font><br><br>");
	len += format(motd[len], sizeof(motd) - len - 1, "Aici se afla viata pe care o primesti in fiecare runda in functie de level-ul tau.<br>Acum te afli la level ");
	len += format(motd[len], sizeof(motd) - len - 1, "<font color=#33CC33>%d</font>.<br><br>", nivel_jucator[id]);
	len += format(motd[len], sizeof(motd) - len - 1, "</center><table align=center width=50%% cellpadding=1 cellspacing=0>");
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><th width=40%%>LEVEL<th width=40%%>HEALTH");

	new i;
	for(i = 1; i <= nivel_maxim; i++)
	{
		ArrayGetArray(levelmod, i, levelmoddata);
		len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td>%s%i%s</td><td>%s%i%s</td>", nivel_jucator[id] == i ? "<font color=#33CC33>" : "", i, nivel_jucator[id] == i ? "</font>" : "", nivel_jucator[id] == i ? "<font color=#33CC33>" : "", levelmoddata[Viata], nivel_jucator[id] == i ? "</font>" : "");
	}
	
	len += format(motd[len], sizeof(motd) - len - 1, "</table></body></html>");
	show_motd(id, motd, "Help Health");
}

public OpenArmorMotd(id)
{
	len = formatex(motd, charsmax(motd), "<html>");
	len += format(motd[len], sizeof(motd) - len - 1, "<style type=^"text/css^">");
	len += format(motd[len], sizeof(motd) - len - 1, "body{background-image: url(^"http://i52.tinypic.com/qoukhx.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}");
	len += format(motd[len], sizeof(motd) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>");
	len += format(motd[len], sizeof(motd) - len - 1, "<body><center><font face=Verdana size=2><b><br>"); // ^"
	len += format(motd[len], sizeof(motd) - len - 1, "<font size=4 color=#7D2579>%s<br>", PLUGIN_NAME);
	len += format(motd[len], sizeof(motd) - len - 1, "</font><br><br>");
	len += format(motd[len], sizeof(motd) - len - 1, "Aici se afla armura pe care o primesti in fiecare runda in functie de level-ul tau.<br>Acum te afli la level ");
	len += format(motd[len], sizeof(motd) - len - 1, "<font color=#33CC33>%d</font>.<br><br>", nivel_jucator[id]);
	len += format(motd[len], sizeof(motd) - len - 1, "</center><table align=center width=50%% cellpadding=1 cellspacing=0>");
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><th width=40%%>LEVEL<th width=40%%>ARMOR");

	new i;
	for(i = 1; i <= nivel_maxim; i++)
	{
		ArrayGetArray(levelmod, i, levelmoddata);
		len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td>%s%i%s</td><td>%s%i%s</td>", nivel_jucator[id] == i ? "<font color=#33CC33>" : "", i, nivel_jucator[id] == i ? "</font>" : "", nivel_jucator[id] == i ? "<font color=#33CC33>" : "", levelmoddata[Armura], nivel_jucator[id] == i ? "</font>" : "");
	}
	len += format(motd[len], sizeof(motd) - len - 1, "</table></body></html>");
	show_motd(id, motd, "Help Armor");
}

public OpenSpeedMotd(id)
{
	len = formatex(motd, charsmax(motd), "<html>");
	len += format(motd[len], sizeof(motd) - len - 1, "<style type=^"text/css^">");
	len += format(motd[len], sizeof(motd) - len - 1, "body{background-image: url(^"http://i52.tinypic.com/qoukhx.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}");
	len += format(motd[len], sizeof(motd) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>");
	len += format(motd[len], sizeof(motd) - len - 1, "<body><center><font face=Verdana size=2><b><br>"); // ^"
	len += format(motd[len], sizeof(motd) - len - 1, "<font size=4 color=#7D2579>%s<br>", PLUGIN_NAME);
	len += format(motd[len], sizeof(motd) - len - 1, "</font><br><br>");
	len += format(motd[len], sizeof(motd) - len - 1, "Aici se afla viteza pe care o primesti in fiecare runda in functie de level-ul tau.<br>Acum te afli la level ");
	len += format(motd[len], sizeof(motd) - len - 1, "<font color=#33CC33>%d</font>.<br><br>", nivel_jucator[id]);
	len += format(motd[len], sizeof(motd) - len - 1, "</center><table align=center width=50%% cellpadding=1 cellspacing=0>");
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><th width=40%%>LEVEL<th width=40%%>SPPED");

	new i;
	for(i = 1; i <= nivel_maxim; i++)
	{
		ArrayGetArray(levelmod, i, levelmoddata);
		len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td>%s%i%s</td><td>%s%i%s</td>", nivel_jucator[id] == i ? "<font color=#33CC33>" : "", i, nivel_jucator[id] == i ? "</font>" : "", nivel_jucator[id] == i ? "<font color=#33CC33>" : "", clamp(levelmoddata[Viteza], 250, 600), nivel_jucator[id] == i ? "</font>" : "");
	}
	len += format(motd[len], sizeof(motd) - len - 1, "</table></body></html>");
	show_motd(id, motd, "Help Speed");
}

public OpenGravityMotd(id)
{
	len = formatex(motd, charsmax(motd), "<html>");
	len += format(motd[len], sizeof(motd) - len - 1, "<style type=^"text/css^">");
	len += format(motd[len], sizeof(motd) - len - 1, "body{background-image: url(^"http://i52.tinypic.com/qoukhx.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}");
	len += format(motd[len], sizeof(motd) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>");
	len += format(motd[len], sizeof(motd) - len - 1, "<body><center><font face=Verdana size=2><b><br>"); // ^"
	len += format(motd[len], sizeof(motd) - len - 1, "<font size=4 color=#7D2579>%s<br>", PLUGIN_NAME);
	len += format(motd[len], sizeof(motd) - len - 1, "</font><br><br>");
	len += format(motd[len], sizeof(motd) - len - 1, "Aici se afla gravitatia pe care o primesti in fiecare runda in functie de level-ul tau.<br>Acum te afli la level ");
	len += format(motd[len], sizeof(motd) - len - 1, "<font color=#33CC33>%d</font>.<br><br>", nivel_jucator[id]);
	len += format(motd[len], sizeof(motd) - len - 1, "</center><table align=center width=50%% cellpadding=1 cellspacing=0>");
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><th width=40%%>LEVEL<th width=40%%>GRAVITY");

	new i;
	for(i = 1; i <= nivel_maxim; i++)
	{
		ArrayGetArray(levelmod, i, levelmoddata);
		len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td>%s%i%s</td><td>%s%i%s</td>", nivel_jucator[id] == i ? "<font color=#33CC33>" : "", i, nivel_jucator[id] == i ? "</font>" : "", nivel_jucator[id] == i ? "<font color=#33CC33>" : "", clamp(levelmoddata[Gravitatie], 200, 1000), nivel_jucator[id] == i ? "</font>" : "");
	}
	len += format(motd[len], sizeof(motd) - len - 1, "</table></body></html>");
	show_motd(id, motd, "Help Gravity");
}

public OpenNadesMotd(id)
{
	len = formatex(motd, charsmax(motd), "<html>");
	len += format(motd[len], sizeof(motd) - len - 1, "<style type=^"text/css^">");
	len += format(motd[len], sizeof(motd) - len - 1, "body{background-image: url(^"http://i52.tinypic.com/qoukhx.png^");font-family:Tahoma;font-size:15px;color:#FFFFFF;}");
	len += format(motd[len], sizeof(motd) - len - 1, "table{font-family:Tahoma;font-size:10px;color:#FFFFFF;}</style>");
	len += format(motd[len], sizeof(motd) - len - 1, "<body><center><font face=Verdana size=2><b><br>"); // ^"
	len += format(motd[len], sizeof(motd) - len - 1, "<font size=4 color=#7D2579>%s<br>", PLUGIN_NAME);
	len += format(motd[len], sizeof(motd) - len - 1, "</font><br><br>");
	len += format(motd[len], sizeof(motd) - len - 1, "Aici se afla grenadele pe care o primesti in fiecare runda in functie de level-ul tau.<br>Acum te afli la level ");
	len += format(motd[len], sizeof(motd) - len - 1, "<font color=#33CC33>%d</font>.<br><br>", nivel_jucator[id]);
	len += format(motd[len], sizeof(motd) - len - 1, "</center><table align=center width=50%% cellpadding=1 cellspacing=0>");
	len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><th width=40%%>LEVEL<th width=40%%>HE<th width=40%%>FB<th width=40%%>SM");

	new i;
	for(i = 1; i <= nivel_maxim; i++)
	{
		ArrayGetArray(levelmod, i, levelmoddata);
		len += format(motd[len], sizeof(motd) - len - 1, "<tr align=center><td>%s%i%s</td><td>%i</td><td>%i</td><td>%i</td>", nivel_jucator[id] == i ? "<font color=#33CC33>" : "", i, nivel_jucator[id] == i ? "</font>" : "", levelmoddata[He], levelmoddata[Flash], levelmoddata[Smoke]);
	}
	len += format(motd[len], sizeof(motd) - len - 1, "</table></body></html>");
	show_motd(id, motd, "Help Nades");
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/


ai aici pluginul meu. inca nu e terminat, dar e stabil. Urmeaza sa-l public zilele astea
setezi nivelele din levelmod.ini.
fisierul se creeaza automat in configs
l-am creat acum 3 ani, si m-am gandit sa-l public
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
ggamer302
Membru, skill 0
Membru, skill 0
Posts: 34
Joined: 02 Nov 2014, 12:13
Detinator Steam: Da
Detinator server CS: Inca nu.
SteamID: MR.PIKACHU
Fond eXtream: 0
Location: Suceava
Contact:

24 Mar 2018, 20:50

Merge perfect doar ca ai putea sa adaugi:
-pistoale si o linie pentru alte arme si sa adaugi cate gloante sa aiba?(adica sa aiba de ex 2 gloante si 0 incarcatoare)
-VIP, gen daca are flagul "t" sa primeasca xp dublu de la kill cu cutit/grenade/arme etc
-daca ai putea sa scoti sa nu se mai faca xp pe plantat/explodat/dezamorsat bomba sau o optiune in care sa dezactivezi unele metode de a face xp
-atunci cand mori sa pierzi experienta si sa faci leveldown daca nu mai ai experienta necesara
-sa poti sa primesti si o anumita suma de bani la fiecare nivel
-sa se poata da itemele dupa ce a trecut un anumit timp din runda, de exempu 5 secunde
ggamer302
Membru, skill 0
Membru, skill 0
Posts: 34
Joined: 02 Nov 2014, 12:13
Detinator Steam: Da
Detinator server CS: Inca nu.
SteamID: MR.PIKACHU
Fond eXtream: 0
Location: Suceava
Contact:

26 Mar 2018, 19:10

Up?
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

26 Mar 2018, 20:13

ggamer302 wrote:Merge perfect doar ca ai putea sa adaugi:
-pistoale si o linie pentru alte arme si sa adaugi cate gloante sa aiba?(adica sa aiba de ex 2 gloante si 0 incarcatoare)
-VIP, gen daca are flagul "t" sa primeasca xp dublu de la kill cu cutit/grenade/arme etc
-daca ai putea sa scoti sa nu se mai faca xp pe plantat/explodat/dezamorsat bomba sau o optiune in care sa dezactivezi unele metode de a face xp
-atunci cand mori sa pierzi experienta si sa faci leveldown daca nu mai ai experienta necesara
-sa poti sa primesti si o anumita suma de bani la fiecare nivel
-sa se poata da itemele dupa ce a trecut un anumit timp din runda, de exempu 5 secunde
Ai cvaruri in sma. Modifica le dupa bunul plac. Vipul face x2
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
ggamer302
Membru, skill 0
Membru, skill 0
Posts: 34
Joined: 02 Nov 2014, 12:13
Detinator Steam: Da
Detinator server CS: Inca nu.
SteamID: MR.PIKACHU
Fond eXtream: 0
Location: Suceava
Contact:

26 Mar 2018, 21:39

Bun, deci am facut exact cum mi-a placut, dar ramane cea cu banii si armele, ai putea tu sa le adaugi in plugin? Si cum as putea sa setez ca itemele sa se dea dupa un anumit timp de la inceperea rundei?
Si as avea o intrebare, pentru ca n-am avut cum sa testez mai exact, playerii cand mor pierd experienta?
User avatar
YONTU
Scripter eXtreamCS
Scripter eXtreamCS
Posts: 2466
Joined: 10 May 2013, 14:25
Detinator Steam: Nu
CS Status: Everyone is looking at ur shoes
Reputatie: Moderator ajutator
Fost scripter eXtreamCS
Location: Gura Humorului
Has thanked: 256 times
Been thanked: 288 times
Contact:

27 Mar 2018, 16:50

ggamer302 wrote:Bun, deci am facut exact cum mi-a placut, dar ramane cea cu banii si armele, ai putea tu sa le adaugi in plugin? Si cum as putea sa setez ca itemele sa se dea dupa un anumit timp de la inceperea rundei?
Si as avea o intrebare, pentru ca n-am avut cum sa testez mai exact, playerii cand mor pierd experienta?

Code: Select all

Bun, deci am facut exact cum mi-a placut, dar ramane cea cu banii si armele, ai putea tu sa le adaugi in plugin?
As putea, dar nu am timp de asa ceva pentru ca sunt ocupat, si nu imi pierd timpul cu prostii. Doar contra cost imi sacrific timpul meu pretios. Daca nu vrei asa, asteapta pana in iunie cand voi fi liber.

Code: Select all

Si cum as putea sa setez ca itemele sa se dea dupa un anumit timp de la inceperea rundei?
Deschide sma cu notepad, apasa CTRL + G, du-te la linia 392, modifica 1.0 in 5.0 sau cat vrei.

Code: Select all

Si as avea o intrebare, pentru ca n-am avut cum sa testez mai exact, playerii cand mor pierd experienta?
Nu pierd
„Peste douăzeci de ani vei fi dezamăgit din cauza lucrurilor pe care nu le-ai făcut, nu din cauza celor pe care le-ai făcut.” - Mark Twain
„Asa e si in viata, hotii castiga, prostii care invata pierd.” - Mihai Nemeș


Bio.LeagueCs.Ro - Biohazard v4.4 Xmas Edition
discord: IonutC#5114

Experinta in: Java/Spring boot/Angular/C/C++/C#/Javascript/Python/HTML/CSS/Pawn/SQL
Ai nevoie de ajutorul meu? Ma poti gasi doar la adresa de discord de mai sus.
Post Reply

Return to “Cereri”

  • Information
  • Who is online

    Users browsing this forum: No registered users and 20 guests