Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: denis2000, FantomICW  
Модостроение. Спавн и логика
denis2000Дата: Пн, 10.10.2011, 21:20 | Сообщение # 1
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Спавн и логика

Создание объектов на локации и логика поведения этих объектов

Если у вас появились вопросы по созданию динамических объектов в игре (НПС, монстры, аномалии, и т.п.) и настройке их "поведения". Задавайте их в этой теме - умные головы,
модосторители и просто разбирающиеся в программировании люди вам ответят.


Много интересного материала здесь (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 по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


Если произошел вылет - выкладываем лог! Вопрос ставим четко, не забываем указывать версию игры, установленные моды их версии, установленные фиксы модов и подробно ваши правки.
Помните чем подробнее вопрос, тем точнее ответ.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
xardaslichДата: Ср, 02.11.2011, 14:24 | Сообщение # 31
Отмычка
Пользователи
Сообщений: 41
Награды: 1
Репутация: [ 49 ]

denis2000, спасибо!

Ещё раз протестирую, может просто я был невнимателен либо, что-то упустил(может иные, чисто субъёктивные причины...).

p.s. Дважды проходил SGM 1.7 CoP: раз в готовой зборке S.T.A.L.K.E.R. Call of Pripyat 1.6.02 + Sigerous Mod 1.7 (скачал с торрента)- зборка очень глючила и "логала". В общем прошёл и удалил;
второй раз (прислушался к "умному" совету одного из форумчан) - произвел "чистую установку" S.T.A.L.K.E.R. Call of Pripyat 1.6.02(лиц) + Sigerous Mod 1.7+ fix 31.08(всё делал по инструкции)- логов и вылетов стало в разы, на порядок меньше smile .

Но вот по-моим личным наблюдениям "АЛЬФА" на локе "ПРИПЯТЬ", после её выноса, так больше и не заспавнилась. При первом посещении "Припяти" вынес 2 "вышеупомянутых" отряда-> переходил на другие локи-> возвращался на локу "ПРИПЯТЬ" и никакой "АЛЬФЫ"...(провёл в ЗОНЕ более 2-х внутриигровых месяца)!

Может (я просто подозреваю) что что-то не так "стало"; Подскажите "Куда и где посмотреть, что логика спавна отрядов "Альфа" правильна, и где по-возможности следует искать причину если сложилась такая ситуация?
 
denis2000Дата: Ср, 02.11.2011, 14:53 | Сообщение # 32
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

xardaslich, Смотрите логику смартов в папке configs\scripts\pripyat\smart
А также попробуйте уменьшить параметр RESPAWN_RADIUS_ALFA в скрипте smart_terrain.script


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
XOBAHДата: Пт, 04.11.2011, 00:33 | Сообщение # 33
Техник Вольных
Вольные сталкеры
Сообщений: 912
Награды: 21
Репутация: [ 991 ]



 
xardaslichДата: Сб, 05.11.2011, 11:21 | Сообщение # 34
Отмычка
Пользователи
Сообщений: 41
Награды: 1
Репутация: [ 49 ]

S.T.A.L.K.E.R. Call of Pripyat 1.6.02(лиц) + Sigerous Mod 1.7+ fix 31.08
Всем доброго дня!

Может кто сталкивался, знает причину либо просто может дельно посоветовать?

А ситуация такова:

Добавленные(адаптированные) мною стволы протестил, раздал(прописал в character_desc_sgm.xml,....) неписям вместе с "навесами"- что оружие поддерживает(опт. прицел, глушитель)+ подствольную гранату(для подствола); А НПС, при всём этом, умудряются носить и использовать "прописанные" им стволы без "навесов". Другими словами: "опт. прицел, глушитель, подствольный гранатомёт- мёртвым грузом лежат в инвинтаре неписей sad !"

Может это поправимо- добавить пару-другую строк в их логику?
Только я пока не знаю, что и куда добавить.

p.s. Может я заблуждаюсь, но мне кажется, что такая фишка(обвешивание "навесами" НПС своих стволов) было реализовано в "чистом" ЗП.
 
XOBAHДата: Сб, 05.11.2011, 11:58 | Сообщение # 35
Техник Вольных
Вольные сталкеры
Сообщений: 912
Награды: 21
Репутация: [ 991 ]

xardaslich, Заблуждаетесь, в ЗП таких возможностей не было, это реализовано в AI Additions

 
xardaslichДата: Сб, 05.11.2011, 12:50 | Сообщение # 36
Отмычка
Пользователи
Сообщений: 41
Награды: 1
Репутация: [ 49 ]

XOBAH, спасибо что прояснили smile !

Скачал S.T.A.L.K.E.R.: Зов Припяти "AI Additions 20.03.2010".

Теперь хочу адаптировать "Напяливание аддонов" и "Стрельба с подствольных гранатометов";

Подскажите пожайлуста мне будет достаточно перенести соответственно из ...\scripts AI Additions 20.03.2010 в ...\scripts S.T.A.L.K.E.R. Call of Pripyat 1.6.02(лиц) + Sigerous Mod 1.7+ fix 31.08 - файл rx_addons.script и rx_gl.script, а также configs\misc\rx_addons.ltx, configs\misc\rx_gl.ltx- соответственно.

Я прав? Или, что-то упустил?
 
XOBAHДата: Сб, 05.11.2011, 13:52 | Сообщение # 37
Техник Вольных
Вольные сталкеры
Сообщений: 912
Награды: 21
Репутация: [ 991 ]

xardaslich, Упустили, если вы их просто скопируете - то это будет бестолку, ибо игра не знает про эти файлы
Нужно сравнивать оригинальные файлы и эти на предмет изменений (урок по адаптации модов)


 
PecheneginДата: Вс, 13.11.2011, 15:11 | Сообщение # 38
Отмычка
Пользователи
Сообщений: 25
Награды: 0
Репутация: [ 0 ]

Всем привет! Так и не пришел к положительному выводу - Так можно снимать бронь с убитых Альфовцев или нет? В "sgm_conteiner.script" прописал как советовал Хован, уж не помню в каком посте, но бронь не появляется, хотя ссылка на sgm_outfit есть. Там есть раздел для мародерства брони. Похоже в игре нет самих грф.файлов (оgf и dds) для Альфы? Или я ошибаюсь и плохо искал. Кстати, воторое значение из файла "sgm_conteiner.script" ссылку секций брни где она расположена я нашел, а вот первую, типа- "stalker_nebo_4", "..... из функции указния к выполнению, местонахождение осталось неизвестным. Может кто поможет? Заранее спасибо.

Pechenegin
 
XOBAHДата: Вс, 13.11.2011, 15:40 | Сообщение # 39
Техник Вольных
Вольные сталкеры
Сообщений: 912
Награды: 21
Репутация: [ 991 ]

Quote (Pechenegin)
Похоже в игре нет самих грф.файлов (оgf и dds) для Альфы?

Причем тут графические файлы???
В sgm_conteiner.script, в таблице outfit_container_list указывается какая броня, с каким % вероятности и из какого непися вылезет.
По шаблону:
{"CHARACTER_ID_ИЗ_ФАЙЛОВ_GAMEPLAY\CHARACTER_DESC_*.XML","SECTION_OUTFIT",VEROYATNOST_(0-1)}


 
KoshaДата: Пт, 18.11.2011, 18:53 | Сообщение # 40
Отмычка
Пользователи
Сообщений: 32
Награды: 0
Репутация: [ 0 ]

может кто посказать:
есть функция что-бы респавн на респавнере созданном через скрипт начинался после выполнения определенного условия (например завершение квеста) а можно ли сделать так что-бы респавн заканчивался после выполнения определенного квеста ? (например что-бы респавн начинался после начала квеста "Усилить присутствие Чистого неба на болотах" а кончался после выполнения квеста "Уйти с проводником на кордон" что-бы после ухода игрока там не начинался хаос )? Заранее спасибо!
 
XOBAHДата: Пт, 18.11.2011, 20:57 | Сообщение # 41
Техник Вольных
Вольные сталкеры
Сообщений: 912
Награды: 21
Репутация: [ 991 ]

Kosha, Также как и во всех остальных:
respawn_params = {+info_nuzhnoe_dlya_respawna -info_nenuzhnoe} respawn@esc_a2


 
KoshaДата: Пт, 18.11.2011, 23:54 | Сообщение # 42
Отмычка
Пользователи
Сообщений: 32
Награды: 0
Репутация: [ 0 ]

XOBAH, так:
respawn_params = {+mar_story_go_to_marsh_done -mar_story_go_to_escape_done} respawn@esc_a2
или нет?
писать это условие именно в скрипт?

Ой, ё... Забыл что в ЧН такого нету... Вообще это писать в логику смарт-террейна, а в скрипте респавнере - я не знаю.... XOBAH

Добавлено (18.11.2011, 23:54)
---------------------------------------------
короче реализовать в чн нельзя?

 
МеханикДата: Вт, 22.11.2011, 19:25 | Сообщение # 43
Мечтатель
Разработчики
Сообщений: 1848
Награды: 38
Репутация: [ 4562 ]

Здравствуйте всем.У меня такой вопрос.
Где ещё кроме SGM_world.script надо прописывать условия спавна баз .
Конкретно интересует спавн базы бандитов на определённых условиях.
Пробовал сдепать по аналогу базы Рассвета, SGM_callbacks.script стал ругаться на SGM_world.script
Понял что где-то что-то не дописал вот только что и где не понял ....

Подробнее, что и где прописывал и какой лог вылета получил. denis2000

Добавлено (21.11.2011, 18:57)
---------------------------------------------
Сделал в SGM_world.script точно по аналогу базы Рассвета.

[cut=Лог]FATAL ERROR
[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:858: attempt to index global 'sgm_world' (a nil value)[/cut]

Вы допустили ошибку синтаксиса в скрипте sgm_world, еще раз все проверьте возможно пропустили end (ну или что-то в этом роде). denis2000

Добавлено (22.11.2011, 11:34)
---------------------------------------------
Вот что сделал.
[cut noguest=секция базы]if has_alife_info("zat_b101_heli_5_crash_done") and dont_has_alife_info("zat_spawn_bandit_base") 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_base_spot",408.494,39.477,-19.775,1637539,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_spawn_bandit_base")
end[/cut]
Где может быть ошибка?Условия прописывал разные.Это один из вариантов.

1. В следующий раз пишите версию SGM с которым работаете, как я смотрю это не SGM 2.0 и не SGM 1.7; также это не APv; а скорее всего это geonezis addon, поэтому дальнейший пункт идет на основании того, что у вас стоит geonezis
2. Ошибка происходит при апдейте скрипта sgm_world.script Тот кусок кода, который вы привели - в порядке, скорее всего ошибка в том, что он стоит не в том месте.
XOBAH

Добавлено (22.11.2011, 19:25)
---------------------------------------------
XOBAH : Вы оказапись правы .Эта секция действительно стояла не там. Подумал.Переставил. И всё заработало.
Спасибо. Только с версией вы ошиблись. Это скрипт из SGM 2.0. Ещё раз спасибо и удачи вам.


Нет судьбы кроме той,
которую мы творим сами.


Сообщение отредактировал Механик - Вт, 22.11.2011, 11:43
 
NiafaДата: Ср, 23.11.2011, 12:53 | Сообщение # 44
Отмычка
Вольные сталкеры
Сообщений: 42
Награды: 8
Репутация: [ 123 ]

Доброго времени суток.
Помогите, пожалуйста, решить проблему. Не могу заставить работать парсер асдс. Вот что у меня есть в папке и батнике для парсера:
http://floomby.ru/content/A15O2xCjgE

Значения new old равны для теста. Пробовал с другими, результат тот же. Вот такой:

http://floomby.ru/content/UeeEtMBHU0

ActivePerl само собой установлен. Версия acdc от 25 сентября 2011. Делаю всё так, как написано в ридми к асдс. В чём проблема?

Вот не помню что там с ACDC от 25 сентября, но попробуй поставить game1 и game2 заместо old и new соответственно. В версии от 20 ноября уже используются old и new, а примерно в сентябрьской ипользовались game1\2. XOBAH

Разобрался.Спасибо.




Сообщение отредактировал Niafa - Ср, 23.11.2011, 14:47
 
PecheneginДата: Пт, 25.11.2011, 12:49 | Сообщение # 45
Отмычка
Пользователи
Сообщений: 25
Награды: 0
Репутация: [ 0 ]

Привет Ховану! Как не бился не выпадает бронь у Альфы. Строка в "sgm_container.script" - {"stalker_ecolog","reduce_ecolog_regular_outfit",0.33} следующее...{"alfa_master_commander","reduce_killer_exo_outfit",1.0}, Где хоть описывается неписи Альфы? Нигде кроме как в файле "character_desc_extended.xml" не нашел. Не спавнятся и патроны в "ID" Альфы. Пытался внести строку в"character_desc_extended.xml"- [spawn] \n - device_torch \n - "ammo_dumdum = 1 \n". Результат- Безрезультатно! Установлен SGM 2.0 и последняя фикса из шапки. Заранее спасибо! Вопрос, может вообще эти манипуляции с Альфой непредусмотренны?

Pechenegin
 
Поиск: