UnrealKaraulov / newbspguy

Goldsrc map viewer/editor without decompiling. Also can view .MDL models.
The Unlicense
59 stars 11 forks source link

Compatibility for J.A.C.K. FGDs #77

Closed Qwertyus3D closed 6 months ago

Qwertyus3D commented 7 months ago

Спасибо за обнову, хотелось бы в будущем увидеть также поддержку FGD для Джека. Я сам сейчас сижу под FGD, специально подогнанным под BSPGuy. В своё время я его создавал именно на основе кастомного FGD для Джека, для этого пришлось выкинуть оттуда фичу, заложенную в Джек - поддержку подсказок по функциям. Сейчас уже точно не помню, но, кажется, из-за этих подсказок были проблемы, т. к. редактор их неправильно интерпретировал. Там текст вида:

[ message(string) : "Map Description / Title" skyname(sky) : "Environment map (cl_skyname)" : : "Lets you choose what sky image you want. Values are: 2desert, alien1, alien2, alien3, black, city, cliff, desert, dusk, morning, neb1, neb2, neb6, neb7, night, space, xen8, xen9, xen10. More skies exist in Half-Life modifications, and you can also make your own skies." sounds(integer) : "CD track to play" : 1 : "CD track to play when the level begins." light(integer) : "Default light level" WaveHeight(string) : "Default Wave Height" : : "Set the default wave height here (can be overridden by the properties in func_water)." MaxRange(string) : "Max viewable distance" : "4096" : "Maximum distance the player can see." chaptertitle(string) : "Chapter Title Message" : "" : "Text displayed when entering the level." startdark(choices) : "Level Fade In" : 0 : "If Yes, then the level will start black and fade into normal light." = [
0 : "No" 1 : "Yes" ] gametitle(choices) : "Display game title" : 0 : "Game title that appears onscreen when this level starts." = [
0 : "No" : "Don't display game title sprite." 1 : "Yes" : "Display game title sprite." ] newunit(choices) : "New Level Unit" : 0 : "Used to clear out savegame data of previous levels to keep the savegame size as small as possible. Only set it to Yes if the player cannot return to any previous levels." = [ 0 : "No, keep current" : "Keeps all globals alive." 1 : "Yes, clear previous levels" : "Flushes all globals." ] mapteams(string) : "Map Team List" : : "This will be copied into the mp_teamlist while your map is running if the server allows maps to override the team list." defaultteam(choices) : "Default Team" : 0 = [ 0 : "Fewest Players" 1 : "First Team" ] ]

И вот пришлось эти подсказки повырезать (хотя не только из-за этого редактора, для совместимости с другими тоже). На данный момент, как я вижу, FGD для Джека вообще не поддерживается, при попытке подключить его в настройках галочка с него постоянно сбрасывается (раньше вроде даже грузилось, но криво). В идеале, конечно, отображать бы эти подсказки каким-то образом, но для начала хотя бы научить их игнорировать. А то под Джек действительно некоторые постарались сделать разные FGD, для новых модов, в частности.

UnrealKaraulov commented 7 months ago

@Qwertyus3D Можно пример этих файлов ? \

UnrealKaraulov commented 7 months ago

@Qwertyus3D я не могу получить проблему что именно за ошибка и как проверить ее?

Qwertyus3D commented 7 months ago

Допустим, вот этот: https://www.moddb.com/mods/field-intensity/downloads/field-intensity-fgd

UnrealKaraulov commented 7 months ago

@Qwertyus3D может проблема в поиске пути, я ее исправил тут https://github.com/UnrealKaraulov/newbspguy/releases/tag/NightBuild_2023.12.06_06-39

Qwertyus3D commented 7 months ago

С текущим билдом FGD под Джек подгружается, но никакие энтити не определяются, как присутствующие в FGD. Весь список энтить красным цветом выделен.

UnrealKaraulov commented 7 months ago

С текущим билдом FGD под Джек подгружается, но никакие энтити не определяются, как присутствующие в FGD. Весь список энтить красным цветом выделен.

есть пример карты где использовать этот fgd что бы проверить?

Qwertyus3D commented 7 months ago

Да на любой карте можно использовать, там же энтити ХЛ и Опфора + некоторые свои изменения, но они не могут быть существенными. А так - на картах мода можно проверить, но смысла пока нет, FGD должен хотя бы стандартные энтити подключать.

Я же объяснял, там проблема в том, что у энтить есть дополнительные комментарии, а редактор эти продолжения строчек обрабатывает некорректно, как будто это какие-то дополнительные параметры энтить, или что-то в этом роде. sounds(integer) : "CD track to play" : 1 : "CD track to play when the level begins." Вот это " : CD track to play when the level begins." - это комментарий, которого нет в обычных FGD.

Qwertyus3D commented 7 months ago

Такие комментарии можно было бы отображать всплывающей подсказкой при наведении на имя пункта, у которого такой комментарий предусмотрен.

UnrealKaraulov commented 7 months ago

@Qwertyus3D этот формат кажется намного сложнее обычного нужно будет внести много изменений в парсер fgd что бы он заработал, посмотрю на днях.

UnrealKaraulov commented 6 months ago

@Qwertyus3D оказалось ничего сложного, вроде как должно заработать в последнем билде.

UnrealKaraulov commented 6 months ago

@Qwertyus3D оказалось сложнее чем думал, но теперь добавил еще и отображение описания:

https://youtu.be/WMqVsz-6Dss

Qwertyus3D commented 6 months ago

Да, похоже, что всё правильно. В связи с чем хочется попросить ещё выводить подобную всплывающую подсказку при наведении мышки на боксы, содержимое которых не умещается в видимое поле. Как тут, где обвёл: hint Чтобы просто в подсказке был полностью виден текст, который не влез в поле.

UnrealKaraulov commented 6 months ago

@Qwertyus3D кажись сделал, еще там halflife256.fgd не парсило как надо, тож пофиксил.

UnrealKaraulov commented 6 months ago

@Qwertyus3D еще какие-нибудь пожелания или все готово по этому вопросу?

Qwertyus3D commented 6 months ago

Ну, поддержка есть, подсказки работают. Наверно, всё.

UnrealKaraulov commented 6 months ago

@Qwertyus3D ладно если что-то еще то открою