Max_Raf 35 Опубликовано 29 Июля 2014 Привет народ, чёт у меня проблемка: никак не выходит "толкнуть" артефакт. Пробовал наносить хит взрывом, передавая импульс. Но использование метода к онлайновому объекту, к примеру как к актору - не прокатывает. Есть ли какой простой способ его толкнуть? ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 9 Сентября 2014 Всем привет. Всё никак не могу найти способ/функцию/метод высаживания гг из машины. Подскажите пожалуйста, возможно ли это реализовать через скрипт. Интересует также возможность получения состояния двигателя машины - включён или нет, а так же задание этого состояния. P.S. Работаю с модом LWO 1.5 ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 24 Ноября 2014 Привет всем, возник вопрос: как можно моментально узнать мёртв ли объект или нет? Нужно узнать почти сразу же - мёртв ли сталкер после метода obj:kill(obj). Метод obj:alive() не предлагать, пробовал - метод говорит что сталкер всё ещё жив. ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 24 Ноября 2014 (изменено) , с переменными как то не оч. Всё думаю как бы моментально изменить значения у серверного объекта и по нему ориентироваться в другой функции, ток не знаю какое значение менять, чтобы оно осталось даже если игра будет перезагружена. (коммьюнити не предлагать - этот "ориентир" уже используется)Я бы попробовал расписать: что надо, что есть, и в чем это выражается в каких случаях. Где именно проблема, как ее увидеть. Соответствующая тема как раз открыта. dc Изменено 24 Ноября 2014 пользователем Dennis_Chikin ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 24 Ноября 2014 (изменено) , пробовал, вроде не сработало. Ща ещё раз гляну. Да проблемы по сути нету никакой. Просто есть 3 функции. В первой сталкер самовыпиливается и функция завершается. Затем после неё идёт вторая функция в которой нужно проверить жив ли сталкер (идёт вторая) или нет (идёт третья). Вот и вопрос: как узнать почти что сразу, самовыпилился ли он для второй функции, иначе сработает третья функция. По сути можно и переменными в таблице, но интересно, есть ли другой способ без лишних заборов? К примеру коммьюнити ему сменить и потом проверять по ней (но это уже используется) , а если надо почти моментально? Получается надо и переменные и метод alive() вместе... но забор ведь) иными словами: нужен определённый "флаг" трупа который выставляется моментально. Изменено 24 Ноября 2014 пользователем Max_Raf ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 24 Ноября 2014 @Dennis_Chikin, мм способ по сути такой же как и у . Ладно, попробую чо нить придумать сам. Всем спс. ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 24 Ноября 2014 (изменено) @Struck про kill: в первой функции ставил health в ноль вот так obj.health = - obj.health , затем во второй проверял obj.health <= 0. Итог - не прокатило. Но проверю ещё раз, мало ли напортачил. про bAlive и юзердату: (я не говорил что они не пашут) методы считай не особо отличаются, просто разные места для сохранений флага. Я видимо слабо уточнил - надо бы такой флаг, который бы остался даже при перезагрузке и был привязан к объекту, как пример - смена коммьюнити. P.S. Я много чего не знаю. Да забейте ребят, проблемы нет. Просто любопытно. Изменено 24 Ноября 2014 пользователем Max_Raf ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 10 Ноября 2015 Всем здрасте. Вот решил таки понять, как сохранять переменные в игре, чтобы они при перезагрузке сохранялись. Наткнулся на такую запись: -- Записываем переменную function save_variable(variable_name, value) xr_logic.pstor_store(db.actor, variable_name, value) end -- Загружаем переменную function load_variable(variable_name, value_if_not_found) return xr_logic.pstor_retrieve(db.actor, variable_name, value_if_not_found) end -- Удаляем переменную function del_variable(variable_name) if db.storage[db.actor:id()].pstor[variable_name] then db.storage[db.actor:id()].pstor[variable_name] = nil end end читая в xr_logic , понял, что таким образом сохраняются переменные в пакеты. Но был бы не против, что бы мне разжевали эту тему по самые самые. Есть ли подводные камни, или ограничения? Смогу ли я допустим туда целый текст запихнуть? или что то в этом духе. Или , скажем, на каждую аномалию записывать на неё какие то уникальные значения, которые можно будет использовать? Где вообще найти какой Faq про сохранение переменных или текста в игре, что бы всё яснопонятно? ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 8 Мая 2016 Столкнулся с проблемой. Стоит версия X-ray Extensions 232. Есть 2 одинаковых ствола. На одном установлен прицел. Я пытаюсь с помощью функций изменения значений в памяти объектов (get_wpn_int , set_wpn_int) установить на втором стволе прицел. А именно: копирую значения по смещению 936 ( флаги установленных аддонов) и по смещению 1008 ( зум фактор ). Вроде бы всё нормально: прицел стоит на стволе, но как будто не используется - нету текстуры прицела, а так же не срабатывает смещение худа как в режиме прицеливания . К примеру с подствольником таких проблем не возникло. Вообщем, как активировать на втором стволе нормальное функционирование прицела? Чего не хватает? ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 6 Июня 2016 @Kober(BRUC), функцию, которая написана в файле скрипта вызывается просто по имени, без указания, в каком файле. Из твоего примера - вызывать просто outfit() внутри скрипта none.script . А что насчёт таблиц: -- "ammo_9x18_fmj" это строковый тип данных, не цифры, обозначаются всегда кавычками -- к примеру переменная с числовым типом данных k = 1, и так же со строкой k = "string" T = {"ammo_9x18_fmj", -- в таблице должно быть перечисление каждой строки через запятую "ammo_5.45x39_fmj", -- кстати данные будут записаны в таком виде: T[1] = "ammo_9x18_fmj" "ammo_5.7x28_fmj"} -- таблица построена как массив, ключи выдаются по порядку. скажем "ammo_5.7x28_fmj" поставь первым - он будет первым function none () -- движковая функция create вроде не предусматривает перебор в таблице по значениям, -- потому надо "вручную" перебирать строки в таблице T и вызывать функцию с этим входным параметром -- для этого надо цикл for key = 1, #T do -- #T означает конечный ключ в таблице T (можно и так: for key, section in ipairs(T) только в функцию вместо T[key] просто section, но лучше загугли о таком) -- входным параметром является значение в таблице T по ключу key, который будет с каждым повтором -- прибавлять +1 до #T (в нашем случае это будет 3, тк всего 3 строковых переменных в таблице) alife():create(T[key],db.actor:position(),db.actor:level_vertex_id(),db.actor:game_vertex_id(),db.actor:id()) end end Надеюсь правильно объяснил. Оо 1 ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 12 Июня 2016 @Romann, может с помощью X-Ray Extensions, вроде там есть возможность "хакнуть" параметр бега. ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 15 Июня 2016 @PTB, тебе нужно получить все конкретные объекты по этим секциям чтобы манипулировать с каждым? ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 15 Июня 2016 @PTB, не догоняю, что ты именно хочешь. Что за список? В твоём примере просто функция, которая проверяет, есть ли объект по такой-то секции в инвентаре и так несколько раз. Если тебе надо достать какой то конкретный предмет после проверки на наличие, то пиши, можно сказать точно так же: function name_func() if db.actor:object("bread") then local object = db.actor:object("bread") -- получение вроде как первого попавшегося объекта хлебушка end --... end Спрашивай конкретней и опиши что именно ты хочешь. ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 16 Июня 2016 @Kober(BRUC), подсмотри в амк моде 1.4.1 ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 19 Июня 2016 (изменено) @Romann, вроде так: local radius_sqr = 100 -- квадрат радиуса local actor_position = db.actor:position() -- позиция актора -- по идее, лучший вариант сделать биндеры на все живие объекты -- и регистрировать их в определённую таблицу, которую будем -- перебирать и проверять, живой ли объект. Но обойдёмся этим: -- перебор объектов в онлайне (медленно!) for i = 1, 65534 do -- апд: был 0, могло стукнуть актора -- берём с локации local object = level.object_by_id( i ) -- если объект по ид есть, то if object then -- если макс хп у объекта не равно -1, значит объект живой if object:max_health() ~= -1 then -- если квадрат дистанции, между позицией актора и объектом меньше либо равен макс радиусу в квадрате, то ( distance_to_sqr быстрей вроде как) if actor_position:distance_to_sqr( object:position() ) <= radius_sqr then -- Наносим хит (ну тут можно брать и какие то определённые параметры) hit = hit() -- создание объекта класса hit hit.direction = vector():set(1,0,0) --дирекция по оси x hit.draftsman = db.actor --нанёс урон актор hit.impulse = 600 --импульс hit.power = 1.45 --хит hit.type = 2 --тип урона - выстрел hit:bone("bip01_head") -- удар приходится на голову -- наносим урон obj:hit(hit) -- ( с ) http://stalkerin.gameru.net/wiki/ end end end end Ну поправите меня, если что вдруг. Изменено 19 Июня 2016 пользователем Max_Raf 2 ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 19 Июня 2016 @Romann, только по одной вроде как. А вообще, поищи в той ссылке что указана в коментарии саму функцию hit(), и почитай о ней, будет полезно. 1 ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение
Max_Raf 35 Опубликовано 27 Сентября 2023 Здравствуйте. Интересует пару вопросов. 1. Есть ли у кого какой-либо парсер xml данных нпс по specific_character id, чтобы получить этим самым парсером данные по спавну оружия и предметов у конкретного нпс? (всё думаю сделать скриптовую замену спавна предметов нпсам при спавне, через условную Lua-таблицу. В теории можно было бы просто <supplies> закоментить и спавнить что хош уже в скриптах, но было бы здорово получить хоть какие то данные из xml, чтобы хоть как то не подтереть что квестовое ненароком) 2. Словил прикол с поведением зверушек. А именно: 1) заспавнил зверушку и перманентно её ослепил. (set_fov(0)) 2) далее просто сделал движение и зверушка меня услышала и начала бежать на меня. 3) Я убежал, аж за АИ-сетку, чтобы зверушка отстала от меня. 4) Зверушка отагрилась и уселась под кустом отдыхать 5) Самый сок: я возвращаюсь на АИ-сетку за овер9999 метров от неё, она начинает бежать на меня. Самое интересное что best_enemy == nil , а get_enemy == 0. По моему монстры не обнуляют что то у себя, тем самым и возникают проблемы с тем что они порой "видят спиной". Вот интересно мнение спеца на подобное. 3. Монстры "видят спиной", как лечить? 4. Ребят, как реализовать рандомные апгрейды в ЗП на заспавненных предметах? В наличии есть m_netpk, но не знаю какой параметр и как "подкручивать" 5. есть у кого рабочая схема работы подствольников для нпс на COC 1.4.22 ? 6. в COC 1.4.22 когда нпс стреляют из РГ-6 то у них затем в некоторой области зависает danger_inertion: стоят тупо озираются и ничего больше не делают. Мало ли у кого есть правка. 7. Пытаюсь перенести музыку из бара на базе ЧН в ЧН - в ЗП COC 1.4.22. Столкнулся с проблемой при установке комментария на музыку . Использовал oggcommentfix ver. 8 и ничего не вышло,звучит всё так же "из головы" а не от бара. Может кто подсказать в чём дело? Мб каким другим софтом коммент править? ... А наше дело маленькое - с ружьём да по болотам. (с) Поделиться этим сообщением Ссылка на сообщение