Случайная подборка модов
Под прикрытием смерти
3.9
История Конвона. Часть первая
3.1
Old Good Stalker Mod v2.4 Gold
4.2
AMK 1.4.1
4.2
Альтернатива 1.3.1
4.0
Белый отряд
3.7
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Модератор форума: 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
    Российская Федерация  Smilоdоn
    Пятница, 18.05.2018, 19:40 | Сообщение # 991
    Статус:
    Отмычка:
    Сообщений: 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 | Сообщение # 992
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 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 | Сообщение # 993
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 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 | Сообщение # 994
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 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 | Сообщение # 995
    Связной
    Статус:
    Бывалый:
    Сообщений: 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 | Сообщение # 996
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 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 | Сообщение # 997
    Статус:
    Бывалый:
    Сообщений: 672
    Награды: 7
    Регистрация: 12.07.2017

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

    Ты пытаешься к объекту, не имеющему перегруженное сложение, прибавить число!
      Злобная реклама
    Суббота, 19.05.2018, 17:18
    Статус:
    Сообщений: 666
    Регистрация: 12.07.2017
    Российская Федерация  DarkSatellite
    Воскресенье, 20.05.2018, 08:49 | Сообщение # 998
    Статус:
    Новичок:
    Сообщений: 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 | Сообщение # 999
    Статус:
    Бывалый:
    Сообщений: 942
    Награды: 9
    Регистрация: 16.01.2014

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

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

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

      Злобная реклама
    Воскресенье, 20.05.2018, 10:15
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Украина  скат
    Воскресенье, 20.05.2018, 11:12 | Сообщение # 1002
    Статус:
    Бывалый:
    Сообщений: 942
    Награды: 9
    Регистрация: 16.01.2014

    DarkSatellite, Закинь thm первую в сдк на свое место (по префиксу узнаешь папку куда закидывать). Текстуру к которой она принадлежит переведи в тга, закинь в папку импорт. Запусти АЕ. Нажми чек нев текстуры, увидишь окно и все настройки thm-ки. Сфоткай окно или запомни. Повтори все с второй thm, сравни скрины в итоге. Увидишь в чем отличая.
      Злобная реклама
    Воскресенье, 20.05.2018, 11:12
    Статус:
    Сообщений: 666
    Регистрация: 16.01.2014
    Украина  _S_k_i_F_
    Воскресенье, 20.05.2018, 11:42 | Сообщение # 1003
    Золотой Обоз
    Статус:
    Опытный:
    Сообщений: 1311
    Награды: 9
    Регистрация: 09.08.2015

    makdm, я опять не совсем точно выразился - надо было уточнить - можно 4 сразу, а можно и по одному, по два, по три. Вот в чем ерунда. Я думал что единственный вариант это увеличить значение самого таймера.
      Злобная реклама
    Воскресенье, 20.05.2018, 11:42
    Статус:
    Сообщений: 666
    Регистрация: 09.08.2015
    Российская Федерация  makdm
    Воскресенье, 20.05.2018, 13:09 | Сообщение # 1004
    Время Альянса
    Статус:
    Опытный:
    Сообщений: 1787
    Награды: 19
    Регистрация: 22.11.2012

    Цитата _S_k_i_F_ ()
    я опять не совсем точно выразился

    Куда уж точнее:
    Цитата _S_k_i_F_ ()
    ГГ выдает НПС 4 ПДА одновременно


    Смотри файл bind_stalker.script
    Два таймера, которые включаются в разное время и каждый ведет свой отсчет:
    check_detective_achievement() и check_mutant_hunter_achievement()

    Делаешь по аналогии хоть со стопицот ПДА.
      Злобная реклама
    Воскресенье, 20.05.2018, 13:09
    Статус:
    Сообщений: 666
    Регистрация: 22.11.2012
    Российская Федерация  PROforum
    Воскресенье, 20.05.2018, 13:50 | Сообщение # 1005
    Статус:
    Отмычка:
    Сообщений: 140
    Награды: 4
    Регистрация: 27.09.2015

    Подскажите, за что отвечает эта функция в xr_statistic.script:
    Код
    str = package:r_stringZ()
        if(str~="nil") then
      actor_statistic.favorite_weapon_sect = str
        end
        weapons_table = {}
        local n = package:r_u8()
        for i = 1,n do
      local k = package:r_stringZ()
      local v = package:r_float()
      weapons_table[k] = v
        end

    И может ли из за неё работать не правильно эта функция (или наоборот), тоже из xr_statistic.script:
    Код
    weapons_table = {
             "wpn_abakan"   = 0,
             "wpn_ak74"   = 0,
             "wpn_ak74u"   = 0,
             "wpn_beretta"   = 0,
             "wpn_bm16"   = 0,
             "wpn_colt1911"  = 0,
             "wpn_desert_eagle"   = 0,
             "grenade_f1"    = 0,
             "wpn_fn2000"   = 0,
             "wpn_fort"   = 0,
             "wpn_g36"    = 0,
             "wpn_gauss"   = 0,
             "wpn_groza"   = 0,
             "wpn_hpsa"   = 0,
             "wpn_knife"   = 0,
             "wpn_l85"    = 0,
             "wpn_lr300"   = 0,
             "wpn_mp5"    = 0,
             "wpn_pb"    = 0,
             "wpn_pkm"    = 0,
             "wpn_pm"    = 0,
             "wpn_protecta"  = 0,
             "wpn_rg-6"    = 0,
             "grenade_rgd5"   = 0,
             "wpn_rpg7"   = 0,
             "wpn_sig220"   = 0,
             "wpn_sig550"   = 0,
             "wpn_spas12"   = 0,
             "wpn_svd"    = 0,
             "wpn_svu"    = 0,
             "wpn_toz34"   = 0,
             "wpn_usp45"   = 0,
             "wpn_val"    = 0,
             "wpn_vintorez"  = 0,
             "wpn_walther"   = 0,
             "wpn_wincheaster1300"    = 0,
             "wpn_pm_actor"   = 0,
             "wpn_fort_snag"   = 0,
             "wpn_sig220_nimble"   = 0,
             "wpn_usp_nimble"   = 0,
             "wpn_desert_eagle_nimble"   = 0,
             "wpn_wincheaster1300_trapper"   = 0,
             "wpn_spas12_nimble"   = 0,
             "wpn_protecta_nimble"   = 0,
             "wpn_ak74u_snag"   = 0,
             "wpn_mp5_nimble"   = 0,
             "wpn_sig550_luckygun"   = 0,
             "wpn_groza_nimble"   = 0,
             "wpn_vintorez_nimble"   = 0,
             "wpn_svu_nimble"   = 0,
             "wpn_svd_nimble"   = 0,
             "wpn_g36_nimble"   = 0,
             "wpn_fn2000_nimble"   = 0,
             "wpn_pkm_zulus"   = 0,
        }

    function set_best_weapon( hit_amount )
        local active_item = db.actor:active_item()
        if active_item then
      local section = active_item:section()
      if weapons_table[ section ] then
       weapons_table[ section ] = weapons_table[ section ] + hit_amount
      local amount = 0
      for k,v in pairs( weapons_table ) do
       if( v > amount ) then
        amount = v
        actor_statistic.favorite_weapon_sect = k
        end
       end
      end
        end
    end
      Злобная реклама
    Воскресенье, 20.05.2018, 13:50
    Статус:
    Сообщений: 666
    Регистрация: 27.09.2015
    Поиск: