Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Forest Of Shadows 126 Опубликовано 8 Июня 2016 Поделиться Опубликовано 8 Июня 2016 как восстановить кнопку отключенияМод Paradise Lost и DMX тебе в помощь, там это работает без багов и реализовано очень просто одним скриптом. 1 Ссылка на комментарий
BFG 7 582 Опубликовано 10 Июня 2016 Поделиться Опубликовано 10 Июня 2016 (изменено) Очередной вопрос по логике. Есть НПС, который двигается по очень простой схеме, от одной точки кампа до другой. custom_data = <<END [smart_terrains] none = true [spawner] cond = {+info1} [logic] active = kamp [kamp] center_point = mob_camp_center path_walk = mob_camp_center_task radius = 3 on_info = {+info2} walker1 [walker1] path_walk = mob_walk path_look = mob_look on_info = {+info3} walker2 [walker2] path_walk = mob1_walk path_look = mob1_look danger = danger_ignore on_timer = 20000 | kamp1 [kamp1] center_point = mob1_camp_center path_walk = mob1_camp_center_task danger = danger_ignore radius = 3 [danger_ignore] ignore_distance = 0 END Всё работает нормально, НПС идёт куда надо и приходит куда надо и там сидит травит байки. Одна только неприятность : если ГГ уходит из алайфа НПСа, пошарить по локации и потом возвращается, например через некоторое время, то НПС оказывается в секции [walker2] почему-то. Потом согласно таймеру он конечно перейдёт в [kamp1]. Как сделать так, чтобы НПС при достижении [kamp1], всегда в нём и оставался, независимо, от того где шастает наш ГГ ? Спасибо. Изменено 10 Июня 2016 пользователем BFG "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
abramcumner 1 141 Опубликовано 10 Июня 2016 Поделиться Опубликовано 10 Июня 2016 @BFG, при переходе оффлайн/онлайн логика у НПЦ перезапускается с самого начала. То есть у тебя она начинается с kamp, затем быстро проскакивает до walker2, так как поршни выданы, а дальше переход только по таймеру. Как вариант добавить еще поршень info4, выдавать его при переходе в секцию kamp1, а в секцию walker2 добавить условие on_info = {+info4} kamp1 Так же можно прописывать условия в active. Типа: active = {+info4} kamp1, kamp 2 1 Ссылка на комментарий
ins33 16 Опубликовано 12 Июня 2016 Поделиться Опубликовано 12 Июня 2016 Подскажите, есть возможность поссорить ГГ с гулагом который в офлайн? Сейчас использую рестриктор с радиусом 140, и координатами центра гулага, но, что то не нравится мне этот способ. Ссылка на комментарий
dsh 3 824 Опубликовано 12 Июня 2016 Поделиться Опубликовано 12 Июня 2016 @ins33, если память мне не изменяет, то только через x-ray extensions. Там есть методы для изменения отношений в оффлайне. Ну а без этого, написать скрипт, который дождется выхода в онлайн каждого члена гулага и далее по накатанной. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
AndrewMor 527 Опубликовано 12 Июня 2016 Поделиться Опубликовано 12 Июня 2016 (изменено) Сталкеры, нужна помощь. Спавню скриптом предмет в рюкзак: function spawn_card() local obj = alife():object("pred_rukzak")if obj thenalife():create( "access_card", vector(), 0, 0, obj.id )endend Предмет спавнится, но если сохраниться, то состояние рюкзака не сохраняется и предмет после загрузки сейва пропадает. Пробовал делать так: function spawn_card()local obj = alife():object("pred_rukzak")if obj thenalife():create( "access_card", vector(), 0, 0, obj.id )local params = amk.get_invbox_data(obj)params.custom = "[logic]\ncfg = scripts\\treasure_inventory_box.ltx"amk.set_invbox_data(params, obj)endend Но предмет все равно пропадает. Я что-то не так делаю, или что? Изменено 12 Июня 2016 пользователем AndrewMor Сталкер - наше всё! Ссылка на комментарий
dsh 3 824 Опубликовано 12 Июня 2016 Поделиться Опубликовано 12 Июня 2016 @AndrewMor, вот соляночная функция для спауна вещей кому угодно: function spawn_item_in_inv(spawn_item,npc) if not npc then npc = db.actor end local item = alife():create(spawn_item, npc:position(), npc:level_vertex_id(), npc:game_vertex_id(), npc:id()) if npc:id() ~= db.actor:id() then -- Фикс пропадания доспавненного предмета при сейв/лоаде level.client_spawn_manager():add(item.id, -1, fix_spawn_item_in_inv, npc) -- Калбек на выход item в онлайн end return item end Комментарием отмечен тот самый трюк, что бы не пропадало. Вместо alife():create( "access_card", vector(), 0, 0, obj.id ) сделай spawn_item_in_inv( "access_card", obj ) Не знаю, какой баг таким образом обходится, но работает. dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
naxac 2 439 Опубликовано 12 Июня 2016 Поделиться Опубликовано 12 Июня 2016 (изменено) @AndrewMor, если при спавне предмета в инвентарь объекта объект находится в онлайне, то нужно либо поместить объект в оффлайн до выхода в онлайн заспавненного предмета, а через небольшое время вернуть обратно в онлайн. Либо после выхода в онлайн предмета сделать трансфер его из объекта в тот же объект - как-бы сымитировать, что он там не сам появился, а его туда положили. Такой глюк движка... @dsh, забыл написать функцию fix_spawn_item_in_inv - сам каллбэк, в котором происходит трансфер. Изменено 12 Июня 2016 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
dsh 3 824 Опубликовано 12 Июня 2016 Поделиться Опубликовано 12 Июня 2016 ой, точно, забыл. Привык к анонимным функциям и даже не посмотрел. @AndrewMor, вот она function fix_spawn_item_in_inv(npc, id, item) npc:transfer_item(item, npc) end dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
AndrewMor 527 Опубликовано 14 Июня 2016 Поделиться Опубликовано 14 Июня 2016 вот соляночная функция для спауна вещей кому угодно: Кому угодно - это очень хорошо. Но мой случай - inventory_box. Для ящика будет работать? Сталкер - наше всё! Ссылка на комментарий
naxac 2 439 Опубликовано 14 Июня 2016 Поделиться Опубликовано 14 Июня 2016 @AndrewMor, будет. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Пруткоф 1 Опубликовано 15 Июня 2016 Поделиться Опубликовано 15 Июня 2016 Здравствуйте. Сделал все, как написано в http://www.amk-team.ru/forum/topic/6458-uroki-po-modostroeniiu/?p=634638, для отображения на экране сообщений о смерти сталкеров. Вот что получилось: http://s019.radikal.ru/i601/1606/5d/05dda1fdb5cb.png Подскажите пожалуйста как исправить, чтобы правильно отображалось. Ссылка на комментарий
varan 124 Опубликовано 15 Июня 2016 Поделиться Опубликовано 15 Июня 2016 (изменено) @Пруткоф, сохрани файл своего скрипта в другой кодировке (1251, например). Изменено 15 Июня 2016 пользователем varan 1 Ссылка на комментарий
Пруткоф 1 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 Подскажите пожалуйста, можно ли сделать, чтобы сообщение о смерти сталкеров приходили не мгновенно, а с задержкой. Если да, то как? Ссылка на комментарий
Zander_driver 10 331 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 Кидать эти сообщения в некий буфер, добавляя туда сведения о времени, когда сообщение заброшено в этот буфер. А на апдейте (можно не каждом, а раз в сколько-то секунд), перебирать этот буфер, достаточно старые сообщения выводить на экран и удалять из буфера. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 Подскажите пожалуйста, можно ли сделать, чтобы сообщение о смерти сталкеров приходили не мгновенно, а с задержкой. Если да, то как? Очень просто. У news_manager.send_tip() есть параметры, один из них - задержка отправки с секундах( игрового времени или реального не помню). Один минус - сообщения будут без звука но это легко компенсировать добавляя play_snd_no_feedback() или что-то подобное... Или перепеши send_tip под себя... Ну итог - ничего сложного нет 1 Не соответствует правилам. Ссылка на комментарий
Kober(BRUC) 99 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 Добрый вечер. В каком файле, по возможности можно указать и функцию, происходит открытие другого меню, например при нажатии "Опции" или "Титры"? З.ы. Поковыряв AMK, так и не нашел, как у них сделано открытие нового меню, с опциями. Ссылка на комментарий
aromatizer 4 423 Опубликовано 16 Июня 2016 Поделиться Опубликовано 16 Июня 2016 чтобы сообщение о смерти сталкеров приходили не мгновенно, а с задержкой. Просто не использовать этот скрипт. Отношения между людьми- главная ценность в человеческом обществе.Любая полученная информация- это только повод для размышлений, а не побуждение к действию.Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAEНакопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt Ссылка на комментарий
Пруткоф 1 Опубликовано 17 Июня 2016 Поделиться Опубликовано 17 Июня 2016 Очень просто. У news_manager.send_tip() есть параметры, один из них - задержка отправки с секундах. Подскажите пожалуйста, если можно, где здесь строка отвечающая за этот параметр. function send_tip(actor, news_id, timeout, sender, showtime, sender_id) if news_id == nil then return false end printf("try to send tips for [%s]", tostring(sender_id)) if sender_id ~= nil then local sim = alife() if sim ~= nil then local npc = sim:story_object(sender_id) if npc ~= nil then if npc.online then --в онлайне проверяем на раненность if xr_wounded.is_heavy_wounded_by_id(npc.id) then printf("[PDA]Cannot send tips [%s], sender is heavy wounded", tostring(news_id)) return false end end -- в других случаях только на смерть if npc:alive() == 1 then printf("[PDA]Cannot send tips [%s], sender is dead", tostring(news_id)) return false end end end end if timeout == nil then timeout = 0 end if showtime == nil then showtime = 5000 end Ссылка на комментарий
naxac 2 439 Опубликовано 17 Июня 2016 Поделиться Опубликовано 17 Июня 2016 (изменено) @Пруткоф, это аргумент timeout. Изменено 17 Июня 2016 пользователем naxac 1 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти