Здесь задают вопросы и получают на них ответы. Прежде чем задать вопрос, воспользуйтесь поиском по разделу, ответ на него, вероятно, уже есть.
Если у вас произошёл вылет, проверьте лог и поищите информацию об ошибке в справочнике. Также будет полезно посмотреть справочник ошибок. Если у Вас вылетает какой-то мод, то следует написать в тему этого мода.
Грамотно оформляйте свой пост, чётко доносите суть своего вопроса (ответа).
Благодарность выражаем в личке или же ставим плюсик в историю репутации. Подобные посты будут удаляться.
Неужели никак нельзя достать текстуры из oblivion lost для бара?
Если речь идет только о текстурах, то все можно, если осторожно. Во-первых, из какого именно oblivion вы переносите текстуры? Оblivion есть не только на ТЧ, но и на ЗП. Во-вторых, научитесь всегда выкладывать лог вылета, если хотите что бы вам помогли. А так, могу только предположить, что вы переносите текстуры из обливион для ТЧ и вылетает у вас СДК не из за текстур, а из за файлов THM для них. ТЧ .thm не совместимы с ЗП. Есть два способа перенести .thm из ТЧ в ЗП. 1. Прогнать текстуры через СДК ЗП, как это делается, есть в уроках Непряхина. И это правильный и самый надежный способ. 2. Прогнать .thm файлы ТЧ через утелиту thmParser (Парсер формата .thm SoC в .thm CS/CoP.)
Сообщение отредактировал WolfHeart - Среда, 08.01.2020, 14:54
Планировал чтобы дверь можно было открыть и закрыть, но дверь могу только открыть, а на закрытие никакой анимации нету, только звук (и то не весь). Глянул как в оригинале сделано: насколько помню, там дверь открываем, а потом если собрать все документы из Х8 дверь закрывается и спавнится контролёр.
Проблема в том, что я не могу понять, каким образом заставить дверь закрыть. Да и логика оригинала обрывается на открытии двери. Ещё прикрепляю настройку гермы в оригинальной Х8 и у меня.
Здравствуйте. Играл в CoC и возникла идея немного оживить своих спутников. Хочу сделать компаньенам логику определенных действий при определенном приказе. Если конкретно, то хочу что бы при указе ждать и игнорировать бой (или в идеале вобще отдельную команду "Привал"), они не просто торчали на месте до следующих указаний, а располагались в небольшом радиусе, курили, сидели на заднице, пили, ели, спали ну и прочие НПЦшные анимации. Загвоздка в том, что хочу провернуть это не цепляясь к статичным Локациям, Смартам и Гулагам. Тоесть, что бы точка привала была динамичной и брала координаты расположения из текущей позиции актора или самого непися. Ну и создавала на ней смарт с логикой, на котором соратнички бы отдыхали допустим. Сколько не ковырялся в существующих конфигах и скриптах, не смог найти как совершить задуманное. Штудируя гугл нашел гайд как можно сделать логику без смарта, которая зависит только от указанного вертекса. Но тем не менее вертекс этот прописан в логике и, опять же, статичный выходит. Сам я не погромист, буквально на месте учусь интуитивно, но всех тонкостей еще не знаю. Мб туплю и есть какая-то команда, которая может подтягивать необходимый вертекс в конфиг логики. Или все эти фантазии вобще невозможно провернуть??
А не подскажете, какой файл редактировать (команду прописывать)?
У меня такой скрипт стоит отдельным файлом .script в gamedata/scripts. Можешь поглядеть, подогнать. Но у меня тут еще куча лишнего (зараженная еда, всякое разное питание)
last_drink, start_blur_1 = nil,nil -- to change defaults, edit below in 'create' function local items,force,start_blur_2,start_blur_3,start_blur_4,itn_mul,pwr_rate,rng_factor,caff_max,die_chance,last_drink_chk,pwr_chk,force_slp
function destroy() UnregisterScriptCallback("actor_on_update",actor_on_update) UnregisterScriptCallback("actor_on_item_use",actor_on_item_use) if (USE_MARSHAL) then UnregisterScriptCallback("save_state",save_state) UnregisterScriptCallback("load_state",load_state) end alife_storage_manager.get_state().drink = nil end
function on_game_start() -- if (axr_main.config:r_value("mm_options","enable_sleep_deprived",1,false) == false) then -- return -- end create() end
function save(package) if (USE_MARSHAL) then return end package:w_u8(last_drink) package:w_u16(last_drink_chk) end function load(package) if (USE_MARSHAL) then return end last_drink = package:r_u8() or 0 last_drink_chk = package:r_u16() or 0 end --//--------------------------------------------------------------//-- function save_state(m_data) if (USE_MARSHAL) then m_data.drink = m_data.drink or {} m_data.drink["last_drink"] = last_drink m_data.drink["chk_drink"] = last_drink_chk end end
function load_state(m_data) if (USE_MARSHAL) then last_drink = m_data.drink and m_data.drink.last_drink or 0 last_drink_chk = m_data.drink and m_data.drink.chk_drink or nil end end
function actor_on_item_use(item) for i,j in pairs(items) do if item:section() == i then -- log('!Использован предмет: '..item:section()..' Изменение жажды на: '..j..' Жажды до: '..last_drink) if j < 0 then last_drink = last_drink + j if last_drink < 0 then last_drink = 0 end test_blur() break elseif j > 0 then last_drink = last_drink + j if last_drink > 1000 then last_drink = 1000 end test_blur() break end end end end
function actor_on_update(b,d) -- printf("last_drink_chk=%s last_drink=%s",last_drink_chk and game.get_game_time():diffSec(last_drink_chk) or "nil",last_drink) if last_drink > start_blur_1 then local tg = time_global() if (pwr_chk == nil or tg > pwr_chk) then if (db.actor.power > 0) then db.actor.power = pwr_rate*((last_drink-start_blur_1)*rng_factor)/10 db.actor.health = pwr_rate*((last_drink-start_blur_1)*rng_factor)/100 end pwr_chk = tg+100 end end if (last_drink_chk and game.get_game_time():diffSec(last_drink_chk) < 300) then indicator_update() return end last_drink_chk = game.get_game_time() -- log('!Обычное повышение жажды на 6. Жажды до: '..last_drink) last_drink = last_drink + up_drink if last_drink < 0 then last_drink = 0 elseif last_drink > 1000 then last_drink = 1000 end test_blur() end
function test_blur() level.remove_pp_effector(39568) if last_drink >= start_blur_1 then level.add_pp_effector("yantar_underground_psi.ppe", 39568, false) if last_drink >= start_blur_1 and last_drink < start_blur_2 then level.remove_pp_effector(39568) -- level.set_pp_effector_factor(39568, (last_drink-start_blur_1) * itn_mul) elseif last_drink >= start_blur_2 and last_drink < start_blur_3 then level.set_pp_effector_factor(39568, (last_drink-start_blur_1) * itn_mul) SetHudMsg(game.translate_string("Вы давно не пили и должны попить"),3) elseif last_drink >= start_blur_3 and last_drink < start_blur_4 then level.set_pp_effector_factor(39568, (last_drink-start_blur_1) * itn_mul) SetHudMsg(game.translate_string("Вы давно не пили и должны попить"),5) elseif last_drink >= start_blur_4 and last_drink < force then level.set_pp_effector_factor(39568, (last_drink-start_blur_1) * itn_mul) elseif last_drink >= force and math.random(100) <= force_slp and not db.actor:has_info("actor_is_sleeping")==true then db.actor:give_info_portion("force_slp") force_sleep() SetHudMsg(game.translate_string("Вы крайне истощены - необходимо попить!"),5) end end end
function force_sleep() ui_sleep_dialog.sleep_forced() if math.random(100) < die_chance then SetHudMsg(game.translate_string("st_sleep_deprived"),5) db.actor:kill(db.actor) end disable_info("force_slp") end --'----------------------------------------------------------------------------- --' INDICATORS NEW --'----------------------------------------------------------------------------- local d_hud={ x=990, y=500, height=25, weight=25} function indicator_update(bShow) local hud=get_hud() local drk=hud:GetCustomStatic("indicator_drink") local wnd if(bShow==false or db.actor:is_talking() )then if(drk~=nil)then hud:RemoveCustomStatic("indicator_drink") drk=nil end return end if(drk==nil)then hud:AddCustomStatic("indicator_drink",true) drk=hud:GetCustomStatic("indicator_drink") wnd=drk:wnd() if(wnd~=nil)then wnd:SetWndPos(vector2():set(d_hud.x,d_hud.y)) if utils.is_widescreen() then wnd:SetWndSize(vector2():set(d_hud.weight-7,d_hud.height)) else wnd:SetWndSize(vector2():set(d_hud.weight,d_hud.height)) end wnd:SetAutoDelete(true) end end if(drk~=nil)then wnd=drk:wnd() wnd:InitTexture(get_color_drink()) end end
function get_color_drink() local textures={ [0]="ui_inGame2_circle_drink_empty", [1]="ui_inGame2_circle_drink_green", [2]="ui_inGame2_circle_drink_yellow", [3]="ui_inGame2_circle_drink_orange", [4]="ui_inGame2_circle_drink_red" } local color=0 if last_drink>start_blur_4 then color=4 elseif last_drink>start_blur_3 then color=3 elseif last_drink>start_blur_2 then color=2 elseif last_drink>start_blur_1 then color=1 elseif last_drink<start_blur_1 then color=0 end if color2~=color then -- log('!СМЕНА ИКОНКИ!') end color2=color -- log('@'..textures[color]) return textures[color] end
Сообщение отредактировал Warpony_Garro - Среда, 08.01.2020, 20:02
Возможно ли в Зове Припяти воссоздать древнюю систему, позволяющую лечить противников и переводить их в последствии на свою сторону? Как это будет работать с системой сквадов? Какие возможны ошибки и препятствия?
Цитата Stalker_Одиночка () А не подскажете, какой файл редактировать (команду прописывать)?
У меня такой скрипт стоит отдельным файлом .script в gamedata/scripts. Можешь поглядеть, подогнать. Но у меня тут еще куча лишнего (зараженная еда, всякое разное питание)
В файле actor.ltx прописать или создать отдельный файл?
Можно ли обойти ограничение размера lod-текстур уровня и сделать размером больше, чем 4096х2048?
Добавлено (09.01.2020, 10:05) --------------------------------------------- Или же, как можно избежать такого вылета при билде локации в СДК на стадии Merge LOD texture
FATAL ERROR
[error]Expression : fatal error [error]Function : out_of_memory_handler [error]File : D:\prog_repository\sources\trunk\xrCore\xrDebugNew.cpp [error]Line : 335 [error]Description : <no expression> [error]Arguments : Out of memory. Memory request: 262144 K