fl0wer писал(а):[pawn]
static cell AMX_NATIVE_CALL cs_set_user_model(AMX *amx, cell *params)
...
void PlayerPostThink(edict_t* pPlayer)
[/pawn]
Посмотрел, сколько раз в секунду PlayerPostThink вызывается. На тестовом сервере с 100 FPS - 42 раза.
[spoiler][pawn]
#include <amxmodx>
#include <fakemeta>
#define PLUGIN "Test Suite"
#define VERSION "0.1"
#define AUTHOR "Safety1st"
// macro; %1 - variable being modified, %2 - player index
#define CheckFlag(%1,%2) ( %1 & ( 1 << (%2-1) ) )
#define SetFlag(%1,%2) ( %1 |= ( 1 << (%2-1) ) )
#define ClearFlag(%1,%2) ( %1 &= ~( 1 << (%2-1) ) )
new giMonitor
public plugin_init() {
register_plugin( PLUGIN, VERSION, AUTHOR )
register_clcmd( "d", "Monitor" )
}
public Monitor(id) {
static iFwd
if( CheckFlag( giMonitor, id ) ) {
unregister_forward( FM_PlayerPostThink , iFwd )
ClearFlag( giMonitor, id )
}
else {
if( giMonitor ) {
client_print( id, print_chat, "Monitoring is already enabled for other player!" )
return PLUGIN_HANDLED
}
iFwd = register_forward( FM_PlayerPostThink , "PlayerPostThink" )
SetFlag( giMonitor, id )
}
return PLUGIN_HANDLED
}
public PlayerPostThink(id) {
static iNum
if( !( ++iNum % 10 ) )
server_print( "^n%.3f: PlayerPostThink for id %d was fired 10 times", get_gametime(), id )
}
[/pawn][/spoiler]
[spoiler]18.295: PlayerPostThink for id 1 was fired 10 times // use time but don't count
18.462: PlayerPostThink for id 1 was fired 10 times
18.628: PlayerPostThink for id 1 was fired 10 times
18.795: PlayerPostThink for id 1 was fired 10 times
18.957: PlayerPostThink for id 1 was fired 10 times
19.129: PlayerPostThink for id 1 was fired 10 times
19.307: PlayerPostThink for id 1 was fired 10 times
19.562: PlayerPostThink for id 1 was fired 10 times
19.811: PlayerPostThink for id 1 was fired 10 times
20.081: PlayerPostThink for id 1 was fired 10 times
20.364: PlayerPostThink for id 1 was fired 10 times
20.629: PlayerPostThink for id 1 was fired 10 times
20.875: PlayerPostThink for id 1 was fired 10 times
21.117: PlayerPostThink for id 1 was fired 10 times
21.373: PlayerPostThink for id 1 was fired 10 times
21.615: PlayerPostThink for id 1 was fired 10 times
21.871: PlayerPostThink for id 1 was fired 10 times
22.119: PlayerPostThink for id 1 was fired 10 times
22.369: PlayerPostThink for id 1 was fired 10 times
22.617: PlayerPostThink for id 1 was fired 10 times
22.865: PlayerPostThink for id 1 was fired 10 times
23.113: PlayerPostThink for id 1 was fired 10 times
23.357: PlayerPostThink for id 1 was fired 10 times
23.601: PlayerPostThink for id 1 was fired 10 times
23.857: PlayerPostThink for id 1 was fired 10 times
24.103: PlayerPostThink for id 1 was fired 10 times
24.359: PlayerPostThink for id 1 was fired 10 times
24.606: PlayerPostThink for id 1 was fired 10 times
24.859: PlayerPostThink for id 1 was fired 10 times
25.102: PlayerPostThink for id 1 was fired 10 times
25.341: PlayerPostThink for id 1 was fired 10 times
25.591: PlayerPostThink for id 1 was fired 10 times
25.844: PlayerPostThink for id 1 was fired 10 times
26.087: PlayerPostThink for id 1 was fired 10 times
26.335: PlayerPostThink for id 1 was fired 10 times
26.585: PlayerPostThink for id 1 was fired 10 times
26.840: PlayerPostThink for id 1 was fired 10 times
27.081: PlayerPostThink for id 1 was fired 10 times
27.335: PlayerPostThink for id 1 was fired 10 times
27.575: PlayerPostThink for id 1 was fired 10 times
27.830: PlayerPostThink for id 1 was fired 10 times
28.082: PlayerPostThink for id 1 was fired 10 times
28.333: PlayerPostThink for id 1 was fired 10 times
28.585: PlayerPostThink for id 1 was fired 10 times
28.834: PlayerPostThink for id 1 was fired 10 times
29.084: PlayerPostThink for id 1 was fired 10 times
29.341: PlayerPostThink for id 1 was fired 10 times
29.587: PlayerPostThink for id 1 was fired 10 times
29.847: PlayerPostThink for id 1 was fired 10 times
30.094: PlayerPostThink for id 1 was fired 10 times
30.344: PlayerPostThink for id 1 was fired 10 times
30.595: PlayerPostThink for id 1 was fired 10 times
30.847: PlayerPostThink for id 1 was fired 10 times
31.104: PlayerPostThink for id 1 was fired 10 times
31.350: PlayerPostThink for id 1 was fired 10 times
31.591: PlayerPostThink for id 1 was fired 10 times
31.847: PlayerPostThink for id 1 was fired 10 times
32.089: PlayerPostThink for id 1 was fired 10 times
32.368: PlayerPostThink for id 1 was fired 10 times
32.617: PlayerPostThink for id 1 was fired 10 times
32.868: PlayerPostThink for id 1 was fired 10 times
33.113: PlayerPostThink for id 1 was fired 10 times
33.358: PlayerPostThink for id 1 was fired 10 times
33.611: PlayerPostThink for id 1 was fired 10 times
33.863: PlayerPostThink for id 1 was fired 10 times
34.109: PlayerPostThink for id 1 was fired 10 times
34.365: PlayerPostThink for id 1 was fired 10 times
34.611: PlayerPostThink for id 1 was fired 10 times
34.867: PlayerPostThink for id 1 was fired 10 times
35.112: PlayerPostThink for id 1 was fired 10 times
35.360: PlayerPostThink for id 1 was fired 10 times
35.606: PlayerPostThink for id 1 was fired 10 times
35.882: PlayerPostThink for id 1 was fired 10 times
36.138: PlayerPostThink for id 1 was fired 10 times
36.374: PlayerPostThink for id 1 was fired 10 times
36.626: PlayerPostThink for id 1 was fired 10 times
36.874: PlayerPostThink for id 1 was fired 10 times
37.125: PlayerPostThink for id 1 was fired 10 times
37.374: PlayerPostThink for id 1 was fired 10 times
37.618: PlayerPostThink for id 1 was fired 10 times
37.869: PlayerPostThink for id 1 was fired 10 times
38.109: PlayerPostThink for id 1 was fired 10 times
38.359: PlayerPostThink for id 1 was fired 10 times
38.644: PlayerPostThink for id 1 was fired 10 times
38.767: PlayerPostThink for id 1 was fired 10 times
38.943: PlayerPostThink for id 1 was fired 10 times
39.099: PlayerPostThink for id 1 was fired 10 times
39.270: PlayerPostThink for id 1 was fired 10 times
39.435: PlayerPostThink for id 1 was fired 10 times
39.603: PlayerPostThink for id 1 was fired 10 times
39.773: PlayerPostThink for id 1 was fired 10 times
39.933: PlayerPostThink for id 1 was fired 10 times
40.108: PlayerPostThink for id 1 was fired 10 times
92 * 10 / ( 40.108 - 18.295 ) = 42.18[/spoiler]
Это печально.