Dennis_Chikin 3 658 Опубликовано 23 Ноября 2011 Поделиться Опубликовано 23 Ноября 2011 А "твой забавный эффект" происходит от того, что, например, при убийстве НПС и его удалении, нередко бывает что, покойник стрелял из автомата и этот автомат (принадлежащий ему) продолжает неккоторое время еще стрелять Непись АБСОЛЮТНО спокоен. Если только в анимацию смерти даже в спокойном состоянии не входит "пострелять". Но это, как правило, когда ствол в руках. А здесь - даже и за спиной висит. По патронам - тупо, поиском, поставил лог на все release. Не вижу удаления патронов. 8( Если только какой-то адов механизм зарядки ствола при смерти. Вообще, надо будет попробовать все стволы отобрать, и потом убить. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Artos 99 Опубликовано 23 Ноября 2011 Поделиться Опубликовано 23 Ноября 2011 (изменено) Dennis_Chikin, зависимые объекты (имеющие 'родителя/овнера') в некоторых конкретных случаях (находятся "внутри") не нуждаются в удалении отдельной командой/методом. Удалив заряженное патронами оружие, ты в два этапа удаляешь одной командой 'release' оба объекта иоружие и патроны. Точнее этапов то как раз не два, а гораздо больше и разнесенных во времени (хотя и мокросекунды). А вот то, что команда еще не значит факт свершения - прочти в топике по ковырянию файлов (не стал дублировать сюда). Изменено 23 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
*Shoker* 322 Опубликовано 23 Ноября 2011 Поделиться Опубликовано 23 Ноября 2011 (изменено) Artos Если бы ты это "по поводу "порчи" новых стволов при спавне через all.spawn" поместил в шапку, то это "Ответ на уже не раз встречающиеся вопросы" было бы реже. Имхо теме нужен FAQ, куда стоит скидывать таки идеи, иначе потом они затеряются на сайте, и не стоит удивляться, что задают одни и те же вопросы. Вурдалак Юзали в каком плане? > 1. В глобальном пространстве имен должно быть только одно имя для функции. Иначе найдутся и остальные. В сталкере функции сортируются по названию скрипта. (_G[script_name][funct]), так что врятле найдёт остальные. В частности и алгоритм поиска, что дал RvP нужно немного поправить, если я не путаюсь. Изменено 23 Ноября 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Artos 99 Опубликовано 23 Ноября 2011 Поделиться Опубликовано 23 Ноября 2011 (изменено) *Shoker*, не вижу особой необходимости выносить такие частные случаи (именно по конкретному стволу) в шапку топика. Это скорее относится к "урокам моддинга". А ошибки и вопросы были и будут, и не только со стволами. Суть в моем "ответе" - рекомендация НЕ путать классы объектов в кодах/конфигах (о чем многие и не задумываются) и вариант "как контролировать в спавне". Наступать на грабли все одно будут, но ... если уже несколько прочтут и поймут "что к чему" - на вопросы/непонятки уже будут даваться конкретные ответы (по контексту), а не погадалки. P.S. И собственно вопрос заданный _Призрак_'ом про поиск названия функции достаточно бессмысленен (ИМХО). Собственно само имя функции - по сути и есть наименование переменной. Отличие только в том, что тип этой переменной только один - 'function', а не 'один из возможных типов данных'. Если озабочен поиском причин ошибок/проблем - следует трассировать не некое имя, назначенное 'абы где и абы как', и которое может не дать однозначного ответа, а трассировать что и откуда вызывается. Если же это в рабочих кодах - ни что не мешает запоминать и позже вызывать именно по имени на не собственно функцию, не утруждая ресурсы итерацией по метатаблице ... Изменено 23 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
*Shoker* 322 Опубликовано 23 Ноября 2011 Поделиться Опубликовано 23 Ноября 2011 (изменено) Вот ещё что давно хотел спросить, да забывал.. в игре есть функция eat() которая позволяет игроку (да и НПС) "съесть" какой то предмет. А работает ли эта функцию (или функция use(), которая как мне кажется, не относится к инвентарю) с обычными предметами, вроде оружия, брони и прочего? Например возникла необходимость симитировать двойной щелчок на броне в инвенторе, чтобы она поместилась в слот. Есть ли для этого какие то методы? Изменено 23 Ноября 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
Artos 99 Опубликовано 23 Ноября 2011 Поделиться Опубликовано 23 Ноября 2011 (изменено) *Shoker*, с твоим вопросом прямой путь в 'lua_help.script' и топик "Справочник по классам и функциям". Каждому клиентскому объекту в игре присущи некие функции/методы, а вот конкретно для какого класса какие - тут только пока методом тыка можем перепроверить, т.к. от разрабов нам такой информации недосталось. Методы, которыми оперирует движек в окнах худа во многом для нас закрыты (не портированы в Lua). Изменено 23 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
Zander_driver 10 333 Опубликовано 23 Ноября 2011 Поделиться Опубликовано 23 Ноября 2011 (изменено) Artos Вот уже который раз вы отвергаете с порога любые предложения завести в этой теме шапку с наиболее полезными сведениями, когда-либо в ней появившимися. Ну почему? За то время, что я наблюдаю за темой, тут не раз было что-то полезное, что стоило сохранить чтобы при необходимости быстро найти. А ведь около сотни страниц я не застал, и времени их все пролистать все никак не находится... быть может я не один такой. Почему бы не предположить, что раз столько людей об этом просят, значит это действительно кому-то нужно. Изменено 23 Ноября 2011 пользователем 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. Ссылка на комментарий
Artos 99 Опубликовано 23 Ноября 2011 Поделиться Опубликовано 23 Ноября 2011 (изменено) Zander_driver 1. Заметь, что отвергаю предложения разместить 'свои текущие размышления/ответы', причем аргументируя причину. 2. Топик создавался не мною. У топика есть модератор, который и (пере)оформил шапку и по сути является автором шапки. 3. У каждого из нас есть свои предпочтения и пожелалки, о включении того иль иного в шапку. Я бы предпочел побольше ссылок, а не закостеневших статей. (ИМХО) "Школа" в первую очередь должна учить думать и искать знания, а не являться неким справочником иль записной книжкой. 4. Любой из нас может взять понравившийся материал и, оформив соотв.образом, поместить где-либо на вики иль даже тут в топике "уроки по модмейкерсту". Желание же чтобы это сделал кто-то другой, а не сам желающий иметь под рукою справочные материалы - тоже о чем-то говорит ... ... и последнее ... не знаю как-кто, а мое участие в этой "школе" обусловлено и тем, что порой даже застарелые вопросы заставляют заново пересмотреть/перетряхнуть свои знания. Зафиксированность неких частностей в шапках зачастую навешивает всем нам шоры и тормозит, а не способствует ... Выходите с *Shoker*'ом на модераторов с предложением создания некоего ФАК'а и принимайте в его наполнение участие - это ли не реальное воплощение ваших пожеланий? И, плз, поаккуратнее в выражениях/словах: "отвергаете с порога любые предложения" и "столько людей об этом просят" - напоминает о высокопарной демагогии. На моей памяти предложений было не более трех, как и тех, кто предлагал подобное, а не просил ... Так что на мою возможную просьбу: "Это где это с порого отвергал?" - нечего будет ответить. Топик же из категории "рабочий" и текучесть информации в нем, как и неструктурированность - никак не способствуют созданию "справочной" шапки. Изменено 23 Ноября 2011 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
KD87 718 Опубликовано 23 Ноября 2011 Поделиться Опубликовано 23 Ноября 2011 *Shoker*, класс предмета в функции eat() должен наследовать от CEatableItem. Оружие и броня от него не наследуют. use() среди методов game_object в ТЧ нет, про остальные сказать не могу. Ссылка на комментарий
Zander_driver 10 333 Опубликовано 24 Ноября 2011 Поделиться Опубликовано 24 Ноября 2011 Столкнулся с такой проблемой. Игра не сохраняет состояние артефакта, которое condition. Скриптом наношу артефакту повреждения, они на его полоске состояния видны, но стоит сделать save/load - у него опять шкала состояния полная. Записывать в пстор актора сведения о всех артефактах - не вариант, не влезет туда такая прорва... А у самих артефактов если я правильно понял, пстора нет. Существуют ли какие-нибудь способы сохранить состояние артефактов при s/L, без титанических затрат ресурсов? Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на 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. Ссылка на комментарий
Artos 99 Опубликовано 24 Ноября 2011 Поделиться Опубликовано 24 Ноября 2011 Zander_driver, не забываем в своих вопросах уточнять версию игры, о чем упомянуто в шапке топика. Артефакты в ТЧ не биндятся. Также, для них не вызываются в процессе игры функции обмена нет-пакетами между серверным и клиентским объектами, поэтому то и не запоминается. Вариантов 'обхода' как минимум два: а) Забиндить артефакты и использовать pstor объекта для хранения состояния. Примечание: Нет уверености, что будет всегда работать ... Для инвентарных ящиков при смене локация pstor порой теряется (причину пока не выяснял, в планах). б) Записывать 'ручками' состояние в серверный объект, т.е. через нет-пакеты. ... ну иль прочими комбинациями. "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Ссылка на комментарий
panzyuza 41 Опубликовано 24 Ноября 2011 Поделиться Опубликовано 24 Ноября 2011 А можно ли использовать функцию в биндере актора function actor_binder:info_callback(npc, info_id) для проверки получения актором инфопоршня и вызова скриптовых функций?Просто не хочеться апдейт засорять.И планируеться использовать данную проверку для многих локаций и в функции сначала ставить проверку на инфопоршень и затем на имя локации. AVS_LOCATION_MOD Ссылка на комментарий
RvP 1 Опубликовано 24 Ноября 2011 Поделиться Опубликовано 24 Ноября 2011 panzyuza, для того она вообще то и создана Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
_Призрак_ 11 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 RvP А по моему не совсем. Для вызовов функций при получении инфопоршней создали тег <action></action> А функция в bind_stalker скорее нужна для обработки множества инфопоршней например для их последующего вывода в лог Freedom Ссылка на комментарий
serega-gamer 0 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 Всем привет народ! Помогите правильно построить следующую функцию для ТЧ hev_crash = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n".."%c[default] %c[255,230,0,0]Общий сбой системы система отключается!" local snd_obj = nil local act_suit = db.actor:item_in_slot(6) local hev_min_cond_active = 0.01 ---------------------------- ---------------------------- if act_suit and act_suit:section() == "nano_kostum" then if act_suit:condition() < hev_min_cond_active then snd_obj = xr_sound.get_safe_sound_object( [[HEV\hev_crash]] ) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) db.actor:give_game_news(hev_crash, "ui\\ui_iconsTotal", Frect():set(0,188,83,47), 0, 3000) end end В общем я хочу сделать так что бы когда состояние костюма нулевое то гг получал сообщение о том что система жизнеобеспечения отключается но проблема в том что когда костюм достигает нулевой кондиции эти сообщения появлются одно за другим эквивалент появления примерно доля сотой секунды в общем они не перестают приходить.Помогите сосатвить функцию так что бы сообщение приходило только один раз! Реклама любых модов бесплатно на моём сайте писать в личку Ссылка на комментарий
Vano_Santuri 33 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 Ну так правильно, ты в апдейт сунул, вот он и проверяет состояние костюма постоянно. Попробуй так, только я не знаю, прокатит,или нет if act_suit and act_suit:section() == "nano_kostum" then if act_suit:condition() < hev_min_cond_active then local msg ==true if msg==true then snd_obj = xr_sound.get_safe_sound_object( [[HEV\hev_crash]] ) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) db.actor:give_game_news(hev_crash, "ui\\ui_iconsTotal", Frect():set(0,188,83,47), 0, 3000) msg=false end end end P.S. И не ставь в апдейт актора , сделай задержку на 5-10 сек... Что-то кончается, что-то начинается... Ссылка на комментарий
RvP 1 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 Vano_Santuri, это ж бред. serega-gamer, делаешь флаг в файле(не в функции) и по нему проверяешь выдавалось ли сообщение ранее Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Juny Knife 0 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 (изменено) Вот,есть такая трабла: [logic] active = remark@levec1 inv_max_weight = 1 meet = no_meet combat_ignore = combat_ignore danger = danger_ignore [remark@levec1] meet = no_meet no_move = true anim = fold_arms target = nil snd = levec on_signal = sound_end | walker@levec_quest_1 [walker@levec_quest_1] path_walk = levec_quest_1 target = path_name | levec_quest_1 meet = no_meet use = false on_timer = 1000 | remark2 [remark2] snd = leves_replic_2 anim = choose taget = path_name|levec_quest_2 no_move = true use = false no_meet = true on_timer = 1000 | walker2 [walker2] path_walk = levec_quest_2 target = path_name|levec_quest_2 meet = no_meet use=false on_signal = start|remark@stichka_2 def_state_moving = walk on_timer = 1000 | remark3 [remark3] no_move = true anim = sit_knee no_meet = true use = false [danger_ignore] ignore_distance = 5 [meet] use = false use_wpn = true meet_talk_enabled = false Только вот какая проблема: мне нужно перейти от схемы walker1 до remark2. Пробывал много способов: on_timer = 1|remark1 - игра просто не читала переход к другой логике и нпс шёл обратно по точкам к старту path`sa on_game_timer=1|remark1 -игра либо не читала,либо вылетала. Так как же расценивать хождения по точкам-как анимацию что-ли?И писать on_signal=anim_end|remark2 И ещё есть вопрос,что нужно прописать в логике walker2,чтобы нпс шёл не в состоянии patrol,а в крадущемся состоянии? Изменено 25 Ноября 2011 пользователем ColR_iT Ссылка на комментарий
strelok200 0 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 Как сделать чтобы НПС шёл за ГГ? Схема follower подойдёт? Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
Juny Knife 0 Опубликовано 25 Ноября 2011 Поделиться Опубликовано 25 Ноября 2011 Для ТЧ-да.Да и для ЗП. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти