Правила сайта FAQ Мини-чат
Для добавления необходима авторизация!
28.03.2024, Четверг, 13:01


Модератор форума: romale  
Форум » S.T.A.L.K.E.R. - Моддинг » Разбираем S.T.A.L.K.E.R. » Разборочная комната ТЧ (Задаем вопросы по скриптам/конфигам и другим файлам игры)
Разборочная комната ТЧ
Сообщение #1
Вы задаёте интересующий вас вопрос и тот, кто может вам на него ответить, пишет свой ответ. Правила темы:

1. Прежде чем задать вопрос, желательно прочитать все предыдущие страницы темы. Даже если вы не найдете там нужного ответа - я уверен, вы узнаете много нового. Второй вариант - воспользоваться поиском по ключевому слову.

2. Вы можете задавать вопросы, только непосредственно касающиеся создания модификаций и редактирования файлов игры

3. Личные вопросы не допускаются

4. Отвечать на вопросы желательно достаточно развернуто, задевая все аспекты касающиеся конкретного вопроса

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

6.Соблюдайте грамотность и правильность построения вопросов и ответов, во избежание их удаления. "Спасибо / пожалуйста / не знаю" и прочие односложные и
не несущие смысловой нагрузки сообщения, будут удаляться немедленно, а их авторы - наказываться.

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

Уважение: 133
Награды: 32
Сообщение #821
Всем привет. Может я не правильно вопрос задаю?! Есть нпс вновь созданный. Через аль.спавн его можно сделать раненым без проблем. Но нужен именно заспавненный через скрипт, с помощью <action>, чтоб лежал на земле и просил аптечку. Неужели только через логику и remark, можно это сделать?! Может статья где нибудь есть.
Трупик ведь можно спавнить, а раненого нет?!?

И второй вопрос, где нужно править (конфиг?) чтоб трупы исчезали быстрее. За ранее благодарен.

Второй вариант наверное не подойдет, у меня тч-04 без амк мода. На счет первого варианта, нужно попробовать.

Сообщение отредактировал Giznyhvatit - Воскресенье, 10.11.2013, 12:45

Сообщение #822
Giznyhvatit, по первому вопросу:
Как один из способов заспавнить скриптового нпс с логикой, где у него поза раненого и озвучка через звуковую схему такая же. Например, через:
Код
anim = wounded_heavy_3
snd = help_heavy

Другой способ через:
Код

local obj = alife():create("esc_stalker_respawn_1",db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id())
         local tbl = amk.read_stalker_params(obj)
         tbl.health = 0.1
         tbl.updhealth = 0.05
         amk.write_stalker_params(tbl, obj)
Но тут нужны функции АМК-скриптов
Возможно, что можно всучить неписю принудительный хит, доводящий до состояния ранения.

Уважение: 169
Награды: 31
Облучение: 0%
Сообщение #823
Добрый день. Что то не получается у меня с этими ранеными...

что тут куда вставить чтоб нанести хит, этому нпс? И в какой файл нужно поместить одну из этих функций?

И как мне из этого набора выдрать нужное?!

Сообщение отредактировал Giznyhvatit - Воскресенье, 10.11.2013, 13:33

Сообщение #824
Giznyhvatit, в файле gamedata\scripts\xr_effects.script есть готовая функция hit_npc
Посмотри, как она работает.

Сразу видно, что у Вас не указана кость, по которой нужно нанести ХИТ.

h:bone


Терпение......
И все получится!

Уважение: 999
Награды: 31
Облучение: 0%
Сообщение #825
Giznyhvatit, насколько мне известно, конкретные sid cкриптами можно присвоить тому же нпс, который спавнится на локации отличной от той, где находится ГГ - . т.е. присвоение осуществится при переходе (сохранении автосохранки и её загрузки, почитай "псевдо НИ") на эту локацию.
Придётся искать игровой идентефикатор скриптового НПС, хотя бы через:

Код
function функция()
local npc,obj
for i=10,65534 do  
npc = level.object_by_id(i)
if npc and npc:name() == "[b]grom30[/b]" then  
obj = alife():object(npc:id())
npc: -/-/-/-/-/-/-/ -- дальше то, что хочется произвести с этим несчастным
-/-/-/-/-/-/-/
Про нужное количество "end" не забыть.

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

Уважение: 169
Награды: 31
Облучение: 0%
Сообщение #826
Цитата makdm ()
сделайте проще,


топает мой нпс, валятся на земле не хочет

<_< что и где не так?

Сообщение отредактировал Giznyhvatit - Воскресенье, 10.11.2013, 14:26

Сообщение #827
Giznyhvatit, сделайте проще, чтобы не искать объект путём перебора.

В логике НПС пишите

on_info = {-поршень} %+поршень =hit_my_npc%

А в файл xr_effects.script в конец файла пишите свою функцию

function hit_my_npc(actor, npc)
local h = hit()
h.power = 0
h.direction = npc:direction()
h.bone = "bip01_spine"
h.draftsman = npc
h.impulse = 0
h.type = hit.wound
npc:hit(h)
end

Только подберите правильно impulse и power
Вот и всех делов то.


Терпение......
И все получится!

Уважение: 999
Награды: 31
Облучение: 0%
Сообщение #828
Giznyhvatit, зависит от защиты НПС.

У меня например упал при h.power = 2.8 Подберите значение.

Кстати h.impulse можете оставить равным 0.


Терпение......
И все получится!

Уважение: 999
Награды: 31
Облучение: 0%
Сообщение #829
Цитата makdm ()
зависит от защиты НПС.

А то что я в спойлере показал, правильно собрано? имеется в виду логика нпс (инфопрошни), см. диалог
Добро сейчас гляну. :)

Нет... ставил и 400 шагает(((, может все таки что то в спойлере не хватает?

Посоветуйте как лучше...

Сообщение отредактировал Giznyhvatit - Воскресенье, 10.11.2013, 16:31

Сообщение #830
Цитата Giznyhvatit ()
правильно собрано? имеется в виду логика нпс

С точки зрения выдачи инфопорции и вызова функции - всё правильно.

Вам просто нужно подобрать h.power

Начнём всё сначала

У вас после окончания даилога спавнится НПС. Вы хотите, чтобы он заспавнился раненым.
Тогда поршень окончания диалога не должен быть в логике НПС.
Потому что строка on_info = {-Osoznay2} %+Osoznay2 =hit_my_npc%
переводится так: Если поршень не выдан, то выдать поршень и исполнить функцию
А у вас поршень выдан в диалоге, поэтому функция не выполняется
Пропишите в логике другой поршень. Например

on_info = {-Osoznay3} %+Osoznay3 =hit_my_npc%

А затем подбирайте значение h.power

Я бы сразу дал 50 и посмотрел. Если помрёт, то снижайте на 10 пока не найдёте значение, когда он будет ранен.

Кстати, чем вас не устраивает раненый в схеме remark, я так и не понял, честно говоря


Терпение......
И все получится!

Сообщение отредактировал makdm - Воскресенье, 10.11.2013, 15:53


Уважение: 999
Награды: 31
Облучение: 0%
Сообщение #831
Giznyhvatit, не нужно трогать диалог. Оставьте его таким, каким он был.

В логике пропишите у первого сталкера вот так

on_info = {-Stalker_1} %+Stalker_1 =hit_my_npc%

у второго

on_info = {-Stalker_2} %+Stalker_2 =hit_my_npc%

и т.д. по количеству бойцов сквада

И если нужно зарегистрируйте поршени

И всё.


Терпение......
И все получится!

Уважение: 999
Награды: 31
Облучение: 0%
Сообщение #832
Вобщем получается я не так понял, нпс спавнится через акшен, а функция сама по себе наносит хит))). Теперь последствия этого хита, пробовал ставить h.power=1 нпс мертв, h.power=0.99 шагает((((( что делать?

(на всякий случай повторюсь, тч-04 без Амк мода...)

Спасибо что откликнулись...

Вопрос остается открытым((((

Цитата makdm ()
чем вас не устраивает раненый в схеме remark



Не знаю может я не правильно делал,

Цитата volazar ()
Вы схему ему прописали в логику?
Видите ли схема что в спойлере, мне подходит, но я не знаю как ее допилить, а с wounded какие то неувязки...
Спасибо что пытались помочь!

Сообщение отредактировал Giznyhvatit - Понедельник, 11.11.2013, 10:30

Сообщение #833
Giznyhvatit, Будь у НПС хоть 0.00000001 здоровья, он будет шагать. Для того, чтобы он упал - у него в логике должна быть прописана секция раненого. А именно wounded.
Пропишите в логику:
Код
[wounded]
hp_state = 10|help_me@help
hp_state_see = 10|wounded@help_see
hp_victim = actor


Как только у НПС останется 10 ХП, он упадет и будет просить о помощи.

*** *** ***
Цитата Giznyhvatit ()
Вопрос остается открытым((((

Вы схему ему прописали в логику?

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #834
Привет всем, я снова с той же темой, если вам не надоело)))) то продолжим :) . Если поменять кость по которой бьет хит вызванный с помощью функции, как думаете можно будет отрегулировать h.pover?
В файле m_stalker есть такие строки
если я правильно понял это дефолтные настройки урона сталкеров?!

Цитата makdm ()
пишу готовую логику,
Спасибо за помощь, я лишь немного подправил логику которую вы мне описали. Дело в том что после взятия аптечки, нпс просто топал к своему месту в игре, и поговорить с ним было не возможно... Вот что я добавил:

Цитата Korpus ()
Другой способ через:
Жаль конечно, что не получилось применить схему указанную Korpus, было бы гораздо проще спавнить нпс(ов), без всякой логики wounded, как в all.spawn upd:health = 0.01000 и т.д...
Вопрос закрыт...
Еще раз спасибо всем, кто старался помочь! :)

Сообщение отредактировал Giznyhvatit - Вторник, 12.11.2013, 18:18

Сообщение #835
Giznyhvatit, я Вам пишу готовую логику, которая работает. Без всяких хитов, костей и т.д.
Делается симуляция раненого бойца. На самом деле он здоров, как Бык, но будет стонать и ныть, что всё у него плохо.

Подходите к нему, разговариваете, даёте аптечку, ставите укол и делаете массаж ( по выбору ). :D
После диалога он встаёт на ноги.

Логика



Пропишите ему в стартовый диалог dolg_dialog, сделайте с ним диалог и в конце диалога выдадите поршень dolg_dialog_end.
Соответственно поршень зарегистрируйте.


Терпение......
И все получится!

Уважение: 999
Награды: 31
Облучение: 0%
Сообщение #836
Скачал лицензионки( akva адрес указал), установил ЧН и патч 10.
Установил мод Время перемен, запустил... получил вылет с логом

Прошу помочь, если это возможно... <_< <_< <_<



Win10*64 SSD IntelCore i5-9400 2.90GHz * 6c 8.00Gbt
NVIDIA GeForce GTX 1650

Уважение: 789
Награды: 59
Сообщение #837
GeorgF, а зачем здесь этот пост? Название и описание темы-то видели?
Вам скорее сюды нужно: http://stalker-gamers.ru/forum/30-1213-1



Такой как есть
Уважение: 571
Награды: 64
Сообщение #838
IMAGINE, извините... привычка :\



Win10*64 SSD IntelCore i5-9400 2.90GHz * 6c 8.00Gbt
NVIDIA GeForce GTX 1650

Уважение: 789
Награды: 59
Сообщение #839
Добрый день! Подскажите, как сделать в ООП+К+МА, что бы ГГ держал болт как в ЗП? Есть ООП и допа к нему "Storm"(в ней болт как в ЗП). Закидываю из допы все файлы с именем "bolt" в ооп(3 нашел), но ловлю вылет. Может есть еще связанные с "болтом" файлы?



Сообщение отредактировал Kotelnikov-art - Четверг, 14.11.2013, 12:05


Уважение: 11
Награды: 2
Облучение: 0%
Сообщение #840
Цитата Kotelnikov-art ()
Закидываю из допы все файлы с именем "bolt" в ооп

Очень неудачный способ совмещения модов.
Цитата
Может есть еще связанные с "болтом" файлы?

Естественно есть, раз вылетаешь.
Вообще эта тема по разборке ТЧ. Поэтому тут тебе нужно самому поработать. Даже автор данного венегрета вряд ли тебе поможет. Нотепад++ с ВинМергже в руки и вперед. Да...и лог вылета все-таки найди и почитай. Иногда очень помогает в исследовании причин вылета.



Дорого. Гарантия. Оплата по факту.

Уважение: 84
Награды: 12
Облучение: 0%
Форум » S.T.A.L.K.E.R. - Моддинг » Разбираем S.T.A.L.K.E.R. » Разборочная комната ТЧ (Задаем вопросы по скриптам/конфигам и другим файлам игры)
Поиск: