naxac 2 447 Опубликовано 29 Мая 2019 Поделиться Опубликовано 29 Мая 2019 Привет. Товарищи, кто пробовал вывести CUIScrollView одними скриптами без xml в ТЧ? Может, у кого вышло? Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
AndreySol 215 Опубликовано 29 Мая 2019 Поделиться Опубликовано 29 Мая 2019 3 часа назад, naxac сказал: CUIScrollView одними скриптами Ну, судя по набору экспортированных ф-ций, всего достаточно для создания скриптами этого контрола. В чем проблема ? Ссылка на комментарий
naxac 2 447 Опубликовано 29 Мая 2019 Поделиться Опубликовано 29 Мая 2019 @AndreySol, проблема в том, что при AddWindow в такой скролл весь гуй виснет. Можешь привести рабочий пример, может, я что-то не так делаю? Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
lordmuzer 743 Опубликовано 29 Мая 2019 Поделиться Опубликовано 29 Мая 2019 @naxac попробуй вместо AddWindow делать AttachChild Ссылка на комментарий
naxac 2 447 Опубликовано 29 Мая 2019 Поделиться Опубликовано 29 Мая 2019 @lordmuzer, нет, тогда окно не добавится в скроллбар, а просто статически приаттачится к контролу, т.е. прокрутить его нельзя будет. Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
lordmuzer 743 Опубликовано 29 Мая 2019 Поделиться Опубликовано 29 Мая 2019 (изменено) Точно, туплю. Как раз для CUIScrollView нужно делать AddWindow А как именно виснет ? Высота есть у всех UI элементов ? И работает ли если CUIScrollView инитить из xml в таком случае. Изменено 29 Мая 2019 пользователем lordmuzer Ссылка на комментарий
naxac 2 447 Опубликовано 29 Мая 2019 Поделиться Опубликовано 29 Мая 2019 @lordmuzer, если делать с xml, то всё работает, да. Виснет на том месте, где делаю AddWindow (list, true), по-тихому, без вылета, просто окно не показывается совсем. Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 29 Мая 2019 Поделиться Опубликовано 29 Мая 2019 Тот же вопрос по счетчику хилок… Потестил оригинальный мод – после 3-й или 4-й загрузки (не важно, один сейв или разные) случается безлоговый вылет. Судя по результатам частичного исключения кода, ошибка все-таки не в таблице, а в выводе статиков. Знаю, что мод написан еще под ТЧ 1.0004 – может, с тех пор что-то поменялось в способе вывода? В текущей версии (Steam 1.0006) повыключал все скриптовые моды, и все равно вылет после нескольких загрузок. Кто-нибудь, попробуйте повесить у себя на апдейт оригинальный мод (hud_med) – случается ли вылет? Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
lordmuzer 743 Опубликовано 30 Мая 2019 Поделиться Опубликовано 30 Мая 2019 @naxac если есть возможность - скинь скрипты. Аж интересно стало. У меня в скриптах есть AddWindow - ничего не зависает. Ссылка на комментарий
AndreySol 215 Опубликовано 31 Мая 2019 Поделиться Опубликовано 31 Мая 2019 @naxac Если еще интересно, насчет CUIScrollView, то глянул я в исходники: при скриптовом создании конторла не вызывается метод Init. Соответственно, имеем зависание\вылет при вызове AddWindow. 1 Ссылка на комментарий
Norman Eisenherz 316 Опубликовано 4 Июня 2019 Поделиться Опубликовано 4 Июня 2019 (изменено) Здрасьте. Можно ли проверить наличие открытых диалоговых окон без перебора инфо-поршней ui_…? Видел упоминания о функции level.main_input_receiver, но где бы найти пример ее использования (кроме закрытия текущего окна через GetHolder():start_stop_menu)? Может, просто есть какая-то проверка на отображение HUD? Изменено 4 Июня 2019 пользователем Norman Eisenherz Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
naxac 2 447 Опубликовано 5 Июня 2019 Поделиться Опубликовано 5 Июня 2019 @Norman Eisenherz, проверка того, что все движковые окна закрыты: if level.main_input_receiver() == nil then Цитата проверка на отображение HUD? В X-Ray Extensions для этого есть функция level.has_indicators(). В обычной ТЧ вроде никак не проверить. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
AndrewMor 527 Опубликовано 6 Июня 2019 Поделиться Опубликовано 6 Июня 2019 (изменено) Всем привет, возник вопрос. Спавню скриптово аномалии (всякие Жарки, Электры и прочие). Код спавна: Скрытый текст local obj = alife():create(section, pos, lv, gv) local rad_new_anom = math.random(2,4) create_anom(obj, rad_new_anom, "anom_on) function create_anom(p_obj, rad_anom, mode) local packet = net_packet() p_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_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local cse_alife_object__unk3_u32 = packet:r_s32() 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 box = packet:r_matrix() end end local restrictor_type = packet:r_u8() local cse_alife_custom_zone__unk1_f32 = packet:r_float() local cse_alife_custom_zone__unk2_u32 = packet:ru8( _s32() local on_off_mode_enabled_time = packet:r_s32() local on_off_mode_disabled_time = packet:r_s32() local on_off_mode_shift_time = packet:r_s32() local offline_interactive_radius = packet:r_float() local artefact_spawn_places_count = packet:r_u16() local cse_alife_anomalous_zone__unk1_u32 = packet:r_s32() local last_spawn_time_present = packet:r_u8() if packet:r_elapsed() ~= 0 then abort("left=%d", packet:r_elapsed()) end packet:w_u16(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_u32) packet:w_s32(level_vertex_id) packet:w_s32(object_flags) if mode~=nil then custom_data = mode end packet:w_stringZ(custom_data) packet:w_s32(story_id) packet:w_s32(cse_alife_object__unk3_u32) packet:w_u8(1) packet:w_u8(0) local sphere_center = vector() sphere_center:set(0, 0, 0) packet:w_vec3(sphere_center) radius = rad_anom packet:w_float(radius) packet:w_u8(restrictor_type) packet:w_float(cse_alife_custom_zone__unk1_f32) cse_alife_custom_zone__unk2_u32 = bit_not(0) packet:w_s32(cse_alife_custom_zone__unk2_u32) packet:w_s32(on_off_mode_enabled_time) packet:w_s32(on_off_mode_disabled_time) packet:w_s32(on_off_mode_shift_time) packet:w_float(offline_interactive_radius) packet:w_u16(artefact_spawn_places_count) packet:w_s32(cse_alife_anomalous_zone__unk1_u32) packet:w_u8(last_spawn_time_present) p_obj:STATE_Read(packet, packet:w_tell()-packet:r_tell()) return p_obj end Все прекрасно спавнится ( в данном случае в Предбаннике). Но когда дело доходит до радиации, начинается фигня. Радиация спавнится, но почему-то не в Предбаннике, а где-то между Кордоном и Болотами. См. скрин Вот в чем здесь причина? Или Радиацию надо как-то по-другому спавнить? upd: пробовал спавнить аномалии на Свалке - все то же самое. Аномалии спавнятся на Свалке, радиация - между Кордоном и Болотами. Изменено 6 Июня 2019 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
temass 0 Опубликовано 6 Июня 2019 Поделиться Опубликовано 6 Июня 2019 Приветствую всех! Подскажите пожалуйста, как заспавнить чего либо(бочки, мутни, нпс) вокруг ГГ, в радиусе ну скажем 10м.? Ссылка на комментарий
Space.Marine 466 Опубликовано 6 Июня 2019 Поделиться Опубликовано 6 Июня 2019 4 часа назад, temass сказал: как заспавнить чего либо(бочки, мутни, нпс) вокруг ГГ Повелитель Зоны от Shoker-а. Ссылка на комментарий
naxac 2 447 Опубликовано 7 Июня 2019 Поделиться Опубликовано 7 Июня 2019 (изменено) @AndrewMor, радиоактивные зоны относятся к классу cse_alife_anomalous_zone, а разные жарки, электры, воронки и т.д. - это se_zone_anom. Пакеты, соответственно, немного отличаются, у радиации нет последнего поля, которое у тебя зовётся last_spawn_time_present. Может, дело в этом? Поставь проверку перед чтением/записью local last_spawn_time_present if not packet:r_eof() then last_spawn_time_present = packet:r_u8() end ... if last_spawn_time_present then packet:w_u8(last_spawn_time_present) end А ещё вот перед этим p_obj:STATE_Read(packet, packet:w_tell()-packet:r_tell()) Нужно сначала поставить чтение пакета на начало: packet:r_seek(0) Изменено 7 Июня 2019 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
AndrewMor 527 Опубликовано 7 Июня 2019 Поделиться Опубликовано 7 Июня 2019 @naxac, Спасибо, попробую. Сталкер - наше всё! Ссылка на комментарий
AndrewMor 527 Опубликовано 7 Июня 2019 Поделиться Опубликовано 7 Июня 2019 (изменено) @naxac, Попробовал для начала вот это: Нужно сначала поставить чтение пакета на начало: packet:r_seek(0) Радиация спавнится по нужным координатам, но все без исключения аномалии перестают наносить урон. Спавнятся, на детекторе видны, но - пустышки. А вот конструкции if not packet:r_eof() then last_spawn_time_present = packet:r_u8() end ... if last_spawn_time_present then packet:w_u8(last_spawn_time_present) end сработали. Все спавнится и наносит урон, как и задумано. Спасибо за помощь, может еще кому пригодится. Изменено 7 Июня 2019 пользователем AndrewMor 1 Сталкер - наше всё! Ссылка на комментарий
AndreySol 215 Опубликовано 7 Июня 2019 Поделиться Опубликовано 7 Июня 2019 (изменено) @AndrewMor Ты бы лучше, вместо прямой работы с нет-пакетом, использовал какой-нить модуль, ну хотя бы того же Artos'а. Меньше проблем бы было... Изменено 7 Июня 2019 пользователем AndreySol Ссылка на комментарий
aka_sektor 1 476 Опубликовано 7 Июня 2019 Поделиться Опубликовано 7 Июня 2019 Подскажет кто, что нужно изменить в логике дверей бункера Сидоровича, чтобы они изначально были октрыты? [logic] active = ph_door@locked [ph_door@locked] locked = true snd_open_start = trader_door_unlock on_info = {+esc_trader_can_leave} ph_door@closed %=play_snd(device\door_servomotor)% [ph_door@closed] closed = true locked = false on_use = ph_door@open %-esc_close_door% snd_open_start = trader_door_open_start snd_close_start = trader_door_close_start snd_close_stop = trader_door_close_stop [ph_door@open] closed = false locked = false on_use = ph_door@closed on_info = {+esc_close_door} ph_door@closed snd_open_start = trader_door_open_start snd_close_start = trader_door_close_start snd_close_stop = trader_door_close_stop Discord-сервер modfaq.ru: https://discord.gg/9j42BXwB Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти