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

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

вся жизнь,сплошной цирк.
Сообщения
876
Реакции
212
Привет всем.
Возможно из этого плагина сделать,чтоб головокружение было от взрыва гранаты?
Заранее благодарю.
 

Вложения

  • Realistic_Flashbang.sp
    1.2 КБ · Просмотры: 5

Faya™

Жуестер
Сообщения
867
Реакции
457
Слушай, а можно еще сделать чтоб плагин на вармапе не работал? Там весь урон суммируется после каждой смерти.
Если не прокатит то на 84 строке убери == false
Оффтоп
 

Вложения

  • csgo_damageprint.sp
    5.6 КБ · Просмотры: 4

ToxicAvenger

Участник
Сообщения
7
Реакции
1
Здравствуйте!
Сразу прошу прощения, я нуб.
Разбираюсь с отправкой сообщений из плагина в канал в телеграме.
Тестовый плагин выглядит вот так:
PHP:
/*
 * Telegram - API Example Plugin.
 * by: Hexer10
 *
 * Copyright (C) 2018 Mattia (Hexer10 | Hexah | Papero)
 */
#include <sourcemod>
#include <telegram>

#define PLUGIN_AUTHOR "Hexah"
#define PLUGIN_VERSION "1.00"

#pragma newdecls required
#pragma semicolon 1

public Plugin myinfo =
{
    name = "Telegram API Example",
    author = PLUGIN_AUTHOR,
    description = "Send message to Telegram by command",
    version = PLUGIN_VERSION,
    url = "github.com/Hexer10/Telegram"
};

public void OnPluginStart()
{
        RegConsoleCmd("sm_send", Cmd_Send);
}

public Action Cmd_Send(int client, int args)
{
        if (args < 1)
        {
                ReplyToCommand(client, "[SM] Invalid args: sm_send <message>");
                return Plugin_Handled;
        }

        char sMessage[128];
        GetCmdArgString(sMessage, sizeof(sMessage));

        Telegram_SendMessage("first message", "bot_token", "-channel_id");
        Telegram_SendMessage("one more message", "bot_token", "-channel_id");

        ReplyToCommand(client, "[SM] Sent: '%s' successfully", sMessage);
        return Plugin_Handled;
}

Проблема в том что одновременно надо отправить несколько сообщений. Но приведённый код отправляет только первое. Подозреваю что это из-за лимитов апи телеграм, т.е. в один момент времени происходит сразу несколько обращений к апи.
Как можно обойти это ограничение? Или может проблема в чём-то другом?
Отправить надо именно разными сообщениями, в одно объединять нельзя.

Как можно сделать задержку между отправкой сообщений?
Пробовал сделать с помощью таймера, но не получается к сожалению.
Мой код выглядел вот так:
PHP:
public void OnPluginStart()
{
    //...
    CreateTimer(0.1, Timer_SendToTelegram, "first message", TIMER_DATA_HNDL_CLOSE);
    CreateTimer(0.5, Timer_SendToTelegram, "one more message", TIMER_DATA_HNDL_CLOSE);
    //...
}

public Action Timer_SendToTelegram(Handle hTimer, char[] messageText)
{
    Telegram_SendMessage(messageText, "bot_token", "-channel_id");

    return Plugin_Stop;
}
 
Последнее редактирование:

danil253467

💘Italo-Disco & Neon One Love💘
Сообщения
90
Реакции
52
Здравствуйте!
Сразу прошу прощения, я нуб.
Разбираюсь с отправкой сообщений из плагина в канал в телеграме.
Тестовый плагин выглядит вот так:
PHP:
/*
 * Telegram - API Example Plugin.
 * by: Hexer10
 *
 * Copyright (C) 2018 Mattia (Hexer10 | Hexah | Papero)
 */
#include <sourcemod>
#include <telegram>

#define PLUGIN_AUTHOR "Hexah"
#define PLUGIN_VERSION "1.00"

#pragma newdecls required
#pragma semicolon 1

public Plugin myinfo =
{
    name = "Telegram API Example",
    author = PLUGIN_AUTHOR,
    description = "Send message to Telegram by command",
    version = PLUGIN_VERSION,
    url = "github.com/Hexer10/Telegram"
};

public void OnPluginStart()
{
        RegConsoleCmd("sm_send", Cmd_Send);
}

public Action Cmd_Send(int client, int args)
{
        if (args < 1)
        {
                ReplyToCommand(client, "[SM] Invalid args: sm_send <message>");
                return Plugin_Handled;
        }

        char sMessage[128];
        GetCmdArgString(sMessage, sizeof(sMessage));

        Telegram_SendMessage("first message", "bot_token", "-channel_id");
        Telegram_SendMessage("one more message", "bot_token", "-channel_id");

        ReplyToCommand(client, "[SM] Sent: '%s' successfully", sMessage);
        return Plugin_Handled;
}

Проблема в том что одновременно надо отправить несколько сообщений. Но приведённый код отправляет только первое. Подозреваю что это из-за лимитов апи телеграм, т.е. в один момент времени происходит сразу несколько обращений к апи.
Как можно обойти это ограничение? Или может проблема в чём-то другом?
Отправить надо именно разными сообщениями, в одно объединять нельзя.

Как можно сделать задержку между отправкой сообщений?
Пробовал сделать с помощью таймера, но не получается к сожалению.
Мой код выглядел вот так:
PHP:
public void OnPluginStart()
{
    //...
    CreateTimer(0.1, Timer_SendToTelegram, "first message", TIMER_DATA_HNDL_CLOSE);
    CreateTimer(0.5, Timer_SendToTelegram, "one more message", TIMER_DATA_HNDL_CLOSE);
    //...
}

public Action Timer_SendToTelegram(Handle hTimer, char[] messageText)
{
    Telegram_SendMessage(messageText, "bot_token", "-channel_id");

    return Plugin_Stop;
}
Попробуй так сделать пока
PHP:
/*
 * Telegram - API Example Plugin.
 * by: Hexer10
 *
 * Copyright (C) 2018 Mattia (Hexer10 | Hexah | Papero)
 */
#include <sourcemod>
#include <telegram>

#define PLUGIN_AUTHOR "Hexah"
#define PLUGIN_VERSION "1.00"

#pragma newdecls required
#pragma semicolon 1

static const char sMessages[][] =
{
    "first message",
    "one more message"
};

public Plugin myinfo =
{
    name = "Telegram API Example",
    author = PLUGIN_AUTHOR,
    description = "Send message to Telegram by command",
    version = PLUGIN_VERSION,
    url = "github.com/Hexer10/Telegram"
};

public void OnPluginStart()
{
        RegConsoleCmd("sm_send", Cmd_Send);
}

public Action Cmd_Send(int client, int args)
{
        if (args < 1)
        {
                ReplyToCommand(client, "[SM] Invalid args: sm_send <message>");
                return Plugin_Handled;
        }

        char sMessage[128];
        GetCmdArgString(sMessage, sizeof(sMessage));

        for(int i; i < sizeof(sMessages); i++)
        {
            Telegram_SendMessage(sMessages[i], "bot_token", "-channel_id");
        }
   
        ReplyToCommand(client, "[SM] Sent: '%s' successfully", sMessage);
        return Plugin_Handled;
}
 

ToxicAvenger

Участник
Сообщения
7
Реакции
1
Попробуй так сделать пока
PHP:
/*
 * Telegram - API Example Plugin.
 * by: Hexer10
 *
 * Copyright (C) 2018 Mattia (Hexer10 | Hexah | Papero)
 */
#include <sourcemod>
#include <telegram>

#define PLUGIN_AUTHOR "Hexah"
#define PLUGIN_VERSION "1.00"

#pragma newdecls required
#pragma semicolon 1

static const char sMessages[][] =
{
    "first message",
    "one more message"
};

public Plugin myinfo =
{
    name = "Telegram API Example",
    author = PLUGIN_AUTHOR,
    description = "Send message to Telegram by command",
    version = PLUGIN_VERSION,
    url = "github.com/Hexer10/Telegram"
};

public void OnPluginStart()
{
        RegConsoleCmd("sm_send", Cmd_Send);
}

public Action Cmd_Send(int client, int args)
{
        if (args < 1)
        {
                ReplyToCommand(client, "[SM] Invalid args: sm_send <message>");
                return Plugin_Handled;
        }

        char sMessage[128];
        GetCmdArgString(sMessage, sizeof(sMessage));

        for(int i; i < sizeof(sMessages); i++)
        {
            Telegram_SendMessage(sMessages[i], "bot_token", "-channel_id");
        }
  
        ReplyToCommand(client, "[SM] Sent: '%s' successfully", sMessage);
        return Plugin_Handled;
}
Добрый день!
Спасибо за ответ.
Но так же, только first message.
 

ToxicAvenger

Участник
Сообщения
7
Реакции
1
Здравствуйте!
Сразу прошу прощения, я нуб.
Разбираюсь с отправкой сообщений из плагина в канал в телеграме.
Тестовый плагин выглядит вот так:
PHP:
/*
 * Telegram - API Example Plugin.
 * by: Hexer10
 *
 * Copyright (C) 2018 Mattia (Hexer10 | Hexah | Papero)
 */
#include <sourcemod>
#include <telegram>

#define PLUGIN_AUTHOR "Hexah"
#define PLUGIN_VERSION "1.00"

#pragma newdecls required
#pragma semicolon 1

public Plugin myinfo =
{
    name = "Telegram API Example",
    author = PLUGIN_AUTHOR,
    description = "Send message to Telegram by command",
    version = PLUGIN_VERSION,
    url = "github.com/Hexer10/Telegram"
};

public void OnPluginStart()
{
        RegConsoleCmd("sm_send", Cmd_Send);
}

public Action Cmd_Send(int client, int args)
{
        if (args < 1)
        {
                ReplyToCommand(client, "[SM] Invalid args: sm_send <message>");
                return Plugin_Handled;
        }

        char sMessage[128];
        GetCmdArgString(sMessage, sizeof(sMessage));

        Telegram_SendMessage("first message", "bot_token", "-channel_id");
        Telegram_SendMessage("one more message", "bot_token", "-channel_id");

        ReplyToCommand(client, "[SM] Sent: '%s' successfully", sMessage);
        return Plugin_Handled;
}

Проблема в том что одновременно надо отправить несколько сообщений. Но приведённый код отправляет только первое. Подозреваю что это из-за лимитов апи телеграм, т.е. в один момент времени происходит сразу несколько обращений к апи.
Как можно обойти это ограничение? Или может проблема в чём-то другом?
Отправить надо именно разными сообщениями, в одно объединять нельзя.

Как можно сделать задержку между отправкой сообщений?
Пробовал сделать с помощью таймера, но не получается к сожалению.
Мой код выглядел вот так:
PHP:
public void OnPluginStart()
{
    //...
    CreateTimer(0.1, Timer_SendToTelegram, "first message", TIMER_DATA_HNDL_CLOSE);
    CreateTimer(0.5, Timer_SendToTelegram, "one more message", TIMER_DATA_HNDL_CLOSE);
    //...
}

public Action Timer_SendToTelegram(Handle hTimer, char[] messageText)
{
    Telegram_SendMessage(messageText, "bot_token", "-channel_id");

    return Plugin_Stop;
}

В общем проблему решил, распишу вдруг кто столкнётся.
Как я и предполагал, проблема в том что второе сообщение не приходила - в лимитах телеграма.
Сделал рандомную задержку отправки через таймер - сообщения приходят нормально.
С таймером у меня не получалось, потому что строку в таймер так не передают - надо использовать DataPack.
 

Туник

Участник
Сообщения
1,281
Реакции
263
Может кто помочь с плагином)
Нужен плагин два в одном, на легкую броню и защиту от ножа.
 

Туник

Участник
Сообщения
1,281
Реакции
263
Суть такая на картах нет брони и при попадании в тело стопит, желательно легкую бронь чтобы убить в голову с первого раза можно было, (сервер аим). Ставил через конфиг бронь не выдаёт, также игроки просят убрать возможность резать противника, не убирая нож соответственно)))
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,837
Суть такая на картах нет брони и при попадании в тело стопит, сервер аим. Ставил через конфиг бронь не выдаёт, также игроки просят убрать возможность резать противника, не убирая нож соответственно)))
отсюда можно взять "при попадании в тело стопит"
Модуль плагина - [Levels Ranks] Module - Endurance
Модуль плагина - [VIP] Endurance (Выносливость)
 

Туник

Участник
Сообщения
1,281
Реакции
263
Ну это не то.
Сообщения автоматически склеены:

🧐
 

Туник

Участник
Сообщения
1,281
Реакции
263
Помогите добавить проверку на это меню, если у игрока есть админка флаг b или вип услуга, смысл в том чтобы не показывалось меню игрокам с услугами, и скорее всего нужно будет добавить таймер на показ меню.
PHP:
new const
    String:sCommand[][] = {"!knife", "!ws", "!gl", "!st", "!agents", "!lk"},
    String:sDisplay[][] = {"Выбрать нож", "Выбрать скин", "Выбрать перчи", "Стикеры", "Агенты", "Магазин"};

public Plugin:myinfo =
{
    name = "Menu Basic Commands",
    author = "AlmazON",
    description = "Меню Основных Команд",
    version = "1.0.0",
    url = "http://www.hlmod.ru"
}

new Handle:hMBC;
public OnPluginStart()
{
    SetMenuTitle(hMBC=CreateMenu(MC), "Меню игрока:\n \n");
    new i;
    do AddMenuItem(hMBC, "", sDisplay[i], sCommand[i][0] ? ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);
    while(++i<sizeof(sDisplay));
}

public Action:OnClientSayCommand(C, const String:N[], const String:T[])
{
    if(strcmp(T[1], "menu",false) && strcmp(T[1], "меню")) return Plugin_Continue;
    DisplayMenu(hMBC, C,60);
    return Plugin_Handled;
}

public MC(Handle:M, MenuAction:A, C, O) if(A==MenuAction_Select) FakeClientCommand(C, "say \"%s\"", sCommand[O]);

public OnClientPostAdminCheck(client)
{
    if (!IsFakeClient(client)) FakeClientCommand(client, "say !menu");
 

Александр33333

Участник
Сообщения
46
Реакции
1
Привет всем.
Сделать чтобы звук спрея не воспроизводился
 

Вложения

  • spray_blocker.sp
    362 байт · Просмотры: 14

Felton

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

danil253467

А можно такое запилить для фонарика что бы звук включения и выключения не воспроизводился Counter-Strike Source v.34 на старом синтаксе?Буду длагодарен.
 

xstage

🏹
Сообщения
726
Реакции
754

DENZEL519

Работаю с AI !
Сообщения
417
Реакции
198
Кто возьмётся написать плагин для осмотра оружия на кнопку, для ксс ob.
Inspect уже есть в моделях оружия.
Писать в лс
 
Сверху Снизу