Norman Eisenherz 309 Опубликовано 17 Апреля 2019 Поделиться Опубликовано 17 Апреля 2019 Разрядность, 2 в 16 степени (65 536) + сдвиг на 1 назад с учетом отсчета от 0 Мини-моды: ТЧ ЧН ЗП Шпаргалка Ссылка на комментарий
Painter 3 368 Опубликовано 17 Апреля 2019 Поделиться Опубликовано 17 Апреля 2019 @_Sk8_AsTeR_, когда создаётся новый объект, ему присваивается свободный id. Диапозон id от 0 до 65535, что ограничивает число одновременно существующих объектов. При этом 0 - actor, 65535 - ничей, имеет специальное значение. 1 2 Портфолио Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 18 Апреля 2019 Поделиться Опубликовано 18 Апреля 2019 В 17.04.2019 в 00:36, Overfirst сказал: local text = obj:character_name() function npc() for i = 1, 65535 do local obj = alife():object(i) if obj and IsStalker(obj) then local text = obj:character_name() -- тут и есть имя сталкера ? end end amk.send_tip(text, "123", 2, 15, "common_channel") -- выводим на экран значение переменной text end Спасите - помогите! Цитата attempt to call method 'character_name' (a nil value) Ссылка на комментарий
lordmuzer 743 Опубликовано 18 Апреля 2019 Поделиться Опубликовано 18 Апреля 2019 47 minutes ago, _Sk8_AsTeR_ said: obj:character_name Это клиентский метод. То есть имена можно получить только для НПЦ которые сейчас в online Для серверного - только через net packet для оригинального движка. Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 18 Апреля 2019 Поделиться Опубликовано 18 Апреля 2019 @lordmuzer, Черт, в нетпакетах я слаб... Есть мыслишки, как можно через нетпакеты перебрать всех живых нпс в игре, чтобы дёрнуть имя рандомного? Ссылка на комментарий
lordmuzer 743 Опубликовано 18 Апреля 2019 Поделиться Опубликовано 18 Апреля 2019 (изменено) Перебирать их нужно точно так же - циклом: for i = 1, 65535 do А дальше, берем например https://github.com/OGSR/OGSR-Engine/blob/main/Game/Resources_SoC_1.0006/gamedata/scripts/m_netpk.script (и связанные с скриптом файлы) подключаем к себе в мод. А дальше пример так: local pk = get_netpk( sobj ) if pk and pk:isOk() then local data = pk:get() local charname = data.character_name end Так же подойдет любой другой скрипт для чтения нет пакетов. Изменено 18 Апреля 2019 пользователем lordmuzer 2 Ссылка на комментарий
Fenrir02 199 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 Добрый день! Подскажите, по каким причинам НПС могут самостоятельно переходить в оффлайн, находясь при этом в радиусе switch_distance актора? Пробовал принудительно выталкивать непися в онлайн таким способом: for a = 1, 65535 do local obj = alife():object( a ) if obj then local obj_name = obj:name() if string.find( obj_name, "esc_vagon_wounded" ) then log3( "~ [%s]: found [%s]", script_name(), obj_name ) alife():set_switch_online( obj.id, true ) alife():set_switch_offline( obj.id, false ) end end end Но ничего не выходит. Важнейшая задача цивилизации - научить человека мыслить. Ссылка на комментарий
Space.Marine 464 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 Добрый вечер, уважаемые ! Подскажите почему не выводятся на экран сообщения отсюда: if dik == DIK_keys.DIK_HOME then level.set_time_factor(300) news_manager.send_tip(db.actor, "Ускорение времени ВКЛ.", nil, nil, 5000) elseif dik == DIK_keys.DIK_END then level.set_time_factor(5) news_manager.send_tip(db.actor, "Ускорение времени ВЫКЛ.", nil, nil, 5000) end Ссылка на комментарий
lordmuzer 743 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 57 minutes ago, Fenrir02 said: по каким причинам НПС НПЦ может быть под гулагом, а у гулага свои правила когда кто выходит в онлайн. 18 minutes ago, Space.Marine said: Подскажите почему не выводятся на экран сообщения отсюда: Где сей код находится? 1 Ссылка на комментарий
Space.Marine 464 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 30 минут назад, lordmuzer сказал: сей код находится ui_main_menu.script Ссылка на комментарий
lordmuzer 743 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 Хм, у меня показываются. Попробуй без убрать вызовы set_time_factor Ссылка на комментарий
aromatizer 4 429 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 1 час назад, Fenrir02 сказал: переходить в оффлайн, находясь при этом в радиусе switch_distance актора Если такое происходит на граничной дистанции, то это нормально: там есть гистерезис на вход/выход. Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
Space.Marine 464 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 10 минут назад, lordmuzer сказал: Попробуй без Ну а на кой оно мне без функции времени... В принципе, ничего важного в сообщении, просто хотелось... Видать чой-то из-за того, что я худ правил, уже не помню где... В любом случае, благодарю. Ссылка на комментарий
lordmuzer 743 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 Так ясно дело что незачем) Ну что бы найти причину сначала с news_manager.send_tip Но ок. 2 Ссылка на комментарий
Fenrir02 199 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 1 час назад, aromatizer сказал: граничной дистанции Я имел ввиду, что подхожу к НПС вплотную, а его нет в онлайне вообще, но знаю, что он существует, так как метку на него можно поставить. Важнейшая задача цивилизации - научить человека мыслить. Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 (изменено) Скрытый текст @lordmuzer, дружище, огромное тебе спасибо! Ты помог мне реализовать мечту не первого года... Осталось задебажить, и сразу вопрос к тебе, как к спасителю. При вызове функции игра подвисает на некоторые секунды, считывая нетпакеты. При повторном вызове функции ловлю лог: LUA error: not enough memory. И вот вопрос: как можно ограничить количество циклов выполнения функции? Он мне выводит сразу кучу имён сталкеров, а достаточно 5-6 имен, например... Ну и еще мне нужно придумать как обновляться, чтобы память не кончалась, но по поводу последнего наверно что-то сам придумаю... Не смекну как стереть более неактуальное сообщение, так что просто спрячу его под спойлер. До всего допетрил сам. @lordmuzer, брат, братишка. огромное тебе спасибо! Около года я мозговал как это реализовать! Изменено 19 Апреля 2019 пользователем _Sk8_AsTeR_ Ссылка на комментарий
naxac 2 445 Опубликовано 19 Апреля 2019 Поделиться Опубликовано 19 Апреля 2019 @Fenrir02, в кастом-дате нпс может быть секция spawner, в которой прописаны условия перехода в онлайн/оффлайн. Также, если непись под гулагом, то в этом гулаге могут быть прописаны условия перехода в онлайн. Обрабатываются эти условия в функции can_switch_online непися, и если она возвращает false, то никакие alife():set_switch_... непися из оффлайна не вытащат. 1 1 2 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
_Sk8_AsTeR_ 117 Опубликовано 20 Апреля 2019 Поделиться Опубликовано 20 Апреля 2019 Господа, подскажите пожалуйста, в бинд сталкер куда вставлять вызов функции, чтобы она вызывалась только при каждой загрузке сейва или локи? Вроде можно было... Ссылка на комментарий
AndreySol 215 Опубликовано 20 Апреля 2019 Поделиться Опубликовано 20 Апреля 2019 2 часа назад, _Sk8_AsTeR_ сказал: чтобы она вызывалась только при каждой загрузке сейва или локи? В actor_binder:net_spawn попробуй. 1 Ссылка на комментарий
mole venomous 3 365 Опубликовано 20 Апреля 2019 Поделиться Опубликовано 20 Апреля 2019 Вопрос относительно блокировки доступа к инвентарю. Даже целых три. Весьма понравились идеи из ОП-2.1 и НА-6, где нельзя открыть инвентарь в движении (вернее, ГГ остановится) и при перезарядке оружия. Кроме того, пытался реализовать автозакрытие инвентаря при поедании медикаментов/еды (с блокировкой доступа до истечения времени использования), но ничего не вышло. Если есть подобные методы, скриптово реализуемые, буду признателен. Здесь могла быть ваша реклама. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти