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

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


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

Как можно в логике [smartcover] приказать нпс спрятать оружие? Я всё перебрал, но вспомнить не могу, что конкретно отвечает за это.

@Дизель,

can_select_weapon = false

 

Изменено пользователем Jurok
  • Полезно 2

@Jurok, спасибо сработало. Но у меня баг закрался что ли в логику.

НПС без автомата, как и с  can_select_weapon = false не хочет работать с [smartcover]

dbc1ab2d359180ec28713deb0e3901f11fadf028

Даю автомат, нпс работает:

406b539b50c81788d0c644cbaf397ab81fadf028

Я уже голову сломал. Нужен скриптёр.

Изменено пользователем Дизель
15 минут назад, Дизель сказал:

Как можно в логике [smartcover] приказать нпс спрятать оружие? Я всё перебрал, но вспомнить не могу, что конкретно отвечает за это.

 

Не было случая проверить, но из xr_smartcover.script,281

weapon_type = none ;strapped ;unstrapped

Я начал откат до оригинала, и что то меня стали терзать мутные сомнения в адекватности оригинала. Баг этот от разрабов походу.

 

loophole_name = и в оригинальном исполнении так же себя ведут с родными нпс. Или я туплю - второй вариант вероятнее.

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

или оставить только пистолет

Добавлено Expropriator,

Наоборот - только в автоматом работает анимация. С пистолетом так же баг.

Я вот что хочу сказать. Логику эту скорее всего почикали, и она уже не та что была в ЧН.

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

 

На Затоне нет такой логики вообще.

На Юпитере один боевой ковер:

gamedata\configs\scripts\jupiter\jup_b1_stalker_4.ltx(35):loophole_name = stand_front_left

В Припяти боевые коверы:

gamedata\configs\scripts\pripyat\pri_a18_vano.ltx(88):loophole_name = crouch_front_left
gamedata\configs\scripts\pripyat\pri_a18_vano.ltx(113):loophole_name = crouch_front_left
gamedata\configs\scripts\pripyat\pri_a18_vano.ltx(172):loophole_name = stand_front_left
gamedata\configs\scripts\pripyat\pri_a18_vano.ltx(196):loophole_name = crouch_front_right

gamedata\configs\scripts\pripyat\pri_a18_vano.ltx(223):loophole_name = stand_front_right
gamedata\configs\scripts\pripyat\pri_a18_sokolov.ltx(102):loophole_name = crouch_front_right
gamedata\configs\scripts\pripyat\pri_a18_sokolov.ltx(127):loophole_name = stand_front_left
gamedata\configs\scripts\pripyat\pri_a18_sokolov.ltx(199):loophole_name = crouch_front_left
gamedata\configs\scripts\pripyat\pri_a18_skelja.ltx(96):loophole_name = crouch_front_right
gamedata\configs\scripts\pripyat\pri_a18_skelja.ltx(120):loophole_name = stand_front_left
gamedata\configs\scripts\pripyat\pri_a18_skelja.ltx(188):loophole_name = crouch_front_left
gamedata\configs\scripts\pripyat\pri_a18_merkulov.ltx(83):loophole_name = crouch_front_left
gamedata\configs\scripts\pripyat\pri_a18_merkulov.ltx(106):loophole_name = crouch_front_left
gamedata\configs\scripts\pripyat\pri_a18_merkulov.ltx(162):loophole_name = stand_front_left
gamedata\configs\scripts\pripyat\pri_a18_merkulov.ltx(185):loophole_name = crouch_front_right
gamedata\configs\scripts\pripyat\pri_a18_merkulov.ltx(211):loophole_name = stand_front_right

 

И всё. Поэтому смартковеры ЧН в ЗП в скриптах и вырезали.  Так что я жду вразумений.

 

Так что скорее я не туплю - это разрабы забыли нам сказать о своей корявой логике.

 

 

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

1a2cb8fd5c177bf57ae762379b65cbf91fadf228

 

Я смог водрузить нпс в [smartcover] без оружия. Всё ништяк работает.

Только я две вещи сделал: В ЗП вернул в движке коверы ЧН и поменял структуру алспавна (под ЧН).

acdc.pl ЧН
 

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

 

