herkeste aynı spray pluginde hata
   PHP- Kodu:
 
 /*
        ///////////////////////////////////////////////////////////////////////
        //-------------------- CUSTOM SPRAY MANAGEMENT ----------------------//
        ///////////////////////////////////////////////////////////////////////
        //------------------------- BY -=_|R0CK|_=- -------------------------//
        ///////////////////////////////////////////////////////////////////////
cspray_customtype <0, 1 ,2, 3, 4>
    0 = Block All Sprays for Everyone
    1 = Custom Sprays Enabled For Everyone
    2 = Custom Sprays Enabled For Admins Disabled for others
    3 = Custom Sprays Enabled For Chosen Ones Disabled for others(amx_allowspray <name>)
    4 = Custom Sprays Disabled For Everyone (Same Logo)
cspray_distannouce <0, 1>
    0 = Distance Checker + AnnounceType Disabled
    1 = Distance Checker + AnnounceType Enabled
cspray_distannoucetype <0, 1>
    0 = All Will able to see distance between spray and ground if any one sprays
    1 = Only sprayer will be able to see distance of its own spray
cspray_timeinterval <time>
    time = Will set time interval between two sprays by a user
    
cspray_disallowtype <1, 0> (when amx_disallowspray has been used on a user)
    0 = the users custom spray is blocked only
    1 = the users spray is fully blocked
    
Admin Commands :- 
    amx_allowspray <name> <time> (will allow the person to use his own spray When Spray_CustomType = 2, 3, 4)
    amx_disallowspray <name> (will block the person's spray When Spray_CustomType = 1, 3)
*/
////////////////////////////////////////////////////////
//-------------------- INCLUDES ----------------------//
////////////////////////////////////////////////////////
#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#include <colorchat>
#include <xs>
///////////////////////////////////////////////////////
//-------------------- DEFINES ----------------------//
///////////////////////////////////////////////////////
#define PLUGIN             "Custom Spray Management"
#define VERSION         "1.7"
#define AUTHOR             "-=_|R0CK|_=-"
#define PREFIX             "^x03[CS Management]^x04"
#define FLAGS_SPRAY         ADMIN_RCON
#define SetCustomSpray(%1)    (set_pdata_int(%1, 485, 1)) //m_nCustomFrames = 485
#define ClearCustomSpray(%1)    (set_pdata_int(%1, 485, -1)) //m_nCustomFrames = 485
#define CustomSprayTime(%1,%2)    (set_pdata_int(%1, 486, %2)) // m_flNextDecalTime (time interval for a single user) = 486
///////////////////////////////////////////////////////
//--------------------CONSTANTS----------------------//
///////////////////////////////////////////////////////
new bool: gp_IsSprayAllowed[33]
new bool: gp_IsSprayBlocked[33]
new gp_LastSpray[33]
new gp_SprayTime[33]
new gp_ConfigFile[128]
new gp_CustomSpray
new gp_SprayDistType
new gp_SprayDist
new gp_SprayInterval
new gp_BlockType
new Trie:gp_SprayBanned
///////////////////////////////////////////////////////
//--------------------- BRAIN -----------------------//
///////////////////////////////////////////////////////
public plugin_init() 
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
    register_dictionary_colored("spraymanagement.txt")
    
    gp_CustomSpray = register_cvar("cspray_customtype","1")
    gp_SprayDist = register_cvar("cspray_distannouce","0")
    gp_SprayDistType = register_cvar("cspray_distannouceType","0")
    gp_SprayInterval = register_cvar("cspray_timeinterval", "30")
    gp_BlockType = register_cvar("cspray_disallowtype", "0")
    
    register_clcmd("amx_allowspray", "Admin_AllowSpray", FLAGS_SPRAY)
    register_clcmd("amx_disallowspray", "Admin_DisallowSpray", FLAGS_SPRAY)
    
    register_logevent("FirstRound", 2, "0=World triggered", "1&Restart_Round_")
    register_logevent("FirstRound", 2, "0=World triggered", "1=Game_Commencing")
    
    RegisterHam(Ham_Spawn, "player", "Ham_Playerspawn", 1)
    register_event("23", "Event_Spray", "a", "1=112" )
    register_impulse(201, "impulse_201")
}
////////////////////////////////////////////////////////
//------------------ FIRST ROUND ---------------------//
////////////////////////////////////////////////////////
public FirstRound()
{
    server_cmd("sv_allowupload 1")
    server_cmd("sv_allowdownload 1")
}
////////////////////////////////////////////////////////
//----------------- CLIENT CONNECT -------------------//
////////////////////////////////////////////////////////
public client_authorized(id)
{
    new gp_AuthId[35]
    get_user_authid(id, gp_AuthId, charsmax(gp_AuthId))
    
    if(TrieKeyExists(gp_SprayBanned, gp_AuthId))
        gp_IsSprayBlocked[id] = true
}
////////////////////////////////////////////////////////
//------------------ CLIENT SPAWN --------------------//
////////////////////////////////////////////////////////
public Ham_Playerspawn(id)
{
    if(!is_user_connected(id))
        return HAM_IGNORED
        
    if(gp_IsSprayBlocked[id])
    {
        ClearCustomSpray(id)
        ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_DIS_ONE")
    }    
    else
    {
        switch(get_pcvar_num(gp_CustomSpray))
        {
            case 0:
            {
                SetCustomSpray(id)
                ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_BLOCKED")
            }            
            case 2: 
            {
                if(access(id, FLAGS_SPRAY))
                {
                    SetCustomSpray(id)
                    ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_ENABLED_ADMIN")
                }    
                else
                {
                    ClearCustomSpray(id)
                    ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_DIS_ONE")
                }
            }
        
            case 3: 
            {
                if(gp_IsSprayAllowed[id])
                {
                    SetCustomSpray(id)
                    ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_ENABLED_ONE")
                }    
                else
                {
                    ClearCustomSpray(id)
                    ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_DIS_ONE")
                }
            }
        
            case 4: 
            {
                ClearCustomSpray(id)
                ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_DISABLED")
            }
            
            default:
            {    
                SetCustomSpray(id)
                ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_ENABLED")
            }
        }
    }
    
    if(!gp_IsSprayAllowed[id])
        gp_SprayTime[id] = get_pcvar_num(gp_SprayInterval)
    
    return HAM_IGNORED
}
////////////////////////////////////////////////////////
//----------------- ADMIN COMMANDS -------------------//
////////////////////////////////////////////////////////
public Admin_AllowSpray(id)
{
    static player, user[32], Utime[21], TotalTime
    
    if(!access(id, FLAGS_SPRAY))
        return PLUGIN_HANDLED
    
    read_argv(1, user, charsmax(user))
    read_argv(2, Utime, charsmax(Utime))
    
    player = cmd_target(id, user, 2)
    TotalTime = str_to_num(Utime)
    
    if(!is_user_connected(player))
        return PLUGIN_HANDLED
    
    if(!access(player, FLAGS_SPRAY) || id == player)
    {
        SetCustomSpray(player)
        gp_IsSprayAllowed[player] = true
        gp_IsSprayBlocked[player] = false
        ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_ENABLED_ONE")
        Remove_SprayBan(player)
        
        if(TotalTime > 0)
            gp_SprayTime[player] = TotalTime
    }
    return PLUGIN_HANDLED
}
public Admin_DisallowSpray(id)
{
    static player, user[32]
    
    if(!access(id, FLAGS_SPRAY))
        return PLUGIN_HANDLED
    
    read_argv(1, user, charsmax(user))
    
    player = cmd_target(id, user, 2)
    
    if(!is_user_connected(player))
        return PLUGIN_HANDLED
    
    if(!access(player, FLAGS_SPRAY) || id == player)
    {
        ClearCustomSpray(player)
        gp_IsSprayAllowed[player] = false
        gp_IsSprayBlocked[player] = true
        ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_DIS_ONE")
        Save_SprayBan(player)
        
        gp_SprayTime[player] = get_pcvar_num(gp_SprayInterval)
    }
    return PLUGIN_HANDLED
}
///////////////////////////////////////////////////////
//----------------- SPRAY CONTROL -------------------//
///////////////////////////////////////////////////////
public impulse_201(id) 
{ 
    if(!get_pcvar_num(gp_CustomSpray) || (get_pcvar_num(gp_BlockType) && gp_IsSprayBlocked[id]))
    {
        ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_BLOCKED")
        return PLUGIN_HANDLED
    }
    else
    {
        if(get_systime() - gp_LastSpray[id] < gp_SprayTime[id])
        {
            ColorChat(id, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_RECHARGE", (gp_SprayTime[id] - (get_systime() - gp_LastSpray[id])))
            return PLUGIN_HANDLED
        }
        gp_LastSpray[id] = get_systime()
        CustomSprayTime(id, gp_SprayTime[id])
    }
    return PLUGIN_CONTINUE
}
////////////////////////////////////////////////////////
//----------------- SPRAY DISTANCE -------------------//
////////////////////////////////////////////////////////
//------------------ BY:- Exolent --------------------//
////////////////////////////////////////////////////////
public Event_Spray()
{
    if(!get_pcvar_num(gp_SprayDist))
        return PLUGIN_CONTINUE
            
    new iOrigin[3]
    iOrigin[0] = read_data(3)
    iOrigin[1] = read_data(4)
    iOrigin[2] = read_data(5)
        
    new Float:vecSprayOrigin[3]
    IVecFVec(iOrigin, vecSprayOrigin)
    
    new iPlayer = read_data(2)
    
    new Float:vecPlayerOrigin[3]
    get_user_origin( iPlayer, iOrigin, 1)
    IVecFVec( iOrigin, vecPlayerOrigin )
        
    new Float:vecDirection[3]
    xs_vec_sub( vecSprayOrigin, vecPlayerOrigin, vecDirection)
    xs_vec_mul_scalar( vecDirection, 10.0 / vector_length(vecDirection), vecDirection)
    new Float:vecStop[3]
    xs_vec_add( vecSprayOrigin, vecDirection, vecStop )
    xs_vec_mul_scalar( vecDirection, -1.0, vecDirection )
    
    new Float:vecStart[3]
    xs_vec_add( vecSprayOrigin, vecDirection, vecStart )
    engfunc( EngFunc_TraceLine, vecStart, vecStop, IGNORE_MONSTERS, -1, 0 )
    get_tr2( 0, TR_vecPlaneNormal, vecDirection )
    vecDirection[2] = 0.0
    
    xs_vec_mul_scalar( vecDirection, 5.0 / vector_length(vecDirection), vecDirection)
    xs_vec_add( vecSprayOrigin, vecDirection, vecStart )
    xs_vec_copy( vecStart, vecStop )
    vecStop[2] -= 9999.0
    
    engfunc( EngFunc_TraceLine, vecStart, vecStop, IGNORE_MONSTERS, -1, 0 )
    get_tr2( 0, TR_vecEndPos, vecStop )
    new Float: spray_dist = vecStart[2] - vecStop[2]
   
    new szName[32]
    get_user_name( iPlayer, szName, charsmax(szName))
        
    if(get_pcvar_num(gp_SprayDistType))
        ColorChat(iPlayer, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_DIST_UNITS", szName, spray_dist)
    else
        ColorChat(0, RED, "%s %L", PREFIX, LANG_SERVER,"SPRAY_DIST_UNITS", szName, spray_dist)
    
    return PLUGIN_CONTINUE
}
/////////////////////////////////////////////////////////
//----------------- SAVING BAN FILE -------------------//
/////////////////////////////////////////////////////////
public Save_SprayBan(id)
{
    new gp_BannedName[33], gp_BannedId[35], gp_Saveline[128], iFile = fopen(gp_ConfigFile, "a+")
    
    if(!iFile) return
     
    get_user_name(id, gp_BannedName, charsmax(gp_BannedName))
    get_user_authid(id, gp_BannedId, charsmax(gp_BannedId))
    
    formatex(gp_Saveline, charsmax(gp_Saveline), "^"%s^" ^"%s^"^n", gp_BannedId, gp_BannedName)
    fprintf(iFile, gp_Saveline)
    
    fclose(iFile)
}
public Remove_SprayBan(id)
{
    new gp_BannedId[35], iFile = fopen(gp_ConfigFile, "a+")
    
    if(!iFile) return
    
    new szData[128], line
    get_user_authid(id, gp_BannedId, charsmax(gp_BannedId))
    
    while(!feof(iFile))
    {
        fgets(iFile, szData, charsmax(szData))
        parse(szData, szData, charsmax(szData))
        
        if(equal(szData, gp_BannedId))
        {
            write_file(gp_ConfigFile, "", line)
        }
        line++
    }
    fclose(iFile)
}
///////////////////////////////////////////////////////
//----------------- LOAD BAN FILE -------------------//
///////////////////////////////////////////////////////
public plugin_precache()
{
    new gp_Config[128]
    get_localinfo("amxx_configsdir", gp_Config, charsmax(gp_Config))
    formatex(gp_ConfigFile, charsmax(gp_ConfigFile), "%s/CS_BannedUsers.ini", gp_Config)
    
    if(!file_exists(gp_ConfigFile))
    {
        write_file(gp_ConfigFile, ";Custom Spray Management", 0)
        write_file(gp_ConfigFile, ";Credits to -=_|R0CK|_=- ^n", 1)
        return
    }
    
    new iFile = fopen(gp_ConfigFile, "rt")
    if(!iFile) return
    
    new szData[128], szKey[35]
    gp_SprayBanned = TrieCreate()
    
    while(!feof(iFile))
    {
        fgets(iFile, szData, charsmax(szData))
        trim(szData)
            
        if(!szData[0] || szData[0] == ';' || szData[0] == ' ' ) continue
        parse(szData, szKey, charsmax(szKey))
        TrieSetCell(gp_SprayBanned, szKey, 1)
    }
    fclose(iFile)
}
////////////////////////////////////////////////////////
//------------------- PLUGIN END ---------------------//
////////////////////////////////////////////////////////
public plugin_end()
{
    TrieDestroy(gp_SprayBanned)
} 
  
  arkadaşlar bu plugini herkeste aynı spray çıkması icin kullanıyorum. yani herkes spray yaptıgı zaman eski valve logosu cıkıyo ufak olan. oyuzden kullanyıorum fakat bi bug var. Normalde serverda "decalfrequency 60" ve spray 1 kere bastıgım zaman 60 saniye sonra yenisini basabılıyoruz yada adam vurdugumuzda yeni spray basabiliyoruz. yada her el başı yeni spray basabiliyoruz fakat bu plugini kullandıgımda orada "cspray_timeinterval "23" yazıyo mesela. 23 saniyede bir spray basabilecegimi gösteriyo bu. ve adam vursamda yeni round başlasada 23 saniye dolmadan yeni spray basamıyoruz. Bunu nasıl fixlerim ? orjinal haline cevirirm yardım ederseniz sevinirim.
     Cevap: herkeste aynı spray pluginde hata
   PHP- Kodu:
 
 /* 
/////////////////////////////////////////////////////////////////////// 
//-------------------- CUSTOM SPRAY MANAGEMENT ----------------------// 
/////////////////////////////////////////////////////////////////////// 
//------------------------- BY -=_|R0CK|_=- -------------------------// 
/////////////////////////////////////////////////////////////////////// 
cspray_customtype <0, 1 ,2, 3, 4> 
0 = Block All Sprays for Everyone 
1 = Custom Sprays Enabled For Everyone 
2 = Custom Sprays Enabled For Admins Disabled for others 
3 = Custom Sprays Enabled For Chosen Ones Disabled for others(amx_allowspray <name>) 
4 = Custom Sprays Disabled For Everyone (Same Logo) 
cspray_distannouce <0, 1> 
0 = Distance Checker + AnnounceType Disabled 
1 = Distance Checker + AnnounceType Enabled 
cspray_distannoucetype <0, 1> 
0 = All Will able to see distance between spray and ground if any one sprays 
1 = Only sprayer will be able to see distance of its own spray 
cspray_timeinterval <time> 
time = Will set time interval between two sprays by a user 
cspray_disallowtype <1, 0> (when amx_disallowspray has been used on a user) 
0 = the users custom spray is blocked only 
1 = the users spray is fully blocked 
Admin Commands :-  
amx_allowspray <name> <time> (will allow the person to use his own spray When Spray_CustomType = 2, 3, 4) 
amx_disallowspray <name> (will block the person's spray When Spray_CustomType = 1, 3) 
*/ 
//////////////////////////////////////////////////////// 
//-------------------- INCLUDES ----------------------// 
//////////////////////////////////////////////////////// 
#include <amxmodx> 
#include <amxmisc> 
#include <engine> 
#include <fakemeta> 
#include <hamsandwich> 
#include <xs> 
/////////////////////////////////////////////////////// 
//-------------------- DEFINES ----------------------// 
/////////////////////////////////////////////////////// 
#define PLUGIN             "Custom Spray Management" 
#define VERSION         "1.7" 
#define AUTHOR             "-=_|R0CK|_=-" 
#define PREFIX             "^x03[CS Management]^x04" 
#define FLAGS_SPRAY         ADMIN_RCON 
#define SetCustomSpray(%1)    (set_pdata_int(%1, 485, 1)) //m_nCustomFrames = 485 
#define ClearCustomSpray(%1)    (set_pdata_int(%1, 485, -1)) //m_nCustomFrames = 485 
#define CustomSprayTime(%1,%2)    (set_pdata_int(%1, 486, %2)) // m_flNextDecalTime (time interval for a single user) = 486 
/////////////////////////////////////////////////////// 
//--------------------CONSTANTS----------------------// 
/////////////////////////////////////////////////////// 
new bool: gp_IsSprayAllowed[33] 
new bool: gp_IsSprayBlocked[33] 
new gp_LastSpray[33] 
new gp_SprayTime[33] 
new gp_ConfigFile[128] 
new gp_CustomSpray 
new gp_SprayDistType 
new gp_SprayDist 
new gp_SprayInterval 
new gp_BlockType 
new Trie:gp_SprayBanned 
/////////////////////////////////////////////////////// 
//--------------------- BRAIN -----------------------// 
/////////////////////////////////////////////////////// 
public plugin_init()  
{ 
    register_plugin(PLUGIN, VERSION, AUTHOR) 
    
    gp_CustomSpray = register_cvar("cspray_customtype","1") 
    gp_SprayDist = register_cvar("cspray_distannouce","0") 
    gp_SprayDistType = register_cvar("cspray_distannouceType","0") 
    gp_SprayInterval = register_cvar("cspray_timeinterval", "30") 
    gp_BlockType = register_cvar("cspray_disallowtype", "0") 
    
    register_clcmd("amx_allowspray", "Admin_AllowSpray", FLAGS_SPRAY) 
    register_clcmd("amx_disallowspray", "Admin_DisallowSpray", FLAGS_SPRAY) 
    
    register_logevent("FirstRound", 2, "0=World triggered", "1&Restart_Round_") 
    register_logevent("FirstRound", 2, "0=World triggered", "1=Game_Commencing") 
    register_logevent("RoundStart", 2, "0=World triggered", "1=Round_Start") 
    
    RegisterHam(Ham_Spawn, "player", "Ham_Playerspawn", 1) 
    RegisterHam(Ham_Killed, "player", "Ham_PlayerKilled", 1) 
    register_event("23", "Event_Spray", "a", "1=112" ) 
    register_impulse(201, "impulse_201") 
} 
public FirstRound() 
{ 
    server_cmd("sv_allowupload 1") 
    server_cmd("sv_allowdownload 1") 
} 
public RoundStart() {
    new players[32],inum;
    get_players(players,inum)
    for(new i = 0;i < inum; i++) {
        gp_LastSpray[i] = get_systime() - get_pcvar_num(gp_SprayInterval);
        CustomSprayTime(i, gp_SprayTime[i])
    }
}
public client_authorized(id) 
{ 
    new gp_AuthId[35] 
    get_user_authid(id, gp_AuthId, charsmax(gp_AuthId)) 
    
    
    if(TrieKeyExists(gp_SprayBanned, gp_AuthId)) 
        gp_IsSprayBlocked[id] = true 
} 
public Ham_Playerspawn(id) 
{ 
    if(!is_user_connected(id)) 
        return HAM_IGNORED 
    
    gp_SprayTime[id] = get_pcvar_num(gp_SprayInterval) ;
    
    if(gp_IsSprayBlocked[id]) 
    { 
        ClearCustomSpray(id) 
        
    }     
    else 
    { 
        switch(get_pcvar_num(gp_CustomSpray)) 
        { 
            case 0: 
            { 
                SetCustomSpray(id) 
                
            }             
            case 2:  
            { 
                if(access(id, FLAGS_SPRAY)) 
                { 
                    SetCustomSpray(id) 
                    
                }     
                else 
                { 
                    ClearCustomSpray(id) 
                    
                } 
            } 
            
            case 3:  
            { 
                if(gp_IsSprayAllowed[id]) 
                { 
                    SetCustomSpray(id) 
                    
                }     
                else 
                { 
                    ClearCustomSpray(id) 
                    
                } 
            } 
            
            case 4:  
            { 
                ClearCustomSpray(id) 
                
            } 
            
            default: 
            {     
                SetCustomSpray(id) 
            
            } 
        } 
    } 
    if(!gp_IsSprayAllowed[id]) {
        gp_LastSpray[id] = get_systime() - get_pcvar_num(gp_SprayInterval);
        CustomSprayTime(id, gp_SprayTime[id])
    }
        
        
    return HAM_IGNORED 
} 
public Ham_PlayerKilled(victim, attacker, shouldgib) {
    if(is_user_connected(attacker)) {
        gp_LastSpray[attacker] = get_systime() - get_pcvar_num(gp_SprayInterval);
        CustomSprayTime(attacker, gp_SprayTime[attacker])
    }
}
public Admin_AllowSpray(id) 
{ 
    static player, user[32], Utime[21], TotalTime 
    
    if(!access(id, FLAGS_SPRAY)) 
        return PLUGIN_HANDLED 
    
    read_argv(1, user, charsmax(user)) 
    read_argv(2, Utime, charsmax(Utime)) 
    
    player = cmd_target(id, user, 2) 
    TotalTime = str_to_num(Utime) 
    
    if(!is_user_connected(player)) 
        return PLUGIN_HANDLED 
    
    if(!access(player, FLAGS_SPRAY) || id == player) 
    { 
        SetCustomSpray(player) 
        gp_IsSprayAllowed[player] = true 
        gp_IsSprayBlocked[player] = false 
        Remove_SprayBan(player) 
        
        if(TotalTime > 0) 
            gp_SprayTime[player] = TotalTime 
    } 
    return PLUGIN_HANDLED 
} 
public Admin_DisallowSpray(id) 
{ 
    static player, user[32] 
    
    if(!access(id, FLAGS_SPRAY)) 
        return PLUGIN_HANDLED 
    
    read_argv(1, user, charsmax(user)) 
    
    player = cmd_target(id, user, 2) 
    
    if(!is_user_connected(player)) 
        return PLUGIN_HANDLED 
    
    if(!access(player, FLAGS_SPRAY) || id == player) 
    { 
        ClearCustomSpray(player) 
        gp_IsSprayAllowed[player] = false 
        gp_IsSprayBlocked[player] = true 
        Save_SprayBan(player) 
        gp_SprayTime[player] = get_pcvar_num(gp_SprayInterval) 
        
    } 
    return PLUGIN_HANDLED 
} 
public impulse_201(id)  
{  
    if(!get_pcvar_num(gp_CustomSpray) || (get_pcvar_num(gp_BlockType) && gp_IsSprayBlocked[id])) 
    { 
        
        return PLUGIN_HANDLED 
    } 
    else 
    { 
        if(get_systime() - gp_LastSpray[id] < gp_SprayTime[id]) 
        { 
            
            return PLUGIN_HANDLED 
        } 
        gp_LastSpray[id] = get_systime() 
        CustomSprayTime(id, gp_SprayTime[id]) 
    } 
    return PLUGIN_CONTINUE 
} 
public Event_Spray() 
{ 
    if(!get_pcvar_num(gp_SprayDist)) 
        return PLUGIN_CONTINUE 
    
    new iOrigin[3] 
    iOrigin[0] = read_data(3) 
    iOrigin[1] = read_data(4) 
    iOrigin[2] = read_data(5) 
    
    new Float:vecSprayOrigin[3] 
    IVecFVec(iOrigin, vecSprayOrigin) 
    
    new iPlayer = read_data(2) 
    
    new Float:vecPlayerOrigin[3] 
    get_user_origin( iPlayer, iOrigin, 1) 
    IVecFVec( iOrigin, vecPlayerOrigin ) 
    
    new Float:vecDirection[3] 
    xs_vec_sub( vecSprayOrigin, vecPlayerOrigin, vecDirection) 
    xs_vec_mul_scalar( vecDirection, 10.0 / vector_length(vecDirection), vecDirection) 
    
    new Float:vecStop[3] 
    xs_vec_add( vecSprayOrigin, vecDirection, vecStop ) 
    xs_vec_mul_scalar( vecDirection, -1.0, vecDirection ) 
    
    new Float:vecStart[3] 
    xs_vec_add( vecSprayOrigin, vecDirection, vecStart ) 
    engfunc( EngFunc_TraceLine, vecStart, vecStop, IGNORE_MONSTERS, -1, 0 ) 
    get_tr2( 0, TR_vecPlaneNormal, vecDirection ) 
    vecDirection[2] = 0.0 
    
    xs_vec_mul_scalar( vecDirection, 5.0 / vector_length(vecDirection), vecDirection) 
    xs_vec_add( vecSprayOrigin, vecDirection, vecStart ) 
    xs_vec_copy( vecStart, vecStop ) 
    vecStop[2] -= 9999.0 
    
    engfunc( EngFunc_TraceLine, vecStart, vecStop, IGNORE_MONSTERS, -1, 0 ) 
    get_tr2( 0, TR_vecEndPos, vecStop ) 
    
    
    return PLUGIN_CONTINUE 
} 
public Save_SprayBan(id) 
{ 
    new gp_BannedName[33], gp_BannedId[35], gp_Saveline[128], iFile = fopen(gp_ConfigFile, "a+") 
    
    if(!iFile) return 
    
    get_user_name(id, gp_BannedName, charsmax(gp_BannedName)) 
    get_user_authid(id, gp_BannedId, charsmax(gp_BannedId)) 
    
    formatex(gp_Saveline, charsmax(gp_Saveline), "^"%s^" ^"%s^"^n", gp_BannedId, gp_BannedName) 
    fprintf(iFile, gp_Saveline) 
    
    fclose(iFile) 
} 
public Remove_SprayBan(id) 
{ 
    new gp_BannedId[35], iFile = fopen(gp_ConfigFile, "a+") 
    
    if(!iFile) return 
    
    new szData[128], line 
    get_user_authid(id, gp_BannedId, charsmax(gp_BannedId)) 
    
    while(!feof(iFile)) 
    { 
        fgets(iFile, szData, charsmax(szData)) 
        parse(szData, szData, charsmax(szData)) 
        
        if(equal(szData, gp_BannedId)) 
        { 
            write_file(gp_ConfigFile, "", line) 
        } 
        line++ 
    } 
    fclose(iFile) 
} 
public plugin_precache() 
{ 
    new gp_Config[128] 
    get_localinfo("amxx_configsdir", gp_Config, charsmax(gp_Config)) 
    formatex(gp_ConfigFile, charsmax(gp_ConfigFile), "%s/CS_BannedUsers.ini", gp_Config) 
    
    if(!file_exists(gp_ConfigFile)) 
    { 
        write_file(gp_ConfigFile, ";Custom Spray Management", 0) 
        write_file(gp_ConfigFile, ";Credits to Shakespeare ^n", 1) 
        return 
    } 
    
    new iFile = fopen(gp_ConfigFile, "rt") 
    if(!iFile) return 
    
    new szData[128], szKey[35] 
    gp_SprayBanned = TrieCreate() 
    
    while(!feof(iFile)) 
    { 
        fgets(iFile, szData, charsmax(szData)) 
        trim(szData) 
        
        if(!szData[0] || szData[0] == ';' || szData[0] == ' ' ) continue 
        
        parse(szData, szKey, charsmax(szKey)) 
        TrieSetCell(gp_SprayBanned, szKey, 1) 
    } 
    fclose(iFile) 
} 
  
  
     Cevap: herkeste aynı spray pluginde hata
  acaba ne kısmını düzelttin tek bi kod ise buradan yazma imkanın varmı ? maç botunun içinde düzelteyim bende direk canberkcim
     Cevap: herkeste aynı spray pluginde hata
  Roundstart ve Ham_Killed eventlerini ekledim. 
Roundstart, Ham_Killed ve Ham_Spawn eventlerine ;
 
en son ne zaman spreye basıldıgını içinde unix-time(tarihin saniyeye çevrilmiş hali) olarak barındırılan degiskenden, cvardaki interval süresini çıkarttım. Örneğin interval ayarı 23 diyelim. Ve en son spreye 567823892. zamanda basıldı. Bu zamandan 23 saniyeyi eksilttim. Böylece sayaç 0 lanmış oldu :) Biraz karmaşık. Direk ekleyebileceğini sanmam. Tek bir kod değil gördüğün gibi
     Cevap: herkeste aynı spray pluginde hata
  anladım ben tümden değiştirdim emeğine eline sağlık kardeşim hakkını ödeyemem.
 
 ---------- Alttaki Mesaj Zamani 22:30 ---------- Önceki Mesaj Zamani 22:26 ----------
 
 birde bu az önce get_user_authid ile ilgili bişeyler sormuştum. Ben amx_banteam T ve amx_banteam Ct  gibi komutlar kullanıyorum. onun altına o verdigin komutları ekledim fakat bu sefer de mesela ben CT takımındayım. /bant komutu uyguluyorum terör takımına ban atsın diye. kimseye ban atmıyor direk bana ban atıyo. yada Terördeyim diyelim /banct diyorum ct yi banlayacagına direk bana ban atıyo. yani ekledigim bi kodda yanlışlık var sanırsam benim steamid mi alıp banliste ekliyo ban atılacak oyuncularınkini değil. kodu yazıyorum acaba nerde yanlışım var gösterirmisin.
  PHP- Kodu:
 
 public CmdBanCT (id, level, cid) {
    
    if( !cmd_access( id, level, cid, 1 ) )  
        return PLUGIN_HANDLED;
    
    client_cmd(id,"amx_banteam CT 0 1")     
    new authid[32] 
    get_user_authid(id, authid, 31) 
    new surem[32]
    read_argv( 1, surem, 31 );
    new sure = str_to_num(surem);
    server_cmd("banid %d %s kick;writeid",sure, authid)  
    new ipa[32]
    get_user_ip(id, ipa, 31, 1)
    server_cmd("addip %d %s;writeip",sure,ipa)
    server_cmd("writeid;writeip")
    return PLUGIN_HANDLED;
} 
  
  
     Cevap: herkeste aynı spray pluginde hata
  get_user_authid(id, authid, 31)
 
Komutu kullanan kişi = id
Steamid sini aldığın kişi = id 
dolayısıyla komutu kullanan banlanır :)
 
Ayrıca bu publicin registeri ni de at. cmd_access de de hata yapıyorsun galiba.
     Cevap: herkeste aynı spray pluginde hata
   PHP- Kodu:
 
 register_concmd("sch_bant","CmdBanT", ADMIN_CVAR)
    register_concmd("sch_banct","CmdBanCT", ADMIN_CVAR)
    register_concmd("sch_banspec","CmdBanS", ADMIN_CVAR)
    register_concmd("sch_banall","CmdBanAll", ADMIN_CVAR) 
  
  bunlar register yerleri fakat ben buralarda hata oldugunu sanmıyorum çünkü dedigin gibi  
get_user_authid(id, authid, 31) de id kısmında komutu ben kullandıgım icin id beni göruyo bana ban atıyo :)) o yuzden ona playerları tanıtmamız gerektigi kanısındayım ama sen daha iyi bilirsin tabi :)
     Cevap: herkeste aynı spray pluginde hata
   PHP- Kodu:
 
 if( !cmd_access( id, level, cid, 1 ) )  
        return PLUGIN_HANDLED; 
  
  Son parametreye 1 yazmışsın. Oyleyse sure tanıtmamalıydın. Sureyi sabitlemeliydin. Süreyi konsoldan girebileyim dersen buraya 2 yazmalısın çünkü komutla birlikte bir de süre parametresi olduğundan 2 olmalı.
 
  PHP- Kodu:
 
 client_cmd(id,"amx_banteam CT 0 1") 
  
  Bu ne için anlam veremedim :)
 
  PHP- Kodu:
 
 public CmdBanCT (id, level, cid) {
    
    if( !cmd_access( id, level, cid, 1 ) )  
        return PLUGIN_HANDLED;
    
    new 
    authid[32],
    players[32],
    ip[32],
    inum;
    
    get_players(players,inum,"e","CT") // CT deki Oyunculari Bul.
    
    for(new i=0;i<inum;i++) { // Tum CT Oyunculari Icin Döngü başlat.
        get_user_authid(players[i],authid,31)
        get_user_ip(players[i], ip, 31, 1)
        server_cmd("banid 0 %s kick;writeid", authid)  
        server_cmd("addip 0 %s;writeip",ip)
    }
    
    server_cmd("writeid;writeip")
    return PLUGIN_HANDLED;
} 
  
  Bu da en doğru yöntem :)
     Cevap: herkeste aynı spray pluginde hata
  açıkcası o 1 diye tanımlamışın dedigini ben tanımlamadım, netten ban team plugini buldum onu editlemiştim :) hemen plugini yapıp deniyorum haber vericem
 
 ---------- Alttaki Mesaj Zamani 23:09 ---------- Önceki Mesaj Zamani 22:52 ----------
 
 kodlarda bi sıkıntı yok fakat steamid leri bu sefer hiç yazmıyo :) listip.cfg ye oyuncularin ip lerini yazıyo fakat banned.cfg de steamid ler yazılmıyo ? oyuncuların steamid lerini cekmiyo demekki ne yapmalı
     Cevap: herkeste aynı spray pluginde hata
  Ne diyeyim çok ilginç :) Writeip çalışıyorsa writeid de çalışmalı. O zaman sadece amx_banteam CT kodunu dene, öyle yaptığında çalışıyorsa ?