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

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


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

2 часа назад, Houdini_one сказал:

но оружие не появляется у НПС

Уточни, что ты имел в виду: непись его в руки должен взять или просто наличие в инвентаре?

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

По sid'у можно так (хотя, тоже самое...)

Спасибо за ещё варианты, но оказалось всё проще - я забыл в своей функции добавить "" до и после wpn_ak74.

 

 

11 часов назад, AndreySol сказал:

непись его в руки должен взять

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

Правда эта функция не этому НПС будет выдавать оружие, этому я для теста выдал, но такой косяк имеется.

Во всяком случае у других НПС биноклей не будет, так что думаю и так годится.

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

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

я забыл в своей функции добавить ""

Это я заметил, но не придал значения. Может, такая локальная на рандомный АК... 

  • Нравится 1

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

Ссылка на комментарий
2 часа назад, Houdini_one сказал:

Да, в руки.

Поройся в теме справочника, и поиском: неписи имеют настраиваемый в конфигах приоритет использования оружия. Т.е. он не возьмет в руки то, что ему не прописано. Там, кстати, довольно заморочно это реализовано и работает. Я в этом вопросе особо не разбирался, попробуй спросить тута, ну и может в теме "Система ALife. Логика поведения игровых объектов", может кто знает побольше об этом.

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

@AndreySol ну я в таком случае поступаю иначе - просто прописываю патроны, тогда НПС охотно берёт оружие.

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

Не берёт он АКС-74У. Может ибо оружейный пак и такой прикол (ранее другой стоял и такие проблемы с гадюкой были).

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

Ссылка на комментарий
1 час назад, Houdini_one сказал:

@gam да нет, обычное оружие.

Возможно, дело в профиле/конфиге НПСа. Вот например. Всем известный сталкер на Агро, что нас встречает и опять "помоги, там же наши". При этом машет обрезом ТОЗа. Если прописать ему любой другой ствол, то он зависнет. Есть какой-то параметр в конфиге. Но я не упомню, давно было. И ещё. Не подключён ли у тебя, какой-нибудь АИ пак, где есть схема " Собирательство ".

"Кругом зомби.....у меня кончаются патроны...."

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

@Houdini_one 

В базовой секции [stalker]:

can_select_items          = true ; позволяет выбрать лучший предмет из каждого типа (пистолет и т.д)
use_single_item_rule    = true ; если true, нпс выкинет всё, что не подошло в can_select_items

Для торговцев, оба параметра false. Начиная с ЧН, use_single_item_rule = false теперь для всех.

 

По поводу сценок с анимками, в которых нпс бросает оружие. Можно сделать дубликат нужной в state_lib.script, к примеру psy_pain_hw = {weapon = "drop", -- бросает, "none" или nil - прячет и т.п.

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

Товарищи знающие, а есть где-то описание алгоритма как, вообще, это всё работает?

Т.е.:

help_agr = {prop = { maxidle = 1,
                     sumidle = 2,
                     rnd = 100 },
            into = { [3] = { "help_3_idle_0", {s="agr_stalker_help_2"}, "help_3_idle_1" }},
                        out = nil,
                        idle = nil,
                        rnd = nil},

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

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

@Купер может, здесь найдёшь для себя что-то полезное (если ты об этом конечно).

18 часов назад, BFG сказал:

есть схема " Собирательство ".

Такого нет.
 

 

14 часов назад, h0N0r сказал:

can_select_items          = true ; позволяет выбрать лучший предмет из каждого типа (пистолет и т.д)
use_single_item_rule    = true ; если true, нпс выкинет всё, что не подошло в can_select_items

У меня везде true.
 

 

14 часов назад, h0N0r сказал:

nil

nil - значит прячет? Это подойдёт думаю, спасибо.

Подскажите.
Мне нужно, чтобы НПС взял в руки объект, в данном случае бита.

Сделал так:
 

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

[wpn_hand_bat_a]:identity_immunities
GroupControlSection        = spawn_group
discovery_dependency    =
$spawn                    = "food and drugs\wpn_hand_bat_a"
cform                   = skeleton
class                    = II_ATTCH
visual                        = weapons\knife\wpn_hand_bat.ogf
cost                    = 20
description                    = enc_weapons1_hand_bat
inv_name                    = st_wpn_hand_bat
inv_name_short                        = st_wpn_hand_bat
inv_weight                = .3
inv_grid_width            = 1
inv_grid_height            = 1
inv_grid_x                = 11
inv_grid_y                = 9

attach_angle_offset        = -0.287979, 1.560923, 1.544060
attach_position_offset    = 0.096910, -0.013594, 0.107925
attach_bone_name        = bip01_r_hand
auto_attach                = false

// should be deleted after update
bone_name                = bip01_r_hand
position_offset             = 0.0,0.0,0.0
angle_offset             = 1.570790,1.570790,3.92699

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

    bita = {    weapon = "strapped",
                movement = nil,
                mental = nil,
                bodystate = nil,
                animstate = nil,
                animation = "bita"
            },

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

        bita    = {    prop        = { maxidle = 1,
                                    sumidle = 1,
                                    rnd = 100 },    
                        into    = { [0]    = {"idle_10_idle_0", {a="wpn_hand_bat_a"}, "idle_10_idle_0"} },
                        out        = nil,
                        idle    = { [0]    = "idle_10_idle_0"},
                        rnd        = nil},


Но НПС в руки объект не берёт.
Если вместо wpn_hand_bat_a написать какое-то оружие, то в руках держать будет.

Прописывал wpn_hand_bat_a в секции [spawn] в профиле НПС, пробовал и через инклуд character_items.xml.

Может в профиле и нет у них такого, посмотреть не могу никак.
Что может быть не так?

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

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

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

@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
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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