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

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


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

Подскажет кто или поможет выковырять динамический худ из АМК1.4.1 другие ссылки не предлагать!!! Ах ещё выковыривать под ОГСМ Ультимейт с интерактивной музыкой во время боя...

Анимация запрещена.

Подскажите пожалуйста где прописан спавн псевдогиганта в АМК1.4.2

Того что появляется на милитари или на кардоне.

Никак не могу найти :(

 

Уточню. В amk_respawns.ltx все стоит false. В алл.спавне нечего нету. В скриптах смотрел (сканировал на секцию гиганта).

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

Мой архив

Сталкером не занимаюсь.

Для классов прописанных в se_item.script метод UPDATE_Write (если его добавить) будет срабатывать ?

К примеру, для se_outfit у меня он не вызывается ни при каких действиях.

Подскажите кто небудь!!! Почему выброс не убивает в моде Blowout мод, какой файлик я задел??? Переустановить не смогу ибо совместил со своим модом...

 

Строгое предупреждение от модератора Cyclone
2.1.2. Запрещено оставлять повторные сообщения (или дублировать их) в одной или нескольких темах.

Анимация запрещена.

Насчет системных инфо-порций - ui_talk как-то странно выдается.

В info_portions.xml добавил для теста:

    <info_portion id="ui_talk">
        <action>Util_script.On_talk_show</action>
        <disable>ui_talk_hide</disable>
    </info_portion>

В On_talk_show сделал обычную выдачу сообщения на экран.

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

Я чего-то недопонял или с помощью этой инфопорции отследить начало разговора с НПСом не получится ?

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

ТЧ v 1.0005

Есть НПС с такой логикой:

[logic@esc_lager_technic]
active = kamp@esc_lager_technic_kamp1
trade = misc\trade_technic.ltx

[kamp@esc_lager_technic_kamp1]
center_point = camp_center
path_walk = camp_center_task
meet = meet@technic_kamp1

[meet@technic_kamp1]
use = true
use_wpn = true
meet_talk_enabled = true

 

Спауню возле входа в подвал Сидора, оттуда он должен идти к центральному костру в деревне новичков и сидеть там.

Логика работает, но с одной заморочкой: если в основной секции logic@esc_lager_technic указать параметр trade = misc\trade_technic.ltx, то НПС после спауна "замерзает" на месте, и к костру в деревне не идет. При этом набор торговли соответствует указанному в trade_technic.ltx и взаимодействовать с НПСом можно. Можно его и "разморозить", к примеру переходом по инфо-порции на другую секцию логики.

Если параметр trade = misc\trade_technic.ltx, не указывать(или закомментить) то НПС нормально отрабатывает указанную в active = kamp@esc_lager_technic_kamp1 секцию, т.е. идет к костру, садится там и выполняет стандартные анимации.

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

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

Привет всем, у меня такая проблема, я добавил новую модель ак74, на всех локациях работает, а вот при переходе на милитари вылет.

Попробовал убрать у всех на локации это оружие, безрезультатно.

Вот лог:

 

Expression : BI_NONE!=f_bones.back()

Function : P_build_Shell

File : E:\stalker\patch_1_0004\xr_3da\xrGame\PhysicsShell.cpp

Line : 131

Description : wrong fixed bone

 

 

amik,

Привет! :)

Спавн этих псевдогигантов находится в файле gamedata\scripts\news_data.script.

Смотри таблицу do_seen_monster_templates в самом низу содержимого файла. Там же прописаны координаты спавна и тексты сообщений для сталкерской сети.

 

 

PSiHoTiK,

в оллспавне поменяй путь до моделей новых всем валяющимся автоматам.

Капрал Хикс,

Я сделал, проблема была не в этом, там у Скряги за спиной, калаш в тисках, он крепился костью, а т.к. модель и следовательно кости новые, были какие-то проблемы с фиксацией, её я и убрал. Но теперь если выстрелить в этот калаш он начинает глючить и застревать в воздухе, но - это не большая проблема. ;)

После сборки спавна ни один из неписей не подчиняется логике, просто бродят по локации.

 

Вот конфиг одного из них:

 

[62]

; cse_abstract properties

section_name = stalker

name = lev_01_blockpost_guard_4

position = -136.267532348633,32.9428596496582,296.637847900391

direction = 0,0,0

 

; cse_alife_trader_abstract properties

money = 5000

character_profile = lev_01_blockpost_guard_4

 

; cse_alife_object properties

game_vertex_id = 19

distance = 0.699999988079071

level_vertex_id = 320897

object_flags = 0xffffffbf

custom_data = <<END

[smart_terrains]

level_01_smart_blockpost_4 = true

 

[logic]

active = walker

 

[walker]

path_walk = lev_01_blockpost_guard_4_way

path_look = lev_01_blockpost_guard_4_look

END

 

; cse_visual properties

visual_name = actors\soldier\soldier_bandana_1

 

; cse_alife_creature_abstract properties

g_team = 0

g_squad = 0

g_group = 0

health = 1

dynamic_out_restrictions =

dynamic_in_restrictions =

 

upd:health = 1

upd:timestamp = 0

upd:creature_flags = 0

upd:position = -136.267532348633,32.9428596496582,296.637847900391

upd:o_model = 0

upd:o_torso = 0,0,0

upd:g_team = 0

upd:g_squad = 0

upd:g_group = 0

 

; cse_alife_monster_abstract properties

 

upd:next_game_vertex_id = 65535

upd:prev_game_vertex_id = 65535

upd:distance_from_point = 0

upd:distance_to_point = 0

 

; cse_alife_human_abstract properties

predicate5 = 0,2,1,0,1

predicate4 = 1,0,2,2

 

; cse_ph_skeleton properties

 

upd:start_dialog =

 

; se_stalker properties

 

 

Что тут неправильно?

Ошибка в файле гулагов. Проверь на наличие синтаксический ошибок программой script syntax checker

Freedom

Привет. У меня такая задача:

НПС приходит в точку "walker_prizrak1_walk" и удалится из игры.

Сделал ему такую логику:

[logic]
active = walker@prizrak1
danger = danger_ignore
combat_ignore = combat_ignore

[walker@prizrak1]
path_walk = walker_prizrak1_walk
path_look = walker_prizrak1_look
combat_ignore_cond = always
def_state_moving1 = walk
def_state_moving2 = walk
def_state_moving3 = walk
on_signal = path_end | remark@prizrak1

[remark@prizrak1]
on_timer = 10 | {!dell_prizrak1}

[danger_ignore]
ignore_distance = 0

[combat_ignore]
combat_ignore_cond = always

 

С ней у меня вылет без лога, при спавне нпс, что-то не так...

Вот второй пример, с ним все хорошо, не вылетает.

[logic]
active = walker@prizrak1
danger = danger_ignore
combat_ignore = combat_ignore

[walker@prizrak1]
path_walk = walker_prizrak1_walk
path_look = walker_prizrak1_look
combat_ignore_cond = always
def_state_moving1 = walk
def_state_moving2 = walk
def_state_moving3 = walk
meet = meet

[meet]
meet_state    = 10|guard@wait
meet_state_wpn    = 15|threat@threat_weap
victim        = 15|nil
victim_wpn    = 25|actor
use        = true
use_wpn        = false
syndata        = backoff@threat_weap

[danger_ignore]
ignore_distance = 0

[combat_ignore]
combat_ignore_cond = always

 

 

Функция "dell_prizrak1" прописана в самый низ файла xr_conditions.script и имеет такой вид:

function dell_prizrak1()
  local se_obj = alife():object("prizrak_1")
    if se_obj then
       alife():release(se_obj, true)
    end
end

 

Что не правильно, и помогите пожалуйста с логикой.

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

Мой архив

Сталкером не занимаюсь.

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

amik, для этого существует секция [spawner] :)

Эта секция, которая присутствует как у NPC, так и у монстров, спавнит их по определенному условию (выводит в онлайн). Для того, чтобы они появились в данной точке, им надо поставить в настройках в Level editor флажок no_move_in_offline и отключен can_switch_offline. Спавнер прописывается в custom_data объекта перед секцией logic.

 

[spawner]
cond = {+info -info =func !func ~number} - условия для спавна.

 

Если условия спавна не будет выполняться, то объект не заспавниться, а если он заспавнился и условие перестает выполняться, то объект будет спавнером уведен в оффалйн.

 

После того, как объект заспавнился, его берет под управление скрипт Logic.

Пример использования секции:

[spawner]
cond = {+esc_boar_dogs_restrictor}

 

Файл: gamedata\scripts\xr_spawner.script

 

Спавн монстров дневных и ночных

 

[spawner]
cond = {=is_day} – спавнить монстра только днем (если надо ночью, то пишем {!is_day})
check_distance = true – проверка на наличие персонажа рядом.
min_distance = 100 – если игрок ближе указанной дистанции, то монстр не заспавниться (по дефолту 150 метров, но на самом деле это много).

 

zzedik, в логике meet в параметре use поставь self. Получится что-то типа этого:

[meet]
meet_state    = 10|guard@wait
meet_state_wpn    = 15|threat@threat_weap
victim        = 15|nil
victim_wpn    = 25|actor
use        = self
use_wpn        = false

Изменено пользователем Scarabay
zzedik, можно добавить в xr_effects.script следующие строки
--Заставляем диалог появиться самому(в качестве параметра передавать сид обьекта)
function on_talk(actor, npc, p)
    local npc = level_object_by_sid(p[1])
    db.actor:run_talk_dialog(npc)
end

Таким образом при манипуляции с логикой нпс можно заставить появиться диалог. Если Sidа у обьекта нету, можно сделать так

level.object_by_id(id)

В этом случае передавать имя обьекта. Или можно без определения. Убрать p на входе функции и не обьявлять переменную npc. Просто так

function on_talk(actor, npc)
    db.actor:run_talk_dialog(npc)
end

Scarabay Это не то, я тебе написал все в ЛС

zzedik Пробуйте:

[logic].
active = sr_idle

[sr_idle]
on_actor_inside = %+esc_on_talk%   --Выдача поршня
;Или так(Выбрать одно):
on_actor_inside = %=on_talk%"        --Функция

Если выбрали поршень, то создаем его:

<info_portion id="esc_on_talk">
<action>СКРИПТ.on_talk</action>
</info_portion>

Вызываем функцию и видим диалог:

function on_talk()
  local npc = level_object_by_sid(006) 
    db.actor:run_talk_dialog(npc)
end

 

 

Artos Спасибо. Попробую.

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

Мой архив

Сталкером не занимаюсь.

amik, не путай условия и действия.

Скрипт xr_conditions используется в логике для проверки условий и соответственно функции должны возвращать одно из двух логических значений (true/false).

Т.о.твое {!dell_prizrak1} - вроде как (по коду) должно вызывать проверку, но(!) на самом деле удаляет об'ект, не возвращая ничего ...

Тебе, вероятно нужно НЕ проверять "удаление", а просто удалять, т.е. использовать {=dell_prizrak1} и соответственно функцию поместить в xr_effects.script, т.е. скрипт, который обрабатывает действия.

 

Примечание: но я бы сделал удаление не из активной логики самого непися, а ... вначале убил бы его ( npc:kill(npc) ), чтобы снять активные коллбэки и уже немного позже, через таймер иль on_death - удалил бы. Несколько сложнее, но надежнее и безопаснее.

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

"Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени

Всем спасибо за ответы. Ещё вопрос: Как сделать, чтобы при обыске трупа Выдавался info_portion?

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

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

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

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

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

Войти

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

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

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