Tonny 4 Опубликовано 20 Июля 2009 добрый день, есть задача: свой обработчик взрыва гранаты (скриптовая граната по сути) сам момент броска гранаты отлавливаю через on_item_drop, там запоминаю gren_id=obj:id() и потом в actor_update проверяю alife:object(gren_id), таким образом отлавливаю момент когда граната перестаёт существовать (что отличает брошеную от просто дропнутой) но как оказывается граната перестаёт существовать как alife-обьект ещё задолго до того, как взорвётся, поэтому узнать координаты КУДА она упала - не получается. Т.е. задача - узнать координаты гранаты во время взрыва. Не обязательно, чтоб она вообще взрывалась штатным образом. Пробовал болт - на него on_drop не срабатывает. В идеале хотелось бы узнать не только координаты взрыва гранаты, но и точки попадения при выстреле из автомата, гранатомёта. PS: делаю для ЧН Поделиться этим сообщением Ссылка на сообщение
Tonny 4 Опубликовано 20 Июля 2009 Bak похоже на то. Может, есть способ отловить момент выстрела из любого оружия? фактически ищу способ убить неубиенного кровососа в ЧН, так что подойдёт любой способ сделать кровососа в режиме невидимости убиенным, или каким-то чудом отключить ему невидимость вообще. MIXATOR в АМК моде есть оффлайновое заполнение тайников скриптами, для ЧН есть отдельный мод для этого же самого (на этом же форуме) Поделиться этим сообщением Ссылка на сообщение
Tonny 4 Опубликовано 20 Июля 2009 (изменено) MIXATOR для ЧН тут: http://www.amk-team.ru/forum/index.php?showtopic=1772 автор сделал вырезку из АМК для ТЧ, соответственно, есть на что ориентироваться и что искать в скриптах АМК. Совсем пальцем в конкретные строчки не покажу. Изменено 20 Июля 2009 пользователем Tonny Поделиться этим сообщением Ссылка на сообщение
Tonny 4 Опубликовано 21 Июля 2009 попробую вопрос по-другому поставить, авось кто знает может, кто подскажет как выполнить один из вариантов: 1. определить момент выстрела из оружия 2. определить точку попадения пули 3. определить координаты брошенной гранаты (перед взрывом) или болта (дополнительно) 4. заставить кровососа в ЧН стать видимым и/или уязвимым. 5. (Кстати, невидимый кровосос является game_object?) спасибо за внимание Поделиться этим сообщением Ссылка на сообщение
Tonny 4 Опубликовано 21 Июля 2009 IQDDD да, имею представление и использовал. О коллбеках имею представление только о тех, которые встречались в каких-либо из модов, что мне попадались. Но отловить момент выстрела кроме как в update актёра проверять количество патронов в магазине оружия в слотах - фантазии пока не хватило. п.2. для меня не критичен, 1 и/или 3 - актуальнее (граната берестаёт быть алайф-обьектом задолго до взрыва, а на болт не реагирует on_item_drop) а всё это нужно восновном для п.4 (раз кровосос неуязвим - сделать против него спец.оружие) Поделиться этим сообщением Ссылка на сообщение
Tonny 4 Опубликовано 17 Августа 2010 подскажите пожалуйста, есть сталкер. У него вообще нет оружия. Как это можно проверить для оффлайн-обьектов? или только если сталкер - gameobject (через итерацию инвентаря? или можно сразу проверить оружие в слотах 1 и 2 и если нет, то другого и не будет?) ? так вот, у сталкера оружия нет, я спавню ему в инвентарь случайный автомат. Он возьмёт его в руки сам? далее - патроны, если я ему не заспавню патроны, то стрелять ему будет нечем? если заспавню, но они закончатся - тоже стрелять нечем будет? (Неписи стреляют непрерывно, и у них вроде как не заканчивается, но подозреваю что есть какой-то ньюанс, который я упустил) спасибо за внимание. Сообщение от модератора n6260 Патронов у нпс должно быть больше чем на одну обойму. Хотя бы на один патрон. Иначе отстреляет обойму и все. Строгое предупреждение от модератора n6260 Юзай заглавные буквы. Поделиться этим сообщением Ссылка на сообщение
Tonny 4 Опубликовано 17 Августа 2010 (изменено) Подскажите пожалуйста следующее: в теме "Справочник по функциям и классам" указано, что можно работать со слотами НПС, но код вида local PistolSlot = obj:item_in_slot(1) local AutomaticSlot = obj:item_in_slot(2) не срабатывает, ругается на item_in_slot: [error]Expression : !m_error_code [error]Function : raii_guard::~raii_guard [error]File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp [error]Line : 748 [error]Description : l:\stalker-cop\gamedata\scripts\ts_mod_cop.script:230: attempt to call method 'item_in_slot' (a nil value) Задача описана в предыдущем посте, для неписей без оружия заспавнить его случайным образом. for a=1,65534,1 do -- полный перебор local obj = alife():object(a) if obj then if IsStalker(obj) and obj ~= db.actor and obj:alive() and is_object_online(obj) then --только сталкеры, живые и с gamedata local PistolSlot = obj:item_in_slot(1) --ругается :( local AutomaticSlot = obj:item_in_slot(2) if (PistolSlot and PistolSlot:id() == nil) and (AutomaticSlot and AutomaticSlot:id() == nil) then -- тут спавним оружие и патроны end end end end Спасибо за внимание. PS: забыл указать версию: Зов Припяти, 1.6.02 Изменено 17 Августа 2010 пользователем Tonny Поделиться этим сообщением Ссылка на сообщение
Tonny 4 Опубликовано 18 Августа 2010 (изменено) SkyLoader Как раз была проблема в адаптпции под другого сталкера malandrinus Спасибо, понял, помогло. Вопрос N3: Для серверных обьектов можно получить информацию о том, есть ли у них оружие? Вопрос N4: Насколько понимаю, для функции alife():create всё равно - серверный обьект или клиентский, так как передаётся его id, которое одинаковое, так? Вопрос N5: Можно ли перебрать клиентские обьекты менее ресурсоёмко, чем через перебор всех 65534 серверных? Т.е. не через for i = 1,65534 do .... Спасибо за внимание. Изменено 18 Августа 2010 пользователем Tonny Поделиться этим сообщением Ссылка на сообщение
Tonny 4 Опубликовано 18 Августа 2010 Charsi Понял. То, что надо, спасибо! Строгое предупреждение от модератора n6260 Получите предупреждение за флуд. Поделиться этим сообщением Ссылка на сообщение
Tonny 4 Опубликовано 2 Сентября 2010 Подскажите, как в обьекте типа "оружие" (isWeapon(obj) == true) узнать список установленных у техников апгрейдов? Не предустановленных в конфигах, а именно в процессе игры? Поделиться этим сообщением Ссылка на сообщение