Перейти к контенту
genior

Обучающие видео курсы X-Ray SDK0.7

Рекомендуемые сообщения

Дефолтовая логика НПС для ТЧ:

Сидящий у костра:
Можно прописать сразу троим
[smart_terrains]
префикс-имя_имя-смарта = true

[logic]
active = kamp

[kamp]
center_point = префикс-имя_имя-смарта_kamp_center
radius = 2
def_state_moving = run --Как НПС идёт к костру

-------------------------------------------
Вей путь:
префикс-имя_имя-смарта_kamp_center  --Должен находится в центре костра
префикс-имя_имя-смарта_kamp_center_task

 

Спящий НПС:
Можно прописать сразу троим
[smart_terrains]
префикс-имя_имя-смарта_defence = true

[logic]
active = sleeper

[sleeper]
path_main = префикс-имя_имя-смарта_sleep 
;wakeable = true 

-------------------------------------------
Вей путь:
префикс-имя_имя-смарта_defence_sleep

 

Патруль:
Можно прописать сразу троим(определить одного командира)
[logic]
active = patrol

[patrol]
path_walk = префикс-имя_имя-смарта_patrol_walk
path_look = префикс-имя_имя-смарта_patrol_look
formation = back Вид передвижения
commander = true Является ли он командиром.

 

Genior.gif

button.png

Ссылка на комментарий

genior есть вопрос вот создание камеры у меня не отображается путь линией , а камера работает но её траектории нету

 %C3.l.u.%D5.a.r.%DC..gif

Ссылка на комментарий

Уважаемый genior по поводу камеры возможно ли сделать так что бы полет камеры делал облет сначало одной территории а потом резко перешол на другую в обдном полёте?

 %C3.l.u.%D5.a.r.%DC..gif

Ссылка на комментарий

Конечно можно, хоть 10 разных. Нужно сделать пару анимок камеры, в логике прописать их работу друг за другом. Вариантов прописывания будет много - в зависимости на что эта функция выполнения будет посажена (рестиктор, инфопоршень и т.д.).

Genior.gif

button.png

Ссылка на комментарий

Да, можно и в зданиях. Но не переусердствовать - одного достаточно.Есть скавдры которым не прописывают пути движения, им указывается старт на каком-нибудь смарт терейне и указание занять другой смарт терейн(где-нибудь на другом краю локации) вот они и идут в указанную точку ориентируясь по граф поинтам.И если есть необходимость то добавляем и в здания.

Genior.gif

button.png

Ссылка на комментарий

Уважаемы Genior не могли бы вы сказать, что за проблема с моим террейном?

Скриншот

Делал по вашему обучающему видео, но сколько раз не переделывал одна проблема.

 

Ссылка на комментарий

Для того чтоб увидеть на своём терейне траву или асфальт - нужно компилировать локацию на максимальных настройках.

Если локация сделана на драфт качестве - этого не будет, единственное что можно проверить - это правильность настройки текстуры терейна. Запуская игру на статическом освещении - на локации будет "молоко", если запустить на динамическом, то вся лока должна быть покрыта травой.Значит текстуру терейна настроили правильно.

 

Genior.gif

button.png

Ссылка на комментарий

Всё ещё будет! Просто катастрофически не хватает времени.Так что ещё будут уроки и по шейдерам и по партиклам и по анимации.

Genior.gif

button.png

Ссылка на комментарий

GENIOR, здравствуй!

 

Возникла проблема при декомпиляции локации CoP (для SDK 0.7).

Вроде всё прописал в соответствии с инструкцией, но выполнении Винда выкидывает ошибку (на скрине).

В чём может быть проблема?

 

Блин, а как скрин добавить?

Ссылка на комментарий

Не знаю как тут скрины прикреплять.

 

В общем во время разборки после строк

Saving det\det_[имя_локации]

[bag] unexpected cod path at .. \level_tools_details.cxx:83

This application has requested The Runtime to terminate it in at unusual way.

 

виндовс выводит окно с отчётом об ошибке и руганью на файл converter.exe.

Как быть?

Изменено пользователем SergeyRU
Ссылка на комментарий

При декомпиляции локации в папке C:\Program Files (x86)\X-Ray CoP SDK\editors\gamedata\textures\det создаётся текстура "det_l12_stancia".

В ней фиксируется вся растительность на локации. Из перевода лога я так понял что-то с проблемой создания этой текстуры.

Genior.gif

button.png

Ссылка на комментарий

Уважаемый genior, при создании укрытия от выбросов на локации, я столкнулся с проблемой: создал спейс рестиктор, esc_surge_hide_esc_village_smart(тут у меня тоже впрос. Сталкеры должны и без прописывания логики бежать туда? если да то они туда не бежат). Имя вейпоинта сталкеров к укрытию esc_village_smart_surge_hide_1(walk и look).

А бандиты на АТП даже без рестиктора выживают. Прописаны они через анимпоинт, название esc_atp_smart_animpoint_*(* - номер).

 

Я вот подумал может если сделать укрытие чрез анимпоинт, а не через walker то что-то получится. Сделал, назвал esc_surge_hide_village_1_animpoint ничего не получилось.

И еще НПС у которых логика в одном текстовом файле, например как у волка

[logic@esc_wolf]
suitable = {=check_npc_name(esc_wolf)} true
prior = 200
active = animpoint

[animpoint]
cover_name = esc_wolf_cover
avail_animations = animpoint_sit_normal
use_camp = false
meet = meet@base
;out_restr = zat_a2_sr_noweap
corpse_detection_enabled = false

[meet@base]
;close_snd_hello = zat_b215_stalker_guide_greeting
;close_snd_bye = zat_b215_stalker_guide_farewell
close_anim         = nil
close_victim     = nil
far_anim         = nil
far_victim         = nil
close_distance  = 0
far_distance     = 0
allow_break = false
close_snd_distance = 3
use = {=actor_enemy} false, true
meet_on_talking = false
trade_enable    = false

 

 

 

Название его лтх логики esc_wolf - эти НПС иммунитетны к выбросу

 

А у НПС которые под логикой смарта, тойсть текстовый файл с нескольками логиками не иммунитетны.

 

Название логики смарта

esc_village_logic

 

Сам смарт называется esc_village_smart

 

Как вы уже наверное поняли локация - Кордон

Ссылка на комментарий

Всё правильно,wey поинты надо прописать так:

<Префикс локации>_<имя смарт терейна>_,<surge_1_walk>(surge_2/3/4/....._walk)

<Префикс локации>_<имя смарт терейна>_,<surge_1_look>(surge_2/3/4/....._look)

esc_village_smart_surge_1_walk

esc_village_smart_surge_1_look

Сколько сталкеров есть в смарте - столько и должно быть мест(поинтов) для укрытия.

 

В логике у Волка нет иммунитета от выброса - он должен прятаться.Но если нужен иммунитет - добавь

в логику:

combat_ignore_cond = false
combat_ignore_keep_when_attacked = false
combat_ignore = combat_ignore

И самое главное - локация должна быть прописана не только в конфигах, но и в скриптах.

Genior.gif

button.png

Ссылка на комментарий

Преназвал way поинты ничего вышло, всеравно умирают

 

Добавлено через 14 мин.:

А если я тестово еще не делал укрытия для всех сталкеров только для трёх, они все умрут(я имею ввиду для того чтобы сталкеры были живы то нужно именно сразу для всех в смарте укрытия поделать?)

Ссылка на комментарий

Для скольких сделаешь - столько и останется.

Напомню что нужно везде прописать:

"gamedata\configs\misc\simulation_objects_props.ltx"

[esc_village_smart]:default

surge = 1 ; прописали возможность укрытия

territory = 1

sim_avail = true

 

gamedata\configs\misc\surge_manager.ltx"

;escape

esc_surge_hide_village_smart

 

gamedata\scripts\sim_board.script"

squad_ltx = system_ini()

setting_ini = ini_file("misc\\simulation.ltx")

 

local group_id_by_levels = {zaton = 1,

pripyat = 2,

jupiter = 3,

labx8 = 4,

jupiter_underground = 5,

escape = 6}

 

"gamedata\scripts\smart_terrain.script"

function surge_stats()

local sim_obj_registry = simulation_objects.get_sim_obj_registry().objects

local sim_squads = {

["zaton"] = {},

["jupiter"] = {},

["pripyat"] = {},

["escape"] = {}

}

local sim_smarts = {

["zaton"] = {},

["jupiter"] = {},

["pripyat"] = {},

["escape"] = {}

}

-------------------------------------------------------

print_smarts_and_squads_by_level("zaton")

print_smarts_and_squads_by_level("jupiter")

print_smarts_and_squads_by_level("pripyat")

print_smarts_and_squads_by_level("escape")

 

"gamedata\scripts\surge_manager.script"

self.levels_respawn = {zaton = false, jupiter = false, pripyat = false, escape = false}

-------------------------------------------------------

xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_after_surge")

elseif(level.name()=="jupiter") then

xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_after_surge")

elseif not has_alife_info("pri_b305_fifth_cam_end") then

xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_after_surge")

elseif(level.name()=="escape") then

xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_after_surge")

---------------------------------------------------------

if(level.name()=="zaton") then

xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_2")

elseif(level.name()=="jupiter") then

xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_phase_2")

elseif not has_alife_info("pri_b305_fifth_cam_end") then

xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_surge_phase_2")

elseif(level.name()=="escape") then

xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_2")

---------------------------------------------------------

if(level.name()=="zaton") then

xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_1")

elseif(level.name()=="jupiter") then

xr_sound.set_sound_play(db.actor:id(), "jup_a6_stalker_medik_phase_1")

elseif not has_alife_info("pri_b305_fifth_cam_end") then

xr_sound.set_sound_play(db.actor:id(), "pri_a17_kovalsky_surge_phase_1")

elseif(level.name()=="escape") then

xr_sound.set_sound_play(db.actor:id(), "zat_a2_stalker_barmen_surge_phase_1")

---------------------------------------------------------

self.levels_respawn = {zaton = true, jupiter = true, pripyat = true, escape = true}

---------------------------------------------------------

self.levels_respawn = {zaton = true, jupiter = true, pripyat = true, escape = true}

---------------------------------------------------------

packet:w_bool(self.levels_respawn.zaton)

packet:w_bool(self.levels_respawn.jupiter)

packet:w_bool(self.levels_respawn.pripyat)

packet:w_bool(self.levels_respawn.escape)

----------------------------------------------------------

self.levels_respawn.zaton = packet:r_bool()

self.levels_respawn.jupiter = packet:r_bool()

self.levels_respawn.pripyat = packet:r_bool()

self.levels_respawn.escape = packet:r_bool()

 

 

 

Genior.gif

button.png

Ссылка на комментарий

Проблема решилась, а была она в том:

[esc_village_smart]:default
surge = 1; прописали возможность укрытия
territory = 1
sim_avail = true

 

а у меня было:

[esc_village_smart]:default_squad
sim_avail = false

 

 

Изменено пользователем MesnikAnd
Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...