AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Translation Request (https://forums.alliedmods.net/forumdisplay.php?f=25)
-   -   [CS 1.6] Assists [TAB - Kills/Deaths/Assists] (https://forums.alliedmods.net/showthread.php?t=338634)

ertgrlars 07-18-2022 04:05

[CS 1.6] Assists [TAB - Kills/Deaths/Assists]
 
Can you edit the https://forums.alliedmods.net/showth...ghlight=assist code with reapi?

Code:

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
#include <dhudmessage>

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_disconnect(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
        }
}


SoulWeaver16 08-10-2022 17:24

Re: [CS 1.6] Assists [TAB - Kills/Deaths/Assists]
 
What language do you need it? You are in the subforum to ask for translations, not to edit code.

ertgrlars 08-13-2022 11:13

Re: [CS 1.6] Assists [TAB - Kills/Deaths/Assists]
 
Quote:

Originally Posted by SoulWeaver16 (Post 2786140)
What language do you need it? You are in the subforum to ask for translations, not to edit code.

I want it edited because the code is wrong

Snake. 08-17-2022 08:30

Re: [CS 1.6] Assists [TAB - Kills/Deaths/Assists]
 
You need to ask this on the Suggestion/Request sub-forum, not in here


All times are GMT -4. The time now is 01:51.

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