Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
herkeste aynı spray pluginde hata
#1
PHP Code:
/*

        ///////////////////////////////////////////////////////////////////////
        //-------------------- 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 boolgp_IsSprayAllowed[33]
new 
boolgp_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(PLUGINVERSIONAUTHOR)
    
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(idgp_AuthIdcharsmax(gp_AuthId))
    
    if(
TrieKeyExists(gp_SprayBannedgp_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(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_DIS_ONE")
    }    
    else
    {
        switch(
get_pcvar_num(gp_CustomSpray))
        {
            case 
0:
            {
                
SetCustomSpray(id)
                
ColorChat(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_BLOCKED")
            }            
            case 
2
            {
                if(
access(idFLAGS_SPRAY))
                {
                    
SetCustomSpray(id)
                    
ColorChat(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_ENABLED_ADMIN")
                }    
                else
                {
                    
ClearCustomSpray(id)
                    
ColorChat(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_DIS_ONE")
                }
            }
        
            case 
3
            {
                if(
gp_IsSprayAllowed[id])
                {
                    
SetCustomSpray(id)
                    
ColorChat(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_ENABLED_ONE")
                }    
                else
                {
                    
ClearCustomSpray(id)
                    
ColorChat(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_DIS_ONE")
                }
            }
        
            case 
4
            {
                
ClearCustomSpray(id)
                
ColorChat(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_DISABLED")
            }
            
            default:
            {    
                
SetCustomSpray(id)
                
ColorChat(idRED"%s %L"PREFIXLANG_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 
playeruser[32], Utime[21], TotalTime
    
    
if(!access(idFLAGS_SPRAY))
        return 
PLUGIN_HANDLED
    
    read_argv
(1usercharsmax(user))
    
read_argv(2Utimecharsmax(Utime))
    
    
player cmd_target(iduser2)
    
TotalTime str_to_num(Utime)
    
    if(!
is_user_connected(player))
        return 
PLUGIN_HANDLED
    
    
if(!access(playerFLAGS_SPRAY) || id == player)
    {
        
SetCustomSpray(player)
        
gp_IsSprayAllowed[player] = true
        gp_IsSprayBlocked
[player] = false
        ColorChat
(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_ENABLED_ONE")
        
Remove_SprayBan(player)
        
        if(
TotalTime 0)
            
gp_SprayTime[player] = TotalTime
    
}
    return 
PLUGIN_HANDLED
}

public 
Admin_DisallowSpray(id)
{
    static 
playeruser[32]
    
    if(!
access(idFLAGS_SPRAY))
        return 
PLUGIN_HANDLED
    
    read_argv
(1usercharsmax(user))
    
    
player cmd_target(iduser2)
    
    if(!
is_user_connected(player))
        return 
PLUGIN_HANDLED
    
    
if(!access(playerFLAGS_SPRAY) || id == player)
    {
        
ClearCustomSpray(player)
        
gp_IsSprayAllowed[player] = false
        gp_IsSprayBlocked
[player] = true
        ColorChat
(idRED"%s %L"PREFIXLANG_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(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_BLOCKED")
        return 
PLUGIN_HANDLED
    
}
    else
    {
        if(
get_systime() - gp_LastSpray[id] < gp_SprayTime[id])
        {
            
ColorChat(idRED"%s %L"PREFIXLANG_SERVER,"SPRAY_RECHARGE", (gp_SprayTime[id] - (get_systime() - gp_LastSpray[id])))
            return 
PLUGIN_HANDLED
        
}
        
gp_LastSpray[id] = get_systime()
        
CustomSprayTime(idgp_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(iOriginvecSprayOrigin)
    
    new 
iPlayer read_data(2)
    
    new 
Float:vecPlayerOrigin[3]
    
get_user_originiPlayeriOrigin1)
    
IVecFVeciOriginvecPlayerOrigin )
        
    new 
Float:vecDirection[3]
    
xs_vec_subvecSprayOriginvecPlayerOriginvecDirection)
    
xs_vec_mul_scalarvecDirection10.0 vector_length(vecDirection), vecDirection)

    new 
Float:vecStop[3]
    
xs_vec_addvecSprayOriginvecDirectionvecStop )
    
xs_vec_mul_scalarvecDirection, -1.0vecDirection )
    
    new 
Float:vecStart[3]
    
xs_vec_addvecSprayOriginvecDirectionvecStart )
    
engfuncEngFunc_TraceLinevecStartvecStopIGNORE_MONSTERS, -1)
    
get_tr20TR_vecPlaneNormalvecDirection )
    
vecDirection[2] = 0.0
    
    xs_vec_mul_scalar
vecDirection5.0 vector_length(vecDirection), vecDirection)
    
xs_vec_addvecSprayOriginvecDirectionvecStart )
    
xs_vec_copyvecStartvecStop )
    
vecStop[2] -= 9999.0
    
    engfunc
EngFunc_TraceLinevecStartvecStopIGNORE_MONSTERS, -1)
    
get_tr20TR_vecEndPosvecStop )

    new 
Floatspray_dist vecStart[2] - vecStop[2]
   
    new 
szName[32]
    
get_user_nameiPlayerszNamecharsmax(szName))
        
    if(
get_pcvar_num(gp_SprayDistType))
        
ColorChat(iPlayerRED"%s %L"PREFIXLANG_SERVER,"SPRAY_DIST_UNITS"szNamespray_dist)
    else
        
ColorChat(0RED"%s %L"PREFIXLANG_SERVER,"SPRAY_DIST_UNITS"szNamespray_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(idgp_BannedNamecharsmax(gp_BannedName))
    
get_user_authid(idgp_BannedIdcharsmax(gp_BannedId))
    
    
formatex(gp_Savelinecharsmax(gp_Saveline), "^"%s^" ^"%s^"^n"gp_BannedIdgp_BannedName)
    
fprintf(iFilegp_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
(idgp_BannedIdcharsmax(gp_BannedId))
    
    while(!
feof(iFile))
    {
        
fgets(iFileszDatacharsmax(szData))
        
parse(szDataszDatacharsmax(szData))
        
        if(
equal(szDatagp_BannedId))
        {
            
write_file(gp_ConfigFile""line)
        }
        
line++
    }
    
fclose(iFile)
}

///////////////////////////////////////////////////////
//----------------- LOAD BAN FILE -------------------//
///////////////////////////////////////////////////////

public plugin_precache()
{
    new 
gp_Config[128]
    
get_localinfo("amxx_configsdir"gp_Configcharsmax(gp_Config))
    
formatex(gp_ConfigFilecharsmax(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(iFileszDatacharsmax(szData))
        
trim(szData)
            
        if(!
szData[0] || szData[0] == ';' || szData[0] == ' ' ) continue

        
parse(szDataszKeycharsmax(szKey))
        
TrieSetCell(gp_SprayBannedszKey1)
    }
    
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.
MSN : [email protected]
WEBSİTE : www.matcharena.net
FACEBOOK : www.facebook.com/MatchArena

- MatchArena.NET -
Güvenli ve hızlı steam satışında doğru adres!

Reply
#2
PHP Code:
/* 

/////////////////////////////////////////////////////////////////////// 
//-------------------- 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 boolgp_IsSprayAllowed[33
new 
boolgp_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(PLUGINVERSIONAUTHOR
    
    
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 
0;inumi++) {
        
gp_LastSpray[i] = get_systime() - get_pcvar_num(gp_SprayInterval);
        
CustomSprayTime(igp_SprayTime)
    }
}

public 
client_authorized(id

    new 
gp_AuthId[35
    
get_user_authid(idgp_AuthIdcharsmax(gp_AuthId)) 
    
    
    if(
TrieKeyExists(gp_SprayBannedgp_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(idFLAGS_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(idgp_SprayTime[id])
    }
        
        
    return 
HAM_IGNORED 

public 
Ham_PlayerKilled(victimattackershouldgib) {
    if(
is_user_connected(attacker)) {
        
gp_LastSpray[attacker] = get_systime() - get_pcvar_num(gp_SprayInterval);
        
CustomSprayTime(attackergp_SprayTime[attacker])
    }
}

public 
Admin_AllowSpray(id

    static 
playeruser[32], Utime[21], TotalTime 
    
    
if(!access(idFLAGS_SPRAY)) 
        return 
PLUGIN_HANDLED 
    
    read_argv
(1usercharsmax(user)) 
    
read_argv(2Utimecharsmax(Utime)) 
    
    
player cmd_target(iduser2
    
TotalTime str_to_num(Utime
    
    if(!
is_user_connected(player)) 
        return 
PLUGIN_HANDLED 
    
    
if(!access(playerFLAGS_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 
playeruser[32
    
    if(!
access(idFLAGS_SPRAY)) 
        return 
PLUGIN_HANDLED 
    
    read_argv
(1usercharsmax(user)) 
    
    
player cmd_target(iduser2
    
    if(!
is_user_connected(player)) 
        return 
PLUGIN_HANDLED 
    
    
if(!access(playerFLAGS_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(idgp_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(iOriginvecSprayOrigin
    
    new 
iPlayer read_data(2
    
    new 
Float:vecPlayerOrigin[3
    
get_user_originiPlayeriOrigin1
    
IVecFVeciOriginvecPlayerOrigin 
    
    new 
Float:vecDirection[3
    
xs_vec_subvecSprayOriginvecPlayerOriginvecDirection
    
xs_vec_mul_scalarvecDirection10.0 vector_length(vecDirection), vecDirection
    
    new 
Float:vecStop[3
    
xs_vec_addvecSprayOriginvecDirectionvecStop 
    
xs_vec_mul_scalarvecDirection, -1.0vecDirection 
    
    new 
Float:vecStart[3
    
xs_vec_addvecSprayOriginvecDirectionvecStart 
    
engfuncEngFunc_TraceLinevecStartvecStopIGNORE_MONSTERS, -1
    
get_tr20TR_vecPlaneNormalvecDirection 
    
vecDirection[2] = 0.0 
    
    xs_vec_mul_scalar
vecDirection5.0 vector_length(vecDirection), vecDirection
    
xs_vec_addvecSprayOriginvecDirectionvecStart 
    
xs_vec_copyvecStartvecStop 
    
vecStop[2] -= 9999.0 
    
    engfunc
EngFunc_TraceLinevecStartvecStopIGNORE_MONSTERS, -1
    
get_tr20TR_vecEndPosvecStop 
    
    
    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(idgp_BannedNamecharsmax(gp_BannedName)) 
    
get_user_authid(idgp_BannedIdcharsmax(gp_BannedId)) 
    
    
formatex(gp_Savelinecharsmax(gp_Saveline), "^"%s^" ^"%s^"^n"gp_BannedIdgp_BannedName
    
fprintf(iFilegp_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
(idgp_BannedIdcharsmax(gp_BannedId)) 
    
    while(!
feof(iFile)) 
    { 
        
fgets(iFileszDatacharsmax(szData)) 
        
parse(szDataszDatacharsmax(szData)) 
        
        if(
equal(szDatagp_BannedId)) 
        { 
            
write_file(gp_ConfigFile""line
        } 
        
line++ 
    } 
    
fclose(iFile


public 
plugin_precache() 

    new 
gp_Config[128
    
get_localinfo("amxx_configsdir"gp_Configcharsmax(gp_Config)) 
    
formatex(gp_ConfigFilecharsmax(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(iFileszDatacharsmax(szData)) 
        
trim(szData
        
        if(!
szData[0] || szData[0] == ';' || szData[0] == ' ' ) continue 
        
        
parse(szDataszKeycharsmax(szKey)) 
        
TrieSetCell(gp_SprayBannedszKey1
    } 
    
fclose(iFile

[/i][/i]


CS:GO ve CS 1.6 için ücretli eklenti yapılır.
Plugin yazmak isteyenlere yardımcı olabilirim.
Skype adresimden ulaşabilirsiniz:
destek_596
Steam: http://steamcommunity.com/id/ca-nemesis/

Reply
#3
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
MSN : [email protected]
WEBSİTE : www.matcharena.net
FACEBOOK : www.facebook.com/MatchArena

- MatchArena.NET -
Güvenli ve hızlı steam satışında doğru adres!

Reply
#4
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 Smile Biraz karmaşık. Direk ekleyebileceğini sanmam. Tek bir kod değil gördüğün gibi


CS:GO ve CS 1.6 için ücretli eklenti yapılır.
Plugin yazmak isteyenlere yardımcı olabilirim.
Skype adresimden ulaşabilirsiniz:
destek_596
Steam: http://steamcommunity.com/id/ca-nemesis/

Reply
#5
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 Code:
public CmdBanCT (idlevelcid) {
    
    if( !
cmd_accessidlevelcid) )  
        return 
PLUGIN_HANDLED;
    
    
client_cmd(id,"amx_banteam CT 0 1")     

    new 
authid[32
    
get_user_authid(idauthid31
    new 
surem[32]
    
read_argv1surem31 );
    new 
sure str_to_num(surem);
    
server_cmd("banid %d %s kick;writeid",sureauthid)  

    new 
ipa[32]
    
get_user_ip(idipa311)
    
server_cmd("addip %d %s;writeip",sure,ipa)
    
server_cmd("writeid;writeip")

    return 
PLUGIN_HANDLED;

MSN : [email protected]
WEBSİTE : www.matcharena.net
FACEBOOK : www.facebook.com/MatchArena

- MatchArena.NET -
Güvenli ve hızlı steam satışında doğru adres!

Reply
#6
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 Smile

Ayrıca bu publicin registeri ni de at. cmd_access de de hata yapıyorsun galiba.


CS:GO ve CS 1.6 için ücretli eklenti yapılır.
Plugin yazmak isteyenlere yardımcı olabilirim.
Skype adresimden ulaşabilirsiniz:
destek_596
Steam: http://steamcommunity.com/id/ca-nemesis/

Reply
#7
PHP Code:
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 Smile) o yuzden ona playerları tanıtmamız gerektigi kanısındayım ama sen daha iyi bilirsin tabi Smile
MSN : [email protected]
WEBSİTE : www.matcharena.net
FACEBOOK : www.facebook.com/MatchArena

- MatchArena.NET -
Güvenli ve hızlı steam satışında doğru adres!

Reply
#8
PHP Code:
if( !cmd_accessidlevelcid) )  
        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 Code:
client_cmd(id,"amx_banteam CT 0 1"

Bu ne için anlam veremedim Smile

PHP Code:
public CmdBanCT (idlevelcid) {
    
    if( !
cmd_accessidlevelcid) )  
        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(playersip311)
        
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 Smile[/i][/i]


CS:GO ve CS 1.6 için ücretli eklenti yapılır.
Plugin yazmak isteyenlere yardımcı olabilirim.
Skype adresimden ulaşabilirsiniz:
destek_596
Steam: http://steamcommunity.com/id/ca-nemesis/

Reply
#9
açıkcası o 1 diye tanımlamışın dedigini ben tanımlamadım, netten ban team plugini buldum onu editlemiştim Smile 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 Smile 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ı
MSN : [email protected]
WEBSİTE : www.matcharena.net
FACEBOOK : www.facebook.com/MatchArena

- MatchArena.NET -
Güvenli ve hızlı steam satışında doğru adres!

Reply
#10
Ne diyeyim çok ilginç Smile Writeip çalışıyorsa writeid de çalışmalı. O zaman sadece amx_banteam CT kodunu dene, öyle yaptığında çalışıyorsa ?


CS:GO ve CS 1.6 için ücretli eklenti yapılır.
Plugin yazmak isteyenlere yardımcı olabilirim.
Skype adresimden ulaşabilirsiniz:
destek_596
Steam: http://steamcommunity.com/id/ca-nemesis/

Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Plugindeki hata düzeltme caglarinhesap 6 5,083 17-08-18, 20:19
Last Post: dangarma16
  Lr pluginde bunny kapama t4t1fati 4 4,518 31-08-16, 17:24
Last Post: KemalKomutan
  Host_Error: UserMsg: Not Present on Client 16 bu hata verıyor 2 uc kes buyukısyanda veli067 8 10,278 01-07-15, 01:49
Last Post: mendark06s
  Pluginde hata lütfen yardım :) tarlacixx 2 4,956 10-04-15, 12:45
Last Post: kedusa
  [JB] Jailbreak Shop (Compile Ederken Hata Veriyor) Nobb 7 6,206 14-01-15, 21:18
Last Post: Neith
  Plugindeki hata düzeltme caglarinhesap 5 5,102 21-08-14, 00:35
Last Post: recep2
  [Hata] Oyuncu İsim Algılama Hatası Dexterz 3 3,433 16-07-14, 05:27
Last Post: JellyB0N
  /meslekmenu hata!! ankaraLI 9 6,484 15-07-14, 19:44
Last Post: bilbaz
  [JB] CT Shop (Çevirirken Hata Veriyor) Nobb 37 8,938 23-03-14, 23:01
Last Post: Nobb
  [JB] JailBreak Shop Çevirirken Hata Veriyor Nobb 11 5,607 20-02-14, 00:16
Last Post: btnbaba007

Foruma Atla:


Users browsing this thread: