Raised This Month: $32 Target: $400
 8% 

[CS] Assists [TAB - Kills/Deaths/Assists]


Post New Thread Reply   
 
Thread Tools Display Modes
ChillerX
Member
Join Date: Dec 2022
Old 02-04-2023 , 23:17   Re: [CS] Assists [TAB - Kills/Deaths/Assists]
Reply With Quote #21

Probably using older version of dhud
ChillerX is offline
Calibru09
Junior Member
Join Date: Jan 2020
Location: Romania
Old 02-08-2023 , 05:47   Re: [CS] Assists [TAB - Kills/Deaths/Assists]
Reply With Quote #22

Quote:
Originally Posted by ChillerX View Post
Probably using older version of dhud
I removed dhud and updated the client disconnected and it works

Code:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>

const TASK_ARGUMENTS = 100

new g_maxplayers, g_connected[33], g_offset[33][2], g_argping[33][3]
new assists[33]

new bool:plugin = true
new rs

new damage2[33][33] //damage[Attacker][Victim]
public plugin_init()
{
	register_plugin("Assists", "2.1", "RuleBreaker")
	g_maxplayers = get_maxplayers()
	register_clcmd("say /rs", "resetscore")
	register_clcmd("say /resetscore", "resetscore")
	register_clcmd("amx_assists", "plugin_assists", ADMIN_RCON)
	register_event("TextMsg", "Event_Restart", "a", "2&#Game_C", "2&#Game_w")
	rs = register_cvar("assists_rs", "0")
	register_forward(FM_UpdateClientData, "fw_UpdateClientData")
	// Calculate weird argument values regularly in case we are faking ping fluctuations or a multiple of the real ping
	set_task(2.0, "calculate_arguments", TASK_ARGUMENTS, _, _, "b")
	
	RegisterHam(Ham_TakeDamage, "player", "fw_takedamage") 
	RegisterHam(Ham_Killed, "player", "Ham_Killed_player")
	RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1)  
	set_task(1.0, "deletedmg")

}
public Event_Restart() {
	new i=0
	do {
		assists[i]=0
		i+=1
	} while(i<33)
}
public plugin_assists(id) {
	if(plugin) {
		plugin=false
		client_print(id, print_console, "[AMXX] Plugin Assists is turned off!")
		return PLUGIN_HANDLED
	}
	else if (!plugin) {
		plugin = true
		client_print(id, print_console, "[AMXX] Plugin Assists is turned on!")
		return PLUGIN_HANDLED
	}
	return PLUGIN_CONTINUE
}
public Ham_Killed_player(iVictim, iAttacker, shouldgib) {
	new i=0
	do {
		if(i!=iAttacker) {
			if(damage2[i][iVictim]>30) {
				assist(i, iVictim)
			}
		}
		i+=1
	} while (i<33)
	
}
public assist(attacker, victim) {
	damage2[attacker][victim]=0
	assists[attacker]+=1
	set_hudmessage(0, 255, 0, 0.79, 0.24, 0, 6.0, 12.0)
	show_hudmessage(attacker, "+Assist")
}
public fwHamPlayerSpawnPost(iPlayer) {
	new i=0
	do {
		damage2[iPlayer][i]=0
		i+=1
	} while(i<33)
}
public fw_takedamage(victim, inflictor, attacker, Float:damage, bits) {
      damage2[attacker][victim]+=damage
}  
public deletedmg(id) {
	new i1 = 0
	do {
		new i2=0
		do {
			if(damage2[i1][i2]>0) {
				damage2[i1][i2]-=1
			}
			i2+=1
		} while (i2<33)
		i1+=1
	} while (i1<33)
	set_task(1.0, "deletedmg")
}
public resetscore(id) {
	if(get_pcvar_num(rs)) {
		assists[id]=0
	}
	return PLUGIN_CONTINUE
}
public client_putinserver(id)
{
	g_connected[id] = true
	assists[id]+=0
}

public client_disconnected(id)
{
	g_connected[id] = false
	assists[id]=0
	new i=0
	do {
		damage2[id][i]=0
		i+=1
	} while(i<33)
}

public fw_UpdateClientData(id)
{
	if(plugin) {
	// 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;
		
		// 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()
	}
	}
}


// Calculate weird argument values based on target ping
public calculate_arguments()
{
	static player, ping
	for (player = 1; player <= g_maxplayers; player++)
	{
		ping = assists[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
	}
}
Calibru09 is offline
Send a message via AIM to Calibru09 Send a message via Yahoo to Calibru09 Send a message via Skype™ to Calibru09
Reply


Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 00:48.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode