Написание плагинов

Мотыга

сила в силе духа ☠️☠️☠️
Сообщения
84
Реакции
49
Нужен плагин на удаление трупов после смерти как на DM - с кварам на включение и отключения плагина
 

vertigo

Участник
Сообщения
32
Реакции
29
Need a plug-in to remove corpses after death as on THE DM - with quartz on turning on and disabling the plug-in
 

babka68

Участник
Сообщения
2,124
Реакции
956
Нужен плагин на удаление трупов после смерти как на DM - с кварам на включение и отключения плагина

Пробуйте,после 1 запуска палагина создастся конфиг по пути /cfg/sourcemod/dissolve.cfg
C-подобный:
// Через сколько секунд растворить труп?
// -
// Default: "2"
// Minimum: "20.000000"
sm_dissolve_delay "2"

// 1 - включить,0 - выключить плагин.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_dissolve_enable "1"

// 0 - растворяется в воздухе, 1 и 2 растворяется на земле, 3 труп быстро растворяется
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "3.000000"
sm_dissolve_type "3"

C-подобный:
#pragma semicolon 1
#pragma newdecls required
#include <sdktools>

Handle cvDelay = null, cvType = null, bEnable = null;

public Plugin myinfo =  {
    name = "Dissolving dead/Растворять тела",
    author = "L.Duke, babka68",
    description = "Dissolves dead bodies/Растворяет мертвые тела",
    version = "1.1",
    url = "lduke.com, tmb-css.ru, helper-source.ru"
};

public void OnPluginStart()
{
    HookEvent("player_death", PlayerDeath);

    bEnable = CreateConVar("sm_dissolve_enable", "0", "1 - включить,0 - выключить плагин.", _, true, 0.0, true, 1.0);
    cvDelay = CreateConVar("sm_dissolve_delay", "2", "Через сколько секунд растворить труп?");
    cvType = CreateConVar("sm_dissolve_type", "3", "0 - растворяется в воздухе, 1 и 2 растворяется на земле, 3 труп быстро растворяется");

    AutoExecConfig(true, "dissolve");
}

public void OnEventShutdown()
{
    UnhookEvent("player_death", PlayerDeath);
}

public Action PlayerDeath(Handle event, const char[] name, bool dontBroadcast)
{
    if (!GetConVarBool(bEnable))
    {
        return Plugin_Continue;
    }
    int client;
    client = GetClientOfUserId(GetEventInt(event, "userid"));

    float delay = GetConVarFloat(cvDelay);
    if (delay > 0.0)
    {
        CreateTimer(delay, Dissolve, client);
    }
    else
    {
        Dissolve(null, client);
    }
    return Plugin_Continue;
}

public Action Dissolve(Handle timer, any client)
{
    if (!IsValidEntity(client))
    {
        return;
    }

    int ragdoll = GetEntPropEnt(client, Prop_Send, "m_hRagdoll");
    if (ragdoll < 0)
    {
        PrintToServer("[DISSOLVE] Не удалось получить тряпичную куклу для игрока!");
        return;
    }

    char dname[32], dtype[32];
    Format(dname, sizeof(dname), "dis_%d", client);
    Format(dtype, sizeof(dtype), "%d", GetConVarInt(cvType));

    int ent = CreateEntityByName("env_entity_dissolver");
    if (ent > 0)
    {
        DispatchKeyValue(ragdoll, "targetname", dname);
        DispatchKeyValue(ent, "dissolvetype", dtype);
        DispatchKeyValue(ent, "target", dname);
        AcceptEntityInput(ent, "Dissolve");
        AcceptEntityInput(ent, "kill");
    }

}
 

Мотыга

сила в силе духа ☠️☠️☠️
Сообщения
84
Реакции
49
Пробуйте,после 1 запуска палагина создастся конфиг по пути /cfg/sourcemod/dissolve.cfg
C-подобный:
// Через сколько секунд растворить труп?
// -
// Default: "2"
// Minimum: "20.000000"
sm_dissolve_delay "2"

// 1 - включить,0 - выключить плагин.
// -
// Default: "0"
// Minimum: "0.000000"
// Maximum: "1.000000"
sm_dissolve_enable "1"

// 0 - растворяется в воздухе, 1 и 2 растворяется на земле, 3 труп быстро растворяется
// -
// Default: "3"
// Minimum: "0.000000"
// Maximum: "3.000000"
sm_dissolve_type "3"

C-подобный:
#pragma semicolon 1
#pragma newdecls required
#include <sdktools>

Handle cvDelay = null, cvType = null, bEnable = null;

public Plugin myinfo =  {
    name = "Dissolving dead/Растворять тела",
    author = "L.Duke, babka68",
    description = "Dissolves dead bodies/Растворяет мертвые тела",
    version = "1.1",
    url = "lduke.com, tmb-css.ru, helper-source.ru"
};

public void OnPluginStart()
{
    HookEvent("player_death", PlayerDeath);

    bEnable = CreateConVar("sm_dissolve_enable", "0", "1 - включить,0 - выключить плагин.", _, true, 0.0, true, 1.0);
    cvDelay = CreateConVar("sm_dissolve_delay", "2", "Через сколько секунд растворить труп?");
    cvType = CreateConVar("sm_dissolve_type", "3", "0 - растворяется в воздухе, 1 и 2 растворяется на земле, 3 труп быстро растворяется");

    AutoExecConfig(true, "dissolve");
}

public void OnEventShutdown()
{
    UnhookEvent("player_death", PlayerDeath);
}

public Action PlayerDeath(Handle event, const char[] name, bool dontBroadcast)
{
    if (!GetConVarBool(bEnable))
    {
        return Plugin_Continue;
    }
    int client;
    client = GetClientOfUserId(GetEventInt(event, "userid"));

    float delay = GetConVarFloat(cvDelay);
    if (delay > 0.0)
    {
        CreateTimer(delay, Dissolve, client);
    }
    else
    {
        Dissolve(null, client);
    }
    return Plugin_Continue;
}

public Action Dissolve(Handle timer, any client)
{
    if (!IsValidEntity(client))
    {
        return;
    }

    int ragdoll = GetEntPropEnt(client, Prop_Send, "m_hRagdoll");
    if (ragdoll < 0)
    {
        PrintToServer("[DISSOLVE] Не удалось получить тряпичную куклу для игрока!");
        return;
    }

    char dname[32], dtype[32];
    Format(dname, sizeof(dname), "dis_%d", client);
    Format(dtype, sizeof(dtype), "%d", GetConVarInt(cvType));

    int ent = CreateEntityByName("env_entity_dissolver");
    if (ent > 0)
    {
        DispatchKeyValue(ragdoll, "targetname", dname);
        DispatchKeyValue(ent, "dissolvetype", dtype);
        DispatchKeyValue(ent, "target", dname);
        AcceptEntityInput(ent, "Dissolve");
        AcceptEntityInput(ent, "kill");
    }

}
[DISSOLVE] Не удалось получить тряпичную куклу для игрока!
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Bason, у тебя стоят плагины, которые трупы убирают или квар на их убирание?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Bason, ну так во время игры трупы вообще появляются?
Они должны или лежать до конца раунда или даже не появляться, емнип.
Плагины могут убирать их через время или сразу.
В КСГО есть клиентский квар cl_disable_ragdolls, который должен убирать рэгдоллы в клиенте.
 

Мотыга

сила в силе духа ☠️☠️☠️
Сообщения
84
Реакции
49
@Bason, ну так во время игры трупы вообще появляются?
Они должны или лежать до конца раунда или даже не появляться, емнип.
Плагины могут убирать их через время или сразу.
В КСГО есть клиентский квар cl_disable_ragdolls, который должен убирать рэгдоллы в клиенте.
Да,и лежат до конца раунда
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
@Bason, попробуй такой вариант:
C-подобный:
#pragma semicolon 1
#pragma newdecls required

#include <sdktools_entinput>
#include <sdktools_functions>
#if SOURCEMOD_V_MINOR >= 9
    #include <sdktools_variant_t>
#endif

bool
    bEnable;
int
    iType;
float
    fDelay;

public void OnPluginStart()
{
    ConVar cvar;
    cvar = CreateConVar("sm_dissolve_enable", "0", "1 - включить,0 - выключить плагин.", _, true, _, true, 1.0);
    cvar.AddChangeHook(CVarChanged_Enable);
    CVarChanged_Enable(cvar, NULL_STRING, NULL_STRING);

    cvar = CreateConVar("sm_dissolve_delay", "2", "Через сколько секунд растворить труп?", _, true);
    cvar.AddChangeHook(CVarChanged_Delay);
    fDelay = cvar.FloatValue;

//    тип исчезновения: 0 - Energy, 1 - Heavy electrical, 2 - Light electrical, 3 - Core effect
    cvar = CreateConVar("sm_dissolve_type", "3", "0 - растворяется в воздухе, 1 и 2 растворяется на земле, 3 труп быстро растворяется", _, true, _, true, 3.0);
    cvar.AddChangeHook(CVarChanged_Type);
    iType = cvar.IntValue;

    AutoExecConfig(true, "dissolve");
}

public void CVarChanged_Enable(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    bEnable = cvar.BoolValue;

    static bool hooked;
    if(hooked == bEnable) return;

    if((hooked = !hooked)) HookEvent("player_death", Event_Death);
    else UnhookEvent("player_death", Event_Death);
}

public void CVarChanged_Delay(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    fDelay = cvar.FloatValue;
}

public void CVarChanged_Type(ConVar cvar, const char[] oldValue, const char[] newValue)
{
    iType = cvar.IntValue;
}

