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

7pElllHuK

Участник
Сообщения
1,659
Реакции
648
Всем доброе утро, подскажите пожалуйста как вывести свой текст под прицелом игрока в 34 ксс
1763971246562.png
 

Synd1qate

Участник
Сообщения
1,000
Реакции
466

VeNoM`1K =))

Живи и ошибайся. В этом жизнь.
Сообщения
723
Реакции
285
Если не ошибаюсь то переменная mp_playerid отвечает за вывод этого текста
Это просто обозначение , но не сам текст.

mp_playerid 0 // Контролирует информацию которую игрок видит на панели статуса: 0 все имена; 1 только имена игроков своей команды; 2 без имён.
mp_playerid_delay 0.5
mp_playerid_hold 0.25


Как написал @Synd1qate, он прав. Такое идет от клиента.
Я даже не задумывался , чтобы изменить такой текст 😄
 

Synd1qate

Участник
Сообщения
1,000
Реакции
466
Если не ошибаюсь то переменная mp_playerid отвечает за вывод этого текста
Всё верно, переменная отвечает, но это client.dll
Если бы был хук, как например "HookUserMessage(GetUserMessageId("TextMsg"), MessageHandler, true);", то возможно и поменять возможно было бы, а так думаю увы, может кто умнее и шарит подскажет
1763973460832.png
 

7pElllHuK

Участник
Сообщения
1,659
Реакции
648
Всё верно, переменная отвечает, но это client.dll
Если бы был хук, как например "HookUserMessage(GetUserMessageId("TextMsg"), MessageHandler, true);", то возможно и поменять возможно было бы, а так думаю увы, может кто умнее и шарит подскажет
Посмотреть вложение 122832
Очень надеюсь, но судя по тому что игре дофига лет и никто так и не нашел способ, то скорее всего сделать это попросту нельзя. Но надеюсь все же что найдутся умельцы, туда можно много текста интересного выводить. От рекламы до важных уведомлений которые игрок 100% заметит
 

danil253467

💘Italo-Disco One Love💘
Сообщения
114
Реакции
68
Всем доброе утро, подскажите пожалуйста как вывести свой текст под прицелом игрока в 34 ксс
Ну может быть, в твоем случае только кастомный худ под прицелом поможет... Выше отметили, что это клиентская сторона
 

Synd1qate

Участник
Сообщения
1,000
Реакции
466
Очень надеюсь, но судя по тому что игре дофига лет и никто так и не нашел способ, то скорее всего сделать это попросту нельзя. Но надеюсь все же что найдутся умельцы, туда можно много текста интересного выводить. От рекламы до важных уведомлений которые игрок 100% заметит
Да вот только проблема в том, что эта информация показывается только при наведении на игрока, какую там рекламу впихнуть хз
 

7pElllHuK

Участник
Сообщения
1,659
Реакции
648
Да вот только проблема в том, что эта информация показывается только при наведении на игрока, какую там рекламу впихнуть хз
По идее функционал наведения прицела можно обойти. Мб можно через сигнатуры как-то можно получать и дальше выводить свой текст
 

Synd1qate

Участник
Сообщения
1,000
Реакции
466
По идее функционал наведения прицела можно обойти. Мб можно через сигнатуры как-то можно получать и дальше выводить свой текст
Под это можно использовать худ, хинт, центр
К тому же сие чудо отключается через hud_showtargetid
 

7pElllHuK

Участник
Сообщения
1,659
Реакции
648
Всем добрый вечер. Сделал инклуд для проверки версии игры и вывода текста из нужной библиотеки. Всё готово, кроме работы с клиентмодом.

Проблемы:

1) Текст нужно получать через функцию CM_GetPhrase и хранить в char, а потом уже выводить. Нельзя выводить перевод напрямую.
2) Из-за этого не получается корректно показывать текст всем игрокам, учитывая, играют они с клиентмодом или без. ID игрока получается только один раз в CM_GetPhrase, и потом текст выводится всем одинаково, без нужного префикса CM_.

Как работает в плагине:
public Action Command_Test(int iClient, int iArgs)
{
    int iTeam = 121212;

    char p1[64], p2[64];

    CM_GetPhrase(iClient, "Prefix", p1, sizeof(p1));
    CM_GetPhrase(iClient, "Text", p2, sizeof(p2));

    GPrintToChat(iClient, "%t %t", "Prefix", "Text", iTeam);
   
    return Plugin_Handled;
}
INCLUDE:
stock void GPrintToChat(int iClient, const char[] sFormat, any ...)
{
    if (iClient <= 0 || iClient > MaxClients || !IsClientInGame(iClient)) return;

    char sBuffer[1024];

    SetGlobalTransTarget(iClient);
    VFormat(sBuffer, sizeof(sBuffer), sFormat, 3);

    if (g_iEngine == CSS_v34)
    {
        if (g_bPlayerCM[iClient])
        {
            MC_PrintToChat(iClient, "%s", sBuffer);
            C_PrintToChat(iClient, "%s", sBuffer);
        }
       
        else CPrintToChat(iClient, "%s", sBuffer);
    }
   
    else if (g_iEngine == CSS_v92) MCPrintToChat(iClient, "%s", sBuffer);
    else if (g_iEngine == CSGO) CGOPrintToChat(iClient, "%s", sBuffer);
    else PrintToChat(iClient, "%s", sBuffer);
}


stock void CM_GetPhrase(int iClient, const char[] sPhrase, char[] sOut, int iMaxlen)
{
    if (g_iEngine == CSS_v34 && g_bPlayerCM[iClient])
    {
        char sCM[128];
        Format(sCM, sizeof(sCM), "CM_%s", sPhrase);

        if (TranslationPhraseExists(sCM))
        {
            strcopy(sOut, iMaxlen, sCM);
            return;
        }
    }

    strcopy(sOut, iMaxlen, sPhrase);
}

stock void GPrintToChatAll(const char[] sFormat, any ...)
{
    char sBuffer[1024];

    for (int i = 1; i <= MaxClients; i++)
    {
        if (!IsClientInGame(i) || IsFakeClient(i)) continue;

        SetGlobalTransTarget(i);
        VFormat(sBuffer, sizeof(sBuffer), sFormat, 2);

        GPrintToChat(i, "%s", sBuffer);
    }
}

Задача:
Нужно сделать функцию GPrintToChat, которая будет автоматически добавлять префикс CM_ к фразе из перевода для указанного игрока, если у него есть клиентмод.
 
Последнее редактирование:

7pElllHuK

Участник
Сообщения
1,659
Реакции
648
Всем добрый день, подскажите пожалуйста, есть ли готовая функция для воспроизведения звука игрокам в определенном радиусе с громкостью зависящей от дистанции?
Пример, есть круг, в центре крура сущность или игрок который воспроизводит звук, нужно чтоб все кто в радиусе этого круга слышали этот звук, НО чем ближе к игроку тем звук громче
34 ксс
 

ZooM4322

Нейронка:)
Сообщения
195
Реакции
77
Всем добрый день, подскажите пожалуйста, есть ли готовая функция для воспроизведения звука игрокам в определенном радиусе с громкостью зависящей от дистанции?
Пример, есть круг, в центре крура сущность или игрок который воспроизводит звук, нужно чтоб все кто в радиусе этого круга слышали этот звук, НО чем ближе к игроку тем звук громче
34 ксс
Что-то такое помню видел, но не помню или для sourcemod видел, или для amxmodx, я так понимаю нужно так чтобы было: чем ближе ты к игроку который говорит в микрофон или радиокоманду, тем чётче его слышишь, чем дальше, тем хуже(тише)? Или вообще все звуки исходящие от игрока?
 

7pElllHuK

Участник
Сообщения
1,659
Реакции
648
Что-то такое помню видел, но не помню или для sourcemod видел, или для amxmodx, я так понимаю нужно так чтобы было: чем ближе ты к игроку который говорит в микрофон или радиокоманду, тем чётче его слышишь, чем дальше, тем хуже(тише)? Или вообще все звуки исходящие от игрока?
Именно звук исходящий из игрока
 

ZooM4322

Нейронка:)
Сообщения
195
Реакции
77
Понял, тогда прости, перепутал, я думал нужно что-то на подобии этого?
 
Сверху Снизу