Cerere modificare plugin vip

Modificari necesare ale pluginurilor

Moderators: Moderatori ajutatori, Moderatori, Echipa eXtreamCS.com

Post Reply
User avatar
RealAlexanderTr
Membru, skill 0
Membru, skill 0
Posts: 26
Joined: 11 Aug 2018, 15:37
Detinator Steam: Da
CS Status: Citesc forumul eXtreamCS.com...!
Fond eXtream: 0
Contact:

23 Sep 2018, 10:54

Salutari.
As dorii sa adaugati un meniu cu arme din runda 3.
1.M4A1 +Deagle+ Echipament
2.AK-47 +Deagle+ Echipament
3.AWP +Deagle+ Echipament
.sma
| Afiseaza codul
[code]
/*
CREDITE:

ConnorMcLeod - pentru bullet damage
twistedeuphoria - pentru multi jump
*/

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

forward csgor_user_mvp(id, event, kills);
forward csgor_user_assist(assist, killer, victim, head);
native csgor_get_user_points(id);
native csgor_set_user_points(id, amount);
native csgor_get_user_keys(id);
native csgor_set_user_keys(id, amount);
native csgor_get_user_cases(id);
native csgor_set_user_cases(id, amount);

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

new const TAG[] = "[CS:GO Remake]";		// TAGUL IN CHAT CARE APARE

// Poti adauga mai multe harti, respectand matricea
new const restrcited_maps[][] =
{
	"35hp",
	"35hp_2",
	"31hp",
	"1hp",
	"100hp"
}

// --------------------------------------------
//   ------------- DE EDITAT ---------------
// --------------------------------------------

#define PLUGIN_NAME "VIP System API CSGOR"
#define PLUGIN_VERSION "1.0"
#define PLUGIN_AUTHOR "YONTU"

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

enum _:vip_data
{
	name[32],
	password[32]
}

enum cvars
{
	hp_spawn = 0,
	ap_spawn,
	show_vip_tab,
	money_spawn,
	money_kill,
	money_hs,
	show_bullet_dmg,
	multi_jump,
	cases,
	keys,
	points
}

new cvar[cvars];
new Array:vip_array;
new bool:is_user_vip[33], vips_number = 0;
new cvar_password_field;
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()
{
	register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR);
	register_cvar("vip_", PLUGIN_VERSION, FCVAR_SPONLY|FCVAR_SERVER);
	set_cvar_string("vip_", PLUGIN_VERSION);

	cvar_password_field = register_cvar("amxx_password_field", "_pw");

	register_event("DeathMsg", "event_DeathMsg", "a");
	register_event("Damage", "event_Damage", "b", "2>0", "3=0");

	register_forward(FM_ClientUserInfoChanged, "fw_ChangeName");

	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 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", "120");			// 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[money_spawn] = register_cvar("vip_money_bonus_spawn", "500");	// 0 = dezactivat
	cvar[money_kill] = register_cvar("vip_receive_money_kill", "500");	// 0 = dezactivat
	cvar[money_hs] = register_cvar("vip_receive_money_hs", "800");		// 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[cases] = register_cvar("vip_mvp_cases", "1");		// 0 = dezactivat
	cvar[keys] = register_cvar("vip_mvp_keys", "1");		// 0 = dezactivat
	cvar[points] = register_cvar("vip_assist_points", "10");	// 0 = dezactivat

	read_vip_file();

	max_players = get_maxplayers();
}

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

		format(format_txt, charsmax(format_txt), ";------------ | %s - Configuration file | ------------", PLUGIN_NAME);
		write_file(path, format_txt);
		format(format_txt, charsmax(format_txt), ";-------------------------- | by %s | --------------------------^n^n", PLUGIN_AUTHOR);
		write_file(path, format_txt);
		write_file(path, "; Exemplu de adaugare VIP:^n; ^"NUME^" ^"PAROLA^"^n^n^n");
	}
	
	if(vips_number)
	{
		ArrayClear(vip_array);
		vips_number = 0;
	}
	
	new text[121], p_name[32], p_password[32], vip_infos[vip_data];
	while(!feof(file))
	{
		fgets(file, text, charsmax(text));
		trim(text);
		
		if(text[0] == ';' || !strlen(text)) 
		{
			continue; 
		}
		
		if(parse(text, p_name, charsmax(p_name), p_password, charsmax(p_password)) != 2)
		{
			log_to_file("vip_errors.txt", "[AMXX] Nu am putut delimita linia (%s). Este scrisa gresit.", text);
			continue;
		}
		
		copy(vip_infos[name], charsmax(vip_infos), p_name);
		copy(vip_infos[password], charsmax(vip_infos), p_password);
		ArrayPushArray(vip_array, vip_infos);
		vips_number++;
	}
	
	fclose(file);
	
	switch(vips_number)
	{
		case 0: server_print("[AMXX] Nu am gasit nici un VIP in fisier.");
		default: server_print("[AMXX] Am incarcat %d VIP%s din fisier.", vips_number, vips_number == 1 ? "" : "I");
	}
}

public plugin_natives()
{
	vip_array = ArrayCreate(vip_data);
	
	register_native("is_user_vip", "native_is_user_vip", 1);
	register_native("set_user_vip", "native_set_user_vip", 1);
}

public plugin_end()
{
	ArrayDestroy(vip_array);
}

public native_is_user_vip(id)
{
	return is_user_vip[id];
}

public native_set_user_vip(id, bool:value)
{
	return is_user_vip[id] = (value == true) ? true : false;
}

public csgor_user_mvp(id, event, kills)
{
	if(is_user_alive(id) && is_user_vip[id])
	{
		new cvar1 = get_pcvar_num(cvar[cases]);
		if(cvar1 != 0)
			csgor_set_user_cases(id, csgor_get_user_cases(id) + cvar1);

		new cvar2 = get_pcvar_num(cvar[keys]);
		if(cvar2 != 0)
			csgor_set_user_keys(id, csgor_get_user_keys(id) + cvar2);

		ColorChat(id, "!4%s!1 Ai primit!3 %d!1 chei%s si!3 %d!1 %s.", TAG, cvar1, cvar1 == 1 ? "e" : "", cvar2, cvar2 == 1 ? "cufar" : "cufere");
	}
}

public csgor_user_assist(assist, killer, victim, head)
{
	new cvarp = get_pcvar_num(cvar[points]);
	if(cvarp != 0 && is_user_vip[assist] && is_user_alive(assist) && assist != killer)
	{
		csgor_set_user_points(assist, csgor_get_user_points(assist) + cvarp);
		ColorChat(assist, "!4%s!1 Ai primit!3 %d!1 puncte pentru asist.", TAG, cvarp);
	}
}

public client_disconnect(id)
{
	/*
	if(is_user_vip[id])
	{
		new name1[32];
		get_user_name(id, name1, charsmax(name1));
		ColorChat(0, "!4%s!1 VIP-ul!3 %s!1 s-a deconectat de pe server.", TAG, name1);
	}
	*/

	is_user_vip[id] = false;
}

public client_putinserver(id)
{
	new p_name[32], p_password_field[32], p_password[32];
	get_user_info(id, "name", p_name, charsmax(p_name));
	get_pcvar_string(cvar_password_field, p_password_field, charsmax(p_password_field));
	get_user_info(id, p_password_field, p_password, charsmax(p_password));
	
	is_user_vip[id] = false;
	new vip_infos[vip_data], i;
	
	for(i = 0; i < vips_number; i++)
	{
		ArrayGetArray(vip_array, i, vip_infos);
		
		if(equal(vip_infos[name], p_name))
		{
			if(equal(vip_infos[password], p_password))
			{
				is_user_vip[id] = true;
			}
			else
			{
				server_cmd("kick #%d ^"Parola gresita...^"", get_user_userid(id));
			}
			
			break;
		}
	}

	new map_name[32];
	get_mapname(map_name, charsmax(map_name));
	
	for(i = 0; i < sizeof(restrcited_maps); i++)
	{
		if(equali(map_name, restrcited_maps)) 
		{
			is_user_vip[id] = false;
			break;
		}
	}
	
	/*
	if(is_user_vip[id])
	{
		new name1[32];
		get_user_name(id, name1, charsmax(name1));
		ColorChat(0, "!4%s!1 VIP-ul!3 %s!1 s-a conectat pe server.", TAG, name1);
	}
	*/

	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)
			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) ? " | " : ".");
			//if(len > 96) ColorChat(id, message);
		}
		ColorChat(id, message);
	}
	else
	{
		len += format(message[len], 255 -len, "!4No one !")
		ColorChat(id, message);
	}

	return PLUGIN_CONTINUE;
}

public client_PreThink(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;
	
	new nbut = get_user_button(id);
	new obut = get_user_oldbutton(id);
	
	if((nbut & IN_JUMP) && !(get_entity_flags(id) & FL_ONGROUND) && !(obut & IN_JUMP))
	{
		if(g_JumpNum[id] < jump_num)
		{
			g_bJump[id] = true;
			g_JumpNum[id]++;
			return PLUGIN_CONTINUE;
		}
	}
	
	if((nbut & IN_JUMP) && (get_entity_flags(id) & FL_ONGROUND))
	{
		g_JumpNum[id] = 0;
		return PLUGIN_CONTINUE;
	}
	
	return PLUGIN_CONTINUE;
}

public client_PostThink(id)
{
	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);
	new victim = read_data(2);
	new headshot = read_data(3);
	new money = headshot ? get_pcvar_num(cvar[money_hs]) : get_pcvar_num(cvar[money_kill]);
	
	if(is_user_alive(killer) && is_user_vip[killer])
	{
		if(killer == victim) return PLUGIN_HANDLED;
		if(money != 0) cs_set_user_money(killer, clamp(cs_get_user_money(killer) + money - 300, 1, 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 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;

	if(get_pcvar_num(cvar[hp_spawn]) != 0) set_user_health(id, get_pcvar_num(cvar[hp_spawn]));
	if(get_pcvar_num(cvar[ap_spawn]) != 0) cs_set_user_armor(id, get_pcvar_num(cvar[ap_spawn]), CS_ARMOR_VESTHELM);
	if(get_pcvar_num(cvar[money_spawn]) != 0) cs_set_user_money(id, min(cs_get_user_money(id) + get_pcvar_num(cvar[money_spawn]), 16000));
	
	if(cs_get_user_team(id) == CS_TEAM_CT) cs_set_user_defuse(id);
	
	give_item(id, "weapon_hegrenade");
	give_item(id, "weapon_smokegrenade");
	give_item(id, "weapon_flashbang");
	cs_set_user_bpammo(id, CSW_FLASHBANG, 2);
}

// thx ConnorMcLeod
public fw_ChangeName(id)
{
	static old_name[32], new_name[32];
	pev(id, pev_netname, old_name, charsmax(old_name));
	
	if(old_name[0])
	{
		get_user_info(id, "name", new_name, charsmax(new_name));
		if(!equal(old_name, new_name))
		{
			client_putinserver(id);
		}
	}

	return FMRES_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 CmdPrintAttributes(id)
{
	if(!is_user_connected(id)) return;

	show_motd(id, "addons/amxmodx/configs/vip.html", "Beneficii VIP");
}

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();
	}
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1033\\ f0\\ fs16 \n\\ par }
*/
[/code]
RoyalServer
User avatar
Laurentiu P.
Fost moderator
Fost moderator
Posts: 2549
Joined: 10 Jul 2013, 21:26
Detinator Steam: Da
Reputatie: Fost super moderator
Fond eXtream: 100
Has thanked: 26 times
Been thanked: 62 times
Contact:

23 Sep 2018, 16:37

Mutat în categoria corespunzătoare.
no...
Post Reply

Return to “Modificari pluginuri”

  • Information