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

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


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

Старлей,

На толике не проверяй, у него логика валяться раненым.
а ты думаешь, что когда НПС в бою ложатся раненными они под логикой kamp'ера стонут? Отнюдь, они так же валяются с активной секцией wounded, только включается она автоматом. У Толик действительно использует данную ему аптечку, а не просто забирает её себе. Изменено пользователем ColR_iT
Ссылка на комментарий

ColR_iT Удалил я этот abc_medkit.script с "Система постепенной регенерации жизни из Lurk mod и ABC", оставив с него только убор оружия при использовании еды и медикаментов, и звуки при использовании еды и медикаментов.

А вместо abc_medkit.script поставил Slow Medicine 0.2b by Министр, пока всё прекрасно работает, и Толик лечится, и у ГГ медленно здоровье поднимается при использовании аптечки.

А с abc_medkit.script всяко пробовал, там видать просто не полностью всё написали.

Ссылка

Там даже написано "Для начала создадим скрипт. Например health_effect.script"

Хотя надо создать heal_regen.script а не health_effect.script.

Старлей, а зачем мне другие нпс то, тут и по Толику видать что не работает, т.к аптечка лечит только ГГ.

И он её не просто взял, а использовал, и все последующие аптечки тоже использовал, но безрезультатно.

Когда я его убивал то у него не было аптечек. У меня в сборке включено "оставлять итемы у нпс", так-что они нахомячили всё при них.

Да и eat_health = 0, тут и так всё ясно.

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

Скинь 848 строку скрипта smart_terrain.script

вот она:

function se_smart_terrain:create_gulag()

 

вот так выглядит полная функция:

-- в гулаг поступил первый персонаж и он начинает работать
function se_smart_terrain:create_gulag()
self.duration_end = game.CTime()
--	self.duration_end:setHMSms( 0, 0, 0, math.random( self.gparams.duration_min * h2ms, self.gparams.duration_max * h2ms ) )
self.duration_end:setHMSms( math.random( self.gparams.duration_min, self.gparams.duration_max ), 0, 0, 0 )
self.duration_end:add( game.get_game_time() )

self.check_time = CTime_0

self.gulag:initialize()

self.gulag_working = true
end

если оставить ПЫС-овский скрипт, то вылет так и остается. Как я понимаю, вылет из-за того, что сталкер, не подконтрольный какому-либо смарту, при приближении, опять же, к какому-либо смарту не может в него "влезть". Хотя раньше таких проблем не было.

P.S. данную версию скрипта я взял и супер_аи_пака.

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

ColR_iT

 

Ах, да ты прав, я сейчас посмотрел в all.spawn у него просто 0,31 здоровья стоит, логики у него нет(кроме смарт терраина). Я просто недавно столкнулся с такой логикой раненого, что он даже при 100 хп будет раненым, но у него стоит также параметр not_for_help = true. И все же ну зачем на толике проверять? Вот примечание:

Схема раненного. Определяет поведение NPC в состоянии "раненный".

Примечание: не рекомендуется задавать схему в качестве активной.

А у нас получается, как раз что для Толика активной схемой будет [wounded] - но это всего лишь мое предположение :)

 

Uyman358

 

Если у тебя вылетает именно из заголовка функции, значит чего-то начудили с самим классом смарта.

P.S. У меня была похожая проблема на ЧН: я прописал работу на смарте на Янтаре, однако как только сквад регистрировался в смарте происходил безлоговый выелет - как вылечил? Да никак. В твоем случае незнаю, переполнение смарта по идее невозможно - просто выкинет из смарта лишних НПС, может быть ты что-то изменил в настройке смарта, из-за чего вообще происходит вылет, какие твои действия?

*Сейчас, посмотрел скрипт оригинала, функция вызывается один раз - при раздаче работы, и выталкивание НПС из ГУЛАГа

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

Старлей,

что он даже при 100 хп будет раненым

Задай для параметра hp_state значение 200, в 98% случаях любой НПС будет переходить в состояние раненый.
но у него стоит также параметр not_for_help = true
Этот параметр присутствует только в ЗП и определяет может ли другой НПС лечить его.
Примечание: не рекомендуется задавать схему в качестве активной.
Это я писал. :)
А у нас получается, как раз что для Толика активной схемой будет [wounded]
Во-первых, схема wounded является секцией, которая пишется в активную схему логики. Во-вторых, загляни в работу гулага, под которой "стонет" Толик, там секция раненного прописана в схеме walker, так что активной остаётся именно walker.
Ссылка на комментарий


                    Отправлено 20 02 2013 - 11:05
                
                
                    Всем привет! Нужна помощь. s.t.a.l.k.e.r. народная солянка 2012 -
Пострелял долговцев на воротах (по незнанию), теперь в баре проблеммы :ny_angry:

Подскажите, как в СОХРАНЕНИИ отредактировать отношение к Долгу (хочу помириться :ny_biggrin: )

Заранее благодарен ВСЕМ за помощь.

 

 

Друзья, неужели ЭТО не решаемо и нельзя отредактировать  ".SAV" файл (и что именно) ???

Или ответить некому (три дня вопрос висит)?

Просьба, напишите, а то уже голова вспухла... :russian_ru:

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

Подскажите, как в СОХРАНЕНИИ отредактировать отношение к Долгу (хочу помириться :ny_biggrin: )


Первый способ - это поменять группировку ГГ:

скрипт:

function czar_freedom(npc, actor)
npc:stop_talk()
actor:stop_talk()
db.actor:set_character_community("actor_freedom" , 0, 0)
end

 

На месте actor_freedom любая группировка.

 

 

 

Второй, более подходящий - это сделать Долг друзьями(подходящий скрипт пока не нашел).
 

обе функции выдаешь через диалог после </text> таким образом:

<action>название_скрипта.название_функции</action>

 

 

неужели ЭТО не решаемо и нельзя отредактировать  ".SAV" файл (и что именно) ???

Зачем изобретать колесо, когда можно простыми функциями решить твою проблему?

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

Добрый день.
Заспавненный через асдс объект (вертолёт) ведёт себя как объект абсолютно адекватно.
Прописанная в асдс, в логике секция:
[collide]
ignore_static
даёт объекту статичность и неприкаспемость в плане постэффектов от этого.
Если подобный объект спавнить скриптом, то возникают проблемы -
он не "садится" на местность, при контакте происходят всякие звуковые и визуальные безобразия.
[vertolet5]:identity_immunities
$spawn = "dynamic_objects\vertolet5"
visual = new_models\mi24_rja2.ogf
cform  = skeleton
class  = P_SKELET
remove_time = 9998
custom_data = scripts\collide_ignor.ltx

Секция в вынесенной логике в отдельный файл не работает:
[collide]
ignore_static
Вопрос:
Может как-то по-другому нужно лтх логику сформировать для "усадки" физобъекта на местность?
Может класс нужно изменить?

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

А ты какой функцией спавнишь? Из АИ вертолетов или нет? Если нет, попробуй такую функцию:

function heli(section,posx,posy,posz,lvid,gvid,logic)
local obj = alife():create(section,vector():set(posx,posy,posz),lvid,gvid)
local packet = net_packet()
obj:STATE_Write(packet)

-- свойства cse_alife_object
local game_vertex_id = packet:r_u16()
local cse_alife_object__unk1_f32 = packet:r_float()
local cse_alife_object__unk2_s32 = packet:r_s32()
local level_vertex_id = packet:r_s32()
local object_flags = packet:r_s32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_s32()
local cse_alife_object__unk3_s32 = packet:r_s32()

-- свойства cse_visual
local model_visual = packet:r_stringZ()
local cse_visual__unk1_u8 = packet:r_u8()
-- свойства cse_motion
local motion_name = packet:r_stringZ()

-- свойства cse_ph_skeleton
local skeleton_name = packet:r_stringZ()
local cse_ph_skeleton__unk1_u8 = packet:r_u8()
local cse_ph_skeleton__unk2_u16 = packet:r_u16()

-- свойства cse_alife_helicopter
local cse_alife_helicopter__unk1_sz = packet:r_stringZ()
local engine_sound = packet:r_stringZ()

--устанавливаем логику
custom_data = "[logic]\ncfg = scripts\\heli\\"..logic..".ltx"

-- теперь заполняем нужные параметры
-- свойства cse_alife_object
packet:w_begin(game_vertex_id)
packet:w_float(cse_alife_object__unk1_f32)
packet:w_s32(cse_alife_object__unk2_s32)
packet:w_s32(level_vertex_id)
object_flags = bit_not(5) -- ~5 = 0xfffffffa
packet:w_s32(object_flags)
packet:w_stringZ(custom_data)
packet:w_s32(-1)
packet:w_s32(cse_alife_object__unk3_s32)

-- свойства cse_visual
packet:w_stringZ(model_visual)
packet:w_u8(cse_visual__unk1_u8)

-- свойства cse_motion
packet:w_stringZ(motion_name)

-- свойства cse_ph_skeleton
skeleton_name = "idle"
packet:w_stringZ(skeleton_name)
packet:w_u8(cse_ph_skeleton__unk1_u8)
packet:w_u16(cse_ph_skeleton__unk2_u16)

-- свойства cse_alife_helicopter
cse_alife_helicopter__unk1_sz = "idle"
engine_sound = "alexmx\\helicopter"
packet:w_stringZ(cse_alife_helicopter__unk1_sz)
packet:w_stringZ(engine_sound)

-- считываем скорректированные параметры
packet:r_seek(0)
obj:STATE_Read(packet, packet:w_tell())


return obj
end

Здесь и логика формируется.

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

Речь идёт о любом объекте, не важно вертолёт это или просто бумажка.
Заспавнить летающий объект - проблем нет. Проблема именно в статичном объекте.

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

 antreg

Тогда вообще без понятия, в ACDC файлах и скриптах сталкера вообще ничего про collide или Ignore_static, только в файле lua_help.script есть два параметра:

const object_collide = 512;
    const world_object_collide = 134218240;
 Это все что нашел, может не там искал...
Ссылка на комментарий

Попробую немного конкретизировать ситуацию. При спавне скриптом предметов типа рюкзак, оружие или труп над поверхностью земли(ну допустим на высоте двух метров) те спокойно падают на эту поверхность.

Вертушка же нахально висит над землей и падает только при столкновении с ГГ, нпс или мутантом.  Все было бы ничего, если спавн производится на ровной поверхности. Немного шаманства с высотой и вертушка  стоит на земле. Если же поверхность неровная и вертушка касается ее носом или хвостом, то при столкновении с ГГ она реально пляшет с бубном)))

Вот и вопрос...можно ли как-то добиться устранения этого безобразия правкой конфиг файлов, или же все зарыто в самой модели?

P.S.Я конечно это решил несколько нестандартным способом, но желательно бы сделать это попроще...

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

Для ещё большей конкретики:
заспавненный тот же самый предмет через асдс на тех же координатах, с прописанным:
[collide]
ignore_static

ведёт себя абсолютно адекватно.

В вынесенной в .ltx файл логике, секция:
[collide]
ignore_static

не хочет работать. Только в асдс...
 

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

Не знаю даже, что уже делать:

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

На чистом скрипте smart_terrain.script получаю такой лог:

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...w of chernobyl\gamedata\scripts\smart_terrain.script:836: attempt to index a function value
При использовании другого, измененного(АИ_пак), изменяется лишь строка в скрипте:
FATAL ERROR

[error]Expression : fatal error
[error]Function : CScriptEngine::lua_error
[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line : 73
[error]Description : <no expression>
[error]Arguments : LUA error: ...w of chernobyl\gamedata\scripts\smart_terrain.script:848: attempt to index a function value
 

Сама функция в обоих скриптах имеет такой вид:

function se_smart_terrain:create_gulag()
    self.duration_end = game.CTime()
--    self.duration_end:setHMSms( 0, 0, 0, math.random( self.gparams.duration_min * h2ms, self.gparams.duration_max * h2ms ) )
    self.duration_end:setHMSms( math.random( self.gparams.duration_min, self.gparams.duration_max ), 0, 0, 0 )
    self.duration_end:add( game.get_game_time() )

    self.check_time = CTime_0

    self.gulag:initialize()

    self.gulag_working = true
end
Изменено пользователем ColR_iT
Ссылка на комментарий

(Солянка)  "Как отключить звук дыхания в шлемах и костюмах?

В файле gamedata/scripts/dmx_mod.script найдите строчку hidden_slots.sound_update() и удалите её."

Ну НЕТ такой строчки в скриптах, помогите, уши вянут слушатьэтот паровоз !  :ny_blink:

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

Никто не знает как сделать чтоб во время убийства ГГ все сохранения стирались сразу?

Ну или портились, ну чтоб нельзя их было загрузить.

Или сделать чтоб только во время выхода из игры чтоб сохранялась. Чтоб при переходах тоже не сохранялась.

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

Ну а при жизни ГГ чтоб сохранялось и загружалось всё нормально.

Возможно ли это реализовать?

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

alex5773
Ты что, Толик и все другие НПС не от этого лечатся, да и вообще это ремарка такая, а аптечки для виду придумали типо отдал аптечку и вылечил, я тоже как то помню эксперементировал над лежачими и у меня после отдачи аптечки они снова падали, это не из-за конфига.

 

Загляни в файл xr_wounded.script и сопоставь увиденное со своими словами.

ColR_iT

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

Кто может поделится опытом добавления своих звуков в игру?

Как-то раз вышло, а сейчас не получается.

Вроде всё правильно: Записываю звук в Wav, 44100 гц, 16-бит, моно - кидаю в СДК - Конвертирую - но при синхронизации вылет!

 

з.ы. Ещё нужна помощь в использовании программы map_dragger_rel по перемещению локаций.

Хочу в Stalker Maps Pack 1 переместить некоторые локации.

Проборал, добавлял локи из Stalker Maps Pack 1 в прогу, менял координаты госпиталя, а он оказывается не там где надо, а по средине Тёмной долины.

Изменено пользователем Винtorez(тот самый)
Ссылка на комментарий

Подскажите, как реализовать порчу продуктов питания и артефактов со временем. Не сильно сложно?

В "NLC6. Начало" есть порча артов-модификатов и артов-пустышек со временем (причем в контейнерах и камерах хранения не портятся). Сколько ни смотрел, никак не могу идею уловить, как сделано.

 

Намекните, куда направить взор, или ткните носом в какую-нибудь статью, please.

 

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

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

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

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

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

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

Войти

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

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

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