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

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,982
@Tomich, там ограничение на количество использований в сутки, емнип
 

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
Как называется плагин для отключения звука и текста при броске гранаты?Этот плагин у меня был на компе и был утерян.Название не поиню.
Скиньте ссылку тут точно был такой.
Игра Counter-Strike Source v.34

Держи =) Компиль и пользуйся
PHP:
#pragma semicolon 1
#pragma newdecls required

#include <sourcemod>

int last_radio_use[65];
int note[65];
Handle cvar_radio_spam_block = null;
Handle cvar_radio_spam_block_time = null;
Handle cvar_radio_spam_block_all = null;
Handle cvar_radio_spam_block_notify = null;
bool notify = true;

public void OnPluginStart()
{
    RegConsoleCmd("coverme", RestrictRadio);
    RegConsoleCmd("takepoint", RestrictRadio);
    RegConsoleCmd("holdpos", RestrictRadio);
    RegConsoleCmd("regroup", RestrictRadio);
    RegConsoleCmd("followme", RestrictRadio);
    RegConsoleCmd("takingfire", RestrictRadio);
    RegConsoleCmd("go", RestrictRadio);
    RegConsoleCmd("fallback", RestrictRadio);
    RegConsoleCmd("sticktog", RestrictRadio);
    RegConsoleCmd("getinpos", RestrictRadio);
    RegConsoleCmd("stormfront", RestrictRadio);
    RegConsoleCmd("report", RestrictRadio);
    RegConsoleCmd("roger", RestrictRadio);
    RegConsoleCmd("enemyspot", RestrictRadio);
    RegConsoleCmd("needbackup", RestrictRadio);
    RegConsoleCmd("sectorclear", RestrictRadio);
    RegConsoleCmd("inposition", RestrictRadio);
    RegConsoleCmd("reportingin", RestrictRadio);
    RegConsoleCmd("getout", RestrictRadio);
    RegConsoleCmd("negative", RestrictRadio);
    RegConsoleCmd("enemydown", RestrictRadio);
  
    cvar_radio_spam_block = CreateConVar("SM_RADIO_SPAM_BLOCK_ON", "1", "0 = отключено, 1 = включен Функциональность блока радиоcпама", 0, true, 0.0, true, 1.0);
    cvar_radio_spam_block_time = CreateConVar("SM_RADIO_SPAM_TIME", "0", "Время в секундах между радиосообщениями", 0, true, 1.0, true, 60.0);
    cvar_radio_spam_block_all = CreateConVar("SM_RADIO_SPAM_BLOCK_ALL", "1", "0 = отключено, 1 = блокировать все радиосообщения", 0, true, 0.0, true, 1.0);
    cvar_radio_spam_block_notify = CreateConVar("SM_RADIO_N", "0", "0 = отключено, 1 = показывать сообщение чата игроку, когда его радиоспам заблокирован", 0, true, 0.0, true, 1.0);

    for (int i = 0; i < 64; i++)
    {
        last_radio_use[i] = -1;
    }
}

public Action RestrictRadio(int client,int args)
{
    if (!GetConVarBool(cvar_radio_spam_block))
    {
        return Plugin_Continue;
    }
  
    notify = GetConVarBool(cvar_radio_spam_block_notify);
  
    if(GetConVarBool(cvar_radio_spam_block_all))
    {
      
        if (notify)
        {
            return Plugin_Handled;
        }
        else
        {
            return Plugin_Handled;
        }
    }
  
    if (last_radio_use[client] == -1)
    {
        last_radio_use[client] = GetTime();
        return Plugin_Continue;
    }
  
    int time = GetTime() - last_radio_use[client];
    int block_time = GetConVarInt(cvar_radio_spam_block_time);
    if ( time >= block_time )
    {
        last_radio_use[client] = GetTime();
        return Plugin_Continue;
    }
  
    int wait_time = block_time - time;
      
    if ( (note[client] != wait_time) && notify)
    {
        if (wait_time <= 1){}else{}
    }
  
    note[client] = wait_time;
    return Plugin_Handled;
}
 

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
Вот бы такое под старый source v34
На попробуй (Если работает то на все ксс пойти должна)
PHP:
#pragma semicolon 1
#include <sdktools>
#include <sdktools_functions>
#pragma newdecls required

public Plugin myinfo =
{
    name = "Чек афк",
    author = "ХЗ",
    description = "Чек афк",
    version = "хз",
    url = "Я"
};

float g_MyAngles[66][3];
float g_MyOrigin[66][3];

public void OnPluginStart()
{
    CreateTimer(30.0, AfkTimer, view_as<any>(TIMER_REPEAT));
}

public Action AfkTimer(Handle timer)
{
    float angles[3];
    float origin[3];
    int i = 1;
    while (i <= MaxClients)
    {
        if (IsClientInGame(i) && !IsFakeClient(i) && IsPlayerAlive(i) && GetClientTeam(i) > 1)
        {
            if (GetClientEyeAngles(i, angles) && GetClientAbsOrigin(i, origin))
            {
                if (angles[0] == g_MyAngles[i][0] && angles[1] == g_MyAngles[i][1] && angles[2] == g_MyAngles[i][2] && origin[0] == g_MyOrigin[i][0] && origin[1] == g_MyOrigin[i][1] && origin[2] == g_MyOrigin[i][2])
                {
                    ForcePlayerSuicide(i);
                    ChangeClientTeam(i, 1);
                }
            }
        }
        i++;
    }
    return view_as<Action>(0);
}
 

StormX

Участник
Сообщения
891
Реакции
302
На попробуй (Если работает то на все ксс пойти должна)
PHP:
#pragma semicolon 1
#include <sdktools>
#include <sdktools_functions>
#pragma newdecls required

public Plugin myinfo =
{
    name = "Чек афк",
    author = "ХЗ",
    description = "Чек афк",
    version = "хз",
    url = "Я"
};

float g_MyAngles[66][3];
float g_MyOrigin[66][3];

public void OnPluginStart()
{
    CreateTimer(30.0, AfkTimer, view_as<any>(TIMER_REPEAT));
}

public Action AfkTimer(Handle timer)
{
    float angles[3];
    float origin[3];
    int i = 1;
    while (i <= MaxClients)
    {
        if (IsClientInGame(i) && !IsFakeClient(i) && IsPlayerAlive(i) && GetClientTeam(i) > 1)
        {
            if (GetClientEyeAngles(i, angles) && GetClientAbsOrigin(i, origin))
            {
                if (angles[0] == g_MyAngles[i][0] && angles[1] == g_MyAngles[i][1] && angles[2] == g_MyAngles[i][2] && origin[0] == g_MyOrigin[i][0] && origin[1] == g_MyOrigin[i][1] && origin[2] == g_MyOrigin[i][2])
                {
                    ForcePlayerSuicide(i);
                    ChangeClientTeam(i, 1);
                }
            }
        }
        i++;
    }
    return view_as<Action>(0);
}

error 001: expected token: ";" but found "-identifier-"
error 010: invalid function or decloretion
error 017: undefined symbol "timer"
error 021: symbol already defined: "Action"
при компеляции
 

☠ ÄйӃи ☠

Добрая душа
Сообщения
220
Реакции
86
error 001: expected token: ";" but found "-identifier-"
error 010: invalid function or decloretion
error 017: undefined symbol "timer"
error 021: symbol already defined: "Action"
при компеляции
У меня без ошибок всё !!! Тык
Отпишись как работает или нет. Спасибо !!!
 
Последнее редактирование:

over_trax

Участник
Сообщения
1,451
Реакции
488
PHP:
public Action:g_iCheckAfkTimer_CallBack(Handle:timer, any:client)
{
    if (!IsClientInGame(client))
    {
        g_iCheckAfkTimer[client] = INVALID_HANDLE;
        return Plugin_Stop;
    }
   
    if (!IsPlayerAlive(client))
    {
        g_AFKwarnings[client] = 0;
        return Plugin_Continue;
    }

    decl Float:x_vec[3];
    GetClientAbsOrigin(client, x_vec);
   
    if (x_vec[0] == g_iAfkStartPositions[client][0] && x_vec[1] == g_iAfkStartPositions[client][1])
    {
        if(++g_AFKwarnings[client] > 2)
        {
            g_iCheckAfkTimer[client] = INVALID_HANDLE;
            ChangeClientTeam(client, 1);
            return Plugin_Stop;
        }

        // предупреждение
        else if(g_AFKwarnings[client] == 2)
        {
            PrintCenterText(client, "[KD] Играй, иначе выкинем в спектаторы!");
            EmitSoundToClient(client, Antiparavoz_sound);
        }
    }
    else
    {
        g_iAfkStartPositions[client][0] = x_vec[0];
        g_iAfkStartPositions[client][1] = x_vec[1];
        g_AFKwarnings[client] = 0;
    }

    return Plugin_Continue;
}
ты не понял, вырезать из плагина и выкинуть, оставив плагин без него
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Нужен плагин для замены слотов оружия "Вторичного, он же пистолет" и ножа на любые подобранные "Первинное оружие", при этом нож и пистолет использовать нельзя.
Возможно ли это?
 

unity

Участник
Сообщения
242
Реакции
133
а мне кто-то сделает? Я написал своё пожелание на 122 странице комментарии?
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
Напиши пожалуйста плагин, который будет перекидывать афк игроков в спектрах и всё! афк менеджер мне использовать не резон он со своими глюками и нагрузкой тех. задание: если игрок бездействует минимум 1 раунд, то перекинет в спектра, но перед тем, как перекинет можно ещё добавить сообщение в чат, который будет виден только ему, типа он в игре или нет )), если игнор -- значит в спектра перекидывать. никаких иммунитетов не ставь пусть на всех действует. хотя можешь вывести в конфиг и дать возможность выставлять через сколько раундов кидать, сколько сообщений ему отправлять и по какому флагу иммунитет. Может ещё кому-то пригодиться плагин.
Нагрузки не видел с ним. Anti-Afk lite
 

Felton

Участник
Сообщения
799
Реакции
59
Прошу помощи.Вставьте в этот плагин квар на включение и выключение плагина.
C-подобный:
#pragma semicolon 1
#pragma tabsize 0
#include <sourcemod>
#include <sdktools>

public Plugin:myinfo =
{
    name = "No Scope",
    author = "",
    description = "No Scoping Plugin",
    version = "0.1b",
    url = ""
};

public OnPluginStart()
{
  CreateConVar("sm_noscope_version", "0.1b", "No Scope Version", FCVAR_PLUGIN|FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY|FCVAR_DONTRECORD);
}

public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon)
{
    static iPrevButtons[66];
    if (buttons & 2048)
    {
        new active_weapon = GetEntPropEnt(client, PropType:0, "m_hActiveWeapon", 0);
        if (active_weapon != -1)
        {
            new String:g_szWeapon[32];
            GetEdictClassname(active_weapon, g_szWeapon, 32);
            if (StrEqual(g_szWeapon, "weapon_awp", false))
            {
                buttons = buttons & -2049;
            }
            if (StrEqual(g_szWeapon, "weapon_scout", false))
            {
                buttons = buttons & -2049;
            }
            if (StrEqual(g_szWeapon, "weapon_sg550", false))
            {
                buttons = buttons & -2049;
            }
            if (StrEqual(g_szWeapon, "weapon_g3sg1", false))
            {
                buttons = buttons & -2049;
            }
           
        }
    }
   
    iPrevButtons[client] = buttons;
    return Plugin_Continue;
}
 
Последнее редактирование:

Tomich

Участник
Сообщения
177
Реакции
46
@Tomich, там ограничение на количество использований в сутки, емнип
вроде бы нет, потому что сколько в гмоде юзают игроки, не разу не было что был какой то лимит, это же все ограничивается рангами донатерскеми, если фулл сервер будет такое юзать будет вакханалия
 
Сверху Снизу