The Night Fury

Участник
Сообщения
1,300
Реакции
1,395
Я прекрасно понимаю, что часто названия плагинов можно очень просто забыть. Однако это становится причиной постоянного создания тем рода "помогите найти плагин X".

Так вот, чтобы содержать форум в порядке и чистоте, поступим следующим образом:
  1. В дальнейшем создаваемые темы с "помогите найти плагин" будут удаляться, а авторам — выдаваться предупреждения
  2. Если Вы захотите найти плагин, то сначала воспользуйтесь поиском

Если всё же не удалось найти плагин, заполните следующую форму и ответьте в этой теме:

  • Функции плагина
  • Мод/Игра, которая использует этот плагин

Прежде чем отвечать в теме, воспользуйтесь поиском гугла, который почти всегда находит нужное.

Старые темы будут перемещены в корзину.
 
Последнее редактирование модератором:

Synd1qate

Участник
Сообщения
998
Реакции
465
Что бы в спекторах не сидели )
Будто они мешают, наоборот же онлайн поднимают
Сообщения автоматически склеены:

Помогите найти плагин , показывает хп
Нашел материалы а плагин такой не могу найти
Что то типо hp bar называется
 

XDSTYLE

Участник
Сообщения
484
Реакции
327

Вложения

  • 1768849322724.png
    1768849322724.png
    502 КБ · Просмотры: 54
  • Health Bars.rar
    12.1 КБ · Просмотры: 18

7RG

Участник
Сообщения
44
Реакции
13
Не знаю как работает, т.к. не ставил такой плагин, проверишь.
Видимо то что на скрине я прислал переделка , в том много файлов .vtf а тут один .
Люди добрые помогите сделать так что бы над противником всегда было показ полоски ХП
Сейчас она появляется только когда наносишь урон по противнику
Hp Bars:
#pragma semicolon 1

//#include <sourcemod>
#include <sdktools>
//#include <cstrike>
#include <sdkhooks>

//#pragma newdecls required

public Plugin myinfo =
{
    name = "Hp Bars 2",
    author = "Pericles",
    description = "Show a health bar above the last enemy's head who you damaged",
    version = "1.2",
    url = "https://forums.alliedmods.net/showthread.php?t=312223"
};

//Timers Handle and Timers to stop repeat
Handle Timers[MAXPLAYERS + 1];
int TimerRepeats[MAXPLAYERS + 1];
//Bar entitys and material_modify_controls
int hpBarEnts[MAXPLAYERS + 1];
int MMC[MAXPLAYERS + 1];
// Last enemie damaged
int LastVictim[MAXPLAYERS + 1];

Handle cv_time;

public void OnPluginStart()
{
    for (int i = 1; i <= MaxClients; i++) { if(IsClientInGame(i)) OnClientPutInServer(i); }
    
    HookEvent("player_hurt", PlayerHurt_Event);
    
    cv_time = CreateConVar("hpbar2_time", "2", "Time that the enemy's health bar is showed in seconds");
    
    AutoExecConfig(true, "HPbar2");
}

public void OnClientPutInServer(int client)
{   
    TimerRepeats[client]=0; hpBarEnts[client]=-1; LastVictim[client]=-1;
}

public void OnMapStart()
{
    AddFileToDownloadsTable("materials/animated/hpbar5s.vmt");
    AddFileToDownloadsTable("materials/animated/hpbar5s.vtf");
}

public Action PlayerHurt_Event(Event event, const char[] name, bool dontBroadcast)
{   
    int attacker = GetClientOfUserId(event.GetInt("attacker"));
    int victim = GetClientOfUserId(event.GetInt("userid"));
    int victimHP = event.GetInt("health");
    
    if(attacker == victim || attacker == 0 || victim == 0) return;
    
    if(EntRefToEntIndex(hpBarEnts[attacker])==-1) NewHPbar(attacker);
        
    int ent = EntRefToEntIndex(hpBarEnts[attacker]);
        
    if (LastVictim[attacker]!=victim)
    {
        AcceptEntityInput(ent, "ClearParent");
        float pos[3]; GetClientAbsOrigin(victim, pos); pos[2]+=80;
        TeleportEntity(ent, pos, NULL_VECTOR, NULL_VECTOR);
        SetVariantString("!activator");
        AcceptEntityInput(ent, "SetParent", victim, ent, 0);
        
        LastVictim[attacker]=victim;
    }
    
    if (victimHP==0) { HideHPbar(victim); return; }
    
    AcceptEntityInput(ent, "ShowSprite");
    DrawHPBar(attacker, victimHP);
    
    TimerRepeats[attacker]=0;
    if (Timers[attacker]==INVALID_HANDLE) Timers[attacker] = CreateTimer(0.2, T_Update, attacker, TIMER_REPEAT);
}

public void HideHPbar(int victim)
{
    for (int client=1; client<=MaxClients; client++)
    {
        if (IsClientInGame(client) && LastVictim[client]==victim)
        {
            int ent = EntRefToEntIndex(hpBarEnts[client]);
            if (ent!=-1) AcceptEntityInput(ent, "HideSprite");
        }
    } 
}

public void NewHPbar(int owner)
{
    char iTarget[20];
    GetClientName(owner, iTarget, 20);
    
    int ent = CreateEntityByName("env_sprite");
    if (ent!=-1)
    {
        hpBarEnts[owner] = EntIndexToEntRef(ent);
        
        DispatchKeyValue(ent, "model", "animated/hpbar5s.vmt");
        DispatchKeyValue(ent, "scale", "1");
        DispatchKeyValue(ent, "rendermode", "7");
        
        Format(iTarget, 16, "sprite%d", owner);
        DispatchKeyValue(ent, "targetname", iTarget);
        
        DispatchSpawn(ent);
        ActivateEntity(ent);
        AcceptEntityInput(ent, "HideSprite");
        
        SetEntPropEnt(ent, Prop_Send, "m_hOwnerEntity", owner);   
        SDKHook(ent, SDKHook_SetTransmit, SetTransmit_Hook);
    }
    
    ent = CreateEntityByName("material_modify_control");
    if (ent!=-1)
    {
        MMC[owner] = EntIndexToEntRef(ent);
        
        DispatchKeyValue(ent, "materialName", "animated/hpbar5s.vmt");
        DispatchKeyValue(ent, "materialVar", "$frame");
        
        SetVariantString(iTarget);
        AcceptEntityInput(ent, "SetParent", ent, ent, 0);
    }
}

public Action SetTransmit_Hook(int entity, int client)
{
    if(GetEdictFlags(entity) & FL_EDICT_ALWAYS)
        SetEdictFlags(entity, (GetEdictFlags(entity) ^ FL_EDICT_ALWAYS));
    
    if ( GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity") == client ) return Plugin_Continue;
    
    return Plugin_Stop;
}

public void DrawHPBar(int client, int victimHP)
{
    char strHP[3]; int frame = 1;
    for (int i=5;i<=100;i+=5)
    {
        if (victimHP<=i) break;
        frame++;
    }
    IntToString(frame, strHP, 3);
    
    char Vstring[12];
    Format(Vstring, 12, "%s -1 0 0", strHP);
    SetVariantString(Vstring);
    AcceptEntityInput(EntRefToEntIndex(MMC[client]), "StartAnimSequence");
}

public Action T_Update(Handle timer, any client)
{
    int ent = EntRefToEntIndex(hpBarEnts[client]);
    if (ent==-1)
    {
        TimerRepeats[client]=0 ; Timers[client]=INVALID_HANDLE;
        return Plugin_Stop;
    }

    if (TimerRepeats[client]>=GetConVarInt(cv_time)*5)
    {
        TimerRepeats[client]=0 ; Timers[client]=INVALID_HANDLE;
        AcceptEntityInput(ent, "HideSprite");       
        
        return Plugin_Stop;
    }
    
    DrawHPBar(client, GetClientHealth(LastVictim[client]));
    
    TimerRepeats[client]++;
    
    return Plugin_Continue;
}

public void OnClientDisconnect(int client)
{
    killTimer(client);
    int hpEnt = EntRefToEntIndex(hpBarEnts[client]);
    if(hpEnt!=-1) AcceptEntityInput(hpEnt, "KillHierarchy" );
    
}

public void killTimer(int victim)
{
    for (int client=1; client<=MaxClients; client++)
    {
        if (IsClientInGame(client) && LastVictim[client]==victim && Timers[client]!=INVALID_HANDLE)
        {
            KillTimer(Timers[client]);
            Timers[client] = INVALID_HANDLE;
        }
    } 
}
 

Synd1qate

Участник
Сообщения
998
Реакции
465
Видимо то что на скрине я прислал переделка , в том много файлов .vtf а тут один .
Люди добрые помогите сделать так что бы над противником всегда было показ полоски ХП
Сейчас она появляется только когда наносишь урон по противнику
Hp Bars:
#pragma semicolon 1

//#include <sourcemod>
#include <sdktools>
//#include <cstrike>
#include <sdkhooks>

//#pragma newdecls required

public Plugin myinfo =
{
    name = "Hp Bars 2",
    author = "Pericles",
    description = "Show a health bar above the last enemy's head who you damaged",
    version = "1.2",
    url = "https://forums.alliedmods.net/showthread.php?t=312223"
};

//Timers Handle and Timers to stop repeat
Handle Timers[MAXPLAYERS + 1];
int TimerRepeats[MAXPLAYERS + 1];
//Bar entitys and material_modify_controls
int hpBarEnts[MAXPLAYERS + 1];
int MMC[MAXPLAYERS + 1];
// Last enemie damaged
int LastVictim[MAXPLAYERS + 1];

Handle cv_time;

public void OnPluginStart()
{
    for (int i = 1; i <= MaxClients; i++) { if(IsClientInGame(i)) OnClientPutInServer(i); }
    
    HookEvent("player_hurt", PlayerHurt_Event);
    
    cv_time = CreateConVar("hpbar2_time", "2", "Time that the enemy's health bar is showed in seconds");
    
    AutoExecConfig(true, "HPbar2");
}

public void OnClientPutInServer(int client)
{   
    TimerRepeats[client]=0; hpBarEnts[client]=-1; LastVictim[client]=-1;
}

public void OnMapStart()
{
    AddFileToDownloadsTable("materials/animated/hpbar5s.vmt");
    AddFileToDownloadsTable("materials/animated/hpbar5s.vtf");
}

public Action PlayerHurt_Event(Event event, const char[] name, bool dontBroadcast)
{   
    int attacker = GetClientOfUserId(event.GetInt("attacker"));
    int victim = GetClientOfUserId(event.GetInt("userid"));
    int victimHP = event.GetInt("health");
    
    if(attacker == victim || attacker == 0 || victim == 0) return;
    
    if(EntRefToEntIndex(hpBarEnts[attacker])==-1) NewHPbar(attacker);
        
    int ent = EntRefToEntIndex(hpBarEnts[attacker]);
        
    if (LastVictim[attacker]!=victim)
    {
        AcceptEntityInput(ent, "ClearParent");
        float pos[3]; GetClientAbsOrigin(victim, pos); pos[2]+=80;
        TeleportEntity(ent, pos, NULL_VECTOR, NULL_VECTOR);
        SetVariantString("!activator");
        AcceptEntityInput(ent, "SetParent", victim, ent, 0);
        
        LastVictim[attacker]=victim;
    }
    
    if (victimHP==0) { HideHPbar(victim); return; }
    
    AcceptEntityInput(ent, "ShowSprite");
    DrawHPBar(attacker, victimHP);
    
    TimerRepeats[attacker]=0;
    if (Timers[attacker]==INVALID_HANDLE) Timers[attacker] = CreateTimer(0.2, T_Update, attacker, TIMER_REPEAT);
}

public void HideHPbar(int victim)
{
    for (int client=1; client<=MaxClients; client++)
    {
        if (IsClientInGame(client) && LastVictim[client]==victim)
        {
            int ent = EntRefToEntIndex(hpBarEnts[client]);
            if (ent!=-1) AcceptEntityInput(ent, "HideSprite");
        }
    } 
}

public void NewHPbar(int owner)
{
    char iTarget[20];
    GetClientName(owner, iTarget, 20);
    
    int ent = CreateEntityByName("env_sprite");
    if (ent!=-1)
    {
        hpBarEnts[owner] = EntIndexToEntRef(ent);
        
        DispatchKeyValue(ent, "model", "animated/hpbar5s.vmt");
        DispatchKeyValue(ent, "scale", "1");
        DispatchKeyValue(ent, "rendermode", "7");
        
        Format(iTarget, 16, "sprite%d", owner);
        DispatchKeyValue(ent, "targetname", iTarget);
        
        DispatchSpawn(ent);
        ActivateEntity(ent);
        AcceptEntityInput(ent, "HideSprite");
        
        SetEntPropEnt(ent, Prop_Send, "m_hOwnerEntity", owner);   
        SDKHook(ent, SDKHook_SetTransmit, SetTransmit_Hook);
    }
    
    ent = CreateEntityByName("material_modify_control");
    if (ent!=-1)
    {
        MMC[owner] = EntIndexToEntRef(ent);
        
        DispatchKeyValue(ent, "materialName", "animated/hpbar5s.vmt");
        DispatchKeyValue(ent, "materialVar", "$frame");
        
        SetVariantString(iTarget);
        AcceptEntityInput(ent, "SetParent", ent, ent, 0);
    }
}

public Action SetTransmit_Hook(int entity, int client)
{
    if(GetEdictFlags(entity) & FL_EDICT_ALWAYS)
        SetEdictFlags(entity, (GetEdictFlags(entity) ^ FL_EDICT_ALWAYS));
    
    if ( GetEntPropEnt(entity, Prop_Send, "m_hOwnerEntity") == client ) return Plugin_Continue;
    
    return Plugin_Stop;
}

public void DrawHPBar(int client, int victimHP)
{
    char strHP[3]; int frame = 1;
    for (int i=5;i<=100;i+=5)
    {
        if (victimHP<=i) break;
        frame++;
    }
    IntToString(frame, strHP, 3);
    
    char Vstring[12];
    Format(Vstring, 12, "%s -1 0 0", strHP);
    SetVariantString(Vstring);
    AcceptEntityInput(EntRefToEntIndex(MMC[client]), "StartAnimSequence");
}

public Action T_Update(Handle timer, any client)
{
    int ent = EntRefToEntIndex(hpBarEnts[client]);
    if (ent==-1)
    {
        TimerRepeats[client]=0 ; Timers[client]=INVALID_HANDLE;
        return Plugin_Stop;
    }

    if (TimerRepeats[client]>=GetConVarInt(cv_time)*5)
    {
        TimerRepeats[client]=0 ; Timers[client]=INVALID_HANDLE;
        AcceptEntityInput(ent, "HideSprite");       
        
        return Plugin_Stop;
    }
    
    DrawHPBar(client, GetClientHealth(LastVictim[client]));
    
    TimerRepeats[client]++;
    
    return Plugin_Continue;
}

public void OnClientDisconnect(int client)
{
    killTimer(client);
    int hpEnt = EntRefToEntIndex(hpBarEnts[client]);
    if(hpEnt!=-1) AcceptEntityInput(hpEnt, "KillHierarchy" );
    
}

public void killTimer(int victim)
{
    for (int client=1; client<=MaxClients; client++)
    {
        if (IsClientInGame(client) && LastVictim[client]==victim && Timers[client]!=INVALID_HANDLE)
        {
            KillTimer(Timers[client]);
            Timers[client] = INVALID_HANDLE;
        }
    } 
}
Один файл потому что там используются кадры , принцип тот же
 

7RG

Участник
Сообщения
44
Реакции
13
для cs:go ещё есть такая штука - Damage Bar
Failed to load plugin "damage_bar.smx": This plugin is for CS:GO only..
У меня css 34. Попробовал вырезать ошибку их исходника😁
L 01/19/2026 - 22:51:06: [SM] Exception reported: Invalid message name: "UpdateScreenHealthBar"
L 01/19/2026 - 22:51:06: [SM] Blaming: damage_bar.smx
L 01/19/2026 - 22:51:06: [SM] Call stack trace:
L 01/19/2026 - 22:51:06: [SM] [0] StartMessage
L 01/19/2026 - 22:51:06: [SM] [1] Line 269, C:\Users\Admin\Desktop\scripting 1.10\include\usermessages.inc::StartMessageOne
L 01/19/2026 - 22:51:06: [SM] [2] Line 92, C:\Users\Admin\Desktop\scripting 1.10\damage_bar.sp::Event_PlayerHurt
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,819
Реакции
5,259
в том много файлов .vtf а тут один
это потому что в этой версии все файлы в один объединены
Сообщения автоматически склеены:

This plugin is for CS:GO only..
У меня css 34.
не будет работать как ни изгаляся: в CSGO используется хэлсбар, который в движке игры встроен
Сообщения автоматически склеены:

что бы над противником всегда было показ полоски ХП
Закомментируй или удали строки с 169-й по 175-ю.
По идее должно помочь.

Хотя я бы поправил код на 169-й строке, чтобы при отрицательных значениях квара не скрывалась шкала.
 
Последнее редактирование:

7RG

Участник
Сообщения
44
Реакции
13
это потому что в этой версии все файлы в один объединены
Сообщения автоматически склеены:


не будет работать как ни изгаляся: в CSGO используется хэлсбар, который в движке игры встроен
Сообщения автоматически склеены:


Закомментируй или удали строки с 169-й по 175-ю.
По идее должно помочь.

Хотя я бы поправил код на 169-й строке, чтобы при отрицательных значениях квара не скрывалась шкала.
Пробывал ставить -1 в конфиг , не помогло
Сообщения автоматически склеены:

это потому что в этой версии все файлы в один объединены
Сообщения автоматически склеены:


не будет работать как ни изгаляся: в CSGO используется хэлсбар, который в движке игры встроен
Сообщения автоматически склеены:


Закомментируй или удали строки с 169-й по 175-ю.
По идее должно помочь.

Хотя я бы поправил код на 169-й строке, чтобы при отрицательных значениях квара не скрывалась шкала.
Закомментировал строки

L 01/19/2026 - 23:46:51: [SM] Blaming: HPbar2.smx
L 01/19/2026 - 23:46:51: [SM] Call stack trace:
L 01/19/2026 - 23:46:51: [SM] [0] AcceptEntityInput
L 01/19/2026 - 23:46:51: [SM] [1] Line 157, C:\Users\Admin\Desktop\scripting 1.10\HPbar2.sp::DrawHPBar
L 01/19/2026 - 23:46:51: [SM] [2] Line 171, C:\Users\Admin\Desktop\scripting 1.10\HPbar2.sp::T_Update
L 01/19/2026 - 23:46:52: [SM] Exception reported: Entity -1 (-1) is not a CBaseEntity
L 01
Каждую сек сообщение пишет в консоль
Теперь хп бар видно только когда урон нанесешь по противнику , можно отобразить его как только он заспавнился ?
Сообщения автоматически склеены:
 
Последнее редактирование:

Grey83

не пишу плагины с весны 2022
Сообщения
8,819
Реакции
5,259
Пробывал ставить -1 в конфиг , не помогло
не удивительно: плагин принимает только значения от 0 и выше

я же писал, что нужно код плагина поправитьдля такого
Exception reported: Entity -1 (-1) is not a CBaseEntity
где-то ты накосячил прикомментировании строк, видимо
Сообщения автоматически склеены:

на строке 163 есть проверка этого значения, а у тебя она не производится
 

7RG

Участник
Сообщения
44
Реакции
13
Доброго времени суток. Появилась идея как разнообразить свой дм сервер .
допустим если на сервере играет 10 живых игроков или меньше включать режим каждый сам за себя , если больше команда на команду
Есть плагин такой ?
 

Synd1qate

Участник
Сообщения
998
Реакции
465
Доброго времени суток. Появилась идея как разнообразить свой дм сервер .
допустим если на сервере играет 10 живых игроков или меньше включать режим каждый сам за себя , если больше команда на команду
Есть плагин такой ?
Создаёте конфиг и там френдлифаер 0/1
 

lesha

Участник
Сообщения
118
Реакции
17
Добрый вечер. Можете написать плагин пожалуйста, что бы при входе на сервер не было выбора ct/t и так же спеков, что бы игрок сразу авто зашел за команду. ( в общем что бы вообще не было выбора и не было меню при заходе ). Может уже есть такой плагин, подскажите.
Не кто не поможешь ?
 

babka68

Участник
Сообщения
2,137
Реакции
978
Ну вот на коленке тебе, будет запрещать заходить в наблюдатели, так же через М или при входе на сервер, менюшкой не загонялся
 

Вложения

  • block_spec.sp
    4.2 КБ · Просмотры: 21

lesha

Участник
Сообщения
118
Реакции
17
Ну вот на коленке тебе, будет запрещать заходить в наблюдатели, так же через М или при входе на сервер, менюшкой не загонялся
Нужно что бы при входе на сервер не было выбора ct/t и так же спеков = вот я что хочу. Убрать этот MOTD или как это назвать. То есть вообще вырезать из CSS эту функцию грубо говоря. Что бы игрок как только подключился к серверу - он уже играл за одну из команд ( в зависимости от мода )
 

Synd1qate

Участник
Сообщения
998
Реакции
465
Нужно что бы при входе на сервер не было выбора ct/t и так же спеков = вот я что хочу. Убрать этот MOTD или как это назвать. То есть вообще вырезать из CSS эту функцию грубо говоря. Что бы игрок как только подключился к серверу - он уже играл за одну из команд ( в зависимости от мода )
а откуда мы знаем за какую команду его кидать в зависимости от мода? Он будет либо в меньшую команду вступать либо нужен как минимум include с поддержкой от мода
 

ZooM4322

Нейронка:)
Сообщения
179
Реакции
66
Или он хочет, чтобы брасало в команду автоматически согласно автобалансу?
Сообщения автоматически склеены:

Или он хочет, чтобы брасало в команду автоматически согласно автобалансу?
Обычно, просто если на обычном сервере выберешь автоматически команду, то тебя бросает за ту которая проигрывает
 

lesha

Участник
Сообщения
118
Реакции
17
а откуда мы знаем за какую команду его кидать в зависимости от мода? Он будет либо в меньшую команду вступать либо нужен как минимум include с поддержкой от мода
zombiereloaded.inc

там include что конь ...
Сообщения автоматически склеены:

Или он хочет, чтобы брасало в команду автоматически согласно автобалансу?
Сообщения автоматически склеены:


Обычно, просто если на обычном сервере выберешь автоматически команду, то тебя бросает за ту которая проигрывает
Нужно что бы при входе на сервер не было выбора ct/t и так же спеков = вот я что хочу. Что бы игрок уже играл ) Стоял с оружием грубо говоря ) без всяких меню при заходе на сервер ( как объяснить то я не понимаю, что бы ВЫ поняли )
 

Synd1qate

Участник
Сообщения
998
Реакции
465
zombiereloaded.inc

там include что конь ...
Сообщения автоматически склеены:


Нужно что бы при входе на сервер не было выбора ct/t и так же спеков = вот я что хочу. Что бы игрок уже играл ) Стоял с оружием грубо говоря ) без всяких меню при заходе на сервер ( как объяснить то я не понимаю, что бы ВЫ поняли )
Щас найду свой плагин старый, попробую сделать
 
Сверху Снизу