Serge_888 114 Опубликовано 30 Октября 2018 Вопросики вылезли. Последний раз скрипты редактировал лет 8 назад. Помогите кто может. Делал для ЗП магазинный гранатомёт с отъёмным магазином на основе wpn_rg6. Отключил tri_state_reload и добавил anm_reload, что бы X-Ray не ругался. Вроде заработало, но по исчерпанию 1-го магазина переставал стрелять, несмотря на перезарядку. Тогда сделал маленький квадратик в инвентарь, что бы можно было положить в быстрый слот (F1-F4) и на его использование повесил скрипт, который удаляет оружие из игры и тут же выдаёт такое-же только новое. Помогло. Но счастье было не полным. Не срабатывает очистка магазина. Заполнение неполным количеством зарядов. При удалении оружия из активного слота, оно исчезает почти мгновенно. Хотелось бы помедленнее, но попытка запустить анимацию тоже не сработала. Подскажите, где накосячил? Скрытый текст local n_act_slot = db.actor:active_slot() local sm_act_item = db.actor:item_in_slot(n_act_slot) -- --> wpn_fn2000_nimble (based on rg6) <=--------------------------------------- if sm_act_item and ("wpn_fn2000_nimble"==sm_act_item:section()) then -- Условие срабатывания local cur_ammo_mag = sm_act_item:get_ammo_in_magazine() cur_ammo_mag = 4 -- для теста local cond = sm_act_item:condition() local oItem = db.actor:object(sm_act_item:section()) -- db.actor:hide_weapon() -- Прячет и Запрещает доставать оружие(слишком быстро) -- db.actor:active_item:play_hud_animation(system_ini():"wpn_rg6m_hud","anm_hide",true) -- ^-- почему не работает ??? alife():release(alife():object(oItem:id()),true) alife():create("wpn_fn2000_nimble", vector(), 0, 0, db.actor:id()) sm_act_item = db.actor:item_in_slot(n_act_slot) sm_act_item:unload_magazine() -- <- не работает :-( почему? db.actor:item_in_slot(n_act_slot):set_ammo_elapsed(7) -- <- тоже не работает. Заранее спасибо. Поделиться этим сообщением Ссылка на сообщение
Serge_888 114 Опубликовано 30 Октября 2018 1 час назад, naxac сказал: это следует делать через level.client_spawn_manager по этому поводу, гугель выдал пример: level.client_spawn_manager():add(obj.id, 0, spawn_callback, "доп_аргумент") аргументы метода: obj.id -- это айди объекта на который ставим каллбек 0 -- это айди эктора - нафиг не нужно, но нужно spawn_callback -- имя функции которая вызовется при переходе объекта в онлайн "доп_аргумент" -- дополнительный аргумент для функции spawn_callback, - что хотим то и передаем, если оно конечно надо, либо вообще ничего не пишем. -- сюда ставим вызов нужного нам действия при переходе объекта в онлайн Код: function spawn_callback(arg, iId, gObj) news_manager.send_tip(db.actor, "Каллбек на переход в онлайн вызван", 0, "trader", 10000) -- снимаем каллбек, чтобы он не вызывался каждый раз когда объект снова окажется в онлайне level.client_spawn_manager():remove(iId, 0) end принимаемые параметры: arg - тот самый дополнительный аргумент iId - айди объекта на который поставлен каллбек gObj -- клиентская юзердата объекта на который поставлен каллбек если у меня будет: level.client_spawn_manager():add(obj.id, 0, set_ammo_elapsed, cur_ammo_mag) мне надо будет "снимать каллбек"? И что писать вместо iId ? P.S. спасибо за быстрый ответ. Поделиться этим сообщением Ссылка на сообщение
Serge_888 114 Опубликовано 31 Октября 2018 4 часа назад, aromatizer сказал: Эта штука называется XM29 OICW. Чегой-то это какой-то неправильный OICW. Сколько не смотрю, вылитый fn2000 И гранатомёт однозарядный. И судя по всему, он вообще для ТЧ. Совсем не подходит. К тому-же сделать в движке сталкера магазинный автомат + магазинный гранатомёт (два в одном оружии) будет малореально. Или движек править, или скриптами обвесить, что-бы каждый чих перехватывали и обрабатывали. Ну для чистого ЗП может и получится, а что-бы потом засунуть это в какой-нибудь понравившийся мод, работы будет почти столько-же. @НаноБот, у меня не РПГ-7. У меня несуществующий магазинный гранатомёт на ВОГ-25. Сначала, думал быстренько сделать прикольную стрелялду, а то со временем, много гранат накапливается. А когда полезли ограничения движка, стало как-то жалко бросать. Поделиться этим сообщением Ссылка на сообщение
Serge_888 114 Опубликовано 2 Ноября 2018 Продолжаю мучить гранатомёт. Почти всё заработало кроме анимации. db.actor:item_in_slot(n_act_slot):play_hud_animation("lancew_rg6m_holster", true) даёт ошибку Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : d:\stalker3\gamedata\scripts\multitool.script:24: attempt to call method 'play_hud_animation' (a nil value) подскажите как исправить? Поделиться этим сообщением Ссылка на сообщение
Serge_888 114 Опубликовано 2 Ноября 2018 4 часа назад, Zagolski сказал: Ф-ции play_hud_animation не существует Извиняюсь. Встретил упоминание, поискал в гугле, скопипастил. Там был вроде-как пример использования. А есть что-нибудь работающее для проигрывания анимаций для худа в ЧН/ЗП ? Поделиться этим сообщением Ссылка на сообщение
Serge_888 114 Опубликовано 10 Ноября 2018 31 минуту назад, Mr.Srears сказал: может, кто-нибудь дать примерный набросок скрипта с проигрованием анимации у ствола? Мне тут неделю назад популярно объяснили, что такого не существует. А то-что выдаёт поисковик, это хотелки, обращённые к тем, кто пытается править движек. И делает всякие Х-Ray экстеншины. Пытается делать... Хотя, в каком-то моде видел, как из аптечки шприц вкалывали. Такой анимки в оригинале не было. Вроде сами добавили. Но что при этом исправли - большой вопрос. Поделиться этим сообщением Ссылка на сообщение
Serge_888 114 Опубликовано 11 Ноября 2018 У беретты, сиг-220, ЮСП-45 и Р99 по дефолту самого начала класс WP_LR300. У пм, пб, кольта и ДЕ - WP_PM. У HPSA - свой WP_HPSA. Добавь себе однорукий пп2000 и не мучайся ду..., гхм, я хотел сказать, ещё можно добавить АПС из свежих модов. Или ОЦ-33. 1 Поделиться этим сообщением Ссылка на сообщение
Serge_888 114 Опубликовано 3 Февраля 2019 Подскажите как в скрипте поставить/убрать на автомат прицел в чистом ЗП ? Поделиться этим сообщением Ссылка на сообщение
Serge_888 114 Опубликовано 6 Июля 2020 У меня тоже вопросик. По ЗП. Нашел на сталкерине: function set_ammo_elapsed(number) void set_ammo_elapsed(int ammo_elapsed) заряжает магазин количеством патронов, равным ammo_elapsed. Размер магазина игнорируется. function unload_magazine() void unload_magazine() разряжает магазин оружия. Оружие должно быть в инвентаре/руках объекта CAI_Stalker. Патроны из ствола пропадают. Аргументов не принимает. А как это должно выглядеть в самом скрипте? Можно примерчик кода. А то, до сих пор в основном использовал функции которые получают значения, а не задают. И вообще, это было в 18-ом году. Сам удивился. Поделиться этим сообщением Ссылка на сообщение
Serge_888 114 Опубликовано 7 Июля 2020 Upd: Почему не срабатывает? local wpn = db.actor:active_item() local update_ammo = 5 wpn:set_ammo_elapsed(update_ammo) 1 Поделиться этим сообщением Ссылка на сообщение