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

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

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

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


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


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
СтелпДата: Вс, 16.10.2011, 15:02 | Сообщение # 16
Браток
Бандиты
Сообщений: 3101
Награды: 26
Репутация: [ 738 ]

Скорее не вопрос,а просьба:Добавьте в шапку ссылки на:ACDC для разных сталкеров,было бы более удобно.
Спасибо за внимание. smile

Все это и многое другое есть в шапке темы "Программы для модинга STALKER'а". denis2000
 
denis2000Дата: Вс, 16.10.2011, 15:55 | Сообщение # 17
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1916 ]

McPain, Респавн артефактов в ЧН не после выброса, а по интервалу времени artefact_spawn_idle - параметр в конфиге аномальной зоны. К тому же есть вероятность спавна арта в аномалии artefact_spawn_rnd и максимальное число артов в аномалии max_artefact_count, то же параметры в конфиге аномалии.
Если такие настройки тебя не устраивают то возможно организовать спавн артов в определенном интервале игрового времени, то в файле se_zones.script вместо
Code
game.get_game_time():diffSec(self.last_spawn_time) >= self.artefact_spawn_idle

вставь
Code
xr_conditions.is_arsenal_guard_rest_time (nil, nil)

Функция xr_conditions.is_arsenal_guard_rest_time (nil, nil) возвращает истину в интервале игрового времени от 3 до 5 часов. Если не устраивает этот интервал сделай свою функцию по анологии.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
PecheneginДата: Пн, 17.10.2011, 13:02 | Сообщение # 18
Отмычка
Пользователи
Сообщений: 25
Награды: 0
Репутация: [ 0 ]

Здравствуйте denis2000. Вот уже около месяца бьюсь над совмещением для ЧН, мод SGM 3.10 с Intellectual Marauder Mod ЧН 1.5.07. Уж больно привлекательные моды, и не хотелось бы отказаться, ни от одного, ни от другого. Но понемногу пришел к выводу, что совмещение модов вообще наиболее трудная задача в модострое и без знания "Lua" совместить эти моды практически невозможно.Хотелось бы научиться хотя бы одному действию по "раздеванию" убитых неписей из "мародера". Уж слишком эффектно это выглядет в игре! Возможно ли создать такое действие по "раздеванию" трупов в тельняшки, после снятия брони, путем добавления или изменения в необходимые файлы из "Мародера" для "SGM"? И если это возможно, то какие файлы участвуют в этом процессе? Может быть это надо делать в "all spawn"? Пробывал мониторить Filemonom, но в логах указаны только пути обращения к файлам.
С уважением любитель игры "Сталкер".


Pechenegin
 
denis2000Дата: Пн, 17.10.2011, 14:23 | Сообщение # 19
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1916 ]

Pechenegin, Без глубоких знаний в модостроении, в языке Lua и в функциях и методах движка в частности нормально совместить моды не получиться. Можно попробовать программу Умный Установщик Модов (текущая версия 1.7 поддерживает ЧН).

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
PecheneginДата: Пн, 17.10.2011, 15:25 | Сообщение # 20
Отмычка
Пользователи
Сообщений: 25
Награды: 0
Репутация: [ 0 ]

Cпасибо denis2000. К сожалению я стал это понимать. Но буду дальше стараться образовывться. УУМ уже пробывал пользоваться. Ничего кроме показа пригодности файлов к одному моду от другого эта программа не делает. Но и на том спасибо! Благодарю за Ваши всегда грамотные и исчерпывющие ответы!

Pechenegin
 
InvuLДата: Вт, 18.10.2011, 12:43 | Сообщение # 21
Отмычка
Пользователи
Сообщений: 25
Награды: 2
Репутация: [ 4 ]

Люди подскажите как сделать в логике телохранителя так что бы при получении критического\смертельного урона телохранитель падал на землю, просил аптечку и был неуязвимым когда лежал (ну что бы не убили его biggrin ),или убегал(sprint)на место своего спавна?
И можно ли для телохранителей сделать отдельные иммунитеты, если да то в каких файлах?
А то у меня на Затоне 8 телохранителей неуязвимых бегают и всех просто мочат happy !


Сообщение отредактировал InvuL - Вт, 18.10.2011, 12:49
 
КолхозникДата: Вт, 18.10.2011, 17:27 | Сообщение # 22
Командир Штурмового Подразделения
Пользователи
Сообщений: 571
Награды: 10
Репутация: [ 401 ]

Здрасте. У меня возникла такая проблема: в разобраном all.spawn'е добавил несколько нпс и теперь он не собираеться через тот же acdc что и был разобран. В чем дело?

Допустил ошибку при добавлении, перепроверь пробелы в секциях. XOBAH

Добавлено (18.10.2011, 15:58)
---------------------------------------------
перепроверял 4 раза все норм. а теперь еще и all.spawn даже не разбирает
даже удалял то что добавил и все равно не помогает

Добавлено (18.10.2011, 16:32)
---------------------------------------------
Все впасибо разобрался
Active perl заблокировол антивирус

Добавлено (18.10.2011, 17:27)
---------------------------------------------
не могу понять в чем ошибка
подскажите

[cut noguest][1867]
; cse_abstract properties
section_name = smart_terrain
name = army_smart
position = -362.385376,39.999546,-330.086782
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = 29
distance = 26
level_vertex_id = 235780
object_flags = 0xffffff3e
custom_data = <<END
[story_object]
story_id = army_smart

[smart_terrain]
cfg = scripts\zaton\smart\army_smart.ltx
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 2.50760293006897

; cse_alife_space_restrictor properties
restrictor_type = 3

; se_smart_terrain properties[/cut]


Сообщение отредактировал Ленин - Вт, 18.10.2011, 17:34
 
denis2000Дата: Ср, 19.10.2011, 00:25 | Сообщение # 23
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1916 ]

Ленин, Номер секции уникален?

InvuL, Не пробовал такое делать, но возможно прокатит в текущей секции написать:
Code
on_info = {=health_le(0.5)} <новая секция>
То есть если здоровье снизиться менее половины переключиться на новую секцию, а вот в новой секции делай его неуязвимым, раненым, убегающим на точку и т.п.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
КолхозникДата: Пт, 21.10.2011, 16:00 | Сообщение # 24
Командир Штурмового Подразделения
Пользователи
Сообщений: 571
Награды: 10
Репутация: [ 401 ]

да номер секции уникален, он идет следующим по списку

Уникальным номер должен быть не в пределах файла, а в пределах всего all.spawn, т.е. всех alife_* файлов. XOBAH

Добавлено (19.10.2011, 16:50)
---------------------------------------------
сделал так и все равно ошибка

Добавлено (19.10.2011, 16:57)
---------------------------------------------
вроде проблема решена

Добавлено (19.10.2011, 18:02)
---------------------------------------------
как создать way point не скажете?

Добавлено (20.10.2011, 19:51)
---------------------------------------------
снова эта же проблема при добавлении нпс в all.spawn он не собираеться. ошибок нет т.к. копировал уже созданные в этом файле строки. но токо менял ид нпс на свое. перепробовал 3 acdc cop от sgm, dcm и простой . в чем может быть дело ?
номер уникален в пределах всего all.spawn.

А что пишет в ошибке? XOBAH

Добавлено (21.10.2011, 16:00)
---------------------------------------------
Died at stkutils/ini_file.pm line 47, <GEN1> line 58677

Что добавляли в alife_zaton (если не правили all.ltx)? Конкретная секция (Копи-Паст). XOBAH


Сообщение отредактировал Ленин - Ср, 19.10.2011, 16:50
 
KoshaДата: Пт, 21.10.2011, 17:52 | Сообщение # 25
Отмычка
Пользователи
Сообщений: 32
Награды: 0
Репутация: [ 0 ]

как сделать так что-бы (в скрипте респавна) целью отряда появившегося на одном смарте сразу же пошли на другой?
(напишите пример такого скрипта плиз).
И еще а можно ли сделать так что-бы условием респавна через скрипт был например захват базы свободы долгом (ЧН)?
 
КолхозникДата: Пт, 21.10.2011, 18:15 | Сообщение # 26
Командир Штурмового Подразделения
Пользователи
Сообщений: 571
Награды: 10
Репутация: [ 401 ]

[cut noguest][6471]
; cse_abstract properties
section_name = stalker
name = rad_a24_pechkin
position = -429.065979,39.999710,-393.802094
direction = 0,0,0

; cse_alife_trader_abstract properties
money = 5000
character_profile = rad_a24_pechkin

; cse_alife_object properties
game_vertex_id = 306
distance = 4.19999980926514
level_vertex_id = 135246
object_flags = 0xffffffff (в ЧН у сталкеров обычно 0xfffff7bf и 0xffffffbf (а в ЗП - нету))
custom_data = <<END
[logic]
cfg = scripts\logic_arm.ltx
END

; cse_visual properties
visual_name = actors\stalker_soldier\stalker_soldier_2

; cse_alife_creature_abstract properties
g_team = 8
g_squad = 0
g_group = 0
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =

upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -429.065979,39.999710,-393.802094
upd:o_model = 0
upd:o_torso = 0,0,0
upd:g_team = 8
upd:g_squad = 0
upd:g_group = 0

; cse_alife_monster_abstract properties
base_in_restrictors = yan_bunker_door_zomby_restrictor


upd:next_game_vertex_id = 65535
upd:prev_game_vertex_id = 65535
upd:distance_from_point = 0
upd:distance_to_point = 0

; cse_alife_human_abstract properties
predicate5 = 2,2,1,1,2
predicate4 = 1,0,0,1


; cse_ph_skeleton properties

upd:start_dialog =

; se_stalker properties [/cut]

только это

Выделил лишние строки, закрыл глаза на неверное оформление секции, мб ACDC тоже закроет. XOBAH
 
xardaslichДата: Ср, 26.10.2011, 09:52 | Сообщение # 27
Отмычка
Пользователи
Сообщений: 41
Награды: 1
Репутация: [ 49 ]

S.T.A.L.K.E.R. Call of Pripyat 1.6.02(лиц) + Sigerous Mod 1.7+ fix 31.08

У меня вопрос касаемый редактирования наполнения "обычных" тайников(оружие, боеприпасы, броня...и т.п. припрятаные под открытым небом - вне контейнеров и рюкзаков), а именно:

- содержимое наполнения оных тайников осуществляется через редактирование alife_локация.ltx распакованого All.spawn файла? Также само как и в показаном уроке "Создание тайника через All.spawn (от XOBAH)"? - пример для тайника в рюкзаке.
[cut noguest][866] - уникальный ID

; cse_abstract properties

section_name = inventory_box - имя секции (не трогать)

name = level_prefix_inventory_box_0000 имя (можно не изменять)

position = -447.109985351563,-6.13000011444092,183.639999389648 (координаты тайника - x, y, z)

direction = -0.062830001115799,-2.99324011802673,-0.169295996427536 (куда направлен)



; cse_alife_object properties

game_vertex_id = 0 - game_vertex

distance = 0

level_vertex_id = 293223 - level_vertex

object_flags = 0xffffff3f

custom_data = <<END

[spawn] вещи в тайнике

wpn_pb

wpn_ak74

ammo_9x18_pmm

medkit_army

drug_antidot

END



; cse_visual properties

visual_name = dynamics\devices\dev_rukzak\dev_rukzak.ogf визуал тайника (рюкзак)



; cse_alife_inventory_box properties

tip = inventory_box_use
[/cut]

Либо есть отличия(нюансы) для тайников "под открытым небом"?

Заранее благодарен за пояснения к моему вопросу.
 
denis2000Дата: Ср, 26.10.2011, 10:05 | Сообщение # 28
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1916 ]

xardaslich, Для такого тайника создаешь рестриктор в all.spawn:
[cut]; cse_abstract properties
section_name = space_restrictor
name = zat_hiding_place_56
position = -170.444961547852,15.9161548614502,141.224716186523
direction = -0.431140005588531,-0.0219049993902445,-0.0938460007309914

; cse_alife_object properties
game_vertex_id = 0
distance = 0
level_vertex_id = 293223
object_flags = 0xffffef3e
custom_data = <<END
[secret]
cfg = misc\secret_zaton.ltx
END

; cse_shape properties
shapes = shape0
shape0:type = sphere
shape0:offset = 0,0,0
shape0:radius = 1

; cse_alife_space_restrictor properties
restrictor_type = 3
[/cut]
А в указанном файле misc\secret_zaton.ltx добавляешь секцию zat_hiding_place_56 по образцу, указывая какие предметы и в каком количестве (мин,макс) положить.


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

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

Подскажите пожайлуста как реализовать следующее:

Наверно, всем не секрет, что на локе "ПРИПЯТЬ" единожды заспавнивается только 2 отряда "Альфа-новички" (2 точки "смарта" по одному отряду "Альфа-новички") и на этом всё заканчивается sad

А хотелось-бы немножко поправить эту "несправедливость" (ведь по идее ПРИПЯТЬ- одно из самых опастных мест ЗОНЫ, а тут такое...!).
В общем хочу реализовать, но пока незнаю как:

1). Отряды "Альфа" спавнятся всегда (как и на других локах: "Окрестности Юпитера", "Затон"), в тех же 2-х точках спавна, но ...

2). "Альфа" начинает свой спавн сразу с "ветеранов"- при первом посещении, а далее только "мастера"(суперэлитные "АЛЬФА").
 
denis2000Дата: Ср, 02.11.2011, 12:52 | Сообщение # 30
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1916 ]

xardaslich, Скажу вам по секрету условия респавна Альфы в Припяти идентичны другим локациям (за исключением конечно количества точек спавна). Так что просто добавте смартов для спавна и сделайте им логику аналогичную существующим.

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