Случайная подборка модов
Контракт на хорошую жизнь
4.1
АльтернативА 1.3.2
3.2
G.L.A.D.I.A.T.O.R. II Время Альянса
3.4
Sins of the past. Пролог
3.3
Народная Солянка 2010
4.0
Old Episodes: Эпизод 1
2.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
    Беларусь  sektor_aka
    Среда, 08.04.2020, 00:02 | Сообщение # 6526
    Статус:
    Опытный:
    Сообщений: 1343
    Награды: 6
    Регистрация: 07.03.2016

    Цитата oleg19966 ()
    какая-то функция, но она походу не прописана в xr_effects

    Может автор опечатался?

    Единственное похожее что нашел:
    Код
    function remove_npc(actor, npc, p)
        if p and p[1] then
      npc_id = get_story_object_id(p[1])
        end
        if npc_id ~= nil then
      alife():release(alife():object(npc_id), true)
        end
    end


    Попробовал - прокатило.

    Цитата Overfirst ()
    destroy_object

    А в чём разница между ними?

    В принципе попробовал, работает.
    Код
    function destroy_object(actor, obj, p)
        local sobj
        if p == nil then
      sobj = alife():object(obj:id())
        else
      if p[1] == nil or p[2] == nil then
       abort("Wrong parameters in destroy_object function!!!")
      end
      local target_str = nil
      if p[3] ~= nil then
       target_str = p[1].."|"..p[2]..","..p[3]
      else
       target_str = p[1].."|"..p[2]
      end
      local target_position, target_id, target_init = xr_remark.init_target(obj, target_str)
      if target_id == nil then
       printf("You are trying to set non-existant target [%s] for object [%s] in section [%s]", tostring(target_str), tostring(obj:name()), tostring(db.storage[obj:id()].active_section))
      end
      sobj = alife():object(target_id)
        end
        if sobj == nil then
      return
        end
        printf("releasing object ["..sobj:name().."]")
        alife():release(sobj, true)
    end


    Непонятно что лучше юзать в контексте логики мода.

    Добавлено (08.04.2020, 00:11)
    ---------------------------------------------
    Ну судя по тому, что в аналогичных файлах рядом юзается destroy_object, значит он.

    remove_npc юзается в логике рестрикторов в моде.

      Злобная реклама
    Среда, 08.04.2020, 00:02
    Статус:
    Сообщений: 666
    Регистрация: 07.03.2016
    Российская Федерация  Overfirst
    Среда, 08.04.2020, 00:11 | Сообщение # 6527
    Статус:
    Бывалый:
    Сообщений: 1081
    Награды: 19
    Регистрация: 11.06.2015

    Цитата sektor_aka ()
    А в чём разница между ними?

    Функция remove_npc удаляет любой объект по story_id (на самом деле не только неписей, несмотря на название). Функция destroy_object, если вызвать её без параметров, просто удалит объект, которым она была вызвана, а если параметры передавать, то тут уже интереснее. Первым аргументом она принимает, по какому параметру мы будем получать удаляемый объект, а потом передаем значение этого параметра. Пример:
    Код
    %=destroy_object(story:object_story_id)%

    Ключевое слово story говорит об удалении объекта с полем story_id = object_story_id. Есть там еще приблуды по другим параметрам, посмотри саму функцию и примеры её использования от GSC, там и по работе в смарте, и по чему-то ещё можно удалять объекты.
    Цитата sektor_aka ()
    Непонятно что лучше юзать в контексте логики мода.

    Нет никаких ограничений. Что тебе нравится больше, то и используй. Обе эти функции в конечном итоге вызывают одно и то же, просто приходят к этому по-разному, получая объект разными способами.
      Злобная реклама
    Среда, 08.04.2020, 00:11
    Статус:
    Сообщений: 666
    Регистрация: 11.06.2015
    Украина  KOLOMBO13
    Среда, 08.04.2020, 00:35 | Сообщение # 6528
    Статус:
    Отмычка:
    Сообщений: 165
    Награды: 1
    Регистрация: 10.10.2018

    подскажите плз,а можно както исправить чтобы всегда была метка и не нужно жать кнопки ?! вот с такого скрипта....
    Сообщение отредактировал KOLOMBO13 - Среда, 08.04.2020, 00:37
      Злобная реклама
    Среда, 08.04.2020, 00:35
    Статус:
    Сообщений: 666
    Регистрация: 10.10.2018
    Украина  molodoy_chelovek
    Среда, 08.04.2020, 11:00 | Сообщение # 6529
    Статус:
    Новичок:
    Сообщений: 316
    Награды: 2
    Регистрация: 14.07.2019

    KOLOMBO13, в on_game_start:
    Цитата
    local obj_id = get_story_object_id("mar_smart_terrain_doc_doctor")
    level.map_add_object_spot(obj_id, "ui_pda2_quest_npc_location", "Болотный Доктор")
      Злобная реклама
    Среда, 08.04.2020, 11:00
    Статус:
    Сообщений: 666
    Регистрация: 14.07.2019
    Украина  KOLOMBO13
    Среда, 08.04.2020, 11:40 | Сообщение # 6530
    Статус:
    Отмычка:
    Сообщений: 165
    Награды: 1
    Регистрация: 10.10.2018

    molodoy_chelovek, да Вы ищо и dobriy_chelovek спасибо, а то я тут вычитал про новую отметку как делать, а у Вас проще будет !
    Сообщение отредактировал KOLOMBO13 - Среда, 08.04.2020, 11:41
      Злобная реклама
    Среда, 08.04.2020, 11:40
    Статус:
    Сообщений: 666
    Регистрация: 10.10.2018
    Российская Федерация  Paradox27kms
    Среда, 08.04.2020, 14:47 | Сообщение # 6531
    Статус:
    Новичок:
    Сообщений: 312
    Награды: 2
    Регистрация: 11.02.2019

    Ребята вот такая проблема... в общем имеется дверь с вот такой логикой:

    Проблема в том что изначально если следовать логике по умолчанию дверь открыта, но вот физически если на неё нажать то она реагировать не будет почему-то. Надпись "открыть дверь" так же присутствует. Можно конечно сразу сделать её физически открытой но тогда это будет проходной двор и мне никак не нужно.
    Сообщение отредактировал Paradox27kms - Среда, 08.04.2020, 14:50
      Злобная реклама
    Среда, 08.04.2020, 14:47
    Статус:
    Сообщений: 666
    Регистрация: 11.02.2019
    Российская Федерация  denis2000
    Среда, 08.04.2020, 14:56 | Сообщение # 6532
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Paradox27kms,
    Во первых дверь изначально в этой логике не "открыта", а "незаперта". То есть она закрыта и при взаимодействии с ней игрока она откроется (при верно написанной логике).
    Во вторых дверь под логикой и не должна реагировать на физические воздействия.
    В третьих, а что собственно нужно? Или это ваш маленький секрет?
    Сообщение отредактировал denis2000 - Среда, 08.04.2020, 15:07
      Злобная реклама
    Среда, 08.04.2020, 14:56
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Украина  AziatkaVictor
    Среда, 08.04.2020, 15:00 | Сообщение # 6533
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    Paradox27kms,
    Код
    [ph_door@closed]
    closed = true

    [ph_door@open]
    closed = true
    Конечно, у вас в разных секциях параметр "closed" одинаковый, замени:
    Код
    [ph_door@open]
    closed = true
    На вот это:
    Код
    [ph_door@open]
    closed = false


    UPD: Кстати, вот эту часть логики можно вообще удалить, так как она не используется:
    Код
    [ph_door@locked]
    locked = true
    snd_open_start = trader_door_unlock
    Сообщение отредактировал AziatkaVictor - Среда, 08.04.2020, 15:04
      Злобная реклама
    Среда, 08.04.2020, 15:00
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  denis2000
    Среда, 08.04.2020, 15:07 | Сообщение # 6534
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    AziatkaVictor,
    Для начала, неплохо быдло бы узнать какая логика двери в принципе требуется, хотя может вы телепат...


    sashakrop, Я только идею предложил, даже без каких либо гарантий ее реализуемости.
    Сообщение отредактировал denis2000 - Среда, 08.04.2020, 15:09
      Злобная реклама
    Среда, 08.04.2020, 15:07
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Украина  AziatkaVictor
    Среда, 08.04.2020, 15:10 | Сообщение # 6535
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    denis2000, ну, наверное он говорил о том, что дверь на нажатие "F" не реагирует, хотя надпись "Открыть дверь" присутствует. Тем более, зачем переключать секции, где одинаковые параметры, тем более в логике двери. happy
      Злобная реклама
    Среда, 08.04.2020, 15:10
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  Paradox27kms
    Среда, 08.04.2020, 15:15 | Сообщение # 6536
    Статус:
    Новичок:
    Сообщений: 312
    Награды: 2
    Регистрация: 11.02.2019

    AziatkaVictor, Именно так.
      Злобная реклама
    Среда, 08.04.2020, 15:15
    Статус:
    Сообщений: 666
    Регистрация: 11.02.2019
    Российская Федерация  denis2000
    Среда, 08.04.2020, 15:15 | Сообщение # 6537
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    Цитата AziatkaVictor ()
    наверное он говорил о том, что дверь на нажатие "F" не реагирует

    Ничего подобного в изначальном посте я не увидел, но вам возможно виднее... Вы точно телепат!!!
    Цитата Paradox27kms ()
    Именно так.

    А сразу постеснялись объяснить суть проблемы?
    Сообщение отредактировал denis2000 - Среда, 08.04.2020, 15:20
      Злобная реклама
    Среда, 08.04.2020, 15:15
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  Paradox27kms
    Среда, 08.04.2020, 15:30 | Сообщение # 6538
    Статус:
    Новичок:
    Сообщений: 312
    Награды: 2
    Регистрация: 11.02.2019

    AziatkaVictor, По твоей логике у меня в игре дверь уже по умолчанию открыта физически (понимание физичечки - сама моделька двери открыта изначально). А мне нужно чтобы было как положено, она закрыта - нажал на F открыл!
      Злобная реклама
    Среда, 08.04.2020, 15:30
    Статус:
    Сообщений: 666
    Регистрация: 11.02.2019
    Украина  AziatkaVictor
    Среда, 08.04.2020, 15:32 | Сообщение # 6539
    Статус:
    Опытный:
    Сообщений: 1313
    Награды: 4
    Регистрация: 30.08.2018

    Paradox27kms, ну откройте глаза! Вот:
    Код
    [logic]
    active = ph_door@open
    Вы сами указали активной секцию, где она открыта, поменяйте на:
    Код
    [logic]
    active = ph_door@closed
      Злобная реклама
    Среда, 08.04.2020, 15:32
    Статус:
    Сообщений: 666
    Регистрация: 30.08.2018
    Российская Федерация  Policai
    Среда, 08.04.2020, 15:35 | Сообщение # 6540
    Dead City Breakthrough
    Статус:
    Опытный:
    Сообщений: 2244
    Награды: 11
    Регистрация: 08.11.2011

    Paradox27kms,

    Это где? в ЗП или в ТЧ????? Ты тут такой бардак развёл, что хрен проссы про что разговор, валишь всё в одну кучу и ТЧ и ЗП...
      Злобная реклама
    Среда, 08.04.2020, 15:35
    Статус:
    Сообщений: 666
    Регистрация: 08.11.2011
    Поиск: