-
Число публикаций
1 197 -
Регистрация
-
Последнее посещение
-
Дней в топе
1 -
AMKoin
18,644 [Подарить AMKoin]
Закладки
-
Новые локации
Новые локацииВ 18.03.2020 в 21:17, Никсон сказал:Вот бы еще билдосвалку сделать и привести в порядок.
То, что ещё не успел перевести на текстуры зп: https://drive.google.com/file/d/1ggUHq5h2dF_NWPaD7h_iUt43DXQ_p-q5/view?usp=sharing
билдовые версии свалки, бара и завода Росток.
(только исходники, без наполнения - деревья / пропсы)- исправлены вывернутые / двойные / инвалид-полигоны
- настроены все материалы****
- перетекстурены* / заменены некоторые объекты**
- добавлены фейки, где есть ступеньки (а также hom, nosun)
- объекты разделены на группы / сектора
- сделаны _det*** / _mask текстуры* - максимально сокращено использование текстур низкого разрешения, типа:
crete_floor3
crete_roof1_border
crete_st_rg01
crete_stena_gr
crete_walls8
mtl_walls1
mtl_walls1_b
ston_bricks7
ston_walls2
ston_white_wall_a** - билдовые дерев.дома в баре; на заводе идентичными объектами с мп-карты зп
*** - альфа-канал оставлен чисто белым (255), для уменьшения плотности травы следует затемнить нужные участки, а чёрным закрасить всё, что за игровыми границами уровня (это может существенно снизить время компила травы)
**** - в архиве имеется инфа (текстуры, значения для масштабирования) для создания шейдеров террейна
-
[SoC] Ковыряемся в файлах
[SoC] Ковыряемся в файлах5 часов назад, Houdini_one сказал(а):Как можно сделать в самой игре снимок локации сверху, если статическое освещение в игре отсутсвует? Нужно для того, чтобы создать det карту. На динамике снимок жёлтым заливает, может исправить это как-то можно, или ещё какой способ снимка есть?
Сперва выставить погоду с именем map:
Скрытый текстПодходит для снимков на р2
\config\weathers\weather_mаp.ltx
[map_01]
flares =
sky_texture = sky\sky_7_cube
sky_rotation = 0
sky_color = 0.344, 0.344, 0.344
clouds_texture =
clouds_color = 0, 0, 0, 0
far_plane = 9000
fog_distance = 8900
fog_color = 1, 1, 1
fog_density = 0
rain_density = 0
rain_color = 1, 1, 1
thunderbolt =
bolt_period = 0
bolt_duration = 0
wind_velocity = 0
wind_direction = 0
ambient = 0.6, 0.6, 0.6
hemi_color = 0.5, 0.5, 0.5, 1.0
sun_color = 0, 0, 0
sun_dir = -0.1, 0Если нужно с солнцем, сперва отключить тени от облаков (заремить #define USE_SUNMASK в \shaders\r2\common.h), и в игре выставить r2_sun_depth_near_bias: -.5 (убирает баг с тенями во время снимка, но после обязательно вернуть значение: 0)
[map_01]
flares = flares_default10
sky_texture = sky\sky_7_cube
sky_rotation = 0
sky_color = 0.344, 0.344, 0.344
clouds_texture =
clouds_color = 0, 0, 0, 0
far_plane = 9000
fog_distance = 8900
fog_color = 1, 1, 1
fog_density = 0
rain_density = 0
rain_color = 1, 1, 1
thunderbolt =
bolt_period = 0
bolt_duration = 0
wind_velocity = 0
wind_direction = 0
ambient = 0.6, 0.6, 0.6
hemi_color = 0.5, 0.5, 0.5, 1.0
sun_color = 1, 0.957, 0.859
sun_dir = -90, 292Ещё можно в папке с уровнем, создать папку detail и туда закинуть текстуру жёлтого цвета с именем detail_grnd_asphalt
-
[SoC] Ковыряемся в файлах
[SoC] Ковыряемся в файлах1 час назад, Houdini_one сказал:подвида мутантов
В оригинале в коде есть предикаты, вот кусок из gulag_bar.script
Скрытый текст...
-- ARENA MONSTERS
if type == "bar_arena_monstr" then
t = { section = "logic@bar_arena_monstr_pseudodog",
idle = 0,
prior = 5, state = {1}, squad = squad, group = groups[0],
in_rest = "", out_rest = "bar_arena_sr",
predicate = function(obj_info)
return obj_info.section_name == "pseudodog_arena"
end
}...
Но работает ли это дело с монстрами... Проверь.
1 час назад, андрей дронав сказал:Это весь скрипт?
-
[SoC] Ковыряемся в файлах
[SoC] Ковыряемся в файлах1 час назад, Houdini_one сказал:в нужный момент удалить и заспавнить как обычную водку,
А зачем такие сложности?
Пропиши в эту бутылку (physic_object) логику - когда ГГ её use'нет она удаляется, а настоящая водка спавнится в инвентарь.
Ну, а дальше: db.actor:eat(db.actor:object("vodka"))
-
[SoC] Ковыряемся в файлах
[SoC] Ковыряемся в файлах4 часа назад, Houdini_one сказал:каким образом реализовывается дневные-ночные монстры
Задать условия по времени для состояний, например.
Скрытый текстfunction load_job(sj, gname, type, squad, groups)
--" Кровосос, хоум недалеко на восток от грузовика смерти
if type == "esc_smart_bloodsucker" then
-- днём оффлай
t = { section = "logic@esc_smart_bloodsucker_day",
idle = 0,
prior = 5, state = {0},
online = false,
in_rest = "", out_rest = ""
}
table.insert(sj, t)
-- ночью резвится
t = { section = "logic@esc_smart_bloodsucker_night",
idle = 0,
prior = 5, state = {1},
online = true,
in_rest = "", out_rest = ""
}
table.insert(sj, t)
end...
end
...
function load_states(gname, type)
if type == "esc_smart_bloodsucker" then
return function(gulag)
if db.actor ~= nil then
if ( level.get_time_hours() >= 3 and level.get_time_hours() <= 21 ) then
return 0 -- день
else
return 1 -- ночь
end
else
return gulag.state
end
end
end...
end
-
[SoC] Ковыряемся в файлах
[SoC] Ковыряемся в файлах@Hind так я же тебе кидал нормальную статью со всем этим(
Скрытый текстfunction actor_binder:net_destroy()
после
self.object:set_callback(callback.take_item_from_box, nil)
вставляешь
self.object:set_callback(callback.use_object, nil)
function actor_binder:reinit()
после
self.object:set_callback(callback.use_object, self.use_object, self)
вставляешь
self.object:set_callback(callback.use_object, self.use_object, self)
после
function actor_binder:on_item_drop (obj)
level_tasks.proceed(self.object)
--game_stats.update_drop_item (obj, self.object)
end
----------------------------------------------------------------------------------------------------------------------
вставляешь:
function actor_binder:use_object(obj)
use_item(obj)
end
function use_item(obj)
local obj = obj:section()
if obj then
if obj == "medkit" then
-- юзанули аптечку - торкнуло (к вопросу о головокружении)
level.add_pp_effector("alcohol.ppe", 100, false)level.add_pp_effector("duality_circle.ppe", 100, false)
-- и спавним "пустую" аптечку, например (к вопросу о выдаче нового айтема взамен использованого)
alife():create("medkit_empty", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end
end
end
-
[SoC] Вопросы по SDK
[SoC] Вопросы по SDK7 часов назад, DarkSnowder сказал:функционирующий ключ -terrain
https://disk.yandex.ru/d/Qe2RuMSBimPJVg
У этого в коде присутствует, как работает - не знаю.
-
[SoC] Ковыряемся в файлах
[SoC] Ковыряемся в файлахФайл xr_gulag.script, в ф-цию
-- получить имя пути места работы
function gulag:get_job_path_name( job )
----- добавлено чтение конд-листа -----
-- local active_section = self.ltx:r_string( section, "active" ) <-- это было изначально, добавить две строки, которые ниже
local active_section_cond = xr_logic.cfg_get_condlist(self.ltx, section, "active", self)
local active_section = xr_logic.pick_section_from_condlist(db.actor, self, active_section_cond.condlist)Вроде это все, что нужно изменить. Потести, если не взлетит, посмотрю внимательнее.