Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Plugin edit

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler


Konu Sahibi
Attenti0NNNNN*
Mesajlar: 186
Kayıt: Pzt Oca 29, 2018 3:08 pm

Plugin edit

Mesaj gönderen Attenti0NNNNN* »

SElamunaleyküm ekteki plugin fake ping plugini
ama ss teki hatayı veriyor size zahmet yapabilirmisiniz

https://i.hizliresim.com/QVaLZA.png
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.
En son Attenti0NNNNN* tarafından Pzr Şub 11, 2018 2:30 pm tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
Attenti0NNNNN*
Mesajlar: 186
Kayıt: Pzt Oca 29, 2018 3:08 pm

Plugin edit

Mesaj gönderen Attenti0NNNNN* »


Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
Attenti0NNNNN*
Mesajlar: 186
Kayıt: Pzt Oca 29, 2018 3:08 pm

Plugin edit

Mesaj gönderen Attenti0NNNNN* »

@Leooo @ShooTeR bi bakarmısınız kardeş size zahmet plugine
En son Attenti0NNNNN* tarafından Pzr Şub 11, 2018 2:48 pm tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

noeldayi
Mesajlar: 3167
Kayıt: Prş Oca 19, 2017 6:57 pm
Konum: 213.238.173.35
Server Ip/DNS: 213.238.173.35
Clan İsmi: Moon Gaming
İletişim:

Plugin edit

Mesaj gönderen noeldayi »

Kod: Tümünü seç

/*================================================================================
	
	----------------------
	-*- Ping Faker 1.4 -*-
	----------------------
	
	~~~~~~~~~~~~~~~
	- Description -
	~~~~~~~~~~~~~~~
	
	This plugin can fake the display of a player's latency (ping) shown on
	the scoreboard. Unlike the "fakelag" command, it does not affect the
	player's real latency in any way.
	
	You can have all players report the same ping, or only fake it for those
	who have a specific admin flag. This last feature is especially useful
	when running a dedicated server from your own computer, when you don't
	want people to guess you're an admin/owner by looking at your low ping.
	
	~~~~~~~~~
	- CVARS -
	~~~~~~~~~
	
	* pingfake_enable [0/1] - Enable/disable ping faking
	* pingfake_ping [1337] - The ping you want displayed (min: 0 // max: 4095)
	* pingfake_flux [0] - Fake ping fluctuation amount (0 = none)
	* pingfake_target [0/1] - Whether to display fake ping to its target too
	* pingfake_flags [""] - Affect players with these flags only (empty = all)
	* pingfake_bots [0/1/2] - Affect bots too (set to 2 for bots ONLY setting)
	* pingfake_multiplier [0.0] // Set this to have the fake ping be a multiple
	   of the player's real ping instead of fixed values (0.0 = disabled)
	
	Note: changes to these will take effect after a new round.
	
	~~~~~~~~~~~~
	- Commands -
	~~~~~~~~~~~~
	
	* amx_fakeping <target> <ping>
	   - Toggle fake ping override for player (use -1 to disable)
	
	You can also have players automatically get fake pings by editing the
	"fakepings.ini" file in your configs folder.
	
	~~~~~~~~
	- ToDo -
	~~~~~~~~
	
	* Find out exactly what the arguments for the SVC_PINGS message mean, so
	   as to send a single message with all pings on it and reduce bandwidth
	   usage (does the HLSDK say anything about those?)
	
	~~~~~~~~~~~~~~~~~~~
	- Developer Notes -
	~~~~~~~~~~~~~~~~~~~
	
	The SVC_PINGS message can't be intercepted by Metamod/AMXX (it is purely
	handled by the engine) so the only way to supercede it is to send our own
	custom message right after the original is fired. This works as long as
	the custom message is parsed AFTER the original. To achieve this here, we
	send it as an unreliable message (cl_messages 1 helps see arrival order).
	
	The next difficulty is in figuring out what the message arguments are.
	For this I did some trial and error until I finally got it working, though
	in a really odd way. I also can't seem to send all of the pings in a single
	message without getting weird results or triggering heaps of message
	parsing errors (namely svc_bad).
	
	A final consideration is bandwidth usage. I found out (with cl_shownet 1)
	the packet size increases by 102 bytes when the original SVC_PINGS message
	is sent for 32 players. Sending our own message right after means the size
	will grow even larger, so we should only send the message when absolutely
	needed. In this case that's once every client data update (any less often
	than that and the ping wasn't properly overridden sometimes).
	
	~~~~~~~~~~~~~
	- Changelog -
	~~~~~~~~~~~~~
	
	* v1.0: (Feb 23, 2009)
	   - Public release
	
	* v1.1: (Feb 23, 2009)
	   - Managed to send up to 3 pings on a single message,
	      thus reducing bandwidth usage by 26%
	
	* v1.2: (Feb 23, 2009)
	   - Added fake ping fluctuation and affect bots settings
	
	* v1.2a: (Feb 24, 2009)
	   - Fixed is_user_bot flag not being reset on disconnect
	
	* v1.3: (Feb 24, 2009)
	   - Added admin command to manually toggle fake ping for players
	   - Added feature to automatically load fake pings from file
	
	* v1.4: (Mar 15, 2009)
	   - Added feature (+CVAR) to have the fake ping be a multiple
	      of the player's real ping
	
=================================================================================*/

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

new const FAKEPINGS_FILE[] = "csplaguecom.ini"
const TASK_ARGUMENTS = 100

new cvar_enable, cvar_ping, cvar_flux, cvar_target, cvar_flags, cvar_bots, cvar_multiplier
new g_enable, g_ping, g_flux, g_target, g_flags, g_bots, Float:g_multiplier, g_maxplayers
new g_connected[33], g_isbot[33], g_offset[33][2], g_argping[33][3], g_hasflags[33]
new g_loaded_counter, cvar_showactivity, g_pingoverride[33] = { -1, ... }
new Array:g_loaded_authid, Array:g_loaded_ping

public plugin_init()
{
	register_plugin("Ping Faker", "1.4", "LockdowN")
	
	cvar_enable = register_cvar("pingfake_enable", "1")
	cvar_ping = register_cvar("pingfake_ping", "8")
	cvar_flux = register_cvar("pingfake_flux", "0")
	cvar_target = register_cvar("pingfake_target", "1")
	cvar_flags = register_cvar("pingfake_flags", "")
	cvar_bots = register_cvar("pingfake_bots", "0")
	cvar_multiplier = register_cvar("pingfake_multiplier", "0.5")
	cvar_showactivity = get_cvar_pointer("amx_show_activity")
	
	g_maxplayers = get_maxplayers()
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	register_forward(FM_UpdateClientData, "fw_UpdateClientData")
	
	register_concmd("amx_fakeping", "cmd_fakeping", ADMIN_KICK, "<target> <ping> - Toggle fake ping override on player (-1 to disable)")
	
	g_loaded_authid = ArrayCreate(32, 1)
	g_loaded_ping = ArrayCreate(1, 1)
	
	load_pings_from_file()
}

public plugin_cfg()
{
	// Cache CVARs after configs are loaded
	set_task(0.5, "event_round_start")
}

public event_round_start()
{
	// Cache CVAR values
	g_ping = get_pcvar_num(cvar_ping)
	g_flux = abs(get_pcvar_num(cvar_flux))
	g_target = get_pcvar_num(cvar_target)
	g_enable = get_pcvar_num(cvar_enable)
	g_bots = get_pcvar_num(cvar_bots)
	g_multiplier = get_pcvar_float(cvar_multiplier)
	
	// Calculate weird argument values based on target ping
	calculate_arguments()
	
	// Calculate them regularly if also faking ping fluctuations or if faking a multiple of the real ping
	remove_task(TASK_ARGUMENTS)
	if (g_flux || g_multiplier > 0.0) set_task(2.0, "calculate_arguments", TASK_ARGUMENTS, _, _, "b")
	
	// Cache flags
	new flags[6]
	get_pcvar_string(cvar_flags, flags, sizeof flags - 1)
	g_flags = read_flags(flags)
	
	// Check flags again for all players
	for (new id = 1; id <= g_maxplayers; id++)
		if (g_connected[id]) check_flags(id)
}

public client_authorized(id)
{
	check_for_loaded_pings(id)
	check_flags(id)
}

public client_infochanged(id)
{
	check_flags(id)
}

public client_putinserver(id)
{
	g_connected[id] = true
	if (is_user_bot(id)) g_isbot[id] = true
}

public client_disconnected(id)
{
	g_connected[id] = false
	g_isbot[id] = false
	g_pingoverride[id] = -1
	g_hasflags[id] = 0
}

public fw_UpdateClientData(id)
{
	// Ping faking disabled?
	if (!g_enable) return;
	
	// Scoreboard key being pressed?
	if (!(pev(id, pev_button) & IN_SCORE) && !(pev(id, pev_oldbuttons) & IN_SCORE))
		return;
	
	// Send fake player's pings
	static player, sending
	sending = 0
	for (player = 1; player <= g_maxplayers; player++)
	{
		// Player not in game?
		if (!g_connected[player])
			 continue;
		
		// Fake latency for its target too?
		if (!g_target && id == player)
			continue;
		
		// Only do these checks if not overriding ping for player
		if (g_pingoverride[player] < 0)
		{
			// Is this a bot?
			if (g_isbot[player])
			{
				// Bots setting disabled?
				if (!g_bots) continue;
			}
			else
			{
				// Bots only setting?
				if (g_bots == 2) continue;
				
				// Need to have specific flags?
				if (g_flags && !(g_hasflags[player]))
					continue;
			}
		}
		
		// Send message with the weird arguments
		switch (sending)
		{
			case 0:
			{
				// Start a new message
				message_begin(MSG_ONE_UNRELIABLE, SVC_PINGS, _, id)
				write_byte((g_offset[player][0] * 64) + (1 + 2 * (player - 1)))
				write_short(g_argping[player][0])
				sending++
			}
			case 1:
			{
				// Append additional data
				write_byte((g_offset[player][1] * 128) + (2 + 4 * (player - 1)))
				write_short(g_argping[player][1])
				sending++
			}
			case 2:
			{
				// Append additional data and end message
				write_byte((4 + 8 * (player - 1)))
				write_short(g_argping[player][2])
				write_byte(0)
				message_end()
				sending = 0
			}
		}
	}
	
	// End message if not yet sent
	if (sending)
	{
		write_byte(0)
		message_end()
	}
}

public cmd_fakeping(id, level, cid)
{
	// Check for access flag
	if (!cmd_access(id, level, cid, 3))
		return PLUGIN_HANDLED;
	
	// Retrieve arguments
	static arg[32], player, ping
	read_argv(1, arg, sizeof arg - 1)
	player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
	read_argv(2, arg, sizeof arg - 1)
	ping = str_to_num(arg)
	
	// Invalid target
	if (!player) return PLUGIN_HANDLED;
	
	// Update ping overrides for player
	g_pingoverride[player] = min(ping, 4095)
	calculate_arguments()
	
	// Get player's name for displaying/logging activity
	static name1[32], name2[32]
	get_user_name(id, name1, sizeof name1 - 1)
	get_user_name(player, name2, sizeof name2 - 1)
	
	// Negative value means disable fakeping
	if (ping < 0)
	{
		// Show activity?
		switch (get_pcvar_num(cvar_showactivity))
		{
			case 1: client_print(0, print_chat, "ADMIN - fake ping override disabled on %s", name2)
			case 2: client_print(0, print_chat, "ADMIN %s - fake ping override disabled on %s", name1, name2)
		}
		
		// Log activity
		static logdata[100], authid[32], ip[16]
		get_user_authid(id, authid, sizeof authid - 1)
		get_user_ip(id, ip, sizeof ip - 1, 1)
		formatex(logdata, sizeof logdata - 1, "ADMIN %s <%s><%s> - fake ping override disabled on %s", name1, authid, ip, name2)
		log_amx(logdata)
	}
	else
	{
		// Show activity?
		switch (get_pcvar_num(cvar_showactivity))
		{
			case 1: client_print(0, print_chat, "ADMIN - fake ping override of %d enabled on %s", ping, name2)
			case 2: client_print(0, print_chat, "ADMIN %s - fake ping override of %d enabled on %s", name1, ping, name2)
		}
		
		// Log activity
		static logdata[100], authid[32], ip[16]
		get_user_authid(id, authid, sizeof authid - 1)
		get_user_ip(id, ip, sizeof ip - 1, 1)
		formatex(logdata, sizeof logdata - 1, "ADMIN %s <%s><%s> - fake ping override of %d enabled on %s", name1, authid, ip, ping, name2)
		log_amx(logdata)
	}
	
	return PLUGIN_HANDLED;
}

public calculate_arguments()
{
	static player, ping, loss
	for (player = 1; player <= g_maxplayers; player++)
	{
		// Calculate target ping (clamp if out of bounds)
		if (g_pingoverride[player] < 0)
		{
			if (g_multiplier > 0.0)
			{
				get_user_ping(player, ping, loss)
				ping = clamp(floatround(ping * g_multiplier), 0, 4095)
			}
			else
				ping = clamp(g_ping + random_num(-g_flux, g_flux), 0, 4095)
		}
		else
			ping = g_pingoverride[player]
		
		// First argument's ping
		for (g_offset[player][0] = 0; g_offset[player][0] < 4; g_offset[player][0]++)
		{
			if ((ping - g_offset[player][0]) % 4 == 0)
			{
				g_argping[player][0] = (ping - g_offset[player][0]) / 4
				break;
			}
		}
		// Second argument's ping
		for (g_offset[player][1] = 0; g_offset[player][1] < 2; g_offset[player][1]++)
		{
			if ((ping - g_offset[player][1]) % 2 == 0)
			{
				g_argping[player][1] = (ping - g_offset[player][1]) / 2
				break;
			}
		}
		// Third argument's ping
		g_argping[player][2] = ping
	}
}

load_pings_from_file()
{
	// Build file path
	new path[64]
	get_configsdir(path, sizeof path - 1)
	format(path, sizeof path - 1, "%s/%s", path, FAKEPINGS_FILE)
	
	// File not present, skip loading
	if (!file_exists(path)) return;
	
	// Open file for reading
	new linedata[40], authid[32], ping[8], file = fopen(path, "rt")
	
	while (file && !feof(file))
	{
		// Read one line at a time
		fgets(file, linedata, sizeof linedata - 1)
		
		// Replace newlines with a null character to prevent headaches
		replace(linedata, sizeof linedata - 1, "^n", "")
		
		// Blank line or comment
		if (!linedata[0] || linedata[0] == ';') continue;
		
		// Get authid and ping
		arbreak(linedata, authid, sizeof authid - 1, ping, sizeof ping -1)
		remove_quotes(ping)
		
		// Store data into global arrays
		ArrayPushString(g_loaded_authid, authid)
		ArrayPushCell(g_loaded_ping, clamp(str_to_num(ping), 0, 4095))
		
		// Increase loaded data counter
		g_loaded_counter++
	}
	if (file) fclose(file)
}

check_for_loaded_pings(id)
{
	// Nothing to check for
	if (g_loaded_counter <= 0) return;
	
	// Get steamid and ip
	static authid[32], ip[16], i, buffer[32]
	get_user_authid(id, authid, sizeof authid - 1)
	get_user_ip(id, ip, sizeof ip - 1, 1)
	
	for (i = 0; i < g_loaded_counter; i++)
	{
		// Retrieve authid
		ArrayGetString(g_loaded_authid, i, buffer, sizeof buffer - 1)
		
		// Compare it with this player's steamid and ip
		if (equali(buffer, authid) || equal(buffer, ip))
		{
			// We've got a match!
			g_pingoverride[id] = ArrayGetCell(g_loaded_ping, i)
			calculate_arguments()
			break;
		}
	}
}

check_flags(id)
{
	g_hasflags[id] = get_user_flags(id) & g_flags
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
denermisin

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
Attenti0NNNNN*
Mesajlar: 186
Kayıt: Pzt Oca 29, 2018 3:08 pm

Plugin edit

Mesaj gönderen Attenti0NNNNN* »

https://i.hizliresim.com/vjb69R.png bu sefer böyle hata verdi @noeldayi

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

noeldayi
Mesajlar: 3167
Kayıt: Prş Oca 19, 2017 6:57 pm
Konum: 213.238.173.35
Server Ip/DNS: 213.238.173.35
Clan İsmi: Moon Gaming
İletişim:

Plugin edit

Mesaj gönderen noeldayi »

Kod: Tümünü seç

/*================================================================================
	
	----------------------
	-*- Ping Faker 1.4 -*-
	----------------------
	
	~~~~~~~~~~~~~~~
	- Description -
	~~~~~~~~~~~~~~~
	
	This plugin can fake the display of a player's latency (ping) shown on
	the scoreboard. Unlike the "fakelag" command, it does not affect the
	player's real latency in any way.
	
	You can have all players report the same ping, or only fake it for those
	who have a specific admin flag. This last feature is especially useful
	when running a dedicated server from your own computer, when you don't
	want people to guess you're an admin/owner by looking at your low ping.
	
	~~~~~~~~~
	- CVARS -
	~~~~~~~~~
	
	* pingfake_enable [0/1] - Enable/disable ping faking
	* pingfake_ping [1337] - The ping you want displayed (min: 0 // max: 4095)
	* pingfake_flux [0] - Fake ping fluctuation amount (0 = none)
	* pingfake_target [0/1] - Whether to display fake ping to its target too
	* pingfake_flags [""] - Affect players with these flags only (empty = all)
	* pingfake_bots [0/1/2] - Affect bots too (set to 2 for bots ONLY setting)
	* pingfake_multiplier [0.0] // Set this to have the fake ping be a multiple
	   of the player's real ping instead of fixed values (0.0 = disabled)
	
	Note: changes to these will take effect after a new round.
	
	~~~~~~~~~~~~
	- Commands -
	~~~~~~~~~~~~
	
	* amx_fakeping <target> <ping>
	   - Toggle fake ping override for player (use -1 to disable)
	
	You can also have players automatically get fake pings by editing the
	"fakepings.ini" file in your configs folder.
	
	~~~~~~~~
	- ToDo -
	~~~~~~~~
	
	* Find out exactly what the arguments for the SVC_PINGS message mean, so
	   as to send a single message with all pings on it and reduce bandwidth
	   usage (does the HLSDK say anything about those?)
	
	~~~~~~~~~~~~~~~~~~~
	- Developer Notes -
	~~~~~~~~~~~~~~~~~~~
	
	The SVC_PINGS message can't be intercepted by Metamod/AMXX (it is purely
	handled by the engine) so the only way to supercede it is to send our own
	custom message right after the original is fired. This works as long as
	the custom message is parsed AFTER the original. To achieve this here, we
	send it as an unreliable message (cl_messages 1 helps see arrival order).
	
	The next difficulty is in figuring out what the message arguments are.
	For this I did some trial and error until I finally got it working, though
	in a really odd way. I also can't seem to send all of the pings in a single
	message without getting weird results or triggering heaps of message
	parsing errors (namely svc_bad).
	
	A final consideration is bandwidth usage. I found out (with cl_shownet 1)
	the packet size increases by 102 bytes when the original SVC_PINGS message
	is sent for 32 players. Sending our own message right after means the size
	will grow even larger, so we should only send the message when absolutely
	needed. In this case that's once every client data update (any less often
	than that and the ping wasn't properly overridden sometimes).
	
	~~~~~~~~~~~~~
	- Changelog -
	~~~~~~~~~~~~~
	
	* v1.0: (Feb 23, 2009)
	   - Public release
	
	* v1.1: (Feb 23, 2009)
	   - Managed to send up to 3 pings on a single message,
	      thus reducing bandwidth usage by 26%
	
	* v1.2: (Feb 23, 2009)
	   - Added fake ping fluctuation and affect bots settings
	
	* v1.2a: (Feb 24, 2009)
	   - Fixed is_user_bot flag not being reset on disconnect
	
	* v1.3: (Feb 24, 2009)
	   - Added admin command to manually toggle fake ping for players
	   - Added feature to automatically load fake pings from file
	
	* v1.4: (Mar 15, 2009)
	   - Added feature (+CVAR) to have the fake ping be a multiple
	      of the player's real ping
	
=================================================================================*/

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

new const FAKEPINGS_FILE[] = "csplaguecom.ini"
const TASK_ARGUMENTS = 100

new cvar_enable, cvar_ping, cvar_flux, cvar_target, cvar_flags, cvar_bots, cvar_multiplier
new g_enable, g_ping, g_flux, g_target, g_flags, g_bots, Float:g_multiplier, g_maxplayers
new g_connected[33], g_isbot[33], g_offset[33][2], g_argping[33][3], g_hasflags[33]
new g_loaded_counter, cvar_showactivity, g_pingoverride[33] = { -1, ... }
new Array:g_loaded_authid, Array:g_loaded_ping

public plugin_init()
{
	register_plugin("Ping Faker", "1.4", "LockdowN")
	
	cvar_enable = register_cvar("pingfake_enable", "1")
	cvar_ping = register_cvar("pingfake_ping", "8")
	cvar_flux = register_cvar("pingfake_flux", "0")
	cvar_target = register_cvar("pingfake_target", "1")
	cvar_flags = register_cvar("pingfake_flags", "")
	cvar_bots = register_cvar("pingfake_bots", "0")
	cvar_multiplier = register_cvar("pingfake_multiplier", "0.5")
	cvar_showactivity = get_cvar_pointer("amx_show_activity")
	
	g_maxplayers = get_maxplayers()
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	register_forward(FM_UpdateClientData, "fw_UpdateClientData")
	
	register_concmd("amx_fakeping", "cmd_fakeping", ADMIN_KICK, "<target> <ping> - Toggle fake ping override on player (-1 to disable)")
	
	g_loaded_authid = ArrayCreate(32, 1)
	g_loaded_ping = ArrayCreate(1, 1)
	
	load_pings_from_file()
}

public plugin_cfg()
{
	// Cache CVARs after configs are loaded
	set_task(0.5, "event_round_start")
}

public event_round_start()
{
	// Cache CVAR values
	g_ping = get_pcvar_num(cvar_ping)
	g_flux = abs(get_pcvar_num(cvar_flux))
	g_target = get_pcvar_num(cvar_target)
	g_enable = get_pcvar_num(cvar_enable)
	g_bots = get_pcvar_num(cvar_bots)
	g_multiplier = get_pcvar_float(cvar_multiplier)
	
	// Calculate weird argument values based on target ping
	calculate_arguments()
	
	// Calculate them regularly if also faking ping fluctuations or if faking a multiple of the real ping
	remove_task(TASK_ARGUMENTS)
	if (g_flux || g_multiplier > 0.0) set_task(2.0, "calculate_arguments", TASK_ARGUMENTS, _, _, "b")
	
	// Cache flags
	new flags[6]
	get_pcvar_string(cvar_flags, flags, sizeof flags - 1)
	g_flags = read_flags(flags)
	
	// Check flags again for all players
	for (new id = 1; id <= g_maxplayers; id++)
		if (g_connected[id]) check_flags(id)
}

public client_authorized(id)
{
	check_for_loaded_pings(id)
	check_flags(id)
}

public client_infochanged(id)
{
	check_flags(id)
}

public client_putinserver(id)
{
	g_connected[id] = true
	if (is_user_bot(id)) g_isbot[id] = true
}

public client_disconnected(id)
{
	g_connected[id] = false
	g_isbot[id] = false
	g_pingoverride[id] = -1
	g_hasflags[id] = 0
}

public fw_UpdateClientData(id)
{
	// Ping faking disabled?
	if (!g_enable) return;
	
	// Scoreboard key being pressed?
	if (!(pev(id, pev_button) & IN_SCORE) && !(pev(id, pev_oldbuttons) & IN_SCORE))
		return;
	
	// Send fake player's pings
	static player, sending
	sending = 0
	for (player = 1; player <= g_maxplayers; player++)
	{
		// Player not in game?
		if (!g_connected[player])
			 continue;
		
		// Fake latency for its target too?
		if (!g_target && id == player)
			continue;
		
		// Only do these checks if not overriding ping for player
		if (g_pingoverride[player] < 0)
		{
			// Is this a bot?
			if (g_isbot[player])
			{
				// Bots setting disabled?
				if (!g_bots) continue;
			}
			else
			{
				// Bots only setting?
				if (g_bots == 2) continue;
				
				// Need to have specific flags?
				if (g_flags && !(g_hasflags[player]))
					continue;
			}
		}
		
		// Send message with the weird arguments
		switch (sending)
		{
			case 0:
			{
				// Start a new message
				message_begin(MSG_ONE_UNRELIABLE, SVC_PINGS, _, id)
				write_byte((g_offset[player][0] * 64) + (1 + 2 * (player - 1)))
				write_short(g_argping[player][0])
				sending++
			}
			case 1:
			{
				// Append additional data
				write_byte((g_offset[player][1] * 128) + (2 + 4 * (player - 1)))
				write_short(g_argping[player][1])
				sending++
			}
			case 2:
			{
				// Append additional data and end message
				write_byte((4 + 8 * (player - 1)))
				write_short(g_argping[player][2])
				write_byte(0)
				message_end()
				sending = 0
			}
		}
	}
	
	// End message if not yet sent
	if (sending)
	{
		write_byte(0)
		message_end()
	}
}

public cmd_fakeping(id, level, cid)
{
	// Check for access flag
	if (!cmd_access(id, level, cid, 3))
		return PLUGIN_HANDLED;
	
	// Retrieve arguments
	static arg[32], player, ping
	read_argv(1, arg, sizeof arg - 1)
	player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
	read_argv(2, arg, sizeof arg - 1)
	ping = str_to_num(arg)
	
	// Invalid target
	if (!player) return PLUGIN_HANDLED;
	
	// Update ping overrides for player
	g_pingoverride[player] = min(ping, 4095)
	calculate_arguments()
	
	// Get player's name for displaying/logging activity
	static name1[32], name2[32]
	get_user_name(id, name1, sizeof name1 - 1)
	get_user_name(player, name2, sizeof name2 - 1)
	
	// Negative value means disable fakeping
	if (ping < 0)
	{
		// Show activity?
		switch (get_pcvar_num(cvar_showactivity))
		{
			case 1: client_print(0, print_chat, "ADMIN - fake ping override disabled on %s", name2)
			case 2: client_print(0, print_chat, "ADMIN %s - fake ping override disabled on %s", name1, name2)
		}
		
		// Log activity
		static logdata[100], authid[32], ip[16]
		get_user_authid(id, authid, sizeof authid - 1)
		get_user_ip(id, ip, sizeof ip - 1, 1)
		formatex(logdata, sizeof logdata - 1, "ADMIN %s <%s><%s> - fake ping override disabled on %s", name1, authid, ip, name2)
		log_amx(logdata)
	}
	else
	{
		// Show activity?
		switch (get_pcvar_num(cvar_showactivity))
		{
			case 1: client_print(0, print_chat, "ADMIN - fake ping override of %d enabled on %s", ping, name2)
			case 2: client_print(0, print_chat, "ADMIN %s - fake ping override of %d enabled on %s", name1, ping, name2)
		}
		
		// Log activity
		static logdata[100], authid[32], ip[16]
		get_user_authid(id, authid, sizeof authid - 1)
		get_user_ip(id, ip, sizeof ip - 1, 1)
		formatex(logdata, sizeof logdata - 1, "ADMIN %s <%s><%s> - fake ping override of %d enabled on %s", name1, authid, ip, ping, name2)
		log_amx(logdata)
	}
	
	return PLUGIN_HANDLED;
}

public calculate_arguments()
{
	static player, ping, loss
	for (player = 1; player <= g_maxplayers; player++)
	{
		// Calculate target ping (clamp if out of bounds)
		if (g_pingoverride[player] < 0)
		{
			if (g_multiplier > 0.0)
			{
				get_user_ping(player, ping, loss)
				ping = clamp(floatround(ping * g_multiplier), 0, 4095)
			}
			else
				ping = clamp(g_ping + random_num(-g_flux, g_flux), 0, 4095)
		}
		else
			ping = g_pingoverride[player]
		
		// First argument's ping
		for (g_offset[player][0] = 0; g_offset[player][0] < 4; g_offset[player][0]++)
		{
			if ((ping - g_offset[player][0]) % 4 == 0)
			{
				g_argping[player][0] = (ping - g_offset[player][0]) / 4
				break;
			}
		}
		// Second argument's ping
		for (g_offset[player][1] = 0; g_offset[player][1] < 2; g_offset[player][1]++)
		{
			if ((ping - g_offset[player][1]) % 2 == 0)
			{
				g_argping[player][1] = (ping - g_offset[player][1]) / 2
				break;
			}
		}
		// Third argument's ping
		g_argping[player][2] = ping
	}
}

load_pings_from_file()
{
	// Build file path
	new path[64]
	get_configsdir(path, sizeof path - 1)
	format(path, sizeof path - 1, "%s/%s", path, FAKEPINGS_FILE)
	
	// File not present, skip loading
	if (!file_exists(path)) return;
	
	// Open file for reading
	new linedata[40], authid[32], ping[8], file = fopen(path, "rt")
	
	while (file && !feof(file))
	{
		// Read one line at a time
		fgets(file, linedata, sizeof linedata - 1)
		
		// Replace newlines with a null character to prevent headaches
		replace(linedata, sizeof linedata - 1, "^n", "")
		
		// Blank line or comment
		if (!linedata[0] || linedata[0] == ';') continue;
		
		// Get authid and ping
		argbreak(linedata, authid, sizeof authid - 1, ping, sizeof ping -1)
		remove_quotes(ping)
		
		// Store data into global arrays
		ArrayPushString(g_loaded_authid, authid)
		ArrayPushCell(g_loaded_ping, clamp(str_to_num(ping), 0, 4095))
		
		// Increase loaded data counter
		g_loaded_counter++
	}
	if (file) fclose(file)
}

check_for_loaded_pings(id)
{
	// Nothing to check for
	if (g_loaded_counter <= 0) return;
	
	// Get steamid and ip
	static authid[32], ip[16], i, buffer[32]
	get_user_authid(id, authid, sizeof authid - 1)
	get_user_ip(id, ip, sizeof ip - 1, 1)
	
	for (i = 0; i < g_loaded_counter; i++)
	{
		// Retrieve authid
		ArrayGetString(g_loaded_authid, i, buffer, sizeof buffer - 1)
		
		// Compare it with this player's steamid and ip
		if (equali(buffer, authid) || equal(buffer, ip))
		{
			// We've got a match!
			g_pingoverride[id] = ArrayGetCell(g_loaded_ping, i)
			calculate_arguments()
			break;
		}
	}
}

check_flags(id)
{
	g_hasflags[id] = get_user_flags(id) & g_flags
}
/* AMXX-Studio Notes - DO NOT MODIFY BELOW HERE
*{\\ rtf1\\ ansi\\ deff0{\\ fonttbl{\\ f0\\ fnil Tahoma;}}\n\\ viewkind4\\ uc1\\ pard\\ lang1055\\ f0\\ fs16 \n\\ par }
*/
şimdi dene

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

ENESIZM
Mesajlar: 2193
Kayıt: Prş Tem 06, 2017 10:44 pm
Konum: Mersin
Server Ip/DNS: MoonDeveloperTeam
İletişim:

Plugin edit

Mesaj gönderen ENESIZM »

Kod: Tümünü seç

/*================================================================================
	
	----------------------
	-*- Ping Faker 1.4 -*-
	----------------------
	
	~~~~~~~~~~~~~~~
	- Description -
	~~~~~~~~~~~~~~~
	
	This plugin can fake the display of a player's latency (ping) shown on
	the scoreboard. Unlike the "fakelag" command, it does not affect the
	player's real latency in any way.
	
	You can have all players report the same ping, or only fake it for those
	who have a specific admin flag. This last feature is especially useful
	when running a dedicated server from your own computer, when you don't
	want people to guess you're an admin/owner by looking at your low ping.
	
	~~~~~~~~~
	- CVARS -
	~~~~~~~~~
	
	* pingfake_enable [0/1] - Enable/disable ping faking
	* pingfake_ping [1337] - The ping you want displayed (min: 0 // max: 4095)
	* pingfake_flux [0] - Fake ping fluctuation amount (0 = none)
	* pingfake_target [0/1] - Whether to display fake ping to its target too
	* pingfake_flags [""] - Affect players with these flags only (empty = all)
	* pingfake_bots [0/1/2] - Affect bots too (set to 2 for bots ONLY setting)
	* pingfake_multiplier [0.0] // Set this to have the fake ping be a multiple
	   of the player's real ping instead of fixed values (0.0 = disabled)
	
	Note: changes to these will take effect after a new round.
	
	~~~~~~~~~~~~
	- Commands -
	~~~~~~~~~~~~
	
	* amx_fakeping <target> <ping>
	   - Toggle fake ping override for player (use -1 to disable)
	
	You can also have players automatically get fake pings by editing the
	"fakepings.ini" file in your configs folder.
	
	~~~~~~~~
	- ToDo -
	~~~~~~~~
	
	* Find out exactly what the arguments for the SVC_PINGS message mean, so
	   as to send a single message with all pings on it and reduce bandwidth
	   usage (does the HLSDK say anything about those?)
	
	~~~~~~~~~~~~~~~~~~~
	- Developer Notes -
	~~~~~~~~~~~~~~~~~~~
	
	The SVC_PINGS message can't be intercepted by Metamod/AMXX (it is purely
	handled by the engine) so the only way to supercede it is to send our own
	custom message right after the original is fired. This works as long as
	the custom message is parsed AFTER the original. To achieve this here, we
	send it as an unreliable message (cl_messages 1 helps see arrival order).
	
	The next difficulty is in figuring out what the message arguments are.
	For this I did some trial and error until I finally got it working, though
	in a really odd way. I also can't seem to send all of the pings in a single
	message without getting weird results or triggering heaps of message
	parsing errors (namely svc_bad).
	
	A final consideration is bandwidth usage. I found out (with cl_shownet 1)
	the packet size increases by 102 bytes when the original SVC_PINGS message
	is sent for 32 players. Sending our own message right after means the size
	will grow even larger, so we should only send the message when absolutely
	needed. In this case that's once every client data update (any less often
	than that and the ping wasn't properly overridden sometimes).
	
	~~~~~~~~~~~~~
	- Changelog -
	~~~~~~~~~~~~~
	
	* v1.0: (Feb 23, 2009)
	   - Public release
	
	* v1.1: (Feb 23, 2009)
	   - Managed to send up to 3 pings on a single message,
	      thus reducing bandwidth usage by 26%
	
	* v1.2: (Feb 23, 2009)
	   - Added fake ping fluctuation and affect bots settings
	
	* v1.2a: (Feb 24, 2009)
	   - Fixed is_user_bot flag not being reset on disconnect
	
	* v1.3: (Feb 24, 2009)
	   - Added admin command to manually toggle fake ping for players
	   - Added feature to automatically load fake pings from file
	
	* v1.4: (Mar 15, 2009)
	   - Added feature (+CVAR) to have the fake ping be a multiple
	      of the player's real ping
	
=================================================================================*/

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define argbreak

new const FAKEPINGS_FILE[] = "csplaguecom.ini"
const TASK_ARGUMENTS = 100

new cvar_enable, cvar_ping, cvar_flux, cvar_target, cvar_flags, cvar_bots, cvar_multiplier
new g_enable, g_ping, g_flux, g_target, g_flags, g_bots, Float:g_multiplier, g_maxplayers
new g_connected[33], g_isbot[33], g_offset[33][2], g_argping[33][3], g_hasflags[33]
new g_loaded_counter, cvar_showactivity, g_pingoverride[33] = { -1, ... }
new Array:g_loaded_authid, Array:g_loaded_ping

public plugin_init()
{
	register_plugin("Ping Faker", "1.4", "LockdowN")
	
	cvar_enable = register_cvar("pingfake_enable", "1")
	cvar_ping = register_cvar("pingfake_ping", "8")
	cvar_flux = register_cvar("pingfake_flux", "0")
	cvar_target = register_cvar("pingfake_target", "1")
	cvar_flags = register_cvar("pingfake_flags", "")
	cvar_bots = register_cvar("pingfake_bots", "0")
	cvar_multiplier = register_cvar("pingfake_multiplier", "0.5")
	cvar_showactivity = get_cvar_pointer("amx_show_activity")
	
	g_maxplayers = get_maxplayers()
	
	register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
	register_forward(FM_UpdateClientData, "fw_UpdateClientData")
	
	register_concmd("amx_fakeping", "cmd_fakeping", ADMIN_KICK, "<target> <ping> - Toggle fake ping override on player (-1 to disable)")
	
	g_loaded_authid = ArrayCreate(32, 1)
	g_loaded_ping = ArrayCreate(1, 1)
	
	load_pings_from_file()
}

public plugin_cfg()
{
	// Cache CVARs after configs are loaded
	set_task(0.5, "event_round_start")
}

public event_round_start()
{
	// Cache CVAR values
	g_ping = get_pcvar_num(cvar_ping)
	g_flux = abs(get_pcvar_num(cvar_flux))
	g_target = get_pcvar_num(cvar_target)
	g_enable = get_pcvar_num(cvar_enable)
	g_bots = get_pcvar_num(cvar_bots)
	g_multiplier = get_pcvar_float(cvar_multiplier)
	
	// Calculate weird argument values based on target ping
	calculate_arguments()
	
	// Calculate them regularly if also faking ping fluctuations or if faking a multiple of the real ping
	remove_task(TASK_ARGUMENTS)
	if (g_flux || g_multiplier > 0.0) set_task(2.0, "calculate_arguments", TASK_ARGUMENTS, _, _, "b")
	
	// Cache flags
	new flags[6]
	get_pcvar_string(cvar_flags, flags, sizeof flags - 1)
	g_flags = read_flags(flags)
	
	// Check flags again for all players
	for (new id = 1; id <= g_maxplayers; id++)
		if (g_connected[id]) check_flags(id)
}

public client_authorized(id)
{
	check_for_loaded_pings(id)
	check_flags(id)
}

public client_infochanged(id)
{
	check_flags(id)
}

public client_putinserver(id)
{
	g_connected[id] = true
	if (is_user_bot(id)) g_isbot[id] = true
}

public client_disconnected(id)
{
	g_connected[id] = false
	g_isbot[id] = false
	g_pingoverride[id] = -1
	g_hasflags[id] = 0
}

public fw_UpdateClientData(id)
{
	// Ping faking disabled?
	if (!g_enable) return;
	
	// Scoreboard key being pressed?
	if (!(pev(id, pev_button) & IN_SCORE) && !(pev(id, pev_oldbuttons) & IN_SCORE))
		return;
	
	// Send fake player's pings
	static player, sending
	sending = 0
	for (player = 1; player <= g_maxplayers; player++)
	{
		// Player not in game?
		if (!g_connected[player])
			 continue;
		
		// Fake latency for its target too?
		if (!g_target && id == player)
			continue;
		
		// Only do these checks if not overriding ping for player
		if (g_pingoverride[player] < 0)
		{
			// Is this a bot?
			if (g_isbot[player])
			{
				// Bots setting disabled?
				if (!g_bots) continue;
			}
			else
			{
				// Bots only setting?
				if (g_bots == 2) continue;
				
				// Need to have specific flags?
				if (g_flags && !(g_hasflags[player]))
					continue;
			}
		}
		
		// Send message with the weird arguments
		switch (sending)
		{
			case 0:
			{
				// Start a new message
				message_begin(MSG_ONE_UNRELIABLE, SVC_PINGS, _, id)
				write_byte((g_offset[player][0] * 64) + (1 + 2 * (player - 1)))
				write_short(g_argping[player][0])
				sending++
			}
			case 1:
			{
				// Append additional data
				write_byte((g_offset[player][1] * 128) + (2 + 4 * (player - 1)))
				write_short(g_argping[player][1])
				sending++
			}
			case 2:
			{
				// Append additional data and end message
				write_byte((4 + 8 * (player - 1)))
				write_short(g_argping[player][2])
				write_byte(0)
				message_end()
				sending = 0
			}
		}
	}
	
	// End message if not yet sent
	if (sending)
	{
		write_byte(0)
		message_end()
	}
}

public cmd_fakeping(id, level, cid)
{
	// Check for access flag
	if (!cmd_access(id, level, cid, 3))
		return PLUGIN_HANDLED;
	
	// Retrieve arguments
	static arg[32], player, ping
	read_argv(1, arg, sizeof arg - 1)
	player = cmd_target(id, arg, CMDTARGET_ALLOW_SELF)
	read_argv(2, arg, sizeof arg - 1)
	ping = str_to_num(arg)
	
	// Invalid target
	if (!player) return PLUGIN_HANDLED;
	
	// Update ping overrides for player
	g_pingoverride[player] = min(ping, 4095)
	calculate_arguments()
	
	// Get player's name for displaying/logging activity
	static name1[32], name2[32]
	get_user_name(id, name1, sizeof name1 - 1)
	get_user_name(player, name2, sizeof name2 - 1)
	
	// Negative value means disable fakeping
	if (ping < 0)
	{
		// Show activity?
		switch (get_pcvar_num(cvar_showactivity))
		{
			case 1: client_print(0, print_chat, "ADMIN - fake ping override disabled on %s", name2)
			case 2: client_print(0, print_chat, "ADMIN %s - fake ping override disabled on %s", name1, name2)
		}
		
		// Log activity
		static logdata[100], authid[32], ip[16]
		get_user_authid(id, authid, sizeof authid - 1)
		get_user_ip(id, ip, sizeof ip - 1, 1)
		formatex(logdata, sizeof logdata - 1, "ADMIN %s <%s><%s> - fake ping override disabled on %s", name1, authid, ip, name2)
		log_amx(logdata)
	}
	else
	{
		// Show activity?
		switch (get_pcvar_num(cvar_showactivity))
		{
			case 1: client_print(0, print_chat, "ADMIN - fake ping override of %d enabled on %s", ping, name2)
			case 2: client_print(0, print_chat, "ADMIN %s - fake ping override of %d enabled on %s", name1, ping, name2)
		}
		
		// Log activity
		static logdata[100], authid[32], ip[16]
		get_user_authid(id, authid, sizeof authid - 1)
		get_user_ip(id, ip, sizeof ip - 1, 1)
		formatex(logdata, sizeof logdata - 1, "ADMIN %s <%s><%s> - fake ping override of %d enabled on %s", name1, authid, ip, ping, name2)
		log_amx(logdata)
	}
	
	return PLUGIN_HANDLED;
}

public calculate_arguments()
{
	static player, ping, loss
	for (player = 1; player <= g_maxplayers; player++)
	{
		// Calculate target ping (clamp if out of bounds)
		if (g_pingoverride[player] < 0)
		{
			if (g_multiplier > 0.0)
			{
				get_user_ping(player, ping, loss)
				ping = clamp(floatround(ping * g_multiplier), 0, 4095)
			}
			else
				ping = clamp(g_ping + random_num(-g_flux, g_flux), 0, 4095)
		}
		else
			ping = g_pingoverride[player]
		
		// First argument's ping
		for (g_offset[player][0] = 0; g_offset[player][0] < 4; g_offset[player][0]++)
		{
			if ((ping - g_offset[player][0]) % 4 == 0)
			{
				g_argping[player][0] = (ping - g_offset[player][0]) / 4
				break;
			}
		}
		// Second argument's ping
		for (g_offset[player][1] = 0; g_offset[player][1] < 2; g_offset[player][1]++)
		{
			if ((ping - g_offset[player][1]) % 2 == 0)
			{
				g_argping[player][1] = (ping - g_offset[player][1]) / 2
				break;
			}
		}
		// Third argument's ping
		g_argping[player][2] = ping
	}
}

load_pings_from_file()
{
	// Build file path
	new path[64]
	get_configsdir(path, sizeof path - 1)
	format(path, sizeof path - 1, "%s/%s", path, FAKEPINGS_FILE)
	
	// File not present, skip loading
	if (!file_exists(path)) return;
	
	// Open file for reading
	new linedata[40], authid[32], ping[8], file = fopen(path, "rt")
	
	while (file && !feof(file))
	{
		// Read one line at a time
		fgets(file, linedata, sizeof linedata - 1)
		
		// Replace newlines with a null character to prevent headaches
		replace(linedata, sizeof linedata - 1, "^n", "")
		
		// Blank line or comment
		if (!linedata[0] || linedata[0] == ';') continue;
		
		// Get authid and ping
		argbreak(linedata, authid, sizeof authid - 1, ping, sizeof ping -1)
		remove_quotes(ping)
		
		// Store data into global arrays
		ArrayPushString(g_loaded_authid, authid)
		ArrayPushCell(g_loaded_ping, clamp(str_to_num(ping), 0, 4095))
		
		// Increase loaded data counter
		g_loaded_counter++
	}
	if (file) fclose(file)
}

check_for_loaded_pings(id)
{
	// Nothing to check for
	if (g_loaded_counter <= 0) return;
	
	// Get steamid and ip
	static authid[32], ip[16], i, buffer[32]
	get_user_authid(id, authid, sizeof authid - 1)
	get_user_ip(id, ip, sizeof ip - 1, 1)
	
	for (i = 0; i < g_loaded_counter; i++)
	{
		// Retrieve authid
		ArrayGetString(g_loaded_authid, i, buffer, sizeof buffer - 1)
		
		// Compare it with this player's steamid and ip
		if (equali(buffer, authid) || equal(buffer, ip))
		{
			// We've got a match!
			g_pingoverride[id] = ArrayGetCell(g_loaded_ping, i)
			calculate_arguments()
			break;
		}
	}
}

check_flags(id)
{
	g_hasflags[id] = get_user_flags(id) & g_flags
}

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
Attenti0NNNNN*
Mesajlar: 186
Kayıt: Pzt Oca 29, 2018 3:08 pm

Plugin edit

Mesaj gönderen Attenti0NNNNN* »

tamamdır elinize sağlık konu kilit yapılabilir :D

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

noeldayi
Mesajlar: 3167
Kayıt: Prş Oca 19, 2017 6:57 pm
Konum: 213.238.173.35
Server Ip/DNS: 213.238.173.35
Clan İsmi: Moon Gaming
İletişim:

Plugin edit

Mesaj gönderen noeldayi »

hangisi oldu :D

Link:
Linklerini gizle
Linki Kopyala

Konu Sahibi
Attenti0NNNNN*
Mesajlar: 186
Kayıt: Pzt Oca 29, 2018 3:08 pm

Plugin edit

Mesaj gönderen Attenti0NNNNN* »

ilkini denedim de çalışıyomu anlamadm tam
birininkini 8 ken birininki 38 40 falan ona da bakabilirmisin sana zahmet @noeldayi

Link:
Linklerini gizle
Linki Kopyala
Cevapla