Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Переделать high ping reducer

Статус пользователя Doktor_Zloo
сообщение 23.6.2010, 0:20
Сообщение #1
Стаж: 18 лет

Сообщений: 178
Благодарностей: 5
Полезность: < 0

Очень хотелось бы использовать High Ping Reducer не только, как понижатель рейтов, но и понижатель.

Тоесть, необходимо:
1. Оставить проверку пинга.
2. Если пинг <*значение*, то выставляем рейты: ....
3. Если пинг >*значение*, то выставляем рейты: ....
4. Если пинг >amx_hpr_critical_ping то amx_hpr_punishtype
5. Для чего здесь нужны "register_clcmd("rate","block")" ? И надо ли писать их для других (новых кваров) которые я добавляю?

Сам плагин:
sma
#define CD_DONT_SEND_STEPSOUND 1 // Players won't hear their own footstep sounds.
#define CD_DONT_SEND_PUNCHANGLE 0 // Players won't see the actual weapon's recoil if using cl_lw 1.
#define CD_DONT_SEND_VELOCITY 0 // Players may experience sloppy movements.
#define ES_DONT_SEND_ORIGIN_SELF 1 // None that I can see.
#define ES_DONT_SEND_ANGLES_SELF 1 // If using 3rd person view, players will see themselves looking at an odd direction.
#define ES_DONT_SEND_FRAME_SELF 1 // If using 3rd person view, players will see their own weapon animations incorrectly.
#define ES_DONT_SEND_ANIMTIME_SELF 1 // If using 3rd person view, players will see their own weapon animations incorrectly.
#define ES_DONT_SEND_BLENDING_SELF 1 // None that I can see.
#define ES_DONT_SEND_ANGLES_OTHERS 0 // Players will see others looking at an odd direction
#define ES_DONT_SEND_FRAME_OTHERS 0 // Players will see others' weapon animations incorrectly.
#define ES_DONT_SEND_ANIMTIME_OTHERS 0 // Players will see others skipping around.
#define ES_DONT_SEND_BLENDING_OTHERS 1 // None that I can see.


#include <amxmodx>
#include <fakemeta>

new g_Ping[33]
new g_Samples[33]
new g_Reduce[33]

new cvar_ping,cvar_check,cvar_tests,cvar_delay,cvar_immunity,cvar_c_ping,
cvar_bantime, cvar_punishtype

public plugin_init()
{
register_plugin("High Ping Reducer","0.16.2","OLO/Empower/MeRcyLeZZ")
cvar_ping = register_cvar("amx_hpr_ping","60")
cvar_c_ping = register_cvar("amx_hpr_critical_ping","300")
cvar_bantime = register_cvar("amx_hpr_bantime","5")
cvar_check = register_cvar("amx_hpr_check","6")
cvar_tests = register_cvar("amx_hpr_tests","5")
cvar_delay = register_cvar("amx_hpr_delay","5")
cvar_immunity = register_cvar("amx_hpr_immunity","0")

// 0 - niche ne delat //1 - kick// 2 - ban
cvar_punishtype = register_cvar("amx_hpr_punishtype","2")

if ( get_pcvar_num( cvar_check ) < 5 ) set_pcvar_num( cvar_check , 5 )
if ( get_pcvar_num( cvar_tests ) < 3 ) set_pcvar_num( cvar_tests , 3 )

register_clcmd("rate","block")
register_clcmd("cl_rate","block")
register_clcmd("cl_updaterate","block")
register_clcmd("cl_cmdrate","block")
register_clcmd("cl_lc","block")
register_clcmd("cl_lw","block")
register_clcmd("ex_interp","block")
register_clcmd("cl_cmdbackup","block")
register_clcmd("cl_download_ingame","block")
register_clcmd("fps_max","block")
register_clcmd("sv_maxupdaterate","block")
register_clcmd("sys_ticrate","block")
register_clcmd("cl_resend","block")
}

public block(id)
{
if(g_Reduce[id])
return PLUGIN_HANDLED;

return PLUGIN_CONTINUE;
}

public client_disconnect(id)
{
remove_task( id )

g_Reduce[id] = false;
}

public client_putinserver(id)
{

g_Ping[id] = 0
g_Samples[id] = 0

static name[32]
get_user_name(id,name,31)

if ( !is_user_bot(id) && !(cvar_immunity && get_user_flags(id) & ADMIN_IMMUNITY))
{
new param[1]
param[0] = id
set_task( 10.0 , "showWarn" , id , param , 1 )

if (get_pcvar_num(cvar_tests) != 0)
set_task( float(get_pcvar_num(cvar_delay)), "taskSetting", id, param , 1)
else
set_task( float(get_pcvar_num( cvar_tests )) , "checkPing" , id , param , 1 , "b")
}
}

public showWarn(param[])
client_print( param[0] ,print_chat,"* Players with ping higher than %d will have optimized cvars!", get_pcvar_num( cvar_ping ) )


public taskSetting(param[])
{
new name[32]
get_user_name(param[0],name,31)
set_task( float(get_pcvar_num( cvar_tests )) , "checkPing" , param[0] , param , 1 , "b" )
}

ReducePing( id )
{
new name[32],authid[32]
get_user_authid(id,authid,31)
get_user_name(id,name,31)

// postavit nizkie reiti igroku
client_print(0,print_chat,"** %s now have optimized cvars!",name)
client_cmd(id,"rate 20000;cl_rate 20000;cl_updaterate 80;cl_cmdrate 85;cl_lc 1;cl_lw 1;ex_interp 0;cl_cmdbackup 2;cl_download_ingame 0;fps_max 101;sv_maxupdaterate 101;sys_ticrate 330;cl_resend 0.5")

g_Reduce[id] = true


/*
client_print(0,print_chat,"** %s was banned due to critical ping!",name)
client_cmd(id,"echo ^"** Sorry but you have too high ping, banned on 5 min.^"")
server_cmd("addip 0 %s",ip)*/

remove_task(id)
log_amx("Highpingkick: ^"%s<%d><%s>^" was reduced due highping (Average Ping ^"%d^")",
name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))

}

public PunishPing(id)
{
new punish = get_pcvar_num(cvar_punishtype)

if(!punish)
{
ReducePing(id)
return;
}

new ip[16],name[32],authid[32]
get_user_authid(id,authid,31)
get_user_name(id,name,31)
get_user_ip(id,ip,15,1)

client_print(0,print_chat,"** %s was banned due to critical ping!",name)
client_cmd(id,"echo ^"** Sorry but you have too high ping, banned on 5 min.^"")

if(punish==2)
server_cmd("addip %i %s",get_pcvar_num(cvar_bantime),ip)
else if(punish==1)
server_cmd("kick #%d ^"Sorry but your ping is too high, try again later...^"",get_user_userid(id))

remove_task(id)
log_amx("Highpingkick: ^"%s<%d><%s>^" punished due highping (Average Ping ^"%d^")",
name,get_user_userid(id),authid,(g_Ping[id] / g_Samples[id]))
}

public checkPing(param[])
{
new id = param[ 0 ]

new p, l

get_user_ping( id , p , l )

g_Ping[ id ] += p
++g_Samples[ id ]

if ( (g_Samples[ id ] > get_pcvar_num( cvar_tests )) && (g_Ping[id] / g_Samples[id] > get_pcvar_num( cvar_c_ping )) )
PunishPing(id)

else if ( (g_Samples[ id ] > get_pcvar_num( cvar_tests )) && (g_Ping[id] / g_Samples[id] > get_pcvar_num( cvar_ping )) )
ReducePing(id)
}

public fw_UpdateClientData(player, sendweapons, handle)
{
if(!g_Reduce[player])
return;

#if CD_DONT_SEND_STEPSOUND
set_cd(handle, CD_flTimeStepSound, 999 )
#endif
#if CD_DONT_SEND_PUNCHANGLE
set_cd(handle, CD_PunchAngle, Float:{ 0.0, 0.0, 0.0 } )
#endif
#if CD_DONT_SEND_VELOCITY
set_cd(handle, CD_Velocity, Float:{ 0.0, 0.0, 0.0 } )
#endif
}

public fw_AddToFullPack(handle, e, ent, host, hostflags, player, pset)
{
if (!player || !g_Reduce[player]) return;

if (host == ent)
{
#if ES_DONT_SEND_ORIGIN_SELF
set_es(handle, ES_Origin, Float:{ 0.0, 0.0, 0.0 })
#endif
#if ES_DONT_SEND_ANGLES_SELF
set_es(handle, ES_Angles, Float:{ 0.0, 0.0, 0.0 })
#endif
#if ES_DONT_SEND_FRAME_SELF
set_es(handle, ES_Frame, 1.0 )
#endif
#if ES_DONT_SEND_ANIMTIME_SELF
set_es(handle, ES_AnimTime, 1.0 )
#endif
#if ES_DONT_SEND_BLENDING_SELF
set_es(handle, ES_Blending, { 0, 0, 0, 0} )
#endif
}
else
{
#if ES_DONT_SEND_ANGLES_OTHERS
set_es(handle, ES_Angles, Float:{ 0.0, 0.0, 0.0 })
#endif
#if ES_DONT_SEND_FRAME_OTHERS
set_es(handle, ES_Frame, 1.0 )
#endif
#if ES_DONT_SEND_ANIMTIME_OTHERS
set_es(handle, ES_AnimTime, 1.0 )
#endif
#if ES_DONT_SEND_BLENDING_OTHERS
set_es(handle, ES_Blending, { 0, 0, 0, 0} )
#endif
}
}


!
Запрет на ответ в темах: навсегда
Аккаунт пользователя заблокирован до: 29.5.4748, 8:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: