[CS:S/CS:GO] SDKHooks Game Description Override

Тема в разделе "Утверждённые плагины", создана пользователем KorDen, 21 мар 2013.

  1. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    Окончательно решил все проблемы компиляции и наконец-то сделал нормальную версию...

    Q: Что это?
    A: Это аналог известного многим плагина http://hlmod.ru/forum/plaginy-dlya-...ools-game-description-override-v-1-0-1-a.html , использующий измененные библиотеки SDKHooks с разблокированной возможностью изменения имени игры. Где и как использовать - решать вам.

    Q: Чем SteamTools не угодил для Steam-серверов? (другой вариант вопроса "Это для пираток?")
    A: Я сейчас наверно многих шокирую, но расширение SteamTools изначально разрабатывалось для взаимодействия со SteamCommunity, а не для изменения имени игры, которое было добавлено в него дополнительно. И при запуске это расширение устанавливает соединения с фронтэндом стима, и выполняет еще кучу ненужных действий. Если вы используете SteamTools только для того, чтобы изменять имя игры, стоит задуматься о переходе на этот вариант. Люди, которые держат высоконагруженные серверы и/или задумываются над оптимизацией ресурсов поймут сразу думаю. Основная идея все же у меня была сделать как можно меньше ненужных расширений и плагинов на сервере, а не пиратки...


    Q: Как работает? Что делать, чтобы поставить? Нюансы?
    A:
    1) Необходим как минимум SourceMod 1.5.0-hg3821. С ранними версиями работа возможна, но не гарантируется, ниже 1.5.0-hg3795 не работает точно.
    2) Заменяем необходимые файлы в папке extensions, копируем плагин
    3) Указывать значение переменной sm_gamedesc необходимо в строке запуска сервера (+sm_gamedesc "blablabla"). Увы, но это ограничение SDKHooks. НАХОДУ ИЗМЕНИТЬ НЕ ПОЛУЧИТСЯ!
    4) Максимальная длина - 63 ASCII символа, помните что каждый русский символ равен двум в этом случае, то есть полностью русское название может быть максимум из 31 символа.


    Q: Не работает!
    A: Проверьте, нет ли в errorlog'ах SM строчки "[gamedesc.smx] Game description not set, please set it in you runscript using +sm_gamedesc" - если есть, видимо при запуске не указано значение. Если же такой строчки нет, пишите свой sm plugins list и sm exts list

    Q: У меня нет доступа к строке запуска! (Сервер на хостинге)
    A: нужно использовать простую версию плагина (библиотеки из архива все еще нужны)
    PHP:
    #include <sdkhooks>
    public Action:OnGetGameDescription(String:gameDesc[64])
    {
        
    strcopy(gameDescsizeof(gameDesc), "BLABLABLA");
        return 
    Plugin_Changed;
    Вместо BLABLABLA подставляете свое имя игры и компилируете. После рестарта сервера имя игры сменится.

    Q: Почему расширения только CSS/OB/CS:GO/L4D2? А как же остальные? Что изменял в расширении?
    A: копипаст из исходников SDKHooks:
    PHP:
    #if SOURCE_ENGINE != SE_ORANGEBOXVALVE && SOURCE_ENGINE != SE_CSS && SOURCE_ENGINE != SE_LEFT4DEAD2 && SOURCE_ENGINE != SE_CSGO
    #define GAMEDESC_CAN_CHANGE
    #endif
    Думаю ответ дан. Для остальных движков и так работает, а удалив это условиеи оставив один дефайн, получаем OnGetGameDescription на указанных движках.

    ПРОТЕСТИРОВАНО НА: CSS Linux, CSS Windows. Предположительно должен работать и в HL2DM/TF2/DoD:S. Фактически, есть версии под CS:GO и L4D2, но их работа не гарантирована, поскольку я не знаю, есть ли вообще в этих играх возможность смены имени игры. Просьба подтвердить или опровергнуть работоспособность, если будет возможность и желание.

    PS: Спасибо за давнюю изначальную идею bardak :)
    ------------
    Пост с последней версией
    Благодарим пользователя rom4s.
     

    Вложения:

    Последнее редактирование модератором: 25 окт 2015
    White Wolf, Konstantin, Dima56 и 8 другим нравится это.
  2. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    тогда уж лучше использовать MemPatch (вернее, можно использовать)
     
  3. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Можно, но я все же придерживаюсь минимизации.. SDKHooks используется на очень большом количестве серверов, и я не вижу смысла опять же грузить отдельное расширение для конкретного действия... Плюс как-то читал про возможные краши от подобных расширений (Или это было в MemHack...)...

    Хотя, сделать конкретно расширение для возможности изменения имени игры, хе-хе...
     
  4. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    ну это расширение имеет широкий спектр, да и не сказать, что он много грузит. Один раз пропатчит память и все, можно отключать или оставить. В SDKHooks forward OnGetGameDescription вызывается вроде как каждый фрейм, получается 66 раз в секунду
     
  5. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Если бы он вызывался каждый фрейм, то я бы не писал, чо имя игры возможно изменить только при запуске.
    PHP:
    #ifdef GAMEDESC_CAN_CHANGE
    inline void HookGetGameDescription()
    {
        
    assert(g_hookOnGetGameDescription == 0);
        
    g_hookOnGetGameDescription SH_ADD_HOOK(IServerGameDLLGetGameDescriptiongamedllSH_MEMBER(&g_Interface, &SDKHooks::Hook_GetGameDescription), false);
    }
    #endif
    Он вызывается, судя по ковырянию в hl2sdk, только при старте сервера, когда получается информация о игре, и все... Я понимаю так...
     
  6. ☆★☆БАТЯ☆★☆™

    ☆★☆БАТЯ☆★☆™

    Сообщения:
    2.585
    Симпатии:
    1.341
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Ну а если сервер на хосте - как вписать это в строку запуска?
     
  7. koFF

    koFF

    Сообщения:
    147
    Симпатии:
    20
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Попросить администраторов хостинга?
     
  8. ☆★☆БАТЯ☆★☆™

    ☆★☆БАТЯ☆★☆™

    Сообщения:
    2.585
    Симпатии:
    1.341
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    ага, у арены хрен с маслом только в ответ получишь.
     
    максимка27, KorDen и kv.acid нравится это.
  9. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    тогда менять исходник, скомпилировать и просто вставить на сервер и запустить
     
  10. koFF

    koFF

    Сообщения:
    147
    Симпатии:
    20
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Изначально речь не конкретно об арене шла :)
     
  11. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    PHP:
    #include <sdkhooks>
    public Action:OnGetGameDescription(String:gameDesc[64])
    {
        
    strcopy(gameDescsizeof(gameDesc), "BLABLABLA");
        return 
    Plugin_Changed;
    Это весь плагин, инклудить см не нужно. Изменяешь BLABLABLA, компилируешь - и не наод никакой строки запуска. Помни только, что замена происходит при старте сервера, находу плагин загрузить/изменить не удастся, для изменения имени надо будет ребутать сервер. Смена карты тоже не сменит имя игры...
    Надо добавить в первый пост мол для тех кто не может добавить в строку запуска можно использовать другой вариант...
     
  12. sintez

    sintez ¦ΞQUATTRO-TM.RUΞ¦

    Сообщения:
    280
    Симпатии:
    52
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Проверенно на новой CS Source SteamPipe полёт нормальный sm 1.6.0
     
  13. pihmih

    pihmih

    Сообщения:
    518
    Симпатии:
    23
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Чем отличается sdkhooks из сорсмода 1.5.0 от библиотек из архива?
     
  14. CTe6eJIeK_vRn

    CTe6eJIeK_vRn Супер-модератор

    Сообщения:
    2.014
    Симпатии:
    1.797
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    когда же читать научимся:)
     
    KorDen нравится это.
  15. Romeo98rus

    Romeo98rus

    Сообщения:
    194
    Симпатии:
    5
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Подскажите где компелировать? http://www.sourcemod.net/compiler.php тут ошибку выдает!
     
  16. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
  17. Romeo98rus

    Romeo98rus

    Сообщения:
    194
    Симпатии:
    5
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    а если у меня Ос винда . а сервер на хосте линукс?
    Работать будет?
     
  18. KorDen

    KorDen Atra esterní ono thelduin! Ньюсмейкер

    Сообщения:
    2.194
    Симпатии:
    1.398
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Romeo98rus, плагины совместимы, сколько раз говорить уже.. Нужен только правильный файл расширения, плагины одинаковы!
     
  19. Petrovich

    Petrovich

    Сообщения:
    188
    Симпатии:
    44
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Не работает.

    #include <sourcemod>
    #include <sdkhooks>
    new Handle:g_Desc;
    public Plugin:myinfo =
    {
    name = "GameDesc override (SDKHooks)",
    author = "KorDen",
    description = "Overriding game description using modified SDKHooks",
    version = "1.0",
    url = "http://css32.ru/"
    };
    public OnPluginStart()
    {
    g_Desc=CreateConVar("sm_gamedesc","","Set game descption when server loading (64 symbols max)");
    }
    public Action:OnGetGameDescription(String:gameDesc[64])
    {
    decl String:desc[64];
    GetConVarString(g_Desc,desc,sizeof(desc));
    if (StrEqual(desc,""))
    {
    LogError("Game description not set, please set it in you runscript using +sm_gamedesc");
    }
    else
    {
    PrintToServer("[SM] Game description set to %s",desc);
    strcopy(gameDesc, sizeof(gameDesc), "BLABLABLA");
    }
    return Plugin_Changed;
    }

    В исходнике все несколько отличается, не как в первом посте. Может BLABLABLA уже не туда писать надо?
     
  20. CTe6eJIeK_vRn

    CTe6eJIeK_vRn Супер-модератор

    Сообщения:
    2.014
    Симпатии:
    1.797
    Re: [CSS/OB/CS:GO/L4D2] SDKHooks Game Description Override

    Petrovich, прочти оооооочеень внимательно первый пост