Случайная подборка модов
Под прикрытием смерти
3.9
Sigerous Mod 2.2
4.1
Время перемен v1.0
3.8
Paradise Lost
3.7
Закон Дегтярева
3.5
Новое Время. Научный Подход
3.8
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Российская Федерация  Neptun
    Пятница, 18.05.2018, 07:05 | Сообщение # 991
    Связной
    Статус:
    Бывалый:
    Сообщений: 672
    Награды: 9
    Регистрация: 25.03.2012

    Цитата Lory ()
    определенного события(выполнения квеста), а не в самом начале.

    Дык, по завершению квеста выдай инфу и сделай проверку на появление диалога по этой инфе. В чём проблема?
    condlist_0 = {+условие_завершения_квеста} %+или_вот_так_ещё_выдай_инфу% complete
    В начале диалога такую штуку пишем (сразу после строки dialog id):
    <has_info>наша_инфа_по_завершению_квеста</has_info>
      Злобная реклама
    Пятница, 18.05.2018, 07:05
    Статус:
    Сообщений: 666
    Регистрация: 25.03.2012
    Российская Федерация  denis2000
    Пятница, 18.05.2018, 08:31 | Сообщение # 992
    Время Альянса
    Статус:
    Ветеран:
    Сообщений: 4070
    Награды: 16
    Регистрация: 19.07.2013

    DarkSatellite, Попробуйте отбирать управление у игрока на это время:
    Код
    level.disable_input()
    level.enable_input()



    yobakun, Единственный скрипт читающий game_relations.ltx есть ranks.script
    Сообщение отредактировал denis2000 - Пятница, 18.05.2018, 08:31
      Злобная реклама
    Пятница, 18.05.2018, 08:31
    Статус:
    Сообщений: 666
    Регистрация: 19.07.2013
    Российская Федерация  yobakun
    Пятница, 18.05.2018, 15:01 | Сообщение # 993
    Статус:
    Новичок:
    Сообщений: 270
    Награды: 5
    Регистрация: 30.07.2016

    Цитата denis2000 ()
    yobakun, Единственный скрипт читающий game_relations.ltx есть ranks.script

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

    Можно ли сделать так, чтобы неписи которые находятся в лагере переходили в денжер если хотя бы один из сталкеров увидел врага? Допустим если в лагерь забегает кабан, то все кто в этом лагере находится сразу пытались его атаковать.
      Злобная реклама
    Пятница, 18.05.2018, 15:01
    Статус:
    Сообщений: 666
    Регистрация: 30.07.2016
    Украина  _S_k_i_F_
    Пятница, 18.05.2018, 15:03 | Сообщение # 994
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

    Есть переменная
    Код
    local timer = game.get_game_time()

    Как правильно прибавить к ней, допустим 1 час?
    Заранее спасибо!
      Злобная реклама
    Пятница, 18.05.2018, 15:03
    Статус:
    Сообщений: 666
    Регистрация: 09.08.2015
    Российская Федерация  Smilоdоn
    Пятница, 18.05.2018, 19:40 | Сообщение # 995
    Статус:
    Отмычка:
    Сообщений: 138
    Награды: 0
    Регистрация: 06.08.2015

    Помогите, пж, кто знает. Поставил way-поинт, поставил ему такой параметр: wp00|a=sprint
    А НПС в него всё равно в эту точку идёт, а не бажит. И какую анимацию не ставлю - ничего не меняется. Почему?
    Сообщение отредактировал Smilоdоn - Пятница, 18.05.2018, 19:44
      Злобная реклама
    Пятница, 18.05.2018, 19:40
    Статус:
    Сообщений: 666
    Регистрация: 06.08.2015
    Российская Федерация  makdm
    Пятница, 18.05.2018, 21:12 | Сообщение # 996
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата _S_k_i_F_ ()
    Как правильно прибавить к ней, допустим 1 час?

    Один час - это 3 600 000 миллисекунд.
    Вот это и прибавляй.
      Злобная реклама
    Пятница, 18.05.2018, 21:12
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Украина  _S_k_i_F_
    Пятница, 18.05.2018, 21:55 | Сообщение # 997
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

    makdm, это то понятно, я делал вот так
    Код
    local timer = game.get_game_time()
    timer = timer + <число>

    Но игра вылетала
    Код
    stack trace:

    0023:039D45C0 luabind.beta7-devel.rc4.dll, luabind::detail::object_rep::crep
    0023:05C98E47 xrGame.dll, CDialogHolder::CDialogHolder()
    0023:039A2EA3 lua.JIT.1.1.4.dll, luaopen_io()

    Или здесь все правильно и ошибка в другом?
      Злобная реклама
    Пятница, 18.05.2018, 21:55
    Статус:
    Сообщений: 666
    Регистрация: 09.08.2015
    Российская Федерация  makdm
    Пятница, 18.05.2018, 22:36 | Сообщение # 998
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата _S_k_i_F_ ()
    я делал вот так
    тогда понятно в чем ошибка.
    Смотри функции r_CTime и w_CTime в файле utils.script
    Там все понятно, что и как делать.

    local Y, M, D, h, m, s, ms = 0, 0, 0, 0, 0, 0, 0
    Y, M, D, h, m, s, ms = t:get( Y, M, D, h, m, s, ms )

    и

    local t = game.CTime()
    t:set( Y + 2000, M, D, h, m, s, ms)

    Правда, что из этого получится и зачем тебе это нужно я не знаю.
    Сообщение отредактировал makdm - Пятница, 18.05.2018, 22:40
      Злобная реклама
    Пятница, 18.05.2018, 22:36
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  Neptun
    Суббота, 19.05.2018, 11:18 | Сообщение # 999
    Связной
    Статус:
    Бывалый:
    Сообщений: 672
    Награды: 9
    Регистрация: 25.03.2012

    Smilоdоn, это значит, что НПС побежит после того, как достигнет этой точки.
    Чтобы НПС сразу побежал, пропиши в его активной логике:
    def_state_moving = sprint
    В этом случае в way можешь вообще ничего не прописывать.
    Цитата Smilоdоn ()
    вообще все флаги не работают

    Флаг это вот: p0:flags = 0x1
    Он нужен, если нужно, чтобы НПС смотрел куда-то.
      Злобная реклама
    Суббота, 19.05.2018, 11:18
    Статус:
    Сообщений: 666
    Регистрация: 25.03.2012
    Украина  _S_k_i_F_
    Суббота, 19.05.2018, 11:42 | Сообщение # 1000
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

    makdm, что-то все равно не получается. Попробую объяснить что нужно: ГГ выдает НПС 4 ПДА одновременно, а НПС должен через каждые 3 часа отправлять ГГ смску. А во время сна, даже если спал больше 12 часов (т.е. должны все 4 смс прийти) приходит только одна. Вот и нужно во время сна все таймеры искусственно увеличить.
    В ui_sleep_dialog в dream_callback()
    Код
    local timer = hours*3600
        if has_alife_info("tp_actor_give_zvonar_grif_pda") and not has_alife_info("tp_zvonar_unlock_grif_pda_compl") then
      otstypnik_dialogs.force_grif_pda_timer(timer)
        end
        
        if has_alife_info("tp_actor_give_zvonar_provodnik_vasil_pda") and not has_alife_info("tp_zvonar_unlock_provodnik_vasil_pda_compl") then
      otstypnik_dialogs.force_vasil_pda_timer(timer)
        end
        
        if has_alife_info("tp_actor_give_zvonar_killer_ydav_pda") and not has_alife_info("tp_zvonar_unlock_killer_ydav_pda_compl") then
      otstypnik_dialogs.force_ydav_pda_timer(timer)
        end
        
        if has_alife_info("tp_actor_give_zvonar_monolitovec_pda") and not has_alife_info("tp_zvonar_unlock_monolitovec_pda_compl") then
      otstypnik_dialogs.force_monolitovec_pda_timer(timer)
        end

    Потом функция для апдейта
    Код
    function zvonar_unlocking_pda()
        if has_alife_info("tp_actor_give_zvonar_grif_pda") and not has_alife_info("tp_zvonar_unlock_grif_pda_compl") and not has_alife_info("tp_zvonar_unlock_one_pda") then
      give_info("tp_zvonar_unlock_one_pda")
      if grif_pda_timer == nil then
       grif_pda_timer = game.get_game_time()
      end
        end
        if grif_pda_timer ~= nil then    
      if game.get_game_time():diffSec(grif_pda_timer) > 10800 then
       grif_pda_timer = nil
       give_info("tp_zvonar_unlock_grif_pda")
       give_info("tp_zvonar_unlock_grif_pda_compl")
       disable_info("tp_zvonar_unlock_one_pda")
       xr_effects.send_message(nil,nil,{"ПДА Грифа взломан. Можешь забирать.","tp_zvonar","tp_zvonar",7000})
      end
        end
        if has_alife_info("tp_actor_give_zvonar_provodnik_vasil_pda") and not has_alife_info("tp_zvonar_unlock_provodnik_vasil_pda_compl") and not has_alife_info("tp_zvonar_unlock_one_pda") then
      give_info("tp_zvonar_unlock_one_pda")
      if vasil_pda_timer == nil then
       vasil_pda_timer = game.get_game_time()
      end
        end
        if vasil_pda_timer ~= nil then
      if game.get_game_time():diffSec(vasil_pda_timer) > 10800 then
       vasil_pda_timer = nil
       give_info("tp_zvonar_unlock_provodnik_vasil_pda")
       give_info("tp_zvonar_unlock_provodnik_vasil_pda_compl")
       disable_info("tp_zvonar_unlock_one_pda")
       xr_effects.send_message(nil,nil,{"ПДА Василя взломан. Можешь забирать.","tp_zvonar","tp_zvonar",7000})
      end
        end
        if has_alife_info("tp_actor_give_zvonar_killer_ydav_pda") and not has_alife_info("tp_zvonar_unlock_killer_ydav_pda_compl") and not has_alife_info("tp_zvonar_unlock_one_pda") then
      give_info("tp_zvonar_unlock_one_pda")
      if ydav_pda_timer == nil then
       ydav_pda_timer = game.get_game_time()
      end
        end
        if ydav_pda_timer ~= nil then
      if game.get_game_time():diffSec(ydav_pda_timer) > 10800 then
       ydav_pda_timer = nil
       give_info("tp_zvonar_unlock_killer_ydav_pda")
       give_info("tp_zvonar_unlock_killer_ydav_pda_compl")
       disable_info("tp_zvonar_unlock_one_pda")
       xr_effects.send_message(nil,nil,{"ПДА Удава взломан. Можешь забирать.","tp_zvonar","tp_zvonar",7000})
      end
        end
        if has_alife_info("tp_actor_give_zvonar_monolitovec_pda") and not has_alife_info("tp_zvonar_unlock_monolitovec_pda_compl") and not has_alife_info("tp_zvonar_unlock_one_pda") then
      give_info("tp_zvonar_unlock_one_pda")
      if monolitovec_pda_timer == nil then
       monolitovec_pda_timer = game.get_game_time()
      end
        end
        if monolitovec_pda_timer ~= nil then
      if game.get_game_time():diffSec(monolitovec_pda_timer) > 10800 then
       monolitovec_pda_timer = nil
       give_info("tp_zvonar_unlock_monolitovec_pda")
       give_info("tp_zvonar_unlock_monolitovec_pda_compl")
       disable_info("tp_zvonar_unlock_one_pda")
       xr_effects.send_message(nil,nil,{"ПДА монолитовца взломан. Можешь забирать.","tp_zvonar","tp_zvonar",7000})
      end
        end
    end

    И вот сама функция в которой надо увеличить таймер
    Код
    function force_grif_pda_timer(timer)
        if grif_pda_timer ~= nil then
      local t = game.CTime()
      local Y, M, D, h, m, s, ms = 0, 0, 0, 0, 0, 0, 0
      t:set( Y + 2000, M, D, h, m, grif_pda_timer + timer, ms)
      grif_pda_timer = game.get_game_time():diffSec(t)
        end    
    end
      Злобная реклама
    Суббота, 19.05.2018, 11:42
    Статус:
    Сообщений: 666
    Регистрация: 09.08.2015
    Российская Федерация  atanda
    Суббота, 19.05.2018, 17:18 | Сообщение # 1001
    Статус:
    Бывалый:
    Сообщений: 672
    Награды: 7
    Регистрация: 12.07.2017

    Цитата _S_k_i_F_ ()
    Но игра вылетала

    Ты пытаешься к объекту, не имеющему перегруженное сложение, прибавить число!
      Злобная реклама
    Суббота, 19.05.2018, 17:18
    Статус:
    Сообщений: 666
    Регистрация: 12.07.2017
    Российская Федерация  DarkSatellite
    Воскресенье, 20.05.2018, 08:49 | Сообщение # 1002
    Статус:
    Новичок:
    Сообщений: 269
    Награды: 2
    Регистрация: 25.08.2014

    Подскажите, пожалуйста... Имеются два THM
    В первом строки:
                   Ђ?  ?   НМL= act\act_face_01_bump    
    Во втором:
                  Ђ?    " НМL= act\act_face_01_bump    
    В первом, как видно, знаки:   и знак ? Во втором их нет.
    Что означают эти знаки?
    Сообщение отредактировал DarkSatellite - Воскресенье, 20.05.2018, 09:00
      Злобная реклама
    Воскресенье, 20.05.2018, 08:49
    Статус:
    Сообщений: 666
    Регистрация: 25.08.2014
    Украина  скат
    Воскресенье, 20.05.2018, 09:02 | Сообщение # 1003
    Статус:
    Бывалый:
    Сообщений: 942
    Награды: 9
    Регистрация: 16.01.2014

    DarkSatellite, biggrin Отличая в сдк надо смотреть а не в блокноте. Ты бы еще китайские иероглифы тут выложил, наверняка тебя бы кто то понял.
      Злобная реклама
    Воскресенье, 20.05.2018, 09:02
    Статус:
    Сообщений: 666
    Регистрация: 16.01.2014
    Российская Федерация  DarkSatellite
    Воскресенье, 20.05.2018, 09:07 | Сообщение # 1004
    Статус:
    Новичок:
    Сообщений: 269
    Награды: 2
    Регистрация: 25.08.2014

    biggrin скат, а подробнее... Как там посмотреть?
      Злобная реклама
    Воскресенье, 20.05.2018, 09:07
    Статус:
    Сообщений: 666
    Регистрация: 25.08.2014
    Российская Федерация  makdm
    Воскресенье, 20.05.2018, 10:15 | Сообщение # 1005
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    _S_k_i_F_, если я правильно понял то, что ты хочешь сделать, то схема написания скрипта должна быть такой:

      Злобная реклама
    Воскресенье, 20.05.2018, 10:15
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Поиск: