Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
Файл drink.script должен как-то совмещаться с другими файлами.
Так он совмещен сам в себе. Из основы он только id итемов и значения самочувствия берет. А все остальные эффекты он в себе же и рассчитывает и на выходе дает конкретное влияние на конкретные существующие параметры. Типа хп, усталости и т.д.
Вот функция которая задает условия жажды. function create() last_drink = 0 up_drink = 2.5 in_hour = 30 force = 720 start_blur_1 = 144 start_blur_2 = 288 start_blur_3 = 432 start_blur_4 = 576 itn_mul = 0.001 pwr_rate,rng_factor = -0.00065, 0.08 caff_max = 3 die_chance = 5 force_slp = 15 Потом тут таблица со всем что можно есть/пить и значениями влияния на параметр жажды. Я укоротил немного, ибо там 100500 итемов, но суть ясна. items = { -- Vanilla. -- Drinks. vodka = -48, vodka_script = -49, energy_drink = -300, energy_drink_nonstop = -300, mineral_water = -302, -- DrinksRADMineral. mineral_water_rad = -302, mineral_water_rad_avrg = -302, mineral_water_rad_avrg_high = -302, -- Eat bread = 47, kolbasa = 95, conserva = 144, -- } RegisterScriptCallback("actor_on_update",actor_on_update) RegisterScriptCallback("actor_on_item_use",actor_on_item_use) if (USE_MARSHAL) then RegisterScriptCallback("save_state",save_state) RegisterScriptCallback("load_state",load_state) end end
А эта функция при старте новой игры регает все что выше function on_game_start() create() end
Мб конечно я не прав, но вроде нигде сам скрипт регестрировать не нужно. Он сам тянет нужные ему калбеки и проч.
Сообщение отредактировал Warpony_Garro - Вторник, 14.01.2020, 12:17
как писал выше Денис - (на инфопорции для игрока есть лимит) - то и на квесты места может не хватить.
Я еще не слышал, чтобы кто-то уткнулся в лимит инфопорций. Даже та приблизительная цифра котрую я привел - огромная. При этом инфопорции могут выдаваться не только actor-у, но и другим объектам (рестрикторам, ящикам, НПС, мутантам...).
Цитатаsergej5500 ()
Если секционное имя у всех ящиков будет одинаковое
Важный коментарий: имя секционное одинаковое, но имя объекта уникальное, за счет ид-объекта, как и сказал уважаемый makdm.
Сообщение отредактировал denis2000 - Вторник, 14.01.2020, 12:25
Ограничений на количество инфопорций нет. Они хранятся в динамической памяти, сейчас узнавал. Но лучше всё же не злоупотреблять количеством. Сейчас выдал более 100К инфопорций, так у меня сейв в пять раз больше среднего стал весить. Грузиться такой будет на порядок дольше.
Все имеет свои ограничения в ПК (даже наша вселенная считается не бесконечной). Динамическая память, дисковое пространство, размер файлов, разрядность переменных. Весь вопрос где и при каких обстоятельствах упремся в этот предел
Сообщение отредактировал denis2000 - Вторник, 14.01.2020, 13:10
Overfirst, ну, посути, инфопоршни как переменные, инфопоршень либо есть, либо его нет, тоесть 1 или 0. А такие значения практически ничего не весят... Тем более, раз уж даже ОП 2.1 может исправно работать при таком количестве инфопоршней, то у нас и подавно)
Цитатаdenis2000 ()
Весь вопрос где и при каких обстоятельствах упремся в этот предел
думаю, не скоро, чтобы достичь предела, полагаю, нужно будет окола 1000 квестов или больше. Вообщем, просто невообразимое количество.)
Откуда движок игры узнает о том, что существует файл drink.script?
Ну дык. Скрипт к движку постучится попросит значения. В наличии они есть. Я ж говорю, я не уверен ибо играю на сборке и только пару недель назад допустил неосторожность окунуться в доработку напильником. Вполне возможно что там уже сборщики вписали в корень. Или запилили какой-нить автоподхват нового хлама.
Сообщение отредактировал Warpony_Garro - Вторник, 14.01.2020, 13:48
ну, посути, инфопоршни как переменные, инфопоршень либо есть, либо его нет
Есть или нет - это одно, а сама последовательность символов, из которых состоит инфопорция - другое. Размер одного символа в нашем случае будет один равен восьми битам. Вот и считайте, что вы там хотите, однако смысла в этом нет никакого.
Цитата Stalker_Одиночка () Файл drink.script должен как-то совмещаться с другими файлами.
Так он совмещен сам в себе. Из основы он только id итемов и значения самочувствия берет. А все остальные эффекты он в себе же и рассчитывает и на выходе дает конкретное влияние на конкретные существующие параметры. Типа хп, усталости и т.д.
Мб конечно я не прав, но вроде нигде сам скрипт регестрировать не нужно. Он сам тянет нужные ему калбеки и проч.
Окей! Будем проверять...
Сообщение отредактировал Stalker_Одиночка - Вторник, 14.01.2020, 18:03
Тестирую функции очистки инвентарного ящика от хабара. Функции вызываются из логики этого бокса.
1. Первая функция:
function test_rukzak_1_clean_1(actor, box) local function calc(box,item) if item~=nil then if alife():object(item:id()) then alife():release(alife():object(item:id()),true) end end end box:iterate_inventory_box(calc,box) end
2. Вторая функция:
function test_rukzak_1_clean_2(actor, box, p) local function calc(box,item) if item~=nil and item:section_name() = p then if alife():object(item:id()) then alife():release(alife():object(item:id()),true) end end end box:iterate_inventory_box(calc,box) end
Первая функция чистит все и работает отлично. Вторая должна удалить только определенные предметы. Вместо этого дает жука:
FATAL ERROR
[error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : ...lishing\Зов Припяти\gamedata\scripts\xr_logic.script:648: attempt to index global 'xr_effects' (a nil value)
stack trace:
Вызывал её строкой =test_rukzak_1_clean_2(wpn_ak74). В бокс специально положил автомат.