Перейти к содержимому


Фотография

Инструкция как собрать сборку Hardmod


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 25

#1 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 17 Декабрь 2018 - 20:34

Исходники были давно уже выложены, но не все понимают как ими пользоваться.
Так получилось что сегодня пришлось объяснять это пользователю simvolist777

По этому решил выкинуть инфу в отдельную тему. А там уже может найдутся желающие кто решит обновить и поддерживать данную идею в будущем.

Пред история Hardmod.

Скрытый текст



1. Для начало нам надо скачать всю сборку hardmod от сюда. или с моего фтп. И распаковать в удобное место на диске
2. Заходим в папку сборки
Для информации что из себя представляет сборка
Скрытый текст

Описание что отвечает в сборке
Скрытый текст


По поводу hardmod и его модулей

Скрытый текст

Думаю многим это была полезная информация.


Сообщение отредактировал dr_lex: 17 Декабрь 2018 - 20:37

  • Slaven555, simvolist777, Game Over - L4D2 - CS:GO и 3 другим это нравится

#2 simvolist777

simvolist777

    Пользователь

  • Пользователь
  • PipPipPip
  • 180 сообщений

Отправлено 18 Декабрь 2018 - 19:46

  Из исходников можно собрать, конечно, свою сборку хардмод сервера, но надо обновлять код, иначе сервер не запустится выше чем на Соурсмоде 1.6. Клиент игры 2.1.5.3 на сервер со старым соурсмодом (что ниже 1.8) не заходит - уже пробовал.

Самая крайняя сборка Джонни под Винду, на Соурсмоде 1.6.2

https://yadi.sk/d/5E-Oh6PAatr0AQ

Если распаковать новейший чистый соурсмод с метамодом, а потом поверх копировать сборку, можно добиться работы сервера без ошибок в логах. Там дело такое, что сам плагин хардмода без ошибок на новом СМ (1.8-1.10) не идёт, если только полностью не заменить папки нового СМ на старые из сборки Джонни, а именно sql-init-scripts и geoip в \addons\sourcemod\configs, и, соответственно, расширения геоипа и СКЛ в папке extensions. Если так не сделать, оставить новые, то хардмод ни фига не запустится - проверял по много раз. Но зато потом, с заменой некоторых старых плагинов на новые, типа charging steering/l4d2_custom_commands и небольших их настроек, всё весьма неплохо выходит.

 Вот моя сборка хардмода под sourcemod-1.9.0-git6269-windows+mmsource-1.10.7-git966-windows

https://yadi.sk/d/ZhiKWZUBIFh4Og

Заменил некоторые плагины, добавил новых. Всё работает без ошибок в логах. Иногда с супертанками бывают заскоки ввысь со здоровьем, но их можно настроить под себя тут:

\addons\sourcemod\data\super_tanks++\super_tanks++.cfg, отключить ненужные типы танков, поменять им хп и прочее.

. За адаптацию супертанков 8.49 под СМ1.9 благодарность dr_lex.


Сообщение отредактировал simvolist777: 20 Декабрь 2018 - 12:08


#3 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 26 Декабрь 2018 - 0:03

Решил сделать небольшой подарок на новый год.

Скачать

1. Исправил ошибки при компиляции на sm 1.9
2. Подправил ошибки в компиляции для версии без статы (данная ошибка ещё была когда Jonny делал сборки)
hardmod.sp(1446) : warning 204: symbol is assigned a value that is never used: "IsFirstRoundAfterLoad"
hardmod.sp(1446 -- 1802) : warning 203: symbol is never used: "IsPlayerCPUAllowed"
Примечание:
Тут простые исправления которые заняли работы на 15 минут. Сам код не обновлен на новый и желательно в будущем это сделать.

Какие ошибки и проблемы есть в исходниках?
Ответ: Их много сам уже не помню. Но это утечки памяти, баги, не рабочие функции и функции которые могут ложить сервер и т.д.

Сообщение отредактировал dr_lex: 26 Декабрь 2018 - 0:55

  • simvolist777 это нравится

#4 simvolist777

simvolist777

    Пользователь

  • Пользователь
  • PipPipPip
  • 180 сообщений

Отправлено 27 Декабрь 2018 - 6:09

Интересно, что при компиляции других исходников Джонни в соурсмоде 1.9 чаще всего это предупреждение, и по 4-129 раз в каждом сп. Например:

Скрытый текст

 

  Насчёт ворнинга с ФКВАР нашёл решение на одном форуме: "FCVAR_PLUGIN    Замени это везде на подчёркивание, либо 0 и всё."  И точно, помогло.

Насчёт кое-чего остального тоже разобрался. Типа этого:

Скрытый текст

 С этим неиспользованием понял, что надо весь кусок кода убрать, чтобы ворнинг исчез:

Скрытый текст

 

А вот с этим неясно

Скрытый текст

 

 Если в этих строках заменить GetClientAuthString на GetClientAuthId - сп не компилится вовсе.

 

Нашёл совет тут: https://forum.myaren...ibki-l4d-stats/

"GetClientAuthString(client, String, sizeof(String));

заменить на

GetClientAuthId(client, AuthId_Steam2, String, sizeof(String));"

 Но тогда сп тоже не компилируется.

Однако итог такой: даже с последними ворнингами оставленными всё равно так-то в итоге скомпиленные плагины пашут на СМ 1.9, как и исправленный хардмод, и если вбить команду sm plugins list, ошибок нет. Однако в логах сервера создаётся-таки за проход одной миссии 1-2 мегабайтный файл эрроров. Там в основном про то пишется, что hardmod blaming/l4d2_events blaming  и прочие подробности об этом.

 Потому даже исправленный хардмод не даёт ожидаемых результатов. Без исправления/обновления кода не обойтись...

Лично я пока буду юзать ту сборку 2014-го года, которую Джонни выложил самой крайней. Она, пусть и  после плясок с бубнами, но ложится без эрроров в логах на СМ 1.9 и даже на СМ 1.10.

Прикрепленные файлы

  • Прикрепленный файл  sm_guardian.sp   8,08К   8 Количество загрузок:

Сообщение отредактировал simvolist777: 27 Декабрь 2018 - 14:12


#5 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 27 Декабрь 2018 - 19:42

Интересно, что при компиляции других исходников Джонни в соурсмоде 1.9 чаще всего это предупреждение, и по 4-129 раз в каждом сп. Например:
\addons\sourcemod\scripting\l4d_itemsspawnremover.sp(25) : warning 234: symbol "FCVAR_PLUGIN" is marked as deprecated: No logic using this flag ever existed in a released game. It only ever appeared in the first hl2sdk.[/spoiler]

  Насчёт ворнинга с ФКВАР нашёл решение на одном форуме: "FCVAR_PLUGIN    Замени это везде на подчёркивание, либо 0 и всё."  И точно, помогло.

FCVAR_PLUGIN вроде убрали в версии SM 1.7.3
И лучше менять FCVAR_PLUGIN на FCVAR_NONE это безопаснее и понятнее компилятору условие.
 

Насчёт кое-чего остального тоже разобрался. Типа этого:
\addons\sourcemod\scripting\l4d_itemsspawnremover.sp(96) : warning 203: symbol is never used: "Log"
  Строка 96:
Log(const String:LogReport[])

 С этим неиспользованием понял, что надо весь кусок кода убрать, чтобы ворнинг исчез:
//Log(const String:LogReport[])
//{
//    decl String:file[PLATFORM_MAX_PATH];
//    BuildPath(Path_SM, file, sizeof(file), "logs/items.log");
//    LogToFileEx(file, "classname = %s", LogReport);
//    return;
//}

Log делается в плагине для того чтобы проверить работу функций плагина на наличие ошибок. И недочетов.
 

А вот с этим неясно

Скрытый текст

 
 Если в этих строках заменить GetClientAuthString на GetClientAuthId - сп не компилится вовсе.

GetClientAuthString - Это функция позволяет узнать игрока STEAM ID (в sm 1.6 вроде её убрали и сделали GetClientAuthId так как csgo и в других игр види новые версии Steam id с начинанием U:xxxxxx

Исправляется просто:
на примере: GetClientAuthString(client, String, sizeof(String));
Заменяем GetClientAuthString на GetClientAuthId и после первого , добавляем AuthId_Steam2,
В итоге будет что-то типа этого
GetClientAuthId(client, AuthId_Steam2, String, sizeof(String));
Если интересно что такое AuthId_Steam2? то это вариант версии STEAM ID которой будет получено с игрока. В данный момент AuthId_Steam2 это формат STEAM_1:0:xxxxxxx (AuthId_Steam3 вроде U:xxxxxx точно не помню).
 

Однако итог такой: даже с последними ворнингами оставленными всё равно так-то в итоге скомпиленные плагины пашут на СМ 1.9, как и исправленный хардмод, и если вбить команду sm plugins list, ошибок нет. Однако в логах сервера создаётся-таки за проход одной миссии 1-2 мегабайтный файл эрроров. Там в основном про то пишется, что hardmod blaming/l4d2_events blaming  и прочие подробности об этом.
 Потому даже исправленный хардмод не даёт ожидаемых результатов. Без исправления/обновления кода не обойтись...
Лично я пока буду юзать ту сборку 2014-го года, которую Джонни выложил самой крайней. Она, пусть и  после плясок с бубнами, но ложится без эрроров в логах на СМ 1.9 и даже на СМ 1.10.

Каждые новые версии SM по тиху убирают старые функции.
Как совет найти новые версии данный плагинов на AM они есть, или заменить другими лучшими вариантами. Например l4d_itemsspawnremover я убрал сразу в сторону Stripper v1.2.2 и т.д

Сообщение отредактировал dr_lex: 27 Декабрь 2018 - 19:44

  • Slaven555 и BHaType это нравится

#6 simvolist777

simvolist777

    Пользователь

  • Пользователь
  • PipPipPip
  • 180 сообщений

Отправлено 29 Декабрь 2018 - 5:31

Ну так вот, для эксперимента нашёл пиратку - клиент 2.1.4.0 Left 4 Dead 2, и прямо в неё кинул папки сборки сервера Джонни, из исходников собранный. Обычно запуск идёт через листенсервер, годами так делаю. Но не пошло - клиент вылетел при загрузке карты. Ладно, кинул потом в тот же клиент сборку сервера Джонни от 21.09.2014 - самую его крайнюю - всё пошло без ошибок в логах, без танцев с бубнами, на соурсмоде 1.6.2, что и был в сборке. Но и минус главный: новые плагины не пашут, никакой вид супертанков - тоже. А по стабильности и работе та сборка, которую я слепил на СМ 1.9., почти ничем не отличается. Так что тут 2 пути: или юзать то, что вышло, или обновлять код хардмода. Однажды придётся всё-таки это делать. Хотя Джонни зря не выложил исходники конца 2014 года, ибо у него они аж начала 2013-го - там ведь вообще СМ 1.4 или 1.5 был, поэтому столько багов, если из них сборку лепить и переделывать это старьё для СМ 1.9 или 1.10.



#7 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 30 Декабрь 2018 - 16:21

Ну так вот, для эксперимента нашёл пиратку - клиент 2.1.4.0 Left 4 Dead 2, и прямо в неё кинул папки сборки сервера Джонни, из исходников собранный. Обычно запуск идёт через листенсервер, годами так делаю. Но не пошло - клиент вылетел при загрузке карты. Ладно, кинул потом в тот же клиент сборку сервера Джонни от 21.09.2014 - самую его крайнюю - всё пошло без ошибок в логах, без танцев с бубнами, на соурсмоде 1.6.2, что и был в сборке. Но и минус главный: новые плагины не пашут, никакой вид супертанков - тоже. А по стабильности и работе та сборка, которую я слепил на СМ 1.9., почти ничем не отличается. Так что тут 2 пути: или юзать то, что вышло, или обновлять код хардмода. Однажды придётся всё-таки это делать. Хотя Джонни зря не выложил исходники конца 2014 года, ибо у него они аж начала 2013-го - там ведь вообще СМ 1.4 или 1.5 был, поэтому столько багов, если из них сборку лепить и переделывать это старьё для СМ 1.9 или 1.10.

Это и есть последние на то время!



#8 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 29 Январь 2019 - 1:08


warning 203: symbol is never used: "Log"

Исправляется добавлением ключевого слова stock перед возвращаемым типом данных функции.

Говорит компилятору, что это набор подключаемых функций, которые не обязательно использовать.

 

FCVAR_PLUGIN - изначально по этому флагу различали игровые квары от кваров плагинов. Хз нафига сделали deprecated.



#9 Pricolist

Pricolist

    Участник

  • Пользователь
  • PipPip
  • 108 сообщений

Отправлено 16 Февраль 2019 - 0:17

Исправляется добавлением ключевого слова stock перед возвращаемым типом данных функции.

Говорит компилятору, что это набор подключаемых функций, которые не обязательно использовать.

Надо было добавить! Что при этом, снижает нагрузку на  сервер)))



#10 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 16 Февраль 2019 - 0:48

Ммм, благодаря чему?

Компилятор в обоих случаях должен выбросить незадействованные части кода из итогового бинаря в процессе оптимизации.

Даже если и нет, разница будет неощутима.



#11 Pricolist

Pricolist

    Участник

  • Пользователь
  • PipPip
  • 108 сообщений

Отправлено 16 Февраль 2019 - 7:52

Ммм, благодаря чему?

Компилятор в обоих случаях должен выбросить незадействованные части кода из итогового бинаря в процессе оптимизации.

Даже если и нет, разница будет неощутима.

Stock , ничем не отличается от public. Лучше использовать stock вместо public, она более оптимизированей! И это факт.


Сообщение отредактировал Pricolist: 16 Февраль 2019 - 7:54


#12 BHaType

BHaType

    Пользователь

  • Пользователь
  • PipPipPip
  • 358 сообщений

Отправлено 16 Февраль 2019 - 10:40

Stock , ничем не отличается от public. Лучше использовать stock вместо public, она более оптимизированей! И это факт.

public - если не юзается нигде в плагине, всё равно будет идти в действующий код при компиляции
stock же, если на него никто не ссылается, то при компиляции - он просто вырезается
то бишь лишнего веса не создаёт, если и так не используется нигде
 
public обычно юзают далее достаточно важных функций, которые не охото выносить в сток
то бишь по значимости можно сравнить с евентами допустим
 

  • dr_lex это нравится

#13 Pricolist

Pricolist

    Участник

  • Пользователь
  • PipPip
  • 108 сообщений

Отправлено 18 Февраль 2019 - 1:52

 

public - если не юзается нигде в плагине, всё равно будет идти в действующий код при компиляции
stock же, если на него никто не ссылается, то при компиляции - он просто вырезается
то бишь лишнего веса не создаёт, если и так не используется нигде
 
public обычно юзают далее достаточно важных функций, которые не охото выносить в сток
то бишь по значимости можно сравнить с евентами допустим
 

 

Я высказал своё мнение, не для того что бы письками мерится!) Так как каждый останется при своём. Stock не регистрируется в памяти сервера! То бишь, как я процитировал выше! Снижает нагрузку на сервер. Используя такие плагины как  l4d2_supercoop_light, hardmod, и.т.д.


Сообщение отредактировал Pricolist: 18 Февраль 2019 - 1:52

  • dragokas это нравится

#14 BHaType

BHaType

    Пользователь

  • Пользователь
  • PipPipPip
  • 358 сообщений

Отправлено 18 Февраль 2019 - 4:43

Stock , ничем не отличается от public. Лучше использовать stock вместо public, она более оптимизированей! И это факт.

Отвечу тем же, я лишь дополнил, ибо просто сказать "Лучше использовать stock вместо public, она более оптимизированей!" без простого объяснения, звучит просто пустыми словами.



#15 Pricolist

Pricolist

    Участник

  • Пользователь
  • PipPip
  • 108 сообщений

Отправлено 18 Февраль 2019 - 7:11

Отвечу тем же, я лишь дополнил, ибо просто сказать "Лучше использовать stock вместо public, она более оптимизированей!" без простого объяснения, звучит просто пустыми словами.

Ты сказал не подумав. Ибо 70 процентов скриптеров считают именно так! Повторюсь это твоё мнение. И оно уважительно в свои кругах. Удачи.


  • BHaType это нравится

#16 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 18 Февраль 2019 - 11:02

Ты сказал не подумав. Ибо 70 процентов скриптеров считают именно так! Повторюсь это твоё мнение. И оно уважительно в свои кругах. Удачи.

Не хочу расстраивать но stock не влияет на улучшения не как)
Компилируй исходник, а потом декомпилируй и посмотри. Все функции которые были в исходнике с stock будут обычными.

Самовнушение что stock помогает, это великая сила

Сообщение отредактировал dr_lex: 18 Февраль 2019 - 11:16

  • BHaType это нравится

#17 Pricolist

Pricolist

    Участник

  • Пользователь
  • PipPip
  • 108 сообщений

Отправлено 18 Февраль 2019 - 17:31

Не хочу расстраивать но stock не влияет на улучшения не как)
Компилируй исходник, а потом декомпилируй и посмотри. Все функции которые были в исходнике с stock будут обычными.

Самовнушение что stock помогает, это великая сила

Я бы расстроился!)))) Если бы ссылался на пустые слова. А не на свой личный опыт! Повторюсь, пусть каждый останется при своём.



#18 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 18 Февраль 2019 - 18:56

Я бы расстроился!)))) Если бы ссылался на пустые слова. А не на свой личный опыт! Повторюсь, пусть каждый останется при своём.

Как я уже говорил «Самовнушение» это великая сила.
Для примера покажу частями кода l4dmultislots. Это для других пользователей, чтобы они знали


Скрытый текст


#19 Pricolist

Pricolist

    Участник

  • Пользователь
  • PipPip
  • 108 сообщений

Отправлено 18 Февраль 2019 - 19:44

Как я уже говорил «Самовнушение» это великая сила.
Для примера покажу частями кода l4dmultislots. Это для других пользователей, чтобы они знали


Скрытый текст

Вам сюда http://pawn-wiki.ru/...ola-skriptinga/ В раздел уроки!)))) Удачи.


Сообщение отредактировал Pricolist: 18 Февраль 2019 - 19:46


#20 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 18 Февраль 2019 - 20:25

Вам сюда http://pawn-wiki.ru/...ola-skriptinga/ В раздел уроки!)))) Удачи.


 

Вы серьезно? Это наверно те самые 70% типа скриперов экспертов?
Я вроде показал реальный пример на исходнике как  компилятор его собирает. А вы мне показываете ссылку на другой форум


На будущее как совет! Смотри через Lysis как компилятор вообще собирает ваш исходник. Так как компилятор может изменять код на свое усмотрение!


 




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных