Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
Правил abramcumner, подробной информации у меня нет. Знаю только что собиралось вроде в Visual Studio 2015.
Цитатаyobakun ()
Я так понимаю xrLC никто не обновлял?
abramcumner правил под ту локу сам двиг. cop_e_1_7_05_x64, xrAI_e_cop_01_x64 и xrDO_Light_cop_x64_01. Все что могу еще к этому добавить так это процетировать sektor_aka:
Цитатаsektor_aka ()
я ещё вчера уточнил у abramcumner'а.
Он сказал, что пересобрал компиль SDK ЗП изменив строки 42-44 в файле utils/xrLC_Light/recalculation.cpp
Как правильно написать скрипт с условием, в котором после использования актором определённого предмета происходит какое-то действие? Примерно: (условная функция) (любое действие, не связанное с предметами) Если использовал, то (действие)
Для точности наиболее полная картина:
Есть для СоС такой мод, под режим "Одна жизнь", Ironman Second Wind, в нём есть фича - добавлять одну "жизнь" (возможность перезагрузиться без удаления сохранений) раз в 24 часа. Я хочу сделать так, чтобы "жизнь" так же добавлялась при использовании ГГ определенного предмета.
На всякий случай оригинал:
local time_factor = 1 local granted_lives = 0 local sleep_hrs = 0 local life_cycle = 120 local life_feature = false
function set_sleep_hrs(hrs) -- called by (ui_sleep_dialog.script) sleep_hrs = sleep_hrs + hrs end
function ironman_timer()
ResetTimeEvent(0,"IronManTimer",5*time_factor) -- reset every 5 minutes
if (not db.actor) or (not USE_MARSHAL)then return true end
local s_time = level.get_start_time() local seconds = tonumber(game.get_game_time():diffSec(s_time)) local hours = math.floor(seconds/60/60) local true_hrs = hours - sleep_hrs local fc = math.floor(true_hrs/life_cycle) if (granted_lives < fc) then local death_count = alife_storage_manager.get_state().death_count or 0 alife_storage_manager.get_state().death_count = death_count - 1 granted_lives = granted_lives + 1 --printf(">>> Tronex: New life granted! new lives so far: " .. granted_lives) end --printf(">>> Tronex: fc: " .. fc .. " | true hrs: " .. true_hrs .. " | hours: " .. hours .. " | death_count: " .. tostring(alife_storage_manager.get_state().death_count) .. " | deeath_limit: " .. tostring(alife_storage_manager.get_state().death_limit) .. " | life_feature: " .. tostring(life_feature) .. " | life_cycle: " .. tostring(life_cycle))
return false end
local function save_state(m_data) m_data.ironman_sleep_hrs = sleep_hrs m_data.ironman_granted_lives = granted_lives end
local function on_game_load() local uuid = alife_storage_manager.get_state().uuid if (not uuid) or (not life_feature) then return end if _G.GAME_VERSION == "1.4.16" then time_factor = level.get_time_factor() end CreateTimeEvent(0,"IronManTimer",10*time_factor,ironman_timer) end RegisterScriptCallback("save_state",save_state) RegisterScriptCallback("load_state",load_state) RegisterScriptCallback("on_game_load",on_game_load) end
Вчера делал камеру для кат-сцены. Экспорт сделал, все норм, ну и вышел из ЛЭ. Седня захожу в ЛЭ вылет, вот такой
Expression : sz<(tgt_sz-1) Function : X:\stalker_addon\sources\trunk\xrCore\FS.cpp File : X:\stalker_addon\sources\trunk\xrCore\FS.cpp Line : 426 Description : Dest string less than needed.
Добрый вечер, возникло несколько простых вопросов. Прошу помочь разобраться. 1)есть рестриктор с логикой, цель - сделать этот рестриктор активным после определённых инфопоршней (логика такая: при посещении гг этого рестриктора выдавался поршень), как можно совместить две и более такие логики?
хотелось бы дополнить схожей логикой, но уже с info_4,info_5,info_6
2)как совместить определённую логику и спавн через рестриктор? 3)работает ли анимация нпс, который сидит, без анимпоинта?
В логике прописано
Код
walker@...
и
Код
anim = sit_ass
, в вейпонте
Код
p0:name = wp00|sig=sit_ass
4)по какой-то причине нпс не занимает определённый вейпоинт, по которому должен встать (прописаны в вейпоинте, как смарт, так и название из логики валк и лоок, этот вейпоинт на возвышенности, 2 этаж), однако нпс либо идёт на другое место, либо стоит в центре смарта (перепроверял все координаты). С чем может быть это связано? 5)Каким образом можно провернуть следующее: при убийстве нпс определённой группировки (например, монолитовцы), удалять их трупы и подменять зомбями, к примеру?
Сообщение отредактировал Hoperise - Пятница, 14.12.2018, 01:14
[sr_idle@1] on_actor_inside = {+info_4} %+info_3% sr_idle@end, {-info_4} %+info_5% sr_idle@end ; В этой строке условия разделены запятой. Если не выполнится первое, будет проверяться второе. Условий может быть, хм, много. Насчет "сколько угодно" не уверен.
Работает. Только в точке пути path_look надо прописывать, а не в path_walk. Вот так.
p0:name = wp00|a=sit_ass
sit_ass - "стоячее" состояние из файла scripts\state_lib.script
4
Было такое. Сними координаты заново. Мне помогло. И проверь - доступна ли для него работа в смарте. И не забудь, что путь должен начинаться с имени смарт террейна (в файле путей), а в работе смарта указывается без имени смарт террейна.
5
Предположу, что можно вызывать свою ф-ию спавна из файла death_manager.script с проверкой на принадлежность умершего к определенной группировке.
Сообщение отредактировал Ferveks - Пятница, 14.12.2018, 05:44
получится что рестриктор активируется по одному из условий или если есть инфопоршень один, то рестриктор активен до инфопоршня 3, дальше рестриктор будет активирован после инфопоршня 4, до инфопоршня 5? Можно ли сделать вражеского нпс1 нейтральным к другим нпс как квестовым, так и симуляционным, и что б сам нпс1 оставался ко всем нейтральным. По остальным вопросам огромное спасибо!
Сообщение отредактировал Hoperise - Пятница, 14.12.2018, 07:48
Можно ли сделать вражеского нпс1 нейтральным к другим нпс как квестовым, так и симуляционным, и что б сам нпс1 оставался ко всем нейтральным.
Для того чтобы сделать НПС нейтральным, нужно сделать его группировку нейтральной ко всем остальным группировкам, либо персонально скриптом изменить отношения в каждой паре Ваш НПС <-> Остальные НПС. Но если вы спрашиваете не о нейтральности, а о запрете атаковать враждебную цель, то речь идет о кондлисте в логике НПС под именем combat_ignore_cond. Так вот если кондлист даст true то атаковать цель НПС не будет.
Например: имеем рестриктор покрывающий базу с именем levelprefix_smartname_no_assault и запрещено атаковать вражеские цели если они находятся в зоне его действия. То в активные секции логики всех НПС в данном смарте пишем:
Как сделать костюму апгрейд? Например, скопировать апгрейды «Севы» в костюм, у которого изначально нет апгрейда. И это ж еще надо механикам что-то прописывать?