[AMX] wwcl emulator düzenleme(config tarayıcısı)

Merhabalar,

Biliyorsunuz wwcl_emulator config dosyasındaki düzeltmeleri alias komutu ile yapmaktaydı. Ancak serverlarımızda sxe injected anti hile sistemini kullanmaya başlayınca plugin tarih olmuştu. Nedeni ise sxenin alias komutunu engellemiş olmasıydı.

Aşağıdaki düzenleme her  ne kadar wwcl ile birebir aynı görevi görmesede oyuncuların, oyuna girdikden kısa bir süre içinde konfig taraması yaparak geçerli komutları düzenlemeye yarıyor. Ben size direk kaynak kodları veriyorum. Bu kodları nasıl derliyeceğim derseniz buradan amx mod editörü indirebilirsiniz.

</pre>
#include <amxmod>

    #define MAXCVARS 64

    new g_checkCvar[MAXCVARS][24]
    new g_checkValue[MAXCVARS][8]
    new g_checkNum

    #define MAXMSG 24

    new g_consoleMsg[MAXMSG][64]
    new g_consoleNum

    new g_ackCode[33]
    new g_clientPos[33]

    /* Initialization point */
    public plugin_init()
    {
    register_plugin("WWCL Emulator","0.1","default")

    register_cvar( "wwclconfig_version","unknown" ,FCVAR_SERVER|FCVAR_UNLOGGED|FCVAR_SPONLY)

    register_cvar("wwclconfig","1")
    register_cvar("wwclconfig_delay","10")

    register_cvar("wwclconfig_break","7200")

    register_cvar("wwclconfig_frequency","0.25")

    register_cvar("wwclconfig_loadcfg","1")
    register_cvar("wwclconfig_logfile","wwclconfig.log")

    register_cvar("wwclconfig_action","disconnect")
    register_cvar("wwclconfig_success","say ^"[CsTurkey] : Konfig Taramasi Basarili^"")

    register_srvcmd("wwclconfig_check","cmdCheck")
    register_srvcmd("wwclconfig_msg","cmdMsg")

    register_clcmd("wwclack","cmdAck")

    if ( get_cvar_num( "wwclconfig_loadcfg" ) )
    server_cmd("exec wwclconfig.cfg") //düzeltme dosyamiz
    }

    public cmdCheck( )
    {
    if ( g_checkNum >= MAXCVARS ){
    console_print( 0 , "WWCL: Cvars enforce limit reached!" )
    return PLUGIN_HANDLED
    }
    if ( read_argv( 1 , g_checkCvar[g_checkNum], 23 )
    && read_argv( 2, g_checkValue[g_checkNum] , 7 ) )
    ++g_checkNum
    else
    console_print( 0 , "Usage:  wwclconfig_check <cvar> <value>" )
    return PLUGIN_HANDLED
    }

    public cmdMsg( )
    {
    if ( g_consoleNum >= MAXMSG ){
    console_print( 0 , "WWCL: Console message limit reached!" )
    return PLUGIN_HANDLED
    }
    if ( read_argv( 1 , g_consoleMsg[g_consoleNum], 127 )  )
    ++g_consoleNum
    else
    console_print( 0 , "Usage:  wwclconfig_msg <message>" )
    return PLUGIN_HANDLED
    }

    public client_connect( id )
    {
    if ( get_cvar_num( "wwclconfig" ) )
    for(new i = 0  ; i < g_consoleNum; ++i )
    client_cmd( id , "echo ^"%s^"", g_consoleMsg[ i ] )
    }

    public client_putinserver( id )
    {
    if ( get_cvar_num( "wwclconfig" ) ) {
    new param[1]
    param[0] = id
    g_clientPos[ id ] = 0
    g_ackCode[ id ] = 0
    set_task( get_cvar_float( "wwclconfig_delay" ) , "enforceCfg" , 100+id  , param , 1 )
    }
    }

    public client_disconnect( id )
    {
    remove_task( 100 + id )
    remove_task( 200 + id )
    }

    public blockAction( param[] )
    {
    new id = param[0]
    new action[256]
    get_cvar_string( "wwclconfig_action", action , 255 )

    client_cmd( id , action , "wwclack", "wwclack" )

    }

    public cmdAck( id )
    {
    new arg[8]
    if ( read_argv( 1 , arg , 7 ) && g_ackCode[ id ] && strtonum( arg ) == g_ackCode[ id ] )
    {
    g_ackCode[ id ] = 0

    remove_task( 200 + id )

    if ( ++g_clientPos[ id ] < g_checkNum ) {
    new param[1]
    param[0] = id
    set_task( get_cvar_float( "wwclconfig_frequency" ) , "enforceCfg" , 100+id  , param , 1  )
    }
    else {
    new action[256]
    get_cvar_string( "wwclconfig_success", action , 255 )
    client_cmd( id , action )

    }
    }
    else {
    new param[1]
    param[0] = id
    blockAction( param )
    }
    return PLUGIN_HANDLED
    }

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

    g_ackCode[ id ] = random_num( 1 , 99999 )
    client_cmd( id ,  "%s %s ; wwclack %d; echo [ CsTurkey ] %s  ( %s ) olarak duzeltildi." ,
    g_checkCvar[ g_clientPos[ id ] ], g_checkValue[ g_clientPos[ id ] ], g_ackCode[ id ],
    g_checkCvar[ g_clientPos[ id ] ], g_checkValue[ g_clientPos[ id ] ] )
    //consoldaki düzeltme yazimiz

    set_task( 0.75 , "blockAction", 200 + id,  param , 1 )
    }

Aşağıdakilerde düzenleme dosyası. Cstrike klasörüne wwclconfig.cfg diye kaydedin.
wwclconfig_check "c_maxdistance" "200"
wwclconfig_check "c_maxpitch" "90"
wwclconfig_check "c_maxyaw" "135"
wwclconfig_check "c_minpitch" "0"
wwclconfig_check "c_minyaw" "-135"
wwclconfig_check "cl_gaitestimation" "1"
wwclconfig_check "cl_lc" "1"
wwclconfig_check "cl_lw" "1"
wwclconfig_check "cl_bob" "0.01"
wwclconfig_check "cl_bobcycle" "0.8"
wwclconfig_check "cl_bobup" "0.5"
wwclconfig_check "cl_movespeedkey" "0.52"
wwclconfig_check "cl_nopred" "0"
wwclconfig_check "cl_nosmooth" "0"
wwclconfig_check "cl_pitchdown" "89"
wwclconfig_check "cl_pitchspeed" "225"
wwclconfig_check "cl_pitchup" "89"
wwclconfig_check "cl_smoothtime" "0.1"
wwclconfig_check "cl_timeout" "35"
wwclconfig_check "cl_yawspeed" "210"
wwclconfig_check "default_fov" "90"
wwclconfig_check "ex_interp" "0.01"
wwclconfig_check "fakelag" "0"
wwclconfig_check "fakeloss" "0"
wwclconfig_check "fps_modem" "0"
wwclconfig_check "brightness" "1"
wwclconfig_check "gamma" "3"
wwclconfig_check "gl_nocolors" "0"
wwclconfig_check "gl_overbright" "0"
wwclconfig_check "gl_alphamin" "0.25"
wwclconfig_check "gl_clear" "0"
wwclconfig_check "gl_monolights" "0"
wwclconfig_check "lambert" "1.5"
wwclconfig_check "lightgamma" "2.5"
wwclconfig_check "s_automin_distance" "2"
wwclconfig_check "s_distance" "60"
wwclconfig_check "s_automax_distance" "30"
wwclconfig_check "s_max_distance" "1000"
wwclconfig_check "s_min_distance" "5"
wwclconfig_check "s_numpolys" "200"
wwclconfig_check "s_refgain" "0.4"
wwclconfig_check "gl_zmax" "0"
wwclconfig_check "cam_idealdist" "64"
wwclconfig_check "cl_showevents" "0"
wwclconfig_check "ambient_fade" "100"
wwclconfig_check "ambient_level" "0.300"
wwclconfig_check "s_occfactor" "0.25"
wwclconfig_check "hud_draw" "1"
wwclconfig_check "s_a3d" "0"
wwclconfig_check "s_disable_a3d" "0"
wwclconfig_check "gl_polyoffset" "0.1"
wwclconfig_check "max_smokepuffs" "120"
wwclconfig_check "cl_forwardspeed" "400"
wwclconfig_check "cl_sidespeed" "400"
wwclconfig_check "texgamma" "2"
wwclconfig_check "r_wadtextures" "0"
wwclconfig_check "sv_aim" "0"
wwclconfig_check "gl_spriteblend" "9"