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

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

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

@Houdini_one , а как сам анимка "idle_10_idle_0" выглядит?

На примере рации:

state_lib.script:

wait_rac =
{weapon = "strapped", --* состояние оружия
movement = move.stand, --* состояние движения
mental = anim.free, --* состояние "опаcности"
bodystate = move.standing, --* положение тела
animstate = "stand", --* анимстейт
animation = "raciya" --* анимация для проигрывания
 },

state_mgr_animation_list.script:

raciya = --* анимация для проигрывания
{ prop = { maxidle = 1,  sumidle = 1, rnd = 100 }, --* время между проигрыванием анимаций, варианты
into = --* входная анимация, достаём предмет.
{
[0] = {"raciya_0_draw_0", {a="hand_radio"}, "raciya_0_draw_1"}, --* "потянулись за предметом", аттачнули объект, "достали предмет"
...
idle  = { [0] = "raciya_0_idle_0", --* что-то делаем
... },
rnd   = { [0] = {"raciya_0_talk_0"}, --* с некоторой вероятностью
...}},

В том смысле, что

raciya_0_draw_0 - потянулись за предметом, 1 анимация.

raciya_0_draw_1 - достаём предмет, 2 анимация.

 

Изменено пользователем Купер
Ссылка на комментарий
23 минуты назад, Купер сказал:

"idle_10_idle_0"

Бандит стоит держа оружие на плече.
Если прописать ему автомат - то нормально, его видно.

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

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

@Houdini_one , про attachable_items в stalker.ltx понятно.

Для II_ATTCH как у ПЫС реализовано:

raciya_0_draw_0 - потянулись за предметом. Шаг 1. Анимка 1.

a="hand_radio" - "взяли" предмет. Условие для перехода к следующей.

raciya_0_draw_1  - достаём предмет. Шаг 2. Анимка 2 (другая).

 

У тебя получается:

{"idle_10_idle_0", {a="wpn_hand_bat_a"}, "idle_10_idle_0"}

idle_10_idle_0 (Анимка 1) -> idle_10_idle_0 (Анимка 1). Как она выглядит?

 

 

 

 

 

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

@Купер я думаю это не столь важно, ведь взять анимку которая имеет название что-то типа chistit_ruje, она лишь одна там, как и у меня прописана, но там оружие достаёт.

Тут дело в предмете как понимаю.

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

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

@Купер взял в общем этот отрезок кода, для тестов.
Всё равно не достаёт, хотя предмет в инвентаре у него есть.

Вот у человека всё работает, чего у меня нет - не понимаю.

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

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

Добрый вечер всем! :drinks:
Назрело много вопросов касаемо всего и обо всём)

1. Как сделать так, чтобы после использования предмета, через n-ое время он возвращался обратно? (для Гитары, например)

2. Попытался сделать юзабельную гитару по уроку , всё гуд, скрипт сделал, музычку настроил, но при использовании - звук обычной аптечки. Класс ставил аптеки. Может надо свой создавать?
 



3. Как сделать так, чтобы предмет не мог использоваться без какого либо другого предмета? (например, чтобы при клацании на  плеер, выскакивало сообщение дескать, не возможно использовать без батареек)

4. (не совсем вопрос, скорее догадка)
Вот например, мне надо чтобы в ящике, в нужный мне момент спавнилось определённое барахло. Прописывать спавн барахла в определённый момент, надо в логике space restrictora, используя on_info?

5. При замене музыки в главном меню (при чём не важно, заменяю ли я wasteland2,  или прописываю свою музыку в ui_mm_main), выскакивает конкретная ошибка. Хотя, _l и _r .ogg файлы я создал, но вылазит такая ошибка.

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

Expression    : ovi->channels==1
Function      : CSoundRender_Source::LoadWave
File          : E:\stalker\sources\trunk\xrSound\SoundRender_Source_loader.cpp
Line          : 71
Description   : Invalid source num channels:
Arguments     : d:\mood\s.t.a.l.k.e.r. Òåíü ×åðíîáûëÿ\gamedata\sounds\music\mm_l.ogg



Всем заранее спасибо, что отвечаете очередному васяну :grin2:
 

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

@Hind

32 минуты назад, Hind сказал:

Хотя, _l и _r .ogg файлы я создал, но вылазит такая ошибка.

ТЧ не поддерживает стерео звуки. Превратить стерео в моно можно в Audacity.

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

Други, а чем и как можно настроить у предметов, которые атачатся, геометрическую позицию:

[bread_a]:identity_immunities

...

attach_angle_offset        = <- ?
attach_position_offset    = <- ?
attach_bone_name        = bip01_l_hand
auto_attach                = false

 

 

 

Ссылка на комментарий
56 минут назад, Купер сказал:

Други, а чем и как можно настроить у предметов, которые атачатся, геометрическую позицию:

Доступно в mixed / debug конфиге движка, консольная команда dbg_adjust_attachable_item секция.

Клавиши для настройки:

Скрытый текст
			case DIK_A:
				if(shift)	CAttachableItem::rot_dx(rot_d);
				else		CAttachableItem::mov_dx(rot_d);
				break;
				// Shift -x
			case DIK_D:
				if(shift)	CAttachableItem::rot_dx(-rot_d);
				else		CAttachableItem::mov_dx(-rot_d);
				break;
				// Shift +z
			case DIK_Q:
				if(shift)	CAttachableItem::rot_dy(rot_d);
				else		CAttachableItem::mov_dy(rot_d);
				break;
				// Shift -z
			case DIK_E:
				if(shift)	CAttachableItem::rot_dy(-rot_d);
				else		CAttachableItem::mov_dy(-rot_d);
				break;
				// Shift +y
			case DIK_S:
				if(shift)	CAttachableItem::rot_dz(rot_d);
				else		CAttachableItem::mov_dz(rot_d);
				break;
				// Shift -y
			case DIK_W:
				if(shift)	CAttachableItem::rot_dz(-rot_d);
				else		CAttachableItem::mov_dz(-rot_d);
				break;

			case DIK_SUBTRACT:
				if(shift)	rot_d-=deg2rad(0.01f);
				else		mov_d-=0.001f;
				Msg("rotation delta=[%f]; moving delta=[%f]",rot_d,mov_d);
				break;
			case DIK_ADD:
				if(shift)	rot_d+=deg2rad(0.01f);
				else		mov_d+=0.001f;
				Msg("rotation delta=[%f]; moving delta=[%f]",rot_d,mov_d);
				break;

			case DIK_P:
				Msg("LTX section [%s]",*CAttachableItem::m_dbgItem->item().object().cNameSect());
				Msg("attach_angle_offset [%f,%f,%f]",VPUSH(CAttachableItem::get_angle_offset()));
				Msg("attach_position_offset [%f,%f,%f]",VPUSH(CAttachableItem::get_pos_offset()));
				break;

 

 

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

Товарищи, подскажите. Каким образом можно перевести в смарт террейн?
Такая ситуация: отыгрывает сценку вне смарт террейна, после чего должен перейти туда (эдакий костыль дабы он по сотни раз не отыгрывал всю длительную логику).

Выглядит сие действие так:
 

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

[smart_terrains]
mar_military = {+mar_polter_start_delete}

[logic]

active = walker

 

[walker]

path_walk = walk
path_look = look

Но НПС переходить не хочет (смарт рабочий 100%).
В чём проблема?

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

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

@Houdini_one , попробуй так - посели НПСа в какой то смарт, где он отыграет нужное. А после выселяй оттуда и заселяй уже в нужный смарт. 

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

[smart_terrains]

unknown_smart = {-mar_polter_start_delete}
mar_military = {+mar_polter_start_delete}

 

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

Здесь могла быть ваша реклама.


Подарки

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

    @mole venomous слишком муторно, у меня там большая логика, там столько вэй-поинтов переправлять придётся...

    Дело в том, что на другом моде у меня всё работает.
    Подобная логика там вот:
     

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

    [smart_terrains]
    none = {-gen_karlik_start}
    rad_stalker = {+gen_karlik_start}
     

    [logic]
    active = walker
     

    [walker]
    path_walk = swa_doctor_walk
    path_look = swa_doctor_look

    Тут же логика:
     

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

    [smart_terrains]
    none = {-mar_polter_start_delete}
    mar_military = {+mar_polter_start_delete}
     

    [logic]
    active = remark
     

    [remark]
    target = 5538
    anim = threat_na
    meet = no_meet

    Вот в чём тут может быть проблема?.. Ума не приложу... Бредятина какая-то.

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

    Ссылка на комментарий
    On 8/10/2022 at 5:27 AM, Купер said:

    Циферки, буковки :biggrin:. Что за что отвечает и что делает?

    Это нужно по каждому конкретному параметру лезть в скрипт, а это муторно. Но вот про этот help_agr, у меня есть вот такой коммит:

    Quote
    Quote

    Что бы не вылетал чувак на Агропроме,

    который на помощь зовет, при первом заходе. Может вылететь, если у него не обрез ТОЗа будет, а другое оружие.

     

    Изменено пользователем dsh
    • Полезно 2
    Ссылка на комментарий
    4 часа назад, mole venomous сказал:

    посели НПСа в какой то смарт

    Таким образом работает, но мне всё же интересно, почему не работает способом каким сделал я, учитывая что в других моих поделках такое работало.

    Из странностей ещё заметил, что не работает
    [spawner]
    cond = {-info}, хотя +info работает, а удаление нет.

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

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

    @Hind 

    1. Просто переспавн – по идее, в уроке это должно быть.

    2. (Не могу потестить – огорожено роскомзабором)
    3. Проверка через [bind_stalker.script] on_use(obj): если в инвентаре нет предмета Y, переспавнить предмет X без звуков и анимации. По умолчанию событие "применить расходник" не привязано – надо будет добавить callback.use_object в reinit() и net_destroy(), ниже свой обработчик. Другой вариант – отслеживать сброс предмета через существующее событие on_item_drop(obj).
    4. Проверка через [bind_stalker.script] info_callback(npc, info_id), либо создать новый инфо-поршень в общем конфиге и там же прописать вызов своего спавнера через <action>script_name.function_name</action>. Если спавн не разовый, придется отключать инфо перед каждым повтором.
    5. Есть ли у новой музыки настройки дальности/громкости? Через SDK можно сделать по образцу исходных файлов.

    Мини-моды: ТЧ ЧН ЗП

    Шпаргалка

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

    @Hind 

    1. Просто переспавн – по идее, в уроке это должно быть.

    2. (Не могу потестить – огорожено роскомзабором)
    3. Проверка через [bind_stalker.script] on_use(obj): если в инвентаре нет предмета Y, переспавнить предмет X без звуков и анимации. По умолчанию событие "применить расходник" не привязано – надо будет добавить callback.use_object в reinit() и net_destroy(), ниже свой обработчик. Другой вариант – отслеживать сброс предмета через существующее событие on_item_drop(obj).
    4. Проверка через [bind_stalker.script] info_callback(npc, info_id), либо создать новый инфо-поршень в общем конфиге и там же прописать вызов своего спавнера через <action>script_name.function_name</action>. Если спавн не разовый, придется отключать инфо перед каждым повтором.
    5. Есть ли у новой музыки настройки дальности/громкости? Через SDK можно сделать по образцу исходных файлов.

    Да уж.. С моим опытом, честно, из всего что ты написал - не понятно ничерта (относится к скриптам))
    Нет ли у тебя каких то людей которые могут расталковать, что да как писать чтобы заработало, или, тем каких то на форуме?:biggrin:
    По поводу первого пункта, не подскажешь в каком уроке?

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

    Изучите "Правила цитирования". https://www.amk-team.ru/forum/topic/13514-obyavleniya/

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

    людей которые могут расталковать, что да как писать чтобы заработало, или, тем каких то на форуме?

    Тема есть вот такая https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkciyam-i-klassam/ - рекомендую.

    Кроме того, можно в тех или иных модах смотреть реализацию тех или иных вещей. За 15 лет мододелы понаделали уйму всего интересного...

    А про растолковать. Обычно это делается так:

    1. Берешь и пробуешь что-то сделать.

    2. Если что-то "пошло не так" (Оно у всех так бывает) - приходишь вот прямо сюда, на форум, в эту тему. Показываешь свой код и свои логи, чтобы было видно что именно ты сделал. И тогда если случай не какой-то уж совсем замороченный, люди найдутся - помогут.

     

    А заходить со слов "Делал по вот этому уроку", прикладывая ссылку на куда-то, смысла особо нету. Во-первых, мало кто пойдет тратить время, чтобы смотреть очередной сбивчивый и путающийся "урок" очередного васяна, делающего ворох ошибок (Я например, по таким ссылкам никогда не хожу...). Во вторых - и это ГЛАВНАЯ причина. Никто не станет гадать, в чем именно сделанное тобой отличается от того что показано там. Ты можешь считать что "отличие только вот тут, и все" - но это запросто может оказаться не так, и ошибка обнаружится вообще в другом месте.

    Проще говоря, о скриптах говорить надо, приводя код. И логи. А без оных, всё это гадания на кофейной гуще, с попыткой прогноза погоды на Марсе.

    Изменено пользователем Zander_driver
    • Нравится 1
    • Согласен 3

    Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

    Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

    AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

    Ссылка на комментарий
    11.08.2022 в 19:50, Hind сказал:

    2. Попытался сделать юзабельную гитару по уроку , всё гуд, скрипт сделал, музычку настроил, но при использовании - звук обычной аптечки. Класс ставил аптеки. Может надо свой создавать?

    Так что там непонятного?

     

    Скрытый текст
    local tSound ={
    название_предмета       = "путь к звуку",
    }

     

    • Согласен 2

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

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

    @Houdini_oneтак понятно, прикол в том, что выставил всё, саунд вставил куда надо, но при тыкании - вместо запланированного саунда, звук аптеки.

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

    И ещё.. Пара вопросов назрело

    Как сделать так, чтобы при клацании на юзабельный предмет, выполнялось определённое действие (давался инфопрошень, спавнился другой предмет, добавлялась статья в энциклопедию)?

    Подскажите нормальный гайд на системы сна на чистую ТЧ, или дайте сам скрипт, если есть, буду очень благодарен.
     

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

    Подскажите нормальный гайд на системы сна на чистую ТЧ, или дайте сам скрипт, если есть, буду очень благодарен.

    New sleep mod или же это.

     

     

    24 минуты назад, Hind сказал:

    чтобы при клацании на юзабельный предмет

    Ну вполне логично - через use_object выдаёшь инфопоршень, в котором прописываешь артикль, который и будет давать нужную информацию.

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

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

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

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

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

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

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

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

    Войти

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

    Войти

    AMK-Team.ru

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