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

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


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

Есть же простой способ через файл  ui_main_menu завершить задание при нажатии на назначенную клавишу. Просто забыл, как правильно прописать данную функцию.

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

@IGOR™

if dik == DIK_keys.DIK_I then
           db.actor:give_info_portion("название_инфы")

end

или 

        elseif dik == DIK_keys.DIK_I then
           db.actor:give_info_portion("название_инфы")  

 

Изменено пользователем nasar75
  • Спасибо 2
  • Полезно 1

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

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

Робяты, у ПЫСов в файлах character_desc_....xml патроны  прописаны по-разному:

            [spawn] \n
            wpn_pm \n
            ammo_9x18_fmj \n

 

            [spawn] \n
            wpn_pm \n
            ammo_9x18_fmj = 1 \n

Вроде в обоих случаях патроны бесконечные... Или нет? В чОм отличие?

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

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

Отличий нет.

Число после знака равенства обозначает количество, в котором нужно заспавнить данный предмет в инвентарь персонажа. Без знака равенства и числа по умолчанию спавнится один предмет. Следовательно, что в первом, что во втором случае будет заспавнена одна пачка патронов.

 

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

Доброго дня, у меня такая проблема. Перегнал модель из ЧН под сталкер ТЧ. Загрузил ее в SDK. Ок, лог жалуется на "Can`t find shader models\model_pn". Ок. Открываю вкладку Surfaces, далее Shader выбираю model\model. Все отлично. Далее, вкладка Object в User Data пишу к примеру  "#include "models\capture\kombez_helmet_damage_low.ltx". Далее, вкладка Bones, гружу "антивыгиб суставов", все хорошо. И наконец, вкладка Motions, вместо "stalker_animation" выбираю "trader_animation". Ок. Экспортирую в OGF, вставляю в игру, в итоге вылет при загрузке:

Скрытый текст

* DVB created: 1536K
* DIB created: 512K
- r__tf_aniso 16
- r1_tf_mipbias 0.
* SSample: 1920x1080
* SSample: enabled
* GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30)
* GPU vertex cache: recognized, 24
*** RESET [84 ms]
"c:\modb\ff15e project\bin\xr_3da.exe" 
* phase time: 0 ms
* phase cmem: 69735 K
Кэширование объектов...
Loading objects...
Loading models...
stack trace:

0023:74C15EF8 KERNELBASE.dll
0023:71518E89 MSVCR80.dll, EH_prolog()
0023:0047628A XR_3DA.exe, motion_marks::Load()
0023:004759E0 XR_3DA.exe, motions_container::dock()
 

Подскажите как правильно сделать модель НПС на скелете торговца, где я мог допустить ошибку. Искал в поиске но нашел только создание НПС торговца.

Изменено пользователем FF15E

FF15E.gif

Ссылка на комментарий
10 минут назад, FF15E сказал:

на скелете торговца

Какого ? Сидор или Бармен ? Если Сидор, то тут уже сто раз было, что он у нас вообще-то монстр...

Ссылка на комментарий
4 минуты назад, AndreySol сказал:

Какого ? Сидор или Бармен ? Если Сидор, то тут уже сто раз было, что он у нас вообще-то монстр...

Я на форуме недавно, да и вообще в модострое. Многого еще не знаю. 

Сидорович.

Надо что бы НПС сидел в той же позе что и Сидор.

Изменено пользователем FF15E

FF15E.gif

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

@FF15E, Сидор - это монстр со своим скелетом. Нужно брать модель нпс и полностью пересаживать ее на скелет сидоровича.

  • Спасибо 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

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

Доброго дня, прошу прощения за нубский вопрос. Пытался сделать так что бы при приближении к НПС он сам начинал диалог.

Скрытый текст

[7763]

; cse_abstract properties
section_name = stalker
name = esc_salvador
position = -212.45524597168, -23.183708190918, -123.04392242432
direction = 0,0,0
 
; cse_alife_trader_abstract properties
money = 5000
character_profile = esc_salvador
 
; cse_alife_object properties
game_vertex_id = 59
distance = 0
level_vertex_id = 40608
object_flags = 0xffffffbf
custom_data = <<END
 
[logic]
active = walker@stay_at_position
combat_ignore = combat_ignore
danger = danger_condition
meet = meet
 
[walker@stay_at_position]
path_walk = esc_salvador_walk
path_look = esc_salvador_look
on_info = {+dialog_salvador_hello_end} walker1

 

[walker1]
path_walk = esc_salvador_sit_walk
path_look = esc_salvador_sit_look

[combat_ignore]
combat_ignore_cond = always
 
[danger_condition]
ignore_distance = 0
ignore_distance_corpse = 0

 

[meet]
use = self
use_wpn = self
meet_dialog = dialog_salvador_hello

[smart_terrains]
none = true
END
story_id = 6501
 
; cse_visual properties
visual_name = actors\soldier\soldier_beret_1
 
; cse_alife_creature_abstract properties
g_team = 0
g_squad = 1
g_group = 2
health = 1
dynamic_out_restrictions =
dynamic_in_restrictions =
 
upd:health = 1
upd:timestamp = 0
upd:creature_flags = 0
upd:position = -212.45524597168, -23.183708190918, -123.04392242432
upd:o_model = 0
upd:o_torso = 0.028013030067086,0,0.9996075630188
upd:g_team = 0
upd:g_squad = 1
upd:g_group = 2
 
; 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 = 1,2,2,1,2
predicate4 = 0,1,1,1
 
; cse_ph_skeleton properties
 
upd:start_dialog = dialog_salvador_hello
 
; se_stalker properties

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Вроде поставил: use и use_wpn = self но к нему хоть в упор подходи эффекта нет, если только самому не начать разговор.

Вопрос что я упустил?

 

И второй вопрос, звуки типа приветствия hello@talk_hello через какой скрипт прописываются?

Изменено пользователем FF15E

FF15E.gif

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

@FF15E, параметр meet нужно в активной секции прописывать, в твоем случае - в walker@stay_at_position

Настройка логики. Часть 1

Изменено пользователем naxac

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий
11 часов назад, FF15E сказал:

hello@talk_hello

Начнем с того, что первое Хеллоу - это анимка приветствия.

Далее - простейшим поиском по файлам обнаруживаем talk_hello прописанным в sound_theme.script

В этом скрипте прописывается скорее не сам звук, а звуковая тема. А вот пути к звуку и НПС, которые могут пользоваться этой темой прописываются в 

GSC World Publishing\S.T.A.L.K.E.R\gamedata\config\misc\script_sound.ltx

 

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

Привет всем! Столкнулся с одной проблемой. Мне надо по сюжету чтобы группа (или один) НПС перешли из одной точки локации в другую удалённую. Я делаю следующее:

Скрытый текст

[logic]
active = walker
 

[walker]    ----------- это первая точка
path_look = wiz_dold_mrakobes_11_look
path_walk = wiz_dold_mrakobes_11_walk
on_info = {+wiz_mracobes_dialog2_portion} walker2

 

[walker2]   ----------- это путь перехода (чтоб бежал по определённому пути)
path_walk = wiz_dold_mrakobes_base_go_walk
on_signal = base2 | walker3 ----- добегает до последней точки, получает сигнал и переходит в 3ю схему

 

[walker3] ----------- это конечная точка
path_look = wiz_dold_mrakobes_base_1_look
path_walk = wiz_dold_mrakobes_base_1_walk

 

-----------а это соотвецтвующие пути ------------

----------- это первая точка

[wiz_dold_mrakobes_11_look]
points = p0
p0:name = wp00|a=guard
p0:flags = 0x1
p0:position = 56.7250289916992,1.65562999248505,9.21627235412598
p0:game_vertex_id = 5457
p0:level_vertex_id = 270137


[wiz_dold_mrakobes_11_walk]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 56.6634635925293,1.65562999248505,15.45103931427
p0:game_vertex_id = 5457
p0:level_vertex_id = 270146

 

----------- это путь перехода (чтоб бежал по определённому пути)

 

[wiz_dold_mrakobes_base_go_walk]
points = p0,p1,p2
p0:name = wp00|a=run
p0:position = 66,0.9,96
p0:game_vertex_id = 5394
p0:level_vertex_id = 280914
p0:links = p1(1)

 

p1:name = wp01|a=run         (**
p1:position = 153,0.9,96
p1:game_vertex_id = 5434
p1:level_vertex_id = 358131
p1:links = p2(1)

 

p2:name = wp02|a=assault|sig=base2  (*
p2:position = 185,0.9,171
p2:game_vertex_id = 5385
p2:level_vertex_id = 392266

 

---------- это конечная точка

 

[wiz_dold_mrakobes_base_1_look]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 183,1,161
p0:game_vertex_id = 5587
p0:level_vertex_id = 389876


[wiz_dold_mrakobes_base_1_walk]
points = p0
p0:name = wp00
p0:flags = 0x1
p0:position = 184,0.899999976158142,167
p0:game_vertex_id = 5605
p0:level_vertex_id = 390679

После получения поршня НПС переходят во 2й волкер, добегают до точки с сигналом on_signal = base2 переходят в 3й волкер. Все занимают свои места. Проблемы начинаются тогда, когда я убегаю от них далеко, а потом возвращаюсь - вижу картину в которой они все ломятся в последнюю точку (или предпоследнюю помеченные красными звёздами в спойлере) предыдущего пути, добегают до неё и возвращаются в walker3. И пока я рядом всё в порядке, стоит убежать - опять все начинают сходить с ума. В чём может быть дело?

Изменено пользователем riddik121
опечатка
 

Надо дело довести до конца!

Ссылка на комментарий
36 минут назад, riddik121 сказал:

В чём может быть дело?

В он-лайн радиусе.

Логика, которую ты показал - это персоналка или какой-то гулаг ?

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

@AndreySol, Персоналка, вот полная логика

Скрытый текст

[smart_terrains]
none = true

 

[logic]
active = walker
on_death = death

 

[walker]
path_look = wiz_dold_mrakobes_11_look
path_walk = wiz_dold_mrakobes_11_walk
on_info = {+wiz_mracobes_dialog2_portion} walker2

 

[walker2]
path_walk = wiz_dold_mrakobes_base_go_walk
on_signal = base2 | walker3
danger = danger_condition

 

[walker3]
path_look = wiz_dold_mrakobes_base_1_look
path_walk = wiz_dold_mrakobes_base_1_walk
on_info = {+wiz_mracobes_dialog4_portion} walker4
danger = danger_condition

 

[walker4]
path_look = wiz_dold_out_1_look
path_walk = wiz_dold_out_1_walk
danger = danger_condition

 

[danger_condition]
ignore_distance_corpse = 0
ignore_distance_sound = 0
danger_inertion_time_grenade = 500
danger_inertion_time_hit = 500

 

[death]
on_info = %+wiz_dolg1_death%

 

[spawn]
medkit_army = 1
bandage = 2

 

[spawner]
cond = {+enot_dialog4_portion -zales_dolg_spawn}

 

 

Надо дело довести до конца!

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

@riddik121, 

Дело в  *active = walker* и неудаленном поршне...

Переписывай актив на все секции волкер. Выдавай дополнительные поршень для третьего волкера.

Скрытый текст

[logic]
active = {+wiz_mracobes_dialog2_portion -wiz_dold_mrakobes_on_base}walker2,{+wiz_dold_mrakobes_on_base -wiz_mracobes_dialog4_portion}walker3,{+wiz_mracobes_dialog4_portion}walker4,walker

[walker]
path_look = wiz_dold_mrakobes_11_look
path_walk = wiz_dold_mrakobes_11_walk
on_info = {+wiz_mracobes_dialog2_portion} walker2

[walker2]
path_walk = wiz_dold_mrakobes_base_go_walk
on_signal = base2 | walker3 %+wiz_dold_mrakobes_on_base%

[walker3]
path_look = wiz_dold_mrakobes_base_1_look
path_walk = wiz_dold_mrakobes_base_1_walk
on_info = {+wiz_mracobes_dialog4_portion} walker4 

[walker4]
path_look = wiz_dold_out_1_look
path_walk = wiz_dold_out_1_walk
danger = danger_condition

 

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

@riddik121, попробуй переписать секцию walker2 так:

Скрытый текст

[walker2]
path_walk = wiz_dold_mrakobes_base_go_walk
on_signal = base2 | %+wiz_mracobes_to_walker3%

on_info = {+wiz_mracobes_to_walker3} walker3
danger = danger_condition

 

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

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

@Змея, Я попробую, но свою схему я брал со схемы Круглова на дикой территории:

Скрытый текст

[logic@bar_ecolog_professor]
active = camper@bar_ecolog_professor
on_death = death@ecolog_crush
combat_ignore = combat_ignore

 

[camper@bar_ecolog_professor]
path_walk = professor_walk
path_look = professor_look
def_state_moving = assault
meet = meet@ecolog_kruglov
radius = 0
combat_ignore_cond = always
on_info = {+rostok_objective_1} camper@bar_ecolog_professor_w 
danger = danger_condition@2
wounded = wounded@ignore_kruglov

 

[camper@bar_ecolog_professor_w]
path_walk = professor_walk
path_look = professor_look_w
def_state_moving = assault
meet = meet@ecolog_kruglov
radius = 0
combat_ignore_cond = always
on_info = {=rostok_dist_to_actor_le(7)} remark@kruglov_dialog_1
danger = danger_condition@2
wounded = wounded@ignore_kruglov


[remark@kruglov_dialog_1]
snd = rostok_kruglov_help_1
anim = hello_wpn
target = actor
meet = meet@ecolog_kruglov
combat_ignore_cond = {!actor_enemy}
on_info = {+bar_kruglov_follow_actor} remark@kruglov_dialog_2
danger = danger_condition@2
wounded = wounded@ignore_kruglov

 

[remark@kruglov_dialog_2]
snd = rostok_kruglov_help_2
anim = guard_na
target = actor
meet = meet@ecolog_kruglov
combat_ignore_cond = {!actor_enemy}
on_signal = sound_end | walker@bar_ecolog_professor_companion 
danger = danger_condition@2
wounded = wounded@ignore_kruglov

 

[walker@bar_ecolog_professor_companion]   -------вот тут мы начинаем с ним бежать
path_walk = escape_1_walk
on_signal = freedom_chase | camper@bar_rescue_research_hide_1a %=bar_freedom_spam_5 +bar_rescue_research_chasing_start =smart_terrain_force_update(bar_ecolog_crush)%
combat_ignore_cond = {!actor_enemy}
danger = danger_condition@2
wounded = wounded@ignore_kruglov
meet = no_meet
def_state_moving1 = assault
def_state_moving2 = assault
def_state_moving3 = assault

 

[camper@bar_rescue_research_hide_1a]  -------бежим дальше
path_walk = escape_1a_walk
path_look = escape_hide_1_look
on_signal = arrived_1 | camper@bar_rescue_research_hide_1 %=rostok_kruglov_attract_1 -bar_kruglov_follow_talk =smart_terrain_force_update(bar_freedom_attack)%
combat_ignore_cond = {!actor_enemy}
def_state_moving = assault
danger = danger_condition@2
wounded = wounded@ignore_kruglov
meet = no_meet

 

[camper@bar_rescue_research_hide_1]  ---------и только тут первая остановка
path_walk = escape_hide_1_walk
path_look = escape_hide_1_look
def_state_moving = assault
def_state_campering = hide_na
meet = meet@ecolog_kruglov
no_retreat = true
radius = 0
on_info = {+bar_rescue_research_chasing_end} camper@bar_ecolog_professor_companion_1 
on_info2 = {=rostok_gulag_inactive} remark@bar_ecolog_professor_companion_1 %+bar_rescue_research_chasing_end% 
danger = danger_condition@2
wounded = wounded@ignore_kruglov

 

 

[bar_ecolog_crush_escape_1_walk]
points = p0,p1,p2
p0:name = wp01|a=assault
p0:position = -287.851867675781,-2.14576721191406e-005,107.234718322754
p0:game_vertex_id = 1360
p0:level_vertex_id = 459


p0:links = p1(1)

p1:name = wp02|a=assault
p1:position = -275.079345703125,-2.14576721191406e-005,107.682624816895
p1:game_vertex_id = 1360
p1:level_vertex_id = 2914
p1:links = p2(1)

 

p2:name = wp05|a=assault|sig=freedom_chase   ------------вот сигнальная точка
p2:position = -275.332305908203,-0.119336128234863,99.9599533081055
p2:game_vertex_id = 1360
p2:level_vertex_id = 2901

 

 

[bar_ecolog_crush_escape_1a_walk]
points = p0,p1
p0:name = wp00|a=assault
p0:position = -273.132049560547,-1.9073486328125e-005,87.8376159667969
p0:game_vertex_id = 1361
p0:level_vertex_id = 3425
p0:links = p1(1)

 

p1:name = wp01|sig=arrived_1  ------------вот сигнальная точка
p1:position = -276.204803466797,0,63.5521659851074
p1:game_vertex_id = 1410
p1:level_vertex_id = 2473

И Круглов никуда не ломится когда я убегаю от него далеко, а наоборот идёт дальше. Даже рекомендация есть, чтоб Круглов не погиб в жарках под мостом надо от него убежать подальше. В своей схеме я пробовал и camper вместо walker, результат тот же. Может это связано с самими локациями? Пока этот глюк наблюдается на присоединённых локациях, на оригинальных пока не наблюдал, надо будет протестировать.

 

Надо дело довести до конца!

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

Этот же глюк наблюдается когда группа НПС идёт далеко (локация большая) и путь состоит из множества точек. И так же, когда я убегаю далеко, а потом возвращаюсь они бегут обратно, пытаясь начать свой путь с начала.

 

Надо дело довести до конца!

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

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

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

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

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

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

Войти

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

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

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