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

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


Halford

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

alex5773, как вариант можно в схеме xr_wounded в методе eat_medkit, подменять аптечки, которыми пользуется ГГ на другие, в которых жизни восстанавливает движок. Т.е. тебе нужно создать ещё одну секцию с аптечками, оставить им не нулевое значение параметра eat_health и спавнить их вместо обычных аптечек перед использованием.

Поделиться этим сообщением


Ссылка на сообщение

Старлей,

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

Поделиться этим сообщением


Ссылка на сообщение

Старлей,

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

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

Поделиться этим сообщением


Ссылка на сообщение

плащ, может проблема в том, что у тебя куда-то делась самая верхняя строка в файле game_tasks.xml:

<?xml version='1.0' encoding="windows-1251"?>


Stalker_AleX333, а что конкретно происходит с твоим НПС?

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

riddik121, всё что тебе нужно можно найти в двух файлах: heli_move.script и heli_combat.script. Судя из того, что ты этого не нашёл, то вряд ли тебе удастся сделать то, о чём ты пишешь.

1.

Вопрос: в строке скрипта actor это комьюнити или класс?

Ни то и ни другое.

Строка: 

elseif target == "actor" or target == "a" then
Проверяет значение флага e, либо в точке move, либо look, на соответствие того, нужно ли атаковать именно актора. Этом можно увидеть несколькими строками выше, а именно здесь:
local target = self:waypoint_param( path_info, index, "e" )
И в дальнейшем коде, если проверка возвращает истину.

 

2. Высота на которой будет находится вертолёт можно задавать при помощи параметра combat_safe_altitude. Считается это значение относительно максимального значения координаты Y на локации. Если этого не делать то по умолчанию формула выглядит так:

Максимальное значение координаты Y на локации + удвоенное значение параметра safe_altitude из секции helicopter.

Таким образом, если ГГ будет находится в самой высокой точки локации, то вертолёт будет находится от него на расстоянии всего шести метров (safe_altitude по умолчанию равен трём метрам).

 

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

Поделиться этим сообщением


Ссылка на сообщение

riddik121, что значит "как выглядеть"? Бери нужные параметры и вписывай в секцию, учитывая мааааленькое замечание:

Примечание: отдельной секции для этой схемы поведения нет. Поэтому настройки производятся в секции текущей схемы поведения.

 

Пример можно найти в ТЧ или ЧН, а за более подробной информацией нужно лезть в файлы heli_move.script и heli_combat.script.

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

Поделиться этим сообщением


Ссылка на сообщение

riddik121, хорошо, растолкую по другому данное примечание.

Секции heli_combat не существует, следовательно задавать параметры по которым будет определятся поведение вертолёта во время боя нужно не в новой секции, делая на неё ссылку, а прямо в текущей секции heli_move. Так, надеюсь, яснее?

И по поводу примеров. Почему не заглянуть в оригинальные файлы?

[logic]
active = heli_move1
on_hit = hit

[heli_move1]
path_move = aes_heli_attack_desant_walk_begin2
on_info = {+aes_desant_go} heli_move2
engine_sound = false
combat_safe_altitude = -100

[heli_move2]
path_move = aes_heli_attack_desant_walk2
path_look = aes_heli_attack_desant_look2
invulnerable = true
immortal = true
on_signal = final | %+aes_desant_wave2% heli_move3
combat_ignore = true
mute = true
combat_safe_altitude = -100

[heli_move3]
path_move = aes_heli_attack_desant_walk2_2
path_look = aes_heli_attack_desant_look2_2
on_actor_in_zone = aes_actor_heli | %=heli_set_enemy_actor%
mute = true
combat_safe_altitude = -100
on_info = {=heli_health_le(0.3)} heli_move@death

[heli_move@death]
path_move = heli_death_way
invulnerable = true
on_signal = arrived | heli_move@silent
combat_ignore = true

[heli_move@silent]
path_move = heli_death_way
invulnerable = true
engine_sound = false 
combat_ignore = true

[hit]
on_info = {+aes_desant_wave2} %+aes_choper_crush_sound =heli_start_flame%

Как видишь, все параметры heli_combat заданы в секции heli_move.

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

Поделиться этим сообщением


Ссылка на сообщение

Uyman358, очень плохо искал.

В секции meet@at_hole логики Бармена есть вот такие две строки:

meet_state = 2|barman_talk_free@bar_bar_barmen_hello
meet_state_wpn = 2|barman_talk_free@bar_bar_barmen_hello

Так вот bar_bar_barmen_hello это и есть ссылка на произносящий звук в файле sound_theme.script

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

plac

1. Либо апгрейдить компьютер, либо воспользоваться правками движка X-Ray Extension. Ещё можешь взять правленый экзешник от Macron'а, там данная ошибка тоже пофиксена.

2. Во-первых, ты ошибся темой. А вообще - вот: >>ClicK Me<<.


VovanDolg, если не уверен - лучше не пиши...

Поделиться этим сообщением


Ссылка на сообщение

Labus, в любом диалоге, обязательно должна присутствовать фраза с id равной 0 иначе будешь получать такой вылет.

Поделиться этим сообщением


Ссылка на сообщение

panzyuza, а ты свой универсальный гулаг правильно настроил? Может НПС не подходят под его условия?

Поделиться этим сообщением


Ссылка на сообщение

 

 

Копировал из артефактов туда же, не работают.
Туда же - это куда? Все пять параметров: health_restore_speed (восстановление жизни), radiation_restore_speed (вывод радиации), satiety_restore_speed (уменьшение/увеличение сытости), power_restore_speed (восстановление/уменьшение выносливости) и bleeding_restore_speed (уменьшение/увеличение кровотечения), работают, если их прописать в конфиге костюма, если не работает, значит не туда написал.

По поводу того, как игра просчитывает, что 0.0002 - это 200%, тебе мало кто ответит, просто прими как должное и всё.

Поделиться этим сообщением


Ссылка на сообщение

@JohnWaine, извини, что обнадёжил, но параметры не работают. Я поддался на провокацию ПЫС и поверил тому, что написано у них в конфиге. На деле же указанных мной параметров внутри структуры костюма, т.е. в классе CCustomOutfit, просто нет - поэтому и не работают. В OGSE, некоторые из них были реализованы с помощью скриптов, можешь посмотреть там, если очень нужно.

Поделиться этим сообщением


Ссылка на сообщение

@riddik121, должно всё работать, при условии, что ты скомпилировал all.spawn и начал новую игру и ты вообще разбиваешь тот ящик, что нужно.
Хотя меня ещё смущает путь до модели, в ТЧ нет папки dynamics.

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

Поделиться этим сообщением


Ссылка на сообщение

@riddik121, в данном случае, вылет без лога может быть в том случае, если у тебя не существует указанной функции, либо в файле с функцией синтаксическая ошибка.

Поделиться этим сообщением


Ссылка на сообщение
@Dennis_Chikin, нет, таковое смысла не имеет. Перед разделителем пишется условие для параметра, после можно прописать дополнительные, скажем "общие" условия в фигурных скобках, эффекты, внутри знаков процента, и схема на которую нужно перейти, при этом, если ни дополнительных условий, ни эффектов, ни схемы не будет - ничего не произойдёт. И в приведённом тобой примере:
xr_logic.switch_to_section( obj, st, xr_logic.pick_section_from_condlist( actor, obj, nil ) )
Вылета не будет, т.к. в функции switch_to_section стоит проверка на nil, в качестве секции на которую переходить.

Поделиться этим сообщением


Ссылка на сообщение

@Dennis_Chikin, не обратил внимание... А где ты таковую запись нашёл?

Хотя я кажется понял, что это пример того, что произойдёт в случае записи: условие|<пусто>.
Здесь, да - данное на совести модмейкера. Но если честно, лично мне и в голову не придёт НЕ писать что-то в кондлист, ведь для чего-то мне потребовалось использовать данный параметр...

Да, и кстати при отсутствии кондлиста, вылет будет ещё на этапе парсинга всей строки с параметром,  в той функции, которая там прописана, как правило это одна из функций cfg_get_трямтрям_condlist.

Поделиться этим сообщением


Ссылка на сообщение

@Saruman, хоть он действительно и сидит только из-за логики, но пойти он всё равно не сможет - у него нет ходячих и даже стоячих анимаций, к тому же, модель Сидора имеет 55 костей (43 у обычного сталкера). Ко всему, все анимации зашиты в модели.

Поделиться этим сообщением


Ссылка на сообщение

 

 

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

Поделиться этим сообщением


Ссылка на сообщение

@Saruman, да, но не прямую.

Здесь вероятность просчитывается весьма оригинальным образом. При переходе на схему, где присутствуют данные "символы", берётся случайное число от 1 до 100 и сравнивается с числами в условиях слева-направо. Если число в условии больше, то само условие считается выполненным, если нет, то сравнивается со следующим числом и так далее. Т.е. в данном случае настоящая вероятность для перехода на любую из указанных схем равна 25%. Условно можно посчитать так: для первого условия вероятность будет ровно такая, какое задано число (25%); для второго условия вероятность будет число минус предыдущее число (50-25=25%); для третьего, опять число минус предыдущее число (75%-50%=25%), если и это условие не выполнится, то произойдёт безусловный переход на четвёртую схему (а это тоже 25 оставшихся процентов).

Вот такой алгоритм.  :crazy:

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

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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