Случайная подборка модов
Зона поражения 2: Ответный удар
4.1
G.L.A.D.I.A.T.O.R. II Время Альянса
3.4
NEYA Online
3.1
Время Перемен 2.5
4.0
Новый Арсенал 6. Революция
3.5
Another Zone Mod
4.3
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: FanG, Аdmin, FantomICW, Overfirst  
[CoP] Модострой: вопросница
Российская Федерация  Overfirst
Воскресенье, 31.12.2017, 13:17 | Сообщение # 1
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

[CoP] Модострой: вопросница

Тема посвящена моддингу на платформе Зов Припяти.

Соседние темы: Тень Чернобыля / Чистое небо.


  • Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.

  • Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.

  • Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).

  • Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
  •   Злобная реклама
    Воскресенье, 31.12.2017, 13:17
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Украина  AziatkaVictor
    Вторник, 14.01.2020, 13:40 | Сообщение # 5701
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    Overfirst, ну, посути, инфопоршни как переменные, инфопоршень либо есть, либо его нет, тоесть 1 или 0. А такие значения практически ничего не весят... Тем более, раз уж даже ОП 2.1 может исправно работать при таком количестве инфопоршней, то у нас и подавно)
    Цитата denis2000 ()
    Весь вопрос где и при каких обстоятельствах упремся в этот предел
    думаю, не скоро, чтобы достичь предела, полагаю, нужно будет окола 1000 квестов или больше. Вообщем, просто невообразимое количество.)
      Злобная реклама
    Вторник, 14.01.2020, 13:40
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Украина  Warpony_Garro
    Вторник, 14.01.2020, 13:46 | Сообщение # 5702
    Статус:
    Зевака:
    Сообщений: 6
    Награды: 1
    Регистрация: 08.01.2020

    Цитата sergej5500 ()
    Откуда движок игры узнает о том, что существует файл drink.script?


    Ну дык. Скрипт к движку постучится попросит значения. В наличии они есть. wacko Я ж говорю, я не уверен ибо играю на сборке и только пару недель назад допустил неосторожность окунуться в доработку напильником. Вполне возможно что там уже сборщики вписали в корень. Или запилили какой-нить автоподхват нового хлама.
    Сообщение отредактировал Warpony_Garro - Вторник, 14.01.2020, 13:48
      Злобная реклама
    Вторник, 14.01.2020, 13:46
    Статус:
    Сообщений: 666
    Регистрация: 08.01.2020
    Российская Федерация  Overfirst
    Вторник, 14.01.2020, 14:37 | Сообщение # 5703
    Статус:
    Бывалый:
    Сообщений: 1081
    Награды: 19
    Регистрация: 11.06.2015

    Цитата AziatkaVictor ()
    ну, посути, инфопоршни как переменные, инфопоршень либо есть, либо его нет

    Есть или нет - это одно, а сама последовательность символов, из которых состоит инфопорция - другое. Размер одного символа в нашем случае будет один равен восьми битам. Вот и считайте, что вы там хотите, однако смысла в этом нет никакого.
      Злобная реклама
    Вторник, 14.01.2020, 14:37
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Российская Федерация  Stalker_Одиночка
    Вторник, 14.01.2020, 18:01 | Сообщение # 5704
    Статус:
    Отмычка:
    Сообщений: 125
    Награды: 6
    Регистрация: 16.12.2017

    Цитата Warpony_Garro ()
    Цитата Stalker_Одиночка ()
    Файл drink.script должен как-то совмещаться с другими файлами.

    Так он совмещен сам в себе. Из основы он только id итемов и значения самочувствия берет. А все остальные эффекты он в себе же и рассчитывает и на выходе дает конкретное влияние на конкретные существующие параметры. Типа хп, усталости и т.д.

    Мб конечно я не прав, но вроде нигде сам скрипт регестрировать не нужно. Он сам тянет нужные ему калбеки и проч.


    Окей! Будем проверять...
    Сообщение отредактировал Stalker_Одиночка - Вторник, 14.01.2020, 18:03
      Злобная реклама
    Вторник, 14.01.2020, 18:01
    Статус:
    Сообщений: 666
    Регистрация: 16.12.2017
    Российская Федерация  sergej5500
    Вторник, 14.01.2020, 20:31 | Сообщение # 5705
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Добрый вечер.

    Тестирую функции очистки инвентарного ящика от хабара. Функции вызываются из логики этого бокса.

    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). В бокс специально положил автомат.

    Логика бокса простейшая.

    [logic]
    active = ph_idle

    [ph_idle]
    nonscript_usable = true
    tips = st_default_rukzak
    on_info = {+test_rukzak_1_clean -test_rukzak_1_clean_1} %+test_rukzak_1_clean_1 =test_rukzak_1_clean_2(wpn_ak74) =scenario_autosave(st_test_rukzak_1_clean)%

    Выдача инфопорции горячей клавишей. После чего очистка рюкзака и автосейв для контроля. Вместо этого жук.

    Как исправить функцию?
      Злобная реклама
    Вторник, 14.01.2020, 20:31
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Украина  molodoy_chelovek
    Вторник, 14.01.2020, 21:12 | Сообщение # 5706
    Статус:
    Новичок:
    Сообщений: 316
    Награды: 2
    Регистрация: 14.07.2019

    Цитата sergej5500 ()
    item:section_name() = p

    я не силён в луа синтаксисе, но разве тут не должно быть двойное равно? "=="
    Цитата AziatkaVictor ()
    molodoy_chelovek, нет, тут идет присваивание, когда 2 ровно это сравнение.

    Цитата sergej5500 ()
    if item~=nil and item:section_name() = p then


    Внимательнее. Это и есть сравнение.
    Сообщение отредактировал molodoy_chelovek - Вторник, 14.01.2020, 21:46
      Злобная реклама
    Вторник, 14.01.2020, 21:12
    Статус:
    Сообщений: 666
    Регистрация: 14.07.2019
    Украина  Warpony_Garro
    Вторник, 14.01.2020, 21:21 | Сообщение # 5707
    Статус:
    Зевака:
    Сообщений: 6
    Награды: 1
    Регистрация: 08.01.2020

    Цитата Stalker_Одиночка ()
    Окей! Будем проверять...


    Это лучший выбор для разъяснения истины.
      Злобная реклама
    Вторник, 14.01.2020, 21:21
    Статус:
    Сообщений: 666
    Регистрация: 08.01.2020
    Украина  AziatkaVictor
    Вторник, 14.01.2020, 21:31 | Сообщение # 5708
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    molodoy_chelovek, нет, тут идет присваивание, когда 2 ровно это сравнение.
      Злобная реклама
    Вторник, 14.01.2020, 21:31
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  sergej5500
    Вторник, 14.01.2020, 23:48 | Сообщение # 5709
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Цитата molodoy_chelovek ()
    разве тут не должно быть двойное равно? "=="


    Для пробы переделал функцию.

    Сначала так:

    function test_rukzak_1_clean_2(actor, box, p)
    local function calc(box,item)
    if item~=nil and item:section() == 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

    Она не сработала. Но вылет пропал.

    Затем написал так:
    прямо указал автомат

    function test_rukzak_1_clean_2(actor, box, p)
    local function calc(box,item)
    if item~=nil and item:section() == "wpn_ak74" then
    if alife():object(item:id()) then
    alife():release(alife():object(item:id()),true)
    end
    end
    end
    box:iterate_inventory_box(calc,box)
    end

    В таком виде она работает. Автомат удалился.

    Что надо дописать, что функция видела параметр р?
      Злобная реклама
    Вторник, 14.01.2020, 23:48
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Украина  molodoy_chelovek
    Среда, 15.01.2020, 00:08 | Сообщение # 5710
    Статус:
    Новичок:
    Сообщений: 316
    Награды: 2
    Регистрация: 14.07.2019

    Цитата sergej5500 ()
    Что надо дописать, что функция видела параметр р?

    Попробуйте так:
    Цитата
    if item~=nil and item:section() == p[1] then


    P.S и вставляйте, пожалуйста, код в спойлер, или как я выше - в цитату... Так удобнее
    Сообщение отредактировал molodoy_chelovek - Среда, 15.01.2020, 00:13
      Злобная реклама
    Среда, 15.01.2020, 00:08
    Статус:
    Сообщений: 666
    Регистрация: 14.07.2019
    Российская Федерация  sergej5500
    Среда, 15.01.2020, 00:19 | Сообщение # 5711
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    molodoy_chelovek,

    Спасибо. Последний вариант сработал.

    Цитата molodoy_chelovek ()
    if item~=nil and item:section() == p[1] then
      Злобная реклама
    Среда, 15.01.2020, 00:19
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Украина  AziatkaVictor
    Среда, 15.01.2020, 03:27 | Сообщение # 5712
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    А где менять fov? Поставил SWTC, но уж больно Fov большой, или это правки движка? Заранее спасибо! biggrin
      Злобная реклама
    Среда, 15.01.2020, 03:27
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  Policai
    Среда, 15.01.2020, 06:23 | Сообщение # 5713
    Dead City Breakthrough
    Статус:
    Опытный:
    Сообщений: 2244
    Награды: 11
    Регистрация: 08.11.2011

    AziatkaVictor,
    Консолька fov - угол обзора. hud_fov - руки. Это при условии что правленый файл xrGame.dll
      Злобная реклама
    Среда, 15.01.2020, 06:23
    Статус:
    Сообщений: 666
    Регистрация: 08.11.2011
    Российская Федерация  Крим
    Среда, 15.01.2020, 15:14 | Сообщение # 5714
    Статус:
    Новичок:
    Сообщений: 231
    Награды: 1
    Регистрация: 21.04.2019

    Всем здравствуйте. У меня возникли проблемы с квестом:*Дойти до места*. Сначала, я создал рестриктор, зарегистрировал его, прописал ему логику:
    - в логике сказано, что при вхождения игрока в него будет выдаваться инфопоршень, выполняющий этот квест.
    Но тут возникли проблемы в игре. Когда квест выдается, он моментально выполняется, то есть игрок даже не вошел в рестриктор, а квест каким-то образом выполнился. Я сам понять не могу в чем дело. Вроде все прописано правильно.

    Квест в tm_escape:


    Функция для выдачи квеста:
      Злобная реклама
    Среда, 15.01.2020, 15:14
    Статус:
    Сообщений: 666
    Регистрация: 21.04.2019
    Украина  molodoy_chelovek
    Среда, 15.01.2020, 15:18 | Сообщение # 5715
    Статус:
    Новичок:
    Сообщений: 316
    Награды: 2
    Регистрация: 14.07.2019

    Крим,
    Цитата
    {=actor_in_zone(esc_der_restr)} sr_idle@end %+esc_der_bza_road_quest%
    Сообщение отредактировал molodoy_chelovek - Среда, 15.01.2020, 15:19
      Злобная реклама
    Среда, 15.01.2020, 15:18
    Статус:
    Сообщений: 666
    Регистрация: 14.07.2019
    Поиск: