AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   User fps. (https://forums.alliedmods.net/showthread.php?t=109838)

zombieplague 11-22-2009 01:57

User fps.
 
Does anyone know how to find user fps ?

lazarev 11-22-2009 05:01

Re: User fps.
 
PHP Code:

#include <amxmodx> 
#include <fakemeta>

#define PLG_VERSION "1.2"

new FPS 0;
new 
Float:NC 0.0;

new 
Float:g_nc[33] = 0.0;

new 
LASTFPS;
new 
textovariable;

new 
Pcvar[5];

new 
g_fps[33];
new 
g_lastfps[33];
new 
g_average[10];

public 
plugin_init()

    
register_plugin("FPS & Ping Status"PLG_VERSION ,"ReymonARG")
    
    
register_forward(FM_StartFrame,"ForwardStartFrame")
    
register_forward(FM_PlayerPreThink,"PreThink")
    
    
register_concmd"say /fps""infomenu" );
    
    
register_cvar("amx_statusinfo_version"PLG_VERSIONFCVAR_SERVER FCVAR_SPONLY );
    
    
Pcvar[0] = register_cvar("amx_statusinfo""1");
    
Pcvar[1] = register_cvar("amx_statusinfo_msg""0");
    
Pcvar[2] = register_cvar("amx_statusinfo_interval""180.0");
    
    
textovariable get_user_msgid("SayText");
    
set_task(60.0"msglala");
}

public 
client_putinserver(id)
    
g_nc[id] = get_gametime();
    
public 
client_disconnect(id)
    
remove_task(id);

public 
ForwardStartFrame()
{
    new 
Float:HLT get_gametime();
    if(
NC >= HLT)
    {
        
FPS++;
    }
    else
    {
        
NC NC 1;
        
LASTFPS FPS;
        new 
rand random_num(0,9);
        
g_average[rand] = FPS;
        
FPS 0;
    }
}

public 
PreThink(id
{
    new 
Float:HLT get_gametime();
    if( 
g_nc[id] >= HLT)
    {
        
g_fps[id]++;
    }
    else
    {
        
g_nc[id] = g_nc[id] + 1.0;
        
g_lastfps[id] = g_fps[id];
        
g_fps[id] = 0;
    }
}

GetAverage()
{    
    new 
Average;
    
    for(new 
010i++)
    {
        new 
calculo g_average[i];
        
Average += calculo;
    }
    
    return 
Average 10;
}

GetPing()
{
    new 
Playersnum,Players[32],Player,Count,Ping,Loss,Average;
    
get_players(Players,Playersnum,"ch");
    
    if( 
Playersnum )
        return 
0;
        
    for(
Count 0Count PlayersnumCount++)
    {
        
Player Players[Count];
        
get_user_ping(Player,Ping,Loss);
        
Average += Ping;
    }
    
    return 
Average Playersnum;
}

GetFps()
{
    new 
Playersnum,Players[32],Player,CountAverage;
    
get_players(Players,Playersnum,"ch");
    
    if( 
Playersnum )
        return 
0;
    
    for(
Count 0Count PlayersnumCount++)
    {
        
Player Players[Count];
        
Average += g_lastfps[Player];
    }
    
    return 
Average Playersnum;
}

public 
msglala()
{
    
set_task(get_pcvar_float(Pcvar[2]), "msglala")
    
    if( 
get_pcvar_num(Pcvar[0]) != )
        return;
    
    if( 
get_pcvar_num(Pcvar[1]) != )
        return;
    
    for( new 
1<= 32 i++)
    {
        if( 
is_user_connected(i) && !is_user_bot(i) )
            print(
i,"^x04Privet,^x04 kak dila?")
            
//print(i, "^x04[Jch] Server running at^x03 %d^x04 FPS (Average players^x03 %d^x04 FPS and^x03 %d^x04 Ping)", LASTFPS, GetFps(), GetPing());
    
}
}

public 
infomenu(id)
{
    if( 
get_pcvar_num(Pcvar[0]) != )
        return;

    new 
msgtitulo[64];
    
formatex(msgtitulo63"\yInfo Server \w- \y%i \wAverage: \y%i"LASTFPSGetAverage());
    new 
menu menu_create(msgtitulo"menuinfo");
    new 
contador 0;
    
    for( new 
1<= 32i++)
    {
        if( 
is_user_connected(i) && !is_user_bot(i) )
        {
            
contador++;
            new 
msg[128], name[32], numero[5], pingloss;
            
get_user_name(iname31);
            
get_user_ping(ipingloss);
            
formatex(msg127"\y%s \wwith \y%i \wFPS and \y%i \wPing"nameg_lastfps[i], ping );
            
num_to_str(contadornumero4);
            
menu_additem(menumsgnumero0);
        }
    }
    
    
menu_display(idmenu0);
    
set_task(1.0"infomenu"id__"b");
}

public 
menuinfo(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
remove_task(id);
        return 
PLUGIN_HANDLED;
    }
    
    return 
0;
}

print(
id, const msg[], {Float,Sql,Result,_}:...)
{
    new 
message[192];
    
vformat(message191msg3);
    
    
message_begin(MSG_ONE_UNRELIABLEtextovariable_id);
    
write_byte(id);
    
write_string(message);
    
message_end();



xPaw 11-22-2009 05:14

Re: User fps.
 
@lazarev: that method is really inaccurate.

Code:
new g_iFps[ 33 ]; register_forward( FM_CmdStart, "FwdCmdStart" ); // [ .. ] public FwdCmdStart( id, iHandle )     g_iFps[ id ] = floatround( 1 / ( get_uc( iHandle, UC_Msec ) * 0.001 ) );

Backstabnoob 11-22-2009 06:24

Re: User fps.
 
Why is size of g_iFps array 33? Isn't that a bit useless?

xPaw 11-22-2009 07:46

Re: User fps.
 
Quote:

Originally Posted by Backstabnoob (Post 995707)
Why is size of g_iFps array 33? Isn't that a bit useless?

For each player.... ?

zombieplague 11-22-2009 12:03

Re: User fps.
 
Quote:

Originally Posted by lazarev (Post 995672)
PHP Code:

#include <amxmodx> 
#include <fakemeta>
 
#define PLG_VERSION "1.2"
 
new FPS 0;
new 
Float:NC 0.0;
 
new 
Float:g_nc[33] = 0.0;
 
new 
LASTFPS;
new 
textovariable;
 
new 
Pcvar[5];
 
new 
g_fps[33];
new 
g_lastfps[33];
new 
g_average[10];
 
public 
plugin_init()

    
register_plugin("FPS & Ping Status"PLG_VERSION ,"ReymonARG")
 
    
register_forward(FM_StartFrame,"ForwardStartFrame")
    
register_forward(FM_PlayerPreThink,"PreThink")
 
    
register_concmd"say /fps""infomenu" );
 
    
register_cvar("amx_statusinfo_version"PLG_VERSIONFCVAR_SERVER FCVAR_SPONLY );
 
    
Pcvar[0] = register_cvar("amx_statusinfo""1");
    
Pcvar[1] = register_cvar("amx_statusinfo_msg""0");
    
Pcvar[2] = register_cvar("amx_statusinfo_interval""180.0");
 
    
textovariable get_user_msgid("SayText");
    
set_task(60.0"msglala");
}
 
public 
client_putinserver(id)
    
g_nc[id] = get_gametime();
 
public 
client_disconnect(id)
    
remove_task(id);
 
public 
ForwardStartFrame()
{
    new 
Float:HLT get_gametime();
    if(
NC >= HLT)
    {
        
FPS++;
    }
    else
    {
        
NC NC 1;
        
LASTFPS FPS;
        new 
rand random_num(0,9);
        
g_average[rand] = FPS;
        
FPS 0;
    }
}
 
public 
PreThink(id
{
    new 
Float:HLT get_gametime();
    if( 
g_nc[id] >= HLT)
    {
        
g_fps[id]++;
    }
    else
    {
        
g_nc[id] = g_nc[id] + 1.0;
        
g_lastfps[id] = g_fps[id];
        
g_fps[id] = 0;
    }
}
 
GetAverage()
{    
    new 
Average;
 
    for(new 
010i++)
    {
        new 
calculo g_average[i];
        
Average += calculo;
    }
 
    return 
Average 10;
}
 
GetPing()
{
    new 
Playersnum,Players[32],Player,Count,Ping,Loss,Average;
    
get_players(Players,Playersnum,"ch");
 
    if( 
Playersnum )
        return 
0;
 
    for(
Count 0Count PlayersnumCount++)
    {
        
Player Players[Count];
        
get_user_ping(Player,Ping,Loss);
        
Average += Ping;
    }
 
    return 
Average Playersnum;
}
 
GetFps()
{
    new 
Playersnum,Players[32],Player,CountAverage;
    
get_players(Players,Playersnum,"ch");
 
    if( 
Playersnum )
        return 
0;
 
    for(
Count 0Count PlayersnumCount++)
    {
        
Player Players[Count];
        
Average += g_lastfps[Player];
    }
 
    return 
Average Playersnum;
}
 
public 
msglala()
{
    
set_task(get_pcvar_float(Pcvar[2]), "msglala")
 
    if( 
get_pcvar_num(Pcvar[0]) != )
        return;
 
    if( 
get_pcvar_num(Pcvar[1]) != )
        return;
 
    for( new 
1<= 32 i++)
    {
        if( 
is_user_connected(i) && !is_user_bot(i) )
            print(
i,"^x04Privet,^x04 kak dila?")
            
//print(i, "^x04[Jch] Server running at^x03 %d^x04 FPS (Average players^x03 %d^x04 FPS and^x03 %d^x04 Ping)", LASTFPS, GetFps(), GetPing());
    
}
}
 
public 
infomenu(id)
{
    if( 
get_pcvar_num(Pcvar[0]) != )
        return;
 
    new 
msgtitulo[64];
    
formatex(msgtitulo63"\yInfo Server \w- \y%i \wAverage: \y%i"LASTFPSGetAverage());
    new 
menu menu_create(msgtitulo"menuinfo");
    new 
contador 0;
 
    for( new 
1<= 32i++)
    {
        if( 
is_user_connected(i) && !is_user_bot(i) )
        {
            
contador++;
            new 
msg[128], name[32], numero[5], pingloss;
            
get_user_name(iname31);
            
get_user_ping(ipingloss);
            
formatex(msg127"\y%s \wwith \y%i \wFPS and \y%i \wPing"nameg_lastfps[i], ping );
            
num_to_str(contadornumero4);
            
menu_additem(menumsgnumero0);
        }
    }
 
    
menu_display(idmenu0);
    
set_task(1.0"infomenu"id__"b");
}
 
public 
menuinfo(idmenuitem)
{
    if(
item == MENU_EXIT)
    {
        
remove_task(id);
        return 
PLUGIN_HANDLED;
    }
 
    return 
0;
}
 
print(
id, const msg[], {Float,Sql,Result,_}:...)
{
    new 
message[192];
    
vformat(message191msg3);
 
    
message_begin(MSG_ONE_UNRELIABLEtextovariable_id);
    
write_byte(id);
    
write_string(message);
    
message_end();



Thanks for your help. :) But i don't need the ping status. Btw how can i see fps of user when my crosshair pointing at them ?

zombieplague 11-25-2009 01:35

Re: User fps.
 
Can someone help ?

I want to see user fps in hudmessage when i pointing at him. It just like showing it name.

dFF 11-25-2009 07:01

Re: User fps.
 
http://forums.alliedmods.net/showthread.php?t=66890 ?

fysiks 11-25-2009 10:06

Re: User fps.
 
I don't see any point in knowing the user's fps. That's like trying to make a plugin that finds what processor you are using and what video card you have and how much memory the compter has. Pointless, imo.

zombieplague 11-25-2009 11:36

Re: User fps.
 
Quote:

Originally Posted by fysiks (Post 998694)
I don't see any point in knowing the user's fps. That's like trying to make a plugin that finds what processor you are using and what video card you have and how much memory the compter has. Pointless, imo.

It is usefull for me because i can see people fps :) So can i do it ?


All times are GMT -4. The time now is 13:39.

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