Купер 2 995 Опубликовано 11 Июля 2021 @Шипэтя , модельки и конфиги в студию. Ничего там секретного нет, думается. Alex5773 @☆☆☆☆☆ абсолютно прав. 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 26 Июля 2021 Вопрос к профи, академический. Дано: некий набор "настроечных" переменных. Возможное место инициализации (условно): 1. game_option.script (в скрипте) 2. gаme_option.ltx ( в конфиге) Есть ли какая-либо существенная разница между 1/2 при считывании с т.з. быстродействия/нагрузки или всё укладывается в пределы статистической погрешности? T.e. как всё-таки лучше делать? Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 27 Июля 2021 @AndreySol , правильно уловил нюанс: в отличии от содержимого .ltx (с инклудом в system), которое считывается единожды при "холодном старте" (запуске игры)? 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 9 Августа 2021 @Olamawai, глянь принцип. (с) @macron Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 16 Августа 2021 (изменено) @kenguru , "классика жанра" db.actor.health = -dh --dh - дельта здоровья за один тик. @Olamawai, гранаты, НПС, чистый ТЧ... От нас что-то скрывают! Изменено 16 Августа 2021 пользователем Купер 1 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 26 Августа 2021 X-Ray extensions. Движковый вылет в процессе диалога: stack trace: 001B:0076105B xrLUA.dll 001B:0396ED92 xrGame.dll 001B:0393BAAC xrGame.dll Это оно, или? 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 31 Августа 2021 Други, надоумьте. Что-то подзабылось. 1. Логика прожектора штатно поддерживает возможность вкл/выкл? 2. Направление, куда посмотреть в плане реализации, откуда можно добропорядочно слямзить? Откровенно говоря, лениво разбираться с велосипедами. 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 2 Сентября 2021 Скрытый текст "...В более старых движках, потребуется читать нетпакет объекта" Вот, справедливости ради. X-Ray Extensions: if obj.get_visual_name then visual_name = obj:get_visual_name() end Вполне себе мирно существует. Зачем обижать почтенную классику? 2 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 12 Сентября 2021 19 часов назад, UriZzz сказал: Мож что в x-ray ext есть??? @UriZzz, heal_wounds(float). @DarkSnowder , отрицательный хит попробовать? Хотя, далеко не факт... Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 16 Сентября 2021 X-Ray Extensions. При переходе между конкретными локациями движок крашит: Скрытый текст stack trace: 0023:05355AF0 xrGame.dll 0023:00423CF5 XR_3DA.exe, IInputReceiver::IR_OnDeactivate() 0023:76B25DAA USER32.dll 0023:76B25487 USER32.dll 0023:76B11F8B USER32.dll 0023:757D9259 d3d9.dll 0023:76B2EDEB USER32.dll 0023:76B25DAA USER32.dll 0023:76B259AA USER32.dll 0023:76B2956F USER32.dll 0023:77BA4E7D ntdll.dll 0023:00DC8728 BugTrap.dll 0023:00DC6BDB BugTrap.dll, BT_MakeSnapshot() 0023:00DC6C25 BugTrap.dll, BT_SehFilter() 0023:779BEA92 KERNELBASE.dll 0023:77BD4883 ntdll.dll 0023:77B97A4E ntdll.dll [error][ 1400] : Недопустимый дескриптор окна. Никто не сталкивался? В какую сторону пробовать копать? 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 16 Сентября 2021 (изменено) Отнюдь. Это те, которые конкретные. Поучусь, пожалуй, правильно формулировать вопросы. Net_packet level_changer-а: Скрытый текст function create_level_changer(p_story_id, p_position, p_lvertex_id, p_gvertex_id, p_dest_lv, p_dest_gv, p_dest_pos, p_dest_dir, p_dest_level, p_silent) local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id) --level.map_add_object_spot(obj.id, "level_changer", "") local packet = net_packet() obj:STATE_Write(packet) local game_vertex_id = packet:r_u16() local cse_alife_object__unk1_f32 = packet:r_float() local cse_alife_object__unk2_u32 = 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() local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then local center = packet:r_vec3() local radius = packet:r_float() else local axis_x_x = packet:r_float() local axis_x_y = packet:r_float() local axis_x_z = packet:r_float() local axis_y_x = packet:r_float() local axis_y_y = packet:r_float() local axis_y_z = packet:r_float() local axis_z_x = packet:r_float() local axis_z_y = packet:r_float() local axis_z_z = packet:r_float() local offset_x = packet:r_float() local offset_y = packet:r_float() local offset_z = packet:r_float() end end local restrictor_type = packet:r_u8() local dest_game_vertex_id = packet:r_u16() local dest_level_vertex_id = packet:r_u32() local dest_position = packet:r_vec3() local dest_direction = packet:r_vec3() local dest_level_name = packet:r_stringZ() local dest_graph_point = packet:r_stringZ() local silent_mode = packet:r_u8() packet:w_begin(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_u32(cse_alife_object__unk2_u32) packet:w_u32(level_vertex_id) packet:w_u32(bit_not(193)) packet:w_stringZ(custom_data) packet:w_u32(p_story_id) packet:w_u32(spawn_story_id) packet:w_u8(1) packet:w_u8(1) packet:w_float(2) packet:w_float(0) packet:w_float(0) packet:w_float(0) packet:w_float(4) packet:w_float(0) packet:w_float(0) packet:w_float(0) packet:w_float(4) packet:w_float(0) packet:w_float(0) packet:w_float(0) packet:w_u8(3) packet:w_u16(p_dest_gv) packet:w_u32(p_dest_lv) packet:w_vec3(p_dest_pos) packet:w_vec3(p_dest_dir) packet:w_stringZ(p_dest_level) packet:w_stringZ("start_actor_99") packet:w_u8(p_silent) packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) end Вызывается: Скрытый текст function level_to_level_dest() create_level_changer(story_id, vector():set(x, y, z), l_vid, g_vid, l_vid_dest, g_vid_dest, vector():set(x, y, z),vector():set(x, y, z),"level_name_dest", silent_mode) end При установке silent_mode = 1 Скрытый текст stack trace: 001B:03BE5AF0 xrGame.dll 001B:00423CF5 XR_3DA.exe, IInputReceiver::IR_OnDeactivate() 001B:00412076 XR_3DA.exe, CApplication::OnEvent() 001B:004BAE80 XR_3DA.exe, CEvent::Signal() [error][ 183] : Невозможно создать файл, так как он уже существует. При размещении в all.spawn - лог выше. Мда, и менторы притихли... Какая незадача. Переход с добавленной локации на стандартную. Изменено 17 Сентября 2021 пользователем Купер Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 19 Сентября 2021 @КрИвОй БоБ тут и дальше. Общий принцип. Кто-то из разработчиков во времена оны выкладывал. Не факт, что для актуального патча, но принцип понятен: ACDC НС-16. 3 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 21 Сентября 2021 @mmindwork , именно скриптовый? В движок OGSR добавлена консольная команда: jump_to_level <level_name> -- быстрый переход на нужный уровень. Не настолько удобно по сравнению со скриптовыми реализациями, но в качестве "эрзаца", не требующего адаптации - вполне. тынц 1 1 2 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 21 Сентября 2021 @I am Dead , да были, конечно. Просто для "местных условий" Солянки адаптация может оказаться весьма затратным делом. В общем, в зависимости от задач. @mmindwork тут и дальше, тут посмотри. Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 4 Октября 2021 (изменено) 1. Заспаунить прибор в инвентарь протагониста любым известным способом (скрипт, диалог, etc...) 2. Поместить прибор в слот. 3. Нажать клавишу активации соответствующего слота. 4. Потыкать по нужным вкладкам,кнопочкам и чекбоксам в открывшемся GUI прибора. Товарищи сталкеры, просветите на предмет следующего: У живых объектов (сталкеры, мутанты, гг) присутствует параметр morale, который используется в связке с panic_threshold для переключения в режим паники и обратно (насколько знаю). А какова механика расчёта morale? Т.е., какие факторы при этом учитываются, с каким приоритетом и т.п. Изменено 4 Октября 2021 пользователем Купер Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 4 Октября 2021 @I am Dead , вот шут его знает, поэтому и полез спрашивать. panic_threshold, по крайней мере, вроде как работает, значит с чем-то должен сравниваться. А с чем? Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 23 Октября 2021 (изменено) @Капрал Хикс , оно, по идее, в релизе здесь зашито: encyclopedia_item.xml -> <encyclopedia_wnd> <image x="170" y="0" width="5" height="5" stretch="1"/> </encyclopedia_wnd> Т.е. как-то исхитриться текстуру с обводкой добавить. Изменено 24 Октября 2021 пользователем Купер 1 1 Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 24 Октября 2021 (изменено) @SloYka , ... section_name = level_changer name = exit_escape_01 и, соответственно exit_escape_02 ... ENDstory_id = X <- тут Изменено 24 Октября 2021 пользователем Купер Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 25 Октября 2021 @SloYka , story_id = 98 - вот это число должно быть уникальным. Нигде дубликатов нет? Поделиться этим сообщением Ссылка на сообщение
Купер 2 995 Опубликовано 26 Октября 2021 @SloYka , level.spawn в студию. Не секретный, чай. Кто-нибудь окинет свежим взлядом, глядишь, что и посоветует толковое. Гадать можно очень долго. 2 Поделиться этим сообщением Ссылка на сообщение