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

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


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

@DarkSnowder Смотря что делал, может просто в логике не указал точку look, или указал, но не правильно. Если сталкер в гулаге, то точки должны называться: имя_гулага_имя_точки, а в логике имя_точки. Покажи добавленные точки и логику, а там видно будет.  Ну или в _g.script перед 180 строкой выведи в лог:  get_console():execute("flush") так точно поймем, на какой именно точке всё валится. 

Изменено пользователем Labadal
  • Нравится 1

God save Hatsune Miku!

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

@Labadal 

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

;*************** pri_monolith *******************
[logic@pri_monolith_leader]
active = walker1@pri_monolith_leader

[walker1@pri_monolith_leader]
path_walk = leader_walk
path_look = leader_look


[logic@pri_monolith_camper1]
active = camper1@pri_monolith

[camper1@pri_monolith]
path_walk = balcony_sniper1_walk
path_look = balcony_sniper1_look


[logic@pri_monolith_camper2]
active = camper2@pri_monolith

[camper2@pri_monolith]
path_walk = balcony_sniper2_walk
path_look = balcony_sniper2_look


[logic@pri_monolith_patrol1]
active = patrol1@pri_monolith

[patrol1@pri_monolith]
path_walk = patrol1_walk
path_look = patrol1_look


[logic@pri_monolith_patrol3]
active = patrol3@pri_monolith

[patrol3@pri_monolith]
path_walk = patrol3_walk
path_look = patrol3_look


[logic@pri_monolith_kamp1]
active = kamp1@pri_monolith

[kamp1@pri_monolith]
center_point  = kamp5
;path_walk = kamp5_task
radius = 2.4
danger = danger_ignore@pri_monolith
on_timer = 150000 | kamp3@pri_monolith

[kamp3@pri_monolith]
center_point  = kamp3
path_walk = kamp3_task
radius = 2.4
danger = danger_ignore@pri_monolith
on_timer = 150000 | kamp1@pri_monolith


[logic@pri_monolith_patrol4]
active = patrol4@pri_monolith

[patrol4@pri_monolith]
path_walk = patrol4_walk
path_look = patrol4_look


[logic@pri_monolith_kamp2]
active = kamp2@pri_monolith

[kamp2@pri_monolith]
center_point  = kamp5
path_walk = kamp5_task
radius = 2.4
danger = danger_ignore@pri_monolith


[logic@pri_monolith_patrol5]
active = patrol5@pri_monolith

[patrol5@pri_monolith]
path_walk = patrol5_walk
path_look = patrol5_look


[logic@pri_monolith_patrol6]
active = patrol6@pri_monolith

[patrol6@pri_monolith]
path_walk = patrol6_walk
path_look = patrol6_look


[logic@pri_monolith_patrol7]
active = patrol7@pri_monolith

[patrol7@pri_monolith]
path_walk = patrol7_walk
path_look = patrol7_look


[logic@pri_monolith_patrol8]
active = patrol8@pri_monolith

[patrol8@pri_monolith]
path_walk = patrol8_walk
path_look = patrol8_look


[logic@pri_monolith_patrol10]
active = patrol10@pri_monolith

[patrol10@pri_monolith]
path_walk = patrol10_walk
path_look = patrol10_look

[logic@pri_monolith_patrol11]
active = patrol11@pri_monolith

[patrol11@pri_monolith]
path_walk = patrol11_walk
path_look = patrol11_look


[logic@pri_monolith_patrol12]
active = patrol12@pri_monolith

[patrol12@pri_monolith]
path_walk = patrol12_walk
path_look = patrol12_look


[logic@pri_monolith_patrol14]
active = patrol14@pri_monolith

[patrol14@pri_monolith]
path_walk = patrol14_walk
path_look = patrol14_look

[logic@pri_monolith_walker1]
active = walker1@pri_monolith

[walker1@pri_monolith]
path_walk = prayer1_walk
path_look = prayer_look2


[logic@pri_monolith_walker2]
active = walker2@pri_monolith

[walker2@pri_monolith]
path_walk = prayer2_walk
path_look = prayer_look2


[logic@pri_monolith_walker3]
active = walker3@pri_monolith

[walker3@pri_monolith]
path_walk = prayer3_walk
path_look = prayer_look2


[logic@pri_monolith_walker4]
active = walker4@pri_monolith

[walker4@pri_monolith]
path_walk = prayer4_walk
path_look = prayer_look1


[logic@pri_monolith_walker5]
active = walker5@pri_monolith

[walker5@pri_monolith]
path_walk = prayer5_walk
path_look = prayer_look1


[logic@pri_monolith_walker6]
active = walker6@pri_monolith

[walker6@pri_monolith]
path_walk = prayer6_walk
path_look = prayer_look1


[danger_ignore@pri_monolith]
ignore_distance = 5

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

--' Главная база монолита (обновлённая)
    if type == "pri_monolith" then
        t = { section = "logic@pri_monolith_leader",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = "",
            position_threshold = 600,
            predicate = function(obj_info)
                            return obj_info.profile_name == "pri_monolith_leader"
                        end    
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_camper1",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_camper2",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol1",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol3",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_kamp1",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol4",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_kamp2",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol5",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol6",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol7",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol8",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol10",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol11",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol12",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_patrol14",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_walker1",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_walker2",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_walker3",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_walker4",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_walker5",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        t = { section = "logic@pri_monolith_walker6",
            idle = 0,
            prior = 5, state = {0},
            in_rest = "", out_rest = ""
        }
        table.insert(sj, t)
        end    
end    

вот сами точки в редакторе

Лучше сделать мод с 0, чем пытаться залатать багованный.

DarkSnowder.gif

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

@DarkSnowderНа первый взгляд вроде и нормально всё.. Но тут что угодно быть может, вплоть до косяков с флагами. Знаем - проходили. Попробуй  в _g.script перед функцией function FSM:start() вывести в лог:  get_console():execute("flush"), и скинь лог после вылета. Если получится - там должна быть указана проблемная точка, как вариант. 

God save Hatsune Miku!

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

@DarkSnowder ты все точки посмотри, есть ли связь между ними, в расширенном point mode.

Подскажите, у меня НПС когда идёт на ГГ не может сдвинуть его с места, как поправить?

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

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

Здравствуйте, подскажите, прописал нпсам (в character_desc_escape) бинокль, значит. Вот весь спавн:
 

			wpn_walther \n
			ammo_9x19_fmj \n
			wpn_lr300 \n
			ammo_5.56x45_ap = 1 \n
			device_torch \n
			wpn_binoc \n

А нпсы эти бинокли выбрасывают при спавне. Очень интересно, конечно. При спавне бинокли выбрасывают, а потом анимку binocular отыгрывают как я в 5 лет. В общем, подскажите че делать))

@DarkSnowder Подскажите ещё вот что, за что отвечают следующие теги в секции персонажа:

 

1. <specific_character id="esc_wolf" team_default = "1"> (конретно team_default интересует)
2. <terrain_sect>stalker_terrain</terrain_sect>
3. <crouch_type>-1</crouch_type>

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

 

God save Hatsune Miku!

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

Подскажите, есть ли у кого программка OGFViewer, поддерживающая запуск с параметрами/атрибутами? 

т.е. прописав путь до ogf файла в ярлыке вьювера в поле "объект", чтоб при открытии проги по ярлыку - открылся ещё и файл. Спасибо.

God save Hatsune Miku!

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

Здравствуйте, Платформа тч. Скачивал от сюда: https: www. playground. rustalkershadowofchernobylfilestalkerv04xraysdk-857862. 
Проблема в том, что как задать диалоги Нпс, которого я только что создал? 
Я пытался много раз. Гайдов нет, только есть для персонажей, которые есть в файлах. через костюм дату пробовал. Игра вообще перестала сохраняться, выдавая ошибку. Подскажите, пожалуйста.
 

Добавлено  Купер,

Перемещено из темы.

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

@Владос 

В профиле нпс, start_dialog / actor_dialog:

http://stalkerin.gameru.net/wiki/index.php?title=Редактирование_NPC

 

 

Добавлено  Купер,

Перемещено.

Ссылка на комментарий
21.08.2024 в 02:38, Labadal сказал:

А нпсы эти бинокли выбрасывают при спавне.

В секции [stalker] (m_stalker.ltx):

use_single_item_rule = false

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

Да движку "фиолетово" на самом деле.

Скрытый текст
void CAI_Stalker::on_after_take						(const CGameObject *object)
{
	if (!g_Alive())
		return;

	if (!READ_IF_EXISTS(pSettings,r_bool,cNameSect(),"use_single_item_rule",true))
		return;

	const CWeapon				*new_weapon = smart_cast<const CWeapon*>(object);
	if (!new_weapon)
		return;

	TIItemContainer::iterator	I = inventory().m_all.begin();
	TIItemContainer::iterator	E = inventory().m_all.end();
	for ( ; I != E; ++I)
		update_conflicted		(*I,new_weapon);
}

 

Формально к on/off вопросов даже больше.

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

Всё равно не работает, всегда бинокли выбрасывают

Добавлено  Купер,

Правила форума, п. 2.5 (правописание).
Рекомендуется к ознакомлению: здесь.

Предупреждение, устно.

God save Hatsune Miku!

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

Всем привет. Очень хочу себе в DSH моде сделать вид от 1-2-3 лица, я подбираю вещи и оружие , чтобы с кайфом выглядеть и играть. Автор мода DSH запретил через движок игры изменение камеры. В игре в управлении клавиши назначить можно, но они ничего не делают. Кто поможет мне с данной проблемой? Я гарантирую хорошее вознаграждение. Пишу здесь, потому что это же ОГСР движок.

Добавлено  Опричник,

Перемещено.

Ссылка на комментарий
23.08.2024 в 11:45, Купер сказал:

Формально к on/off вопросов даже больше.

Разрабы сделали сталкерскую булеву, и подобные параметры работают при значениях on / yes / true / 1, и отключаются при любых других.

 

@Labadal 

В оригинале есть binocular_a, добавь его в attachable_items (m_stalker.ltx), нужным нпс в спавн (ещё можно в character_items.xml), убрать из продажи (trade_), также в скрипты state_mgr_animation.script и state_mgr_animation_list.script (по аналогии с wpn_binoc), и death_manager.script, функция keep_item (на примере bolt).

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

Столкнулся с такой проблемой - прописал в вай-поинтах код на проигрывание фразы у НПС, когда он к этой точке подходит

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

wp02|a=walk|s=chern_patogenic1

В конфиге script_sound тоже фразу прописал

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

[chern_patogenic1_seq]
stalker     = 0,characters_voice\human_02\bandit\states\health\health_1

В sound_theme скрипт тоже прописал

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

chern_patogenic1                = {min_snd = 3, max_snd = 5, rnd = 100, prior = 5, rnd_id = id(), into_id = id(), max_ids = {}},

но Бот в упор не хоче ничего произносить. Где косяк допустил, не подскажите?

Лучше сделать мод с 0, чем пытаться залатать багованный.

DarkSnowder.gif

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

Народ, такой вопросец - прописал значит монстру такую логику

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

[logic]
active = mob_camp1
on_combat = mob_combat
on_death = mob_death@cher_izlom_ded

[mob_combat]
on_info = nil %=disable_combat_handler%

 

[mob_camp1]
path_home = cher_izlom_walk
path_look = cher_izlom_look
state = invis
;friendly = true
on_actor_dist_le = 3 | mob_camp2 %=monster_berserk%
on_info = {+cher_pathogenic_search_novice_izlom} mob_camp2 %=monster_berserk%

 

[mob_camp2]
path_home = cher_izlom_attack_walk
path_look = cher_izlom_attack_look
state = vis
;on_actor_dist_le = 3 | nil
;friendly = true
;on_signal = arrived | nil

 

[mob_death@cher_izlom_ded]
on_info = %+cher_izlom_hunt_dead%

 В итоге при переходе с camp1 на camp2 вылетает с жалобой на "invis"

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

[25.08.24 20:12:58.918] [38852] !!****************************[ABORT]*********************************
[25.08.24 20:12:58.918] [38852] stack traceback:
    d:\dreamreader\gamedata\scripts\_g.script:177: in function 'abort'
    d:\dreamreader\gamedata\scripts\mob_state_mgr.script:40: in function 'set_state'
    d:\dreamreader\gamedata\scripts\mob_camp.script:28: in function <d:\dreamreader\gamedata\scripts\mob_camp.script:24>
    d:\dreamreader\gamedata\scripts\xr_logic.script:498: in function 'issue_event'
    d:\dreamreader\gamedata\scripts\xr_logic.script:385: in function 'activate_by_section'
    d:\dreamreader\gamedata\scripts\xr_logic.script:1436: in function 'initialize_obj'
    d:\dreamreader\gamedata\scripts\xr_gulag.script:1189: in function 'setup_gulag_and_logic_on_spawn'
    d:\dreamreader\gamedata\scripts\bind_monster.script:139: in function <d:\dreamreader\gamedata\scripts\bind_monster.script:132>
[25.08.24 20:12:58.918] [38852] mob_state_mgr: object ''cher_fracture_weak_guest'': unknown state ''invis'' requested
[25.08.24 20:12:58.918] [38852] !!********************************************************************
[25.08.24 20:12:58.918] [38852] *********************************************************************************
[25.08.24 20:12:58.918] [38852] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR:
d:\dreamreader\gamedata\scripts\_g.script:180: mob_state_mgr: object '%s': unknown state '%s' requested
stack traceback:
    [C]: at 0x7ff687e9fec4
    [C]: in function 'error'
    d:\dreamreader\gamedata\scripts\_g.script:180: in function 'abort'
    d:\dreamreader\gamedata\scripts\mob_state_mgr.script:40: in function 'set_state'
    d:\dreamreader\gamedata\scripts\mob_camp.script:28: in function <d:\dreamreader\gamedata\scripts\mob_camp.script:24>
    d:\dreamreader\gamedata\scripts\xr_logic.script:498: in function 'issue_event'
    d:\dreamreader\gamedata\scripts\xr_logic.script:385: in function 'activate_by_section'
    d:\dreamreader\gamedata\scripts\xr_logic.script:1436: in function 'initialize_obj'
    d:\dreamreader\gamedata\scripts\xr_gulag.script:1189: in function 'setup_gulag_and_logic_on_spawn'
    d:\dreamreader\gamedata\scripts\bind_monster.script:139: in function <d:\dreamreader\gamedata\scripts\bind_monster.script:132>
[25.08.24 20:12:58.918] [38852] *********************************************************************************
[25.08.24 20:12:58.918] [38852] 
FATAL ERROR

[error]Expression    : FATAL ERROR
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : C:\Games\OGSR\ogsr_engine\COMMON_AI\script_engine.cpp
[error]Line          : 60
[error]Description   : [CScriptEngine::lua_pcall_failed]: d:\dreamreader\gamedata\scripts\_g.script:180: mob_state_mgr: object '%s': unknown state '%s' requested


[25.08.24 20:12:58.918] [38852] ********************************************************************************
[25.08.24 20:12:58.918] [38852] !![LogStackTrace] Thread: [TTAPI thread 6]
[25.08.24 20:12:58.945] [38852] !!stack trace:
 

Причём у другого моба с таким же state вылета нет (ну помните того сосыча в ТД, который на новиса Меченого ловил)

 

Я так понял state = invis-vis отвечает за видимость моба (типа в camp1 он невидим, а во втором уже видим) Мне как раз надо, чтоб сцена засады работала нормально, но вот чёт крашиться.

 

Может кто совет по логике подсказать?

Лучше сделать мод с 0, чем пытаться залатать багованный.

DarkSnowder.gif

Ссылка на комментарий
Только что, Labadal сказал:

как засунуть предмет (допустим: test_pda) в труп нужного мне сталкера.  

В character_desc в его секцию строку добавь.

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

@guid 

24.08.2024 в 18:52, guid сказал:

Автор мода DSH запретил через движок игры изменение камеры.

Автор мода не является автором ни игры сталкер, ни движка ОГСР, следовательно - он не может тебе запретить редактировать этот движок по своему усмотрению.

@Капрал Хикс и в character_desc добавлял, и в сдк в секцию [spawn] писал. Возможно, этот метод работает для живого нпс, но в трупе моего предмета не появляется.

God save Hatsune Miku!

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

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

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

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

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

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

Войти

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

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

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