Случайная подборка модов
Под прикрытием смерти
3.9
Lost World 3.0
3.9
Sky anomaly
4.0
Ветер времени
4.5
Another Zone Mod
4.3
Lost World Requital
3.9
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Российская Федерация  svo6o9a
    Суббота, 06.10.2018, 12:22 | Сообщение # 2356
    Статус:
    Новичок:
    Сообщений: 236
    Награды: 2
    Регистрация: 19.11.2017

    Цитата denis2000 ()
    Хотят ответ на вопрос - предъявляют лог вылета и внесенные правки подробно

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

    Добавлено (06.10.2018, 12:33)
    ---------------------------------------------
    Сообщение отредактировал svo6o9a - Суббота, 06.10.2018, 12:36
      Злобная реклама
    Суббота, 06.10.2018, 12:22
    Статус:
    Сообщений: 666
    Регистрация: 19.11.2017
    Российская Федерация  Бессмертный
    Суббота, 06.10.2018, 16:03 | Сообщение # 2357
    Статус:
    Бывалый:
    Сообщений: 882
    Награды: 6
    Регистрация: 31.08.2012

    Друзья, прошу помощи.
    При компиляции спавна локации вылезает ошибка с жалобой на некорректные переходы, хотя их вообще нет на локации. Как это устранить? Полный лог прикладываю.
    Сообщение отредактировал Бессмертный - Суббота, 06.10.2018, 17:04
      Злобная реклама
    Суббота, 06.10.2018, 16:03
    Статус:
    Сообщений: 666
    Регистрация: 31.08.2012
    Российская Федерация  crystal
    Суббота, 06.10.2018, 16:29 | Сообщение # 2358
    Статус:
    Бывалый:
    Сообщений: 701
    Награды: 5
    Регистрация: 22.10.2016

    Бессмертный,
    Цитата Бессмертный ()
    с жалобой на некорректные переходы, хотя их вообще нет на локации.

    Я ни разу не спец, конечно. Но как Вы собираетесь попадать на такую локацию или уходить с неё?
    Возможно, потому и ругается, что переходов нет вообще.
      Злобная реклама
    Суббота, 06.10.2018, 16:29
    Статус:
    Сообщений: 666
    Регистрация: 22.10.2016
    Российская Федерация  Бессмертный
    Суббота, 06.10.2018, 17:04 | Сообщение # 2359
    Статус:
    Бывалый:
    Сообщений: 882
    Награды: 6
    Регистрация: 31.08.2012

    crystal, ставлю там актера.
    Сообщение отредактировал Бессмертный - Суббота, 06.10.2018, 17:07
      Злобная реклама
    Суббота, 06.10.2018, 17:04
    Статус:
    Сообщений: 666
    Регистрация: 31.08.2012
    Российская Федерация  sergej5500
    Суббота, 06.10.2018, 17:38 | Сообщение # 2360
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Всем привет. В ЗП есть функция.

    function npc_has_item(actor, npc, p)
    return p[1] ~= nil and npc:object( p[1] ) ~= nil
    end

    Проверяет, есть ли у непися что-то.

    На основе её сделал функцию для инвентарного ящика.

    -- есть ли в инвентарном ящике некий предмет?
    function inv_box_has_item(actor, obj, p)
    return p[1] ~= nil and obj:object(p[1]) ~= nil
    end


    Сделал ящик. Прописал логику.

    [logic]
    active = ph_idle@spawn

    [ph_idle@spawn]
    tips = st_default_rukzak
    nonscript_usable = true
    on_info = {=inv_box_has_item(wpn_ak74)} ph_idle@no_enable

    [ph_idle@no_enable]
    tips = st_no_default_rukzak
    nonscript_usable = false

    Если в ящик засунуть АК-74, то он станет неюзабельным. Кладу туда АК и ничего не происходит. Ящик юзабелен.
    Если я пишу логику так

    [logic]
    active = ph_idle@spawn

    [ph_idle@spawn]
    tips = st_default_rukzak
    nonscript_usable = true
    on_info = {!inv_box_has_item(wpn_ak74)} ph_idle@no_enable

    [ph_idle@no_enable]
    tips = st_no_default_rukzak
    nonscript_usable = false

    то ящик отлично переключается на неюзабельную секцию. То есть логика работает на отсутствие предмета и не срабатывает на присутствие.

    Как это исправить?
      Злобная реклама
    Суббота, 06.10.2018, 17:38
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Российская Федерация  makdm
    Суббота, 06.10.2018, 18:33 | Сообщение # 2361
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата sergej5500 ()
    Как это исправить?


    function inv_box_has_item( actor, inv_box, p )
    if p and p[1] then
    local item_section = p[ 1 ]
    local function relocate( inv_box, item )
    if item_section == item:section() then
    return true
    end
    end
    inv_box:iterate_inventory_box( relocate, inv_box )
    end
    return false
    end

    Насколько я помню вам такая функция мною ранее уже была предоставлена. cool
      Злобная реклама
    Суббота, 06.10.2018, 18:33
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  denis2000
    Суббота, 06.10.2018, 18:46 | Сообщение # 2362
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Цитата svo6o9a ()
    я все предъявил, я кинул сайт, по которому я все делал, в точности

    А я вам сразу и ответил: Все работает - косяк ваш! Хоть десять ссылок на уроки кидайте ошибка в 100% случаев в gamedata.

    Цитата Бессмертный ()
    Как это устранить?

    Устраните ошибки в конфигурации конкретного объекта: level_changer_from_l02_garbage_old_to_l04_darkvalley_old
    Раз на него ссылается программа в своем логе.

    sergej5500, У ГГ есть колбек на взятие предмета из ящика (callback.take_item_from_box) не хотите задействовать его вместо периодической проверки предмета в ящике?
    Сообщение отредактировал denis2000 - Суббота, 06.10.2018, 19:20
      Злобная реклама
    Суббота, 06.10.2018, 18:46
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  sergej5500
    Суббота, 06.10.2018, 19:24 | Сообщение # 2363
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Цитата makdm ()
    Насколько я помню вам такая функция мною ранее уже была предоставлена.


    попробовал. Результата нет. Что ваша функция, что моя - результат один.

    При проверке на отсутствие ящик переключается. Вариант

    on_info = {!inv_box_has_item(wpn_ak74)} ph_idle@no_enable

    При проверке на наличие ящик остается на первой секции.
      Злобная реклама
    Суббота, 06.10.2018, 19:24
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Российская Федерация  denis2000
    Суббота, 06.10.2018, 19:30 | Сообщение # 2364
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

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

    Возможно суть вашей проблемы кроется в тех же затыках движка и проверка наличия предмета не срабатывает по аналогичным причинам. Что если объект будет сразу при спавне лежать в ящике?

    Или посмотрите в сторону использования колбека.
    Сообщение отредактировал denis2000 - Суббота, 06.10.2018, 19:33
      Злобная реклама
    Суббота, 06.10.2018, 19:30
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  makdm
    Суббота, 06.10.2018, 19:34 | Сообщение # 2365
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата sergej5500 ()
    попробовал. Результата нет. Что ваша функция, что моя - результат один.

    Хорошо, пусть будет по вашему.
    Тогда вот такую функцию попробуйте:

    function inv_box_has_item( actor, inv_box, p )
    local count = 0
    if p and p[1] then
    local item_section = p[ 1 ]
    local function relocate( inv_box, item )
    if item_section == item:section() then
    count = 1
    end
    end
    inv_box:iterate_inventory_box( relocate, inv_box )
    end
    return count > 0
    end
      Злобная реклама
    Суббота, 06.10.2018, 19:34
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  sergej5500
    Суббота, 06.10.2018, 19:38 | Сообщение # 2366
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Цитата denis2000 ()
    требовались манипуляции с переводом его в офлайн.


    пробовал бегать на другой конец локации. Бокс при этом точно уходит в оффлайн. Никаких изменений. Проверка на наличие не срабатывает. На отсутствие срабатывает мгновенно после спавна бокса.
      Злобная реклама
    Суббота, 06.10.2018, 19:38
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Российская Федерация  makdm
    Суббота, 06.10.2018, 19:43 | Сообщение # 2367
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата sergej5500 ()
    пробовал бегать на другой конец локации. Бокс при этом точно уходит в оффлайн.

    Инвентарный ящик НИКОГДА не уходит в оффлайн, пока вы не покинете локацию.
    Он , как и рестриктор, ВСЕГДА онлайн пока вы на локации.
    Сообщение отредактировал makdm - Суббота, 06.10.2018, 20:01
      Злобная реклама
    Суббота, 06.10.2018, 19:43
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  sergej5500
    Суббота, 06.10.2018, 19:53 | Сообщение # 2368
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    makdm,

    Последний вариант функции сработал. Возник еще вопрос. Можно ли принудительно закрыть окно осмотра бокса? Какая функция подойдет?
      Злобная реклама
    Суббота, 06.10.2018, 19:53
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Российская Федерация  makdm
    Суббота, 06.10.2018, 20:00 | Сообщение # 2369
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата sergej5500 ()
    Последний вариант функции сработал.

    Прошлый вариант был не хуже. biggrin

    Цитата sergej5500 ()
    Можно ли принудительно закрыть окно осмотра бокса?


    get_hud():HideActorMenu()

    не работает?
      Злобная реклама
    Суббота, 06.10.2018, 20:00
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  sergej5500
    Суббота, 06.10.2018, 20:33 | Сообщение # 2370
    Статус:
    Новичок:
    Сообщений: 290
    Награды: 4
    Регистрация: 09.01.2017

    Цитата makdm ()
    не работает?


    Работает. Заинтересовался вопросом. Функция от разраблов

    function npc_has_item(actor, npc, p)
    return p[1] ~= nil and npc:object( p[1] ) ~= nil
    end

    для НПС работает отлично. Проверяет присутствие без всякой итерации. Тестировал на неписях. Ту же функцию прописал боксу.

    on_info = {!npc_has_item(wpn_sig550)} ph_idle@no_enable %=disable_hud%

    Вылета не было. Отсутствие предмета проверяется отлично - бокс переключился. А вот присутствие ни в какую. Интересно, почему функция может пересчитать рюкзак непися и не может инвентарный ящик.
      Злобная реклама
    Суббота, 06.10.2018, 20:33
    Статус:
    Сообщений: 666
    Регистрация: 09.01.2017
    Поиск: