S.T.A.L.K.E.R. 2: Новый трейлер <<<>>> S.T.A.L.K.E.R.: Global War <<<>>> Инструмент - теперь и для ТЧ!
-
Число публикаций
198 -
Регистрация
-
Последнее посещение
-
AMKoin
1,455 [Подарить AMKoin]
Сообщения опубликованы Jekyll
-
-
@Labadal , какого размера новые файлы партиклов? Такое вроде случается, когда файлы тяжелые. Докидывал из других модов, наверное?
-
- Это популярное сообщение.
- Это популярное сообщение.
Здравствуйте.
Сборка 1.06 пока дорабатывается, "уведомление" в главном меню о ней носило тестовый характер. Я сам жду выхода финалки и как участник разработки, и как игрок.- 1
- 1
- 3
-
-
Как заставить math.max обратиться к таблице?
math.max(1,2,3,4,5) - работает, но таблица предполагается динамичной, способ не подходит
local table = {1,2,3,4,5} (условно)math.max(table) - не работает (вылет - number expected, got table)
Искал ответ в справочниках по луа и здесь на форуме - не нашел. Полагаю, нужно использовать какой-то метод, но какой - не знаю. table.concat выдает строку, следовательно - вылет (number expected, got string). -
Здравствуйте!
Как итерировать инвентарь НПС во время диалога с ним? Способ, подсмотренный в скрипте оригинала ЗП, типаlocal npc = dialogs.who_is_npc(first_speaker,second_speaker) local function itr_inv(temp,item) ..... end npc:iterate_inventory(itr_inv,nil)
не помог.
-
03.01.2023 в 10:52, Won-Won сказал:
Я так понял, что нужна НИ
Да. И в версии 1,06 тоже будет нужна НИ.
- 1
-
@DAKRioADENiTiS "световые" анимации упакованы в lanims.xr (gamedata), который редактируется в SDK - LevelEditor'е (Light Anim Editor). Или сторонними декомпиляторами можно вскрыть, типа Перла. С Light Anim Editor'ом работать просто.
- 1
- 1
-
Здравствуйте.
Как передать предмет неписю от актора не по секции, а по id? Нужно сделать это в диалоговом окне, типа как функцией "dialogs.relocate_item_section_from_actor(first_speaker,second_speaker,section)".
-
05.09.2021 в 17:38, Nerdman сказал:
Где взять воды?
Если без всяких примочек с экономикой и т.п. играешь, то почти на каждом 3-4 трупе должна быть вода. В чем-чем, а в воде у меня лично недостатка никогда не было... Даже на Кордоне (с него начинал всегда).
Вообще, тут от удачи все зависит - лут рандомный абсолютно. У меня в первый раз спустя 3 или 4 часа игры - на Кордоне, из заурядного бандита - выпала рубиновая душа бенгала...
- 3
-
@Won-Won , делаем потихоньку.
- 1
- 1
-
@Dushess74 , скриншот п. 1 в студию можно? Скачивал по ссылкам из этой темы?
-
@НаноБот , вот, склепал тебе простенький пример. Если нужен именно хвост (для снарядов), то смотри партикл "particle_hvost_1_1". Сам пример представляет собой группу, состоящую из эмиттера и хвоста к нему (для аномалий и т.п.).
В основном нужно играться с такими параметрами как: макс. количество партиклов (Max Particles), время их жизни (Killold-> Age Limit), частота их появления (Source -> Rate). Чем больше Rate, тем плотнее будет хвост, но тогда надо и Max Particles ставить больше.
Также плотность хвоста будет зависеть от скорости движения эмиттера (снаряда).
Надеюсь, я тебя правильно понял.
24.07.2021 в 17:38, НаноБот сказал:искрящийся хвост
Используй как основу оригинальные партиклы взрывов, просто замени текстуры своими, уменьши их и увеличь Max Particles.
- 1
-
Здравствуйте. Как определить, принадлежит ли определенный гейм-вертекс текущей локации? ЗП.
-
Здравствуйте. Нужен снежок (заменяет болт) на Зов Припяти (из какого-нибудь зимнего мода). Или хотя бы название мода, в котором он точно есть.
- 2
-
Здравствуйте. Подобный вопрос уже когда-то задавался в этой теме, но с тех пор много воды утекло.
Кто-нибудь проверял соотношения свойств артефактов ТЧ и ЗП? Например, ожог +10% (в ТЧ) равен термозащите +10 в ЗП? То же самое касается "восстановительно-накопительных" свойств.
-
08.04.2021 в 20:55, rex44 сказал(а):
Нда..Как там у Толкиена
Нда... Как там в поговорке... "Правильно поставленный вопрос - это уже половина ответа".
08.04.2021 в 20:55, rex44 сказал(а):Есть кто нибудь,кто умеет делать и при этом знает,что он делает
Еще было неплохо, если бы вопрошающий понимал, о чём именно он вопрошает:)
- 1
- 1
-
24.03.2021 в 17:06, rex44 сказал(а):
эффекты свечения могно реализовать ?
Слабое - можно попробовать. Смотри как сделаны партиклы с "_glow" в названии и экспериментируй. А реальное свечение, как у аномалий или артефактов (свет), сделать вряд ли получится.
24.03.2021 в 17:06, rex44 сказал(а):создать свои партиклы (ващпе с нуля) ?
Конечно. Particle Editor в SDK для этого и создан.
-
Считать какой-либо параметр в секции монстра можно через system_ini():r_string(секция,"параметр"), но как установить новое значение нужного параметра скриптом?
На некоторые параметры есть свои функции (например, eye_range - set_range()). А как быть с остальными? Только править движок?
-
Здравствуйте! Возможно, вопрос не совсем в тему.
Сейчас, наверное, в каждом моде реализована вампирская способность кровососа. Пока что мне попадались моды, где это работает только против ГГ. Есть ли какие-нибудь моды, где данная фича реализована по отношению и к неписям (а то и другим монстрам)? Меня интересует не то, как это сделать, а то, сделано ли такое на данный момент хоть где-нибудь.
-
Здравствуйте. У кого-нибудь есть пак холодного оружия для ЗП? Интересуют мачете, кукри, катана, вакидзаси и фомка.
-
Здравствуйте!
Заспавнил труп сталкера таким способом: alife():create("new_stalker",[координаты]):on_death(). Как теперь его отследить? И как получить его ID? Проверки по имени или секции не срабатывают.
-
2 часа назад, AndrewMor сказал(а):
panic_threshold в конфигах равен 0,1, только у слепышей - 0,01, у котов - 0,02, а у тушканов - вообще 0,0
Это во всех секциях (_weak, _normal, _strong etc.) одни и те же цифры? Или только в базовой для каждого монстра? Я точно знаю, что в оригинальном ТЧ чем выше panic_threshold, тем более трусливые монстры. Только что проверил на псах. При 0.0 ни один не удрал в бою, при 0.7 удирают едва завидев ГГ.
Кроме того, паника зависит и от тяжести ранения монстра. Возможно есть какая-то логика у "стайных" монстров типа тех же собак, но мне к ней прибегать не приходилось - хватало конфигов.
- 1
-
12.01.2021 в 15:51, Houdini_one сказал(а):
по поводу слепых псов
Попробуй поиграться с параметром panic_threshold. Вроде чем он ниже, тем "бесстрашнее" монстры.
- 1
-
3 часа назад, naxac сказал(а):
При записи пакета параметр max_power пропущен.
И правда... Вернул на место - все заработало как надо... Не представлял даже, что отсутствие этого параметра так важно и может сломать нанесение хита неписям... Урок усвоен.
[SoC] Ковыряемся в файлах
в Скрипты / конфиги / движок
Опубликовано · Изменено пользователем Jekyll
@Капрал Хикс, ты пробовал просто перенести параметры газировки (партиклы, тип урона) в копию конфига ТЧшного трамплина?
Может, и в скриптовом способе спавна проблема. Я пользовался таким кодом:
----------------------------------------------------------------------------------------------
-- спавн аномалии
----------------------------------------------------------------------------------------------
function get_story_id_not_replay()
local ST
ST = xr_logic.pstor_retrieve(act, "ScriptAnomId", 0)
if type(ST) ~= "number" or ST == nil then
ST = 9000
xr_logic.pstor_store(act, "ScriptAnomId", ST)
end
if type(ST) == "number" or ST ~= nil then
ST = ST + 1
xr_logic.pstor_store(act, "ScriptAnomId", ST)
end
return tonumber(ST)
end
function create_anom(name_anom, posit_anom, lvid_anom, gvid_anom, radius_anom, power_anom)
local obj = alife():create(name_anom, posit_anom, lvid_anom, gvid_anom)
-----------------------write----------------------
local packet = net_packet()
obj:STATE_Write(packet)
-----------------------load-----------------------
-- cse_alife_object
local game_vertex_id = packet:r_u16()
local distance = packet:r_float()
local direct_control = packet:r_u32()
local level_vertex_id = packet:r_u32()
local object_flags = packet:r_u32()
local custom_data = packet:r_stringZ()
local story_id = packet:r_u32()
local spawn_story_id = packet:r_u32()
-- cse_shape
local shape_count = packet:r_u8()
for i=1,shape_count do
local shape_type = packet:r_u8()
if shape_type == 0 then
-- sphere
local center = packet:r_vec3()
local radius = packet:r_float()
else
-- box
local box = packet:r_matrix()
end
end
-- cse_alife_space_restrictor
local restrictor_type = packet:r_u8()
-- cse_alife_custom_zone
local max_power = packet:r_float()
local owner_id = packet:r_u32()
local enabled_time = packet:r_u32()
local disabled_time = packet:r_u32()
local start_time_shift = packet:r_u32()
-- cse_alife_anomalous_zone
local offline_interactive_radius = packet:r_float()
local artefact_spawn_count = packet:r_u16()
local artefact_position_offset = packet:r_u32()
-- se_zone_anom
local last_spawn_time_present = packet:r_u8()
if (string.find (name_anom, 'zone_zharka_static') ~= nil
or string.find (name_anom, 'zone_witches_galantine') ~= nil
or string.find (name_anom, 'zone_mosquito_bald') ~= nil
or string.find (name_anom, 'zone_mincer') ~= nil
or string.find (name_anom, 'zone_gravi_zone') ~= nil
or string.find (name_anom, 'zone_buzz') ~= nil )
and packet:r_elapsed() ~= 0 then
abort("left=%d", left)
end
---------------------------save--------------------
-- cse_alife_object
packet:w_begin(game_vertex_id)
packet:w_float(distance)
packet:w_u32(direct_control)
packet:w_u32(level_vertex_id)
object_flags = bit_not(193)
packet:w_u32(object_flags)
packet:w_stringZ(custom_data)
packet:w_u32(get_story_id_not_replay())
packet:w_u32(get_story_id_not_replay())
-- cse_shape
packet:w_u8(1) -- количество фигур
packet:w_u8(0) -- тип фигуры: сфера
packet:w_vec3(vector():set(0, 0, 0))
if radius_anom ~= nil then
packet:w_float(radius_anom)
else
packet:w_float(1.0)
end
-- cse_alife_space_restrictor
packet:w_u8(restrictor_type)
-- cse_alife_custom_zone
if power_anom ~= nil then
packet:w_float(power_anom)
else
packet:w_float(max_power)
end
packet:w_u32(owner_id)
packet:w_u32(enabled_time)
packet:w_u32(disabled_time)
packet:w_u32(start_time_shift)
-- cse_alife_anomalous_zone
packet:w_float(offline_interactive_radius)
packet:w_u16(artefact_spawn_count)
packet:w_u32(artefact_position_offset)
-- se_zone_anom
packet:w_u8(last_spawn_time_present)
------------------------read------------------------
packet:r_seek(0)
obj:STATE_Read (packet, packet:w_tell())
end