Войти на сайт Регистрация Лента форума Пользователи Правила сайта Поиск по форуму
Модератор форума: 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
[ Если у вас не открывается файл CHM(Этот текст скрыт от гостей) ]


[ Где найти лог игры после вылета ]
[ Получение более подробной информации о вылете (ХОВАН) ]



Перед тем, как задать вопрос в этой теме, прочтите все предыдущие страницы,
статьи в wiki по ссылке из шапки и соседнюю тему "Курс молодого бойца",
возможно Ваш вопрос уже рассматривался.


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


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
FantomICWДата: Чт, 06.03.2014, 18:33 | Сообщение # 841
Лидер «Свободы»
Свобода
Сообщений: 4438
Награды: 44
Репутация: [ 1340 ]

strelok200, все та же логика. Все те же НПС. Спавнится объект на основе actor_visual_stalker через функцию create_cutscene_actor_with_weapon или другим способом. Логику ему прописывают либо через смарт, либо через custom_data. Запускается через рестриктор схема sr_cutscene, в которой идет отсылка к anm-файлу движения камеры. Все это синхронно проигрывается, в нужный момент останавливается, тогда управление возвращается к актеру.


 
alex_xp_77Дата: Вт, 11.03.2014, 22:36 | Сообщение # 842
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Добрый вечер всем , помогите разобраться до конца, что бы сделать готовый рабочий смарт, прописал логику смарту, прописал логику boar, то есть кабану, только при простейшем спавне типа такого :
[smart_terrain]
type=test_smart_terrains = true

[logic]
active=walk

[walkl]
path_walk=test_smart_terrain_boar_walk
path_look=test_smart_terrain_boar_look

выставляю точки пути :boar_walk
boar_look

получаю вылет по луа, это простейший смарт, где может быть ошибка ?? Подскажите умы форума!!За мной не заржавеет !!Благодарность в моем проэкте гарантирована!! Уж очень тяжело продвигается с мутантами!! да катра называется
terrain_test, сделал тестовый уровень!! логика смарта :
[smart_terrain]
type=test_smart_terrain
capacity = 1
communities = boar


 
NIVДата: Вт, 11.03.2014, 22:51 | Сообщение # 843
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

alex_xp_77, а вы сюда текст копировали или писали? Если копировали, то:
Цитата alex_xp_77 ()
active=walk [walkl]

И потом, что это за логика walk? У мобов должна быть mob_home или mob_walker.


Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"

Сообщение отредактировал NIV - Вт, 11.03.2014, 22:52
 
makdmДата: Вт, 11.03.2014, 23:07 | Сообщение # 844
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

alex_xp_77, всё не так сложно, просто нужно немного самому приложить усилие.
Подсказываю:
Возьмите оригинальный ЗП и посмотрите, как сделан смарт zat_b18.
Это смарт, на котором "работает" собака на барже Ноя.
Посмотрите, как прописывается логика смарта.
Посмотрите, как прописывается эксклюзив.
Посмотрите, как прописывается логика собаке ( mob_walker ).
Посмотрите в каких ещё файлах прописывается смарт zat_b18.
Я думаю, что разберётесь и сами.


Терпение......
И все получится!
 
NIVДата: Ср, 12.03.2014, 21:08 | Сообщение # 845
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

здравствуйте! makdm, я воспользовался Вашей схемой mob_companion, но почему-то моб ходит за мной только в пределах смарта, а за его границу не выходит. Пробовал в описании сквада указывать конкретный target_smart или nil - не влияет. Не могли бы Вы поделиться своими соображениями?

[ Логика моба ]




Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"
 
makdmДата: Ср, 12.03.2014, 21:41 | Сообщение # 846
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

NIV, приветствую.

У Вас схема в скрипт gulag_general.script добавлена?
Если нет, то добавьте схему в таблицу

local job_type_by_scheme

вот так

["mob_companion"] = "point_job"

А в файле gamedata\scripts\modules.script зарегистрируйте схему
load_scheme("mob_companion","mob_companion",stype_mobile)


Терпение......
И все получится!


Сообщение отредактировал makdm - Ср, 12.03.2014, 23:35
 
NIVДата: Чт, 13.03.2014, 07:01 | Сообщение # 847
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

Оффтопик
makdm, делал строго по инструкции :), т.е. первого не было, а второе есть. Спс, будем пробовать дальше.


Докладываю - схема mob_companion работает нормально, проблема была в том, что моб не принимал логику из кастом_даты

Код
[all_dog_domest]:zat_b18_dog
$spawn = "respawn\all_dog_domest"
custom_data = scripts\jupiter\all_dog_domest.ltx


Когда добавил работу на смарт, логика подключилась.


Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"

Сообщение отредактировал NIV - Сб, 15.03.2014, 08:39
 
alex_xp_77Дата: Вс, 16.03.2014, 10:01 | Сообщение # 848
Научный сотрудник.
Ученые сталкеры
Сообщений: 242
Награды: 6
Репутация: [ 41 ]

Добрый день всем !!Вопрос непосредственно по спавну в самом sdk, как заспавнить химеру??Если ее в самом cdk нету? Может с мода какого то засунуть в sdk?? просто в LE 04 химеры нету!!У меня вопрос к скорее всего к ветеранам форума, помогите пожалуста в моем втором вопросе, есть в народной солянке варка артефактов, в моей игре будет немного другая тематика (большая просьба к модераторам, не убирайте, не удаляйте пожалуста мое сообщение.Спасибо) мне очень хочется поменять направление артефактов, пример"бросаешь лунный свет+ночная звезда= лунная звезда,или звезда лесов, или пустынный камень, вот как это все прописать, или насколько это все сложно?Помогите пожалуста примером, я бы думаю дальше справился, место в титрах в моем проекте гарантирую!



Сообщение отредактировал alex_xp_77 - Вс, 16.03.2014, 18:37
 
denis2000Дата: Вс, 16.03.2014, 13:18 | Сообщение # 849
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

alex_xp_77, Добавляй! Вноси нужные секции в gamedata SDK, так-же переноси модели текстуры и анимации. Очень вероятно среди анимаций не будет специальной анимации для демонстрации в редакторе, придется переименовать какую-то существующую или не обращать внимания на вопли редактора об отсутствующей анимации.

"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
NIVДата: Пн, 24.03.2014, 20:24 | Сообщение # 850
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

Здравствуйте, хотел проконсультироваться по вопросу логики дружественного моба. Я создал собаку, наследующую от собаки Ноя. Она находиттся под логикой mob_companionmakdm) и по инфопоршню переводится в секцию [mob_combat], где должна атаковать ближайшего к ГГ НПС или монстра, который является врагом для ГГ.
[ Фрагмент логики ]

Для этого служит функция find_closest_enemy
[ find_closest_enemy() ]

Т.е. находим те объекты в онлайне, которые являются враждебными сталкерами или монстрами и находим ближайшего из них. Затем этот ближайший наносит хит собаке (немного переделанная функция xr_effects.hit_npc_from_npc)
[ hit_npc_from_npc(enemy_id, hitted_npc_sid) ]

Благодаря тому, что отладочная информация записывается в файлы, я уверен, что обе функции работают правильно - ближайший враг обнаруживается и он наносит хит именно собаке. Однако собака не атакует его, а продолжает бегать вокруг ГГ. Что_Я_Делаю_Не_Так? Может собаку надо сперва вывести из состояние mob_companion?

И еще вопрос: Мы получаем объект командой obj=alife():object(id). Однако если написать distance_between_safe(db.actor, obj), то происходит вылет (No such operator defined).
А если вместо obj взять level.object_by_id(id), то все работает. Вот этого я не понял - эти объекты должны быть одинаковыми?!


Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"

Сообщение отредактировал NIV - Пн, 24.03.2014, 20:28
 
denis2000Дата: Пн, 24.03.2014, 22:42 | Сообщение # 851
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата NIV ()
Может собаку надо сперва вывести из состояние mob_companion?

Как вы себе это представляете? Или вы считаете что ваша собака ОДНОВРЕМЕННО подчиняется ДВУМ секциям логики?
Цитата NIV ()
Вот этого я не понял - эти объекты должны быть одинаковыми?!

Это разные типы объектов с разными родителями и соответственно с разными свойствами и методами. Один серверного типа другой клиентского.
Цитата NIV ()
Что_Я_Делаю_Не_Так?

Проверьте текущую цель вашего моба функцией get_enemy().


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
makdmДата: Вт, 25.03.2014, 14:26 | Сообщение # 852
Рожденный в СССР
Разработчики
Сообщений: 1294
Награды: 29
Репутация: [ 1909 ]

Цитата NIV ()
Однако собака не атакует его, а продолжает бегать вокруг ГГ. Что_Я_Делаю_Не_Так? Может собаку надо сперва вывести из состояние mob_companion?


NIV, мягко говоря, логика не в порядке.

[ Читать далее(Этот текст скрыт от гостей) ]

Добавлено (25.03.2014, 14:26)
---------------------------------------------
И ещё по поводу функции find_closest_enemy()

Все он-лайновые объекты хранятся в таблицах файла db.script
Например все сталкеры, которые в данный момент времени он-лайн хранятся в таблице heli_enemies
Аналогично можно сделать таблицу, в которой будут храниться все монстры.
Перебирая объекты в таблицах можно получить сталкера или монстра, который ближе всего к mobу
И не нужно перебирать 65535 объектов игры. Тем самым увеличиваем быстродействие и убираем лишние проверки.


Терпение......
И все получится!


Сообщение отредактировал makdm - Вт, 25.03.2014, 14:19
 
NIVДата: Пт, 28.03.2014, 20:55 | Сообщение # 853
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

Цитата denis2000 ()
Проверьте текущую цель вашего моба функцией get_enemy().

Проверил, врага нет, разбираемся...

Как-то всё туманно получается. Функция hit_npc_from_npc должна давать хит. Проверял функцией xr_conditions.mob_was_hit - хита нет. Наверное не зря hit_npc_from_npc была закомментирована.

Пытался разозлить собаку так:
Код
local dog = level.object_by_id(dog_id)
local closest_enemy = level.object_by_id(closest_enemy_id)
dog:set_relation(game_object.enemy,closest_enemy)

Результат - отношение совпадает с отношениями из game_relations.ltx. Если враг ГГ - зомби, то собаке он - нейтрал. Если враг ГГ - человек или снорк, то собаке он тоже враг.
Подскажите, как сделать любого монстра врагом псевдособаке, несмотря на отношения между монстрами?

Добавлено (28.03.2014, 20:55)
---------------------------------------------
Подскажите, где прописаны анимации мутантов? В файлах *.omf? Если да, то как получить список анимаций?


Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"

Сообщение отредактировал NIV - Чт, 27.03.2014, 19:16
 
denis2000Дата: Пт, 28.03.2014, 22:59 | Сообщение # 854
Полевой исследователь
Ученые сталкеры
Сообщений: 2399
Награды: 35
Репутация: [ 1918 ]

Цитата NIV ()
Подскажите, где прописаны анимации мутантов? В файлах *.omf? Если да, то как получить список анимаций?

Да именно там. Получить список можно сконвертировав в skls и открыв полученный файл в SDK.

Цитата NIV ()
Наверное не зря hit_npc_from_npc была закомментирована.

Я ее использовал и она работает (использовал только на НПС поскольку она написана для НПС). Обратите внимание, что в данной функции хит наноситься в сустав bip01_spine, которого у монстра может и не быть! К тому-же объект источник хита передается по стори-ид объекта.


"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..."
(Чугунный всадник)
 
NIVДата: Пн, 31.03.2014, 14:46 | Сообщение # 855
Полевой исследователь
Ученые сталкеры
Сообщений: 167
Награды: 4
Репутация: [ 180 ]

Цитата denis2000 ()
хит наноситься в сустав bip01_spine, которого у монстра может и не быть!

Что-то я так и не понял - зомби - это монстр или нет? В табличке отношений они указаны вместе с мутантами.

Скелет зомбированного сталкера абсолютно идентичен скелету обычного сталкера. denis2000


Изменяем реальность S.T.A.L.K.E.R. CoP: "Цена Новых Исследований" / "New Investigations' Value"
 
Поиск: