Модостроение. Спавн и логика
|
|
denis2000 | Дата: Пн, 10.10.2011, 21:20 | Сообщение # 1 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Спавн и логика Создание объектов на локации и логика поведения этих объектов Если у вас появились вопросы по созданию динамических объектов в игре (НПС, монстры, аномалии, и т.п.) и настройке их "поведения". Задавайте их в этой теме - умные головы, модосторители и просто разбирающиеся в программировании люди вам ответят.
Много интересного материала здесь (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)", ее и надо расскомментировать, должно получиться вот так: Code function abort(fmt, ...) local reason = string.format(fmt, ...) error_log(reason) end Вот для примера два одинаковых вылета, первый с функцией по умолчанию, второй - с поправленной функцией
Первый: Code 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) Второй: Code 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 по ссылке из шапки и соседнюю тему "Курс молодого бойца", возможно Ваш вопрос уже рассматривался.
Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки. Помните чем подробнее вопрос, тем точнее ответ.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
denis2000 | Дата: Пт, 25.11.2011, 18:02 | Сообщение # 46 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Pechenegin, Во первых в sgm_container.script в таблице outfit_container_list нужно писать часть строки visual, а не id НПС. На пример: Code {"alfa_commander","reduce_killer_exo_outfit",0.15} Во вторых то, что ты прописал в дескрипшене будет у НПС только до момента смерти! После смерти часть имущества НПС будет удалена, а вместо нее добавлены предметы согласно конфигам death_items_*.ltx
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
CRO$$ | Дата: Вт, 29.11.2011, 20:09 | Сообщение # 47 |
Зомби
Пользователи
Сообщений: 3391
| Здравствуйте, подскажите, как сделать так, чтоб база бандитов на лесничестве появлялась только после выполнения квеста "Сделка"?
|
|
|
Эти 0 пользователя(ей) поблагодарили CRO$$ за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 29.11.2011, 21:04 | Сообщение # 48 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| CRO$$, Сборник модостроения ЗП v10.10.11 (автор: XOBAH)/Зов припяти/SGM/Пункт 35
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
CRO$$ | Дата: Ср, 30.11.2011, 16:43 | Сообщение # 49 |
Зомби
Пользователи
Сообщений: 3391
| denis2000, благодарю , только вот такой вопрос, что будет с Мечом? И ещё вопрос, быть может не совсем в тему, как сделать так что Мститель появлялся на Скадовске только после смерти Моргана?
|
|
|
Эти 0 пользователя(ей) поблагодарили CRO$$ за это полезное сообщение: |
|
|
denis2000 | Дата: Ср, 30.11.2011, 20:54 | Сообщение # 50 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Quote (CRO$$) что будет с Мечом? А его разве трогали? Quote (CRO$$) как сделать так что Мститель появлялся на Скадовске только после смерти Моргана? Это НПС zat_stalker_avenger в том же скипте - тоже можно вставить условие для его спавна.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
STAS-23 | Дата: Пт, 02.12.2011, 23:32 | Сообщение # 51 |
Гражданский
Пользователи
Сообщений: 16
| Подскажите, играю в П.Д.А. Мод, там некоторые персонажи квестовые свободно гуляют по зоне. Вдруг я случайно заметил, что Юра, которому нужно принести артефакт уже мертв, выбросом накрыло. При этом квест не проваливается, можно ли как-нибудь переписать возврат компаса не юре, а сычу скажем, за ту же награду, в каком файле покопаться надо? И ещё, а можно ли прописать некоторым персонажам свойства нпс (т.е. бессмертие), так как альфа например в Sigerous Mod не умирала при использовании мною анабиотика под выбросом. Так же можно ли переписать взятие квеста на наезд на сталкеров с Султана на вольного сталкера Кастета (он непосредственно участвует в наезде на сталкеров), а то в моде у бандитов есть добро на отстрел гг, я убил группу вражественно настроенных бандитов, и султан стал врагом, а бандиты участвующие в наезде нет. Можно вроде как-то сбросить инфопоршень об отношении к тебе группировки, по крайней мере рекомендовали по отношению к наемникам сделать кому-то.
Сейвы для sgm 2.2 до прибытия на скадовск http://depositfiles.com/files/4wb6gyis1
|
|
|
Эти 0 пользователя(ей) поблагодарили STAS-23 за это полезное сообщение: |
|
|
denis2000 | Дата: Вс, 04.12.2011, 00:07 | Сообщение # 52 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Quote (STAS-23) При этом квест не проваливается, можно ли как-нибудь переписать возврат компаса не юре, а сычу скажем, за ту же награду, в каком файле покопаться надо? Пропиши диалог закрытия квеста Сычу. И... придется начинать новую игру для того чтобы диалог "принялся" НПС. Поэтому или забей или закрывай задание выдачей инфопорций через скрипт. Quote (STAS-23) а можно ли прописать некоторым персонажам свойства нпс (т.е. бессмертие), так как альфа например в Sigerous Mod не умирала при использовании мною анабиотика под выбросом. Если имеешь ввиду имунитет перед выбросом у НПС, то такого нет. Нужно чтобы НПС находился в укрытии или выброс скриптово его убъет. Поэтому квестовые НПС обычно сидят невылазно в укрытиях. Quote (STAS-23) Так же можно ли переписать взятие квеста на наезд на сталкеров с Султана на вольного сталкера Кастета Будь проще переиграй с раннего сейва или верни нейтральность бандитам (Читай Сборник модостроения ЗП - Изменяем отношения группировок через скрипт)
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
CRO$$ | Дата: Вт, 13.12.2011, 15:48 | Сообщение # 53 |
Зомби
Пользователи
Сообщений: 3391
| denis2000, а в sgm_world.script Меча зовут zat_stalker_member?
Добавлено (13.12.2011, 15:48) --------------------------------------------- Сделал всё, как показанно в уроке [cut=В sgm_world заменил строки]Code create("zat_bandit_base_guard_1",474.558,35.107,48.658,1739291,293)
create("zat_bandit_base_guard_2",401.908,34.100,63.140,1627091,71)
create("zat_bandit_base_guard_3",435.439,34.668,31.535,1680801,293)
create("zat_bandit_base_guard_4",380.558,32.793,30.124,1594480,71)
create("zat_bandit_base_guard_5",385.141,33.160,28.310,1600921,71)
create("zat_bandit_base_guard_6",379.745,34.344,-1.344,1592349,294)
create("zat_bandit_base_guard_7",412.928,39.444,-10.238,1643574,293)
create("zat_bandit_base_guard_8",391.787,34.741,-59.438,1611514,72)
create("zat_bandit_base_guard_9",404.285,36.198,2.642,1631380,293)
create("zat_bandit_base_guard_10",420.651,36.240,-58.467,1655391,222)
create("zat_bandit_base_guard_11",383.974,34.312,-11.495,1599847,294)
create("zat_bandit_base_guard_12",384.163,34.290,-57.917,1599782,72)
create("zat_bandit_base_bodyguard_1",407.998,39.448,-14.709,1636497,293)
create("zat_bandit_base_bodyguard_2",407.748,39.447,-9.401,1635469,293)
create("zat_bandit_base_bodyguard_3",412.659,39.446,-5.960,1643586,293)
create("zat_bandit_base_bodyguard_4",412.231,39.447,-18.475,1642572,293)
create("zat_bandit_base_sniper_1",404.872,39.446,-4.663,1631370,293)
create("zat_bandit_base_sniper_2",439.108,36.444,-31.202,1686418,293)
create("zat_bandit_base_west_chief",382.182,32.560,36.911,1596637,71)
create("zat_bandit_base_south_chief",440.906,36.061,-63.574,1689709,222)
create("zat_bandit_base_leader",405.729,39.447,-11.714,1633419,293)
create("zat_bandit_bodyguard",405.858,39.446,-18.573,1633413,293)
create("zat_bandit_trader",411.646,36.263,4.658,1641612,293) на Code if (not has_alife_info("zat_mod_bandit_spawner")) and (has_alife_info("jup_b207_dealers_pda_sold")) then
create("zat_bandit_base_guard_1",474.558,35.107,48.658,1739291,293)
create("zat_bandit_base_guard_2",401.908,34.100,63.140,1627091,71)
create("zat_bandit_base_guard_3",435.439,34.668,31.535,1680801,293)
create("zat_bandit_base_guard_4",380.558,32.793,30.124,1594480,71)
create("zat_bandit_base_guard_5",385.141,33.160,28.310,1600921,71)
create("zat_bandit_base_guard_6",379.745,34.344,-1.344,1592349,294)
create("zat_bandit_base_guard_7",412.928,39.444,-10.238,1643574,293)
create("zat_bandit_base_guard_8",391.787,34.741,-59.438,1611514,72)
create("zat_bandit_base_guard_9",404.285,36.198,2.642,1631380,293)
create("zat_bandit_base_guard_10",420.651,36.240,-58.467,1655391,222)
create("zat_bandit_base_guard_11",383.974,34.312,-11.495,1599847,294)
create("zat_bandit_base_guard_12",384.163,34.290,-57.917,1599782,72)
create("zat_bandit_base_bodyguard_1",407.998,39.448,-14.709,1636497,293)
create("zat_bandit_base_bodyguard_2",407.748,39.447,-9.401,1635469,293)
create("zat_bandit_base_bodyguard_3",412.659,39.446,-5.960,1643586,293)
create("zat_bandit_base_bodyguard_4",412.231,39.447,-18.475,1642572,293)
create("zat_bandit_base_sniper_1",404.872,39.446,-4.663,1631370,293)
create("zat_bandit_base_sniper_2",439.108,36.444,-31.202,1686418,293)
create("zat_bandit_base_west_chief",382.182,32.560,36.911,1596637,71)
create("zat_bandit_base_south_chief",440.906,36.061,-63.574,1689709,222)
create("zat_bandit_base_leader",405.729,39.447,-11.714,1633419,293)
create("zat_bandit_bodyguard",405.858,39.446,-18.573,1633413,293)
create("zat_bandit_trader",411.646,36.263,4.658,1641612,293)
give_info("zat_mod_bandit_spawner")
end Начинаю новую игру, и тут вылазит зелёный жук [cut][error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ... - Зов Припяти\gamedata\scripts\sgm_callbacks.script:862: attempt to index global 'sgm_world' (a nil value)
[/cut] [/cut] Что делать? ЗЫ Делал я это на Генозис аддон под СГМ2.0
А разве в инструкции так? denis2000
Сообщение отредактировал CRO$$ - Вт, 13.12.2011, 16:37 |
|
|
Эти 0 пользователя(ей) поблагодарили CRO$$ за это полезное сообщение: |
|
|
deef | Дата: Вт, 13.12.2011, 22:42 | Сообщение # 54 |
Гражданский
Пользователи
Сообщений: 1
| Привет. Подскажите пожалуйста вот по какому вопросу: Хочу заспавнить скриптом НПС, конкретно военного торговца из Припяти, в Темной Долине на ферме где сталкерская база. Так вот: при запуске скрипта НПС на секунду появляется по заданым координатам и исчезает. почему он исчезает?
Логика персонажа кидает его на положенное место (в Припять). XOBAH
Без фактов можно строить только предположения. Так говорил Заратустра? denis2000
|
|
|
Эти 0 пользователя(ей) поблагодарили deef за это полезное сообщение: |
|
|
Kosha | Дата: Вт, 27.12.2011, 15:55 | Сообщение # 55 |
Отмычка
Пользователи
Сообщений: 32
| подскажите скрипт респавна не по смарту а просто по координатам плиз (хотел тыкнуть мутантов не подалеку от базы сталкеров на кордоне ) (игра ЧН)
|
|
|
Эти 0 пользователя(ей) поблагодарили Kosha за это полезное сообщение: |
|
|
Колхозник | Дата: Вт, 03.01.2012, 22:57 | Сообщение # 56 |
Командир Штурмового Подразделения
Пользователи
Сообщений: 571
| Заспавнил нпс торговца из монолита с логикой бороды не подскажете можно ли сделать чтоб только он был ко мне безразличен а не вся группировка?
|
|
|
Эти 0 пользователя(ей) поблагодарили Колхозник за это полезное сообщение: |
|
|
denis2000 | Дата: Вт, 03.01.2012, 23:04 | Сообщение # 57 |
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
| Ленин, Кривовато конечно но можно в логике прописать Code on_info = {=actor_enemy} %=actor_neutral% тоесть если ГГ враг НПС, принудительно помирить.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)
|
|
|
Эти 0 пользователя(ей) поблагодарили denis2000 за это полезное сообщение: |
|
|
Колхозник | Дата: Ср, 04.01.2012, 10:45 | Сообщение # 58 |
Командир Штурмового Подразделения
Пользователи
Сообщений: 571
| можно ли "засунуть" нужный ПДА в рюкзак определенному нпс?
Безусловно! Или отредактировав инвентарь НПС в файлах character_desc_***.xml или добавить скриптом в любой момент игры. denis2000
Добавлено (04.01.2012, 10:45) --------------------------------------------- в файлах character_desc_***.xml пример можно а то не могу додуматься как
Тег supplies отвечает за инвентарь. XOBAH
|
|
|
Эти 0 пользователя(ей) поблагодарили Колхозник за это полезное сообщение: |
|
|
Vaiteria | Дата: Ср, 04.01.2012, 12:05 | Сообщение # 59 |
Отмеченная Зоной
Пользователи
Сообщений: 1641
| Привет ребята! Я создала тайник. При начале ново игры он появился, но оказался висящим над землёй примерно на уровне коленок ГГ. Что надо поменять в координатах что бы тайник лежал непосредственно на земле? Вот координаты тайника:
Высота - это Y. Уменьшайте. tracker
Никому не обязана, ни к чему не привязана, никому не подобна, потому и свободна...
|
|
|
Эти 0 пользователя(ей) поблагодарили Vaiteria за это полезное сообщение: |
|
|
XOBAH | Дата: Ср, 04.01.2012, 12:30 | Сообщение # 60 |
Техник Вольных
Вольные сталкеры
Сообщений: 912
| Vaiteria, Надо уменьшить высоту, это координата Y если не ошибаюсь... Расстояние от коленок до земли примерно 0.4 метра
|
|
|
Эти 0 пользователя(ей) поблагодарили XOBAH за это полезное сообщение: |
|
|
|