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

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


Halford

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

@Ilyagovsa, в логике НПС в секции meet должен быть параметр use со значением true.

Как-то так:

[meet]
use = true

Также следует добавить НПС в дескрипшен (его строки в character_desc_...) диалоги. Например, стандартная фраза "Бывай", которая диалог закончит. После секции supplies пишем

<actor_dialog>actor_break_dialog</actor_dialog>
Изменено пользователем FantomICW

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@FEET,  предлагаю не жить позавчерашним днем, и создать НПС более удобным способом - через сквад. Если не знаешь как это делать, скажи, помогу разобраться.

Для спавна сквадов с НИ даже отдельный файл есть - simulation.ltx

В настройках сквада в configs/misc/squad_sescr_.ltx можно задать параметр spawn_point - вей-поинт, где заспванится сквад.

А в настройках смарта, где будет НПС, нужно в секции [exclusive] задать путь к логике НПС:

[exclusive]
название_эксклюзивной_логики = локация\файл_с_логикой.ltx

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@FEET,так НПС должен на смарте находится + с эксклюзивной логикой, чтобы все работало на 100%. 

Я обычно |a=анимка добавляю в look. Работает. 

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@дядяСаша, срабатывают два каких-то спейс рестриктора, которые телепортируют ГГ и начинают кат-сцену. Просто до перехода нужно выдать инфопорции:

("jup_first_meet_made")
("jup_b217_welcome_faded")
("jup_b217_welcome_guide_talked")
("jup_b217_pp_end_in_scene")
("jup_b217_welcome_tech_talked")
("jup_b217_guide_welcome_end")
("jup_b217_tech_welcome_end")
("jup_b217_tech_instruments_start")
("jup_b217_stalker_tech_met")
Изменено пользователем FantomICW

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

 

 


или наоборот

Все верно, в аргументе вызова через логику указывается id_сквада:смарт.

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

Доброго дня! Создал одну сложную логику рестриктора, вроде все как надо, но на определенном этапе действий получаю вылет:
 

scripts\xr_logic.script:777: attempt to compare nil with number
[sr_idle@knock_out]
on_info  = sr_idle@hit_ppe %=disable_ui =run_cam_effector_global(hit_back)%


[sr_idle@hit_ppe]
on_info  = sr_idle@go_black %=run_postprocess(snd_shock_effector:9914)%


[sr_idle@go_black]
on_game_timer = 20 | sr_idle@black_screen %=run_postprocess(fade_in:9915) =stop_postprocess(9914)%


[sr_idle@black_screen]
on_game_timer = 25 | %=run_postprocess(black:9916:true) +sec_heli_black_box_black_screen%
on_game_timer2 = {+sec_heli_black_box_black_screen -sec_heli_black_box_awake} 20 | sr_idle@return_screen_wake_up


[sr_idle@return_screen_wake_up]
on_info = {+sec_heli_black_box_black_screen -sec_heli_black_box_awake} %=stop_postprocess(9915) =stop_postprocess(9916) =enable_ui() +sec_heli_black_box_awake%
on_info2= {+sec_heli_black_box_awake} %=run_cam_effector_global(surge_01)%

 

 

Запускаются первые эффекты, где-то после секции [sr_idle@hit_ppe], когда начинает темнеть, вылетает. Судя по скрипту, какие-то проблемы с временем.

Можете подсказать, что конкретно не так? 

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@Старлей,@_Val_, спасибо, ребята. Таки в условии проблема была. Я догадывался, что оно может сбоить, с другой стороны смотрю, в роде же можно так...Спасибо еще раз :)

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@ммихаилл, делается все точно так же, как и сквад НПС. Вот, к примеру, секция сквада с бюррерами из squad_descr_jupiter.ltx:


[jup_b208_burers_squad]:online_offline_group
faction = monster
npc = burer_normal, burer_normal
target_smart = jup_b208 
spawn_point = jup_b208_burer_lair_1_spawn_point
story_id = jup_b208_burers_squad
Изменено пользователем FantomICW

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@ммихаилл, я просто привел пример секции сквада с монстрами. Спавнятся так же, как и НПС

Как ты хочешь заспавнить: по условию, с начала игры или респавн? 

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

 

 


можно как-то из xml перейти в script?

Давай конкретней, товарищ. Ну, в туториалах, к примеру, такое вот есть:

<function_on_stop>xr_effects.pri_a28_talk_ssu_video_end</function_on_stop>
<function_check_start>outro_cond.skadovsk_neutral_cond</function_check_start>
<action id="use" finalize="1">xr_effects.jup_b32_place_scanner</action>

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@Сталкер Лом, воистину воскрес! 

Сейчас накопал следующее:

В travel_manager.script есть некоторые элементы, которые дают основания предположить, что на смартах существует некий поинт, куда ГГ телепортируется:

local traveler_actor_path = nil
local point = patrol(traveler_actor_path)
--local dir = vector():sub( point:point(0), point:point(1) ):getH()
--local dir = vector():sub( point:point(1), point:point(0) ):normalize():getH()
local dir = -point:point(1):sub(point:point(0)):getH()
db.actor:set_actor_direction(dir)
db.actor:set_actor_position(point:point(0))
traveler_actor_path = smart.traveler_actor_path

 

 

Как видишь, похоже, traveler_actor_path - это какое-то стандартное значение элемента скриптов смартов. Я решил поискать какой-нибудь подозрительный вейпоинт в way_zaton.ltx, и таки нашел:

 

Интуиция не подвела. На большинстве смартов есть поинт с название смарт_traveller_actor. Дальше пошарил тегом traveller_actor по скриптам, и вот, смотри, что нашлось в smart_terrain.script:

 

Теперь вроде все ясно, касательно traveller_actor_path и постфикса _traveller_actor :)

Похожая фишка, видимо, и для поинтов сквадов. Кстати, скорее всего, позиция ГГ - это поинт p1, а взгляд - p0. Это видно здесь:

 

db.actor:set_actor_position(point:point(0))
if level.patrol_path_exists(self:name() .. "_traveller_actor") then
printf("Smart_terrain [%s] has no traveller_actor path!!!!!", self:name())
self.traveler_actor_path = self:name() .. "_traveller_actor"
end

 

[zat_b14_smart_terrain_traveller_actor]
points = p0,p1
p0:name = wp00
p0:position = 369.860046386719,-6.12371921539307,271.332641601563
p0:game_vertex_id = 67
p0:level_vertex_id = 1579185
p0:links = p1(1)


p1:name = wp01
p1:position = 371.552795410156,-6.11478996276855,269.460601806641
p1:game_vertex_id = 67
p1:level_vertex_id = 1582053

 

  • Нравится 1

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

 

 


cfg = scripts\escape\smart_terrain\esc_sid.ltx

По-моему, под кастом датой в спавне нужно ставить END.

Дальше - что с секцией смарта в его конфиге? 

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@Jeka81, функцию отправки сообщения скинь сюда. 

Вообще, иконка - это 4-й аргумент функции news_maganer.send_tip и 3-й аргумент движковой функции give_game_news.

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@Jeka81, короче, функцию выглядит так:

news_manager.send_tip(db.actor, "текст_или_string_id_текса", задержка, "иконка_из_таблицы", время_показа, id_нпс)

Таблица находится в news_manager.script.

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение

@stalker_grez, по IP гадать мало кто умеет :)

Скидывай логику рестриктора, которая сейчас. Кроме того, меня напрягает вот этот момент:

 

 


xr_effects.scipt

 

 


(first_speaker, second_speaker)

Зачем тебе аргументы диалогов в xr_effects.script? Обычно выставляется один из таких вариантов:

function test(actor, npc)
function test(actor, npc, p)
function test()
Изменено пользователем FantomICW

c57d8f0c86.png

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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