BuyZone Protect

DexKekcuk #13

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

Так суть вся в том что 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(sNewValue, g_iCTLineColor);  
    }  
    else if ( hConVar == g_hConVar_sTLineColor )  
    {  
        StringToIntArray(sNewValue, g_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(sNewValue, g_iCTColor);  
    }  
    else if ( hConVar == g_hConVar_sChangeColorT )  
    {  
        StringToIntArray(sNewValue, g_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(iEntity, Prop_Send, "m_iTeamNum");  
        GetEntPropVector(iEntity, Prop_Send, "m_vecMins", flVecMins);  
        GetEntPropVector(iEntity, Prop_Send, "m_vecMaxs", flVecMaxs);  
        GetEntPropVector(iEntity, Prop_Send, "m_vecOrigin", flOrigin);  
        
        if ( iTeam == 2 )  
        {  
            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(iEntity, SDKHook_StartTouch, OnTZoneStartTouch);  
            SDKHook(iEntity, SDKHook_EndTouch, OnTZoneEndTouch);  
        }  
        else if ( iTeam == 3 )  
        {  
            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(iEntity, SDKHook_StartTouch, OnCTZoneStartTouch);  
            SDKHook(iEntity, SDKHook_EndTouch, OnCTZoneEndTouch);  
        }  
    }  
    
    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_sCTLineColor, sBuffer, sizeof(sBuffer) - 1);  
    StringToIntArray(sBuffer, g_iCTLineColor);  
    
    GetConVarString(g_hConVar_sTLineColor, sBuffer, sizeof(sBuffer) - 1);  
    StringToIntArray(sBuffer, g_iTLineColor);  
    
    GetConVarString(g_hConVar_sChangeColorCT, sBuffer, sizeof(sBuffer) - 1);  
    StringToIntArray(sBuffer, g_iCTColor);  
    
    GetConVarString(g_hConVar_sChangeColorT, sBuffer, sizeof(sBuffer) - 1);  
    StringToIntArray(sBuffer, g_iTColor);  
    
    for ( new i = 1; i <= MaxClients; i++ )  
    {  
        if ( IsClientInGame(i) )  
        {  
            OnClientPutInServer(i);  
        }  
    }  
}  

StringToIntArray(const String:sInput[], Array[])  
{  
    decl String:sBuffer[4][5]  
    ExplodeString(sInput, " ", sBuffer, sizeof(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(iClient, SDKHook_OnTakeDamage, OnTakeDamage);  
}  

public OnClientDisconnect_Post(iClient)  
{  
    SDKUnhook(iClient, SDKHook_OnTakeDamage, OnTakeDamage);  
}  

public Action:OnTakeDamage(iClient, &iAttacker, &iInflictor, &Float:flDamage, &iDamageType)  
{  
    if ( g_hProtectionTimer != INVALID_HANDLE )  
    {  
        if ( GetEntProp(iClient, Prop_Send, "m_bInBuyZone") == 1 )  
        {  
            if ( GetClientTeam(iClient) == 2 )  
            {  
                if ( IsClientInside(iClient, g_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                {  
                    flDamage = 0.0;  
                    return Plugin_Changed;  
                }  
            }  
            else if ( GetClientTeam(iClient) == 3 )  
            {  
                if ( IsClientInside(iClient, g_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_flCTBuyZoneMins, g_flCTBuyZoneMaxs, g_iCTLineColor);  
        DrawZoneByCoords(g_flTBuyZoneMins, g_flTBuyZoneMaxs, g_iTLineColor);  
    }  
    
    if ( g_hProtectionTimer != INVALID_HANDLE )  
    {  
        KillTimer(g_hProtectionTimer);  
    }  
    g_iTicks = RoundToCeil(g_flProtectionTime);
    g_hProtectionTimer = CreateTimer(1.0, Timer_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 i = 1; i <= MaxClients; i++ )  
    {  
        if ( IsClientInGame(i) )  
        {  
            if ( GetClientTeam(i) == 2 )  
            {  
                if ( IsClientInside(i, g_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                {  
                    if ( g_bNotice )  
                    {  
                        CPrintToChat(i, "%t", "ended");  
                    }  
                    if ( g_bChangeColor )  
                    {  
                        SetEntityRenderColor(i, 255, 255, 255, 255);  
                        SetEntityRenderMode(i, RENDER_NORMAL);  
                    }  
                }  
            }  
            else if ( GetClientTeam(i) == 3 )  
            {  
                if ( IsClientInside(i, g_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                {  
                    if ( g_bNotice )  
                    {  
                        CPrintToChat(i, "%t", "ended");  
                    }  
                    if ( g_bChangeColor )  
                    {  
                        SetEntityRenderColor(i, 255, 255, 255, 255);  
                        SetEntityRenderMode(i, RENDER_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(flBuffer1, flBuffer2, g_iModelEntity, 0, 0, 0, g_flProtectionTime, 20.0, 20.0, 0, 0.0, iColor, 0);  
    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(flBuffer1, flBuffer2, g_iModelEntity, 0, 0, 0, g_flProtectionTime, 20.0, 20.0, 0, 0.0, iColor, 0);  
    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(flBuffer1, flBuffer2, g_iModelEntity, 0, 0, 0, g_flProtectionTime, 20.0, 20.0, 0, 0.0, iColor, 0);  
    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(flBuffer1, flBuffer2, g_iModelEntity, 0, 0, 0, g_flProtectionTime, 20.0, 20.0, 0, 0.0, iColor, 0);  
    TE_SendToAll();  
}  

bool:IsClientInside(const &iClient, const Float:flMins[3], const Float:flMaxs[3])  
{  
    decl Float:flOrigin[3];  
    GetClientAbsOrigin(iClient, flOrigin);  
    
    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, &impulse, Float:vel[3], Float:angles[3], &weapon, &subtype, &cmdnum, &tickcount, &seed, mouse[2])  
{  
    if ( g_bRestrictShootFromZone && g_hProtectionTimer != INVALID_HANDLE )  
    {  
        if ( GetEntProp(iClient, Prop_Send, "m_bInBuyZone") == 1 )  
        {  
            if ( buttons & IN_ATTACK )  
            {  
                if ( GetClientTeam(iClient) == 2 )  
                {  
                    if ( IsClientInside(iClient, g_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                    {  
                        buttons &= ~IN_ATTACK;  
                        PrintCenterText(iClient, "%t", "shoot blocked");  
                    }  
                }  
                else if ( GetClientTeam(iClient) == 3 )  
                {  
                    if ( IsClientInside(iClient, g_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                    {  
                        buttons &= ~IN_ATTACK;  
                        PrintCenterText(iClient, "%t", "shoot blocked");  
                    }  
                }  
            }  
        }  
    }  
}  

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

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

public OnTZoneEndTouch(iEntity, iToucher)  
{  
    if ( 0 < iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
    {  
        if ( !IsClientInGame(iToucher) )  
        {  
            return;  
        }  
        
        if ( GetClientTeam(iToucher) == 2 )  
        {  
            if ( g_bNotice )  
            {  
                CPrintToChat(iToucher, "%t", "leaved");  
            }  
            if ( g_bChangeColor )  
            {  
                SetEntityRenderColor(iToucher, 255, 255, 255, 255);  
                SetEntityRenderMode(iToucher, RENDER_NORMAL);  
            }  
        }  
    }  
}  

public OnCTZoneEndTouch(iEntity, iToucher)  
{  
    if ( 0 < iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
    {  
        if ( !IsClientInGame(iToucher) )  
        {  
            return;  
        }  
        
        if ( GetClientTeam(iToucher) == 3 )  
        {  
            if ( g_bNotice )  
            {  
                CPrintToChat(iToucher, "%t", "leaved");  
            }  
            if ( g_bChangeColor )  
            {  
                SetEntityRenderColor(iToucher, 255, 255, 255, 255);  
                SetEntityRenderMode(iToucher, RENDER_NORMAL);  
            }  
        }  
    }  
}
 

R1KO

fuck society
Сообщения
9,460
Реакции
7,799
  • Команда форума
  • #2
Так напишу сразу я тему не повторяю, просто либо у меня либо у сайта какие-то проблемы и у меня не открывается страница Поэтому я создал отдельную тему.
Аналогично

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 i = 1; i <= MaxClients; i++ )  
	{  
		if ( IsClientInGame(i) )  
		{  
			if ( GetClientTeam(i) == 2 )  
			{  
				if ( IsClientInside(i, g_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
				{  
					if ( g_bNotice )  
					{  
						CPrintToChat(i, "%t", "ended");  
					}  
					if ( g_bChangeColor )  
					{  
						SetEntityRenderColor(i, 255, 255, 255, 255);  
						SetEntityRenderMode(i, RENDER_NORMAL);  
					}  
				}  
			}  
			else if ( GetClientTeam(i) == 3 )  
			{  
				if ( IsClientInside(i, g_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
				{  
					if ( g_bNotice )  
					{  
						CPrintToChat(i, "%t", "ended");  
					}  
					if ( g_bChangeColor )  
					{  
						SetEntityRenderColor(i, 255, 255, 255, 255);  
						SetEntityRenderMode(i, RENDER_NORMAL);  
					}  
				}  
			}  
		}  
	}  
}
 

DexKekcuk #13

Участник
Сообщения
628
Реакции
69
Плагин перекомпилил поставил на сервер, но все же при начале раунда он просто выкидывает меня с сервера.. И время так же уходить в -1 -2 -3
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,756
время так же уходить в -1 -2 -3
Заменить таймер лучше на такой код:
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

Участник
Сообщения
628
Реакции
69
Спасибо большое R1CO и AlmazON, за помощь!
Но ребят возможно ли сделать чтобы таймер писал время вот в таком окошке (Пример):
attachment.php


И еще возможно ли заменить текстуру которая находится вокруг каждой зоны закупки базы 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(sNewValue, g_iCTLineColor);  
    }  
    else if ( hConVar == g_hConVar_sTLineColor )  
    {  
        StringToIntArray(sNewValue, g_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(sNewValue, g_iCTColor);  
    }  
    else if ( hConVar == g_hConVar_sChangeColorT )  
    {  
        StringToIntArray(sNewValue, g_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(iEntity, Prop_Send, "m_iTeamNum");  
        GetEntPropVector(iEntity, Prop_Send, "m_vecMins", flVecMins);  
        GetEntPropVector(iEntity, Prop_Send, "m_vecMaxs", flVecMaxs);  
        GetEntPropVector(iEntity, Prop_Send, "m_vecOrigin", flOrigin);  
        
        if ( iTeam == 2 )  
        {  
            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(iEntity, SDKHook_StartTouch, OnTZoneStartTouch);  
            SDKHook(iEntity, SDKHook_EndTouch, OnTZoneEndTouch);  
        }  
        else if ( iTeam == 3 )  
        {  
            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(iEntity, SDKHook_StartTouch, OnCTZoneStartTouch);  
            SDKHook(iEntity, SDKHook_EndTouch, OnCTZoneEndTouch);  
        }  
    }  
    
    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_sCTLineColor, sBuffer, sizeof(sBuffer) - 1);  
    StringToIntArray(sBuffer, g_iCTLineColor);  
    
    GetConVarString(g_hConVar_sTLineColor, sBuffer, sizeof(sBuffer) - 1);  
    StringToIntArray(sBuffer, g_iTLineColor);  
    
    GetConVarString(g_hConVar_sChangeColorCT, sBuffer, sizeof(sBuffer) - 1);  
    StringToIntArray(sBuffer, g_iCTColor);  
    
    GetConVarString(g_hConVar_sChangeColorT, sBuffer, sizeof(sBuffer) - 1);  
    StringToIntArray(sBuffer, g_iTColor);  
    
    for ( new i = 1; i <= MaxClients; i++ )  
    {  
        if ( IsClientInGame(i) )  
        {  
            OnClientPutInServer(i);  
        }  
    }  
}  

StringToIntArray(const String:sInput[], Array[])  
{  
    decl String:sBuffer[4][5]  
    ExplodeString(sInput, " ", sBuffer, sizeof(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(iClient, SDKHook_OnTakeDamage, OnTakeDamage);  
}  

public OnClientDisconnect_Post(iClient)  
{  
    SDKUnhook(iClient, SDKHook_OnTakeDamage, OnTakeDamage);  
}  

public Action:OnTakeDamage(iClient, &iAttacker, &iInflictor, &Float:flDamage, &iDamageType)  
{  
    if ( g_hProtectionTimer != INVALID_HANDLE )  
    {  
        if ( GetEntProp(iClient, Prop_Send, "m_bInBuyZone") == 1 )  
        {  
            if ( GetClientTeam(iClient) == 2 )  
            {  
                if ( IsClientInside(iClient, g_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                {  
                    flDamage = 0.0;  
                    return Plugin_Changed;  
                }  
            }  
            else if ( GetClientTeam(iClient) == 3 )  
            {  
                if ( IsClientInside(iClient, g_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_flCTBuyZoneMins, g_flCTBuyZoneMaxs, g_iCTLineColor);  
        DrawZoneByCoords(g_flTBuyZoneMins, g_flTBuyZoneMaxs, g_iTLineColor);  
    }  
    
    if ( g_hProtectionTimer != INVALID_HANDLE )  
    {  
        KillTimer(g_hProtectionTimer);  
    }  
    g_iTicks = RoundToCeil(g_flProtectionTime);
    g_hProtectionTimer = CreateTimer(1.0, Timer_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 i = 1; i <= MaxClients; i++ )  
    {  
        if ( IsClientInGame(i) )  
        {  
            if ( GetClientTeam(i) == 2 )  
            {  
                if ( IsClientInside(i, g_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                {  
                    if ( g_bNotice )  
                    {  
                        CPrintToChat(i, "%t", "ended");  
                    }  
                    if ( g_bChangeColor )  
                    {  
                        SetEntityRenderColor(i, 255, 255, 255, 255);  
                        SetEntityRenderMode(i, RENDER_NORMAL);  
                    }  
                }  
            }  
            else if ( GetClientTeam(i) == 3 )  
            {  
                if ( IsClientInside(i, g_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                {  
                    if ( g_bNotice )  
                    {  
                        CPrintToChat(i, "%t", "ended");  
                    }  
                    if ( g_bChangeColor )  
                    {  
                        SetEntityRenderColor(i, 255, 255, 255, 255);  
                        SetEntityRenderMode(i, RENDER_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(flBuffer1, flBuffer2, g_iModelEntity, 0, 0, 0, g_flProtectionTime, 20.0, 20.0, 0, 0.0, iColor, 0);  
    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(flBuffer1, flBuffer2, g_iModelEntity, 0, 0, 0, g_flProtectionTime, 20.0, 20.0, 0, 0.0, iColor, 0);  
    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(flBuffer1, flBuffer2, g_iModelEntity, 0, 0, 0, g_flProtectionTime, 20.0, 20.0, 0, 0.0, iColor, 0);  
    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(flBuffer1, flBuffer2, g_iModelEntity, 0, 0, 0, g_flProtectionTime, 20.0, 20.0, 0, 0.0, iColor, 0);  
    TE_SendToAll();  
}  

bool:IsClientInside(const &iClient, const Float:flMins[3], const Float:flMaxs[3])  
{  
    decl Float:flOrigin[3];  
    GetClientAbsOrigin(iClient, flOrigin);  
    
    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, &impulse, Float:vel[3], Float:angles[3], &weapon, &subtype, &cmdnum, &tickcount, &seed, mouse[2])  
{  
    if ( g_bRestrictShootFromZone && g_hProtectionTimer != INVALID_HANDLE )  
    {  
        if ( GetEntProp(iClient, Prop_Send, "m_bInBuyZone") == 1 )  
        {  
            if ( buttons & IN_ATTACK )  
            {  
                if ( GetClientTeam(iClient) == 2 )  
                {  
                    if ( IsClientInside(iClient, g_flTBuyZoneMins[0], g_flTBuyZoneMaxs[0]) )  
                    {  
                        buttons &= ~IN_ATTACK;  
                        PrintCenterText(iClient, "%t", "shoot blocked");  
                    }  
                }  
                else if ( GetClientTeam(iClient) == 3 )  
                {  
                    if ( IsClientInside(iClient, g_flCTBuyZoneMins[0], g_flCTBuyZoneMaxs[0]) )  
                    {  
                        buttons &= ~IN_ATTACK;  
                        PrintCenterText(iClient, "%t", "shoot blocked");  
                    }  
                }  
            }  
        }  
    }  
}  

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

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

public OnTZoneEndTouch(iEntity, iToucher)  
{  
    if ( 0 < iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
    {  
        if ( !IsClientInGame(iToucher) )  
        {  
            return;  
        }  
        
        if ( GetClientTeam(iToucher) == 2 )  
        {  
            if ( g_bNotice )  
            {  
                CPrintToChat(iToucher, "%t", "leaved");  
            }  
            if ( g_bChangeColor )  
            {  
                SetEntityRenderColor(iToucher, 255, 255, 255, 255);  
                SetEntityRenderMode(iToucher, RENDER_NORMAL);  
            }  
        }  
    }  
}  

public OnCTZoneEndTouch(iEntity, iToucher)  
{  
    if ( 0 < iToucher <= MaxClients && g_hProtectionTimer != INVALID_HANDLE )  
    {  
        if ( !IsClientInGame(iToucher) )  
        {  
            return;  
        }  
        
        if ( GetClientTeam(iToucher) == 3 )  
        {  
            if ( g_bNotice )  
            {  
                CPrintToChat(iToucher, "%t", "leaved");  
            }  
            if ( g_bChangeColor )  
            {  
                SetEntityRenderColor(iToucher, 255, 255, 255, 255);  
                SetEntityRenderMode(iToucher, RENDER_NORMAL);  
            }  
        }  
    }  
}
 

Вложения

  • Время.png
    Время.png
    5.5 КБ · Просмотры: 152

R1KO

fuck society
Сообщения
9,460
Реакции
7,799
  • Команда форума
  • #6
Alex Tarasenko,
PHP:
PrintCenterTextAll("%i", g_iTicks);
Замени на:
PHP:
PrintHintTextToAll("%i", g_iTicks);
 

DexKekcuk #13

Участник
Сообщения
628
Реакции
69
R1KO, А с Текстурой сможешь помочь решить вопрос?
 

R1KO

fuck society
Сообщения
9,460
Реакции
7,799
  • Команда форума
  • #8
Alex Tarasenko,
PHP:
#define EFFECT_MODEL        "materials/sprites/lgtning.vmt"
Вот тут меняй. Скорее всего ты на какую-то палённую текстуру менял.
 

DexKekcuk #13

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

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

R1KO

fuck society
Сообщения
9,460
Реакции
7,799
  • Команда форума
  • #10
Alex Tarasenko, видишь разницу между текстурой и моделью?
 

DexKekcuk #13

Участник
Сообщения
628
Реакции
69
Ой то есть текстуру, я че то написал сам неправильно, я загружаю файл .vmt
 
Сверху Снизу