SkyLoader 53 Опубликовано 8 Сентября 2010 (изменено) Народ, у меня два вопроса, подскажите: 1)Как повернуть скриптово камеру (или изменить direction() актора)? Ни в какую не работает. Вот вроде родной метод, и он не работает, вернее делает дирекцию на 0,0,0: db.actor:set_actor_direction(dir) // Пришли полностью скрипт как ты пытаешся изменить направление. Непонятно что именно у тебя такое dir. А метод рабочий... Министр. Ответ: local obj = alife():story_object(006) local dir = obj:get_current_direction() --\вылет: nil get_current_direction() --local dir = vector():set(45, 34, 63) db.actor:set_actor_direction(dir) Я хочу сделать поворот камеры на непися. 2)Как поставить игру на паузу, есть вариант device():pause(), но есть какой-то вариант, когда включается меню, то происходит такая пауза, как включить такую паузу? // Конечно же включив меню . Министр. Ответ: Мне надо включить мое окно, но чтобы была пауза, как в меню, т.е. без надписи "Пауза" (в общем, остановка всего и вся: партиклы анимации и тп.) ------------ qwqwqw, Вешаем метку в ПДА по Sid'у(Например на Волка) (Из журнала Stalk15): Код: local obj = alife():story_object( 6 ) -- 6 - сид Волка local obj_id = obj.id function add_spot_on_map(obj_id,type,text) if obj_id then if not text then text = "no_text" end level.map_add_object_spot_ser(obj_id, type, text) end end Вызываем: function add_spot_on_map2(obj_id,type,text) имя_файла.add_spot_on_map(obj.id,"green_location","Текст") end Метку можно убрать вот так: local obj = alife():story_object( 6 ) local obj_id = obj.id function remove_spot_from_map(obj_id,type) if obj_id and level.map_has_object_spot(obj_id, type) ~= 0 then level.map_remove_object_spot(obj_id, type) end end эту вызывать: function remove_spot() this.remove_spot_from_map(obj.id,"green_location") end Изменено 9 Сентября 2010 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 9 Сентября 2010 (изменено) здесь ты пытаешься получить дирекцию нпс, поэтому и вылет наверно. Да, пытаюсь, что мне и надо. Что только не так? (я в луа хелп это видел). А это - набор координат для position, если не ошибаюсь. Ясно, я уже понял. 3, уже второй вопрос: какой метод отвечает за увеличение зума, как при прицеливании из оружия? Изменено 9 Сентября 2010 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 10 Сентября 2010 (изменено) malandrinus, Ясно все теперь. local dir = obj:get_current_direction() --\ почему вылет? А как медленно повернуть камеру на непися? Я знаю только, что надо использовать state_mgr_direction.script. Изменено 10 Сентября 2010 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 10 Сентября 2010 malandrinus, Это метод для класса CProjector. Для какого объекта надо получить направление? С непися, чтобы сделать медленный поворот на него. Кстати этот метод применим для монстров. Как и любое другое повторяющееся во времени действие - поставить изменение направление на апдейт. И от этого медленнее будет? Такой поворот при "поцелуя" кровососа есть Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 10 Сентября 2010 malandrinus, Непонятно. Для того, чтобы посмотреть на NPC нужно знать его положение, а направление-то зачем? А какой метод за это отвечает, если нужна позиция? Будет так, как ты захочешь. Естественно, надо будет запрограммировать вычисление направление взгляда в зависимости от времени. А это разве возможно? Как реализовать? Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 10 Сентября 2010 (изменено) malandrinus, так что ли? vector():set(npc:position()) Да, это возможно. На каждом апдейте меняешь понемногу угол поворота, приближая его к конечному. vector():set(npc:position()) - и как увеличивать? Если бы было set_actor_direction(), то я знаю, как сделать, а с вектором не догоняю ------------- Дополнение: Спасибо за подсказку. Изменено 10 Сентября 2010 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 11 Сентября 2010 malandrinus, спасибо за код. Но я все равно не догоняю, как использовать ее? Я, например, из меню ее должен запустить. if dik == DIK_keys.DIK_X then local npc = alife():story_object(006) --Ну что сюда запихнуть? end Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 13 Сентября 2010 (изменено) qwqwqw, это в данном случае точка движения и точка, куда смотрит непись, когда выполняет работу. P.S. Сообщение с сп удали, там и так все захламляется. ------------------------ Вопрос: Как принудительно вывести непися из оффлайна, если я сменил гулаг ему, и он стоит рядом со мной. local npc = alife():object("esc_wolf") local tbl = amk.read_stalker_params(npc) tbl.custom = "[smart_terrains]\nesc_stone_lager=true" amk.write_stalker_params(tbl, npc) После этого он уходит в оффлайн, а как его оттуда вытащить? // В шапке есть ссылка на stalker-wiki, там есть статья о уводе/вводе непися в оффлайн. Министр. Изменено 13 Сентября 2010 пользователем Министр Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 13 Сентября 2010 Министр, дело в том, что я использую эти методы, но ничего не меняется. qwqwqw, это точка, где он должен быть. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 21 Сентября 2010 А что делает эта функция (по-детальней): -- переключает камеру на монстра или на актёра function alien_control( actor, npc, p ) printf( "alien_control(%s)", p[1] ) npc:set_alien_control( p[1] == "true" ) end И при обращении к этой функции, что надо писать в аргумент P (что в таблицу пихать?)? Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 21 Сентября 2010 (изменено) Я недавно нашел такую инфу, может кто хочет сыграть с вырезанным монстром - зомби-блевуном (Ставим на апдейт монстера): if self.object:section()=="zombie_beee" and time_global()>(self.charge_time or 0)+5000 and 3>(self.charges_done or 0) and not is_fake and self.object.health>0.1 then local target = self.object:get_enemy() or db.actor local dist = target:position():distance_to(self.object:position()) if dist < 10 and self.object:see(target) then local dir=self.object:direction() local delta=vector():set(self.object:position()):sub(target:position()) local scalarmul=(delta.x*dir.x+delta.z*dir.z)/math.sqrt(delta.x*delta.x+delta.z*delta.z) if scalarmul < -0.8 then bind_monster.play_particle(self.object, { obj=self.object, particle="amk\\zomb_beee", pos=self.object:bone_position("bip01_head"), dir=amk.sub(target:bone_position("bip01_head"),self.object:bone_position("bip01_head")), gravity=vector():set(0,-0.01,0), len=10, life_time=2000, give_dmg=true, target=target, sound="monsters\\zombie\\zombie_take_damage_3" }) self.charge_time=time_global() self.charges_done=(self.charges_done or 0) + 1 end end end ------------------- Garry_Galler, malandrinus, ясно, спс Изменено 22 Сентября 2010 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 24 Сентября 2010 Народ, а есть метод ли стрельбы из оружия? Может это используется как юзание предмета? В луа хелпе не нашел ничего. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 25 Сентября 2010 malandrinus, npc:set_item(<действие>, <ствол>, <размер очереди>, <пауза между очередями>) А этот метод для актора то работает? И в скриптах видел вместо "<пауза между очередями>" - заданный вектор. Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 25 Сентября 2010 (изменено) malandrinus, т.е. метода выстрела из оружия для ГГ нету что ли? // А нажатие на левую кнопку мыши ужо не подходит? Министр. Очень смешно... Я хочу заставить ГГ самому выстрелить из пушки, когда надо. Изменено 25 Сентября 2010 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 29 Сентября 2010 (изменено) гопыч, в bind_stalker => actor_binder:on_item_take (obj) вставляешь: if obj and obj:section() == "device_pda" then local snd_obj = xr_sound.get_safe_sound_object([[путь\до\звука]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 5.0) end Как видишь, надо вставить путь до звука. // Зачем лишние проверки? Одной проверки секции предмета достаточно. Министр. Министр, Как говорил Artos, проверка на существование итема не лишняя. // При этом и достаточно не нужная. Министр. Изменено 30 Сентября 2010 пользователем Министр Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 7 Октября 2010 Вопрос: как можно отследить биндовские команды? Например: turn_engine (запуск двигателя) Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 28 Октября 2010 ФеНиКс, а ты ему класс торговца прописал, что ли? Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 30 Октября 2010 (изменено) Народ, как вызвать панику у непися или монстра? Пробовал такими методами: set_custom_panic_threshold(30) set_default_panic_threshold() Пробовал как с серверными, так и клиентскими объектами. Непись и монстр не реагируют. В чем дело? _______________________________ гопыч, у тебя модель не подходящая. Изменено 30 Октября 2010 пользователем SkyLoader Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 31 Октября 2010 Можно ли скриптово отыграть анимацию непися, чтобы был отключен денжер, т.е. непись ни на что не реагировал? p.s. ВСЕХ С Хеллоуином! Поделиться этим сообщением Ссылка на сообщение
SkyLoader 53 Опубликовано 31 Октября 2010 (изменено) gruber, я имел ввиду через скрипт Изменено 2 Ноября 2010 пользователем Министр Поделиться этим сообщением Ссылка на сообщение