[SoC] Ковыряемся в файлах - Страница 209 - Скрипты / конфиги / движок - AMK Team
Перейти к контенту

[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_*** !?

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

Куфзук, по 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 Спасибо!

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

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

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

Куфзук,

 

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

 

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

 

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

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

 

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

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

строка:

in_rest = "", out_rest = ""

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

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

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

то есть?

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

 

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

Товарищи!

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

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 {}

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

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

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

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

TREWKO

 

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

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

и убери нафиг

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

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

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

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

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

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

 

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

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

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

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

Конструкция

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

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

end

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

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

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

пример

 

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!

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

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

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

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

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

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

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

Войти

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

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

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