Модостроение. Общие вопросы и ответы
|
|
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 за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 09.07.2014, 17:18 | Сообщение # 526 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| mistofat, Во первых не по моему совету, а по совету FantomICW. Во вторых эти данные сильно зависят от версии движка или билда о чем я вам и сказал. В третьих в конфигах много параметров оставшихся с очень ранних версий движка, которые не смотря на то что читаются последними версиями движка никак в них не задействованы. Поэтому я и написал, что исследования конфигов могут подарить множество открытий чудных и увести в глубины истории создания движка.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
alex_xp_77 | Дата: Сб, 12.07.2014, 16:21 | Сообщение # 527 |
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
| Доброго дня всем !! У меня вопрос очень наверняка простой, по 3 ds Max*y, т.к. накладываю в лаборатории х-24 текстуры, я не профи и обьясню по простому, там есть шарики с текстурами в материал эдитор, так вот наибольшее их количество это 6*4, подскажите, как мне быть, если у меня закончились свободные ячейки, а больше 24 сделать эти шарики не получается, но мне нужны свободные , так как не хватает их что бы наложить нужную текстуру!! Надеюсь правильно поставил свой вопрос, помогите пожалуста кто понимает о чем речь!!
На будущее, вот нашел , может кому то понадобится!!
Когда у тебя заканчиваются шарики, а все материалы с них применены к соответствующим объектам в сцене, ты смело можешь сделать обнуление слотов материал эдитора. Для этого следует зайти в меню Utilities редактора материалов и выбрать пункт Reset Material Editor Slots. Тогда все шарики снова станут чистыми, как в пустой сцене и ты сможешь продолжить создание новых материалов. В случае если тебе понадобится снова вернуться к какому-то материалу, созданному до обнуления, то ты просто воспользуйся инструментом Pick Material from Object (пиктограммка в виде пипетки). Выбери его и пикни нужный тебе материал с соответствующего объекта в сцене
Сообщение отредактировал alex_xp_77 - Вс, 13.07.2014, 13:56 |
|
|
Эти 0 пользователя(ей) поблагодарили alex_xp_77 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Сб, 12.07.2014, 17:19 | Сообщение # 528 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Зравствуйте! Не могу раскомпилировать и скомпилировать all.spawn к SGM 2.2 сборка от Albora, используя средства из gamedata/spawns/. При распаковке ругается на секции оружия (wpn_glock, иногда на irp-p), при запаковке --- на повторяющиеся секции в way_military.ltx. Может уже боян, но не подскажете, в какую сторону копать? Спасибо!
win8 (WinXP sp3 то же самое), ActivePerl 5.16.3 x64/x86, ACDC 1.24 Сборка Albor'а, фикс, текстурный пак.
PS: линуксовый perl 5.10 ваще ерунду выдаёт, не относящуюся к игре.
|
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
sergej5500 | Дата: Сб, 12.07.2014, 18:30 | Сообщение # 529 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Ay49Mihas, Для нормальной распаковки надо добавить недостающие стволы в файл sections. Там много строк типа:
'wpn_ak74' = cse_alife_item_weapon_magazined_w_gl.
Допишите аналогичным способом недостающие стволы и прочие предметы. Рано или поздно спавн разберется.
Если разобранный спавн при сборке будет ругаться на файл way_military, то возьмите этот файл из папки Compiler ЗП. Его можно найти в папке gamedata\spawns в чистом СГМ 2.2.
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Сб, 12.07.2014, 20:00 | Сообщение # 530 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Вот спасибо! Почему-то нигде такого не нагуглил. После добавления пары десятков классов, спавн разобрался, и после этого успешно собрался
|
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
a4927860 | Дата: Ср, 16.07.2014, 10:35 | Сообщение # 531 |
Новичок
Пользователи
Сообщений: 81
| Затянуло меня чтото... Но скоро уже весь функционал дотяну. можно будет за квесты браться.
Вопрос - в SGM есть активаторы смены ножей и биноклей какой скрипт отвечает за их смену? Если можно - то конкретно с куском (то есть какой кусок) Я пока нашел только вот этот Код function relocate_actor_inventory_to_box(actor, npc, p) local function transfer_object_item(item) if item:section() ~= "wpn_binoc" and item:section() ~= "wpn_knife" and item:section() ~= "device_torch" then db.actor:transfer_item(item, inv_box_1) end end inv_box_1 = get_story_object (p[1]) actor:inventory_for_each(transfer_object_item) end
в xr_effect.script - но найти где предметы заменяются я не смог... Хочу добавить нормальное оружие для выживания, саперную лопату, мачете, гарпун в конце концов...Добавлено (16.07.2014, 10:35) --------------------------------------------- ПС: как сделать не исчезающие при попадании снаряды? (стрелы) нужно ли писать скрипт который спаунит снаярд в точке попадания (тогда как определить что снаряд долетел (как спаунить я уже знаю)) или есть какой то параметр в конфигах?
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 16.07.2014, 11:11 | Сообщение # 532 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата a4927860 ( ) в SGM есть активаторы смены ножей и биноклей какой скрипт отвечает за их смену? Файл sgm_dialogs.script функции типа install_bino_***.
Цитата a4927860 ( ) нужно ли писать скрипт который спаунит снаярд в точке попадания А по другому никак, поскольку пуль как физических объектов в Сталкере нет.
Цитата a4927860 ( ) тогда как определить что снаряд долетел Никак не определить, кроме того что некий живой объект получил хит от некоего живого объекта. Проведя по этомук факту расследование установить, что хит нанес ГГ и в момент нанесения хита в руках ГГ было некое оружие стреляющее стрелами.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
a4927860 | Дата: Чт, 17.07.2014, 00:18 | Сообщение # 533 |
Новичок
Пользователи
Сообщений: 81
| denis2000, Спасибо - а где то же но относительно ножей?
Круто, тоесть придется задействовать xr_motivator, bind_monster и собственно сам файл сравнения... Ок попытка не пытка..
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
denis2000 | Дата: Чт, 17.07.2014, 08:16 | Сообщение # 534 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата a4927860 ( ) а где то же но относительно ножей? Файл sgm_callbacks.script в строках активируються ножи и бинокли если они получены в качестве бустеров: [cut]Код if sgm_functions.ReadActivateKnife(item_name) then if sgm_functions.ReadActivateSection(db.actor:item_in_slot(1):section()) then give_object_to_actor(sgm_functions.ReadActivateSection(db.actor:item_in_slot(1):section())) remove_item_from_slot(db.actor,1) give_object_to_actor(sgm_functions.ReadActivateKnife(item_name)) end elseif sgm_functions.ReadActivateBinocular(item_name) then if sgm_functions.ReadActivateSection(db.actor:item_in_slot(5):section()) then give_object_to_actor(sgm_functions.ReadActivateSection(db.actor:item_in_slot(5):section())) remove_item_from_slot(db.actor,5) give_object_to_actor(sgm_functions.ReadActivateBinocular(item_name)) end end [/cut]
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Пт, 18.07.2014, 06:55 | Сообщение # 535 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Здравствуйте! Не могли бы просвятить, или ткнуть носом (поиск завёл в тупик), насчёт секций в логике неписей animpoint. Статью на Inside Wiki читал, яснее не стало. В случае с неписями для перемещений по сценарию почему исползуются animpoint'ы, а не walker'ы с той же траекторией? Спасибо!
|
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 18.07.2014, 09:05 | Сообщение # 536 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Ay49Mihas, параметры секции animpoint для ЗП. cover_name - имя анимпоинта (укрытия/бойницы), специальная точка на которую станет НПС (обязана находиться на АИ-сетке). use_camp - использует или нет НПС "правила поведения в лагере" (анекдоты, игра на инструментах и т.п.). По умолчанию - true. reach_distance - растояние от анимпоинта на котором НПС считается достигшим его. По умолчанию - 0.75. reach_movement - тип перемещения НПС который он использует при достижении анимпоинта. По умолчанию - walk. avail_animations - Перечень доступных анимаций в анимпоинте.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Пт, 18.07.2014, 10:05 | Сообщение # 537 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Цитата denis2000 ( ) параметры секции animpoint для ЗП. получается, эта статья не про ЗП?
Эта статья про ЗП. denis2000
Сообщение отредактировал Ay49Mihas - Пт, 18.07.2014, 10:05 |
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
a4927860 | Дата: Пт, 18.07.2014, 10:20 | Сообщение # 538 |
Новичок
Пользователи
Сообщений: 81
| Спасибо за предыдущие советы (добавил оружие скрытого ношения)
Следующий мой вопрос к вам: Именение параметров в ltx скриптом. Если конкретнее - мне нужно в зависимости от наличия в рюкзаке предмета определенной категории менять переносимый ГГ вес. Хочу сделать первоначальный переносимый вес 15 кг и дать ему набор не стакающихся рюкзаков, вешь мешок +15, разгруз +5, рюкзак +20 ну и т.д. проверка на наличие рюкзака и сам рюкзак я сделаю не проблема - вопрос как менять вес у гг еще интересует параметр высоты прыжка (артефакт какой забабахать или улучшение к ехо) (сам параметр я знаю - вопрос как его скриптом менять)
Заранее спасибо!
Сообщение отредактировал a4927860 - Пт, 18.07.2014, 12:04 |
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Пт, 18.07.2014, 10:55 | Сообщение # 539 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Цитата Ay49Mihas ( ) Эта статья про ЗП. По-прежнему ничего не понимаю. Там сказано, что анимпоинты используются для того, чтобы непись шёл по нужному вейпоинту (с чем вполне справляется walker с незацикленным path_walk). Грубо говоря, по моему разумению, в данном примере animpoint от такого же walker'а отличается тоько лишь наличием cover_name (некоего рестриктора), с которым что-то связано (я так понял, не логика). Почему там использованы именно animpoint'ы? Спасибо!
|
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 18.07.2014, 11:53 | Сообщение # 540 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата Ay49Mihas ( ) Там сказано, что анимпоинты используются для того, чтобы непись шёл по нужному вейпоинту Где там такое сказано? Цитата Ay49Mihas ( ) Почему там использованы именно animpoint'ы? Потому, что анимпоинты позволяют просто и быстро организовать место где НПС будет отыгрывать определенный комплекс анимаций и звуков. Анимпоинты бывают боевые и небоевые. В боевых он прячеться выставляя оружие, в небоевых сидит или стоит совершая дополнительные случайные движения, в том числе рассказывает анекдоты/истории, реагирует на истории других НПС, ест, пьет играег на гитаре или гармошке.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
|