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


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
sergej5500Дата: Ср, 18.05.2016, 14:17 | Сообщение # 1246
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата men_stalker ()
А на мини карте всё равно отображается как лидер отряда (с звездой)


Наверняка он заспавнен как сквад из одного человека.
 
denis2000Дата: Ср, 18.05.2016, 16:01 | Сообщение # 1247
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

men_stalker, Все правильно, что написали то и отображается. Чтобы отображалась специальная метка нужен параметр level_spot.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Ср, 18.05.2016, 17:43 | Сообщение # 1248
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

sergej5500, да вот именно: сквад состоит из одного человека, для что бы спавнить сразу каждого нпс на точке пути (что бы быстро занимали позиции). Так можно сделать чтобы отображался как рядовой (просто точка на мини карте)?
 
sergej5500Дата: Ср, 18.05.2016, 17:55 | Сообщение # 1249
Полевой Исследователь
Ученые сталкеры
Сообщений: 3793
Награды: 29
Репутация: [ 1355 ]

Цитата men_stalker ()
Так можно сделать чтобы отображался как рядовой


Тогда его нужно спавнить как несквадового сталкера с кастом-датой.
 
denis2000Дата: Ср, 18.05.2016, 18:24 | Сообщение # 1250
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата men_stalker ()
Так можно сделать чтобы отображался как рядовой (просто точка на мини карте)?

Уважаемый, ну что вы ходите кругами, вам уже давали ответ на этот вопрос! Пост 1264.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Чт, 26.05.2016, 09:29 | Сообщение # 1251
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

Здравствуйте, такой вопрос: заспавнил через смарт десять эксклюзивов и настроил их пути ,а можно ли чтобы в отсутствие актора они менялись путями?
 
denis2000Дата: Чт, 26.05.2016, 11:56 | Сообщение # 1252
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

men_stalker, Тогда зачем вам эксклюзивы? Используйте неэксклюзивные работы в которых назначение НПС на работы рандомное и динамическое.
Или используйте несколько секций с разными путями в них и переключайте НПС между ними.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Чт, 26.05.2016, 12:16 | Сообщение # 1253
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

Цитата denis2000 ()
Используйте неэксклюзивные работы

А как будет выглядеть такая логика? Извините, но не разу ещё не делал не эксклюзивных нпс. Нпс не пойдут гулять по зоне, а останутся в смарте?


Сообщение отредактировал men_stalker - Чт, 26.05.2016, 12:19
 
denis2000Дата: Чт, 26.05.2016, 14:14 | Сообщение # 1254
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

men_stalker, КМБ Урок 6а

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Пт, 27.05.2016, 13:35 | Сообщение # 1255
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

denis2000, сделал всё также но нпс просто идёт к смарту и сидит. Вот название точек esc_c1_guard_1_walk и esc_c1_guard_1_look
Больше нигде не надо прописывть кроме simulation, squad_descr_escape, simulation_objects_props?
А и ещё в simulation_objects_props нужно и смарт прописывать?
 
denis2000Дата: Пт, 27.05.2016, 13:53 | Сообщение # 1256
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата men_stalker ()
сделал всё также но нпс просто идёт к смарту и сидит. Вот название точек esc_c1_guard_1_walk и esc_c1_guard_1_look

Пути не видяться, работы динамически не сформированы и не назначены НПС.
Цитата men_stalker ()
в simulation_objects_props нужно и смарт прописывать

Конечно!


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Пт, 27.05.2016, 14:06 | Сообщение # 1257
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

Цитата denis2000 ()
Пути не видяться, работы динамически не сформированы и не назначены НПС.

А можно по подробней, как это исправить?
 
denis2000Дата: Пт, 27.05.2016, 14:45 | Сообщение # 1258
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата men_stalker ()
А можно по подробней, как это исправить?

А можно поподробнее ваши правки?


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
men_stalkerДата: Пт, 27.05.2016, 14:56 | Сообщение # 1259
Инженер «Свободы»
Свобода
Сообщений: 184
Награды: 5
Репутация: [ 40 ]

denis2000, [cut=simulation]esc_c1_militari_guard_1 = esc_c1[/cut]
[cut=squad_descr_escape][esc_c1_militari_guard_1]:online_offline_group
faction = army
npc = esc_c1_millitary_guard_1
target_smart = esc_c1
spawn_point = esc_c1_guard_1_walk[/cut]
[cut=esc_c1][smart_terrain]
squad_id = 1
max_population = 1[/cut]
[cut=simulation_objects_props];---------------------------------------------------------------------------------
;------------------------------- ESCAPE-------------------------------------------
[esc_c1]:default
sim_avail = true

[esc_c1_militari_guard_1]:default
sim_avail = true[/cut]
Ну и правки в sim_board, surge_manager, smart_terrain. Только строчку packet:w_bool(self.levels_respawn.escape) в surge_manager не прописал
 
denis2000Дата: Пт, 27.05.2016, 15:35 | Сообщение # 1260
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

men_stalker,
Во первых:
Код
[esc_c1_militari_guard_1]:default_squad
sim_avail = true

Во вторых:
Смарт и пути в all.spawn?


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
Поиск: