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

Mensi1337

Участник
Сообщения
242
Реакции
16
Привет всем
Кто может написать плагин который будет блокировать определенные консольные команды? (команды что бы можно было писать в самом плагине, а не в конфиге)
 

Tonki_Ton

Script kiddie
Сообщения
614
Реакции
375
Привет всем
Кто может написать плагин который будет блокировать определенные консольные команды? (команды что бы можно было писать в самом плагине, а не в конфиге)


PHP:
#include <sourcemod>
#include <sdktools>

public OnPluginStart()
{
    AddCommandListener(BlockCheatCommands, "kill");
    AddCommandListener(BlockCheatCommands, "killvector");
}

public Action:BlockCheatCommands(client, const String:command[], argc)
{
    if(client != 0)
    {
        PrintToChat(client, " А ты думал в сказку попал ?");
        return Plugin_Handled;
    }

   return Plugin_Continue;
}
 

Mensi1337

Участник
Сообщения
242
Реакции
16
PHP:
#include <sourcemod>
#include <sdktools>

public OnPluginStart()
{
    AddCommandListener(BlockCheatCommands, "kill");
    AddCommandListener(BlockCheatCommands, "killvector");
}

public Action:BlockCheatCommands(client, const String:command[], argc)
{
    if(client != 0)
    {
        PrintToChat(client, " А ты думал в сказку попал ?");
        return Plugin_Handled;
    }

   return Plugin_Continue;
}
После добавления команд у меня появился варнинг
PHP:
#include <sourcemod>
#include <sdktools>

public OnPluginStart()
{
    AddCommandListener(BlockCheatCommands, "status");
    AddCommandListener(BlockCheatCommands, "ping");
    AddCommandListener(BlockCheatCommands, "kill");
    AddCommandListener(BlockCheatCommands, "1337_");
}

public Action:BlockCheatCommands(client, const String:command[], argc)
{
    if(client != 0)
    {
        return Plugin_Handled;
    }

    return Plugin_Continue;
}
1.png
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Seton1447, loose indentation некритичен. Связан с знаками табуляции и пробелов.
 

Mensi1337

Участник
Сообщения
242
Реакции
16
Последнее редактирование:

KarllsOnCHIk

Участник
Сообщения
7
Реакции
0
@KarllsOnCHIk, нулевой == без премиума?
ДА. без премиума тф. или без стим гварда. или не полный акк на котором нельзя в друзья добавлять. суть не дать зайти на сервер людям которых банишь, а они заходят с только что созданого акка опять. и продолжают мракобесие.
Бан по ай пи не помогает. так как ребут роутера меняет айпи на vpn
--- Добавлено позже ---
собственно нашел требуемый плагин. [TF2] Free2BeKicked (Anti-F2P) - AlliedModders
 
Последнее редактирование:

Mexonice

Участник
Сообщения
31
Реакции
2
Кто может написать плагин или если он есть дать ссылку на этот плагин который в конце раунда показывает такую картинку и кто победил искал очень долго так и не нашёл плиз помогите:(
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    36.4 КБ · Просмотры: 70

Drimer

Участник
Сообщения
203
Реакции
54
Кто может написать плагин или если он есть дать ссылку на этот плагин который в конце раунда показывает такую картинку и кто победил искал очень долго так и не нашёл плиз помогите:(
WinOverlay
 

makentosh

Участник
Сообщения
109
Реакции
6
Очень нужно подправить код суть в том что когда я беру оружие через команду !weapons оружие либо нельзя поднять либо когда возму но в руках нету оружия вот такая петрушка!
 

Вложения

  • sm_weapons.sp
    9.4 КБ · Просмотры: 6

Felton

Участник
Сообщения
799
Реакции
59
Нужен такой плагин для Counter-Strike Source (старушка)при нажатии на F10 что бы игрок не покидал сервер?Ну скажем блок клавиши F10 Это реально сделать?
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,520
Реакции
4,979
@Felton, никак не сделать. Это чисто клиентская команда. Она никак не передаётся на сервер.
Просто закрывается клиент игры
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
@Felton, все клавиши, так или иначе связанные с выходом из игры, или с сервера - клиентские.
 

NaN

FPE_INTDIV_TRAP
Сообщения
1,513
Реакции
1,487
Надо запилить один костыль для хостиса. Полезен будет для всех. Суть - сейчас, после обновления, зевс можно выкидывать. И появилась возможность крашнуть сервер - выстрелить из зевса в игрока во время лр на игре рулетка. Плагин должен убирать зевс из инвентаря, если вдруг он появится во время лр.
 

Allen

love society
Сообщения
352
Реакции
274
Надо запилить один костыль для хостиса. Полезен будет для всех. Суть - сейчас, после обновления, зевс можно выкидывать. И появилась возможность крашнуть сервер - выстрелить из зевса в игрока во время лр на игре рулетка. Плагин должен убирать зевс из инвентаря, если вдруг он появится во время лр.
Сделал по-другому, работает или нет = хз.
PHP:
#include <sourcemod>
#include <sdkhooks>
#include <hosties>
#include <lastrequest>

#pragma tabsize 0
#pragma newdecls required

public void OnPluginStart()
{
    HookEvent("player_spawn", player_spawn);
}

public void player_spawn(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    SDKHook(client, SDKHook_PostThinkPost, PostThinkPost);
}

public void PostThinkPost(int client)
{
    if(IsClientInLastRequest(client))
    {
        char sWeaponName[64];
        GetClientWeapon(client, sWeaponName, sizeof(sWeaponName));
        if (StrEqual(sWeaponName, "weapon_taser"))
        {
            SetEntPropFloat(client, Prop_Send, "m_flNextAttack", GetGameTime() + 0.5);
        }
    }
}
 
  • Мне нравится
Реакции: NaN

NaN

FPE_INTDIV_TRAP
Сообщения
1,513
Реакции
1,487
Сделал по-другому, работает или нет = хз.
PHP:
#include <sourcemod>
#include <sdkhooks>
#include <hosties>
#include <lastrequest>

#pragma tabsize 0
#pragma newdecls required

public void OnPluginStart()
{
    HookEvent("player_spawn", player_spawn);
}

public void player_spawn(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    SDKHook(client, SDKHook_PostThinkPost, PostThinkPost);
}

public void PostThinkPost(int client)
{
    if(IsClientInLastRequest(client))
    {
        char sWeaponName[64];
        GetClientWeapon(client, sWeaponName, sizeof(sWeaponName));
        if (StrEqual(sWeaponName, "weapon_taser"))
        {
            SetEntPropFloat(client, Prop_Send, "m_flNextAttack", GetGameTime() + 0.5);
        }
    }
}
Сегодня опробую! Спасибо!
--- Добавлено позже ---
Сделал по-другому, работает или нет = хз.
PHP:
#include <sourcemod>
#include <sdkhooks>
#include <hosties>
#include <lastrequest>

#pragma tabsize 0
#pragma newdecls required

public void OnPluginStart()
{
    HookEvent("player_spawn", player_spawn);
}

public void player_spawn(Event event, const char[] name, bool dontBroadcast)
{
    int client = GetClientOfUserId(event.GetInt("userid"));
    SDKHook(client, SDKHook_PostThinkPost, PostThinkPost);
}

public void PostThinkPost(int client)
{
    if(IsClientInLastRequest(client))
    {
        char sWeaponName[64];
        GetClientWeapon(client, sWeaponName, sizeof(sWeaponName));
        if (StrEqual(sWeaponName, "weapon_taser"))
        {
            SetEntPropFloat(client, Prop_Send, "m_flNextAttack", GetGameTime() + 0.5);
        }
    }
}
Фикс работает отлично! Спасибо!
 
Последнее редактирование:

Mexonice

Участник
Сообщения
31
Реакции
2
Сверху Снизу