package cse_smart_cover;
use strict;
use constant properties_info => (
    { name => 'unk1', type => 'sz' }, #0xe4 clear sky
    { name => 'unk2', type => 'f32v3' }, #0xe8 clear sky
    { name => 'unk3', type => 'u8' },
{ name => 'last_description', type => 'sz' },
{ name => 'loopholes', type => 'u8' },
);

 

 

 

Это свойства ковера  в спавне.

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

; cse_smart_cover properties
unk1 = cover_loophole_lead_sit_sleep_mechanic
unk2 = 0,15,10
unk3 = 0
last_description = cover_loophole_lead_sit_sleep_mechanic
loopholes = 0

 

Правки движка большие, все не войдут на страницу.

Если что приходите за советом! Вот только надо ещё [animpoint] проверить, а то как раз...

Да и еще я se_smart_cover.script ЧН внедрил. Что конкретно повлияло - не знаю, наверно сумма.

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

Всем привет. Столкнулся с проблемой. Меняю в all.spawn поворот npc (direction), но в игре ничего не меняется (изменение параметра direction и у самого гг не дает результатов). Персонажей и гг спауню не на оригинальных локациях. Сталкивался кто с подобной ситуацией?

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

@Bandito , напрвление взгляда нпс определяет его логика.

А у гг - может, забыл поменять значения в апдейт-части пакета.

Изменено пользователем naxac
  • Согласен 1
Только что, naxac сказал:

@Bandito , напрвление взгляда нпс определяет его логика.

А у гг - может, забыл поменять значения в апдейт-части пакета.

Т.е. параметр direction в all.spawn не влияет на поворт Npc?

@Bandito, в простой логике look  вейпоинт, либо анимация смартковера ( поворот смарт-ковера) определяет направление взгляда нпс.

Параметр direction и всё остальное, только для спавна. Без логики нпс не будет стоять на месте - уйдёт погулять.

Изменено пользователем Дизель
  • Согласен 3

Создал простую функцию, которая начисляет "опыт" ГГ при убийстве НПС. Не могу сохранить эти данные в игре, при лоаде все обратно возвращается на 0. Наставьте на путь истинный, я без понятия как эти данные правильно сохранять.
Функция:



point_skill = 0
rank = 0
need_init = false

function kill_exp()
    local rank_random = math.random(1, 90)
    point_skill = point_skill + rank_random
    rank_random = nil
    need_init = true
end

function actor_on_update()
    local hud = get_hud()
    hud:AddCustomStatic("skills_static")
    hud:GetCustomStatic("skills_static"):wnd():TextControl():SetTextST("Опыт: "..point_skill.."")
    end

---------->>[[Загрузка\Сохранение пакетов]]<<-----------
-- Сохраняем

function save(package)
    package:w_u32(point_skill)
end

-- Загружаем
function load(package)
package:r_u32(point_skill)
end

Цитата

-- Загружаем
function load(package)
package:r_u32(point_skill)
end

 

@XMODER, попробуй так:

function load(reader)
	point_skill = reader:r_u32()
end

 

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

@Jurok , не сработало, увы.

Возможно надо подключать функции на сейв/лоад еще куда-то кроме bind_stalker.script?

Нашел баг разрабов info_jupiter.xml (только этот файл битый, другие работают).

 

FATAL ERROR
 [error]Expression    : false
[error]Function      : CXml::Load
[error]File          : .\xrXMLParser.cpp
[error]Line          : 87
[error]Description   : XML file:gameplay\info_jupiter.xml value: errDescr:Error reading Attributes.

 

 

    <info_portion id="jup_b208_burers_hunt_done"></info_portion>

Инфопорция имеет дубль в одном файле.

 

Что то я поспешил - дело мутное. Дело не в этом.

Изменено пользователем Дизель
  • Полезно 1

    <info_portion id="jup_b6_scientist_biochemist_anomalous_grove_done""></info_portion>

Второй косяк "". Это последний. Заработало. Как еще оригинал работает - не понятно.

Изменено пользователем Дизель
10 часов назад, Дизель сказал:

Как еще оригинал работает - не понятно.

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

Не знаю... должно вылетать - 100%. Может эта инфопорция не задействована в реале? Править надо по любому.

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

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

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

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

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

Войти

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

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

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