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


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

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

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

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

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

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

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

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

Уважение: 133
Награды: 32
Сообщение #401
Такой вопрос, как можно сделать, что бы ф-ция вызывала внешний файл? Конкретно я хочу сделать смену времён года в игре (благо есть зимние граф. моды), например есть две папки в геймдате с текстурами осени и зимы, папка с текстурами осени имеет корректное название (textures), а папка с тек-рами зимы имя (например: tex_off_tures - что бы не читалась игрой), вот пришло время по сюжету придти зиме, срабатывает ф-ция из диалога, которая запустит батник который переименует папку с зимними текстурами в корректное имя, а папку с осенью в любое другое имя.
Хотя тут понятно что потребуется перезагрузка игры.

Уважение: 4
Награды: 0
Облучение: 0%
Сообщение #402
Graff46, Невозможно сделать то, что вы хотите. Движок по дефолту читает текстуры из папки textures. Ни из какой другой он это делать не будет. Только если вы его не перепишите.

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #403
Вот такая проблема: клавиатура работает везде кроме этого сталкера, т.е. в самой игре не работает ни клавиша Esc, ни вперед, ни назад, нечего. В меню игры работает только Esc . Вот скрин настроек...я и его не могу выложить, т.к. клавиши F12 и Print Scrin не работают. А в настройках пусто, т.е. везде не выбрана клавиша действия, а выбрать я ее не могу, опять же, не работают клавиши. Что делать?

Уважение: 220
Награды: 39
Облучение: 0%
Сообщение #404
ASSUR, закинуть файл в \Users\Public\Documents\STALKER-STCS.
Это файл настроек игры. Там по дефолту прописаны клавиши. Потом из меню уже можно сменить на свои.
А по поводу проблемы - скорей всего некорректная установка.
Прикрепления: user.ltx (3.7 Kb)

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #405
Цитата (volazar)
Graff46, Невозможно сделать то, что вы хотите. Движок по дефолту читает текстуры из папки textures. Ни из какой другой он это делать не будет. Только если вы его не перепишите.

Ну так я этим и пользуюсь "Движок по дефолту читает текстуры из папки textures" - если есть две папки с текстурами и только одна имеет имя textures - читается движком, а другая папка имеет другое имя, специально что бы не читалась движком. А вот функция которую я ищу, должна вызвать батник который переименует папки, т. е. папку textures в другое имя (что бы не читалась движком), а вторую папку(которая имела имя НЕ textures) переименовывается в textures и с этого момента читается движком...

Сообщение отредактировал Graff46 - Четверг, 02.05.2013, 14:07


Уважение: 4
Награды: 0
Облучение: 0%
Сообщение #406
Graff46, я говорю про переименование. Для того, чтобы игра могла инициализировать папку - она должна перезагрузиться. Просто так из диалога сразу инициализировать новую папку - нельзя.
Во вторых - нельзя работать с файловой системой из луа сталкера. Это не предусмотрено.
А про батник:
Код
move c:\textures c:\textures_osen'
move c:\textures_zima c:\textures

Переименовываем стандартную папку в textures_osen', а папку textures_zima переименовываем в просто textures.

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #407
Какая функция выдаёт инфопоршень при условии если убиты определенные НПС? Как например появляется инф.поршень
Код
esc_kill_bandits_quest_kill
когда убиваешь именно всех бандитов на АТП по квесту с Шустрым.

Уважение: 4
Награды: 0
Облучение: 0%
Сообщение #408
Graff46, Секция on_death в логике. Сама выдача через on_info.
Т.е:
Код
on_death = death

[death]
on_info = {+info} %+info%

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #409
Цитата (volazar)
Секция on_death в логике. Сама выдача через on_info.

Да, я этот вариант рассматривал, конкретно у меня надо выдать инфопоршень о том что убиты 5 НПС, у них у всех в логике одна одинаковая секция на смерть
Код
on_death = death@killer
в свою очередь
Код
[death@killers]
on_info = %+esc_open_lager_fire +esc_open_killer_fire%
выдает инфопоршень, т. е. при смерти этих 5ти НПСов пять раз генирируется один и тот же инфопоршень

Сообщение отредактировал Graff46 - Четверг, 02.05.2013, 16:47


Уважение: 4
Награды: 0
Облучение: 0%
Сообщение #410
Graff46, Пропишите им всем разные поршни, а потом в нужном месте проверяйте и выполняйте действие.

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #411
Код
[logic@esc_killer2_raid]
active = patrol@esc_killer2_raid
on_hit = hit@killers
on_death = death@killers
combat_ignore = combat_ignore

вот

Уважение: 4
Награды: 0
Облучение: 0%
Сообщение #412
Graff46, Если просто схематично, то действия примерно такие:
Есть несколько НПС(для примера возьмем троих) с какой либо логикой, и еще у них в логике должны быть например такие блоки:
у первого НПС
Код
[logic]
on_death = death

[death]
on_info = %+pomer1%

у второго НПС
Код
[logic]
on_death = death

[death]
on_info = %+pomer2%

у третьего НПС
Код
[logic]
on_death = death

[death]
on_info = %+pomer3%

т.е. здесь мы видим, что при смерти первого НПС выдается инфопоршень pomer1, при смерти второго выдается инфопоршень pomer2, при смерти третьего выдается инфопрошень pomer3.
Необходимо, чтобы они были зарегестрированы в файле info_локация.xml в таком виде:
Код
<info_portion id="pomer1">   
  </info_portion>
<info_portion id="pomer2">   
  </info_portion>
<info_portion id="pomer3">   
  </info_portion>
<info_portion id="pomerli_vse">   
  </info_portion>

затем нам надо отследить эти инфопоршни, для этого создаем функцию:
Код
function kto_u_nas_pomer(task, info)
if db.actor and db.actor:has_info("pomer1") and     
                       db.actor:has_info("pomer2") and  
                      db.actor:has_info("pomer3")then
         return  
                      db.actor:give_info_portion("pomerli_vse")     
   end
return false
end

В принципе подготовительная часть закончена. При смерти этих НПС будут выданы нужные инфопоршни, функция отследит их и выдаст "общий" инфопоршень pomerli_vse на котором уже можно "привязать" завершение задания, появление нужного диалога ну и т.д.
Веселый Роджер
Уважение: 936
Награды: 112
Сообщение #413
и вот
Код
[logic@esc_killer3_raid]
active = walker@esc_killer3_raid
on_hit = hit@killers
on_death = death@killers
combat_ignore = combat_ignore

и так все киллер 1, киллер2, киллер3 и тд до 5го

Добавлено (02.05.2013, 16:52)
---------------------------------------------
Цитата (Frankenshtayn)
Если просто схематично, то действия примерно такие:

Так же в туторах написано, но не хотелось трогать логику нпсов

Добавлено (02.05.2013, 16:57)
---------------------------------------------
Да и вообще, эти 5ро, это наёмники что лагерь новичков атакуют при Фанате, просто я Фаната и их заспавнил раньше, сделал их бандитами и все, но стандартный инф.поршень который выдавался при их смерти теперь не выдаётся и зеленая метка остаётся на главаре отряда((((

Сообщение отредактировал Graff46 - Четверг, 02.05.2013, 16:57


Уважение: 4
Награды: 0
Облучение: 0%
Сообщение #414
Graff46, А задание то выдано? Значит где то нестыковка. Задание обновляет 1 поршень, а при смерти выдается другой. Пропишите свои и проверьте.
Цитата (Graff46)
но не хотелось трогать логику нпсов

Если нужно, что бы все было хорошо - без логики не обойтись.

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #415
Задание выдаётся

Уважение: 4
Награды: 0
Облучение: 0%
Сообщение #416
Graff46, хорошо, спрошу по другому - проверка поршней прописана? Выложите код квеста. Самое простое - скриптовая ф-ия, которая проверяет наличие у актора этих самых 5 поршней. Затем в квесте проверка такого вида:
Код
<function_complete>файл.функция</function_complete>

Уважение: 650
Награды: 97
Облучение: 0%
Сообщение #417
Всё, я сделал. Пошарил в нэте и нашёл вот что:
Код
Проверка смарттераили(лагеря) на количество НПС в нем:

function smart_pust()   
if (xr_gulag.getGulagPopulation("название смарта") <= 0) --знак менше либо равно, вы должны знать со школы что оно такое, знаки бывают <=(менше либо равно), >=(больше либо равно), ==(просто равно)   
then   
return true   
else   
return false   
end   
end

Эти пять нпсов были все в одном гулаге esc_killers, и кроме них его не кто занять не мог (проверял). Далее по логике вещей думаю понятно))

Добавлено (02.05.2013, 20:06)
---------------------------------------------
И вообще их там семь было

Сообщение отредактировал Graff46 - Четверг, 02.05.2013, 20:05


Уважение: 4
Награды: 0
Облучение: 0%
Сообщение #418
Цитата (Graff46)
on_death = death@killers

Праввильно, а далее выдается два инфопоршня:
Код
[death@killers]
on_info = %+esc_open_lager_fire +esc_open_killer_fire%

не буду утверждать, (точно не помню этот момент), но могу предположить, что в данном случае проверяется гибель смарта, а не каждого НПС в отдельности. А смысл в общем-то тот же самый.
Веселый Роджер
Уважение: 936
Награды: 112
Сообщение #419
Какую нужно прописать ф-цию что бы ГГ в самом начале игры стартовал пьяным(как от 2х бутылкок водки)?

Добавлено (02.05.2013, 22:52)
---------------------------------------------
И ещё, можно ли заспавнить скриптом оружие уже поломанное(с котороткой полосой состояния)?

Сообщение отредактировал Graff46 - Пятница, 03.05.2013, 16:47


Уважение: 4
Награды: 0
Облучение: 0%
Сообщение #420
Помогите! НС 2012, вер.10004, дмх 1.3.5
Возможно ли разместить в пистолетном слоте тяжелое оружие (винтовка,пулемет)?


Perez

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