Перейти к контенту

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

Подскажите функцию проверки заряжен ли ствол, где-то было, не могу найти. Заранее спасибо.

 

Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz).
Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб).
Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge.

Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор

Ссылка на комментарий

 

 

-- если макс хп у объекта не равно -1, значит объект живой if object:max_health() ~= -1 then

А если у него нету метода max_health то вылет. Он же, объект, может оказаться чем угодно. Пачкой патронов, рестриктором, бтр-ом... мне вот кстати почему-то думается что у бтр наверное здоровье есть. И у всяких разрушаемых физ.объектов, ящиков например. А являются они живыми?

Дальше, получившийся объект бьете по голове. А если у него головы нету (он ящик например) то опять вылет.

Я бы все таки проверял по клсиду, и если клсид объекта нашелся в списке клсидов сталкеров и монстров, то проверял бы еще методом obj:alive() чтобы трупы не хитовать.


 

 

где-то было

в справочнике по функциям и классам, методы класса game_object

  • Спасибо 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.

Ссылка на комментарий

Отслеживаю наличие пушки в слоте 2(автоматы)

Скрипт вот такой, работает через bind_stalker.update()

Ну как работает, проблема в том что СМС о том что пушка в слоте - не выдаеться...

Где я не доглядел?

Сам скрипт:

 

local active_slot=db.actor:active_slot()
local active_item=db.actor:active_item()
local rifle_in_slot=db.actor:item_in_slot(2)
local rifle_contain

function check_barret()
if rifle_in_slot~=nil and rifle_contain==rifle_in_slot:section() and actor:object("wpn_vintorez") then
db.actor:give_info_portion("barret_on")
news_manager.send_tip(db.actor, "%c[25,240,25,25]wpn_vintorez ON", nil, nil, 20000)
else
db.actor:disable_info_portion("barret_on")
news_manager.send_tip(db.actor, "%c[25,240,25,25]wpn_vintorez OFF", nil, nil, 20000)
end
end

 

 

UPD1. Переписал скрипт - толку 0. Где я ошибся?)

 

local tbl_wpn = {
["wpn_vintorez"] = true
}

function check_barret()
if rifle_in_slot and tbl_wpn[rifle_in_slot:section()] then
db.actor:give_info_portion("barret_on")
news_manager.send_tip(db.actor, "%c[25,240,25,25]wpn_vintorez ON", nil, nil, 20000)
else
db.actor:disable_info_portion("barret_on")
news_manager.send_tip(db.actor, "%c[25,240,25,25]wpn_vintorez OFF", nil, nil, 20000)
end
end

 

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

Не соответствует правилам.

Ссылка на комментарий

Так попробуй:

 

function check_barret()

local rifle_in_slot=db.actor:item_in_slot(2)
if rifle_in_slot and rifle_in_slot:section() == "wpn_vintorez"  then
db.actor:give_info_portion("barret_on")
news_manager.send_tip(db.actor, "%c[25,240,25,25]wpn_vintorez ON", nil, nil, 20000)
else
db.actor:disable_info_portion("barret_on")
news_manager.send_tip(db.actor, "%c[25,240,25,25]wpn_vintorez OFF", nil, nil, 20000)
end
end

  • Спасибо 1
Ссылка на комментарий

в bind_stalker:update вызываете что? компиляцию своего скрипта?

так она один раз делается, потом скрипт уже известен движку.

вот эти переменные

local active_slot=db.actor:active_slot()
local active_item=db.actor:active_item()
local rifle_in_slot=db.actor:item_in_slot(2)

 

в нынешнем виде инициализируются только при компиляции скрипта, и больше не меняются.

  • Нравится 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.

Ссылка на комментарий

@Zander_driver, ну, это и так понятно...

У меня были вопросы только к теме неработоспособности скрипта

Не соответствует правилам.

Ссылка на комментарий

Как это Zander_driver ещё промолчал?

@CRAZY_STALKER666, Ваши выражения

это и так понятно

и

 были вопросы только к теме неработоспособности

полностью противоречат друг другу.

 

Если Вам "и так понятно", то тогда не может быть "вопросов по неработоспособности". Вам уже Zander_driver  объяснил почему, а makdm дал готовый вариант.

Ну а если есть вопросы, то Вам всё-таки не понятно.

Вы уже определитесь, в какой части Вашего высказывания сейчас находитесь?

Если всё ещё "есть вопросы по неработоспособности", то постараемся объяснить подробнее,

Изменено пользователем Nazgool
  • Спасибо 1
  • Нравится 1
  • Согласен 1
Ссылка на комментарий

@Nazgool, ммм да. Я прекрасно понял, что мне тут сказали. Готовый вариант действительно работает, за что отдельное спасибо я уже сказал...

 

Теперь вопрос новый - по какой причине диалоги у всех НПЦ могут так сказать зависнуть - т.е нажимаешь допустим "до встречи" но просто ничего не происходит. И так со всеми. Кнопка Торговать работает...

Не соответствует правилам.

Ссылка на комментарий

функция break_dialogs которая выполняет прекращение диалога в фразе "до встречи", находится в файле dialogs.script

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

 

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

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

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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.

Ссылка на комментарий

@Zander_driver, не поверишь. Стоило выключить вот это - всё заработало...

 

 

function check_barret()
local rifle_in_slot=db.actor:item_in_slot(2)
if rifle_in_slot and rifle_in_slot:section() == "wpn_vintorez" then
db.actor:give_info_portion("barret_on")
news_manager.send_tip(db.actor, "%c[25,240,25,25]wpn_vintorez ON", nil, nil, 20000)
else
db.actor:disable_info_portion("barret_on")
news_manager.send_tip(db.actor, "%c[25,240,25,25]wpn_vintorez OFF", nil, nil, 20000)
end
end

 

 

И каким образом она на диалоги влияет? Втулкер такой втулкер... Попробую доп условию поставить, а то постоянный апдейт только ресурсы ест...

Изменено пользователем CRAZY_STALKER666
  • Не нравится 1

Не соответствует правилам.

Ссылка на комментарий

 

 

Втулкер такой втулкер

А может все же стоит в своих действиях искать причины?

  • Согласен 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.

Ссылка на комментарий

Ага. Функция была ещё и на постоянном апдейте, а не по событию? Это я пропустил.
Попутно

 

Почему было  просто не написать в dialogs.script

function allow_break_dialog(first_speaker, second_speaker, id)
    return second_speaker:profile_name() ~= "osoznanie"
end

?

 

 

.....

@CRAZY_STALKER666, Да чего уж там - обращайтесь. Пока деды живы )

Изменено пользователем Nazgool
Ссылка на комментарий

Очень интересно...

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

 

Всем спасибо за терпение и понимание! Я поддержку действительно очень ценю, куда без вас дедов модостроя я бы делся...

Не соответствует правилам.

Ссылка на комментарий

Здравствуйте! Снова прошу помощи. Есть функция:

function start_demka()
  local console = get_console()
  console: execute("demo_play start_demka")
end

Как во время ролика можно отключить худ?

В жизни много плохих моментов. Пытайся избавляться от них !

Ссылка на комментарий

@TIGER_VLAD, Спасибо, помогло! Но есть ещё одна проблема:

Во время полёта, можно юзать вещи, например бинокль. Можно и это как нибудь отключить?

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

В жизни много плохих моментов. Пытайся избавляться от них !

Ссылка на комментарий

PTB,

Убрать оружие: db.actor:hide_weapon()

Вернуть оружие: db.actor:restore_weapon()

 

Можешь попробовать и такой вариант:

Убрать: level.show_weapon(false)

Вернуть: level.show_weapon(true)

Изменено пользователем Dennis_Chikin
здесь был пример, как из 4 строк сделать полотно на весь экран
  • Спасибо 1
Ссылка на комментарий

@dsh, Норм вариант.

@PTB, и еще enable_input() для разблокировки. А вообще для полетов камеры по локациям есть level.add_cam_effector2. Только тут нужно делать кат-сцену в X-ray SDK.

Изменено пользователем TIGER_VLAD
Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...