It is already split into 5 sections... that is not the problem... Let me post a large amount of code because the example in the first post on this page is only 1/5th of what the plugin actually does... since it seems nobody understands this or is working from the current plugin to see why this will not work.
Code:
#include <amxmodx>
#include <amxmisc>
new const gs_PLUGIN[] = "Force CAL Open Settings"
new const gs_VERSION[] = "1.8"
new const gs_AUTHOR[] = "SubStream"
new g_fcos_allow_alt_values
new g_fcos_allow_hlguard_values
new Float: gf_valuefromplayer
new Float: gf_calfloatvalue
new Float: gf_altfloatvalue
new Float: gf_altfloatvalue2
new Float: gf_hlgfloatvalue
new gi_players[32]
new gi_playercnt
new gi_playernum
new gi_playerID
new gi_players2[32]
new gi_playercnt2
new gi_playernum2
new gi_playerID2
new gs_logname[32]
new gs_logauthid[33]
new gs_logip[44]
public plugin_init ()
{
register_plugin ( gs_PLUGIN, gs_VERSION, gs_AUTHOR )
register_cvar ( "fcos_version", gs_VERSION, FCVAR_SPONLY ) // For people using HLSW
g_fcos_allow_alt_values = register_cvar ( "fcos_allow_alt_values", "1" )
g_fcos_allow_hlguard_values = register_cvar ( "fcos_allow_hlguard_values", "0" )
register_dictionary ( "fcos.txt" ) // Used for logging and admin notification
fn_servermessage () // Sends server messages on startup
}
public fn_servermessage ()
{
server_print ( "%L", LANG_SERVER, "FCOS_LANG_INFO_STARTUP", gs_PLUGIN, gs_VERSION, gs_AUTHOR )
server_print ( "%L", LANG_SERVER, "FCOS_LANG_SERVER_MSG1" )
}
public client_putinserver ( id )
{
set_task ( 5.0, "fn_afterputinserver", 0, "", 0, "b" ) // Run after putinserver func and repeat
}
public client_disconnect ( id )
{
remove_task ( id )
return PLUGIN_HANDLED
}
public fn_afterputinserver ()
{
/* This splits up the timing of all the queries so that the server does not lag as it
would if they were all ran at the same time. */
set_task ( 1.0, "fn_query1" ) // Run fn_query1 func after 1 second
set_task ( 2.0, "fn_query2" ) // Run fn_query2 func after 2 seconds
set_task ( 3.0, "fn_query3" ) // Run fn_query3 func after 3 seconds
set_task ( 4.0, "fn_query4" ) // Run fn_query4 func after 4 seconds
set_task ( 5.0, "fn_query5" ) // Run fn_query5 func after 5 seconds
}
public fn_query1 ()
{
get_players ( gi_players, gi_playercnt, "ch" ) // Outputs players that are not bots or hltv into gi_players
for ( gi_playernum = 0; gi_playernum < gi_playercnt; gi_playernum++ )
{
gi_playerID = gi_players[gi_playernum]
query_client_cvar ( gi_playerID, "ambient_fade", "fn_ambient_fade" ) // Query the cvar from the player and forwards it to function with parameters
query_client_cvar ( gi_playerID, "ambient_level", "fn_ambient_level" )
query_client_cvar ( gi_playerID, "bottomcolor", "fn_bottomcolor" )
query_client_cvar ( gi_playerID, "cl_bob", "fn_cl_bob" )
query_client_cvar ( gi_playerID, "cl_bobcycle", "fn_cl_bobcycle" )
query_client_cvar ( gi_playerID, "cl_bobup", "fn_cl_bobup" )
query_client_cvar ( gi_playerID, "cl_fixtimerate", "fn_cl_fixtimerate" )
query_client_cvar ( gi_playerID, "cl_gaitestimation", "fn_cl_gaitestimation" )
query_client_cvar ( gi_playerID, "cl_gg", "fn_cl_gg" )
query_client_cvar ( gi_playerID, "cl_resend", "fn_cl_resend" )
query_client_cvar ( gi_playerID, "cl_solid_players", "fn_cl_solid_players" )
query_client_cvar ( gi_playerID, "cl_timeout", "fn_cl_timeout" )
query_client_cvar ( gi_playerID, "cl_weather", "fn_cl_weather" )
query_client_cvar ( gi_playerID, "d_spriteskip", "fn_d_spriteskip" )
query_client_cvar ( gi_playerID, "default_fov", "fn_default_fov" )
query_client_cvar ( gi_playerID, "ex_extrapmax", "fn_ex_extrapmax" )
}
}
public fn_query2 ()
{
get_players ( gi_players, gi_playercnt, "ch" )
for ( gi_playernum = 0; gi_playernum < gi_playercnt; gi_playernum++ )
{
gi_playerID = gi_players[gi_playernum]
query_client_cvar ( gi_playerID, "ex_interp", "fn_ex_interp" )
query_client_cvar ( gi_playerID, "fakelag", "fn_fakelag" )
query_client_cvar ( gi_playerID, "fakeloss", "fn_fakeloss" )
query_client_cvar ( gi_playerID, "fastsprites", "fn_fastsprites" )
query_client_cvar ( gi_playerID, "gl_affinemodels", "fn_gl_affinemodels" )
query_client_cvar ( gi_playerID, "gl_alphamin", "fn_gl_alphamin" )
query_client_cvar ( gi_playerID, "gl_clear", "fn_gl_clear" )
query_client_cvar ( gi_playerID, "gl_cull", "fn_gl_cull" )
query_client_cvar ( gi_playerID, "gl_d3dflip", "fn_gl_d3dflip" )
query_client_cvar ( gi_playerID, "gl_dither", "fn_gl_dither" )
query_client_cvar ( gi_playerID, "gl_flipmatrix", "fn_gl_flipmatrix" )
query_client_cvar ( gi_playerID, "gl_keeptjunctions", "fn_gl_keeptjunctions" )
query_client_cvar ( gi_playerID, "gl_lightholes", "fn_gl_lightholes" )
query_client_cvar ( gi_playerID, "gl_monolights", "fn_gl_monolights" )
query_client_cvar ( gi_playerID, "gl_nobind", "fn_gl_nobind" )
query_client_cvar ( gi_playerID, "gl_nocolors", "fn_gl_nocolors" )
}
}
public fn_query3 ()
{
get_players ( gi_players, gi_playercnt, "ch" )
for ( gi_playernum = 0; gi_playernum < gi_playercnt; gi_playernum++ )
{
gi_playerID = gi_players[gi_playernum]
query_client_cvar ( gi_playerID, "gl_overbright", "fn_gl_overbright" )
query_client_cvar ( gi_playerID, "gl_palette_tex", "fn_gl_palette_tex" )
query_client_cvar ( gi_playerID, "gl_picmip", "fn_gl_picmip" )
query_client_cvar ( gi_playerID, "gl_playermip", "fn_gl_playermip" )
query_client_cvar ( gi_playerID, "gl_polyoffset", "fn_gl_polyoffset" )
query_client_cvar ( gi_playerID, "gl_reporttjunctions", "fn_gl_reporttjunctions" )
query_client_cvar ( gi_playerID, "gl_round_down", "fn_gl_round_down" )
query_client_cvar ( gi_playerID, "gl_spriteblend", "fn_gl_spriteblend" )
query_client_cvar ( gi_playerID, "gl_ztrick", "fn_gl_ztrick" )
query_client_cvar ( gi_playerID, "lambert", "fn_lambert" )
query_client_cvar ( gi_playerID, "lightgamma", "fn_lightgamma" )
query_client_cvar ( gi_playerID, "max_smokepuffs", "fn_max_smokepuffs" )
query_client_cvar ( gi_playerID, "nosound", "fn_nosound" )
query_client_cvar ( gi_playerID, "r_bmodelhighfrac", "fn_r_bmodelhighfrac" )
query_client_cvar ( gi_playerID, "r_bmodelinterp", "fn_r_bmodelinterp" )
query_client_cvar ( gi_playerID, "r_cachestudio", "fn_r_cachestudio" )
}
}
public fn_query4 ()
{
get_players ( gi_players, gi_playercnt, "ch" )
for ( gi_playernum = 0; gi_playernum < gi_playercnt; gi_playernum++ )
{
gi_playerID = gi_players[gi_playernum]
query_client_cvar ( gi_playerID, "r_cullsequencebox", "fn_r_cullsequencebox" )
query_client_cvar ( gi_playerID, "r_detailtextures", "fn_r_detailtextures" )
query_client_cvar ( gi_playerID, "r_drawentities", "fn_r_drawentities" )
query_client_cvar ( gi_playerID, "r_drawviewmodel", "fn_r_drawviewmodel" )
query_client_cvar ( gi_playerID, "r_dynamic", "fn_r_dynamic" )
query_client_cvar ( gi_playerID, "r_fullbright", "fn_r_fullbright" )
query_client_cvar ( gi_playerID, "r_glowshellfreq", "fn_r_glowshellfreq" )
query_client_cvar ( gi_playerID, "r_lightmap", "fn_r_lightmap" )
query_client_cvar ( gi_playerID, "r_mirroralpha", "fn_r_mirroralpha" )
query_client_cvar ( gi_playerID, "r_norefresh", "fn_r_norefresh" )
query_client_cvar ( gi_playerID, "r_novis", "fn_r_novis" )
query_client_cvar ( gi_playerID, "r_speeds", "fn_r_speeds" )
query_client_cvar ( gi_playerID, "r_traceglow", "fn_r_traceglow" )
query_client_cvar ( gi_playerID, "r_wadtextures", "fn_r_wadtextures" )
query_client_cvar ( gi_playerID, "r_wateralpha", "fn_r_wateralpha" )
query_client_cvar ( gi_playerID, "s_a3d", "fn_s_a3d" )
}
}
public fn_query5 ()
{
get_players ( gi_players, gi_playercnt, "ch" )
for ( gi_playernum = 0; gi_playernum < gi_playercnt; gi_playernum++ )
{
gi_playerID = gi_players[gi_playernum]
query_client_cvar ( gi_playerID, "s_automax_distance", "fn_s_automax_distance" )
query_client_cvar ( gi_playerID, "s_automin_distance", "fn_s_automin_distance" )
query_client_cvar ( gi_playerID, "s_eax", "fn_s_eax" )
query_client_cvar ( gi_playerID, "s_max_distance", "fn_s_max_distance" )
query_client_cvar ( gi_playerID, "s_occfactor", "fn_s_occfactor" )
query_client_cvar ( gi_playerID, "s_polykeep", "fn_s_polykeep" )
query_client_cvar ( gi_playerID, "s_polysize", "fn_s_polysize" )
query_client_cvar ( gi_playerID, "s_rolloff", "fn_s_rolloff" )
query_client_cvar ( gi_playerID, "texgamma", "fn_texgamma" )
query_client_cvar ( gi_playerID, "topcolor", "fn_topcolor" )
query_client_cvar ( gi_playerID, "developer", "fn_developer" )
if ( get_pcvar_num ( g_fcos_allow_alt_values ) && get_pcvar_num ( g_fcos_allow_hlguard_values ) ) // If g_fcos_allow_alt_values and g_fcos_allow_hlguard_values = 1
{
query_client_cvar ( gi_playerID, "gl_max_size", "fn_gl_max_size" )
query_client_cvar ( gi_playerID, "gl_wateramp", "fn_gl_wateramp" )
query_client_cvar ( gi_playerID, "gl_zmax", "fn_gl_zmax_avhlg" )
query_client_cvar ( gi_playerID, "r_decals", "fn_r_decals" )
query_client_cvar ( gi_playerID, "s_min_distance", "fn_s_min_distance" )
}
else if ( ! get_pcvar_num ( g_fcos_allow_alt_values ) && get_pcvar_num ( g_fcos_allow_hlguard_values ) ) // If g_fcos_allow_hlguard_values = 1
{
query_client_cvar ( gi_playerID, "gl_max_size", "fn_gl_max_size_sv" )
query_client_cvar ( gi_playerID, "gl_wateramp", "fn_gl_wateramp_sv" )
query_client_cvar ( gi_playerID, "gl_zmax", "fn_gl_zmax_hlg" )
query_client_cvar ( gi_playerID, "r_decals", "fn_r_decals_sv" )
query_client_cvar ( gi_playerID, "s_min_distance", "fn_s_min_distance" )
}
else if ( get_pcvar_num ( g_fcos_allow_alt_values ) && ! get_pcvar_num ( g_fcos_allow_hlguard_values ) ) // If g_fcos_allow_alt_values = 1
{
query_client_cvar ( gi_playerID, "gl_max_size", "fn_gl_max_size" )
query_client_cvar ( gi_playerID, "gl_wateramp", "fn_gl_wateramp" )
query_client_cvar ( gi_playerID, "gl_zmax", "fn_gl_zmax" )
query_client_cvar ( gi_playerID, "r_decals", "fn_r_decals" )
query_client_cvar ( gi_playerID, "s_min_distance", "fn_s_min_distance" )
}
else if ( ! get_pcvar_num ( g_fcos_allow_alt_values ) && ! get_pcvar_num ( g_fcos_allow_hlguard_values ) ) // If g_fcos_allow_alt_values and g_fcos_allow_hlguard_values = 0
{
query_client_cvar ( gi_playerID, "gl_max_size", "fn_gl_max_size_sv" )
query_client_cvar ( gi_playerID, "gl_wateramp", "fn_gl_wateramp_sv" )
query_client_cvar ( gi_playerID, "gl_zmax", "fn_gl_zmax_sv" )
query_client_cvar ( gi_playerID, "r_decals", "fn_r_decals_sv" )
query_client_cvar ( gi_playerID, "s_min_distance", "fn_s_min_distance_sv" )
}
else
{
return PLUGIN_CONTINUE
}
}
return PLUGIN_CONTINUE
}
And now to save space... I will only post the result function of one of these query_client_cvar instances
As you can see, I already have them split up into 5 groups. The problem is not splitting up the query_client_cvar the problem is that when you combine all 16 query_client_cvars just within fn_query1 the result function, as shown in the first post, gets reliable channel overflow. If I were to create result functions that only handled 3 query_client_cvars I would still have 6 query_client_cvar instances for every fn_query function resulting in a total of 30 query_client_cvars and 30 result functions and 30 Arrays of cvars, 30 arrays of cal values, and plus the individual result functions for hlguard and alt value dynamic result functions.