public void Event_Death(Event event, const char[] name, bool dontBroadcast)
{
    CreateTimer(fDelay, Dissolve, event.GetInt("userid"));
}

public Action Dissolve(Handle timer, any client)
{
    if(!(client = GetClientOfUserId(client)))
        return Plugin_Stop;

    static int offset = -1;
    if(offset == -1 && (offset = FindSendPropInfo("CCSPlayer", "m_hRagdoll")) == -1)
    {
        PrintToServer("[DISSOLVE] Unable to find offset \"CCSPlayer::m_hRagdoll!\"");
        return Plugin_Stop;
    }

    int ragdoll = GetEntPropEnt(client, Prop_Send, "m_hRagdoll");
    if(ragdoll == -1 || !IsValidEntity(ragdoll))
    {
        PrintToServer("[DISSOLVE] Unable to find player's ragdoll!");
        return Plugin_Stop;
    }

    int ent = CreateEntityByName("env_entity_dissolver");
    if(ent == -1)
    {
        AcceptEntityInput(ragdoll, "Kill");
        return Plugin_Stop;
    }

    char buffer[16];
    FormatEx(buffer, sizeof(buffer), "dis_%d", ragdoll);
    DispatchKeyValue(ragdoll, "targetname", buffer);
    DispatchKeyValue(ent, "target", buffer);

    FormatEx(buffer, sizeof(buffer), "%d", iType);
    DispatchKeyValue(ent, "dissolvetype", buffer);

    SetVariantString("!activator");
    AcceptEntityInput(ent, "SetParent", ragdoll, ent, 0);
    AcceptEntityInput(ent, "Dissolve");
    return Plugin_Stop;
}
 

Вложения

  • sm_dissolve.sp
    2.9 КБ · Просмотры: 8

lesha

Участник
Сообщения
84
Реакции
7
Отредактируйте плагин пожалуйста, игроки застревают при возрождении ( на лестницах в основном ) , сделайте что бы игрок возрождался на месте возрождавшего ну или что бы он как то выше спавнился при возрождении. ( другой плагин поднятия не интересует ) Могу заплатить. За ранее спасибо!
 

Вложения

  • CSS_Resurrect.sp
    15.7 КБ · Просмотры: 6

Rysik5318

Участник
Сообщения
27
Реакции
15
1. Добро пожаловать за КТ
2. Приветствие (лично) в чат при заходе за КТ
 

xstage

🏹
Сообщения
726
Реакции
754
Здравствуйте! Когда мяч приземляется, издается звук гранаты, не могли бы исправить?


Заменял на звук и проблема остается таже.
Посмотреть вложение 77346

Как звучит на сервере - Action 05-05-2021 15-16-21.mp4
Как должен -
Проверь папку со звуком(у себя и на сервере), возможно там не тот лежит
 

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
Можно очистить игровой чат от сообщений? Не перехватом заблокировать сообщения, а очистка как clear в консоле
 

KiKiEEKi

🏆 🥇
Сообщения
653
Реакции
513
Нет, прям очистка(удаление) сообщений. Но как я понял это не возможно, что такой супер мини плагин добавили в ресурсы. Наверное и приветствие в чат есть в ресурсах который в 1 строку кода. А как мой chat bot добавить так это фигня.
 

Madness aka null138

Участник
Сообщения
713
Реакции
734
Можно очистить игровой чат от сообщений? Не перехватом заблокировать сообщения, а очистка как clear в консоле
никак. а влепить кучу строк пустых сообщений в чат якобы как чистка тоже не рекомендую. через пару таких манипуляций игра начнет намертво замирать при открытии чата а под конец и крашнет.(это для тех, кто предложит такой вариант).
 

-=|УЧЕНИК|=-

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
привет всем
можно как то сделать в плагине,чтоб осмотр модели был и с переди тоже?
А то получается осмотр модели идет только зад)
то-есть чтоб повернул в какое положения тебе надо,Он в том и остался.
Ну если можно сделать так конечно
заранее благодарю
думаю много кому пригодится такой
 

Вложения

  • den_skinview.sp
    840 байт · Просмотры: 13

Truyn

King of clowns
Сообщения
1,591
Реакции
749
Нужен плагин который будет держать ботов в рабстве (в спектаторах) и при достижении на сервере n кол-ва игроков кикать их всех (cvar)
 

romeo7

Участник
Сообщения
189
Реакции
93
привет всем
можно как то сделать в плагине,чтоб осмотр модели был и с переди тоже?
А то получается осмотр модели идет только зад)
то-есть чтоб повернул в какое положения тебе надо,Он в том и остался.
Ну если можно сделать так конечно
заранее благодарю
думаю много кому пригодится такой
Попробуй
 

Вложения

  • den_skinview.sp
    1 КБ · Просмотры: 9
Сверху Снизу