Как сделать логику НПС?
|
|
монолитовец | Дата: Пятница, 11.11.2011, 21:59 | Сообщение # 1 |
Лидер Свободы
Группа: Модераторы
Сообщений: 312
Награды: 34
Репутация: 20
Статус: не в Сети
| Как сделать Логику НПС
Ответ: Во первых нужно с орентироваться на том, чем будет заниматься сталкер. 1- Нужно определить приписываем ли мы сталкеру Кастом дату либо мы прописываем ему логику по Гулагом (Смарт терайном.) 2- Создаём ли мы сами Гулаг либо берём уже существующий. 3- Определяем и вносим изменения в LTX.
Для того чтобы прописать логику через кастом дату нам понадобиться: 1- Файл ALL Spawn, LTX - 2 файла. Так вот начнём с Файла ALL Spawn мы создали сталкера и теперь нам нужно прописать ему Логику. Это можно сделать двумя способами, это сделать логику в самом файле либо сделать ссылку на LTX файл. Разберём первый способ: Вот простой пример Сталкера в Спавне.
[94] ; cse_abstract properties section_name = stalker = Строчка отвечающая за тип объекта name = esc_lager2 = Строчка отвечающая за имя объекта position = -207.545303344727,-20.132755279541,-143.41960144043 = Позиция на карте direction = 0.0524457320570946,-0.000378208060283214,0.00721459882333875 = указываеться только для Стоячих, без точки Path Look
; cse_alife_trader_abstract properties money = 5000 = Денег в инвентори character_profile = esc_stalker_novice = профиль в character_descr_******
; cse_alife_object properties game_vertex_id = 61 = точка вертекс distance = 7.69999980926514 = Дистанция спавна сталкера от точки вертекс level_vertex_id = 45939 Точка левел вертекса object_flags = 0xffffffbf = флаг объекта, пусть стоит стандартный. custom_data = <<END = Вот и интересующая нас Строчка Кастом Дата. [smart_terrains] Смарт под каторым находиться Сталкер. esc_lager = true
[spawn] = То что спавниться у Сталкера в инвентори, если указкть другие вещи в Характере то они от туда удаляться. bandage END
; cse_visual properties visual_name = actors\novice\green_stalker_10 = Визуалка сталкера, модель
; cse_alife_creature_abstract properties Тут идёт проверка того что объект именно типа Stalker а не другой. g_team = 0 g_squad = 1 = Сквад g_group = 5 = Группа health = 1 = Живой ли объект 1-да 0-нет dynamic_out_restrictions = dynamic_in_restrictions =
upd:health = 1 = Проверка Мёртвый или живой. upd:timestamp = 0x302e3120 upd:creature_flags = 0x2c upd:position = -207.545303344727,-20.132755279541,-143.41960144043 = Проверка позиции upd:o_model = 0 upd:o_torso = -0.000378208060283214,0.0524457320570946,0 = Проверка положения upd:g_team = 0 upd:g_squad = 1 = Проверка сквада upd:g_group = 5 = Проверка группы
; cse_alife_monster_abstract properties
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 = 0,2,1,2,2 predicate4 = 2,1,0,0
; cse_ph_skeleton properties
upd:start_dialog =
; se_stalker properties
Так вот теперь нам нужно добавить объекту логику, ну скажем что нашему сталкеру нужно перейти с Лагеря новичков в Лагерь на окраине кордона и там он должен будет пить и жрать водку. Так вот что там нужно сделать.
Найти строчки ; cse_alife_object properties game_vertex_id = 61 = точка вертекс distance = 7.69999980926514 = Дистанция спавна сталкера от точки вертекс level_vertex_id = 45939 Точка левел вертекса object_flags = 0xffffffbf = флаг объекта, пусть стоит стандартный. custom_data = <<END = Вот и интересующая нас Строчка Кастом Дата. [smart_terrains] Смарт под каторым находиться Сталкер. esc_lager = true
и заменить строку custom_data = <<END на допустим такую custom_data = scripts\naw_lagersmart
А что нам нужно сделать в этом файле файле naw_lagersmart, помните этот файл лежит в папке config в папке script.
а в этом файле нам нужно написать такие строки.
[logic] active = walker
[walker] path_walk = значения приписаные в смарте, это вэй-поинт path_look = значения приписаные в смарте, это вэй-поинт on_info = {+dialog_speak_stalker} walker2@new_zone
[walker2@new_zone] path_walk = значения приписаные в смарте, это вэй-поинт path_look = значения приписаные в смарте, это вэй-поинт
Либо можно сделать под гулаговую работу.
В логике писать.
[smart_terrains] esc_lager = true esc_new_lager = true
esc_lager = {-dialog_speak_stalker} esc_new_lager = {+dialog_speak_stalker}
где dialog_speak_stalker = Это инфопоршин дающий герою, во время диалога или получения задания, или при в ходе в рестриктор или при ввыходе из него. :D
VS
|
|
| |
X-Ray | Дата: Суббота, 12.11.2011, 20:56 | Сообщение # 2 |
Зам. Админ
Группа: Администраторы
Сообщений: 107
Награды: 10
Репутация: 40
Статус: не в Сети
| Отличная статья! От себя добавлю, что айди вейпоинтов находятся в том же спавне, в файлах ***_way.ltx. Также через них можно добавить новые поинты.
|
|
| |
X-Ray | Дата: Суббота, 12.11.2011, 20:59 | Сообщение # 3 |
Зам. Админ
Группа: Администраторы
Сообщений: 107
Награды: 10
Репутация: 40
Статус: не в Сети
| Вот тутор по логике из СДК:
|
|
| |
монолитовец | Дата: Суббота, 12.11.2011, 23:20 | Сообщение # 4 |
Лидер Свободы
Группа: Модераторы
Сообщений: 312
Награды: 34
Репутация: 20
Статус: не в Сети
| X-Ray, Этот файл нужен чтоб НПС стали умнее
VS
|
|
| |
X-Ray | Дата: Воскресенье, 13.11.2011, 14:46 | Сообщение # 5 |
Зам. Админ
Группа: Администраторы
Сообщений: 107
Награды: 10
Репутация: 40
Статус: не в Сети
| монолитовец, а что в твоем понимание логика?
|
|
| |
монолитовец | Дата: Воскресенье, 13.11.2011, 16:06 | Сообщение # 6 |
Лидер Свободы
Группа: Модераторы
Сообщений: 312
Награды: 34
Репутация: 20
Статус: не в Сети
| X-Ray, Я ХЗ вообще
VS
|
|
| |
X-Ray | Дата: Пятница, 18.11.2011, 17:04 | Сообщение # 7 |
Зам. Админ
Группа: Администраторы
Сообщений: 107
Награды: 10
Репутация: 40
Статус: не в Сети
|
|
|
| |
монолитовец | Дата: Пятница, 18.11.2011, 20:38 | Сообщение # 8 |
Лидер Свободы
Группа: Модераторы
Сообщений: 312
Награды: 34
Репутация: 20
Статус: не в Сети
| ага
VS
|
|
| |