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

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


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

Всё, с вылетом на подземке покончено. Оказывается, проблема была в NLCшном скрипте sak.script в функции out_teleport. Не знаю пока, в чём именно, буду разбираться.

parsek123

Сам принцип динамической погоды, думаю, не сильно (если вообще) отличается АМК:

 

Есть полные суточные циклы с каждым типом погоды - сутки ясно, сутки пасмурно и т.д.

Предположим для определенности, погода меняется раз в час. Можно с минутами, суть останется та же.

В качестве погод прописаны переходы между "соседними" (или просто логичными, ясно -> гроза будет смотреться странно) типами погоды для каждого часа - допустим, (12:00 ясно) -> (13:00 пасмурно), (23:00 пасмурно) -> (00:00 дождь) и т.д.

Каждый час определяется следующий тип погоды, текущий тип погоды известен (level.get_weather), время известно (level.get_time_hours/minutes).

Командой level.set_weather() устанавливаем погоду с переходом: (текущий_час текущий_тип) -> (следующий_час следующий_тип).

Поскольку в прошлый раз таким же образом была установлена погода (прошлый_час прошлый_тип) -> (текущий_час текущий_тип), то в момент смены погоды установится точно та же секция, что и была, и это изменение не будет заметно.

 

Конкретные детали лучше все-таки посмотреть в моде.

Мои работы:

Ночные прицелы + смена ножевого слота

AI вертолетов + ПЗРК

Soul Cube

 

Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем.

У меня вот такая проблема: сделал, чтобы динамические аномалии могли создавать артефакты (поставил BirthProbability=0.01), после этого стал виснуть биндер игрока (пропали часы, перестал отображаться пункт "До встречи" в диалогах, стали портиться сохранения). Что сделать, чтобы не висло?

Появление артов в онлайне убрал вообще, не помогло.

Kirag, по поводу погоды. Всё что смог понять из скрипта абц - это то, что они использовали рандом, от двух до четырёх вариантов, которые прописаны в конфигах отдельными файлами (weather_default, weather_default1, weather_default3 и так далее). Ты не мог бы помочь мне и написать функцию смены погоды, чтобы я мог пользоваться ею как образцом?

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

Координаты самих иконок в полный рост ГГ здесь не причем - каждую координатку сам забивал. Нужны именно координаты отображения в инвентаре?

Конфигурация PC: CPU: Intel Core i5-2500K; GPU: ASUS ENGTX570 DCII/2DIS/1280MD5; MB: ASUS P8P67 PRO (REV 3.0); БП: Antec TruePower Quattro EC (1000W); Монитор: ASUS VG236H 23" (1920x1080) + NVIDIA 3D Vision
Biler, ты не прав, координаты в инвентаре как раз таки не причём. Проверяй координаты из файла где ГГ в полный рост стоит, а картинка в инвентаре уже подстраиваится сама под размер ячеек которые ты забил в inventory_new (параметр <dragdrop_outfit).

При создание диалога столкнулся с проблемкой,лог и сам диалог ниже помогите найти в нём ошибку, а то сам не как немогу найти. :ny_unsure:

 

<dialog id="layer_anzorka_oops">

Expression : next_phrase_node

Function : CPhraseDialog::AddPhrase

File : E:\stalker\sources\trunk\xr_3da\xrGame\PhraseDialog.cpp

Line : 289

Description : 5

 

 

<dialog id="layer_anzorka_oops">

<has_info>kvest_anzor_started</has_info>

<dont_has_info>test_quest_anzor_otdana</dont_has_info>

<phrase_list>

<phrase id="0">

<text>bla_bla</text>

<next>1</next>

</phrase>

<phrase id="1">

<text>bla_bla_1</text>

<next>2</next>

<next>3</next>

</phrase>

<phrase id="2">

<text>bla_bla_2</text>

</phrase>

<phrase id="3">

<text>bla_bla_3</text>

<precondition>escape_dialog.have_anzor_flesh</precondition>

<action>escape_dialog.give_anzor_flesh</action>

<next>4</next>

</phrase>

<phrase id="4">

<text>bla_bla_4</text>

<give_info>test_quest_anzor_otdana</give_info>

<next>5</next>

</phrase>

<phrase id="5">

<text>bla_bla_5</text>

</phrase>

</phrase_list>

</dialog>

 

 

 

Добавлено через 90 мин.:

Всё оказалось ещё хуже вылет без лога, а тот лог остался от предыдущего вылета...

Изменено пользователем Layer321
naarb100gbeg.png

Ребята, почему у меня на новой локации текстуры земли на статике нормальные, а на динамике на текстуре травы бамп земли с янтаря, а вместо асфальта вообще и текстура и бамп земли янтаря? На других локациях всё порядке. Как это исправить? Заранее спасибо.

Layer321, попробуй во 2-ой и 5-ой фразе поставить тег

<action>dialogs.break_dialog</action>

на окончание диалога и проверь все названия инфопоршней и скриптов с функциями (хотя тут лог был бы).

Ulman, вопрос "мимо кассы". Тебе в тему Сообщество мапперов.

ЗЫ: попробуй перекомпилировать мапу на более высоких настройках.

 

Layer321, хм, все инфо прописал? Это диалог на выдачу квеста, как я понимаю. Сам квест правильно написан? Просто по одному дереву диалогов не разобраться. Странно что без лога вылет. Можешь кинуть геймдату (если тайна, можешь не давать:))?

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

ТЧ 1.0004. SAP и Trans mod

github

Уже проверил, а функция во 2 фразе стоит, а в 5 она не обязательно П.С диалог и так заканчивается.

У меня диалог появляется, а после выбора первой фразы гг стабильный вылет.

Изменено пользователем Layer321
naarb100gbeg.png

Layer321, а так попробуй...?

<dialog id="layer_anzorka_oops">
    <has_info>kvest_anzor_started</has_info>
    <dont_has_info>test_quest_anzor_otdana</dont_has_info>
    <phrase_list>
        <phrase id="0">
            <text>bla_bla</text>
            <next>1</next>
        </phrase>
        <phrase id="1">
            <text>bla_bla_1</text>
            <next>21</next>
            <next>22</next>
        </phrase>
        <phrase id="21">
            <text>bla_bla_2</text>
        </phrase>
        <phrase id="22">
            <text>bla_bla_3</text>
            <precondition>escape_dialog.have_anzor_flesh</precondition>
            <action>escape_dialog.give_anzor_flesh</action>
            <next>3</next>
        </phrase>
        <phrase id="3">
            <text>bla_bla_4</text>
            <give_info>test_quest_anzor_otdana</give_info>
            <next>4</next>
        </phrase>
        <phrase id="4">
            <text>bla_bla_5</text>
        </phrase>
    </phrase_list>
</dialog>

 

Т.к. я думаю, что проблема именно в идентификаторах фраз (лог говорит об ошибке при получении фразы). Идентификаторы, с чётными числами - это фразы ГГ, а нечётными - НПС.

Desertir, вроде бы, если не прописана функция окончания диалога, то мы возвращаемся в "главное меню" диалогов.

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

Disord, да мало ли на что у него ругается, я обычно для верности ставил, иногда нет :)

Он написал, что лог от старого вылета. Сейчас лог вообще пустой. Он не в диалоге ошибся, косяк в чем-то другом. Например в скриптах.

Идентификаторы, с чётными числами - это фразы ГГ, а нечётными - НПС.

На четность или нечетность игре начхать :) Кто и в каком порядке говорит можно установить тегами

<start_dialog></start_dialog> --сначала говорит непись 
<actor_dialog></actor_dialog> --сначала говорит ГГ

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

ТЧ 1.0004. SAP и Trans mod

github

да, в главное меню на там у меня досвиданье и т.п., а насчёт лога я писал он старый вылет без логовый. Щас попробую твой вариант.

 

Добавлено через 4 мин.:

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

 

function have_anzor_flesh(first_speaker, second_speaker)

return first_speaker:object("esc_wounded_flash") ~= nil

end

function dont_have_anzor_flesh(first_speaker, second_speaker)

return not have_wounded_flash(first_speaker, second_speaker)

end

 

function give_anzor_flesh(first_speaker, second_speaker)

dialogs.relocate_item_section(second_speaker, "esc_wounded_flash", "out")

dialogs.relocate_money(second_speaker, 1500, "in")

end

 

______________________

 

Disord, С твои вариантом такой, же без логовый вылет

Изменено пользователем Layer321
naarb100gbeg.png

Layer321, а это что такое?

function dont_have_anzor_flesh(first_speaker, second_speaker)
return not have_wounded_flash(first_speaker, second_speaker)
end

Забыл кое что поменять. После слова return напиши have_anzor_flesh(first_speaker, second_speaker) вместо have_wounded_flash(first_speaker, second_speaker)

 

Disord, неуспел ;)

А тут

dialogs.relocate_item_section(second_speaker, "esc_wounded_flash", "out")
смотря что надо, передать или отдать предмет.

 

ну, зато ты ошибся в исправлении функции

Не, идея тех мододелов, у которых были взяты скрипты, была в том, чтобы поменять значение функции have_anzor_flesh. Что я написал и что ты написал дадут одинаковые результаты.

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

ТЧ 1.0004. SAP и Trans mod

github

Layer321, так, ошибки в функциях есть, это точно:

function have_anzor_flesh(first_speaker, second_speaker)
return first_speaker:object("esc_wounded_flash") ~= nil
end
function dont_have_anzor_flesh(first_speaker, second_speaker)
return first_speaker:object("esc_wounded_flash") == nil --/ вот так верно
end

function give_anzor_flesh(first_speaker, second_speaker)
dialogs.relocate_item_section(second_speaker, "esc_wounded_flash", "out") --/ насчёт этого не уверен, но попробуй забрать предметы у first_speaker
dialogs.relocate_money(second_speaker, 1500, "in")
end

Desertir, ну, зато ты ошибся в исправлении функции :)

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

Спасибо вам огромное, а на фирс спикер не надо менять получиться что я забераю у нпс флешку.

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

Да простят меня модераторы.

 

Disord ты неправ, привильно будет ~= nil. Во всех стандартных функциях так.

___________

 

Вылет остался.

Изменено пользователем Layer321
naarb100gbeg.png
Вылет остался.

:D :D :D Зря мы, Disord, мучались.

Disord ты неправ, привильно будет ~= nil. Во всех стандартных функциях так.

Это язык Lua. Если нет операции сравнения "==" это не значит что ее нет вообще. Все там нормально.

Layer321, придется тебе кинуть gamedat'у я вот вообще не представляю что у тебя может быть неправильным.

ЗЫ: предыдущий пост цитировал для понятного оформления.

ТЧ 1.0004. SAP и Trans mod

github

картинка в инвентаре уже подстраиваится сама под размер ячеек которые ты забил в inventory_new (параметр <dragdrop_outfit).

parsek123, вообщето координаты иконок ГГ в полный рост, я вбивал в файл ...\gamedata\config\ui\ui_icons_npc.xml.

Щас попробую "твой" файл поковырять.

Изменено пользователем Biler
Конфигурация PC: CPU: Intel Core i5-2500K; GPU: ASUS ENGTX570 DCII/2DIS/1280MD5; MB: ASUS P8P67 PRO (REV 3.0); БП: Antec TruePower Quattro EC (1000W); Монитор: ASUS VG236H 23" (1920x1080) + NVIDIA 3D Vision
Biler, я наверное не в ту сторону выразился, в общем так, если у тебя картинка неровно отображается (обрезана) проверяй координаты из ui_icons_npc.xml, инвентарь тут не причём, ты просто координату неровно с текстурки снял.
Biler, если у тебя картинка неровно отображается (обрезана) проверяй координаты из ui_icons_npc.xml, инвентарь тут не причём, ты просто координату неровно с текстурки снял.

parsek123, наверно ты меня не понял координаты все я снял верно. То что меня интересовало ты уже мне подсказал, мне нужно было сдвинуть ГГ в окне вправо. Вот привожу описание может кому пригодится.

Файл "inventory_new_16.xml" по пути: C:\Program Files\компания-разработчик (признана нежелательной)* World Publishing\S.T.A.L.K.E.R\gamedata\config\ui\inventory_new_16.xml

 

Родные координаты отображения иконки ГГ в полный рост в инвентаре справа.

 

<dragdrop_outfit x="858" y="290" width="78" height="260"

cell_width = "43" cell_height="57" rows_num="4" cols_num="4"

custom_placement="0"/>

 

Изменяя эти координаты можно двигать иконку влево-вправо и вверх-вниз:

 

<dragdrop_outfit x="858"(влево-вправо) y="290"(вверх-вниз)

 

Конфигурация PC: CPU: Intel Core i5-2500K; GPU: ASUS ENGTX570 DCII/2DIS/1280MD5; MB: ASUS P8P67 PRO (REV 3.0); БП: Antec TruePower Quattro EC (1000W); Монитор: ASUS VG236H 23" (1920x1080) + NVIDIA 3D Vision

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

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

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

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

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

Войти

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

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

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