Случайная подборка модов
Новое Время. Судьба наемника
2.3
L.U.R.K.
4.0
Сезон катастроф: Агрессия
2.7
Doomed to Eternal Torment
3.9
SFZ Project: Episode Zero
4.8
История Борова
3.6
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Поиск: