Модостроение. Общие вопросы и ответы
|
|
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 | Дата: Чт, 15.01.2015, 17:47 | Сообщение # 1021 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| asd123, В файле heli_combat.script функция function heli_combat:update_forgetting()
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
roma_uf | Дата: Пт, 16.01.2015, 19:59 | Сообщение # 1022 |
Гражданский
Пользователи
Сообщений: 17
| Добрый вечер. можно ли сделать так, чтобы группировки воспринимали ГГ, который одет в их одежду нентралом или другом? Заранее благодарен.
|
|
|
Эти 0 пользователя(ей) поблагодарили roma_uf за это полезное сообщение: |
|
|
Дизель | Дата: Пт, 16.01.2015, 20:30 | Сообщение # 1023 |
Сталкер
Разработчики
Сообщений: 260
| Цитата roma_uf ( ) Добрый вечер. можно ли сделать так, чтобы группировки воспринимали ГГ, который одет в их одежду нентралом или другом? Заранее благодарен. Можно было бы, если в рюкзак помещался бы один какой то броник, а так сложно однако.
Тут Денис2000 наверное шарит, надо скрипты править под это однако. Вообще надо найти функцию, которая видит одетый броник и в ней поковыряться. Меня тоже этот вопрос раньше интересовал, но я забыл про эту идею, а сейчас просто некогда этим заниматься.
andreyholkin
|
|
|
Эти 0 пользователя(ей) поблагодарили Дизель за это полезное сообщение: |
|
|
alex_xp_77 | Дата: Пт, 16.01.2015, 21:14 | Сообщение # 1024 |
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
| Нуу..... про то что-какая одежда, такой (нации) будет гг, я извеняюсь за пафос, но в игре конечно есть пда, по которому видна история сталкеров, я не критик, но это не тот вопрос на который нужен ответ!! Хотя по существу, я бы прописал (если бы можно было) логику одежде, или бронику, очень грамотную логику, тогда думаю можно??
|
|
|
Эти 0 пользователя(ей) поблагодарили alex_xp_77 за это полезное сообщение: |
|
|
sergej5500 | Дата: Пт, 16.01.2015, 22:32 | Сообщение # 1025 |
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
| Цитата roma_uf ( ) Добрый вечер. можно ли сделать так, чтобы группировки воспринимали ГГ, который одет в их одежду нентралом или другом?
Это уже сделано в учебнике Хована. Ссылка в шапке темы.
[cut=Код для костюмов]Если бы ГГ был прописан к действующим кланам, то как бы двигался сюжет? Пусть бы ГГ вступил в клан обычных бандитов, да любой сталкер почёл за удовольствие его грохнуть. Поэтому Николай ввёл группировку actor_bandits, к которой сталкеры нейтральны. А у нас идея нагло и цинично менять костюмы и имитировать членство в группировке.
Значит нам надо определить, что надето на ГГ.
Определяемся. Голый ГГ - сталкер, Если надет novice_outfit или stalker_outfit - тоже.
Если надет svoboda_light_outfit или svoboda_heavy_outfit - Свободовец.
Если надет dolg_outfit или dolg_heavy_outfit - Долговец
и так далее.
После того как мы определились какой броник соответствует какому клану можно писать свои функции. В папке скриптов создаём пустой файл perehod.script В нем создаём функцию analisis_outfit.
function analisis_outfit()
--Теперь надо узнать, что надето на ГГ
local outfit_now = db.actor:item_in_slot(7)
--Чего там на нём? Выясняем:
if (outfit_now ~= nil) then --если не голый
--если костюм новичка или комбез сталкера
if outfit_now:section() == "novice_outfit" or outfit_now:section() == "stalker_outfit" then
--изменяем клан для ГГ
actor_stalker() -- см ниже
elseif
outfit_now:section() == "svoboda_light_outfit" or outfit_now:section() == "svoboda_heavy_outfit" then actor_svoboda() -- см ниже
elseif
outfit_now:section() == "dolg_outfit" or outfit_now:section() == "dolg_heavy_outfit" then
actor_dolg() -- см ниже
--и так перебираем все костюмы кланов, вызывая функцию присвоения членства ГГ в соответствующем клане.
--в конце идёт "в противном случае" - если не один костюм из перебираемых не соответствует надетому. Пусть в этом случае clan - сталкер.
else
actor_stalker() -- см ниже
end
end
end
Дальше пошли функции принятия ГГ в кланы:
--Приём в сталкеры
function actor_stalker()
db.actor:set_character_community("stalker",0,0)
sgm_functions.write_variable("stat_community","stalker")
end
--Приём в Свободу
function actor_svoboda()
db.actor:set_character_community("svoboda",0,0)
sgm_functions.write_variable("stat_community","svoboda")
end
--Приём в Долг
function actor_dolg()
db.actor:set_character_community("dolg",0,0)
sgm_functions.write_variable("stat_community","dolg")
end
--И далее, сколько кланов анализируется. Откуда берётся перечень броников? Из \configs\misc\outfit.ltx. А названия группировок? Из \configs\creatures\game_relations.ltx.
Итак. Мы сделали функцию анализа броника и несколько функций перевода ГГ в клан, соответствующий бронику. А как их запускать? Все функции "быстрого реагирования" запускаются из различных апдейтов. Апдейты несколько десятков раз в минуту обновляют ситуацию в игре.
Мы прицепимся к биндеру актёра. Открываем scripts\bind_stalker.script
Ищем функцию function actor_binder:update(delta) и в самый конец функции перед последним end
вводим вызов соей функции анализа. Здесь надо учесть, что вызов функции из другого файла предваряется именем файла, где содержится функция. Разделяется имя файла и имя функции точкой. Значит наш вызов будет выглядеть в теле апдейта так:
-- загрузка мода(постоянное обновление)
if mod_update() then
sgm_loader.sigerous_mod_main()
end
perehod. analisis_outfit()
end
Всё, тестируем, что получилось
Маленькие хитрости:
Если мы хотим, чтобы у сталкеров проверялся ешё и экзоскелет, то мы должны изменить строчку анализа:
if outfit_now:section() == "novice_outfit" or outfit_now:section() == "stalker_outfit" or outfit_now:section() == "exo_outfit" then
Однако есть ведь и проапгрейженные броники, и чего , все их вставлять в анализ?
Есть чудесная функция find_in_string(строка,фрагмент) она позволяет найти в строке фрагмент, если он есть и возвращает true, если нашла фрагмент и false, если нет.
Попробуем её использовать в анализе.
Смотрим на костюмы Долга. И в тот и в другой входит фрагмент "dolg" Значит, если в названии костюма мы найдём строчку "dolg" мы однозначно попадём на долговские костюмы. Значит строчку
outfit_now:section() == "dolg_outfit" or outfit_now:section() == "dolg_heavy_outfit" then
можно заменить так:
find_in_string(outfit_now:section(), "dolg") then [/cut]
|
|
|
Эти 0 пользователя(ей) поблагодарили sergej5500 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 16.01.2015, 22:34 | Сообщение # 1026 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| roma_uf, Есть такой мод "По одёжке встречают". Он для ТЧ, но поскольку он в основном скриптовый, то его можно переделать и под другие версии игры.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
roma_uf | Дата: Сб, 17.01.2015, 14:58 | Сообщение # 1027 |
Гражданский
Пользователи
Сообщений: 17
| Спасибо всем, кто отозвался на мой предыдущий вопрос. Скачал пак локаций на ЗП, но локации есть, а на карте не отображаются. Что надо править и что нужно сделать, чтобы новые локации отображались на карте? Заранее благодарен.
|
|
|
Эти 0 пользователя(ей) поблагодарили roma_uf за это полезное сообщение: |
|
|
denis2000 | Дата: Сб, 17.01.2015, 15:10 | Сообщение # 1028 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| roma_uf, Почитайте здесь. Для ЗП тоже подходит.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
a4927860 | Дата: Вс, 18.01.2015, 18:08 | Сообщение # 1029 |
Новичок
Пользователи
Сообщений: 81
| Добрый день.
Все что мог сделать сделал. Осталось убрать баги - а то как то стыдно в таком виде выкладывать. Вопросы: 1) движение мобов в оригинальном сгм 2.2 на локациях юпитер на заводе и в темной долине в лаборатории, зомби толпой прут на выход не зависимо от того кто куда их ставил и какие прописывал локации... Идут толпой, в случае с лесницами - очередью, и снимаются в голову просто подряд. я всю лабораторию (кроме излома) зачищаю с 2х обойм что крайне грустно Можно ли это как то исправить? 2) вылеты безлоговые - конфиг исправлен как в шапке - вместо указания чего либо лог в последней записи - обычно стоит сохранение. 3) Не хочет ли кто присоединится и сделать все что задумано? - я много чего не освоил за этот год и не смотря на то что на мой взгляд мод получается очень неплохим, он безусловно никак не может конкурировать с сгм 3.0 =) (рецепты из моего мода я уже глубокоуважаемому GeJorge отправил так что мб они в сгм 3 появятся)
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
alex_xp_77 | Дата: Вс, 18.01.2015, 21:58 | Сообщение # 1030 |
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
| Цитата a4927860 ( ) Не хочет ли кто присоединится и сделать все что задумано?
a4927860 Я к сожалению занят своим проектом, делал все с нуля, убил больше 2 лет на освоение sdk04, создал пак локаций, но не учел полигоны, перешел по просьбе Андрея Непряхина, на sdk 07, теперь занят созданием 2 монстров для своей игры, "Хамелион" создан, (текстуру делает Андрей) сейчас доделываю "Кикимору болотную) http://SSMaker.ru/e0056bad/ , скоро выложу, хранить нет смысла. НОВИЧКАМ пишу обращение , Не видел его нигде, Создав новую локацию, желательно ее раздробить на 3-5 частей (это работа по три дс максу) , дабы капилилась на (хитче), иначе споткнетесь как и я !!!Подробнее , в 3 д редакторе, отделяете по полигонам карту на 3-5 частей, (зависит насколько большая карта) далее по частям ее экспортируете в LE, в фотошопе делаете маску и все что нужно на весь террейн, в le накладываете нужные шейдеры, и стыкуете все карты воедино!! Если нужны подробности пишите в личку!! Если не по теме Прошу прощения!!
|
|
|
Эти 0 пользователя(ей) поблагодарили alex_xp_77 за это полезное сообщение: |
|
|
a4927860 | Дата: Ср, 21.01.2015, 12:55 | Сообщение # 1031 |
Новичок
Пользователи
Сообщений: 81
| День добрый!
ни как не могу разобраться почему всетаки мобы идут к выходам на юпитере и в лаборатории.. менял настройки как мог, зоны - все одно и то же. Контролеры при этом ходят не выходя из зоны а зомбаки (стандартные симуляторские) уходят гулять.
Ну и вопрос на засыпку - как сделать чтобы гг сам с собой разговаривал? Диалог с внутренним голосом так сказать. Можно ли назначать второй стороной диалога самого гг? И если да - то каким скриптом можно вызвать этот диалог?
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
Sergeant_Fox | Дата: Ср, 21.01.2015, 18:03 | Сообщение # 1032 |
Разработчик вооружения
Военные сталкеры
Сообщений: 10668
| добрый день) есть ли тут плагин на 3д макс для чтения формата сталкер? версия макса 2013. или конвертер в .obj .cad .3ds?
|
|
|
Эти 0 пользователя(ей) поблагодарили Sergeant_Fox за это полезное сообщение: |
|
|
roma_uf | Дата: Ср, 21.01.2015, 18:05 | Сообщение # 1033 |
Гражданский
Пользователи
Сообщений: 17
| Господа, нужна снова ваша помощь. 1. При походе в путепровод ГГ нуждается в костюме с замкнутой системой защиты. По логике, в игре для выполнения этого квеста нужна СЕВА. Как и куда надо прописать ещё парочку костюмов (например оригинальный экзоскелет), чтобы задание по поиску костюма засчитывалось? 2. В SGM присутствует один детектор, называется "Омега". Хочу добавить его в свою мини модификацию, но не знаю какие файлы нужно копировать.
|
|
|
Эти 0 пользователя(ей) поблагодарили roma_uf за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 21.01.2015, 18:54 | Сообщение # 1034 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата a4927860 ( ) ни как не могу разобраться почему всетаки мобы идут к выходам на юпитере и в лаборатории.. Вам погадать или настройки все же приведете? Или лучше сделайте нормальную логику для мобов на смарте. Цитата a4927860 ( ) Ну и вопрос на засыпку - как сделать чтобы гг сам с собой разговаривал? Можно начитать текст в микрофон и проиграть звуковой файл... Писать такое текстом? Будет выглядеть крайне странно.
roma_uf, 1. Файл xr_conditions.script функция jup_b218_actor_outfit_precond по аналогии. 2. Начиная с секции [detector_omega] в конфиге sgm_devices.ltx переносите все необходимое (модель, текстуры, звуки)
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
FromplanetEarth | Дата: Ср, 21.01.2015, 18:57 | Сообщение # 1035 |
Удаленные
| Я хочу заменить стандартную модель наемника в оригинале ЗП на модель с sgm 2.2 . Есть 3д модель (stalker_merc_9.ogf) и текстура на которую ссылается сама модель (act_stalker_merc_9.dds). Достаточно ли этого для замены персонажа? Или нужны еще дополнительные файлы?
|
|
|
Эти 0 пользователя(ей) поблагодарили FromplanetEarth за это полезное сообщение: |
|
|
|