Перейти к содержанию

Рекомендуемые сообщения

 
 

Mervin62 Вы меня переоцениваете, я не специалист во многих областях и даже урок, который как мне кажется вы имеете ввиду не мой.
Могу лишь сказать, что когда мне стала интересна эта тема я ориентировался на многие источники, в частности очень много подчерпнул из мода SGM, где было довольно много самых разных дополнительных GUI-элементов, а очень много пришлось исследовать самому. Большим подспорьем в качестве справочной информации стала статья на amk-team которая так и называется "GUI Интерфейсы".


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
44 минуты назад, denis2000 сказал:

Вы меня переоцениваете

Не сколько, если вам дать ресурсы, думаю вы разберётесь на раз.


Дополнено 38 минуты спустя
1 час назад, denis2000 сказал:

я не специалист

Могу поспорить если вам интересна данная тема.


Адаптации ганслингера на моды зов припяти
Всегда на связи в телеге @Mervin62

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Нужна небольшая помощь с разъяснением. Имеется вот такая вот строчка для моего скрипта.

local sun_settings = weather.get_value_vector("sun_color")

По lua_help она выглядит так:

function get_value_vector(string)

Я немного не понимаю, что именно она мне выдает и в каком виде? По сути, должна выдавать числа.
Если пытаюсь вставить ее в сообщение через news_manager для вывода в игре, то ловлю вылет.
Пытался и через tostring конвертировать и через printf выводить, но тоже получал вылет...
Не особо прошаренный в LUA, поэтому, наверняка, не понимаю очевидного.
Как мне увидеть полученные значения и, еще лучше, вывести на экран через news_manager?

Спойлер

FATAL ERROR
 
[error]Expression    : <no expression>
[error]Function      : CScriptEngine::lua_error
[error]File          : ..\xrServerEntities\script_engine.cpp
[error]Line          : 191
[error]Description   : fatal error
[error]Arguments     : LUA error: No such operator defined
 
stack trace:

 

 

Изменено пользователем Detron

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, Detron сказал:

No such operator defined

Смотри 9 вариант


EaRLNb6.gif
AMD FX-8370 (8 X 4.35GHz); RAM 16Gb; MSI GTX 1070 (8Gb).
Windows -10 PRO (х64)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, WolfHeart сказал:

Смотри 9 вариант

Я знаю что значит эта ошибка. Я прошу объяснить как правильно вывести полученное.
Ошибка вылезает только когда пытаюсь вывести, т.к. я делаю это неправильно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
7 часов назад, Detron сказал:

function get_value_vector(string)

Во первых в оригинале нет такой функции, во вторых вызов движковой функции делается не так.
В вашем примере это вызов скриптовой функции get_value_vector из файла weather.script с передачей текстового параметра.

Изменено пользователем denis2000

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Mervin62 простенький вот http://old.ap-pro.ru/forum/104-9830-1 Сам принцип понять, как делать, остальные классы на примерах в модах проще будет разобрать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
В 23.09.2022 в 12:41, denis2000 сказал:

Во первых в оригинале нет такой функции

Да, все верно, это из Anomaly, но не суть.

В 23.09.2022 в 12:41, denis2000 сказал:

во вторых вызов движковой функции делается не так

Разве level.get_time_hours() не считается движковой? Ведь я использую с ней такой же метод и все работает!
И не только get_time_hours(), но и другие для level. А это, вроде бы как, движковая функция, в моем понимании. Но с weather.get_value_vector() облом... Хотя с weather.get_value_numric() тоже работает. В любом случаи, хотел бы поинтересоваться у знающего человека, как правильно делать вызов движковых. Буду очень благодарен!

Изменено пользователем Detron

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
1 час назад, Detron сказал:

Да, все верно, это из Anomaly, но не суть.

Классное заявление! Но мы то не телепаты и не знаем какой движок вы используете. Это ваша задача сообщать о таком.

1 час назад, Detron сказал:

Разве level.get_time_hours() не считается движковой?

Это глобальная движковая функция из пространства имен level. Эти функции выделены в специальную группу (см. lua_help.script ключевое слово namespace), вызываются точно как и скриптовые, но имеют четкую конструкцию:

namespace.function_name(parametrs)

В оригинале namespace = "", level, relation_registry, main_menu, game, actor_stats
Как видите в оригинале нет никакого weather.

Как искать причину: берете исходники вашего движка, открываете файл "xrServerEntities\script_engine.cpp", идете к строке 191 смотрите на причину вылета "No such operator defined", по коду пытаетесь выяснить, что именно не определено.

Опять таки в оригинале код из этого файла отвечает за вызов скриптовых функций!

Изменено пользователем denis2000

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

denis2000 спасибо большое за разъяснение, хоть это я и знал. Но все равно спасибо!
Ну а команда все же выводит числа, но в таком вот странном виде:

[0.00833930168:0.00833930168:0.00833930168]

Именно поэтому выдавало вылеты. Как это можно перевести в string или просто привести в нормальный вид?
Чтобы это можно было записать и вывести хоть куда-то кроме консоли. Ума не приложу.

Изменено пользователем Detron

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

доброго всем здоровья!
ребята помогите кто по курсам...
есть офигенная мододел, придумала интересную фичу для игры...
игра: DA  
фича с зажигалкой...
условие: -> использование зажигалки->включение анимации зажигалки + анимация огня + включение освещения...
дополнительное условие...
в зажигалке нет бензина! -> использование зажигалки -> минус анимация, огня,  но!!!
не удалено включение освещения...
в данной функции кто-то забыл зделать  запрет для действия "включение освещения"...
нарисуйте пожалуйста как дорисовать дополнительную функцию для действия...
я думаю вы знаете к кому надобно отправить ваши идеи...

Изменено пользователем Bro_dyaga

"Нет утверждения лучше, чем неоспоримый факт"® 

Хобби: «люблю рисовать»

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Detron Ну так функция очевидно возвращает вектор и работать с ним нужно соответственно как с вектором.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
12 часов назад, Bro_dyaga сказал:

в данной функции кто-то забыл зделать  запрет для действия "включение освещения"...
нарисуйте пожалуйста как дорисовать дополнительную функцию для действия...

Очень странная формулировка, не уверен, что правильно понял. Так или иначе, за работу с динамическими источниками освещения (фонарь, фары машин, подсветка аномалий и т.п.) отвечает движковой класс ref_light. Учитывая, что исходный код DA закрыт, могу лишь предположить, что зажигалка для освещения использует объект этого класса, а его дальность/яркость просчитывается в виртуальном методе UpdateCL, в зависимости от объёма сохранившегося топлива. Веду к следующему: если программисты DA заблаговременно не экспортировали скриптовые функции для работы с условным CLigther (остаётся лезть в lua_help.script, а также искать следы работы с зажигалкой в других скриптах) - осуществить желаемое без движковых правок не является возможным (сорцов нет, а реверс-инженера для таких целей Вы вряд ли найдёте).
P. S.: Возможно речь идёт не о самом освещении, а о партиклах огня, которые начинают отыгрываться на активной зажигалке. Ситуация примерно та же - смотреть в скрипты, искать следы вызова партиклов для худовых объектов, если нет нужного - у-вы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

здравствуйте, подскажите пожалуйста проверку на то, что сквад заагрен на игрока или на то, что сквад в состоянии боя 

Изменено пользователем Emmis

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
25 минут назад, Emmis сказал:

здравствуйте, подскажите пожалуйста проверку на то, что сквад заагрен на игрока 

нашел - xr_conditions.fighting_actor

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
6 часов назад, denis2000 сказал:

Detron Ну так функция очевидно возвращает вектор и работать с ним нужно соответственно как с вектором.

Наверное очевидно, что я не знаю как перевести вектор в стринг. Но подсказать способ очень сложно, тем более знающему человеку, верно? Думаю, кто-то, очевидно, будет тоже заниматься подобным и зайдет в тупик. Вот вам ответ:

local sun_temp = weather.get_value_vector("sun_color")
printf(string.format("%s,%s,%s",sun_temp.x,sun_temp.y,sun_temp.z))

Надеюсь, кому-то помогу. Наверное, первый раз, когда я потратил 2 дня, чтобы разобраться, а не 20 минут.

Изменено пользователем Detron

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Как прописать отсутствие какого-либо урона при ношения определенного артефакта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

BASE1707 вы скорее всего правы и зделать фичу с отключением освещения во время включения условия(отсутстие топлива) невозможно...
просто на данный момент ЗБТ есть то что есть...
...при отсутствии топлива в зажигалке анимация руки с зажигалкой есть, анимация огонька зажигалки выключена, но освещение пространства вокруг ГГ осталось...
выглядит кринжово...
хотелось бы выключить освещение пространства, если никак, то скорее всего надо предложить автору фичи забить на эту фичу😎...


"Нет утверждения лучше, чем неоспоримый факт"® 

Хобби: «люблю рисовать»

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Крим У артов есть параметр hit_absorbation_sect который отсылает к секции поглощения урона артефактом при ношении на броне. Вот там и нужно повышать значения параметров.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
12 часов назад, Крим сказал:

Как прописать отсутствие какого-либо урона при ношения определенного артефакта?

в сталкере есть много вариантов получения урона, и наносимые хиты, которые делятся на разные типы, и урон который наносится при накоплении определенных доз радиации, и урон от кровотечения, и скриптовые уроны в различных файлах скриптов ,если ты хочешь чтоб артефакт прям давал полную неуязвимость надо всю эту защиту прописывать в св-вах артефакта.

11 часов назад, Bro_dyaga сказал:

хотелось бы выключить освещение пространства

может как вариант переделать зажигалку на класс фонарика, в ДА же есть фонарик, которые работает от батареек, здесь по аналогии сделать, что зажигалка как фонарик, а топливо как батарейки, и тогда если топлива нет - зажигалка просто не будет работать/не будет экипироваться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

Приветствую всех! У меня возникла проблема: Как сделать чтобы после диалога НПС вместе с ГГ начал движение к какой-то точке. Можете подробно написать, чтобы всё было понятно!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
22 часа назад, Крим сказал:

Как прописать отсутствие какого-либо урона при ношения определенного артефакта?

В СоР измените вот эти параметры в нужном для вас артефакте. Пропишите им всем или только их части  значение   = 1.0

Но не более единицы, так  их параметры уйдут в отрицательные значения, то есть вы будете получать дополнительный урон от соответствующей аномалии 

burn_immunity            
strike_immunity         
shock_immunity             
wound_immunity             
radiation_immunity         
telepatic_immunity         
chemical_burn_immunity     

В ShoC наоборот нужно прописать значение  = 0 ,  но не отрицательные значения, которые будут действовать по аналогии,  как в СоР  preach.gif.544395109aeb13a1dab8e4909d1e95db.gif 

Изменено пользователем Викт

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 

SoDizzari Логика walker приведена для примера. Задавать логику нужно через кастом-дату персонажа.

[walker@1] ;Ожидаем диалог
on_info = {+Инфопорция_из диалога_бежать_за_ГГ} companion

[companion] ;Бегаем за ГГ
on_info = {+Инфопорция_НЕ_бежать_за_ГГ} walker@2

[walker@2] ;Больше не бегаем за ГГ

 

Изменено пользователем denis2000

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
15 часов назад, CiberZold сказал:

переделать зажигалку на класс фонарика

по логике просто, я это уже предлагал автору, в действительности надо переписать исполняющий скрипт и кучу конфигов, а в конвигах автор не силён...


"Нет утверждения лучше, чем неоспоримый факт"® 

Хобби: «люблю рисовать»

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
 
5 часов назад, Bro_dyaga сказал:

надо переписать исполняющий скрипт и кучу конфигов

ну да, но мне кажется в этом проще разобраться, поправить скрипт и конфиги по аналогии с фонариком и батарейками, чем править движок, тем более на который нет исходников в свободном доступе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн