Norman Eisenherz 234 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 @Colder [ui_main_menu.script], по аналогии с блоком if dik == DIK_keys.DIK_Q. Обязательно добавить проверку if level.present() – игра должна быть загружена в момент расходования предмета. Сделать применение предметов через быстрые слоты, как в ЗП, без расширенного движка невозможно – разве что добавить условие вида "если потрачен бинт, то съесть еще колбасу". 1 2 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
ted.80 223 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 4 часа назад, Colder сказал(а): Можно ли сделать использование предмета с условием если зажата какая либо клавиша? 1 час назад, Norman Eisenherz сказал(а): Сделать применение предметов через быстрые слоты, как в ЗП, без расширенного движка невозможно Ваши сведенья устарели - причем давно - скриптовый кейлоггер СУЩЕСТВУЕТ - Ура товарищи!!! Скрытый текст local eatimer1 = 0 local con = nil local con_command = "mm_net_player_name" local def_value = "_" function update() if not con then con = get_console() con:execute( con_command .." ".. def_value ) for k,v in pairs(_G[script_name()]) do if type(v)=='function' and DIK_keys[string.upper(k)] then local key = "k"..string.gsub(k,"dik_","") con:execute("bind_console "..con_command.." "..k.." "..key) end end else local str = con:get_string(con_command) if str~=def_value and this[str] then this[str]() con:execute(con_command.." "..def_value) end end end function dik_f1() local it = db.actor:object("medkit") or db.actor:object("medkit_army") or db.actor:object("medkit_scientic") actor_eat_it(it) end function dik_f2() local it = db.actor:object("bandage") actor_eat_it(it) end function dik_f3() local it = db.actor:object("vodka") or db.actor:object("antirad") actor_eat_it(it) end function dik_f4() local it = db.actor:object("bread") or db.actor:object("kolbasa") or db.actor:object("conserva") actor_eat_it(it) end function dik_f5() local it = db.actor:object("energy_drink") actor_eat_it(it) end function actor_eat_it(it) local eatimer2 = time_global() if it and isGameOn() and eatimer1 < eatimer2 then eatimer1 = eatimer2 + 3000 local it_name = "Использовано: "..game.translate_string(system_ini():r_string(it:section(), "inv_name")) db.actor:give_game_news(it_name, "ui\\ui_iconsTotal", Frect():set(166,846,83,47), 1000, 5000) db.actor:eat(it) end end function isGameOn() if level.present() and db.actor ~= nil and db.actor:alive() then return true end return false end 1 Ссылка на комментарий
Colder 12 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 Это у меня есть. А как проверить на зажатую клавишу? Ссылка на комментарий
ted.80 223 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 @Colder Моя - твоя не панимать!! что значит проверить на зажатую клавишу? Ссылка на комментарий
Colder 12 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 Ну если зажата какая либо клавиша, то можно использовать предмет. Ссылка на комментарий
ted.80 223 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 @Colder А я что по вашему выложил постом выше? просто набор не понятных символов? Вы хоть пробовали это использовать? 1 1 Ссылка на комментарий
Zander_driver 10 166 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 Только что, Colder сказал(а): если зажата какая либо клавиша То это значит, что событие ее нажатия - было. А события ее отпускания - еще не было. Вот это и проверяйте. Кейлоггер, в т.ч. скриптовый, вполне это может. 1 1 Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
UriZzz 992 Опубликовано 18 Марта 2021 Поделиться Опубликовано 18 Марта 2021 @ted.80 если я правильно понял@Colder то при зажатой клавише, а не по нажатию. Тобеш нажал и удерживая используешь. Я правда не знаю - рассчитан ли твой кейлогер на такое, но ведь есть в xray ext (и в ogsr) коллбэк на удержание нажатой клавиши, можно попробовать его использовать. @Zander_driver хм, значит может? Ок Моя нычка, Нычка в арендованном у Опричника холодильнике Мы хорошие ребята, жаль патронов маловато:) Ссылка на комментарий
hArdplAyer22_22 0 Опубликовано 19 Марта 2021 Поделиться Опубликовано 19 Марта 2021 Доброго времени суток.Вопрос наверное не в тему, но в моде ОГСМ сломался сон через спальный мешок. Там при использовании спального мешка инициализировалось окно с выбором, сколько поспать. Так вот, игрок спит одинаково долго (часов 10), независимо от того, выбран ли час сна, или же пять часов. Может кто сталкивался с чем подобным, где может быть ошибка? Раньше все работало отлично. Ссылка на комментарий
phalcor 56 Опубликовано 20 Марта 2021 Поделиться Опубликовано 20 Марта 2021 Всем привет! В Тёмной Долине на базе Борова есть трое спящих бандитов на ковре, которых не добудится. Так же под мостом у Кузнецова ночью спят такие же солдаты. Подскажите, а где заданы параметры этих вот беспробудных ребят? Хочется, чтобы они просыпались, и разговаривали таки со мной! (Ну или на крайний случай может какой эффектор по кнопке запустить, чтобы они проснулись, как от опасности?) Ссылка на комментарий
Stalkersof 88 Опубликовано 20 Марта 2021 Поделиться Опубликовано 20 Марта 2021 function get_level_nps() if level.name() ~= "l12u_control_monolith" then return end for i=1,65535 do local obj = alife():object(i) if obj then if IsStalker(obj) and obj:alive() then return true end end end return false end Ребята такая функция будет работать. Надо проверить есть ли на локации хотя бы один живой нпс. Если из actor_binder:net_spawn(data) вызывать. 1 Ссылка на комментарий
ARTLantist 12 Опубликовано 20 Марта 2021 Поделиться Опубликовано 20 Марта 2021 как перевести серверный объект в клиентский в зп? либо как, если это возможно, создать в инвентаре сразу клиентский объект, а не серверный? Ссылка на комментарий
Zander_driver 10 166 Опубликовано 20 Марта 2021 Поделиться Опубликовано 20 Марта 2021 Только что, ARTLantist сказал(а): создать в инвентаре сразу клиентский объект, а не серверный? Этим занимается движок. Создаются всегда - сперва серверные объекты, клиентский без серверного не может существовать. Когда серверный создан, движок проверяет его флаги, местоположение, и если надо переводит в онлайн, т.е. создает ему соответствие в виде клиентского объекта. Если ты спавнишь что-либо в инвентарь, и тебе нужен клиентский объект того что ты заспавнил, то нужно просто несколько фреймов подождать, после спавна. И клиентский объект появится в инвентаре. 2 часа назад, Stalkersof сказал(а): Ребята такая функция будет работать. Работать будет. Но делать будет не то, что вы написали. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
ARTLantist 12 Опубликовано 20 Марта 2021 Поделиться Опубликовано 20 Марта 2021 (изменено) 5 минут назад, Zander_driver сказал(а): Если ты спавнишь что-либо в инвентарь, и тебе нужен клиентский объект того что ты заспавнил, то нужно просто несколько фреймов подождать, после спавна. И клиентский объект появится в инвентаре. Ну вот я спавню актору в инвентарь предмет, и мне нужно тут же именно ему изменить condition. С серверными не работает обычный set_condition(value), тут нужен клиентский. Как мне его отловить? Изменено 20 Марта 2021 пользователем ARTLantist Ссылка на комментарий
Zander_driver 10 166 Опубликовано 20 Марта 2021 Поделиться Опубликовано 20 Марта 2021 Сохранить id того, что заспавнил, и condition который хочешь ему присвоить. И ждать несколько фреймов. Когда в колбеке on_item_take появится предмет с нужным тебе id, это уже будет клиентский объект. Его просто нужно дождаться, сразу это не делается. (на оригинальном движке) в модифицированных можно подсмотреть метод установки condition для серверного объекта... в том же ОГСР есть. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 5.7ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Okichi 859 Опубликовано 20 Марта 2021 Поделиться Опубликовано 20 Марта 2021 (изменено) 1 час назад, ARTLantist сказал(а): я спавню актору в инвентарь предмет, и мне нужно тут же именно ему изменить condition Теоретически вот такое должно работать и на стандартном движке с использованием модулей Артоса для нетпакетов: local obj = misc.spawn_to( "af_dummy_battery", db.actor ) -- заменить на обычный alife():create() актору в инвентарь local objd = alife():object( obj.id ) -- лучше получим созданный серверный объект еще раз local pk = get_netpk( objd, 1 ) ASSERT( ( pk and pk:isOk() ), "can't read netpacket of %s", obj:name() ) local data = pk:get() local cond = lua_random( 25, 35 ) * 0.01 -- заменить на какую-нибудь ф-ю вычисления рандомного значения, lua_random - специфика НЛС data.condition = cond -- устанавливаем новую кондицию серверному объекту pk:set( data ) -- и вот тут движок дожидается выхода в онлайн клиентского объекта и уже ему правим кондицию в инвентаре level.client_spawn_manager():add( obj.id, -1, function( id, obj ) obj:set_condition( cond ) end ) Метод в свое время подсказал dsh, и он ни разу не подводил ( кроме единственного уникального случая спавна брони в инв.ящик, которой в НЛС так кондицию не испортить) Изменено 20 Марта 2021 пользователем Okichi 1 След от кругов на воде - это тоже след (с) Ссылка на комментарий
Stalkersof 88 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 6 часов назад, Zander_driver сказал(а): Работать будет. Но делать будет не то, что вы написали. А как можно проверить жив ли хоть один нпс на локации. Что-то не как не соображу. Алгоритм подскажите. Ссылка на комментарий
AndrewMor 517 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 10 минут назад, Stalkersof сказал(а): А как можно проверить жив ли хоть один нпс на локации. А зачем такое нужно? И разве О-сознанец не будет в этих вечно живых попадать? Сталкер - наше всё! Ссылка на комментарий
Stalkersof 88 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 1 минуту назад, AndrewMor сказал(а): А зачем такое нужно? И разве О-сознанец не будет в этих вечно живых попадать? Я хотел респавн сделать. У меня можно с чаес на кордон вернуться, чтоб путь назад не был по пустым локациям. Ссылка на комментарий
AndrewMor 517 Опубликовано 21 Марта 2021 Поделиться Опубликовано 21 Марта 2021 @Stalkersof Я к тому и веду. О-сознанец все равно будет жив. Тогда уж нужно его отсеивать, отслеживая только монолитовцев, если речь идет о локации Управление Монолитом. Сталкер - наше всё! Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти