Случайная подборка модов
«Последний Сталкер»
4.1
Krovosos mod v. 3.8
4.0
Call of Misery
4.1
Dragon`s MOD
2.5
OGSM 1.8 Community Edition
4.2
Путь Человека. Шаг в неизвестность. Дежавю
3.4
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Поиск: