Иконка ресурса

[VIP] JoinSound 1.0.2

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
  • Автор ресурса
  • #1
Пользователь Lisoh разместил новый ресурс:

[VIP] JoinSound - Воспроизводит звук при входе вип игрока

Описание: воспроизводит звук всем игрокам когда вип игрок зашел на сервер.

Добавьте строки в vip_modules.phrases.txt находящийся в csgo/addons/sourcemod/translations следующее:

C-подобный:
"JoinSound"
{
   "ru"        "Звук приветствия"
   "en"        "Welcome sound"
}

Перевод уже должен находится в vip_modules.phrases.txt (R1KO вписал), поэтому можете не писать.
Если все же будет выдавать ошибку в логах - впишите.

В...

Узнать больше об этом ресурсе...
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
@Lisoh,
PHP:
KeyValues kv = new KeyValues("VIP_GROUPS");
    if(!kv.ImportFromFile("addons/sourcemod/data/vip/cfg/groups.ini")) SetFailState("Not found file: addons/sourcemod/data/vip/cfg/groups.ini");
У некоторых из одной папки запущено несколько серверов и пути к addons разные. Поэтому путь лучше формировать через:
PHP:
BuildPath(Path_SM, ...);

Кстати когда я делал этот модуль - делал прекеш при входе игрока на сервер.
PHP:
public void OnClientPostAdminCheck(int iClient)
{
    CreateTimer(10.0, TimerSound, iClient, TIMER_FLAG_NO_MAPCHANGE);
}
Не поздно ли ? Может лучше было использовать player_activate
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
  • Автор ресурса
  • #3
У некоторых из одной папки запущено несколько серверов и пути к addons разные. Поэтому путь лучше формировать через:
Не совсем понимаю, можно прям для тупых...
Как использовать BuildPath я знаю, но не понимаю для чего.

Кстати когда я делал этот модуль - делал прекеш при входе игрока на сервер.
Прекеш чего? Звука? Так он же прописан в OnMapStart. Зачем делать одно действие каждый раз при входе игрока? Лучше уж все разом и один раз. Хотя видимо я опять тебя не понял.

Не поздно ли ? Может лучше было использовать player_activate
Если вспомнить мой первый модуль, то я там вообще использовал player_connect_full, в VIP_CORE 3.0 - это не прокатывает, поэтому и решил сделать через таймер.
player_activate - посмотрел события, не нашел его в CS:GO... Он точно есть?

И еще кое что, ну ты блин хоть бы в этой теме дал пару советов или ты не видел?
(VIP) JoinSound | Звук при входе вип игрока
 
Последнее редактирование модератором:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
player_activate - посмотрел события, не нашел его в CS:GO... Он точно есть?
Generic Source Server Events - AlliedModders Wiki

И еще кое что, ну ты блин хоть бы в этой теме дал пару советов или ты не видел?
не видел

Прекеш чего? Звука? Так он же прописан в OnMapStart. Зачем делать одно действие каждый раз при входе игрока? Лучше уж все разом и один раз. Хотя видимо я опять тебя не понял.
это я просто сказал как делал я, чтобы не трогать файл с группами.

Не совсем понимаю, можно прям для тупых...
Как использовать BuildPath я знаю, но не понимаю для чего.
Некоторые админы для экономии памяти запускают несколько разных серверов из одной папки сервера (да, так можно). Так вот для каждого сервера указываются свои пути для addons и cfg. Получается что модуль будет работать только на сервере с дефолт путями. Поэтому лучше использовать BuildPath, который отформатирует путь к текущему серверу.
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
  • Автор ресурса
  • #5
Generic Source Server Events - AlliedModders Wiki
А, я даже об этом не подумал...:ac:
это я просто сказал как делал я, чтобы не трогать файл с группами.
Если бы там было только кеширование, может быть это было бы резонно.
Да и по сути можно было бы сделать так как с skins и подобным ему, т.е вывести отдельным файлом в modules и определять значение пути по идентификатору...
Оффтоп
 
Последнее редактирование модератором:

doza69

Участник
Сообщения
33
Реакции
8
[VIP] JoinSound спасибо, давно хотел! :)

*****
[VIP] JoinOverley
[VIP] JoinMessage
позязя сделайте :)
 

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
  • Автор ресурса
  • #9
[VIP] JoinSound спасибо, давно хотел! :)

*****
[VIP] JoinOverley
[VIP] JoinMessage
позязя сделайте :)
На днях может быть сделаю по фану, пока есть дела поважнее, хотя работы на минут 15 от силы... Сделать все в один плагин или же отдельно как с этим?
 

over_trax

Участник
Сообщения
1,451
Реакции
488
для тех, кому лень самому что-то придумывать - сделал все за вас.
--- Добавлено позже ---
@Lisoh, начало раунда обрывает звучание
 

Вложения

  • музыка коннекта by over_trax.zip
    300.7 КБ · Просмотры: 129
Последнее редактирование:

Flavian

Участник
Сообщения
34
Реакции
3
можно ли как то сделать , если 2 игрока(випа) заходят на сервер и проигрывается сразу 2 песни , можно ли сделать одну кто быстрее зайдет
и еще после рестарта сервера, когда заходит вип игрок музыка не проигрывается ее надо заного включить в випке
 

ALSHiN

Участник
Сообщения
222
Реакции
14
видимо я тупой, но у меня не работает... с дефолтными файлами все хорошо, но если добавляю свои файлы звуковые и прописываю в groups , то не работает(
upload_2019-6-4_3-17-7.png

vipm именно так и называется файл)
 

anowikow

Участник
Сообщения
83
Реакции
18
видимо я тупой, но у меня не работает... с дефолтными файлами все хорошо, но если добавляю свои файлы звуковые и прописываю в groups , то не работает( Посмотреть вложение 42348
vipm именно так и называется файл)
Тоже самое.
Даже если вставить проигрывание звука в коде именно на свой файл не пашет

Порыл исходник.
Вот фикс проблемы для CS:S OB
+Добавил текст по центру о входе игрока


line 62 PrintCenterTextAll(".::Входит VIP Игрок: %s::.", iClient);


Предупреждаю сразу! Поддержка CS:GO Вырезана!
 

Вложения

  • VIP_JoinSound.sp
    1.8 КБ · Просмотры: 28
Последнее редактирование:

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
  • Автор ресурса
  • #16
Тоже самое.
Даже если вставить проигрывание звука в коде именно на свой файл не пашет

Порыл исходник.
Вот фикс проблемы для CS:S OB
+Добавил текст по центру о входе игрока


line 62 PrintCenterTextAll(".::Входит VIP Игрок: %s::.", iClient);


Предупреждаю сразу! Поддержка CS:GO Вырезана!
Убрал поддержку CS:GO и мои контактные данные, что добавил? :ab:

P.S
На сколько мне известно, теперь не надо добавлять '*' перед путем к звуку, чтобы звук воспроизводился в CS:GO.

Исправленная версия:
PHP:
#include <sourcemod>
#include <sdktools_stringtables>
#include <sdktools_sound>
#include <vip_core>

// Громкость звука
#define VOLUME 0.4

public Plugin myinfo =
{
    name = "[VIP] Join Sound",
    author = "Drumanid",
    version = "1.0.3",
    url = "Discord: Drumanid#9108"
};

static const char g_sFeature[] = "JoinSound";
bool g_bUse[MAXPLAYERS +1];

public void OnPluginStart()
{
    if(VIP_IsVIPLoaded())
        VIP_OnVIPLoaded();
}

#define SZF(%0) %0, sizeof(%0)
public void OnMapStart()
{
    char sBuffer[128];
    BuildPath(Path_SM, SZF(sBuffer), "data/vip/cfg/groups.ini");
   
    KeyValues hKeyValues = new KeyValues("VIP_GROUPS");
    if(!hKeyValues.ImportFromFile(sBuffer))
        SetFailState("Not found file: %s", sBuffer);
   
    if(hKeyValues.GotoFirstSubKey())
    {
        char sBuffer2[134];
        do
        {
            hKeyValues.GetString("JoinSound", SZF(sBuffer));
            if(sBuffer[0] == 0)
                continue;

            FormatEx(SZF(sBuffer2), "sound/%s", sBuffer);
            AddFileToDownloadsTable(sBuffer2);

            PrecacheSound(sBuffer, true);
        }
        while(hKeyValues.GotoNextKey());
    }
   
    delete hKeyValues;
}

public void OnPluginEnd()
{
    if(CanTestFeatures() && GetFeatureStatus(FeatureType_Native, "VIP_UnregisterFeature") == FeatureStatus_Available)
        VIP_UnregisterFeature(g_sFeature);
}

public void VIP_OnVIPLoaded()
{
    VIP_RegisterFeature(g_sFeature, STRING);
}

public void VIP_OnVIPClientLoaded(int iClient)
{
    if(!IsClientInGame(iClient) || !g_bUse[iClient] || !VIP_IsClientFeatureUse(iClient, g_sFeature))
        return;
   
    char sBuffer[128];
    VIP_GetClientFeatureString(iClient, g_sFeature, SZF(sBuffer));
    EmitSoundToAll(sBuffer, SOUND_FROM_LOCAL_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NONE, SND_NOFLAGS, VOLUME);
    g_bUse[iClient] = true;
}

public void OnClientDisconnect(int iClient)
{
    g_bUse[iClient] = false;
}
 

Вложения

  • VIP_JoinSound.smx
    5.8 КБ · Просмотры: 20
  • VIP_JoinSound.sp
    1.8 КБ · Просмотры: 20

Drumanid

Нестандартное звание
Сообщения
1,862
Реакции
1,748
  • Автор ресурса
  • #18
Сверху Снизу