Карлан 1 049 Опубликовано 17 Июля 2016 Поделиться Опубликовано 17 Июля 2016 @Kondr48, это же очевидно: SetHighlightColor и SetTextColor идентичны, только аргументы принимают по разному, первый жрет GetARGB (в данном контексте совершенно не ясно зачем), а второй напрямую. SetColor как раз красит сам статик. SetColorAll предполагалось, что должен красить и детей тоже, но не красит, так что методы тоже идентичны . Оговорюсь, что я веду речь о CUIStatic. Второй вопрос: кнопку достаточно скрыть, примерно так: self.btn_yes:Hide(), если хочется непременно удалить, то ее надо отцепить от парента (DetachChild), только в этом случае советую еще поглядывать за сборщиком мусора, так как может все достаточно печально закончиться, особенно если имеешь дело с каким-нибудь динамическим статик-боксом. P.S. Предупрежу, что мои советы не всегда могут быть применимы для стандартных исходников, так как некоторые части у меня достаточно сильно переписаны. 1 Ссылка на комментарий
naxac 2 445 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 (изменено) @Kondr48, если ты хочешь изменить цвет кнопки, чтобы видно было, что она нерабочая, то достаточно сделать копку на классе CUI3tButton (если через xml, то это xml:Init3tButton) и покрасить нужным цветом текстуру *_d кнопки. А потом просто: button:Enable(false). Окно подсказки к кнопке (hint) скриптово на чистом движке сделать не получится. Изменено 18 Июля 2016 пользователем naxac 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
SkyLoader 53 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 метод называется SetColor (также SetColorAll), а не SetHighlightColor. Говорилось о том, что видимых изменений не было. Я лишь указал на некорректное использование метода SetHighlightColor. Существуют ли методы, чтобы повернуть статик на определенный угол? Есть соседняя тема X-Ray extensions. В этом проекте был добавлен такой метод. Ссылка на комментарий
Overfirst 630 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 Есть таблица с кучей поршней. Как сделать выдачу поршня или что ещё, если из этой таблицы имеем более, к примеру, 20-ти поршней? Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Kondr48 314 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 BoBaH_671, не совсем понятен смысл. Вот так, например, можно выдать из таблицы рандомный поршень, которого у ГГ еще нету. local enciclopedy_list = { "encyclopedy_zone_artifact_af-medusa", "encyclopedy_zone_artifact_af-cristall-flower", ... "encyclopedy_tutorial_diary" } local flag = false while flag == false do statja_for_pda = enciclopedy_list[math.random(table.getn(enciclopedy_list))] if not has_alife_info(statja_for_pda) then db.actor:give_info_portion(statja_for_pda) flag = true end end 1 Ссылка на комментарий
Overfirst 630 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 @Kondr48, да что ж меня никто с первого раза не понимает! Я ж сказал: имеем таблицу, в ней - много поршней. Как сделать проверку, что из этой таблицы мы имеем 20 поршней. ЛЮБЫХ поршней. Ранее был известен под ником BoBaH_671. Ссылка на комментарий
Kondr48 314 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 (изменено) local enciclopedy_list = { "encyclopedy_zone_artifact_af-medusa", "encyclopedy_zone_artifact_af-cristall-flower", ... "encyclopedy_tutorial_diary" } local kolvo = 0 for i = 1, #enciclopedy_list, 1 do if has_alife_info(enciclopedy_list) then kolvo = kolvo + 1 end if kolvo >= 20 then -- мы имеем 20 инфопоршней из списка, на радостях дадим поршень db.actor:give_info_portion("Радостный поршень") break end end Изменено 18 Июля 2016 пользователем Kondr48 2 1 Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 (изменено) Такая проблема - нужна заселить специальными дин.аномалиями специальную локацию для мода. Базируюсь на OGSM, начал ковырять алгоритм спавна, возник вопрос - как получают координаты x,y,z для спавна? В скриптах о них не слова! Рандомно генерировать числа не прокатит, будет каша со спавном, да и бред это малость... Но тогда, как? Открыл скрипт из simbion мода, вгляделся... Мы получаем все аномалии на уровне, и заменяем их на... Свои!?! Нет, серьезно, я заметил открытие таблицы db.anomalies и передачу координат всех аномалий в ф-ю спавна. Но блин, тут рандомность тогда только в секциях аномалий... Возможно выше я и бред сказанул, но понял код - как смог. Обьясните недалекому, как же идет рандомная генерация именно координат пространства, с game v. и level.v я разобрался... P.S Посмотрел скрипты от dsh - там идет получение позиций НПЦ... Мда... Жду дядек, которые развеят туман... Изменено 18 Июля 2016 пользователем CRAZY_STALKER666 Не соответствует правилам. Ссылка на комментарий
Kondr48 314 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 CRAZY_STALKER666, как вариант генерить рандомные числа в пределах локации. То есть задать некое ограничение по x, y, z. А вообще насколько я знаю в судьбе зоны можно посмотреть. 1 Ссылка на комментарий
dsh 3 824 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 (изменено) гы, позиции нпс... Позиции нпс там используются, что бы не генерировать на их месте аномалии. @CRAZY_STALKER666, выбираешь случайный левел вертекс. У него, соотв. методом, можно получить позицию, т.е. те самые координаты. Потом методом подбора находишь ближайший гейм вертекс. В процессе всего этого производишь проверки на неподходящие позиции/вертексы и игнорируешь их. И так до тех пор, пока не получится то, что можно использовать. Изменено 18 Июля 2016 пользователем dsh 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 18 Июля 2016 Поделиться Опубликовано 18 Июля 2016 @dsh, ого,и не знал что из level v можно получить координаты! Метода этого, к сожалению не нашел, у вас очень много функций на файлах из репозитория... Для себя решил делать так(не лучший вариант, но как умею) - получаю координаты всех аномалий. К их х,у,зэд прибавляю какие нибудь числа, и спавню то что нужно. А заранее можно, расставить аномалии-точи вокруг которых будет спавн мои спец.аномалий. Как по мне - вроде не костыль получился Не соответствует правилам. Ссылка на комментарий
naxac 2 445 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 @CRAZY_STALKER666, позиция вертекса на текущем уровне: level.vertex_position(int <level_vertex>) Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Zander_driver 10 333 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 выбираешь случайный левел вертекс. У него, соотв. методом, можно получить позицию, т.е. те самые координаты. Потом методом подбора находишь ближайший гейм вертекс Фу, это же в точности так же как в "Судьбе Зоны". А в ней, со слов вопрошающего будет каша со спавном, да и бред это малость... Не, в данном случае не годится. Надо все горбато, топорно и костыльно сделать. 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Sla-Sla 43 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 Всем доброго утра, у меня вопрос: каким образом в ЗП можно назначить текст кнопке с помощью скрипта? Кнопка на классе CUIButton, но для этого класса нет метода SetText. Ссылка на комментарий
Winsor 177 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 Уважаемые знающие, столкнулся с такой проблемой при использовании m_netpk. При чтении нетпакета, например, для cse_alife_inventory_item поле num_items иногда становиться равным 255, что влечет за собой чтение далее битых данных. при этом r_eof()==false, т.е. данные в пакете еще есть, но m_netpk пытается вычитать их больше, чем они там есть. сталкивался ли кто с таким? Благодарю за информацию. Ссылка на комментарий
naxac 2 445 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 каким образом в ЗП можно назначить текст кнопке с помощью скрипта? button:TextControl():SetText("text") 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Kirgudu 1 207 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 @Winsor, а почему ты думаешь, что данные там битые? В зависимости от значения num_items наполнение нет-пакета может меняться. Подробнее, например, здесь. Инструмент Ссылка на комментарий
Winsor 177 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 (изменено) @Winsor, а почему ты думаешь, что данные там битые? В зависимости от значения num_items наполнение нет-пакета может меняться. Подробнее, например, здесь. Ну... я в курсе что наполнение может изменяться. Пример: cse_alife_inventory_item - 99% процентов этих итемов , которые лежат в инвентори у ГГ - имеют num_items=0. т.е. полей ph_position, ph_rotation и иже с ними не имеют. но у 1-го процента итемов из инвентори случайным образом num_items==255, , и при попытке прочитать log("before "..prop.name.." "..prop.type) ret.upd[prop.name] = this["_r_"..prop.type](pk, prop.ver) log("after "..prop.name.." "..prop.type.." "..ret.upd[prop.name]) получаем такой лог: m_netpk:before num_items h8 m_netpk:after num_items h8 0 m_netpk:before num_items h8 m_netpk:after num_items h8 225 m_netpk:before ph_position f32v3 в инвентари два итема одного и того же класса. отличаются визуалом и описанием. первые две строки - все хорошо. далее num_items==255 и при попытке прочитать вектор ph_position - чтение за границы нетпакета, само собой данные в этом векторе уже считать достоверными нельзя. Вот я и хочу понять - почему num_items == 255 у итема у которого он должен быть 0. p.s. ну и у таких итемов после такого чтения r_elapsed < 0 - это ли не признак чтения за границу (elapsed=packet_size-read_position) ? Изменено 19 Июля 2016 пользователем Winsor Ссылка на комментарий
Kirgudu 1 207 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 @Winsor, трудно сказать, я с таким не сталкивался. Собственно, в netpk до сих пор могут быть баги. Artos до момента своего исчезновения сам периодически находил в своих модулях и правил ошибки, да и последняя версия модулей, что лежит в «Сборочном цехе», тоже подверглась небольшим исправлениям по сравнению с оригиналом автора. Не исключено, что ты столкнулся с ещё не обнаруженной до сих пор ошибкой. Инструмент Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 19 Июля 2016 Поделиться Опубликовано 19 Июля 2016 (изменено) Такая проблема - вылетает без лога при переходе на новую секцию walker. До этого стоит на ней же но с другими путями, в всё хорошо, на поршне стоит переход дальше. Так вот, включив расширенный лог, последнее что увидел - это: ! Unknown command: _bp:_path_parse_waypoints:_pathname='dvl_killer_sold_2_w_w' * Log file has been saved successfully! ! Unknown command: _bp:_path_parse_waypoints:_pathname='dvl_killer_sold_2_w_l' Скидываю сам путь, ибо сам ошибок там не вижу... [dvl_killer_sold_2_w_w] points = p0 p0:name = wp00|a=sneak p0:flags = 0x100000 p0:position = 13.112729072571,0.02946949005127,19.782325744629 p0:game_vertex_id = 1012 p0:level_vertex_id = 189984 [dvl_killer_sold_2_l_l] points = p0 p0:name = wp00|a=sneak p0:flags = 0x100000 p0:position = 12.578974723816,0.15864041447639,1.6857631206512 p0:game_vertex_id = 1015 p0:level_vertex_id = 189053 Изменено 19 Июля 2016 пользователем CRAZY_STALKER666 Не соответствует правилам. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти