Консоль сервера спамит никами игроков

SheeZe

Новичок
Сообщения
8
Реакции
0
Доброго форумчане, скриптеры и все кто это читает)

Столкнулся с такой проблемой, после установки плагина killachievement_1.5.amxx
В консоль сервера сыпятся имена игроков, без дополнительной информации, поковырявшись в коде, ничего не нашёл о выводе информации.
Сам плагин работает исправно, ошибок нет.
Подскажите как убрать вывод информации в консоль сервера?

Код:
#include <amxmodx>
#include <fakemeta>
#include <reapi>
#include <xs>

new const VERSION[] = "1.5";

#define add_ex(%0,%1)            (add(%0,charsmax(%0),%1))

enum _:XYZ {
    Float:X,Float:Y,Float:Z
};

enum flash_state {
    FLASH_NONE = 0,
    FLASH_TIME,
    FLASH_HOLD
};

new const g_szToggleCmd[] = "akill";

new const g_iPrintType[] = "%all%"

#define NO_ZOOM            
#define    ON_GROUND        
#define ONE_SHOT       
#define WALL_SHOT       
#define LOW_HEALTH        
#define DUBLE_KILL        
#define ACE                
#define GRENADE_KILL    
#define FLASH_KILL        

new const g_szMessage[] = "^4%id%^1 убил ^4%victim% ";

#if defined ACE
    new const g_szMessageAce[] = "^4%id% ^1Совершил ^3убийство всех";
#endif

#if defined NO_ZOOM
    new const g_szNoZoom[] = "^3[^2Без прицела^3] ";
#endif

#if defined ON_GROUND
    new const g_szOnGround[] = "^3[^2В прыжке^3] ";
#endif

#if defined ONE_SHOT
    new const g_szOneShot[] = "^3[^2Одной пулей^3] ";
#endif

#if defined WALL_SHOT
    new const g_szWallShot[] = "^3[^2Прострелом^3] ";
#endif

#if defined LOW_HEALTH
    new const g_szLowHealth[] = "^3[^2На одном дыхании^3] ";

    const g_iLowHealtNum = 10;   
#endif

#if defined DUBLE_KILL
    new const g_szDubleKill[] = "^3[^2Двоих одной пулей [^3%victim%^4]^3] ";
#endif

#if defined GRENADE_KILL
    new const g_szGrenadeKill[] = "^3[^2Совершил ^3%grenade_kill% ^2убийств с грены^3] ";

    const g_iGrenadeKillNum = 2; 
#endif

#if defined FLASH_KILL
    new const g_szFlashKill[] = "^3[^2Под слепой^3] ";
#endif

new
    bool:p_bToggleMessage[33],

    #if defined ACE
        p_iKillsAccount[33],
    #endif
    
    #if defined GRENADE_KILL
        p_iGrenadeKillAccount[33];
    #endif

public plugin_init() {
    register_plugin("KillAchievement",VERSION,"b0t.");

    UTIL_RegisterAllChats(g_szToggleCmd,"TogglePrintMessage__Func");

    RegisterHookChain(RG_CBasePlayer_Killed,"RG_CBasePlayerKilled_Post", .post = true);
    
    #if defined ACE
        RegisterHookChain(RG_RoundEnd,"RG_RoundEnd_Post", .post = true);
    #endif
}

public TogglePrintMessage__Func(const id) {
    p_bToggleMessage[id] ^= true;
    client_print_color(id,print_team_default,"^4*^1Вы ^4%s ^1информацию про ^3^"^4особые убийства^3^"",p_bToggleMessage[id] ? "отключили" : "включили");
}

public RG_CBasePlayerKilled_Post(const pVictim,const pAttacker) {
    if(!is_user_connected(pVictim) || !is_user_connected(pAttacker) || pVictim == pAttacker)
        return HC_CONTINUE;

    if(get_member(pVictim,m_bKilledByGrenade)) {
        #if defined GRENADE_KILL
            p_iGrenadeKillAccount[pAttacker]++;
        #else
            return HC_CONTINUE;
        #endif
    }

    #if defined ACE
        p_iKillsAccount[pAttacker]++;
    #endif
    
    new szMessage[256],szPrintMessage[256];
    formatex(szMessage,charsmax(szMessage),"%s",g_szMessage);

    new iWeapon = get_member(pAttacker,m_pActiveItem);
    
    if(is_nullent(iWeapon))
        return HC_CONTINUE;
    
    new iWeaponID = get_member(iWeapon,m_iId);

    #if defined NO_ZOOM
        if(iWeaponID == CSW_AWP || iWeaponID == CSW_SCOUT || iWeaponID == CSW_G3SG1 || iWeaponID == CSW_SG550) {
            if(get_member(pAttacker,m_iClientFOV) < 90)
                add_ex(szPrintMessage,g_szNoZoom);
        }
    #endif

    #if defined ON_GROUND
        if(!(get_entvar(pAttacker,var_flags) & FL_ONGROUND))
            add_ex(szPrintMessage,g_szOnGround);
    #endif
    
    #if defined ONE_SHOT
        if(iWeaponID != CSW_AWP && get_member(pVictim,m_lastDamageAmount) >= 100)
            add_ex(szPrintMessage,g_szOneShot);
    #endif

    #if defined WALL_SHOT
        if(!UTIL_IsWallShot(pAttacker,pVictim) && !get_member(pVictim,m_bKilledByGrenade))
            add_ex(szPrintMessage,g_szWallShot);
    #endif

    #if defined LOW_HEALTH
        if(Float:get_entvar(pAttacker,var_health) <= g_iLowHealtNum)
            add_ex(szPrintMessage,g_szLowHealth);
    #endif

    #if defined DUBLE_KILL
        if(get_gametime() - Float:get_member(pAttacker,m_flLastAttackedTeammate) < 0.25)
            add_ex(szPrintMessage,g_szDubleKill);
        
        set_member(pAttacker,m_flLastAttackedTeammate,get_gametime());
    #endif

    #if defined GRENADE_KILL
        if(p_iGrenadeKillAccount[pAttacker] >= g_iGrenadeKillNum) {
            add_ex(szPrintMessage,g_szGrenadeKill);
                
            replace_all(szPrintMessage,charsmax(szPrintMessage),"%grenade_kill%",fmt("%i",g_iGrenadeKillNum));
        }
    #endif

    #if defined FLASH_KILL
        if(getFlashState(pAttacker) == FLASH_HOLD)
            add_ex(szPrintMessage,g_szFlashKill);
    #endif

    if(szPrintMessage[0]) {
        strcat(szMessage,szPrintMessage,charsmax(szMessage));
        UTIL_AddName(szMessage,charsmax(szMessage),pAttacker,pVictim);

        Func__PrintMessage(pAttacker,szMessage);
    }
    
    return HC_CONTINUE;
}

public RG_RoundEnd_Post() {
    for(new id=1;id<=MaxClients;id++) {
        if(!is_user_connected(id))
            continue;
        
        if(p_iKillsAccount[id] == get_member_game(get_member(id,m_iTeam) == TEAM_CT ? m_iNumTerrorist : m_iNumCT)) {
            new szAceMessage[256];
            formatex(szAceMessage,charsmax(szAceMessage),"%s",g_szMessageAce);
            
            UTIL_AddName(szAceMessage,charsmax(szAceMessage),id,id);
            Func__PrintMessage(id,szAceMessage);
        }
    }
    arrayset(p_iKillsAccount[0],0,sizeof(p_iKillsAccount));
}

public Func__PrintMessage(const id,const szMessage[]) {
    
    if(equal(g_iPrintType,"%id%") && !p_bToggleMessage[id]) {
        client_print_color(id,print_team_default,szMessage);
        
        return PLUGIN_HANDLED;
    }
    
    for(new _id=1;_id<=MaxClients;_id++) {
        if(!is_user_connected(_id))
            continue;

        if(p_bToggleMessage[_id])
            continue;
        
        server_print("%n",_id);
        
        if(equal(g_iPrintType,"%team%")) {
            if(get_member(_id,m_iTeam) != get_member(id,m_iTeam))
                continue;
        }
        
        if(equal(g_iPrintType,"%team_enemy%")) {
            if(get_member(_id,m_iTeam) == get_member(id,m_iTeam))
                continue;
        }
        
        client_print_color(_id,print_team_default,szMessage);
    }
    
    #if defined GRENADE_KILL
        p_iGrenadeKillAccount[id] = 0;
    #endif
    
    return PLUGIN_HANDLED;
}
stock bool:UTIL_IsWallShot(const pAttacker,const pVictim) {
    new Float:fStart[XYZ],Float:fDest[XYZ];
    
    get_entvar(pAttacker,var_origin,fStart);
    get_entvar(pAttacker,var_view_ofs,fDest);
    
    xs_vec_add(fStart,fDest,fStart);

    get_entvar(pVictim,var_origin,fDest);
    
    engfunc(EngFunc_TraceLine,fStart,fDest,1,pAttacker,0);

    new Float:fFraction;
    get_tr2(0,TR_flFraction,fFraction);
    
    return (fFraction == 1.0 || get_tr2(0, TR_pHit) == pVictim);
}

stock UTIL_RegisterAllChats(const szCmd[],const szFunc[]) {
    new szData[256];
    
    formatex(szData,charsmax(szData),"say /%s",szCmd);
    register_clcmd(szData,szFunc);
    formatex(szData,charsmax(szData),"say_team /%s",szCmd);
    register_clcmd(szData,szFunc);
    formatex(szData,charsmax(szData),"%s",szCmd);
    register_clcmd(szData,szFunc);
}

stock UTIL_AddName(szMessage[],const iMaxLine,const pAttacker,const pVictim) {
    new szNameID[MAX_NAME_LENGTH],szNameVICTIM[MAX_NAME_LENGTH];
    
    get_entvar(pAttacker,var_netname,szNameID,charsmax(szNameID));
    get_entvar(pVictim,var_netname,szNameVICTIM,charsmax(szNameVICTIM));
    
    replace_all(szMessage,iMaxLine,"%id%",szNameID);
    replace_all(szMessage,iMaxLine,"%victim%",szNameVICTIM);
}

stock flash_state:getFlashState(const id) {
    new Float:flStartTime = Float:get_member(id, m_blindStartTime);
    new Float:flGameTime = get_gametime();
    
    if (flStartTime + Float:get_member(id, m_blindHoldTime) >= flGameTime)
    {
        return FLASH_HOLD;
    }

    if (flStartTime + Float:get_member(id, m_blindFadeTime) >= flGameTime)
    {
        return FLASH_TIME;
    }

    return FLASH_NONE;
}
 
Сверху
Назад