Это популярное сообщение. Zander_driver 10348 Опубликовано 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 619 Опубликовано 18 Марта 2023 Поделиться Опубликовано 18 Марта 2023 На электрон посадить бы, чтобы локальный сервер не делать 2 Ссылка на комментарий
UriZzz 1004 Опубликовано 19 Марта 2023 Поделиться Опубликовано 19 Марта 2023 Впечатляет. Это по типу репозитория? При чём с проектом сможешь работать не только ты локально, но и товарищи по проекту, имеющие на компьютерах написанные тобой, выше опубликованные клиенты подключённые к СУБД MySQL удалённо... @Graff46 что за электрон? Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
Graff46 619 Опубликовано 22 Марта 2023 Поделиться Опубликовано 22 Марта 2023 @UriZzz https://ru.wikipedia.org/wiki/Electron 1 Ссылка на комментарий
Kirgudu 1317 Опубликовано 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 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий
7.9 174 Опубликовано 21 Апреля 2023 Поделиться Опубликовано 21 Апреля 2023 (изменено) @Kirgudu, а ты (я думаю) PHP и MySQL из "центра пакетов" берёшь? Или свои какие-то? Если свои, скорее всего, не получиться... Если чего, ссылка на пакеты DSM 7, там чего-то есть... Изменено 21 Апреля 2023 пользователем 7.9 всё легко Ссылка на комментарий
Zander_driver 10348 Опубликовано 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 1317 Опубликовано 22 Апреля 2023 Поделиться Опубликовано 22 Апреля 2023 21 час назад, 7.9 сказал: PHP и MySQL из "центра пакетов" берёшь? Из него самого. В своё время я спокойно запустил у себя таким же образом копию форума для экспериментов, а сейчас что-то не выходит. 19 часов назад, Zander_driver сказал: сабж преспокойно может работать под OpenServer Видимо, придётся так и сделать, уж очень хочется сабж оценить. 2 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий
kolem 3 Опубликовано 24 Апреля 2023 Поделиться Опубликовано 24 Апреля 2023 22.04.2023 в 21:25, Kirgudu сказал: Из него самого. В своё время я спокойно запустил у себя таким же образом копию форума для экспериментов, а сейчас что-то не выходит. Видимо, придётся так и сделать, уж очень хочется сабж оценить. Самый оптимальный вариант - так и делать. Ссылка на комментарий
7.9 174 Опубликовано 26 Апреля 2023 Поделиться Опубликовано 26 Апреля 2023 Может кто "репак" сделает? А то с этмим "серверами" заморачиваться, ну прям - в лом. всё легко Ссылка на комментарий
Это популярное сообщение. Kirgudu 1317 Опубликовано 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 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий
7.9 174 Опубликовано 28 Апреля 2023 Поделиться Опубликовано 28 Апреля 2023 (изменено) 13 часов назад, Kirgudu сказал: ну как-то не очень. Согласен... в случае если индивидуально для меня, то - да, а если это спровоцирует для всех, то - и ничего. И "в лом" - это я, конечно-же, мягко выразился... ++ Может кто прикрутит этот реестр к движку? Будет круче чем как с Windows, когда она от ini-файлов капитально ушла... А то с этими "парсерами" заморачиваться, ну прям - "в лом". Изменено 29 Апреля 2023 пользователем 7.9 1 всё легко Ссылка на комментарий
Zander_driver 10348 Опубликовано 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 1317 Опубликовано 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 Свои работы и совместные проекты: Инструмент, OGSM CS, Final Stroke, HARDWARMOD Полезное: модули Артоса, XML парсер Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти