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

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


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

И для XML такая есть? Я думал тока луа чекер и всё, помощники закончились. Ан нет спасибо Призрак

Проверил - ошибок не наёдено. Но вылет есть

Тогда остался только один вариант. Нудный, но все же действенный вариант. Забекапь свой диалог_эскейп и потихоньку удаляй свои диалоги. Тогда ты сможешь примерно определить в какой диалоге ошибка

 

З.Ы. А ты точно весь файл скопировал в программу?

Изменено пользователем _Призрак_

Freedom

TRAMP14, хочешь - выложи сюда свой файл, попробуем найти.

З.Ы. Файл должен начинаться с :

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

и заканчиваться:

</game_dialogs>

Может, где то диалог не закрыл, всё может быть...

Я вот подумал - может проблема не в XML как в языке а в XML сталкера? Я там запускаю пару скриптов и удаляю 1 поршень. Вот диалог в котором ошибка:

<?xml version="1.0" encoding="windows-1251" ?>
<game_dialogs>
    <dialog id="perevod">
        <phrase_list>
            <phrase id="1">
                <text>Привет! Ты же проводник? Куда ты меня ожешь перевести?</text>
                <next>2</next>
            </phrase>
            <phrase id="2">
                <text>Могу перевести тебя в обход этих стервятников под мостом. </text>
                <next>3</next>
            </phrase>
            <phrase id="3">
                <text>И сколько мне это будет стоить?</text>
                <next>4</next>
            </phrase>
            <phrase id="4">
                <text>Дешевле чем у этих стервятников. Бутылка водки и ты на той стороне</text>
                <next>5</next>
                <next>6</next>
                <action>escape_dialog.est_vodka</action>
            </phrase>
            <phrase id="5">
                <has_info>estb</has_info>
                <text>Согласен</text>
                <next>7</next>
                <disable_info_portion>estb</disable_info_portion>
                <action>escape_dialog.vooodka</action>
            </phrase>
            <phrase id="6">
                <text>Извини у меня нет водки</text>
                <next>8</next>
            </phrase>
            <phrase id="7">
                <text>Ну пошли</text>
                <action>escape_dialog.ter_perexod</action>
            </phrase>
            <phrase id="8">
                <text>Тогда приходи в другой раз</text>
            </phrase>
        </phrase_list>
    </dialog>
</game_dialogs>

 

Я подозреваю:

<action>escape_dialog.est_vodka</action>

,

<disable_info_portion>estb</disable_info_portion>

и

<action>escape_dialog.ter_perexod</action>

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

TRAMP14, диалоги должны начинаться с идентификатора 0 + ещё куча ошибок в структуре диалога. Советую почитать статьи на Wiki ;)

Вот так правильно:

<?xml version="1.0" encoding="windows-1251" ?>
<game_dialogs>
    <dialog id="perevod">
        <phrase_list>
            <phrase id="0">
                <text>Привет! Ты же проводник? Куда ты меня можешь перевести?</text>
                <next>1</next>
            </phrase>
            <phrase id="1">
                <text>Могу перевести тебя в обход этих стервятников под мостом.</text>
                <next>2</next>
            </phrase>
            <phrase id="2">
                <text>И сколько мне это будет стоить?</text>
                <next>3</next>
            </phrase>
            <phrase id="3">
                <text>Дешевле, чем у этих стервятников. Бутылка водки - и ты на той стороне.</text>
                <next>41</next>
                <next>42</next>
            </phrase>
            <phrase id="41">
                <precondition>escape_dialog.est_vodka</precondition> - это - условие, есть ли водка в инвентаре. Если есть, значит ветка диалога появится.
                <text>Согласен.</text>
                <action>escape_dialog.vooodka</action> - это - функция взятия из вашего инвентаря и передачи водки в инвентарь НПС. 
                <next>51</next>
            </phrase>
            <phrase id="42">
                <text>Извини, у меня нет водки.</text>
                <next>52</next>
            </phrase>
            <phrase id="51">
                <text>Ну пошли.</text>
                <action>escape_dialog.ter_perexod</action> - это - функция для перехода в нужное тебе место.
            </phrase>
            <phrase id="52">
                <text>Тогда приходи в другой раз.</text>
            </phrase>
        </phrase_list>
    </dialog>
</game_dialogs>

 

Не забудь удалить мои комментарии ;)

Также советую тебе текст выносить в отдельный файл. Например, в stable_dialogs.xml в папке:

gamedata\config\text\rus

Добавляешь в самый конец так:

    <string id="идентификатор_строчки_текста">
        <text>Привет! Ты же проводник? Куда ты меня можешь перевести?</text>
    </string>

А в диалоге:

    <text>идентификатор_строчки_текста</text>

Иначе, если так не сделать, текст может не появится, или не появится полностью.

Изменено пользователем Disord
Иначе, если так не сделать, текст может не появится, или не появится полностью.

Наглые враки, я сам никогда не выношу текст в другой файл и у меня все нормально работает на всех 3-х играх. Да и нужно это только для облегчения локализации.

Изменено пользователем Министр

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

 

----

И всё равно, в большинстве случаев, водка в руке не появляется - отыгрывается "пустая" анимация.

Проверьте в m_stalker.ltx строку attachable_items. Если водки там нет, то это и есть причина, надо дописать. У меня такая же байда с биноклем - везде заменил binocular_a на wpn_binoc, а он так не работает - идёт пустая анимация.

Изменено пользователем Полтергейст
Министр, не знаю, когда учил диалоги, писали именно это :) Сам не пробовал вот так вот текст писать в диалоге, мне удобней выносить его в отдельный файл - потом только его надо будет открыть, и поправить любые тексты, если понадобится. Изменено пользователем Disord

Могу добавить, что символов в фразе должно быть не больше 128(вроде) иначе вылет. Сам не выношу фразы в отдельный файл, путаюсь.

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

アレクセイ 高い
Arekusei takai

Леня Баньши, пример можешь глянуть на мёртвом новичке-проводнике, который должен провести через тоннель с электрой, после квеста с флешкой. Вот его логика:

custom_data = <<END
[dont_spawn_character_supplies] - эта строчка отвечает за "неспавн" предметов, прописанных в его профиле

[known_info] - это нужная тебе секция, ниже перечисляешь поршни, без знаков эффектов.
esc_tutorial_dead_novice
esc_find_railroad_passage_find_stalker
END

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

Подскажите, что именно значит такая ошибка:

 

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: d:\games\stalker\gamedata\scripts\move_mgr.script:250: attempt to call field 'get_anomaly_list_for_pos' (a nil value)

Что именно это значит? Он не видит функцию или же она возвращает nil? Если что, функция на месте (скрипт amk_anoms). Может ли какая-то ошибка в синтаксисе LUA до этой функции вызвать такое безобразие?

 

И ещё один вопрос: я сделал так, что вместо аномалий amk_zone* спавнятся просто zone_* (динамические аномалии), так вот, во втором случае из них появляются артефакты. Как-то так само собой получилось, что их появляется много, и в такой ситуации почему-то очень косячат диалоги (просто не отображаются некоторые фразы для ответа, например "До встречи". Как только менаю обратно на amk_zone* - глюк исчезает вместе с большим количеством артов. Как это может быть связано между собой?

 

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

И ещё одно наблюдение: динамические рестрикторы у меня снова заработали, правда, только для монстров (людей до этого перевёл на схему anomaly_evader). Теперь я понял, почему они слетают. Похоже, что это первый признак перегрузки стека - функции add_restrictions() и remove_restrictions() из-за этого просто перестают работать.

 

Нашёл в скриптах немало функций, которые попусту перебирают все объекты и тратят на это время. Выглядят они так:

for i = 0,65534 do
  if level_object_by_id(i)~= nil then
--' Какое-то действие
  end
end

Для этих целей есть таблица db.creatures, было бы логичнее использовать её, т.к. там только онлайн-объекты.

Изменено пользователем Полтергейст

Привет всем. Кто подскажет, как заставить один гулаг напасть на другой?

________

Я знаю способ назначения работы валкера до точки смарта-врага, но это мне не подходит.

________

Ну, например, есть нападения на гулаги в ЧН. Как там это сделано?

SkyLoader, боюся для ТЧ придется делать именно так, как тебе не подходит. На ЧН, мне кажеться, смарт_каверы реализуют такую возможность, хотя ...

Вобщем в помощь тебе ситуация с Черепом на Армейских Складах, атака долга на свободу или наоборот. ;)

 

_Призрак_, у них, у кого?

Изменено пользователем Куфзук
Куфзук, там у Чепепа с командой сделана логика валкера в точку смарта свободовцев. Такая же ситуация с атакой бандитов на кладбище техники.
SkyLoader, тогда почему тебе этот вариант не подходит, вполне достойно выглядит?
Привет всем. Кто подскажет, как заставить один гулаг напасть на другой?

Очень просто - в customdata всех нападающих неписей прописать:

 

[smart_terrains]
имя смарта, в котором отряд до нападения = {-инфопоршень - сигнал к атаке}
имя смарта, на который надо напасть = {+инфопоршень - сигнал к атаке}

Кстати, кто-нибудь знает, какой скрипт читает секцию smart_terrains и разбирает всё это дело? А то я что-то кроме xr_wounded ничего не нашёл...

 

P.S. этот метод не пойдёт, если нужен любой состав смарта (т.е. если в нём любые неписи, а не только те, которым всё это дело прописано). Можно сделать и это, но если ответ на вопрос (который чуть выше) не будет найден, то придётся возиться с net_packet().

 

P.P.S. Кто знает, уменьшатся ли проблемы со стеком, если снизить настройки графики?

 

так и называется: smart_terrain.script. Куфзук

Изменено пользователем Куфзук

Куфзук, дело в том, что я хочу, чтобы это было димамично для каждого смарта.

Полтергейст, дело в том, что неписи считают этот гулаг своим и не бегут с оружием на изготовку на этот гулаг. И то, если гулаг заполнен, то это не прокатит - неписи пойдут гулять.

 

 

Подскажите мне пожалуйста, как сделать, чтобы после взрыва гранаты на ее месте что-то спавнилось? (например кусок колбасы =) ).

Точка ЛЦУ у вас на лбу это тоже чья-то точка зрения.

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

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

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

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

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

Войти

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

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

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