Модостроение. Общие вопросы и ответы
|
|
denis2000 | Дата: Сб, 15.06.2013, 11:51 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Помощь тем кто хочет знать больше о игре и модах Если у вас появились вопросы по модостроению в игре S.T.A.L.K.E.R. Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (wiki), Lua_help.script, Help из SDK 0.7
Сборник модостроения ЗП v10.10.11 (автор: XOBAH): *.CHM, *.HTML [cut noguest=Если у вас не открывается файл CHM]Если у вас не открывается файл: 1. Запустите [Пуск]=>[Выполнить] (либо хот-кей [WIN]+[R]) 2. Введите команду (без кавычек) "regsvr32 %windir%\system32\hhctrl.ocx" 3. Если вылезло окно об успешном завершении вы все сделали правильно и можете перезагружать компьютер (а может и не надо) Также: файлы МОГУТ не открываться если в пути к файлу есть: символы кириллицы, "_", "#" Также: есть не стандартные программы-просмоторщики CHM файлов. Например: FBReader[/cut] [cut=Где найти лог игры после вылета]Что такое LOG ошибки, и как мне его найти? Это система отладки происходивших вылетов, которая подается игрой в форме текста, хотя не всегда. Для того чтоб найти LOG необходимо зайти вот сюда:
В Win хр лог находится:
C:\Documents and Settings\All Users\Документы\S.T.A.L.K.E.R. - Зов Припяти\logs
Затем открываете первый файл в формате TXT, и в нем отбираете с низу 25 строчек. После кидаете эти 25 строчек в сообщение на форум.
В Win7 лог находится C:\Users\Public\Documents\S.T.A.L.K.E.R. - Зов Припяти\logs
Путь к папке с логом можно найти открыв файл fsgame.ltx который находится в корневой директории ЗП, за это отвечает строка: ... $app_data_root$ = true | false| $fs_root$| users\(тут мы указываем что папка пользователя, будет хранится рядом с Fsgame.ltx) ... $logs$ = true| false| $app_data_root$| logs\(а тут мы указываем что в папке пользователя, в подпапке Logs будут храниться наши логи) ... [/cut][cut=Получение более подробной информации о вылете (ХОВАН)] Открываем файл _g.script и ищем такую функцию: function abort(fmt, ...) Там есть заккомментированная строчка "--error_log(reason)", ее и надо расскомментировать, должно получиться вот так: Код function abort(fmt, ...) local reason = string.format(fmt, ...) error_log(reason) end Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией
Первый: Код Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....a.l.k.e.r. - Зов Припяти\gamedata\scripts\_g.script:478: bad argument #2 to 'format' (string expected, got nil) Второй: Код Expression : 0 Function : ErrorLog File : D:\prog_repository\sources\trunk\xrServerEntities\script_engine_script.cpp Line : 49 Description : 'Attempt to read a non-existant string field 'path_walk' in section 'walker@mechanic' [/cut]
Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы, статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
Посты, для которых есть свои категории, из этой темы будут удаляться или перемещаться в соответсвующую тему. Персональных извещений в ЛС о переносе\удалении поста не будет, ищите сами. Учитывайте, что в системах Ucoz тема не обновляется в статистике при переносе поста. Посты, написанные здесь-же после переноса, будут расцениваться как кросспостинг, со всеми вытекающими
[cut noguest=Первый юбилей нашей темы] Здравствуйте господа модостроители, и все так или иначе причастные к этому. Нашей теме исполнился 1 год. От души поздравляю Всех Вас дорогие друзья, творческих успехов. Хочу так же выразить отдельную благодарность denis2000 и ХОВАН. tracker 23.06.11
[/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Дизель | Дата: Вс, 28.09.2014, 01:15 | Сообщение # 646 |
Сталкер
Разработчики
Сообщений: 260
| suhar_, а дело совсем в другом. Ты наверняка забыл прописать оружие в mp\mp_ranks.ltx [rank_0] available_items=
Хотя, ты говоришь, что это уже существующие модели, значит они уже должны быть прописаны. Может ты тестируешь без вышеуказанного файла?
andreyholkin
Сообщение отредактировал Дизель - Вс, 28.09.2014, 02:00 |
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
suhar_ | Дата: Вс, 28.09.2014, 08:28 | Сообщение # 647 |
Бывалый
Пользователи
Сообщений: 106
| Дизель, нет, mp_ranks'е всё, что нужно прописал. Повторю, что вылет происходит после обработки модели в СДК (похоже, что криво обрабатываю, но не могу понять в каком месте). Да и, на сколько знаю, с этим файлом лог вылета будет иметь другой вид. Там что-то связано с НПС, а именно, когда НПС подбирает/хочет подобрать пушку с земли.
|
|
|
Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение: |
|
|
Дизель | Дата: Вс, 28.09.2014, 18:26 | Сообщение # 648 |
Сталкер
Разработчики
Сообщений: 260
| suhar_, на АМК нашел ответ:
Причина: Вы присвоили какому-то объекту визуал, у которого забыли сгенерировать шейпы.
Лечение:
Сгенерировать у указанной модели шейпы, используя Actor Editor (AE) из состава СДК
andreyholkin
Сообщение отредактировал Дизель - Вс, 28.09.2014, 18:32 |
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
suhar_ | Дата: Вс, 28.09.2014, 21:59 | Сообщение # 649 |
Бывалый
Пользователи
Сообщений: 106
| Цитата Дизель ( ) забыли сгенерировать шейпы , как оказалось, да. Кроме этого необходимо ещё указывать форму (коробка, цилиндр, шар). И ещё, может кому-то пригодится на будущее: шейпы можно (и нужно) генерировать только для костей, у которых есть привязка к вертексам. Иначе модель не будет компилироваться.
|
|
|
Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение: |
|
|
Kosha | Дата: Ср, 01.10.2014, 14:56 | Сообщение # 650 |
Отмычка
Пользователи
Сообщений: 32
| Извините конечно за глупый вопрос, но: а что дает открытие исходного кода игры?
|
|
|
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение: |
|
|
Дизель | Дата: Ср, 01.10.2014, 15:22 | Сообщение # 651 |
Сталкер
Разработчики
Сообщений: 260
| Цитата Kosha ( ) Извините конечно за глупый вопрос, но: а что дает открытие исходного кода игры?
А что даёт технология создания ядерного оружия для страны Сомали?
andreyholkin
|
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
Kosha | Дата: Ср, 01.10.2014, 15:40 | Сообщение # 652 |
Отмычка
Пользователи
Сообщений: 32
| Вопрос скорее риторический: в теории многое, на практике ничего
Но смысл ответа я понял.
Сообщение отредактировал Kosha - Ср, 01.10.2014, 15:41 |
|
|
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение: |
|
|
suhar_ | Дата: Ср, 01.10.2014, 18:17 | Сообщение # 653 |
Бывалый
Пользователи
Сообщений: 106
| При компиляции некоторых моделей в Actor Editor возникает непонятная ошибка: [cut]Assertion failed: D3DXVec3Lenght(&(Verts[i].normal)) > 0.00001f && "found zero lenght normal when calculating tangent basis!, if you are not using mesh mender to compute normals, you must still pass in valid normals to be used when calcul858
Abnormal program termination
Assertion failed: strm_locks, file streams.c, line 290
Abnormal program termination[/cut] После чего программа закрывается. В чём дело и как лечить? Как я понимаю, ошибка связана с расчётом геометрии.
Сообщение отредактировал suhar_ - Ср, 01.10.2014, 18:29 |
|
|
Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 01.10.2014, 18:40 | Сообщение # 654 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| suhar_, Нормали нулевой длинны. Правь модель в 3D редакторе или забей.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
suhar_ | Дата: Ср, 01.10.2014, 21:18 | Сообщение # 655 |
Бывалый
Пользователи
Сообщений: 106
| Цитата denis2000 ( ) Правь модель в 3D редакторе Что именно в ней править?
|
|
|
Эти 0 пользователя(ей) поблагодарили suhar_ за это полезное сообщение: |
|
|
Дизель | Дата: Ср, 01.10.2014, 22:05 | Сообщение # 656 |
Сталкер
Разработчики
Сообщений: 260
| Цитата suhar_ ( ) При компиляции некоторых моделей в Actor Editor возникает непонятная ошибка:
Короче. это есть последствия неправильной конвертации модели. Такая ошибка повляется кто из OGF пытается сделать опять OBJECT. Ошибка указывает на то что геометрия модели нарушена, у модели присутствует как минимум 1 инвалидный фейс.
Лечить: в Левел Эдиторе на карту спаунишь свою модель в статике. И после вылета, закидываешь лог на сцену и смотришь где этот битый фейс. Далее модель надо как то умудриться загнать в Макса или Маю и отредачить этот фейс. Далее обратно в Актёра.
Короче выкинь эту модель.
andreyholkin
|
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 01.10.2014, 22:14 | Сообщение # 657 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата suhar_ ( ) Что именно в ней править? Полигоны с нулевой длинной нормали. У таких полигонов вершины или на одной линии или собраны в одну точку.
Цитата Дизель ( ) Короче выкинь эту модель. Поддерживаю!
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Дизель | Дата: Ср, 01.10.2014, 22:51 | Сообщение # 658 |
Сталкер
Разработчики
Сообщений: 260
| suhar_, ты чем конвертируешь модели из OGF?
Я точно знаю, что Милк Шапе с плагинами для Сталкера, нормально делает конвертацию.
Советую её использовать для этих целей. Я ни разу модель не убил.
Кости тоже нормально из OGF переносятся.
andreyholkin
|
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
sergej5500 | Дата: Сб, 11.10.2014, 18:21 | Сообщение # 659 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Всем добрый день. Заинтересовал такой момент.
1. Имеется сквад из нескольких неписей, нейтральных к актору. 2. Один из неписей ранен. Лежит, стонет, зовет на помощь. 3. Игрок дает неписю аптечку. Тот "выздоравливает" и бежит дальше по своим делам. После оказанной помощи непись становится другом ГГ. Зеленеет. Прочие неписи из этого сквада желтые.
Можно ли сделать так, чтобы "зеленел" весь сквад, в который входит "вылеченный" непись? Если можно, то как это сделать?
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 11.10.2014, 19:06 | Сообщение # 660 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| sergej5500, Соответствующие действия выполняются в скрипте dialogs.script в функции function transfer_medkit(first_speaker, second_speaker). В каком НПС скваде выясните функцией function get_object_squad(object) из _g.script, а далее функциями управления репутацией сделайте сквад дружественным к ГГ.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
|