BuyZone Protect

Тема в разделе "Counter-Strike: Source", создана пользователем DexKekcuk #13, 28 авг 2014.

  1. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    Так напишу сразу я тему не повторяю, просто либо у меня либо у сайта какие-то проблемы и у меня не открывается страница Поэтому я создал отдельную тему.

    Так суть вся в том что R1CO помог сделать таймер...
    Но R1CO появилась проблемка походу из-за 352 строки. Таймер уходит 3 2 1 0 -1 -2 -3 ... И зона защиты не исчезает. И хотелось бы сделать чтоб он писал таймер в окошке над временем HUD оно вроде называется если я не ошибаюсь. И вот задумка появилась у меня, хотел еще свою текстуру поставить за место простых красных и синих линий...

    PHP:
    //=============================================================  
    // >> INCLUDES  
    // =============================================================  
    #include <sourcemod>  
    #include <sdktools>  
    #include <sdkhooks>  
    #include <morecolors>  


    // =============================================================  
    // >> PLUGIN INFORMATION  
    // =============================================================  
    public Plugin:myinfo =   
    {  
        
    name         "[ BuyZone Protector ]",  
        
    author         "Regent",  
        
    description "protects certain time players, which inside of their buy zone",  
        
    version     "2.2",  
        
    url         ""  
    };  


    // =============================================================  
    // >> DEFINES  
    // =============================================================  
    #define EFFECT_MODEL        "materials/buyzone/buyzone.vmt"  


    // =============================================================  
    // >> CONSOLE VARIABLES  
    // =============================================================  
    new Handle:    g_hConVar_sCTLineColor;  
    new 
    Handle:    g_hConVar_sTLineColor;  
    new 
    Handle:    g_hConVar_flProtectionTime;  
    new 
    Handle:    g_hConVar_bDrawProtectionZone;  
    new 
    Handle:    g_hConVar_bRestrictShootFromZone;  
    new 
    Handle:    g_hConVar_bChangeColor;  
    new 
    Handle:    g_hConVar_sChangeColorCT;  
    new 
    Handle:    g_hConVar_sChangeColorT;  
    new 
    Handle:    g_hConVar_bNotice;  


    // =============================================================  
    // >> SHADOW CONSOLE VARIABLES  
    // =============================================================  
    new Float:    g_flProtectionTime;  
    new 
    bool:    g_bDrawProtectionZone;  
    new 
    bool:    g_bRestrictShootFromZone;  
    new 
    bool:    g_bChangeColor;  
    new 
    bool:    g_bNotice;  
    new         
    g_iCTLineColor[4];  
    new         
    g_iTLineColor[4];  
    new         
    g_iCTColor[4];  
    new         
    g_iTColor[4];  


    // =============================================================  
    // >> GLOBAL VARIABLES  
    // =============================================================  
    new Handle:    g_hProtectionTimer    INVALID_HANDLE;  

    new 
    Float:    g_flTBuyZoneMins[2][3];  
    new 
    Float:    g_flTBuyZoneMaxs[2][3];  
    new 
    Float:    g_flCTBuyZoneMins[2][3];  
    new 
    Float:    g_flCTBuyZoneMaxs[2][3];  

    new            
    g_iModelEntity;  

    new 
    g_iTicks;

    // =============================================================  
    // >> PLUGIN SOURCE CODE  
    // =============================================================  
    public OnPluginStart()  
    {  
        
    LoadTranslations("buyzone_protector.phrases.txt");  
        
        
    g_hConVar_bDrawProtectionZone         CreateConVar("sm_bzp_drawzone""1""ENG: draw (1) or not (0) zone of protection\nRUS: рисовать (1) или нет (0) зону защиты"FCVAR_PLUGIN);  
        
    g_hConVar_flProtectionTime             CreateConVar("sm_bzp_prottime""20.0""ENG: how long in seconds will lasts protection of buyzone\nRUS: как долго в секундах будет длится защита зон покупок"FCVAR_PLUGIN);  
        
    g_hConVar_sCTLineColor                 CreateConVar("sm_bzp_ctlinecolor""0 0 255 255""ENG: color of lines ct zone\nRUS: цвет зоны КТ"FCVAR_PLUGIN);  
        
    g_hConVar_sTLineColor                 CreateConVar("sm_bzp_tlinecolor""255 0 0 255""ENG: color of lines t zone\nRUS: цвет зоны Т"FCVAR_PLUGIN);  
        
    g_hConVar_bRestrictShootFromZone     CreateConVar("sm_bzp_restrictshoot""1""ENG: allow (0) or not (1) shooting from their zone or not\nRUS: разрешить (0) или нет (1) стрелять из своих зон или нет"FCVAR_PLUGIN);  
        
    g_hConVar_bChangeColor                CreateConVar("sm_bzp_changecolor""1""ENG: change (0) or not (1) player color in their zone\nRUS: изменять (0) или нет (1) цвет игроков в своих зонах"FCVAR_PLUGIN);  
        
    g_hConVar_sChangeColorCT            CreateConVar("sm_bzp_changecolorct""0 0 255 125""ENG: color of CT in their zone while protect lasts\nRUS: цвет КТ в своей зоне, пока защита активна"FCVAR_PLUGIN);  
        
    g_hConVar_sChangeColorT                CreateConVar("sm_bzp_changecolort""255 0 0 125""ENG: color of T in their zone while protect lasts\nRUS: цвет Т в своей зоне, пока защита активна"FCVAR_PLUGIN);  
        
    g_hConVar_bNotice                    CreateConVar("sm_bzp_notice""1""ENG: allow (0) or not (1) sending messages about entering/leaving zones\nRUS: разрешить (0) или нет (1) плагину сообщать игрокам о входе/покидании зоны"FCVAR_PLUGIN);  
        
        
    HookConVarChange(g_hConVar_bDrawProtectionZone,     Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_flProtectionTime,         Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_sCTLineColor,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_sTLineColor,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_bRestrictShootFromZone,     Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_bChangeColor,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_sChangeColorCT,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_sChangeColorT,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_bNotice,                 Hook_ConVarChanged);  
        
        
    HookEvent("round_start"Ev_RoundStart);  
        
    AutoExecConfig(true"buyzone_protector");  
        
    CreateConVar("sm_bzp_version",    "2.0 by Regent""version of plugin"FCVAR_PLUGIN|FCVAR_NOTIFY|FCVAR_DONTRECORD);  
    }  

    public 
    Hook_ConVarChanged(Handle:hConVar, const String:sOldValue[], const String:sNewValue[])  
    {  
        if ( 
    hConVar == g_hConVar_bDrawProtectionZone )  
        {  
            
    g_bDrawProtectionZone GetConVarBool(g_hConVar_bDrawProtectionZone);  
        }  
        else if ( 
    hConVar == g_hConVar_flProtectionTime )  
        {  
            
    g_flProtectionTime GetConVarFloat(g_hConVar_flProtectionTime);  
        }  
        else if ( 
    hConVar == g_hConVar_sCTLineColor )  
        {  
            
    StringToIntArray(sNewValueg_iCTLineColor);  
        }  
        else if ( 
    hConVar == g_hConVar_sTLineColor )  
        {  
            
    StringToIntArray(sNewValueg_iTLineColor);  
        }  
        else if ( 
    hConVar == g_hConVar_bRestrictShootFromZone )  
        {  
            
    g_bRestrictShootFromZone GetConVarBool(g_hConVar_bRestrictShootFromZone);  
        }  
        else if ( 
    hConVar == g_hConVar_bChangeColor )  
        {  
            
    g_bChangeColor GetConVarBool(g_hConVar_bChangeColor);  
        }  
        else if ( 
    hConVar == g_hConVar_bNotice )  
        {  
            
    g_bNotice GetConVarBool(g_hConVar_bNotice);  
        }  
        else if ( 
    hConVar == g_hConVar_sChangeColorCT )  
        {  
            
    StringToIntArray(sNewValueg_iCTColor);  
        }  
        else if ( 
    hConVar == g_hConVar_sChangeColorT )  
        {  
            
    StringToIntArray(sNewValueg_iTColor);  
        }  
    }  

    public 
    OnPluginEnd()  
    {  
        if ( 
    g_hProtectionTimer != INVALID_HANDLE )  
        {  
            
    KillTimer(g_hProtectionTimer);  
            
    g_hProtectionTimer INVALID_HANDLE;  
        }  
    }  

    public 
    OnMapStart()  
    {  
        
    g_hProtectionTimer INVALID_HANDLE;  
        
        new 
    iEntity = -1;  
        while ((
    iEntity FindEntityByClassname(iEntity"func_buyzone")) != -1)  
        {  
            
    decl Float:flOrigin[3], Float:flVecMins[3], Float:flVecMaxs[3];  
            new 
    iTeam GetEntProp(iEntityProp_Send"m_iTeamNum");  
            
    GetEntPropVector(iEntityProp_Send"m_vecMins"flVecMins);  
            
    GetEntPropVector(iEntityProp_Send"m_vecMaxs"flVecMaxs);  
            
    GetEntPropVector(iEntityProp_Send"m_vecOrigin"flOrigin);  
            
            if ( 
    iTeam == )  
            {  
                
    g_flTBuyZoneMins[0][0] = flOrigin[0] + flVecMins[0];  
                
    g_flTBuyZoneMins[0][1] = flOrigin[1] + flVecMins[1];  
                
    g_flTBuyZoneMins[0][2] = flOrigin[2] + flVecMins[2];  
                
    g_flTBuyZoneMaxs[0][0] = flOrigin[0] + flVecMaxs[0];  
                
    g_flTBuyZoneMaxs[0][1] = flOrigin[1] + flVecMaxs[1];  
                
    g_flTBuyZoneMaxs[0][2] = flOrigin[2] + flVecMaxs[2];  
                
                
    g_flTBuyZoneMins[1][0] = flOrigin[0] + flVecMins[0];  
                
    g_flTBuyZoneMins[1][1] = flOrigin[1] + flVecMaxs[1];  
                
    g_flTBuyZoneMins[1][2] = flOrigin[2] + flVecMins[2];  
                
    g_flTBuyZoneMaxs[1][0] = flOrigin[0] + flVecMaxs[0];  
                
    g_flTBuyZoneMaxs[1][1] = flOrigin[1] + flVecMins[1];  
                
    g_flTBuyZoneMaxs[1][2] = flOrigin[2] + flVecMaxs[2];  
                
                
    SDKHook(iEntitySDKHook_StartTouchOnTZoneStartTouch);  
                
    SDKHook(iEntitySDKHook_EndTouchOnTZoneEndTouch);  
            }  
            else if ( 
    iTeam == )  
            {  
                
    g_flCTBuyZoneMins[0][0] = flOrigin[0] + flVecMins[0];  
                
    g_flCTBuyZoneMins[0][1] = flOrigin[1] + flVecMins[1];  
                
    g_flCTBuyZoneMins[0][2] = flOrigin[2] + flVecMins[2];  
                
    g_flCTBuyZoneMaxs[0][0] = flOrigin[0] + flVecMaxs[0];  
                
    g_flCTBuyZoneMaxs[0][1] = flOrigin[1] + flVecMaxs[1];  
                
    g_flCTBuyZoneMaxs[0][2] = flOrigin[2] + flVecMaxs[2];  
                
                
    g_flCTBuyZoneMins[1][0] = flOrigin[0] + flVecMins[0];  
                
    g_flCTBuyZoneMins[1][1] = flOrigin[1] + flVecMaxs[1];  
                
    g_flCTBuyZoneMins[1][2] = flOrigin[2] + flVecMins[2];  
                
    g_flCTBuyZoneMaxs[1][0] = flOrigin[0] + flVecMaxs[0];  
                
    g_flCTBuyZoneMaxs[1][1] = flOrigin[1] + flVecMins[1];  
                
    g_flCTBuyZoneMaxs[1][2] = flOrigin[2] + flVecMaxs[2];  
                
                
    SDKHook(iEntitySDKHook_StartTouchOnCTZoneStartTouch);  
                
    SDKHook(iEntitySDKHook_EndTouchOnCTZoneEndTouch);  
            }  
        }  
        
        
    g_iModelEntity PrecacheModel(EFFECT_MODEL);  
    }  

    public 
    OnConfigsExecuted()  
    {  
        
    g_bDrawProtectionZone         GetConVarBool    (g_hConVar_bDrawProtectionZone);  
        
    g_bRestrictShootFromZone     GetConVarBool    (g_hConVar_bRestrictShootFromZone);  
        
    g_bChangeColor                 GetConVarBool    (g_hConVar_bChangeColor);  
        
    g_bNotice                     GetConVarBool    (g_hConVar_bNotice);  
        
    g_flProtectionTime             GetConVarFloat(g_hConVar_flProtectionTime);  
        
        
    decl String:sBuffer[20];  
        
    GetConVarString(g_hConVar_sCTLineColorsBuffersizeof(sBuffer) - 1);  
        
    StringToIntArray(sBufferg_iCTLineColor);  
        
        
    GetConVarString(g_hConVar_sTLineColorsBuffersizeof(sBuffer) - 1);  
        
    StringToIntArray(sBufferg_iTLineColor);  
        
        
    GetConVarString(g_hConVar_sChangeColorCTsBuffersizeof(sBuffer) - 1);  
        
    StringToIntArray(sBufferg_iCTColor);  
        
        
    GetConVarString(g_hConVar_sChangeColorTsBuffersizeof(sBuffer) - 1);  
        
    StringToIntArray(sBufferg_iTColor);  
        
        for ( new 
    1<= MaxClientsi++ )  
        {  
            if ( 
    IsClientInGame(i) )  
            {  
                
    OnClientPutInServer(i);  
            }  
        }  
    }  

    StringToIntArray(const String:sInput[], Array[])  
    {  
        
    decl String:sBuffer[4][5]  
        
    ExplodeString(sInput" "sBuffersizeof(sBuffer), sizeof(sBuffer[]) - 1);  
        Array[
    0] = StringToInt(sBuffer[0]);  
        Array[
    1] = StringToInt(sBuffer[1]);  
        Array[
    2] = StringToInt(sBuffer[2]);  
        Array[
    3] = StringToInt(sBuffer[3]);  
    }  

    public 
    OnClientPutInServer(iClient)  
    {  
        
    SDKHook(iClientSDKHook_OnTakeDamageOnTakeDamage);  
    }  

    public 
    OnClientDisconnect_Post(iClient)  
    {  
        
    SDKUnhook(iClientSDKHook_OnTakeDamageOnTakeDamage);  
    }  

    public 
    Action:OnTakeDamage(iClient, &iAttacker, &iInflictor, &Float:flDamage, &iDamageType)  
    {  
        if ( 
    g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( 
    GetEntProp(iClientProp_Send"m_bInBuyZone") == )  
            {  
                if ( 
    GetClientTeam(iClient) == )  
                {  
                    if ( 
    IsClientInside(iClientg_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                    {  
                        
    flDamage 0.0;  
                        return 
    Plugin_Changed;  
                    }  
                }  
                else if ( 
    GetClientTeam(iClient) == )  
                {  
                    if ( 
    IsClientInside(iClientg_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                    {  
                        
    flDamage 0.0;  
                        return 
    Plugin_Changed;  
                    }  
                }  
            }  
        }  
        
        return 
    Plugin_Continue;  
    }  

    public 
    Ev_RoundStart(Handle:hEvent, const String:sEvName[], bool:bSilent)  
    {  
        if ( 
    g_bDrawProtectionZone )  
        {  
            
    DrawZoneByCoords(g_flCTBuyZoneMinsg_flCTBuyZoneMaxsg_iCTLineColor);  
            
    DrawZoneByCoords(g_flTBuyZoneMinsg_flTBuyZoneMaxsg_iTLineColor);  
        }  
        
        if ( 
    g_hProtectionTimer != INVALID_HANDLE )  
        {  
            
    KillTimer(g_hProtectionTimer);  
        }  
        
    g_iTicks RoundToCeil(g_flProtectionTime);
        
    g_hProtectionTimer CreateTimer(1.0Timer_TicksRemoveProtection_TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);  
    }  

    public 
    Action:Timer_TicksRemoveProtection(Handle:hTimer)  
    {  
        if(--
    g_iTicks == 0)
        {
            
    RemoveProtection();
            return 
    Plugin_Stop;  
        } else 
    PrintCenterTextAll("%i"g_iTicks);
        return 
    Plugin_Continue;  
    }

    RemoveProtection()  
    {  
        for ( new 
    1<= MaxClientsi++ )  
        {  
            if ( 
    IsClientInGame(i) )  
            {  
                if ( 
    GetClientTeam(i) == )  
                {  
                    if ( 
    IsClientInside(ig_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                    {  
                        if ( 
    g_bNotice )  
                        {  
                            
    CPrintToChat(i"%t""ended");  
                        }  
                        if ( 
    g_bChangeColor )  
                        {  
                            
    SetEntityRenderColor(i255255255255);  
                            
    SetEntityRenderMode(iRENDER_NORMAL);  
                        }  
                    }  
                }  
                else if ( 
    GetClientTeam(i) == )  
                {  
                    if ( 
    IsClientInside(ig_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                    {  
                        if ( 
    g_bNotice )  
                        {  
                            
    CPrintToChat(i"%t""ended");  
                        }  
                        if ( 
    g_bChangeColor )  
                        {  
                            
    SetEntityRenderColor(i255255255255);  
                            
    SetEntityRenderMode(iRENDER_NORMAL);  
                        }  
                    }  
                }  
            }  
        }  
        
        
    g_hProtectionTimer INVALID_HANDLE;  
        return 
    Plugin_Stop;  
    }  

    DrawZoneByCoords(const Float:flMins[2][3], const Float:flMaxs[2][3], const iColor[4])  
    {  
        
    decl Float:flBuffer1[3], Float:flBuffer2[3];  
        
        
    flBuffer1[0] = flMaxs[0][0];  
        
    flBuffer1[1] = flMaxs[0][1];  
        
    flBuffer1[2] = flMaxs[0][2];  
        
    flBuffer2[0] = flMaxs[1][0];  
        
    flBuffer2[1] = flMaxs[1][1];  
        
    flBuffer2[2] = flMaxs[0][2];  
        
        
    TE_SetupBeamPoints(flBuffer1flBuffer2g_iModelEntity000g_flProtectionTime20.020.000.0iColor0);  
        
    TE_SendToAll();  
        
        
    flBuffer1[0] = flMaxs[0][0];  
        
    flBuffer1[1] = flMaxs[0][1];  
        
    flBuffer1[2] = flMaxs[0][2];  
        
    flBuffer2[0] = flMins[1][0];  
        
    flBuffer2[1] = flMins[1][1];  
        
    flBuffer2[2] = flMaxs[0][2];  
        
    TE_SetupBeamPoints(flBuffer1flBuffer2g_iModelEntity000g_flProtectionTime20.020.000.0iColor0);  
        
    TE_SendToAll();  
        
        
    flBuffer1[0] = flMins[0][0];  
        
    flBuffer1[1] = flMins[0][1];  
        
    flBuffer1[2] = flMaxs[0][2];  
        
    flBuffer2[0] = flMaxs[1][0];  
        
    flBuffer2[1] = flMaxs[1][1];  
        
    flBuffer2[2] = flMaxs[0][2];  
        
    TE_SetupBeamPoints(flBuffer1flBuffer2g_iModelEntity000g_flProtectionTime20.020.000.0iColor0);  
        
    TE_SendToAll();  
        
        
    flBuffer1[0] = flMins[0][0];  
        
    flBuffer1[1] = flMins[0][1];  
        
    flBuffer1[2] = flMaxs[0][2];  
        
    flBuffer2[0] = flMins[1][0];  
        
    flBuffer2[1] = flMins[1][1];  
        
    flBuffer2[2] = flMaxs[0][2];  
        
    TE_SetupBeamPoints(flBuffer1flBuffer2g_iModelEntity000g_flProtectionTime20.020.000.0iColor0);  
        
    TE_SendToAll();  
    }  

    bool:IsClientInside(const &iClient, const Float:flMins[3], const Float:flMaxs[3])  
    {  
        
    decl Float:flOrigin[3];  
        
    GetClientAbsOrigin(iClientflOrigin);  
        
        if (
    flOrigin[0] >= flMins[0] && flOrigin[0] <= flMaxs[0] &&  
                
    flOrigin[1] >= flMins[1] && flOrigin[1] <= flMaxs[1] &&  
                
    flOrigin[2] >= flMins[2] && flOrigin[2] <= flMaxs[2])  
        {  
            return 
    true;  
        }  
        else  
        {  
            return 
    false;  
        }  
    }  

    public 
    Action:OnPlayerRunCmd(iClient, &buttons, &impulseFloat:vel[3], Float:angles[3], &weapon, &subtype, &cmdnum, &tickcount, &seedmouse[2])  
    {  
        if ( 
    g_bRestrictShootFromZone && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( 
    GetEntProp(iClientProp_Send"m_bInBuyZone") == )  
            {  
                if ( 
    buttons IN_ATTACK )  
                {  
                    if ( 
    GetClientTeam(iClient) == )  
                    {  
                        if ( 
    IsClientInside(iClientg_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                        {  
                            
    buttons &= ~IN_ATTACK;  
                            
    PrintCenterText(iClient"%t""shoot blocked");  
                        }  
                    }  
                    else if ( 
    GetClientTeam(iClient) == )  
                    {  
                        if ( 
    IsClientInside(iClientg_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                        {  
                            
    buttons &= ~IN_ATTACK;  
                            
    PrintCenterText(iClient"%t""shoot blocked");  
                        }  
                    }  
                }  
            }  
        }  
    }  

    public 
    OnTZoneStartTouch(iEntityiToucher)  
    {  
        if ( 
    iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( 
    GetClientTeam(iToucher) == )  
            {  
                if ( 
    g_bNotice )  
                {  
                    
    CPrintToChat(iToucher"%t""entered");  
                }  
                if ( 
    g_bChangeColor )  
                {  
                    
    SetEntityRenderMode(iToucherRENDER_TRANSCOLOR);  
                    
    SetEntityRenderColor(iToucherg_iTColor[0], g_iTColor[1], g_iTColor[2], g_iTColor[3]);  
                }  
            }  
        }  
    }  

    public 
    OnCTZoneStartTouch(iEntityiToucher)  
    {  
        if ( 
    iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( 
    GetClientTeam(iToucher) == )  
            {  
                if ( 
    g_bNotice )  
                {  
                    
    CPrintToChat(iToucher"%t""entered");  
                }  
                if ( 
    g_bChangeColor )  
                {  
                    
    SetEntityRenderMode(iToucherRENDER_TRANSCOLOR);  
                    
    SetEntityRenderColor(iToucherg_iCTColor[0], g_iCTColor[1], g_iCTColor[2], g_iCTColor[3]);  
                }  
            }  
        }  
    }  

    public 
    OnTZoneEndTouch(iEntityiToucher)  
    {  
        if ( 
    iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( !
    IsClientInGame(iToucher) )  
            {  
                return;  
            }  
            
            if ( 
    GetClientTeam(iToucher) == )  
            {  
                if ( 
    g_bNotice )  
                {  
                    
    CPrintToChat(iToucher"%t""leaved");  
                }  
                if ( 
    g_bChangeColor )  
                {  
                    
    SetEntityRenderColor(iToucher255255255255);  
                    
    SetEntityRenderMode(iToucherRENDER_NORMAL);  
                }  
            }  
        }  
    }  

    public 
    OnCTZoneEndTouch(iEntityiToucher)  
    {  
        if ( 
    iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( !
    IsClientInGame(iToucher) )  
            {  
                return;  
            }  
            
            if ( 
    GetClientTeam(iToucher) == )  
            {  
                if ( 
    g_bNotice )  
                {  
                    
    CPrintToChat(iToucher"%t""leaved");  
                }  
                if ( 
    g_bChangeColor )  
                {  
                    
    SetEntityRenderColor(iToucher255255255255);  
                    
    SetEntityRenderMode(iToucherRENDER_NORMAL);  
                }  
            }  
        }  
    }  
     
  2. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.970
    Симпатии:
    2.976
    Аналогично

    PHP:
    public Action:Timer_TicksRemoveProtection(Handle:hTimer)  
    {  
        if(--
    g_iTicks == 0)
        {
            
    RemoveProtection();

            
    g_hProtectionTimer INVALID_HANDLE;  
            return 
    Plugin_Stop;  
        } else 
    PrintCenterTextAll("%i"g_iTicks);
        return 
    Plugin_Continue;  
    }

    RemoveProtection()  
    {  
        for ( new 
    1<= MaxClientsi++ )  
        {  
            if ( 
    IsClientInGame(i) )  
            {  
                if ( 
    GetClientTeam(i) == )  
                {  
                    if ( 
    IsClientInside(ig_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                    {  
                        if ( 
    g_bNotice )  
                        {  
                            
    CPrintToChat(i"%t""ended");  
                        }  
                        if ( 
    g_bChangeColor )  
                        {  
                            
    SetEntityRenderColor(i255255255255);  
                            
    SetEntityRenderMode(iRENDER_NORMAL);  
                        }  
                    }  
                }  
                else if ( 
    GetClientTeam(i) == )  
                {  
                    if ( 
    IsClientInside(ig_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                    {  
                        if ( 
    g_bNotice )  
                        {  
                            
    CPrintToChat(i"%t""ended");  
                        }  
                        if ( 
    g_bChangeColor )  
                        {  
                            
    SetEntityRenderColor(i255255255255);  
                            
    SetEntityRenderMode(iRENDER_NORMAL);  
                        }  
                    }  
                }  
            }  
        }  
     
  3. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    Плагин перекомпилил поставил на сервер, но все же при начале раунда он просто выкидывает меня с сервера.. И время так же уходить в -1 -2 -3
     
  4. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.505
    Симпатии:
    1.960
    Заменить таймер лучше на такой код:
    PHP:
    public Action:Timer_TicksRemoveProtection(Handle:hTimer)
    {
        if (--
    g_iTicks 0)
        {
            
    PrintCenterTextAll("%i"g_iTicks);
            return 
    Plugin_Continue;
        }
    g_hProtectionTimer INVALID_HANDLE;
        
    RemoveProtection();
        return 
    Plugin_Stop;
    }
     
    DexKekcuk #13 и R1KO нравится это.
  5. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    Спасибо большое R1CO и AlmazON, за помощь!
    Но ребят возможно ли сделать чтобы таймер писал время вот в таком окошке (Пример):
    [​IMG]

    И еще возможно ли заменить текстуру которая находится вокруг каждой зоны закупки базы T и CT, но когда я заменяю текстуру:
    Строка: Я заменил данную строчку на свою текстуру, но когда я заменил стал падать сервер...
    #define EFFECT_MODEL "materials/sprites/lgtning.vmt"

    Исходник плагина v2.2 от R1CO и AlmazON, с таймером по центру в режиме csay :
    PHP:
    //=============================================================  
    // >> INCLUDES  
    // =============================================================  
    #include <sourcemod>  
    #include <sdktools>  
    #include <sdkhooks>  
    #include <morecolors>  


    // =============================================================  
    // >> PLUGIN INFORMATION  
    // =============================================================  
    public Plugin:myinfo =   
    {  
        
    name         "[ BuyZone Protector ]",  
        
    author         "Regent",  
        
    description "protects certain time players, which inside of their buy zone",  
        
    version     "2.2",  
        
    url         ""  
    };  


    // =============================================================  
    // >> DEFINES  
    // =============================================================  
    #define EFFECT_MODEL        "materials/sprites/lgtning.vmt"


    // =============================================================  
    // >> CONSOLE VARIABLES  
    // =============================================================  
    new Handle:    g_hConVar_sCTLineColor;  
    new 
    Handle:    g_hConVar_sTLineColor;  
    new 
    Handle:    g_hConVar_flProtectionTime;  
    new 
    Handle:    g_hConVar_bDrawProtectionZone;  
    new 
    Handle:    g_hConVar_bRestrictShootFromZone;  
    new 
    Handle:    g_hConVar_bChangeColor;  
    new 
    Handle:    g_hConVar_sChangeColorCT;  
    new 
    Handle:    g_hConVar_sChangeColorT;  
    new 
    Handle:    g_hConVar_bNotice;  


    // =============================================================  
    // >> SHADOW CONSOLE VARIABLES  
    // =============================================================  
    new Float:    g_flProtectionTime;  
    new 
    bool:    g_bDrawProtectionZone;  
    new 
    bool:    g_bRestrictShootFromZone;  
    new 
    bool:    g_bChangeColor;  
    new 
    bool:    g_bNotice;  
    new         
    g_iCTLineColor[4];  
    new         
    g_iTLineColor[4];  
    new         
    g_iCTColor[4];  
    new         
    g_iTColor[4];  


    // =============================================================  
    // >> GLOBAL VARIABLES  
    // =============================================================  
    new Handle:    g_hProtectionTimer    INVALID_HANDLE;  

    new 
    Float:    g_flTBuyZoneMins[2][3];  
    new 
    Float:    g_flTBuyZoneMaxs[2][3];  
    new 
    Float:    g_flCTBuyZoneMins[2][3];  
    new 
    Float:    g_flCTBuyZoneMaxs[2][3];  

    new            
    g_iModelEntity;  

    new 
    g_iTicks;

    // =============================================================  
    // >> PLUGIN SOURCE CODE  
    // =============================================================  
    public OnPluginStart()  
    {  
        
    LoadTranslations("buyzone_protector.phrases.txt");  
        
        
    g_hConVar_bDrawProtectionZone         CreateConVar("sm_bzp_drawzone""1""ENG: draw (1) or not (0) zone of protection\nRUS: рисовать (1) или нет (0) зону защиты"FCVAR_PLUGIN);  
        
    g_hConVar_flProtectionTime             CreateConVar("sm_bzp_prottime""20.0""ENG: how long in seconds will lasts protection of buyzone\nRUS: как долго в секундах будет длится защита зон покупок"FCVAR_PLUGIN);  
        
    g_hConVar_sCTLineColor                 CreateConVar("sm_bzp_ctlinecolor""0 0 255 255""ENG: color of lines ct zone\nRUS: цвет зоны КТ"FCVAR_PLUGIN);  
        
    g_hConVar_sTLineColor                 CreateConVar("sm_bzp_tlinecolor""255 0 0 255""ENG: color of lines t zone\nRUS: цвет зоны Т"FCVAR_PLUGIN);  
        
    g_hConVar_bRestrictShootFromZone     CreateConVar("sm_bzp_restrictshoot""1""ENG: allow (0) or not (1) shooting from their zone or not\nRUS: разрешить (0) или нет (1) стрелять из своих зон или нет"FCVAR_PLUGIN);  
        
    g_hConVar_bChangeColor                CreateConVar("sm_bzp_changecolor""1""ENG: change (0) or not (1) player color in their zone\nRUS: изменять (0) или нет (1) цвет игроков в своих зонах"FCVAR_PLUGIN);  
        
    g_hConVar_sChangeColorCT            CreateConVar("sm_bzp_changecolorct""0 0 255 125""ENG: color of CT in their zone while protect lasts\nRUS: цвет КТ в своей зоне, пока защита активна"FCVAR_PLUGIN);  
        
    g_hConVar_sChangeColorT                CreateConVar("sm_bzp_changecolort""255 0 0 125""ENG: color of T in their zone while protect lasts\nRUS: цвет Т в своей зоне, пока защита активна"FCVAR_PLUGIN);  
        
    g_hConVar_bNotice                    CreateConVar("sm_bzp_notice""1""ENG: allow (0) or not (1) sending messages about entering/leaving zones\nRUS: разрешить (0) или нет (1) плагину сообщать игрокам о входе/покидании зоны"FCVAR_PLUGIN);  
        
        
    HookConVarChange(g_hConVar_bDrawProtectionZone,     Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_flProtectionTime,         Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_sCTLineColor,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_sTLineColor,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_bRestrictShootFromZone,     Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_bChangeColor,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_sChangeColorCT,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_sChangeColorT,             Hook_ConVarChanged);  
        
    HookConVarChange(g_hConVar_bNotice,                 Hook_ConVarChanged);  
        
        
    HookEvent("round_start"Ev_RoundStart);  
        
    AutoExecConfig(true"buyzone_protector");  
        
    CreateConVar("sm_bzp_version",    "2.0 by Regent""version of plugin"FCVAR_PLUGIN|FCVAR_NOTIFY|FCVAR_DONTRECORD);  
    }  

    public 
    Hook_ConVarChanged(Handle:hConVar, const String:sOldValue[], const String:sNewValue[])  
    {  
        if ( 
    hConVar == g_hConVar_bDrawProtectionZone )  
        {  
            
    g_bDrawProtectionZone GetConVarBool(g_hConVar_bDrawProtectionZone);  
        }  
        else if ( 
    hConVar == g_hConVar_flProtectionTime )  
        {  
            
    g_flProtectionTime GetConVarFloat(g_hConVar_flProtectionTime);  
        }  
        else if ( 
    hConVar == g_hConVar_sCTLineColor )  
        {  
            
    StringToIntArray(sNewValueg_iCTLineColor);  
        }  
        else if ( 
    hConVar == g_hConVar_sTLineColor )  
        {  
            
    StringToIntArray(sNewValueg_iTLineColor);  
        }  
        else if ( 
    hConVar == g_hConVar_bRestrictShootFromZone )  
        {  
            
    g_bRestrictShootFromZone GetConVarBool(g_hConVar_bRestrictShootFromZone);  
        }  
        else if ( 
    hConVar == g_hConVar_bChangeColor )  
        {  
            
    g_bChangeColor GetConVarBool(g_hConVar_bChangeColor);  
        }  
        else if ( 
    hConVar == g_hConVar_bNotice )  
        {  
            
    g_bNotice GetConVarBool(g_hConVar_bNotice);  
        }  
        else if ( 
    hConVar == g_hConVar_sChangeColorCT )  
        {  
            
    StringToIntArray(sNewValueg_iCTColor);  
        }  
        else if ( 
    hConVar == g_hConVar_sChangeColorT )  
        {  
            
    StringToIntArray(sNewValueg_iTColor);  
        }  
    }  

    public 
    OnPluginEnd()  
    {  
        if ( 
    g_hProtectionTimer != INVALID_HANDLE )  
        {  
            
    KillTimer(g_hProtectionTimer);  
            
    g_hProtectionTimer INVALID_HANDLE;  
        }  
    }  

    public 
    OnMapStart()  
    {  
        
    g_hProtectionTimer INVALID_HANDLE;  
        
        new 
    iEntity = -1;  
        while ((
    iEntity FindEntityByClassname(iEntity"func_buyzone")) != -1)  
        {  
            
    decl Float:flOrigin[3], Float:flVecMins[3], Float:flVecMaxs[3];  
            new 
    iTeam GetEntProp(iEntityProp_Send"m_iTeamNum");  
            
    GetEntPropVector(iEntityProp_Send"m_vecMins"flVecMins);  
            
    GetEntPropVector(iEntityProp_Send"m_vecMaxs"flVecMaxs);  
            
    GetEntPropVector(iEntityProp_Send"m_vecOrigin"flOrigin);  
            
            if ( 
    iTeam == )  
            {  
                
    g_flTBuyZoneMins[0][0] = flOrigin[0] + flVecMins[0];  
                
    g_flTBuyZoneMins[0][1] = flOrigin[1] + flVecMins[1];  
                
    g_flTBuyZoneMins[0][2] = flOrigin[2] + flVecMins[2];  
                
    g_flTBuyZoneMaxs[0][0] = flOrigin[0] + flVecMaxs[0];  
                
    g_flTBuyZoneMaxs[0][1] = flOrigin[1] + flVecMaxs[1];  
                
    g_flTBuyZoneMaxs[0][2] = flOrigin[2] + flVecMaxs[2];  
                
                
    g_flTBuyZoneMins[1][0] = flOrigin[0] + flVecMins[0];  
                
    g_flTBuyZoneMins[1][1] = flOrigin[1] + flVecMaxs[1];  
                
    g_flTBuyZoneMins[1][2] = flOrigin[2] + flVecMins[2];  
                
    g_flTBuyZoneMaxs[1][0] = flOrigin[0] + flVecMaxs[0];  
                
    g_flTBuyZoneMaxs[1][1] = flOrigin[1] + flVecMins[1];  
                
    g_flTBuyZoneMaxs[1][2] = flOrigin[2] + flVecMaxs[2];  
                
                
    SDKHook(iEntitySDKHook_StartTouchOnTZoneStartTouch);  
                
    SDKHook(iEntitySDKHook_EndTouchOnTZoneEndTouch);  
            }  
            else if ( 
    iTeam == )  
            {  
                
    g_flCTBuyZoneMins[0][0] = flOrigin[0] + flVecMins[0];  
                
    g_flCTBuyZoneMins[0][1] = flOrigin[1] + flVecMins[1];  
                
    g_flCTBuyZoneMins[0][2] = flOrigin[2] + flVecMins[2];  
                
    g_flCTBuyZoneMaxs[0][0] = flOrigin[0] + flVecMaxs[0];  
                
    g_flCTBuyZoneMaxs[0][1] = flOrigin[1] + flVecMaxs[1];  
                
    g_flCTBuyZoneMaxs[0][2] = flOrigin[2] + flVecMaxs[2];  
                
                
    g_flCTBuyZoneMins[1][0] = flOrigin[0] + flVecMins[0];  
                
    g_flCTBuyZoneMins[1][1] = flOrigin[1] + flVecMaxs[1];  
                
    g_flCTBuyZoneMins[1][2] = flOrigin[2] + flVecMins[2];  
                
    g_flCTBuyZoneMaxs[1][0] = flOrigin[0] + flVecMaxs[0];  
                
    g_flCTBuyZoneMaxs[1][1] = flOrigin[1] + flVecMins[1];  
                
    g_flCTBuyZoneMaxs[1][2] = flOrigin[2] + flVecMaxs[2];  
                
                
    SDKHook(iEntitySDKHook_StartTouchOnCTZoneStartTouch);  
                
    SDKHook(iEntitySDKHook_EndTouchOnCTZoneEndTouch);  
            }  
        }  
        
        
    g_iModelEntity PrecacheModel(EFFECT_MODEL);  
    }  

    public 
    OnConfigsExecuted()  
    {  
        
    g_bDrawProtectionZone         GetConVarBool    (g_hConVar_bDrawProtectionZone);  
        
    g_bRestrictShootFromZone     GetConVarBool    (g_hConVar_bRestrictShootFromZone);  
        
    g_bChangeColor                 GetConVarBool    (g_hConVar_bChangeColor);  
        
    g_bNotice                     GetConVarBool    (g_hConVar_bNotice);  
        
    g_flProtectionTime             GetConVarFloat(g_hConVar_flProtectionTime);  
        
        
    decl String:sBuffer[20];  
        
    GetConVarString(g_hConVar_sCTLineColorsBuffersizeof(sBuffer) - 1);  
        
    StringToIntArray(sBufferg_iCTLineColor);  
        
        
    GetConVarString(g_hConVar_sTLineColorsBuffersizeof(sBuffer) - 1);  
        
    StringToIntArray(sBufferg_iTLineColor);  
        
        
    GetConVarString(g_hConVar_sChangeColorCTsBuffersizeof(sBuffer) - 1);  
        
    StringToIntArray(sBufferg_iCTColor);  
        
        
    GetConVarString(g_hConVar_sChangeColorTsBuffersizeof(sBuffer) - 1);  
        
    StringToIntArray(sBufferg_iTColor);  
        
        for ( new 
    1<= MaxClientsi++ )  
        {  
            if ( 
    IsClientInGame(i) )  
            {  
                
    OnClientPutInServer(i);  
            }  
        }  
    }  

    StringToIntArray(const String:sInput[], Array[])  
    {  
        
    decl String:sBuffer[4][5]  
        
    ExplodeString(sInput" "sBuffersizeof(sBuffer), sizeof(sBuffer[]) - 1);  
        Array[
    0] = StringToInt(sBuffer[0]);  
        Array[
    1] = StringToInt(sBuffer[1]);  
        Array[
    2] = StringToInt(sBuffer[2]);  
        Array[
    3] = StringToInt(sBuffer[3]);  
    }  

    public 
    OnClientPutInServer(iClient)  
    {  
        
    SDKHook(iClientSDKHook_OnTakeDamageOnTakeDamage);  
    }  

    public 
    OnClientDisconnect_Post(iClient)  
    {  
        
    SDKUnhook(iClientSDKHook_OnTakeDamageOnTakeDamage);  
    }  

    public 
    Action:OnTakeDamage(iClient, &iAttacker, &iInflictor, &Float:flDamage, &iDamageType)  
    {  
        if ( 
    g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( 
    GetEntProp(iClientProp_Send"m_bInBuyZone") == )  
            {  
                if ( 
    GetClientTeam(iClient) == )  
                {  
                    if ( 
    IsClientInside(iClientg_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                    {  
                        
    flDamage 0.0;  
                        return 
    Plugin_Changed;  
                    }  
                }  
                else if ( 
    GetClientTeam(iClient) == )  
                {  
                    if ( 
    IsClientInside(iClientg_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                    {  
                        
    flDamage 0.0;  
                        return 
    Plugin_Changed;  
                    }  
                }  
            }  
        }  
        
        return 
    Plugin_Continue;  
    }  

    public 
    Ev_RoundStart(Handle:hEvent, const String:sEvName[], bool:bSilent)  
    {  
        if ( 
    g_bDrawProtectionZone )  
        {  
            
    DrawZoneByCoords(g_flCTBuyZoneMinsg_flCTBuyZoneMaxsg_iCTLineColor);  
            
    DrawZoneByCoords(g_flTBuyZoneMinsg_flTBuyZoneMaxsg_iTLineColor);  
        }  
        
        if ( 
    g_hProtectionTimer != INVALID_HANDLE )  
        {  
            
    KillTimer(g_hProtectionTimer);  
        }  
        
    g_iTicks RoundToCeil(g_flProtectionTime);
        
    g_hProtectionTimer CreateTimer(1.0Timer_TicksRemoveProtection_TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);  
    }  

    public 
    Action:Timer_TicksRemoveProtection(Handle:hTimer)
    {
        if (--
    g_iTicks 0)
        {
            
    PrintCenterTextAll("%i"g_iTicks);
            return 
    Plugin_Continue;
        }
    g_hProtectionTimer INVALID_HANDLE;
        
    RemoveProtection();
        return 
    Plugin_Stop;
    }

    RemoveProtection()  
    {  
        for ( new 
    1<= MaxClientsi++ )  
        {  
            if ( 
    IsClientInGame(i) )  
            {  
                if ( 
    GetClientTeam(i) == )  
                {  
                    if ( 
    IsClientInside(ig_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                    {  
                        if ( 
    g_bNotice )  
                        {  
                            
    CPrintToChat(i"%t""ended");  
                        }  
                        if ( 
    g_bChangeColor )  
                        {  
                            
    SetEntityRenderColor(i255255255255);  
                            
    SetEntityRenderMode(iRENDER_NORMAL);  
                        }  
                    }  
                }  
                else if ( 
    GetClientTeam(i) == )  
                {  
                    if ( 
    IsClientInside(ig_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                    {  
                        if ( 
    g_bNotice )  
                        {  
                            
    CPrintToChat(i"%t""ended");  
                        }  
                        if ( 
    g_bChangeColor )  
                        {  
                            
    SetEntityRenderColor(i255255255255);  
                            
    SetEntityRenderMode(iRENDER_NORMAL);  
                        }  
                    }  
                }  
            }  
        }   
    }  

    DrawZoneByCoords(const Float:flMins[2][3], const Float:flMaxs[2][3], const iColor[4])  
    {  
        
    decl Float:flBuffer1[3], Float:flBuffer2[3];  
        
        
    flBuffer1[0] = flMaxs[0][0];  
        
    flBuffer1[1] = flMaxs[0][1];  
        
    flBuffer1[2] = flMaxs[0][2];  
        
    flBuffer2[0] = flMaxs[1][0];  
        
    flBuffer2[1] = flMaxs[1][1];  
        
    flBuffer2[2] = flMaxs[0][2];  
        
        
    TE_SetupBeamPoints(flBuffer1flBuffer2g_iModelEntity000g_flProtectionTime20.020.000.0iColor0);  
        
    TE_SendToAll();  
        
        
    flBuffer1[0] = flMaxs[0][0];  
        
    flBuffer1[1] = flMaxs[0][1];  
        
    flBuffer1[2] = flMaxs[0][2];  
        
    flBuffer2[0] = flMins[1][0];  
        
    flBuffer2[1] = flMins[1][1];  
        
    flBuffer2[2] = flMaxs[0][2];  
        
    TE_SetupBeamPoints(flBuffer1flBuffer2g_iModelEntity000g_flProtectionTime20.020.000.0iColor0);  
        
    TE_SendToAll();  
        
        
    flBuffer1[0] = flMins[0][0];  
        
    flBuffer1[1] = flMins[0][1];  
        
    flBuffer1[2] = flMaxs[0][2];  
        
    flBuffer2[0] = flMaxs[1][0];  
        
    flBuffer2[1] = flMaxs[1][1];  
        
    flBuffer2[2] = flMaxs[0][2];  
        
    TE_SetupBeamPoints(flBuffer1flBuffer2g_iModelEntity000g_flProtectionTime20.020.000.0iColor0);  
        
    TE_SendToAll();  
        
        
    flBuffer1[0] = flMins[0][0];  
        
    flBuffer1[1] = flMins[0][1];  
        
    flBuffer1[2] = flMaxs[0][2];  
        
    flBuffer2[0] = flMins[1][0];  
        
    flBuffer2[1] = flMins[1][1];  
        
    flBuffer2[2] = flMaxs[0][2];  
        
    TE_SetupBeamPoints(flBuffer1flBuffer2g_iModelEntity000g_flProtectionTime20.020.000.0iColor0);  
        
    TE_SendToAll();  
    }  

    bool:IsClientInside(const &iClient, const Float:flMins[3], const Float:flMaxs[3])  
    {  
        
    decl Float:flOrigin[3];  
        
    GetClientAbsOrigin(iClientflOrigin);  
        
        if (
    flOrigin[0] >= flMins[0] && flOrigin[0] <= flMaxs[0] &&  
                
    flOrigin[1] >= flMins[1] && flOrigin[1] <= flMaxs[1] &&  
                
    flOrigin[2] >= flMins[2] && flOrigin[2] <= flMaxs[2])  
        {  
            return 
    true;  
        }  
        else  
        {  
            return 
    false;  
        }  
    }  

    public 
    Action:OnPlayerRunCmd(iClient, &buttons, &impulseFloat:vel[3], Float:angles[3], &weapon, &subtype, &cmdnum, &tickcount, &seedmouse[2])  
    {  
        if ( 
    g_bRestrictShootFromZone && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( 
    GetEntProp(iClientProp_Send"m_bInBuyZone") == )  
            {  
                if ( 
    buttons IN_ATTACK )  
                {  
                    if ( 
    GetClientTeam(iClient) == )  
                    {  
                        if ( 
    IsClientInside(iClientg_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                        {  
                            
    buttons &= ~IN_ATTACK;  
                            
    PrintCenterText(iClient"%t""shoot blocked");  
                        }  
                    }  
                    else if ( 
    GetClientTeam(iClient) == )  
                    {  
                        if ( 
    IsClientInside(iClientg_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                        {  
                            
    buttons &= ~IN_ATTACK;  
                            
    PrintCenterText(iClient"%t""shoot blocked");  
                        }  
                    }  
                }  
            }  
        }  
    }  

    public 
    OnTZoneStartTouch(iEntityiToucher)  
    {  
        if ( 
    iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( 
    GetClientTeam(iToucher) == )  
            {  
                if ( 
    g_bNotice )  
                {  
                    
    CPrintToChat(iToucher"%t""entered");  
                }  
                if ( 
    g_bChangeColor )  
                {  
                    
    SetEntityRenderMode(iToucherRENDER_TRANSCOLOR);  
                    
    SetEntityRenderColor(iToucherg_iTColor[0], g_iTColor[1], g_iTColor[2], g_iTColor[3]);  
                }  
            }  
        }  
    }  

    public 
    OnCTZoneStartTouch(iEntityiToucher)  
    {  
        if ( 
    iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( 
    GetClientTeam(iToucher) == )  
            {  
                if ( 
    g_bNotice )  
                {  
                    
    CPrintToChat(iToucher"%t""entered");  
                }  
                if ( 
    g_bChangeColor )  
                {  
                    
    SetEntityRenderMode(iToucherRENDER_TRANSCOLOR);  
                    
    SetEntityRenderColor(iToucherg_iCTColor[0], g_iCTColor[1], g_iCTColor[2], g_iCTColor[3]);  
                }  
            }  
        }  
    }  

    public 
    OnTZoneEndTouch(iEntityiToucher)  
    {  
        if ( 
    iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( !
    IsClientInGame(iToucher) )  
            {  
                return;  
            }  
            
            if ( 
    GetClientTeam(iToucher) == )  
            {  
                if ( 
    g_bNotice )  
                {  
                    
    CPrintToChat(iToucher"%t""leaved");  
                }  
                if ( 
    g_bChangeColor )  
                {  
                    
    SetEntityRenderColor(iToucher255255255255);  
                    
    SetEntityRenderMode(iToucherRENDER_NORMAL);  
                }  
            }  
        }  
    }  

    public 
    OnCTZoneEndTouch(iEntityiToucher)  
    {  
        if ( 
    iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
        {  
            if ( !
    IsClientInGame(iToucher) )  
            {  
                return;  
            }  
            
            if ( 
    GetClientTeam(iToucher) == )  
            {  
                if ( 
    g_bNotice )  
                {  
                    
    CPrintToChat(iToucher"%t""leaved");  
                }  
                if ( 
    g_bChangeColor )  
                {  
                    
    SetEntityRenderColor(iToucher255255255255);  
                    
    SetEntityRenderMode(iToucherRENDER_NORMAL);  
                }  
            }  
        }  
    }  
     

    Вложения:

    • Время.png
      Время.png
      Размер файла:
      19 КБ
      Просмотров:
      126
  6. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.970
    Симпатии:
    2.976
    Alex Tarasenko,
    PHP:
    PrintCenterTextAll("%i"g_iTicks);
    Замени на:
    PHP:
    PrintHintTextToAll("%i"g_iTicks);
     
    DexKekcuk #13 нравится это.
  7. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    R1KO, А с Текстурой сможешь помочь решить вопрос?
     
  8. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.970
    Симпатии:
    2.976
    Alex Tarasenko,
    PHP:
    #define EFFECT_MODEL        "materials/sprites/lgtning.vmt"
    Вот тут меняй. Скорее всего ты на какую-то палённую текстуру менял.
     
  9. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    R1KO, Ну там же еще есть такая фишка в плагине, что зона CT выделяется синим цветом, а зона Т выделяется красным цветом, линии тоесть. У меня даже такой текстуры нет в CS:S чтоб посмотреть размеры и сделать подобную

    Добавлено через 9 минут
    Если я модель туда прописываю она не качается людям, я вот только что попробовал взять с того что у меня есть, она подходит, а так она не качается, и в начале раунда она не появляется модель и крашится сервер
     
    Последнее редактирование: 30 авг 2014
  10. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.970
    Симпатии:
    2.976
    Alex Tarasenko, видишь разницу между текстурой и моделью?
     
  11. DexKekcuk #13

    DexKekcuk #13

    Сообщения:
    638
    Симпатии:
    70
    Ой то есть текстуру, я че то написал сам неправильно, я загружаю файл .vmt