Это популярное сообщение. Zander_driver 10 334 Опубликовано 18 Марта 2023 Это популярное сообщение. Поделиться Опубликовано 18 Марта 2023 Хочу представить мододелам сталкера, новый инструмент. Что это такое: веб-Инструмент, позволяющий легко и быстро выполнять разнообразную аналитику кода в своем моде. Работает с LTX и XML конфигами, скриптами, и файлами движка. Инструмент написан на javaScript и php, и использует базу данных MySQL. Поэтому для использования потребуется либо локальный сервер, либо свой хостинг. Скрытый текст 0. Вам нужен локальный сервер или хостинг. 1. Создайте базу данных MySQL, и импортируйте в нее файл source.sql - он создаст в ней таблицу с нужной структурой. 2. Перед использованием вам потребуется загрузить файлы вашего мода в базу данных: 2.1 Поместите файлы в папку "2db", и запустите скрипт dbapi.php Он умеет распознавать следующие типы файлов: *.ltx - конфиги (НЕ помещайте в папку файлы спавна с этим расширением) *.xml - конфиги *.script - скрипты *.h - код движка *.cpp - код движка *.ltx-spawn - Файлы спавна перед загрузкой в БД следует переименовать, присвоив им такое расширение. 2.2 В принципе вы можете свалить в папку 2db вообще сразу все файлы вышеперечисленных форматов относящиеся к вашему моду, скрипт разберется что с ними делать. Но, в этом случае очень вероятно прерывание работы скрипта из-за превышения времени выполнения. Поэтому рекомендуется загружать файлы партиями в несколько заходов, разделив на более-менее равные (по весу) порции. При использовании хостинга, для загрузки файлов в папку 2db используйте Filezilla или иной файловый менеджер. 2.3 В файле stmt.php введите хост, логин, пароль и имя БД соответствующие параметрам доступа к вашей базе данных. 3. Безопасность. Инструмент не использует какие-либо сторонние ресурсы, не отправляет никаких запросов или иной информации вовне. Убедиться в этом можно самостоятельно прочитав код. 3.1 Конфиденциальность кода движка. При использовании на хостинге, если ваш мод использует движок, код которого вы хотели бы сохранить в тайне. Вы можете не опасаясь загрузить код движка полностью в базу данных, и даже давать доступ к данному инструменту, развернутому на вашем хостинге, лицам которым вы не хотите показать движок. Они не смогут его увидеть, но поисковые запросы к коду движка, будут им показывать короткие фрагменты кода, близкие к искомому фрагменту. Таким образом, вы можете открыть даже посторонним, как те или иные данные конфигов используются в вашем движке, но в то же время не открывать им код движка полностью. При любом запросе, сервер будет показывать лишь несколько строк из кода движка, близких к искомому значению. Искать в движке можно только текстовые значения, заключенные в кавычки. Количество строк, показанных выше и ниже найденного совпадения, регулирует параметр $engineFogDepth в начале файла sapi.php 4. После загрузки файлов, их можно удалить из папки 2db, и пользоваться инструментом. Запустите индексный файл (index.php) дождитесь загрузки. В левой панели будут в свернутом виде все конфиги вашего мода. Что же этот инструмент умеет? На данный момент работают следующие функции: 4.1 Просмотр дерева файлов и папок. Файлы НЕ связанные с system.ltx будут отмечены курсивом. Файлы в которых есть инклюды, будут отмечены жирным шрифтом. Файлы в которых обнаружены ошибки (Например, незакомментированная кириллица) будут отмечены желтым цветом. 4.2 Просмотр файлов и секций. Корректно распознаются ключи, значения, комментарии, секции и их родители, а также инклюды в любых конфигах. Для любой секции можно посмотреть все действующие параметры, унаследованные от секций-родителей. 4.3 Для любого файла доступно: Последовательность инклюдов, каким путем он подключен к system.ltx Список секций файла (В т.ч. рекурсивно по всем инклюдам) Список инклюдов файла (В т.ч. рекурсивно по всем инклюдам) Поиск упоминаний - где используется данный файл. 4.4 Для любой секции доступно: Поиск упоминаний - где используется секция Построение дерева наследования 4.5 Для любых ключей и значений в конфиге: Поиск упоминаний - где используется данный ключ, или значение (для текстовых значений) История (пере)определения значения в секциях-родителях. Поиск (не)идентичных значений этого параметра в других секциях Анализ значений параметра - какие они бывают, в каких секциях. Скрытый текст Ссылка 2 6 12 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Graff46 598 Опубликовано 18 Марта 2023 Поделиться Опубликовано 18 Марта 2023 На электрон посадить бы, чтобы локальный сервер не делать 2 Ссылка на комментарий
UriZzz 1 004 Опубликовано 19 Марта 2023 Поделиться Опубликовано 19 Марта 2023 Впечатляет. Это по типу репозитория? При чём с проектом сможешь работать не только ты локально, но и товарищи по проекту, имеющие на компьютерах написанные тобой, выше опубликованные клиенты подключённые к СУБД MySQL удалённо... @Graff46 что за электрон? Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Graff46 598 Опубликовано 22 Марта 2023 Поделиться Опубликовано 22 Марта 2023 @UriZzz https://ru.wikipedia.org/wiki/Electron 1 Ссылка на комментарий
Kirgudu 1 217 Опубликовано 21 Апреля 2023 Поделиться Опубликовано 21 Апреля 2023 Немножко оффтоп, но по теме: никому не доводилось ставить PHP и MySQL на Synology? Вторую неделю в ленивом режиме пытаюсь настроить и запустить сабж на своём NAS, но хотя с адресами, портами и прочим вроде не ошибся, пока добился только этого: Warning: mysqli::__construct(): (HY000/2002): No such file or directory in /volume1/web/stalker/stmt.php on line 12 Не удалось установить соединение с базой данных: No such file or directory/n Инструмент Ссылка на комментарий
7.9 174 Опубликовано 21 Апреля 2023 Поделиться Опубликовано 21 Апреля 2023 (изменено) @Kirgudu, а ты (я думаю) PHP и MySQL из "центра пакетов" берёшь? Или свои какие-то? Если свои, скорее всего, не получиться... Если чего, ссылка на пакеты DSM 7, там чего-то есть... Изменено 21 Апреля 2023 пользователем 7.9 всё легко Ссылка на комментарий
Zander_driver 10 334 Опубликовано 21 Апреля 2023 Автор Поделиться Опубликовано 21 Апреля 2023 18.03.2023 в 17:57, Graff46 сказал: чтобы локальный сервер не делать Если что, сабж преспокойно может работать под OpenServer "из коробки". Тот вроде каких-то танцев с бубном не просит... 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Kirgudu 1 217 Опубликовано 22 Апреля 2023 Поделиться Опубликовано 22 Апреля 2023 21 час назад, 7.9 сказал: PHP и MySQL из "центра пакетов" берёшь? Из него самого. В своё время я спокойно запустил у себя таким же образом копию форума для экспериментов, а сейчас что-то не выходит. 19 часов назад, Zander_driver сказал: сабж преспокойно может работать под OpenServer Видимо, придётся так и сделать, уж очень хочется сабж оценить. 2 Инструмент Ссылка на комментарий
kolem 3 Опубликовано 24 Апреля 2023 Поделиться Опубликовано 24 Апреля 2023 22.04.2023 в 21:25, Kirgudu сказал: Из него самого. В своё время я спокойно запустил у себя таким же образом копию форума для экспериментов, а сейчас что-то не выходит. Видимо, придётся так и сделать, уж очень хочется сабж оценить. Самый оптимальный вариант - так и делать. Ссылка на комментарий
7.9 174 Опубликовано 26 Апреля 2023 Поделиться Опубликовано 26 Апреля 2023 Может кто "репак" сделает? А то с этмим "серверами" заморачиваться, ну прям - в лом. всё легко Ссылка на комментарий
Это популярное сообщение. Kirgudu 1 217 Опубликовано 28 Апреля 2023 Это популярное сообщение. Поделиться Опубликовано 28 Апреля 2023 Запустил таки инструмент на своём NAS. Это оказалось не так уж и сложно, просто за прошедшие несколько лет я забыл кое-какие детали взаимной настройки PHP и MySQL в пакетах. Ничего не скажешь, штука хорошая. Такое приложение лет эдак 10 назад, в разгар сталкерского модопроизводства, пригодилось бы очень многим, да и сейчас может принести пользу. Например, смотреть иерархию и искать все места использования того или иного значения становится действительно удобно, а результат нагляден и не требует того, чтобы держать всё в голове или блокноте. Точно знаю, что если б в далёком 2012 году при работе над OGSM CS у меня в руках был похожий инструмент, я бы пользовался им постоянно. Собственно, на примере OGSM CS, точнее его наследнике, я и попробовал оценить результат трудов автора. Если позволите, далее под спойлером мои оценки, замечания, предложения и прочие мысли. Скрытый текст Кому интересно, можете пощупать всё здесь: https://kirgudu.net/stalker/index.php Подержу какое-то время публично. Очевидно, что приложение создавалось автором для себя. Я не сомневаюсь, что в таких условиях оно работает как часы и выполняет все заложенные в него функции как полагается, однако абстрактный новый пользователь не обязательно получит рабочий инструмент "из коробки". Опишу некоторые нюансы, с которыми мне пришлось столкнуться при запуске. 1. Загружать в базу данных желательно не просто файлы мода, а вместе со всеми файлами оригинальной игры - например, если хотите отследить все места использования какой-нибудь инфопорции или секции. При загрузке только "своих" файлов картина по интересующему вас предмету может получиться неполной. 2. Явно это не указано, но при загрузке файлов в базу желательно помещать их в папку "2db" с точным соблюдением структуры папок, не сваливать всё в кучу. Так и в дереве порядок будет, и не получится так, что из какой-нибудь секции будет отсылка на файл в отсутствующей папке. 3. Даже при выполнении первых двух пунктов при загрузке индекса может вылезти ошибка. Собственно, у меня так и случилось, и это уже не лечилось никакими папками и файлами: Пришлось слегка доработать. PHP я не знаю, в титаническую работу автора влезать не хочу, поэтому просто добавил несколько проверок на непустое значение в скрипт index.js в районе строк 439-459. На NAS размещён уже изменённый скрипт, можно взять его оттуда: https://kirgudu.net/stalker/index.js (для сравнения с оригинальным скриптом из архива автора). Допускаю, что при таких проверках часть информации пропускается при анализе, но для оценки инструмента этого было достаточно. После выполнения вышеперечисленных пунктов у меня всё заработало. Ещё парочка ошибка на общий функционал не влияет, однако для полноты картины я их обозначу. 4. Множественные исключения вида "недостаточно ресурсов" при обработке каждого файла во время загрузки индекса. Видны на скриншоте из пункта 3. 5. Ошибка загрузки логотипа при размещении приложения в папке, отличной от корневой: 6. Наложение строк текста друг на друга при открытии секций с длинными значениями: И напоследок то, чего лично мне не хватило для полного счастья, своего рода пожелания: 1. Кнопка "Очистить БД". Понятно, что кто сумел запустить сервер, настроить PHP и MySQL, тот сможет и команду "truncate" или "delete from" выполнить. Однако это было бы удобно - иметь инструмент очистки в интерфейсе. 2. Как подпункт к первому пункту: не хватает кнопки "удалить файл" в контекстном меню при нажатии на имя файла в дереве. 3. Открыл один файл (, свернул-развернул дерево, открыл ещё десяток файлов, вернулся к первому - и некоторое искал его снова в дереве, чтобы посмотреть через контекст, где он используется. Не хватает либо автофокусировки и подсветки текущей выбранной закладки в дереве, либо в контекстном меню на выбранной вкладке пункта "найти в дереве". 4. Нужен input с поиском файла в дереве по его имени (совпадение части имени с вводимой строкой). 5. Кнопка "поиск лишних скриптов" ничего не делает, либо я не нашёл контекста, в котором действие должно происходить. В коде приложения не искал! Возможно, функционал этой кнопки ещё не реализован. 6. И в целом поиск вхождения чего-либо везде - сама по себе отличная штука - работает довольно медленно. Это больше наблюдение для себя, поскольку связана такая скорость скорее всего с тем, что выполняется всё на NAS, а не нормальном компьютере. А в целом, @Zander_driver, спасибо! Это был увлекательный и полезный опыт. Даже немножко жаль, что мой брачный период энтузиазма уже позади. @7.9 Скажу прямо: признаваться в том, что с чем-то заморачиваться в лом (то есть в принципе способен, но лень), но при этом просить сопоставимую по трудозатратам работу от других - ну как-то не очень. 1 3 3 Инструмент Ссылка на комментарий
7.9 174 Опубликовано 28 Апреля 2023 Поделиться Опубликовано 28 Апреля 2023 (изменено) 13 часов назад, Kirgudu сказал: ну как-то не очень. Согласен... в случае если индивидуально для меня, то - да, а если это спровоцирует для всех, то - и ничего. И "в лом" - это я, конечно-же, мягко выразился... ++ Может кто прикрутит этот реестр к движку? Будет круче чем как с Windows, когда она от ini-файлов капитально ушла... А то с этими "парсерами" заморачиваться, ну прям - "в лом". Изменено 29 Апреля 2023 пользователем 7.9 1 всё легко Ссылка на комментарий
Zander_driver 10 334 Опубликовано 19 Мая 2023 Автор Поделиться Опубликовано 19 Мая 2023 (изменено) 28.04.2023 в 21:13, 7.9 сказал: Может кто прикрутит этот реестр к движку? Это-то зачем, прости господи) Кто-то даже не стал вникать, что оно вообще такое... Скрытый текст 28.04.2023 в 19:28, Kirgudu сказал: 1. Загружать в базу данных желательно не просто файлы мода, а вместе со всеми файлами оригинальной игры Не "желательно", а обязательно. Да, забыл об этом упомянуть т.к. полагал что это подразумевается само собой. 28.04.2023 в 19:28, Kirgudu сказал: 2. Явно это не указано, но при загрузке файлов в базу желательно помещать их в папку "2db" с точным соблюдением структуры папок, не сваливать всё в кучу. Здесь также - обязательно, а не "желательно". Тоже забыл упомянуть по той же причине... 28.04.2023 в 19:28, Kirgudu сказал: 3. Даже при выполнении первых двух пунктов при загрузке индекса может вылезти ошибка. А это странно. Точно уверен, что первые два пункта были строго соблюдены? Мне кажется что таки нет, и потому и ошибка. 28.04.2023 в 19:28, Kirgudu сказал: 4. Множественные исключения вида "недостаточно ресурсов" На ПК и на заурядном хостинге такого не наблюдалось... 28.04.2023 в 19:28, Kirgudu сказал: 5. Ошибка загрузки логотипа при размещении приложения в папке, отличной от корневой Тут логично. Так и должно быть) 28.04.2023 в 19:28, Kirgudu сказал: 6. И в целом поиск вхождения чего-либо везде - сама по себе отличная штука - работает довольно медленно. Это больше наблюдение для себя, поскольку связана такая скорость скорее всего с тем, что выполняется всё на NAS, а не нормальном компьютере. Ну тут как бы... на обычном ПК, все поисковые действия выполняются где-то в пределах секунды. На том же заурядном хостинге, где я одно время этот инструмент размещал, так же в пределах секунды. Так что это уже проблемы производительности отдельной платформы явно) 28.04.2023 в 21:13, 7.9 сказал: И "в лом" - это я, конечно-же, мягко выразился... ЗЫ. Так то было бы можно, допилить сабж до уровня онлайн-сервиса, где можно было бы регать аккаунт и на аккаунт заводить свою суб-БД со своим модом отдельно. Я его могу и у себя разместить. Но... а кто пользоваться-то будет, не на полчаса потыкать а для систематической работы?) Кому оно в самом деле надо, так чтоб не "в лом". А так, мне тоже в лом. Хостинг и БД на нем не резиновые, употреблять их для того что никому не пригодится для дела - ну такое... Изменено 19 Мая 2023 пользователем Zander_driver 1 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Kirgudu 1 217 Опубликовано 19 Мая 2023 Поделиться Опубликовано 19 Мая 2023 6 часов назад, Zander_driver сказал: Тут логично. Так и должно быть) Не должно. Для этого достаточно сделать не абсолютные ссылки <link ... href="/foz-logo16.png">, а относительные <link ... href="foz-logo16.png">. 6 часов назад, Zander_driver сказал: Точно уверен, что первые два пункта были строго соблюдены? Мне кажется что таки нет, и потому и ошибка. Уверен. Подступался к загрузке данных в 2 захода: сначала поленился и свалил всё в кучу, после чего получил ошибки и написал пункты 1 и 2, очистил БД (написав попутно рекомендательный пункт 1 ) и уже не торопясь, внимательно, собрал мод и файлы оригинала с соблюдением иерархии и загрузил весь пакет заново. После того, как ошибки воспроизвелись, ещё раз всё перепроверил - нет, ничего не забыл, всё на своих местах и всё загружено в БД. Ну да это не важно в данном случае, всё равно получился вполне рабочий инструмент. Более того, автор упомянутого выше мода сейчас активно им пользуется, внося правки в скрипты и конфиги по результатам анализа. ЗЫ: С когнитивным диссонансом при сравнении ожиданий и реальности я сталкиваюсь регулярно, когда у нас идёт взаимодействие разрабов и тестировщиков. Казалось бы, предусмотрено практически всё, ан нет! Получи багом по мягкому месту. И хорошо, если это происходит заранее, а не во время приёмки заказчиком. 1 1 Инструмент Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти