Перейти к содержанию

Рекомендуемые сообщения

 
 
Только что, Policai сказал:

Вы не сможете  заменить деревья без сдк и перекомпиляции...

Да мне что бы вытащить их с другово мода.

 

7 минут назад, Никсон сказал:

текстура level_lods.dds содержит лоды деревьев

 

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
9 минут назад, Master_boli сказал:

Да мне что бы вытащить их с другово мода.

Декомпилить локацию,  открыть в сдк, и скоптировать нужные обьекты... 


DCM

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как убрать крестовину прицела, когда в руках у актёра оружие, и сделать так, чтобы прицел был такой же, как и когда у актёра нет оружия (cursor.dds)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Доброго дня, существует ли функция/логика на запрет приближения к определенному нпс? То бишь, если гг подойдет к нпс на определенное расстояние выдастся поршень, даже если нпс в движении?

Изменено пользователем Hoperise

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
22 минуты назад, Hoperise сказал:

Доброго дня, существует ли функция/логика на запрет приближения к определенному нпс? То бишь, если гг подойдет к нпс на определенное расстояние выдастся поршень, даже если нпс в движении?

попробуй

on_info = {=dist_to_actor_le(8)} имя_новой_секции

в логике НПС, где вместо 8 - твоё расстояние

 

В свою очередь, есть 2 вопроса:

1. Делаю ПНВ в виде отдельного шлема. Решил реализовать его путём "пустого" шлема-болванки со встроенным по умолчанию апгрейдом на ПНВ. Действовал так:

 

Спойлер

 

[helm_pnv]:helmet
$spawn             = "outfit\helm_pnv"
visual              = dynamics\outfit\outfit_pnv
control_inertion_factor    = 1.0
inv_name                 = pnv_helm_name
inv_name_short           = pnv_helm_name
description                = pnv_helm_description
discovery_dependency =

inv_weight               = 2.30

inv_grid_width           = 2
inv_grid_height          = 2
inv_grid_x               = 10
inv_grid_y               = 3

upgr_icon_x            = 20
upgr_icon_y            = 619
upgr_icon_width        = 106
upgr_icon_height       = 149

cost            = 550

nightvision_sect    = effector_nightvision_1

immunities_sect             = sect_helm_pnv_immunities
bones_koeff_protection        = actor_helm_respirator

telepatic_protection         = 0.0
radiation_protection         = 0.0
chemical_burn_protection     = 0.0

power_loss                = 0.0

upgrades                = up_gr_firstab_helm_pnv
installed_upgrades      = up_firsta_helm_pnv
upgrade_scheme          = upgrade_scheme_helm_pnv

[sect_helm_pnv_immunities]
burn_immunity            = 0.0
strike_immunity            = 0.0
shock_immunity            = 0.0
wound_immunity            = 0.0
radiation_immunity        = 0.0
telepatic_immunity        = 0.0
chemical_burn_immunity    = 0.0
explosion_immunity        = 0.0
fire_wound_immunity        = 0.0

 

Там же, в outfit.ltx подключил новую схему

#include "outfit_upgrades\helm_pnv_up.ltx"

После чего в misc\outfit_upgrades добавил соотв. файл со следующим содержанием:

Спойлер

 

[up_sect_firsta_helm_pnv]
value        = +1
nightvision_sect                 = effector_nightvision_1

[up_firsta_helm_pnv]
scheme_index            = 0, 0
known                   = 1
effects                 = 
section                 = up_sect_firsta_helm_pnv
property                = prop_night_vision

precondition_functor    = inventory_upgrades.precondition_functor_a
precondition_parameter  = a & b

effect_functor          = inventory_upgrades.effect_functor_a
effect_parameter        = something_here

prereq_functor          = inventory_upgrades.prereq_functor_a
prereq_tooltip_functor  = inventory_upgrades.prereq_tooltip_functor_a
prereq_params           =
name                    = st_up_pnv_name
description             = st_up_pnv_descr
icon                    = ui_inGame2_upgrade_helm_tactic_7

[up_gr_firstab_helm_pnv]
elements                = up_firsta_helm_pnv

 

Предустановленного апгрейда в шлеме так и не появляется. Что я сделал не так/не сделал?

 

Вопрос 2. Каким образом формируется изображение указателя на детекторе "Медведь"? Делаю новый детектор на его базе, и при нахождении артефакта, когда активируется табло, лево и право на нём оказываются перепутаны - арт слева, табло показывает вправо.

Заранее спасибо.

Изменено пользователем svi_042
  • Мастер! 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как отловить клик правкой кнопки мышки по карте в ПДА? Как выдать GUI-строку, в которой можно вводить символы с клавиатуры? Как запомнить, что было введено в GUI-строку? Пытаюсь сделать это скриптами. В движке пробовал, там очень сложно писать код, но зато можно отловить клик мышки.
Я пытаюсь сделать добавление уникальных меток на карту с помощью клика мыши.
 

Изменено пользователем Winzor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, svi_042 сказал:

Предустановленного апгрейда в шлеме так и не появляется. Что я сделал не так/не сделал?

Не увидел в ваших пояснениях глобального разрешения апгрейда (файл inventory_upgrades.ltx) и добавление схемы в файл item_upgrades.ltx.

1 час назад, svi_042 сказал:

Каким образом формируется изображение указателя на детекторе "Медведь"?

Движек управляет ориентацией текстуры item_detector_2_segment. Вероятно косяк в ХУД-модели детектора.


Winzor Все верно без движка вы не отследите ни клика мыши ни ввода текста, так что движек ковыряйте.

 
Изменено пользователем denis2000
  • Спасибо 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
7 часов назад, denis2000 сказал:

Не увидел в ваших пояснениях глобального разрешения апгрейда (файл inventory_upgrades.ltx) и добавление схемы в файл item_upgrades.ltx.

inventory_upgrades.ltx действительно проморгал, и всё заработало, впрочем, потом вспомнил про nightvision_sect в самом предмете, и надобность в апгрейдах отпала. Увидеть, что всё работало, не мог потому, что N по какой-то причине не включает ПНВ. Перебиндил на другую клавишу, и всё заработало.

7 часов назад, denis2000 сказал:

Движек управляет ориентацией текстуры item_detector_2_segment. Вероятно косяк в ХУД-модели детектора.

Какие конкретно параметры будут влиять на это? Координаты и ориентация кости? Положение вещи на худе?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

При вызове InitEditBox игра вылетает с таким логом:

Спойлер

[error]Expression    : assertion failed
[error]Function      : CUIXmlInit::InitText
[error]File          : .\ui\UIXmlInit.cpp
[error]Line          : 315
[error]Description   : pTmpFont


Почему она может вылетать, если text font и даже font прописан в xml-секцию?
        <wrote_str_sn x="20" y="55" width="700" height="180">
            <texture>ui_stroketextbox</texture>
            <font font="letterica18"/>
            <text font="letterica18" r="240" g="217" b="182"/>
        </wrote_str_sn>
 

Спойлер

Я пробовал использовать self.SpotName через self.str, которому присваивался font (функция SetFont). Вылетает с таким же логом.

class "CUscM" (CUIScriptWnd)
function CUscM:__init() super()
    self:InitControls()
    self:InitCallBacks()
end
function CUscM:__finalize() end

function CUscM:InitControls()
    self:SetWndRect(Frect():set(0,0,1024,768))
    
    local Xml = CScriptXmlInit()
    Xml:ParseFile("ui_uscmenu.xml")
        self.Background = Xml:InitStatic("background", self)
            
        self.BtnCreate     = Xml:Init3tButton("background:btn_create_spot", self.Background)
        self:Register    (self.BtnCreate, "OnBtnCreate")
            
        self.BtnQuit     = Xml:Init3tButton("background:btn_quit",     self.Background)
        self:Register    (self.BtnQuit, "OnBtnQuit")
            
        self.SpotName    = xml:InitEditBox("background:wrote_str_sn", self.Background)
        self:Register    (self.SpotName, "wrote_string")
--        handler:Register    (self.SpotName,    "wrote_str_sn")
--        handler:AddCallback("wrote_str_sn", ui_events.EDIT_TEXT_COMMIT, self.OnEditString, self)
        self.SpotName:SetText("")

    self.bWide = utils.is_widescreen()
end

function CUscM:InitCallBacks()
    self:AddCallback("OnBtnCreate",     ui_events.BUTTON_CLICKED,          self.OnCreate,            self)
    self:AddCallback("OnBtnQuit",         ui_events.BUTTON_CLICKED,          self.OnQuit,            self)
end

function CUscM:OnCreate()
local spot_name = self.SpotName:GetText()
if spot_name ~= nil then
xr_effects.enable_moving()
level.map_add_object_spot_ser(esc_a2_surge_hide, "treasure_spot", spot_name)
else
OnQuit()
get_hud():HidePdaMenu()
news_manager.send_tip(db.actor, "st_us_dont_have_name", nil, "none_info_pda", nil, nil)
end
end

function CUscM:OnQuit()
self.SpotName:SetText("")
xr_effects.enable_moving()
self:HideDialog()
end

 

Изменено пользователем Winzor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Имеется одна странная проблема, которая возникла непонятно из-за чего и при этом непонятно, как её решить.
Суть в том, что абсолютно все НПС почему-то идут только через одно место, при том что там нет граф-пойнтов (насколько я слышал, НПС передвигаются по граф-пойнтам). Сейчас приложу скриншоты в спойлеры, чтобы наглядно продемонстрировать ситуацию. Заранее спасибо.
 

Спойлер

7fd646326fae.png

Спойлер

d22e98ea4d4e.png

Даже если им нужно дойти, припустим, к мосту или встать на дороге над тоннелем, они всё равно идут правой стороной через скалы. Очень странно.

Изменено пользователем Vlador

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, Vlador сказал:

(насколько я слышал, НПС передвигаются по граф-пойнтам)

Нет. НПС передвигаются по way путям. Если надо, чтобы сталкеры ходили по определённому маршруту, конкретнее прописывай им пути. Если это симуляционные НПС, значит, они обходят таким образом какую-то опасность или это оптимальный путь до точки для них.

  • Спасибо 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Вроде правильно написал, а svarog_quest_descr при наличии нужных предметов не меняется на svarog_quest_descr_2

descr = svarog_quest_descr, {=actor_has_item(af_fuzz_kolobok)} {=actor_has_item(af_baloon)} {=actor_has_item(mutant_krovosos_jaw)4} {=actor_has_item(mutant_part_chimera_kogot)3} {=actor_has_item(mutant_part_pseudogigant_eye)2} svarog_quest_descr_2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
13 часов назад, svi_042 сказал:

Какие конкретно параметры будут влиять на это? Координаты и ориентация кости? Положение вещи на худе?

Кость маловероятно - ее положение определяется анимацией. Ее то не меняли?
Положение вещи не должно в принципе влиять.
А вот ориентация текстуры индикатора - может, например в том случае если она разверута изнанкой и сделана двухсторонней.

К тому же вы точно уверены, что индикация работает именно так, эксперимент проводился в "чистых" условиях?


Winzor Как по мне конструкция 

<font font="letterica18"/>

Явно лишняя.


8 часов назад, Vlador сказал:

насколько я слышал, НПС передвигаются по граф-пойнтам

