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

[CoP] Ковыряемся в файлах


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

Капитан Кузьмичёв, В Notepad++ есть хорошая функция "искать в файлах" [Кэп как бы намекает ;)].

Configs\misc\bridge.ltx скопируй к себе и зарегистрируй его в system.ltx, вписав в начало #include "misc\bridge.ltx" по аналогии с уже имеющимися регами.

  • Спасибо 1

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

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

Опишу как я добавил мост в Лиманск из ЧН в ЗП. (все манипуляции проводил на стимовской лицензии ЗП!) Понадобятся файлы из чн: configs\misc\bridge.ltx - можно сразу скопировать по аналогичному пути в ЗП (секцию agru_door, если не иползуется, можно удалить); далее понадобятся фйлы bind_red_forest_bridge.script, db.script и xr_effects.script из папки scripts. Теперь переходим в ЗП. Копируем bind_red_forest_bridge.script в папку gamedata\scripts, Далее правим аналогичные ЧН-овским скрипты ЗП: в db.script переносим аналогично из ЧН-овского:

bridge_by_name = {}

и вниз пишем функции

function add_bridge( bridge, binder )
printf("adding bridge %s",bridge:name())
bridge_by_name[bridge:name()] = binder
add_obj( bridge )
end

function del_bridge( bridge )
bridge_by_name[bridge:name()] = nil
del_obj( bridge )
end

 

Теперь правим xr_effects.script:

-- Функции для управления мостом.

function bridge_down()
db.bridge_by_name["red_bridge"]:anim_forward()
end
function bridge_up()
db.bridge_by_name["red_bridge"]:anim_backward()
end
function bridge_stop()
db.bridge_by_name["red_bridge"]:anim_stop()
end

function anim_obj_down(actor, npc, p)
if p[1] ~= nil then
db.anim_obj_by_name[p[1]]:anim_forward()
end
end
function anim_obj_up(actor, npc, p)
if p[1] ~= nil then
db.anim_obj_by_name[p[1]]:anim_backward()
end
end
function anim_obj_stop(actor, npc, p)
if p[1] ~= nil then
db.anim_obj_by_name[p[1]]:anim_stop()
end
end

 

Спавним сам мост:

; cse_abstract properties
section_name = red_forest_bridge
name = red_bridge
position = -144.884460449219,10.0784387588501,-270.569519042969
direction = 0,0,0

; cse_alife_object properties
game_vertex_id = ваш вертекс
distance = 0
level_vertex_id = ваш левел вертекс
object_flags = 0xffffff3a
custom_data = <[collide]
ignore_static
[animated_object]
END

; cse_visual properties
visual_name = dynamics\scene_objects\red_forest\red_forest_bridge_01_dynamic

; cse_ph_skeleton properties
skeleton_name = bridge_down
skeleton_flags = 1

; cse_alife_object_physic properties
physic_type = 0x3
mass = 10

 

ну и прописываем в acdc (если нету) red_forest_bridge   => 'cse_alife_object_physic', чтоб запаковать спавн. Запускаем игру и видим наш мост:

 

Для управления мостом используем для примера логику из ЧН (это пока лично не проверял, т.к. ещё руки недошли):

[logic]

active = sr_idle

[sr_idle]
on_info = sr_idle@1 %=bridge_up()% ; =turn_off(513)%

[sr_idle@1]
on_info = {+red_bridge_bridge_move -red_bridge_down_done} sr_idle@2 %=bridge_down()% ; =turn_on(513)%

[sr_idle@2]
on_info = {-red_bridge_bridge_move -red_bridge_down_done} sr_idle@1 %=bridge_stop()% ; =turn_off(513)%

 

Вроде ничего не упустил. Извините, что пишу не по теме, но тут человек спрашивает, я его понимаю, т.к сам довольно долго бился с этим мостом, да и может ещё кому пригодится мой пост.

Изменено пользователем Grif_on
  • Спасибо 1
Ссылка на комментарий

ОГРОМНЕЙШЕЕ СПАСИБО!!!!!

Только что бился всё с логикой этого моста, кучу фалов перелопатил.

Всё прописал, как в твоём посте, и заработало!!! Мост не опускается!!!!!!!!!!!

Снова огромное тебе спасибо!!!

Изменено пользователем Капитан Кузьмичёв
Ссылка на комментарий

Не за что, рад, что помог :) . Забыл указать зарегистрировать bridge.ltx в system.ltx - #include "misc\bridge.ltx". Сразу не посмотрел на предыдущей странице, что @Сталкер Лом то же самое подсказал, но всё же... 

Изменено пользователем Grif_on
  • Нравится 1
Ссылка на комментарий

А как добавить новые загрузочные скриншоты?

Добавил новые локации, а гляжу при загрузке на синюю картинку какую-то.

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

Капитан Кузьмичёв, в папку textures\intro кидай файлы с именем intro_<Имя_локации>_<номер>. Например, Intro_escape_1.

Если есть СДК, то там в папке sources есть исходники для создания интро-текстур - рамка с побитым стеклом.

  • Спасибо 1

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Ссылка на комментарий
Добавил новые локации, а гляжу при загрузке на синюю картинку какую-то

В консоли глянь, что красным цветом написано. Добавь экран с таким названием в папку intro

Изменено пользователем monk
  • Спасибо 1
Ссылка на комментарий

Доброго времени суток! Подключил кордон к ЗП, заспавнил сквад сталкеров, но хочу, чтоб они днём стояли у Ж/Д моста, а ночью уходили в лагерь. Прописал им таргет смарт так: target_smart = {=is_day} esc_smart_terrain_6_8, esc_smart_terrain_5_7, но почему-то сквад не идёт на указанный смарт (и не возвращается на прежний), а прётся к переходу на болота. Подскажите, в чём может быть проблема?

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

 

 

Подскажите, в чём может быть проблема?

Опять-же, в отсутствии Кашпировских! :)

Ну вот сам, поставь себя на место тех, кто якобы должен тебе помочь: ты пишешь, что подключил новую локу к ЗП. Вот откуда нам знать, что там у тебя за esc_smart_terrain_6_8 и esc_smart_terrain_5_7 ? Ты бы хоть конфиги этих смартов приложил(под спойлер)!

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

 @UnLoaded, делал так:

[smart_terrain]


squad_id = 1
max_population = 1

[smart_terrain]
squad_id = 2
max_population = 1

[start_position_escape]
esc_smart_terrain_5_7_stalker_1_squad = esc_smart_terrain_5_7

[esc_smart_terrain_5_7_stalker_1_squad]:default_squad
sim_avail = true

[esc_smart_terrain_5_7_stalker_1_squad]:online_offline_group
faction = stalker
npc = sim_default_stalker_2, sim_default_stalker_1, sim_default_stalker_1, sim_default_stalker_1
target_smart = {=is_day} esc_smart_terrain_6_8, esc_smart_terrain_5_7

 

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

@Clayman, локацию зарегистрировал в sim_board.script, smart_terrain.script, surge_manager.script. Сматры в  simulation_objects_props тоже прописаны так:

[esc_smart_terrain_5_7]:default_base
surge = 1
sim_avail = true

 

[esc_smart_terrain_6_8]:default
sim_avail = true

 

Заодно смарты прописал и в game_graphs.ltx

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

@Grif_on, тогда не знаю, у меня такая конструкция с условием работает без проблем. Нужно все проверять с малого, пропиши по отдельности скваду target_smart =  esc_smart_terrain_6_8, посмотри, пойдут ли они туда, потом другой смарт. Все должно работать, где-то ты накосячил. А в смартах есть ссылки на конфиг-файлы? Сами конфиг файлы для смартов есть с разными ID сквадов?

Еще попробуй изменить:

[esc_smart_terrain_6_8]:default

territory = 1

sim_avail = true

 

Хотя этот параметр важен для сим-сквадов.

Изменено пользователем Clayman
  • Спасибо 1
Ссылка на комментарий

@Clayman, для пробы заспавнил сквад на Затоне у портовых кранов, а на ночь ему поставил смарт на "Шевченко", и сквад ночью без проблем побрёл на Шевченко. Значит, похоже, косяк нужно искать где-то на поключенной локации.

Ничего понять не могу (я всё разбраюсь насчёт target_smart = {=is_day} esc_smart_terrain_6_8, esc_smart_terrain_5_7) :) Заспавнил ГГ на блокпосту военных, после чего пошёл на смарт под Ж/Д мостом (esc_smart_terrain_6_8) - сквад на месте, где надо. Вернулся на блокпост и поспал до ночи. Снова пошёл к Ж/Д мосту - сквада нет,  добежал до смарта esc_smart_terrain_5_7 - там сквада тоже нет (хотя по логике ночью должен быть там). Пробегал какое-то время по всему кордону - сквада нигде нет. Вернулся на esc_smart_terrain_5_7 - сквад там. Дождался дня. Сквад выдвинулся на выход (на смарт esc_smart_terrain_6_8, подумал я, но решил за ним проследить) - сквад на esc_smart_terrain_6_8 не пошёл, а пошёл тыняться по кордону. Я решил вернуться на военный блокпост и словил вылет:

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...\stalker call of pripyat\gamedata\scripts\_g.script:479: bad argument #2 to 'format' (string expected, got nil)

(Хотя до этого 2 раза там был и вылета не было). Что я всем этим хочу сказать: почему-то, когда ГГ рядом сквад на нужный смарт не идёт, но когда ГГ "отходит подальше", то через время сквад как бы телепортируется на нужный смарт. Может быть, кто подскажет в чём может быть косяк? Просто хочу разобраться...

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

Дело в том, что передвижение сквадов в оффлайне (когда не рядом с гг) сильно упрощено, они через некоторое время как раз и практически "телепортируются" в нужный смарт. То, что они у тебя не хотят идти в онлайне - непонятно. Они должны передвигаться по граф-поинтам, может просто там путь запутанный?

По поводу вылетов - если ты оставил спавн и пути от ЧН, то вылеты будут. Там есть пути работ для смартов, в точках котрых прописаны флаги, которые не работают в ЗП. Из-за этого могут быть вылеты, когда нпс становятся на эти пути (работы). Все нужно тщательно проверять и чистить или по новой создавать свои.

  • Спасибо 1
Ссылка на комментарий

@Grif_on,

в смарте прописана работа для определённого кол-ва нпс. Если кол-во нпс больше работы, то вылет будет с примерно 70% вероятностью. Без вылета нпс будут вставлены друг в друга или ещё какой глюк... В ЧН, при переполнении работников (их не больше 7 на смарт - не база), происходят движковые вылеты или просто глюки.

Изменено пользователем warwer
  • Спасибо 1
Ссылка на комментарий

@Clayman@warwer, спасибо за ответы. Я для теста спавнил сквады, состоящие из sim_default_military_ , словил тот вылет. Сейчас прописал им "индивидуальные характеры" - вылета не стало. Буду пробовать разобраться со смартами. Если что, извиняйте за глупые вопросы, я ведь только учусь :) .

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

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

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

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

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

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

Войти

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

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

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