Иконка ресурса

BuyZone Protector 2.2.2

Faya™

Жуестер
Сообщения
867
Реакции
457
@Reiko1231 из за чего ошибка?
L 03/09/2017 - 16:03:52: [SM] Exception reported: Invalid timer handle c21a05ba (error 3)
L 03/09/2017 - 16:03:52: [SM] Blaming: buyzone_protector.smx
L 03/09/2017 - 16:03:52: [SM] Call stack trace:
L 03/09/2017 - 16:03:52: [SM] [0] KillTimer
L 03/09/2017 - 16:03:52: [SM] [1] Line 146, D:\Загрузки\sourcemod-1.8.0-git5969-windows\addons\sourcemod\scripting\buyzone_protector.sp::OnPluginEnd
Вот мой исходник:

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


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


// =============================================================
// >> DEFINES
// =============================================================
#define EFFECT_MODEL        "materials/sprites/laserbeam.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;


// =============================================================
// >> 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_hProtectionTimer = CreateTimer(g_flProtectionTime, Timer_RemoveProtection, _, TIMER_FLAG_NO_MAPCHANGE);
}

public Action:Timer_RemoveProtection(Handle:hTimer, any:data)
{
    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 )
                    {
                        CGOPrintToChat(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 )
                    {
                        CGOPrintToChat(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 )
            {
                CGOPrintToChat(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 )
            {
                CGOPrintToChat(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 ( GetClientTeam(iToucher) == 2 )
        {
            if ( g_bNotice )
            {
                CGOPrintToChat(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 ( GetClientTeam(iToucher) == 3 )
        {
            if ( g_bNotice )
            {
                CGOPrintToChat(iToucher, "%t", "leaved");
            }
            if ( g_bChangeColor )
            {
                SetEntityRenderColor(iToucher, 255, 255, 255, 255);
                SetEntityRenderMode(iToucher, RENDER_NORMAL);
            }
        }
    }
}
 
Последнее редактирование:

kleuser

Участник
Сообщения
1,838
Реакции
732
@Reiko1231, обнови пожалуйста для SM 1.8
//// buyzone_protector.sp
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(76) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(77) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(78) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(79) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(80) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(81) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(82) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(83) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(84) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(98) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(152) : warning 215: expression has no effect
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(152) : error 001: expected token: ";", but found "┬"
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(152) : error 029: invalid expression, assumed zero
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(152) : error 029: invalid expression, assumed zero
// D:\Dev\clear_sm18\scripting\buyzone_protector.sp(152) : fatal error 190: too many error messages on one line
//
// Compilation aborted.
// 4 Errors.
//
// Compilation Time: 0,31 sec
// ----------------------------------------
 
Последнее редактирование:

Arthur Don

Участник
Сообщения
1,696
Реакции
256
Кто может сделать сообщение в чат, когда защита снята?
 

Stepan1

Участник
Сообщения
84
Реакции
2
// C:\Users\StrAnn1k\Desktop\sourcemod-1.9.0-git6248-windows\addons\sourcemod\scripting\buyzone_protector.sp(152) : warning 215: expression has no effect
// C:\Users\StrAnn1k\Desktop\sourcemod-1.9.0-git6248-windows\addons\sourcemod\scripting\buyzone_protector.sp(152) : error 001: expected token: ";", but found "┬"
// C:\Users\StrAnn1k\Desktop\sourcemod-1.9.0-git6248-windows\addons\sourcemod\scripting\buyzone_protector.sp(152) : error 029: invalid expression, assumed zero
// C:\Users\StrAnn1k\Desktop\sourcemod-1.9.0-git6248-windows\addons\sourcemod\scripting\buyzone_protector.sp(152) : error 029: invalid expression, assumed zero
// C:\Users\StrAnn1k\Desktop\sourcemod-1.9.0-git6248-windows\addons\sourcemod\scripting\buyzone_protector.sp(152) : fatal error 190: too many error messages on one line
 

Вложения

  • buyzone_protector.sp
    16.3 КБ · Просмотры: 4

Twenix

Участник
Сообщения
25
Реакции
1
Когда время Buyzone истекает, защита по-прежнему остается на том же месте, где был BuyZone
Кто исправит??
 
Последнее редактирование:

xek

Рыба клоун
Сообщения
1,652
Реакции
636
В логах пусто, но почему то можно убивать в зоне. Никто не пофиксил?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
Изменения в 2.2.0:
  • Перевёл на новый синтаксис
  • Поменял имена некоторым переменным (т.к. им теперь задаются значения в другом виде):
    sm_bzp_tlinecolor --> sm_bzp_color_tzone
    sm_bzp_ctlinecolor
    --> sm_bzp_color_ctzone
    sm_bzp_changecolort
    --> sm_bzp_color_t
    sm_bzp_changecolorct
    --> sm_bzp_color_ct
    255 0 0 255
    --> F00 , F00F, FF0000 или FF0000FF
  • Вроде даже немного оптимизировал
  • Если плагин находит квар mp_buytime, то он использует его значение для установки времени существования защиты (учитывается, что значение этого квара для КСС задаётся в минутах, а в КСГО - в секундах)
    Если же этого квара нет, то создаётся квар sm_bzp_prottime (перестраховуюсь).
 

Вложения

  • buyzone_protector 2.2.0.sp
    11.2 КБ · Просмотры: 20

kleuser

Участник
Сообщения
1,838
Реакции
732
Изменения в 2.2.0:
  • Перевёл на новый синтаксис
  • Поменял имена некоторым переменным (т.к. им теперь задаются значения в другом виде):
    sm_bzp_tlinecolor --> sm_bzp_color_tzone
    sm_bzp_ctlinecolor
    --> sm_bzp_color_ctzone
    sm_bzp_changecolort
    --> sm_bzp_color_t
    sm_bzp_changecolorct
    --> sm_bzp_color_ct
    255 0 0 255
    --> F00 , F00F, FF0000 или FF0000FF
  • Вроде даже немного оптимизировал
  • Если плагин находит квар mp_buytime, то он использует его значение для установки времени существования защиты (учитывается, что значение этого квара для КСС задаётся в минутах, а в КСГО - в секундах)
    Если же этого квара нет, то создаётся квар sm_bzp_prottime (перестраховуюсь).
Привет, есть такой вопрос. Плагин вроде работает, дамаг блокирует, но визуально когда зажимаешь кнопку огонь, идет бесконечная стрельба как из пулемета. Просто выглядит не очень. Можно ли сделать, что бы блокировались кнопки лкм и пкм в зонах закупа (что бы их нажать нельзя было) ? Так бы смотрелось лучше.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #30
Привет, есть такой вопрос. Плагин вроде работает, дамаг блокирует, но визуально когда зажимаешь кнопку огонь, идет бесконечная стрельба как из пулемета. Просто выглядит не очень. Можно ли сделать, что бы блокировались кнопки лкм и пкм в зонах закупа (что бы их нажать нельзя было) ? Так бы смотрелось лучше.
а так?
 

Вложения

  • buyzone_protector.sp
    16.5 КБ · Просмотры: 6

kleuser

Участник
Сообщения
1,838
Реакции
732
C-подобный:
//// buyzone_protector.sp
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(76) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(77) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(78) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(79) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(80) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(81) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(82) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(83) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(84) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(98) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.
//
//
// D:\Dev\sm110\scripting\buyzone_protector.sp(152) : warning 215: expression has no effect
// D:\Dev\sm110\scripting\buyzone_protector.sp(152) : error 001: expected token: ";", but found "┬"
// D:\Dev\sm110\scripting\buyzone_protector.sp(152) : error 029: invalid expression, assumed zero
// D:\Dev\sm110\scripting\buyzone_protector.sp(152) : error 029: invalid expression, assumed zero
// D:\Dev\sm110\scripting\buyzone_protector.sp(152) : fatal error 190: too many error messages on one line
//
// Compilation aborted.
// 4 Errors.
//
// Compilation Time: 0,28 sec
// ----------------------------------------
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #32
исходник из шапки брал. прикольно
 

Вложения

  • buyzone_protector.sp
    16.4 КБ · Просмотры: 19

kleuser

Участник
Сообщения
1,838
Реакции
732
исходник из шапки брал
в шапке старая версия, лучше бы взял что грей скинул т.к он хотябы на новый синтакс перевел плагин, и допилил оптимизацию как он писал.
ну ладно, проверю твою.
Сообщения автоматически склеены:

Проверил, работает лучше конечно, нет дикого зажима как из пулемета теперь. Но все равно полностью не блокирует нажатие на лкм или пкм, присутствуют кратковременные визуальные эффекты как будто срабатывает выстрел либо удар ножом.
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #34
в шапке старая версия, лучше бы взял что грей скинул т.к он хотябы на новый синтакс перевел плагин, и допилил оптимизацию как он писал.
ну ладно, проверю твою.
Сообщения автоматически склеены:

Проверил, работает лучше конечно, нет дикого зажима как из пулемета теперь. Но все равно полностью не блокирует нажатие на лкм или пкм, присутствуют кратковременные визуальные эффекты как будто срабатывает выстрел либо удар ножом.
ну я не полностью блокал. чуток прикостылил и всё
 

kleuser

Участник
Сообщения
1,838
Реакции
732
ну я не полностью блокал. чуток прикостылил и всё
в принципе и так сойдет (хотя я не уверен что урон от этих выстрелов не будет проходить по тем кто снаружи зоны), хорошо бы полностью заблокировать кнопки.
И еще ошибку в логе увидел

L 02/06/2020 - 02:12:51: [SM] Exception reported: Invalid timer handle 1f57033e (error 3)
L 02/06/2020 - 02:12:51: [SM] Blaming: buyzone_protector.smx
L 02/06/2020 - 02:12:51: [SM] Call stack trace:
L 02/06/2020 - 02:12:51: [SM] [0] KillTimer
L 02/06/2020 - 02:12:51: [SM] [1] Line 145, D:\Dev\sm110\scripting\buyzone_protector.sp::OnPluginEnd
 

Overlord

Участник
Сообщения
537
Реакции
108
Изменения в 2.2.0:
  • Перевёл на новый синтаксис
  • Поменял имена некоторым переменным (т.к. им теперь задаются значения в другом виде):
    sm_bzp_tlinecolor --> sm_bzp_color_tzone
    sm_bzp_ctlinecolor
    --> sm_bzp_color_ctzone
    sm_bzp_changecolort
    --> sm_bzp_color_t
    sm_bzp_changecolorct
    --> sm_bzp_color_ct
    255 0 0 255
    --> F00 , F00F, FF0000 или FF0000FF
  • Вроде даже немного оптимизировал
  • Если плагин находит квар mp_buytime, то он использует его значение для установки времени существования защиты (учитывается, что значение этого квара для КСС задаётся в минутах, а в КСГО - в секундах)
    Если же этого квара нет, то создаётся квар sm_bzp_prottime (перестраховуюсь).
Подсветка бай зоны пропадает быстрее чем сама защита, как исправить?
Сообщения автоматически склеены:

+ Вместо сообщения о входе и выходе с зоны защиты, пишет вот это : "???????????????????????"
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
Reiko1231 обновил(а) ресурс Buyzone Protector новой записью:

Обновление 2.2.1

Изменения в 2.2.1:
  • Исправил ошибку Invalid timer handle
  • Также пофиксил анимацию стрельбы (взял код из варианта R1KO)
  • Ещё при зажиме не будет спамить сообщением, что стрельба заблочена.
  • Теперь блочится как левая, так и правая (емнип в КСГО ею гранаты кинуть можно, в отличии от КСС) кнопка мыши.
  • Отрисовка границ будет работать пока защита работает (а нефиг было юзать эффекты через TempEntity, количество...

Узнать больше об этом обновлении...
 

Z-RAY-Z

Участник
Сообщения
775
Реакции
243
Где взять файл перевода для версии 2.2.1?
C-подобный:
LoadTranslations("buyzone_protector.phrases.txt");
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
Z-RAY-Z, перевод не менялся. Бери из версии 2.1
Перезалил с файлом перевода с исправленной кодировкой
 
Последнее редактирование:

Z-RAY-Z

Участник
Сообщения
775
Реакции
243
Игра CS:GO, версия плагина 2.2.1
C-подобный:
L 07/03/2020 - 23:05:06: [SM] Exception reported: Entity -1 (-1) is invalid
L 07/03/2020 - 23:05:06: [SM] Blaming: buyzone_protector.smx
L 07/03/2020 - 23:05:06: [SM] Call stack trace:
L 07/03/2020 - 23:05:06: [SM]   [0] SetEntPropFloat
L 07/03/2020 - 23:05:06: [SM]   [1] Line 380, C:\Users\Z-RAY-Z\Desktop\buyzone_protector.sp::SetAttackTime
L 07/03/2020 - 23:05:06: [SM]   [2] Line 424, C:\Users\Z-RAY-Z\Desktop\buyzone_protector.sp::StopProtect
L 07/03/2020 - 23:05:06: [SM]   [3] Line 409, C:\Users\Z-RAY-Z\Desktop\buyzone_protector.sp::OnZoneTouch_End

C-подобный:
L 07/03/2020 - 23:13:50: [SM] Exception reported: Entity -1 (-1) is invalid
L 07/03/2020 - 23:13:50: [SM] Blaming: buyzone_protector.smx
L 07/03/2020 - 23:13:50: [SM] Call stack trace:
L 07/03/2020 - 23:13:50: [SM]   [0] SetEntPropFloat
L 07/03/2020 - 23:13:50: [SM]   [1] Line 380, C:\Users\Z-RAY-Z\Desktop\buyzone_protector.sp::SetAttackTime
L 07/03/2020 - 23:13:50: [SM]   [2] Line 363, C:\Users\Z-RAY-Z\Desktop\buyzone_protector.sp::OnPlayerRunCmd
 
Сверху Снизу