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

HAIRAKE

Участник
Сообщения
36
Реакции
4
сделайте так чтобы было видно в чате кто вырубил войс и кто включил =)
 

Вложения

  • voice.sp
    2 КБ · Просмотры: 19

Yurka_Bear

Участник
Сообщения
61
Реакции
4
Здравствуйте. Всех с наступающим! Кому не сложно, нужен простенький плагин для гангейма:
Когда игрок достигает последнего уровня( всего их допустим 26) , Появляется сообщение-подсказка в хинте, для всех.
Пример - ( Игрок " его ник" достигает последнего уровня!) Игра CSS 34, Sourcemod 1.6.3
Сам плагин гг приложу
 

Вложения

  • gungame.sp
    17.5 КБ · Просмотры: 23

Nekro

Терра инкогнита
Сообщения
4,169
Реакции
2,500
Здравствуйте. Всех с наступающим! Кому не сложно, нужен простенький плагин для гангейма:
Когда игрок достигает последнего уровня( всего их допустим 26) , Появляется сообщение-подсказка в хинте, для всех.
Пример - ( Игрок " его ник" достигает последнего уровня!) Игра CSS 34, Sourcemod 1.6.3
Сам плагин гг приложу
А разве в стандарте нет такого оповещения?
 

Yurka_Bear

Участник
Сообщения
61
Реакции
4
А разве в стандарте нет такого оповещения?
Нет, там есть оповещение кто вырывается вперед и становится лидером. А мне нужно конкретно, чтоб всех оповещало о том, что лидер достигает последнего уровня.
 

HAIRAKE

Участник
Сообщения
36
Реакции
4
как тут поменять тег SM? только не нужно кидать сам плагин на изменение всех sm префиксов мне нужно отдельно игра css
 

Вложения

  • sbpp_main.sp
    74.9 КБ · Просмотры: 23

0-BuTaJIuK-0

Участник
Сообщения
235
Реакции
57
как тут поменять тег SM? только не нужно кидать сам плагин на изменение всех sm префиксов мне нужно отдельно игра css
Это плагин sourcecbans
1671701840618.png
 

₮αй₮оβый

Участник
Сообщения
327
Реакции
36
как тут поменять тег SM? только не нужно кидать сам плагин на изменение всех sm префиксов мне нужно отдельно игра css
А префикс [sm] в данном случае разве не от стандартного soucemoda идет?
 

Palonez

бб братки
Сообщения
3,035
Реакции
1,839
как тут поменять тег SM? только не нужно кидать сам плагин на изменение всех sm префиксов мне нужно отдельно игра css
взял бы хотя бы приложил скрины или указал в каком именно тексте выводится SM, прежде чем что-то просить
 

HAIRAKE

Участник
Сообщения
36
Реакции
4
взял бы хотя бы приложил скрины или указал в каком именно тексте выводится SM, прежде чем что-то просить
если я сказал что другой плагин может окрашивать этот см значит какой там см стоит?
 

Yurka_Bear

Участник
Сообщения
61
Реакции
4
Не подскажите как убрать подсказки в хинте для игроков? Допустим у меня на карте FFA режим. И когда кто то убивает своего, ему пишет, что "осторожно, убийство своих недопустимо" Можно как то это убрать? Может для этого серверная команда есть. Или все же плагин нужно писать? Игра все та же CSS 34, SM 1.6.3
dm_resistance0005.jpg
 

White Wolf

🍉
Сообщения
2,383
Реакции
2,190
Не подскажите как убрать подсказки в хинте для игроков? Допустим у меня на карте FFA режим. И когда кто то убивает своего, ему пишет, что "осторожно, убийство своих недопустимо" Можно как то это убрать? Может для этого серверная команда есть. Или все же плагин нужно писать? Игра все та же CSS 34, SM 1.6.3
попробуйте

C++:
/* original:
 * https://github.com/zadroot/DeathMatch/blob/master/3.2/addons/sourcemod/scripting/dod_deathmatch.sp
 */
public OnPluginStart()
{
        HookUserMessage(GetUserMessageId("HintText"), Hook_HintText, true);
}

/* Hook_HintText()
 *
 * Block team-attack "tutorial" messages from being shown to players.
 * --------------------------------------------------------------------- */
public Action:Hook_HintText(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init)
{
	static const String:hintMessages[][] =
	{
		"#Hint_spotted_a_friend",
		"#Hint_careful_around_teammates",
		"#Hint_try_not_to_injure_teammates"
	};

	decl String:message[64];
	BfReadString(bf, message, sizeof(message));

	for (new i = 0; i < sizeof(hintMessages); i++)
	{
		if (StrEqual(message, hintMessages[i]))
		{
			return Plugin_Handled;
		}
	}

	return Plugin_Continue;
}
 

Yurka_Bear

Участник
Сообщения
61
Реакции
4
попробуйте

C++:
/* original:
 * https://github.com/zadroot/DeathMatch/blob/master/3.2/addons/sourcemod/scripting/dod_deathmatch.sp
 */
public OnPluginStart()
{
        HookUserMessage(GetUserMessageId("HintText"), Hook_HintText, true);
}

/* Hook_HintText()
 *
 * Block team-attack "tutorial" messages from being shown to players.
 * --------------------------------------------------------------------- */
public Action:Hook_HintText(UserMsg:msg_id, Handle:bf, const players[], playersNum, bool:reliable, bool:init)
{
    static const String:hintMessages[][] =
    {
        "#Hint_spotted_a_friend",
        "#Hint_careful_around_teammates",
        "#Hint_try_not_to_injure_teammates"
    };

    decl String:message[64];
    BfReadString(bf, message, sizeof(message));

    for (new i = 0; i < sizeof(hintMessages); i++)
    {
        if (StrEqual(message, hintMessages[i]))
        {
            return Plugin_Handled;
        }
    }

    return Plugin_Continue;
}
Нет, подсказка так же появляется(((. Плагин запустился, ошибки в логах отсутствуют.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,805
Реакции
5,254
@shantik2012, скинь сюда архивом txt из папки .../cstrike/resource/ с именами *_russian.txt. Скорей всего сообщения в массиве не те указаны.
Сообщения автоматически склеены:

@shantik2012, попробуй вот так:
C-подобный:
public OnPluginStart()
{
    HookUserMessage(GetUserMessageId("HintText"), Hook_HintText, true);
}

public Action:Hook_HintText(UserMsg:msg_id, Handle:msg, const players[], playersNum, bool:reliable, bool:init)
{
    decl String:sBuffer[52];
    BfReadString(msg, sBuffer, sizeof(sBuffer));
    return StrContains(sBuffer, "Hint_careful_around_teammates", false) != -1 ? Plugin_Handled : Plugin_Continue;
}
 
Последнее редактирование:

Yurka_Bear

Участник
Сообщения
61
Реакции
4
@shantik2012, скинь сюда архивом txt из папки .../cstrike/resource/ с именами *_russian.txt. Скорей всего сообщения в массиве не те указаны.
Сообщения автоматически склеены:

@shantik2012, попробуй вот так:
C-подобный:
public OnPluginStart()
{
    HookUserMessage(GetUserMessageId("HintText"), Hook_HintText, true);
}

public Action:Hook_HintText(UserMsg:msg_id, Handle:msg, const players[], playersNum, bool:reliable, bool:init)
{
    decl String:sBuffer[52];
    BfReadString(msg, sBuffer, sizeof(sBuffer));
    return StrContains(sBuffer, "Hint_careful_around_teammates", false) != -1 ? Plugin_Handled : Plugin_Continue;
}
 

Вложения

  • cstrike_russian.txt
    374.9 КБ · Просмотры: 34

Yurka_Bear

Участник
Сообщения
61
Реакции
4
@shantik2012, вроде должен предложенный мной код работать.
Работает! Спасибо. Только теперь небольшая проблемка: когда своего убиваешь, на долю секунды появляется сообщение по центру экрана. "вы убили товарища по команде"
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,805
Реакции
5,254
@shantik2012, скомпиль это и проверь как работает.
Если всё норм, то кинь файл .../logs/blocked_messages.log и я перепишу код, чтобы он нормально работал без лишних хуков (я не помню какой тип сообщения нужно отлавливать).
 

Вложения

  • block_messages_log.sp
    975 байт · Просмотры: 19
Сверху Снизу