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

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

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

Всем доброго времени суток. У меня много вопросов, начну по порядку:

1. Вопрос по поводу гулагов.

строка:

in_rest = "", out_rest = ""

в файле gulag_XXX.script за что отвечает?

В статье на Вики написано:

"In_rest, out_rest - рестрикторы, которые устанавливаются персонажу на данное задание"

то есть?

 

2. Вопрос по поводу профиля НПС.

По какому принципу выбирается НПС из файла charcter_desc_*** !?

Т.е. я прилипил одному профилю (soldier_specnaz) ПКМ, но с новым оружием оказалось аж трое НПС! Почему??? Ситуация менялась - были и трое, и один тоже был, но почему именно так?

 

3. Вопрос по поводу скриптов.

как мне вызвать свою функцию в actor_binder:update(delta)

делаю так:

my_script.my_function()

вылет с ошибкой:

 

FATAL ERROR

 

[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: ...s\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:333: attempt to index global 'my_script' (a nil value)

 

И вот еще. Из AI pack RC от xStream запись в файле bind_stalker.script:

if xrs_ai then xrs_ai.actor_update(delta) end?

xrs_ai - это файл, то есть проверка определяет существует ли он или нет. Или что? Что означает эта строка?

Ссылка на комментарий
По какому принципу выбирается НПС из файла charcter_desc_*** !?

Есть такое понятие - спавн ;) он бывает скриптовый и из алл_спавна.


256 символов
Ссылка на комментарий

Куфзук, по 3 скажу:

вызов функции верный.

[error]Arguments : LUA error: ...s\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:333: attempt to index global 'my_script' (a nil value)

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

про xrs_ai догадался верно.

Изменено пользователем 8push5
Возможно всё, ну или почти всё.
Ссылка на комментарий
Есть такое понятие - спавн он бывает скриптовый и из алл_спавна

Не понял!

Вот например в лагере новичков на Кордоне население = 13 человек, в all.spawn - 13 нпс, в профиле 13 - нпс. Так вот - по какому принципу нпс в all.spawn присваевается профиль? Ведь В профилях у всех нпс в секции <class> стоит везде esc_lager.

 

8push5 Спасибо!

Изменено пользователем Куфзук
Ссылка на комментарий

Куфзук,

Возможно, тебе поможет информация из этого поста

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Прочитал я пост и понял - что движок выбирает профиль случайно, что собственно я и хотел узнать. Получается, что если я пропишу конкретную вещь (оружие, итем - не важно) в профиль, то шансов, увидеть не одного, как мне хочется, а двоих или даже больше НПС с этим предметом, очень много. Поэтому, для того, чтобы НПС с этим предметом был один, то мне надо писать его (предмет) в секцию [spawn] в all.spawn. Или я ничего не понял!?

Изменено пользователем Куфзук
Ссылка на комментарий

Куфзук,

 

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

 

Кроме того, я не уверен, что при спавне аллспавном профиль используется в полной мере. Я спавнил скриптом и предметы выбирались из профиля. С другой стороны для актора предметы из профиля игнорируются и всегда спавнятся те, что указаны в секции [spawn] в аллспавне. Для остальных неписей не знаю.

 

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

Ссылка на комментарий

Понял. Хорошего не много, но и на этом спасибо! Будем пробовать ведь:

Возможно всё...

 

А как на счет первого вопроса:

1. Вопрос по поводу гулагов.

строка:

in_rest = "", out_rest = ""

в файле gulag_XXX.script за что отвечает?

В статье на Вики написано:

"In_rest, out_rest - рестрикторы, которые устанавливаются персонажу на данное задание"

то есть?

Изменено пользователем Куфзук
Ссылка на комментарий
Можно прописывать в профили "неповторяющимся" НПС - квестовым например. Или в профили НПС навроде охраны Борова - там всего три НПСа на один профиль и так далее... Также можно прописывать в профили "вечнотрупов" из оригинала, разбросанных по локациям.

256 символов
Ссылка на комментарий
Я не уверен, что при спавне аллспавном профиль используется в полной мере. Я спавнил скриптом и предметы выбирались из профиля. С другой стороны для актора предметы из профиля игнорируются и всегда спавнятся те, что указаны в секции [spawn] в аллспавне. Для остальных неписей не знаю.

 

Для актора это игнорирование профиля особо оговорено секцией [dont_spawn_character_supplies] в алл.спавне, если убрать эту секцию, исчезнет и ограничение, предметы будут браться и из алл.спавна, и из профиля. У НПС такая же ситуация (по крайней мере, в оригинале) на Агропроме у солдат на вышках и (если мне не изменяет память) у снайперов в переходе в самом начале ДТ, возможно, где-то еще.

Мои работы:

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

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

Soul Cube

 

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

Ссылка на комментарий

Товарищи!

Получаю бесконечный вылет:

FATAL ERROR

 

[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: ....e.r.chernobyl\gamedata\scripts\death_manager.script:135: bad argument #1 to 'pairs' (table expected, got nil)

 

 

stack trace:

 

 

Это я добавлял новые группировки.

Пять группировок добавил, они работают, создал НПС из каждой группировки, убил его, вылета нет, значит всё работает.

Стал добавлять ещё 2 группировки----> Хоть убейте: вылет.

Удалил всё связанное с этими двумя группировками----> Хоть убейте второй раз: вылет.

Странно.

Ссылка на комментарий

TREWKO

 

У меня 135-я строка приходится на вторую строчку фрагмента:

    local spawn_items = item_by_community[self.npc:character_community()]    
    for k,v in pairs(spawn_items) do
        --' По каждому объекту необходимо получить зависимости    
        if check_item_dependence(self.npc, k) == true then
            --' По каждому объекту необходимо получить количество
            local number = math.ceil(math.random(count_by_level[k].min, count_by_level[k].max))
            --' Необходимо заспавнить нужное количество.
            create_items(self.npc, k, number, v)
        end
    end

 

Ругается на отсутствие таблицы spawn_items. Ты уверен, что ты все правильно прописал в файле death_items_by_communities.ltx? Проблема где-то в этих краях. То ли для новой группировки забыл вещички прописать, то ли группировка НПС определяется криво, то ли что-то в этом духе.

 

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

local spawn_items = item_by_community[self.npc:character_community()] or {}

Если скрипт не найдет таблицу, он подставит пустую. Ничего не заспавнится, но вылет ты обойдешь. Решение не лучшее, но на всякий случай...

Мои работы:

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

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

Soul Cube

 

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

Ссылка на комментарий

Kirag, не поверишь, 3 дня писал скрипт динамической погоды... Отключил его от биндера----> Игра запустилась))).

Эх, придётся удалить скрипт.

Изменено пользователем TREWKO
Ссылка на комментарий

TREWKO

 

По идее нормальное содержимое, только раскомменти обратно

-- for k,v in pairs(spawn_items) do

и убери нафиг

for k,v in pairs("wpn_fn2000") do

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

Мои работы:

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

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

Soul Cube

 

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

Ссылка на комментарий

Я и так постоянно начинаю новую игру. Каждую неделю собираю новую версию спавна с локациями новыми и вперёд, в бесконечность.

А вот это: for k,v in pairs("wpn_fn2000") do

Это я тестил когда получился вылет.

Ксати, что такое pairs?

 

Назрел вопрос:

Есть ли какой способ создания сетки drag an drop, как в инвентаре.

У трансмутатора от АМК вроде видел, но принцип работы не понял.

Изменено пользователем TREWKO
Ссылка на комментарий

Конструкция

for k,v in pairs(<имя_таблицы>) do

...действия...

end

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

Но по большому счету я только пользоваться этой фишкой умею, до конца не понимая.

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

Мои работы:

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

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

Soul Cube

 

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

Ссылка на комментарий

пример

 

function имя_функции()

local tbl = { 2,3,5,6,8,9,11,12,14,15,17,18,20,21,23,24,26,27,29,30 }

for k,v in ipairs( tbl ) do

if level.get_time_days() == v then

return true

end

end

return false

end

 

вернет true 2,3,5,6,8,9,11,12,14,15,17,18,20,21,23,24,26,27,29,30 числа текушего месяца

в остальное время false

Ссылка на комментарий

Hello! ^^

 

there´s a little Question: how to increase the file "ui_icon_equiepment" that no change of the place, from the icons, takes place? (i just need much more space beside)

 

thanks for further replies!

Преследует душа по зоне, не опытного новичка. Там за спиной его холодный вдох и выдох, оставил запись он наверняка.
Но есть примета зоны: "Не ходи, той-же тропой обратно,
не то погибнешь сталкер в аномалии или исчезнешь невозвратно.
Мораль, того, проста, и заруби её ´се на носу: Проходишь сталкер ОП 2.1 на "реализме", почаще сохраняй игру!     


Подарки

  • Ссылка на комментарий

    Hello!

    Search -> S.T.A.L.K.E.R. Icon Editor or sie

    UP: link - http://www.amk-team.ru/forum/index.php?showtopic=1506

    Изменено пользователем меченый(стрелок)
    Ссылка на комментарий

    Kay, thanks

     

    seems to be what´s needed :-)

    Преследует душа по зоне, не опытного новичка. Там за спиной его холодный вдох и выдох, оставил запись он наверняка.
    Но есть примета зоны: "Не ходи, той-же тропой обратно,
    не то погибнешь сталкер в аномалии или исчезнешь невозвратно.
    Мораль, того, проста, и заруби её ´се на носу: Проходишь сталкер ОП 2.1 на "реализме", почаще сохраняй игру!     


    Подарки

  • Ссылка на комментарий

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

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

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

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

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

    Войти

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

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

    AMK-Team.ru

    ×
    ×
    • Создать...