Не совсем так, а точнее совсем не так. По графпоинтам перемещаются сквады "в офлайне". НПС "в онлайне" перемещаются по АИ-сетке путь же между двумя точками (исходной и точкой назначения) выбирается специальным алгоритмом, который называться патфайндер. Так вот этот алгоритм в сталкере иногда выдает довольно странные маршруты (именно поэтому в ЧН для сквадов были сделаны пути между смартами). Для начала проверьте АИ-сетку на локации на предмет проходимости (связанности нод сетки) на желаемом маршруте, если причина не в этом, то попробуйте наоборот сделать разрыв сетки на пути который вас не устраивает, если же это не приемлемо пробуйте маршрут сквада по смартам, которые расположите на пути желаемого следования. Последний вариант маршрут сквада по точкам (но для этого нужно менять скрипты управляющие сквадами).

Изменено пользователем denis2000
  • Лайк 1
  • Спасибо 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Что не так?

Expression    : !phrase_dialog->m_PhraseVector.empty()
Function      : CPhraseDialog::SayPhrase
File          : PhraseDialog.cpp
Line          : 146
Description   : No available phrase to say, dialog[yan_stalker_sakharov_svarog_start]

stack trace:

001B:005624AA xrCore.dll, xrDebug::fail()
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, Igor_Misery сказал:

Expression    : !phrase_dialog->m_PhraseVector.empty()
Function      : CPhraseDialog::SayPhrase
File          : PhraseDialog.cpp
Line          : 146
Description   : No available phrase to say, dialog[yan_stalker_sakharov_svarog_start]

В диалоге не работает следующая реплика, смотри, чтобы все условия были выполнены.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
8 часов назад, denis2000 сказал:

К тому же вы точно уверены, что индикация работает именно так, эксперимент проводился в "чистых" условиях?

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

Анимации меняли, и достаточно сильно. Поэтому и интересуюсь, каким образом отрисовывается картинка, чтоб понимать, на что грешить. Впрочем, это действительно может оказаться косяк текстурирования.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Подскажите плз. Сделал копию комбеза, сменил в название две буквы, а худ шлема у него пропал, как прописать ему худ шлема ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Кто подскажет , есть шейдер , чтоб самосветился и одновременно дымил ? Что-то захотелось Прапору сигару вставить ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
15 часов назад, svi_042 сказал:

Выдал себе оригинальный детектор и переделку, оригинальный показывает направление должным образом, новый "путает" лево и право.

Теперь понятно. Это эксперимент с "контрольной группой" и его результаты можно верно интерпритировать.

15 часов назад, svi_042 сказал:

Анимации меняли, и достаточно сильно.

В любом случае маловероятно, что анимации могли повлиять, более вероятно, что влияет сама 3D-модель.


Kalambur Найдите механизм динамического худа (это скрипт) и дополните его настройки для верного отображения худа с новым комбезом.


8 часов назад, ForaCam сказал:

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

Это никак не шейдер - это партикл. А партикл движковым методом прикрепляется к суставу модели. 

Изменено пользователем denis2000

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
11 часов назад, ForaCam сказал:

самосветился

models/selflight

11 часов назад, ForaCam сказал:

дымил

По хорошему партиклом это надо делать. Но можно попробовать к модели привязать плоскость с текстурой дыма, и назначить ей отдельный материал, с шейдером который двигает UV-координаты вверх. Такой шейдер есть в ванильном ЗП, но его названия я не помню.


Дополнено 14 минуты спустя

upd Можно ж еще дым .seq анимацией попробовать сделать, как вариант

Изменено пользователем molodoy_chelovek

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как сделать, чтобы при прикосновении болта с поверхностью материала, то он будет издавать характерный материалу звук?

Кидаю на лист железа - издается звук железа и т.д.


Дополнено 9 минуты спустя

Как называется файл с иконками аномалий и артефактов отображаемые в детекторе? Помню, находил этот файл, но не запомнил название.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Подскажите плз. Как сделать чтобы Торговец который только обменивает, не принимал у меня на обмен всякие водку, воду  и все напитки ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Только что, Kalambur сказал:

Подскажите плз. Как сделать чтобы Торговец который только обменивает, не принимал у меня на обмен всякие водку, воду  и все напитки ?

Бартер. В твоём моде или в каком-нибудь другом?


Дополнено 5 минуты спустя

Кто шарит в скриптах, подскажите, как сделать систему энергии экзоскелета. Если что не для одного экзоскелета.

Выведение полоски энергии на худ и зарядка батареями, невозможность ходить и уменьшение переносимого веса при разряженной батареи, и батареи разной ёмкости.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
4 часа назад, Misery сказал:

Бартер. В твоём моде или в каком-нибудь другом?


Дополнено 5 минуты спустя

Кто шарит в скриптах, подскажите, как сделать систему энергии экзоскелета. Если что не для одного экзоскелета.

Выведение полоски энергии на худ и зарядка батареями, невозможность ходить и уменьшение переносимого веса при разряженной батареи, и батареи разной ёмкости.

А своими ручками? Не так сложно, как мне кажется.
Как передать в параметр секции текст (просто отредактировать параметр)? Нужно передать в параметр текст, который был введён в InitEditBox.
Например:
Есть секция

.
В ней есть параметр: key_to_unlock = 130002
И через скрипт нужно отредактировать значение key_to_unlock на 378.
Как это сделать?
  • Пост еще тот... 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
Спойлер

-- ---------------------------------------------------------------------------------------------
--                    Проверка на наличие у актора определённых секций предметов
-- ---------------------------------------------------------------------------------------------

function actor_have_section(sect, needed) 
    if not needed then
        needed = 1
    end
    local count = 0
    local function itr(actor, item) 
        if item:section() == sect then 
            count = count + 1 
        end 
    end
    db.actor:iterate_inventory(itr, db.actor)
    return count >= needed 
end

-- ---------------------------------------------------------------------------------------------
--                    Проверка на наличие у актора нужной суммы денег
-- ---------------------------------------------------------------------------------------------

function act_have_money(count)
    return db.actor:money() >= count
end
-- ---------------------------------------------------------------------------------------------
--                    Прекодишн на наличие диалога у механов
-- ---------------------------------------------------------------------------------------------

function have_needs_outfits(first_speaker, second_speaker)

    return first_speaker:object("exo_outfit") ~= nil
end

-- ---------------------------------------------------------------------------------------------


-- ---------------------------------------------------------------------------------------------
--                                           Лесник, Рыжий лес
-- ---------------------------------------------------------------------------------------------

-- Функция проверки наличия ТБ-1 в инвентаре ГГ

function have_exo_outfit_for_red_forester_mechanic(first_speaker, second_speaker)
return actor_have_section('exo_outfit')
end
function have_exo_outfit_for_red_forester_mechanic(first_speaker, second_speaker)
return actor_have_section('exobackpack')
end 

function have_exo_outfit_for_red_forester_mechanic(first_speaker, second_speaker)
    local item_sections = {"exo_outfit"}
    local needed = 1 
    local count = 0
    local item_section
    local function calc(temp, item)
        if (item:section() == item_section and item:condition() >= 0.99) then
            count = count + 1
        end
    end

    for k,v in pairs(item_sections) do
        item_section = v
        get_story_object("actor"):iterate_inventory(calc, actor)
    end
    return count >= needed
end

-- Функция изъятия ТБ-1 у ГГ
function sell_exo_outfit_for_red_forester_mechanic(first_speaker, second_speaker)
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "exo_outfit")
dialogs.relocate_item_section_from_actor(first_speaker, second_speaker, "exobackpack")
end

-- Функция выдачи ТБ-1 в камуфляже Монолита
function give_reward_from_red_forester_mechanic_for_exo_outfit(first_speaker, second_speaker) 
    dialogs.relocate_item_section_to_actor(first_speaker, second_speaker, "exotb_outfit")
end

подскажите пожалуйста, как поправить чтобы проверяло на наличие двух предметов одновременно, ибо сейчас есть exo_outfit и могу поменять на новый предмет и если есть exo_outfit и exobackpack тоже меняет, а если есть только exobackpack  то не меняет, нужно чтобы меняло только когда оба придмета есть !

Изменено пользователем Kalambur

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   3 пользователя онлайн