Модостроение. Общие вопросы и ответы
|
|
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 за это полезное сообщение: |
|
|
Ay49Mihas | Дата: Пт, 18.07.2014, 12:07 | Сообщение # 541 |
Полевой исследователь
Ученые сталкеры
Сообщений: 218
| Цитата denis2000 ( ) Где там такое сказано? А, получается, там два анимпоинта в первой логике, чтобы стоять и проигрывать звук/анимацию, потом переход на вторые звук/анимацию, и потом только волкер включается. Теперь понятнее стало, спасибо!
|
|
|
Эти 0 пользователя(ей) поблагодарили Ay49Mihas за это полезное сообщение: |
|
|
a4927860 | Дата: Пт, 18.07.2014, 12:56 | Сообщение # 542 |
Новичок
Пользователи
Сообщений: 81
| Цитата a4927860 ( ) Именение параметров в ltx скриптом. Если конкретнее - мне нужно в зависимости от наличия в рюкзаке предмета определенной категории менять переносимый ГГ ве
На всякий случай уточню - конечно мне нужно не изменение файла ltx а изменение текущих параметров actor отвечающих за переносимый вес, максимальную высоту прыжка, максимальное количество хп и т.д. - если есть какая то статья которую я внезапно пропустил - можете меня смело послать её читать (но желательно чтобы там эти параметры были написаны ^^)
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 18.07.2014, 13:21 | Сообщение # 543 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| a4927860, 1. Прямой возможности повлиять из скриптов на эти параметры нет (даже в нетпакете актора они отсутствуют). 2. Есть только возможность увеличить вес рюкзака путем добавления невидимого предмета с определенной массой (темная материя). 3. Есть исходники движка версии 1.0007 вот там можете реализовать все что хотите (даже свой доходный дом с преферансом и куртизанками ).
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
a4927860 | Дата: Пт, 18.07.2014, 14:03 | Сообщение # 544 |
Новичок
Пользователи
Сообщений: 81
| Цитата denis2000 ( ) 1. Прямой возможности повлиять из скриптов на эти параметры нет (даже в нетпакете актора они отсутствуют). казалось бы что может быть проще - основные параметры ГГшечки, ан нет...
Цитата denis2000 ( ) 2. Есть только возможность увеличить вес рюкзака путем добавления невидимого предмета с определенной массой (темная материя). А отрицательной эта масса может быть?
Цитата denis2000 ( ) 3. Есть исходники движка версии 1.0007 вот там можете реализовать все что хотите (даже свой доходный дом с преферансом и куртизанками ). Спасибо, но я как то пасс... Если нет прямой дороги значит нужен костыль... Хотя я если честно думал что уж эта то схема должна сканать... Где можно посмотреть ВСЕ параметры actor которые можно менять скриптами?Добавлено (18.07.2014, 14:03) --------------------------------------------- Чтото подумалось - а можно сделать артефакт активным не вставляя его в слот а храня в рюкзаке (вставлять в 6й слот невидимый артефакт например?)
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 18.07.2014, 14:43 | Сообщение # 545 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата a4927860 ( ) казалось бы что может быть проще Это только казалось. У Дмитрия Ясенева было другое мнение. Цитата a4927860 ( ) А отрицательной эта масса может быть? Нет. Цитата a4927860 ( ) Где можно посмотреть ВСЕ параметры actor которые можно менять скриптами? lua_help.script Код property bleeding; property health; property power; property psy_health; property radiation;
Цитата a4927860 ( ) а можно сделать артефакт активным не вставляя его в слот а храня в рюкзаке Нет. Цитата denis2000 ( ) вставлять в 6й слот невидимый артефакт например? Слот 6 - болт, Слот 11 - артефакт в руках ГГ, Слоты в костюмах совершенно отдельная песня! Нет прямого пути вставить в слот какой либо предмет.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
a4927860 | Дата: Пт, 18.07.2014, 15:38 | Сообщение # 546 |
Новичок
Пользователи
Сообщений: 81
| какой же кромешный мрак однако... ок пойдем другим путем - сумка с ограниченным максимальным весом - можно ли создать такую сумку? тоесть сумка имеет свой собственный вес (5кг предположим) но он не меняется - однако в нее влазит не больше опредленного веса (25 кг предположим) ну и как это можно заставить работать?..Добавлено (18.07.2014, 15:38) --------------------------------------------- На сколько я понимаю нужно будет: 1) создать контейнер 2) создать предмет его имитирующий (хоть щас) 3) создать скрипт при активации предмета перетаскивающий контейнер герою под ноги
проблемы которые я вижу: 1) переход по локациям (контейнер придеться таскать за актором - а как собственно?) 2) ограничение по весу (только не говорите что нет параметра отвечающего за максимальный вес вместимости у контейнера) 3) ктоб за меня все это написал?..
Сообщение отредактировал a4927860 - Пт, 18.07.2014, 15:06 |
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 18.07.2014, 18:06 | Сообщение # 547 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата a4927860 ( ) переход по локациям Телепортировать контейнер возможно будет только в пределах локации, но вероятно будет достаточно иметь один контейнер для хранения на любой локации, плюс спавнить временный контейнер под ноги ГГ и перетаскивать предметы между ними. Цитата a4927860 ( ) ограничение по весу И не буду говорить раз сами догадались. Цитата a4927860 ( ) ктоб за меня все это написал? Делайте заказ в соответствующей теме, кто захочет тот поможет.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
a4927860 | Дата: Пн, 21.07.2014, 15:33 | Сообщение # 548 |
Новичок
Пользователи
Сообщений: 81
| Доброе утро всем... Телохранители мрут редиски... Как они мрут - они не успевают перейти в состаяние wounded, если медленно из пма стрелять им в ноги то можно поймать момент когда они падают. Иногда даже в бою такое бывает (но очень редко). В основном же - они вылетают за угол, получают очередь, и склеивают ласты. Ну и собственно вопрос - как сделать так чтобы они ВСЕГДА падали при получении повреждений больше 50% хп а не умирали. Ну и собственно как сделать чтобы этого хп у них было х2 для симуляции.
Добавлено (21.07.2014, 15:33) --------------------------------------------- Не ужто вопрос сложный =) ?
Не стоит торопиться - люди освободятся в реале и Вам ответят. Лохматый.
Сообщение отредактировал a4927860 - Пн, 21.07.2014, 09:20 |
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
FantomICW | Дата: Пн, 21.07.2014, 23:49 | Сообщение # 549 |
Лидер «Свободы»
Свобода
Сообщений: 4438
| Цитата a4927860 ( ) хп у них было х2 Поясни, пожалуйста, что имеешь ввиду. 1. Телохранитель может перейти в wounded два раза? 2. У телохранителя в два раза больше иммунитета, чем у остальных НПС? (это очень относительно, кстати)
Цитата a4927860 ( ) падали при получении повреждений больше 50% Код ... on_info = {=health_le(0.5)} схема@wounded
[схема@wounded] ... wounded = wounded
[wounded] ...
|
|
|
Эти 0 пользователя(ей) поблагодарили FantomICW за это полезное сообщение: |
|
|
a4927860 | Дата: Вт, 22.07.2014, 09:19 | Сообщение # 550 |
Новичок
Пользователи
Сообщений: 81
| FantomICW, На самом деле все что я хочу - чтобы он не умирал когда его текущее здоровье меньше наносимого ему урона, а получал состояние wounded и валялся дожидаясь помощи гг. Сейчас он либо умирает с первого выстрела - либо бегает неуязвимый. В старой моей схеме он падал - и был бессмертным но только если очень повезет.Добавлено (22.07.2014, 09:19) --------------------------------------------- Доброе утро. Вопрос - если в bind stalker добавить скрипт с таким примерно содержанием npc получает hit имя npc содержит bodyguard then if hit > текущего хп then hp = hit+20 (если хит все равно будет нанесен) npc - бессмертен.. получиться ли или нпс умрет раньше обработки скрипта?
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 22.07.2014, 11:29 | Сообщение # 551 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| a4927860, bind_stalker.script не работает на НПС, на них работает xr_motivator.script. Ничего не получиться, поскольку на момент вызова колбека на хит, этот хит уже получен, а значит НПС будет уже мертв.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
a4927860 | Дата: Вт, 22.07.2014, 18:59 | Сообщение # 552 |
Новичок
Пользователи
Сообщений: 81
| denis2000, и как быть? не ужели нет нормального варианта для выполнения этой задачи? Добавлено (22.07.2014, 18:59) --------------------------------------------- Кстати да - если нпс неуязвим то хит по нему отловить же все равно можно? Или он всегда будет = 0 ?
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 22.07.2014, 20:00 | Сообщение # 553 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата a4927860 ( ) Кстати да - если нпс неуязвим то хит по нему отловить же все равно можно? Или он всегда будет = 0 ? Самое прикольное колбеки на хиты приходят, сами хиты то нулевые, но они приходят даже тогда когда например ГГ стреляет просто рядом с этим НПС!
Цитата a4927860 ( ) не ужели нет нормального варианта для выполнения этой задачи? Таковые мне не известны. Свой вариант я вам предложил, но он имеет недостатки о которых я кстати сразу и сказал: пока идет переключение на схему раненого, НПС может получить хит (в том числе смертельный) и привет, к тому-же есть далеко не маленькая вероятность, что НПС может получить хит на всю катушку с одной очереди или даже выстрела, также с летальным исходом. Прописывая НПС свою индивидуальную секцию wounded можно поднять порог перехода в состояние раненого - это снижает вероятность выноса тела, но при этом НПС будет падать и вопить об аптечке от любой царапины. Делая НПС изначально бессмертным и вручную управляя уровнем здоровья при хитах, попадаем с ситуацию что НПС хитов не получает (ГГ просто стрелял рядом), а здоровье падает, к тому-же НПС в состоянии бессмертия не хочет переходить в схему раненого (возможно исправимо, а может и нет). Так, что я готов выслушать ваши предложения и обсудить их реальность.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
a4927860 | Дата: Вт, 22.07.2014, 20:13 | Сообщение # 554 |
Новичок
Пользователи
Сообщений: 81
| denis2000, предложение сделать бессмертным, отлавливать хит и ставить хп = в логике при хп = делать ваунд или в скрипте делать проигрывание анимации раненый при хп > ваунд анимацию соответственно убирать
Как то так
|
|
|
Эти 0 пользователя(ей) поблагодарили a4927860 за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 22.07.2014, 21:21 | Сообщение # 555 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Цитата a4927860 ( ) сделать бессмертным, отлавливать хит и ставить хп = в логике при хп = делать ваунд Уже говорил по этому поводу: попадаем с ситуацию что НПС хитов не получает (ГГ просто стрелял рядом), а здоровье падает, к тому-же НПС в состоянии бессмертия не хочет переходить в схему раненого.
Цитата a4927860 ( ) в скрипте делать проигрывание анимации раненый при хп > ваунд анимацию соответственно убирать Опять таки в случае бессмертия приходят ложные колбеки на хиты! В НПС никто не стреляет, а он упадет с ранением? Как оценивать валидность колбека и по какому критерию проигрывать анимации раненного НПС.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
|