Rolan 22 Опубликовано 10 Сентября 2010 Поделиться Опубликовано 10 Сентября 2010 (изменено) Всё разобрался! Но вот только: 1-Как сделать так,что бы вместе с ГГ и NPC пил(анимка)? Изменено 10 Сентября 2010 пользователем Rolan Ссылка на комментарий
qwqwqw 117 Опубликовано 11 Сентября 2010 Поделиться Опубликовано 11 Сентября 2010 У меня вопрос-создал НПС с логикой стояния на месте [logic] active = remark1 danger = danger_ignore [danger_ignore] ignore_distance = 5 [remark1] no_move = true А они всё равно уходят куда-то (а точнее непись посаженый в лагере новичков был встречен мной у переходе на свалку) когда ГГ на другой локации. Может кто посоветовать более "сильную" логику привязывания к месту. Ссылка на комментарий
gruber 2 481 Опубликовано 11 Сентября 2010 Поделиться Опубликовано 11 Сентября 2010 (изменено) qwqwqw, Создай гулаг-тогда точно не уйдет А в случае с лагерем новичков-просто добавь его в этот лагерь ,пропиши работу именно для него Изменено 11 Сентября 2010 пользователем gruber Ссылка на комментарий
Unnamed Black Wolf 4 Опубликовано 11 Сентября 2010 Поделиться Опубликовано 11 Сентября 2010 Rolan, при запуске поедания, проверяй вокруг себя местность, и отсеивай сталкеров, потом проверяй, и запускай у них анимацию.... Ссылка на комментарий
Rolan 22 Опубликовано 11 Сентября 2010 Поделиться Опубликовано 11 Сентября 2010 Unnamed Black Wolf, А как это сделать? Просто я ещё только учусь Ссылка на комментарий
Byurrer 0 Опубликовано 12 Сентября 2010 Поделиться Опубликовано 12 Сентября 2010 (изменено) malandrinus как сделать чтоб он не удалялся это я понял как, но как добавить свои строчки в контекстное меню (правая кнопка мыши) к примеру строчку "сделать" и при нажатии на нее выполнялся мой скрипт: upgr_1.script Или как назначить на использование предмета свой скрипт? Заранее спасибо! Добавлено через 2 мин.: Scarabay да дело не в юзабельности предмета, а использовании своего скрипта при использовании этого предмета! Все в чем вся проблема, думал думал и никак не могу найти где это прописать! И во еще вопрос: как можно через скрипт определить что игра началась и лока загружена? Изменено 12 Сентября 2010 пользователем Byurrer Ссылка на комментарий
Malandrinus 615 Опубликовано 12 Сентября 2010 Поделиться Опубликовано 12 Сентября 2010 Byurrer, как добавить свои строчки в контекстное меню Не выйдет, это движковое. как назначить на использование предмета свой скрипт? Вроде как у актора есть в биндере колбек на использование предметов. Можно также прописать предмету свой биндер и в нём при выходе в оффлайн проверять наличие серверного. Если нет, значит предмет был удалён (что может произойти только при его использовании). как можно через скрипт определить что игра началась и лока загружена? level.present() Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Rolan 22 Опубликовано 12 Сентября 2010 Поделиться Опубликовано 12 Сентября 2010 Всем привет! У меня такая проблема: Я писал линейку квестов, один из них такой,просто соходить поспать.Я это реализовал,но метка после того как поспал осталась,как сделать так,что-бы она перешла на другой объект? Ссылка на комментарий
Scarabay 98 Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 Rolan, ну ты сначала удали старую метку функцией типа level.clear_object_spot() , а потом опять поставь, но уже на другой объект функцией типа level.add_object_spot() P.s. На счет функций могу ошибатся, т.к. пишу по памяти Мой YouTube-канал Ссылка на комментарий
Shadowman 939 Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 (изменено) Можно также прописать предмету свой биндер и в нём при выходе в оффлайн проверять наличие серверного... Если такое сделать, то у каждого предмета данного вида будет по своему биндеру? Не дай бог такое к консерве, колбасе или патронам привяжут - игре настанет кирдык. Или нет? Rolan, ну, наверное, метку скриптом переставлять при получении инфопоршня на новое задание (или, вернее, удалять при выполнении предыдущего и ставить при получении следующего). function add_spot_on_map(obj_id,type,text) --возможные типы type смотри в ui\map_spots.xml if obj_id then if text==nil then text=" " end -- Ставим метку на серверный объект чтобы её не пришлось обновлять level.map_add_object_spot_ser(obj_id, type, text) -- save_variable("x_marker_type_"..obj_id, type) -- save_variable("x_marker_text_"..obj_id, text) end end 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) -- del_variable("x_marker_type_"..obj_id) -- del_variable("x_marker_text_"..obj_id) end end obj_id - ид объекта, метку которого нужно ставить/удалять. Изменено 13 Сентября 2010 пользователем Shadowman Железо: Intel Core i5 9400F / 16Gb DDR4 2400MHz / SSD NVMe M.2 Samsung 970 EVO Plus 256Gb / GF GTX 1050Ti 4Gb Ось: Win10x64 Ссылка на комментарий
Garry_Galler 7 Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 (изменено) Byurrer, как назначить на использование предмета свой скрипт Вот это поставь в любой скрипт - так что бы он один раз или периодически вызывался при загрузке игры. db.actor:set_callback(callback.use_object, this.OnUseActorObject) а это будет та самая функция которая будет вызываться на юзание ГГ любого предмета function OnUseActorObject(obj, who) if obj then -- делаем проверку на использование нужного предмета if obj:section() =="communicator" then alife():create("communicator", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) -- спавним его обратно level.start_stop_menu(this.my_message(), true) --запускаем меню end end end Изменено 19 Сентября 2010 пользователем Garry_Galler Ссылка на комментарий
herurg 0 Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 А можете сказать, где вообще править логику? Я находил много статей про изменение, но так и не нашёл, где это всё делать. Всё,что есть в ЗОНЕ, должно быть УЧТЕНО, ПРИПОРЯДКОВАНО и СХОВАНО! (с) Ссылка на комментарий
Mechanic.92 16 Опубликовано 13 Сентября 2010 Поделиться Опубликовано 13 Сентября 2010 Ребят, скриптеры, нужна помощь. Я сделал визуалы актора во всех шлемах на каждую броню. Нужно написать скрипт, который меняет визуал актора, в зависимости от комбинации надетых брони+шлем, на один из моих... Ссылка на комментарий
Malandrinus 615 Опубликовано 14 Сентября 2010 Поделиться Опубликовано 14 Сентября 2010 Mechanic.92, есть вероятность, что ничего не выйдет. Для смены визуала надо перевести объект в оффлайн. А актора в оффлайн скорее всего засунуть не получится. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
antreg 178 Опубликовано 14 Сентября 2010 Поделиться Опубликовано 14 Сентября 2010 (изменено) qwqwqw, В твоей логике НПС находится под ремарком ([remark]). Ремарк - это переходное (временное) состояние, которое вставляется обычно как связующее между различными этапами логики. Под ремарком персонаж однозначно будет убегать в оффлайне, захватываться ближними, подходящими для него смарт_террейнами. Единственное,что его может удержать - это присвоить ему комьюнити = "trader". Чтобы НПС-сталкер был привязан к точке, у него должна быть логика, например, walker или camper и ещё обязательно прописать: [smart_terrains] none = true Вот простенький пример, статичного НПС, который стоит на своём месте и никуда не дёргается (только на выброс реагирует, но потом возвращается на место): [smart_terrains] none = true [logic] active = camper@demon combat_ignore = combat_ignore [camper@demon] path_walk = demon_walk path_look = demon_look meet = meet@demon danger = danger_condition@demon [danger_condition@demon] ignore_distance = 0 ignore_distance_corpse = 0 [meet@demon] use = true use_wpn = true meet_talk_enabled = true path_walk = demon_walk и path_look = demon_look Это пути данного персонажа. Они прописываются в соответствующий файл в acdc. Вот так, например: [demon_look] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = -14.6759996414185,7.38600015640259,97.9469985961914 p0:game_vertex_id = 3061 p0:level_vertex_id = 340857 [demon_walk] points = p0 p0:name = wp00 p0:flags = 0x1 p0:position = -12.9440002441406,7.38600015640259,95.0419998168945 p0:game_vertex_id = 3061 p0:level_vertex_id = 343200 path_walk - это точка, куда НПС приходит после своего спавна. Данная точка может совпадать с точкой спавна. В этом случае НПС заспавнится в точке своего назначения. А можно разнести точку спавна НПС и точку path_walk. Тогда НПС после своего спавна придёт в точку path_walk и в ней и останется потом. path_look - это точка в которую напрвлен взгляд НПС. Если нужен патруль, чтобы ходил между двух точек, то вот пример простенькой логики для постового: [smart_terrains] none = true [logic] active = walker@demon_ohr3 [walker@demon_ohr3] path_walk = demon_ohr3_walk path_look = demon_ohr3_look danger = danger_condition@demon_ohr3 [danger_condition@demon_ohr3] ignore_distance = 0 Вся разница в том, что в асдс прописаны две связанных точки пути walk и две точки look. Вот так: [demon_ohr3_look] points = p0,p1 p0:name = wp00 p0:flags = 0x1 p0:position = -54.443000793457,1.25100004673004,100.443000793457 p0:game_vertex_id = 3061 p0:level_vertex_id = 293842 p1:name = wp01 p1:flags = 0x2 p1:position = -27.3939990997314,1.25100004673004,69.2630004882813 p1:game_vertex_id = 3065 p1:level_vertex_id = 326060 [demon_ohr3_walk] points = p0,p1 p0:name = wp00 p0:flags = 0x1 p0:position = -27.3939990997314,1.25100004673004,69.2630004882813 p0:game_vertex_id = 3065 p0:level_vertex_id = 326060 p0:links = p1(1) p1:name = wp01 p1:flags = 0x2 p1:position = -54.443000793457,1.25100004673004,100.443000793457 p1:game_vertex_id = 3061 p1:level_vertex_id = 293842 p1:links = p0(1) При такой логике, патрульный идёт в первую точку walk wp00, останавливается ненадолго и смотрит в "привязанную" к этой точке, с помощью flags, точку look и потом тоже самое во второй точке. Так и ходит бесконечно от точки к точке. Изменено 14 Сентября 2010 пользователем antreg "Тайные Тропы 2" техподдержка "Ф.О.Т.О.Г.Р.А.Ф" техподдержка Ссылка на комментарий
stunder 12 Опубликовано 14 Сентября 2010 Поделиться Опубликовано 14 Сентября 2010 Remark - отличная схема. Тут конечно какой неподвижный нпс тебе нужен надо смотреть... Если нужен тупо стоящий на месте, конечно удобнее использовать walker. Но тут надо делать два пути, один - где он будет стоять, второй - куда будет смотреть. Но по-моему Ремарка удобнее. Там и звук, и анимацию можно задать. В общем без разницы как делать, все зависит от вкуса автора Мод "Жесть" В команду Two Team ("Жесть") требуется моделлер. Ссылка на комментарий
antreg 178 Опубликовано 14 Сентября 2010 Поделиться Опубликовано 14 Сентября 2010 (изменено) stalkers-life, Ремарк бесусловно отличная схема, только не надо под ремаркой оставлять НПС. Если нужно вставить ремарку, чтобы, например, отыграть какую-нибудь анимацию или ещё что, то пожалуйста вставляйте, только потом опять надо перевести НПС под схему, например, walker. Вот простой пример с включённой схемой [remark] в общую схему. [smart_terrains] none = true [dont_spawn_loot] [logic] active = walker@postovoy danger = danger_condition@postovoy [walker@postovoy] --тут НПС стоит на месте, ждёт ГГ path_walk = postovoy_walk path_look = postovoy_look meet = meet danger = danger_condition@postovoy on_info = {+skit_start_dialog_done} walker@postovoy1 --тут поговорили с этим НПС и после получения поршня, он бежит в назначенное место, сопровождая актёра. [walker@postovoy1] --бежит. path_walk = postovoy_walk1 --тут несколько точек пути прописано - маршрут следования path_look = postovoy_look1 meet = no_meet --пока бежит, с ним поговорить не получится. def_state_moving1 = run def_state_moving2 = run def_state_moving3 = run danger = danger_condition@postovoy on_info = {+skit_prishli} remark@postovoy --как добежал до точки, остановился и перешёл под ремарк [remark@postovoy] --вот он ремарк №1, под которым НПС стоит временно на месте и с ним можно говорить. anim = guard target = actor meet = meet --можно говорить danger = danger_condition@postovoy on_info = {+postovoy_first_dialog_done} walker@postovoy2 --после разговора, по факту получения поршня, НПС снова переходит в схему волкера и уходит на первую точку. [walker@postovoy2] --возвращается на первую точку path_walk = postovoy_walk2 --тут несколько точек пути, таких же, как и postovoy_walk1, но идущих в обратном порядке от маршрута postovoy_walk1 path_look = postovoy_look2 meet = no_meet --снова, пока бежит, с ним не поговорить def_state_moving1 = run def_state_moving2 = run def_state_moving3 = run danger = danger_condition@postovoy on_info = {+postovoy_mesto} remark@postovoy1 --как добежал, то перешёл под вторую ремарку, под которой отыграется анимация для НПС - "смотреть в бинокль". [remark@postovoy1] anim = binocular --смотрит в бинокль target = actor meet = meet danger = danger_condition@postovoy on_timer = 10000 | walker@postovoy3 --через десять секунд переходит в первоначальное (исходное) стостояние валкера, стоящего на месте (в данном случае он постовой). [walker@postovoy3] --вот в этом состоянии он и остаётся стоять на месте, так как точка пути postovoy_walk3 совпадает с последней точкой пути postovoy_walk2 path_walk = postovoy_walk3 path_look = postovoy_look3 meet = meet danger = danger_condition@postovoy [danger_condition@postovoy] ignore_distance = 0 ignore_distance_corpse = 0 [meet] use = true use_wpn = true meet_talk_enabled = true qwqwqw , Это можно легко сделать в точках пути в аллспавне. В нужной точке look, вставляешь анимацию. Пример: [lesnik_look] points = p0,p1,p2 p0:name = wp00|a=binocular p0:flags = 0x1 p0:position = -165.067993164063,1.29299998283386,-54.8950004577637 p0:game_vertex_id = 3033 p0:level_vertex_id = 171004 Вот, он после того, как придёт в первую точку, посмотрит в бинокль, потом пойдёт лальше по своему пути. Если и в следующей точке look назначить анимацию "смотреть в бинокль", то и там он посмотрит в бинокль и пойдёт к следующей точке. Если точек walk и look всего две и они чётко связаны через flags, то патрульный будет ходить от точки к точке и в каждой точке будет останавливаться и смотреть в Бинокль. Главное, чётко назначить связи, между собой точек walk (через link) и привязку через flags точек look к точкам walk. Там, главное, чтобы "имена" flags совпадали по тем точкам, в которые НПС приходит (walk) и куда должен смотреть (look). Имеется ввиду вот это: p0:flags = 0x1, затем, p3:flags = 0x2 и так далее. Точек walk может быть много, а точек look может быть всего две или три, например. ВОт и связи через флажки (flags) должны соответствовать чётко, не важно, это первая точка пути walk и первая точка look, или десятая точка walk и вторая точка look, главное, чтобы соответствовали флажки. Изменено 15 Сентября 2010 пользователем antreg "Тайные Тропы 2" техподдержка "Ф.О.Т.О.Г.Р.А.Ф" техподдержка Ссылка на комментарий
Vito$ 0 Опубликовано 14 Сентября 2010 Поделиться Опубликовано 14 Сентября 2010 Строгое предупреждение от администратора n6260 Научитесь сначала грамотно излагать свои просьбы. З.Ы. И чего не понятного в статьях про алл_спавн? Все достаточно доступно написано. Ссылка на комментарий
qwqwqw 117 Опубликовано 15 Сентября 2010 Поделиться Опубликовано 15 Сентября 2010 (изменено) antreg а не подскажешь ещё как на логике патруля сделать чтобы НПС ходил от точке к точке и на остановках смотрел в бинокль? Спасибо с меня плюс (ещё один ) Изменено 17 Сентября 2010 пользователем qwqwqw Ссылка на комментарий
Arhara 32 Опубликовано 17 Сентября 2010 Поделиться Опубликовано 17 Сентября 2010 (изменено) antreg, На самом деле ремарки в большой логике трудны для переваривания [remark@postovoy] --вот он ремарк №1, под которым НПС стоит временно на месте и с ним можно говорить. anim = guard target = actor meet = meet --можно говорить danger = danger_condition@postovoy on_info = {+postovoy_first_dialog_done} walker@postovoy2 --после разговора, по факту получения поршня, НПС снова переходит в схему волкера и уходит на первую точку тут всё ок, но для меньшей нагрузки намного проще и полезнее сделать простой второй валк с луком и с разрешением диалога, если Вы не подразумеваете остановку непися в той точке, в которой он получил поршен и дачу target. Анимку же можно отыграть и в любом луке - любую. Если же в ремарке - лучше сразу указать отсутствие эмоций на происходящее до вхождения актора в радиус диалога, иначе он при первом испуге сорвётся в комбат даже при нулевом дейнджере... Кроме того - есть опасения, что при повторном вхождении ГГ в онлайн к этому неписю, несмотря на прописанную логику он снова бросится в первый валк... Изменено 17 Сентября 2010 пользователем Arhara Еще 10 лет таких цен, зарплат и пенсий, и вместо переписи населения будет перекличка Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти