Skocz do zawartości

Nowy szablon forum

mygo.pl

Stworzyliśmy dla Was nowy wygląd forum. Z pewnością znajdziesz rzeczy, które wg Ciebie mogą zostać zmienione - wspomnij o tym w specjalnym wątku.

Czytaj więcej

Jak założyć własną sieć

serwerów CS

Zastanawiasz się nad prowadzeniem własnej sieci serwerów? Przeczytaj podstawowe informacje, na które należy zwrócić uwagę, przy takim projekcie.

Czytaj więcej

Tworzymy spis sieci

dodaj swoją

Dodaj sieć do której należysz, pozwoli to na promocję i budowę ogólnopolskiej bazy sieci CS.

Czytaj więcej

michauux

Użytkownik
  • Postów

    9
  • Dołączył

  • Ostatnia wizyta

Odpowiedzi opublikowane przez michauux

  1. Nie mam włączonych wyrzucanie noży, nie mam takiej komendy u siebie w configu na serwerze i nie da rady wyrzucić swojego noża.

    Lista pluginów:

     

    01 "Client Preferences" (1.8.0.5912) by AlliedModders LLC
               02 "Server Advertisement" (2.5) by ESK0
               03 "Admin File Reader" (1.8.0.5912) by AlliedModders LLC
               04 "Basic Info Triggers" (1.8.0.5912) by AlliedModders LLC
               05 "QuickDefuse" (0.3) by pRED*
               06 "Move Commands ( ResetScore, Switch, Spec )" (1.3.4) by Bara
               08 "Admin Menu" (1.8.0.5912) by AlliedModders LLC
               09 "SourceSleuth" ((SB++) 1.5.4.6) by ecca, Sarabveer(VEER™)
               10 "SourceBans Checker" ((SB++) 1.5.4.6) by psychonic, Ca$h Munny, Sarabveer(VEER™)
               11 "[CS:GO/CSS] AbNeR Round End Sounds Simple" (3.4) by AbNeR_CSS
               12 "Anti Stuck" (1.00) by muso.sk
               13 "SourceComms" ((SB++) 1.5.4.6) by Alex, Sarabveer(VEER™)
               14 "[TF2] AntiNameHack" (1.1) by Mitch
               15 "SourceBans: Admin Config Loader" ((SB++) 1.5.4.6) by AlliedModders LLC, Sarabveer(VEER™)
               16 "DR.API AMMO" (1.3.1) by Dr. Api
               17 "TeamChange Unlimited" (1.3.1) by Sheepdude, viderizer
               18 "Dead Alltalk" (1.0.104) by <eVa>StrontiumDog/MMX.TVR
               20 "VIP Plugin by Majki" (1.4) by Majki
               21 "Weapon Restrict" (3.1.6) by Dr!fter
               22 "Server Clean Up" (1.2.2) by Jamster
               23 "Basic Commands" (1.8.0.5912) by AlliedModders LLC
               24 "Rock The Vote Extended" (1.10.0) by Powerlord and AlliedModders LLC
               25 "CS:GO - Show The Right Next Map (STRNM)" (1.0.3) by PharaohsPaw
               26 "gameME Plugin" (4.7.2) by TTS Oetzel & Goerz Gmb
               28 "CS:GO Admin ESP" (2.1) by Root
               29 "MapChooser Extended" (1.10.2) by Powerlord, Zuko, and AlliedModders LLC
               30 "Sound Commands" (1.8.0.5912) by AlliedModders LLC
               31 "Fun Votes" (1.8.0.5912) by AlliedModders LLC
               32 "Anti-Flood" (1.8.0.5912) by AlliedModders LLC
               33 "Web Shortcuts CS:GO version" (2.4) by Franc1sco franug and James "sslice" Gray
               34 "Team Balancer Manager" (0.9.2) by Sebul
               35 "Nextmap" (1.8.0.5912) by AlliedModders LLC
               36 "Spawn NoBlock for CSGO" (1.4) by dzej dzej
               37 "Player Commands" (1.8.0.5912) by AlliedModders LLC
               38 "Reserved Slots" (1.8.0.5912) by AlliedModders LLC
               39 "Fun Commands" (1.8.0.5912) by AlliedModders LLC
               40 "[CS] Extra Spawn Points [ESP]" (1.3) by Roy (Christian Deacon)
               41 "Admin Help" (1.8.0.5912) by AlliedModders LLC
               42 "AFK Manager" (4.0.5) by Rothgar
               44 "Admin all spec" (1.0.2) by Dr!fter
               45 "Basic Chat" (1.7.0-manual) by AlliedModders LLC
               46 "SourceBans++" (1.5.4.6) by SourceBans Development Team, Sarabveer(VEER™)
               47 "Basic Votes" (1.8.0.5912) by AlliedModders LLC
               48 "Map Nominations Extended" (1.10.0) by Powerlord and AlliedModders LLC
               49 "Basic Comm Control" (1.8.0.5912) by AlliedModders LLC

  2. Witam wszystkich, otóż mam wielki problem u siebie na serwerze, którego nie mogę rozwiązać, długo już z nim walczę, może Wy użytkownicy pomożecie mi w tym, chodzi mi o znikającą broń na serwerze, gdy gracz wchodzi na serwer i dołącza do jednych z drużyn to wtedy jednej osobie znika broń i wtedy musi wpisywać w konsoli komendę record. Zna ktoś może rozwiązanie tego problemu? Szukałem wszędzie i nie mogę znaleźć, proszę o pomoc. ;-)

  3. Witam, mam problem z kompilacją pliku noblock_aura.sp

    Kompilację wykonuję przez sourcemoda na windowsa 1.8

    Oto błąd, którego nie mogę znaleźć:

     

    noblock_aura.sp (1): error 010: invalid function of declaration

     

     

    #include <sourcemod>
    #include <smlib>

    #define COLLISION_GROUP_DEBRIS_TRIGGER 2
    #define COLLISION_GROUP_PLAYER 5
    #define COLLISION_GROUP_PUSHAWAY 17

    #define VERSION "1.1"

    new Handle:cvarAuraRange = INVALID_HANDLE;
    new Handle:cvarAuraTime = INVALID_HANDLE;
    new Handle:cvarAuraNoblockTime = INVALID_HANDLE;
    new Handle:cvarAuraSpawnNoblockTime = INVALID_HANDLE;
    new Handle:cvarAuraRefreshRate = INVALID_HANDLE;
    new Handle:cvarAuraBeamRate = INVALID_HANDLE;
    new Handle:cvarAnnounceRate = INVALID_HANDLE;

    enum Aura
    {
        bool:AuraIgnore,
        Float:AuraEndTime,
        Float:NoBlockEndTime,
    }

    new g_client[MAXPLAYERS+1][Aura];

    new g_ioffsCollisionGroup;

    new Handle:g_hTimer = INVALID_HANDLE;
    new Handle:g_hTimerEffect = INVALID_HANDLE;

    new gGlow1;
    new gHalo1;

    new g_color[4];

    public Plugin:myinfo =
    {
        name = "NoBlock Aura",
        author = "Zipcore, Lacrimosa99",
        description = "Spawn noblock and noblock aura",
        version = VERSION,
        url = "zipcore#googlemail.com"
    }

    public OnPluginStart()
    {
        CreateConVar("sm_noblock_aura_version", VERSION, "NoBlock Aura", FCVAR_DONTRECORD|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
        
        cvarAuraNoblockTime = CreateConVar("sm_noblock_aura_noblock_time", "1.0", "Give player in range this amount of time noblock.");
        cvarAuraRange = CreateConVar("sm_noblock_aura_range", "82.0", "Aura range to effect other players.");
        cvarAuraBeamRate = CreateConVar("sm_noblock_aura_beam_rate", "1.0", "Create a beacon every X seconds.");
        cvarAuraSpawnNoblockTime = CreateConVar("sm_noblock_aura_spawn_noblock_time", "10.0", "Give aura this amount of time on roundstart and playerspawn.");
        cvarAuraRefreshRate = CreateConVar("sm_noblock_aura_refresh_rate", "0.1", "Itervall to check for other players in range.");
        cvarAuraTime = CreateConVar("sm_noblock_aura_time", "10.0", "Extend time for aura command.");
        cvarAnnounceRate = CreateConVar("sm_noblock_announce_rate", "180.0", "Announce this plugin to players.");

        g_ioffsCollisionGroup = FindSendPropInfo("CBaseEntity", "m_CollisionGroup");
        if (g_ioffsCollisionGroup == -1)
        {
            SetFailState("CBaseEntity:m_CollisionGroup not found");
        }
        
        HookEvent("round_freeze_end", Event_RoundStart);
        HookEvent("player_spawn", Event_PlayerSpawn);
        
        RegConsoleCmd("say", ChatHook);
        RegConsoleCmd("say_team", ChatHook);
        
        g_color[0] = 255;
        g_color[1] = 50;
        g_color[2] = 50;
        g_color[3] = 50;
    }

    public OnMapStart()
    {
        if(GetEngineVersion() == Engine_CSS)
        {
            gGlow1 = PrecacheModel("materials/sprites/laser.vmt", true);
            gHalo1 = PrecacheModel("materials/sprites/halo01.vmt");
        }
        else if(GetEngineVersion() == Engine_CSGO)
        {
            gGlow1 = PrecacheModel("materials/sprites/laserbeam.vmt", true);
            gHalo1 = PrecacheModel("materials/sprites/halo.vmt");
        }
        else SetFailState("Noblockaura failed: CSS and CSGO only.");
        
        if(GetConVarFloat(cvarAuraRefreshRate) > 0.0)
            g_hTimer = CreateTimer(GetConVarFloat(cvarAuraRefreshRate), Timer, _, TIMER_REPEAT);
        if(GetConVarFloat(cvarAuraBeamRate) > 0.0)
            g_hTimerEffect = CreateTimer(GetConVarFloat(cvarAuraBeamRate), TimerEffect, _, TIMER_REPEAT);
        
        if(GetConVarFloat(cvarAnnounceRate) > 0.0)
            CreateTimer(GetConVarFloat(cvarAnnounceRate), AnnounceMsg, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
    }

    public OnMapEnd()
    {
        // Kill Timers    
        ClearHandle(g_hTimer);
        ClearHandle(g_hTimerEffect);
    }

    public Action:AnnounceMsg(Handle:timer, any:client)
    {
        PrintToChatAll("[Noblock-Aura] Wpisz !noblock lub !nb aby włączyć NoBlock");
        return Plugin_Continue;
    }

    public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new client = GetClientOfUserId(GetEventInt(event, "userid"));
        new Float:time = GetGameTime();
        
        g_client[client][AuraEndTime] = time;
        g_client[client][NoBlockEndTime] = time + GetConVarFloat(cvarAuraSpawnNoblockTime);
    }

    public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new Float:time = GetGameTime();
        for(new i=1; i <= MaxClients; i++)
        {
            g_client[AuraEndTime] = time;
            g_client[NoBlockEndTime] = time + GetConVarFloat(cvarAuraSpawnNoblockTime);
        }
        PrintToChatAll("[Noblock-Aura] Noblock włączony %ds.", RoundToFloor(GetConVarFloat(cvarAuraSpawnNoblockTime)));
    }

    public Action:ChatHook(client, args)
    {
        new String:line[32];
        new String:name[MAX_NAME_LENGTH];
        
        if (args > 0)
        {
            GetCmdArg(1,line,sizeof(line));
            GetClientName(client, name, sizeof(name));
            
            if (StrEqual(line, "!noblock", false) || StrEqual(line, "!nb", false))
            {
                if(IsClientInGame(client))
                {
                    if(IsPlayerAlive(client))
                    {
                        g_client[client][AuraEndTime] = GetGameTime() + GetConVarFloat(cvarAuraTime);
                        PrintToChat(client, "[Noblock-Aura] Noblock włączony na %ds.", RoundToFloor(GetConVarFloat(cvarAuraTime)));
                    }
                    else PrintToChat(client, "[Noblock-Aura] Musisz być żywy.");
                }
            }
        }
        return Plugin_Continue;
    }

    public Action:Timer(Handle:timer, any:data)
    {
        Refresh_Collision();
        return Plugin_Continue;
    }

    public Action:TimerEffect(Handle:timer, any:data)
    {
        Refresh_Effect();
        return Plugin_Continue;
    }

    SetupBeacon(client)
    {
        new Float:time = GetGameTime();
        new tempColor[4];
        
        tempColor[0] = GetRandomInt(100, 255);
        tempColor[1] = GetRandomInt(100, 255);
        tempColor[2] = GetRandomInt(100, 255);
        tempColor[3] = 50;
        
        new Float:vec[3];
        GetClientAbsOrigin(client, vec);
        vec[2] += 10;
        if(g_client[client][AuraEndTime] - time < 3) TE_SetupBeamRingPoint(vec, 25.0, 150.0, gGlow1, gHalo1, 0, 1, 0.5, 20.0, 0.0, g_color, 1, 0);
        else TE_SetupBeamRingPoint(vec, 25.0, 150.0, gGlow1, gHalo1, 0, 1, 0.5, 20.0, 0.0, tempColor, 1, 0);
        TE_SendToAll();
    }

    Refresh_Effect()
    {
        new Float:time = GetGameTime();
        
        for(new i=1;i<=MaxClients;i++)
        {
            if(IsClientInGame(i) && IsPlayerAlive(i))
            {
                if(g_client[AuraEndTime] > time)
                {
                    SetupBeacon(i);
                }
            }
        }
    }

    Refresh_Collision()
    {
        new Float:time = GetGameTime();
        
        //validate all players
        for(new i=1;i<=MaxClients;i++)
        {
            g_client[AuraIgnore] = false;
            
            if(!(IsClientInGame(i) && IsPlayerAlive(i)))
            {
                g_client[AuraIgnore] = true;
            }
        }
        
        //extend noblock
        for(new i=1;i<=MaxClients;i++)
        {
            if(g_client[AuraIgnore])
                continue;
            
            for(new j=1;j<=MaxClients;j++)
            {
                if(g_client[j][AuraIgnore])
                    continue;
                
                if(g_client[AuraEndTime] > time)
                {
                    if(Entity_InRange(j, i, GetConVarFloat(cvarAuraRange)))
                    {
                        g_client[j][NoBlockEndTime] = time + GetConVarFloat(cvarAuraNoblockTime);
                    }
                }
            }
        }
        
        //set collision group
        for(new i=1;i<=MaxClients;i++)
        {
            if(g_client[AuraIgnore])
                continue;
            
            if(g_client[AuraEndTime] > time || g_client[NoBlockEndTime] > time)
                Client_SetNoblockable(i);
            else if(!IsPlayerStuck(i)) Client_SetBlockable(i);
            //else Client_SetPushable(i);
        }    
    }

    stock bool:IsPlayerStuck(client)
    {
        decl Float:vOrigin[3], Float:vMins[3], Float:vMaxs[3];
        GetClientAbsOrigin(client, vOrigin);
        GetEntPropVector(client, Prop_Send, "m_vecMins", vMins);
        GetEntPropVector(client, Prop_Send, "m_vecMaxs", vMaxs);
        
        TR_TraceHullFilter(vOrigin, vOrigin, vMins, vMaxs, MASK_ALL, FilterOnlyPlayers, client);
        return TR_DidHit();
    }

    public bool:FilterOnlyPlayers(entity, contentsMask, any:data)
    {
        if(entity != data && entity > 0 && entity <= MaxClients)
        {
            return true;
        }
        return false;
    }

     

    public OnEntityCreated(entity, const String:classname[])
    {
        if (StrEqual(classname, "hegrenade_projectile"))
        {
            SetEntData(entity, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true);
        }
        else if (StrEqual(classname, "flashbang_projectile"))
        {
            SetEntData(entity, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true);
        }
        else if (StrEqual(classname, "smokegrenade_projectile"))
        {
            SetEntData(entity, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true);
        }
    }

    stock Client_SetNoblockable(client)
    {
        if(GetEngineVersion() == Engine_CSS)
        {
            new count = 0;
            for(new i=1;i<=MaxClients;i++)
            {
                if(g_client[AuraIgnore])
                    continue;
                
                if(!(IsClientInGame(i) && IsPlayerAlive(i)))
                    continue;
                
                if(Entity_InRange(client, i, 64.0))
                    count++;
            }
            
            if(count > 5)
            {
                SetEntityRenderColor(client, 255, 255, 255, 100);
            }
            else if(count > 2)
            {
                SetEntityRenderColor(client, 255, 255, 255, 150);
            }
            else SetEntityRenderColor(client, 255, 255, 255, 200);
        }
        
        SetEntData(client, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true);
    }

    stock Client_SetBlockable(client)
    {
        if(GetEngineVersion() == Engine_CSS)
        {
            SetEntityRenderColor(client, 255, 255, 255, 255);
        }
        SetEntData(client, g_ioffsCollisionGroup, COLLISION_GROUP_PLAYER, 4, true);
    }

    stock Client_SetPushable(client)
    {
        if(GetEngineVersion() == Engine_CSS)
        {
            SetEntityRenderColor(client, 255, 255, 0, 255);
        }
        SetEntData(client, g_ioffsCollisionGroup, COLLISION_GROUP_PUSHAWAY, 4, true);
    }

  4. Witam, mam problem z kompilacją pliku noblock_aura.sp

    Kompilację wykonuję przez sourcemoda na windowsa 1.8

    Oto błąd, którego nie mogę znaleźć:

     

    noblock_aura.sp (1): error 010: invalid function of declaration

     

     

    #include <sourcemod>
    #include <smlib>

    #define COLLISION_GROUP_DEBRIS_TRIGGER 2
    #define COLLISION_GROUP_PLAYER 5
    #define COLLISION_GROUP_PUSHAWAY 17

    #define VERSION "1.1"

    new Handle:cvarAuraRange = INVALID_HANDLE;
    new Handle:cvarAuraTime = INVALID_HANDLE;
    new Handle:cvarAuraNoblockTime = INVALID_HANDLE;
    new Handle:cvarAuraSpawnNoblockTime = INVALID_HANDLE;
    new Handle:cvarAuraRefreshRate = INVALID_HANDLE;
    new Handle:cvarAuraBeamRate = INVALID_HANDLE;
    new Handle:cvarAnnounceRate = INVALID_HANDLE;

    enum Aura
    {
        bool:AuraIgnore,
        Float:AuraEndTime,
        Float:NoBlockEndTime,
    }

    new g_client[MAXPLAYERS+1][Aura];

    new g_ioffsCollisionGroup;

    new Handle:g_hTimer = INVALID_HANDLE;
    new Handle:g_hTimerEffect = INVALID_HANDLE;

    new gGlow1;
    new gHalo1;

    new g_color[4];

    public Plugin:myinfo =
    {
        name = "NoBlock Aura",
        author = "Zipcore, Lacrimosa99",
        description = "Spawn noblock and noblock aura",
        version = VERSION,
        url = "zipcore#googlemail.com"
    }

    public OnPluginStart()
    {
        CreateConVar("sm_noblock_aura_version", VERSION, "NoBlock Aura", FCVAR_DONTRECORD|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
        
        cvarAuraNoblockTime = CreateConVar("sm_noblock_aura_noblock_time", "1.0", "Give player in range this amount of time noblock.");
        cvarAuraRange = CreateConVar("sm_noblock_aura_range", "82.0", "Aura range to effect other players.");
        cvarAuraBeamRate = CreateConVar("sm_noblock_aura_beam_rate", "1.0", "Create a beacon every X seconds.");
        cvarAuraSpawnNoblockTime = CreateConVar("sm_noblock_aura_spawn_noblock_time", "10.0", "Give aura this amount of time on roundstart and playerspawn.");
        cvarAuraRefreshRate = CreateConVar("sm_noblock_aura_refresh_rate", "0.1", "Itervall to check for other players in range.");
        cvarAuraTime = CreateConVar("sm_noblock_aura_time", "10.0", "Extend time for aura command.");
        cvarAnnounceRate = CreateConVar("sm_noblock_announce_rate", "180.0", "Announce this plugin to players.");

        g_ioffsCollisionGroup = FindSendPropInfo("CBaseEntity", "m_CollisionGroup");
        if (g_ioffsCollisionGroup == -1)
        {
            SetFailState("CBaseEntity:m_CollisionGroup not found");
        }
        
        HookEvent("round_freeze_end", Event_RoundStart);
        HookEvent("player_spawn", Event_PlayerSpawn);
        
        RegConsoleCmd("say", ChatHook);
        RegConsoleCmd("say_team", ChatHook);
        
        g_color[0] = 255;
        g_color[1] = 50;
        g_color[2] = 50;
        g_color[3] = 50;
    }

    public OnMapStart()
    {
        if(GetEngineVersion() == Engine_CSS)
        {
            gGlow1 = PrecacheModel("materials/sprites/laser.vmt", true);
            gHalo1 = PrecacheModel("materials/sprites/halo01.vmt");
        }
        else if(GetEngineVersion() == Engine_CSGO)
        {
            gGlow1 = PrecacheModel("materials/sprites/laserbeam.vmt", true);
            gHalo1 = PrecacheModel("materials/sprites/halo.vmt");
        }
        else SetFailState("Noblockaura failed: CSS and CSGO only.");
        
        if(GetConVarFloat(cvarAuraRefreshRate) > 0.0)
            g_hTimer = CreateTimer(GetConVarFloat(cvarAuraRefreshRate), Timer, _, TIMER_REPEAT);
        if(GetConVarFloat(cvarAuraBeamRate) > 0.0)
            g_hTimerEffect = CreateTimer(GetConVarFloat(cvarAuraBeamRate), TimerEffect, _, TIMER_REPEAT);
        
        if(GetConVarFloat(cvarAnnounceRate) > 0.0)
            CreateTimer(GetConVarFloat(cvarAnnounceRate), AnnounceMsg, _, TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
    }

    public OnMapEnd()
    {
        // Kill Timers    
        ClearHandle(g_hTimer);
        ClearHandle(g_hTimerEffect);
    }

    public Action:AnnounceMsg(Handle:timer, any:client)
    {
        PrintToChatAll("[Noblock-Aura] Wpisz !noblock lub !nb aby włączyć NoBlock");
        return Plugin_Continue;
    }

    public Event_PlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new client = GetClientOfUserId(GetEventInt(event, "userid"));
        new Float:time = GetGameTime();
        
        g_client[client][AuraEndTime] = time;
        g_client[client][NoBlockEndTime] = time + GetConVarFloat(cvarAuraSpawnNoblockTime);
    }

    public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
        new Float:time = GetGameTime();
        for(new i=1; i <= MaxClients; i++)
        {
            g_client[AuraEndTime] = time;
            g_client[NoBlockEndTime] = time + GetConVarFloat(cvarAuraSpawnNoblockTime);
        }
        PrintToChatAll("[Noblock-Aura] Noblock włączony %ds.", RoundToFloor(GetConVarFloat(cvarAuraSpawnNoblockTime)));
    }

    public Action:ChatHook(client, args)
    {
        new String:line[32];
        new String:name[MAX_NAME_LENGTH];
        
        if (args > 0)
        {
            GetCmdArg(1,line,sizeof(line));
            GetClientName(client, name, sizeof(name));
            
            if (StrEqual(line, "!noblock", false) || StrEqual(line, "!nb", false))
            {
                if(IsClientInGame(client))
                {
                    if(IsPlayerAlive(client))
                    {
                        g_client[client][AuraEndTime] = GetGameTime() + GetConVarFloat(cvarAuraTime);
                        PrintToChat(client, "[Noblock-Aura] Noblock włączony na %ds.", RoundToFloor(GetConVarFloat(cvarAuraTime)));
                    }
                    else PrintToChat(client, "[Noblock-Aura] Musisz być żywy.");
                }
            }
        }
        return Plugin_Continue;
    }

    public Action:Timer(Handle:timer, any:data)
    {
        Refresh_Collision();
        return Plugin_Continue;
    }

    public Action:TimerEffect(Handle:timer, any:data)
    {
        Refresh_Effect();
        return Plugin_Continue;
    }

    SetupBeacon(client)
    {
        new Float:time = GetGameTime();
        new tempColor[4];
        
        tempColor[0] = GetRandomInt(100, 255);
        tempColor[1] = GetRandomInt(100, 255);
        tempColor[2] = GetRandomInt(100, 255);
        tempColor[3] = 50;
        
        new Float:vec[3];
        GetClientAbsOrigin(client, vec);
        vec[2] += 10;
        if(g_client[client][AuraEndTime] - time < 3) TE_SetupBeamRingPoint(vec, 25.0, 150.0, gGlow1, gHalo1, 0, 1, 0.5, 20.0, 0.0, g_color, 1, 0);
        else TE_SetupBeamRingPoint(vec, 25.0, 150.0, gGlow1, gHalo1, 0, 1, 0.5, 20.0, 0.0, tempColor, 1, 0);
        TE_SendToAll();
    }

    Refresh_Effect()
    {
        new Float:time = GetGameTime();
        
        for(new i=1;i<=MaxClients;i++)
        {
            if(IsClientInGame(i) && IsPlayerAlive(i))
            {
                if(g_client[AuraEndTime] > time)
                {
                    SetupBeacon(i);
                }
            }
        }
    }

    Refresh_Collision()
    {
        new Float:time = GetGameTime();
        
        //validate all players
        for(new i=1;i<=MaxClients;i++)
        {
            g_client[AuraIgnore] = false;
            
            if(!(IsClientInGame(i) && IsPlayerAlive(i)))
            {
                g_client[AuraIgnore] = true;
            }
        }
        
        //extend noblock
        for(new i=1;i<=MaxClients;i++)
        {
            if(g_client[AuraIgnore])
                continue;
            
            for(new j=1;j<=MaxClients;j++)
            {
                if(g_client[j][AuraIgnore])
                    continue;
                
                if(g_client[AuraEndTime] > time)
                {
                    if(Entity_InRange(j, i, GetConVarFloat(cvarAuraRange)))
                    {
                        g_client[j][NoBlockEndTime] = time + GetConVarFloat(cvarAuraNoblockTime);
                    }
                }
            }
        }
        
        //set collision group
        for(new i=1;i<=MaxClients;i++)
        {
            if(g_client[AuraIgnore])
                continue;
            
            if(g_client[AuraEndTime] > time || g_client[NoBlockEndTime] > time)
                Client_SetNoblockable(i);
            else if(!IsPlayerStuck(i)) Client_SetBlockable(i);
            //else Client_SetPushable(i);
        }    
    }

    stock bool:IsPlayerStuck(client)
    {
        decl Float:vOrigin[3], Float:vMins[3], Float:vMaxs[3];
        GetClientAbsOrigin(client, vOrigin);
        GetEntPropVector(client, Prop_Send, "m_vecMins", vMins);
        GetEntPropVector(client, Prop_Send, "m_vecMaxs", vMaxs);
        
        TR_TraceHullFilter(vOrigin, vOrigin, vMins, vMaxs, MASK_ALL, FilterOnlyPlayers, client);
        return TR_DidHit();
    }

    public bool:FilterOnlyPlayers(entity, contentsMask, any:data)
    {
        if(entity != data && entity > 0 && entity <= MaxClients)
        {
            return true;
        }
        return false;
    }

     

    public OnEntityCreated(entity, const String:classname[])
    {
        if (StrEqual(classname, "hegrenade_projectile"))
        {
            SetEntData(entity, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true);
        }
        else if (StrEqual(classname, "flashbang_projectile"))
        {
            SetEntData(entity, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true);
        }
        else if (StrEqual(classname, "smokegrenade_projectile"))
        {
            SetEntData(entity, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true);
        }
    }

    stock Client_SetNoblockable(client)
    {
        if(GetEngineVersion() == Engine_CSS)
        {
            new count = 0;
            for(new i=1;i<=MaxClients;i++)
            {
                if(g_client[AuraIgnore])
                    continue;
                
                if(!(IsClientInGame(i) && IsPlayerAlive(i)))
                    continue;
                
                if(Entity_InRange(client, i, 64.0))
                    count++;
            }
            
            if(count > 5)
            {
                SetEntityRenderColor(client, 255, 255, 255, 100);
            }
            else if(count > 2)
            {
                SetEntityRenderColor(client, 255, 255, 255, 150);
            }
            else SetEntityRenderColor(client, 255, 255, 255, 200);
        }
        
        SetEntData(client, g_ioffsCollisionGroup, COLLISION_GROUP_DEBRIS_TRIGGER, 4, true);
    }

    stock Client_SetBlockable(client)
    {
        if(GetEngineVersion() == Engine_CSS)
        {
            SetEntityRenderColor(client, 255, 255, 255, 255);
        }
        SetEntData(client, g_ioffsCollisionGroup, COLLISION_GROUP_PLAYER, 4, true);
    }

    stock Client_SetPushable(client)
    {
        if(GetEngineVersion() == Engine_CSS)
        {
            SetEntityRenderColor(client, 255, 255, 0, 255);
        }
        SetEntData(client, g_ioffsCollisionGroup, COLLISION_GROUP_PUSHAWAY, 4, true);
    }

     

×
×
  • Dodaj nową pozycję...