abramcumner 1 159 Опубликовано 28 Июня 2011 Поделиться Опубликовано 28 Июня 2011 (изменено) А я думал, все используют старый метод, когда просто НПС поворачивается от аномалии. Спасибо за ответ. Надо будет глянуть, правда не совсем понятно как из аномалии in\out рестрикторы выдрать. ничего выдирать не надо. Все аномалии унаследованы от рестриктора. Просто передаешь таблицу из нужных аномалий в функцию и все. Посмотри как используется в АМК или в описании функций Маландринуса. Понятие in, out применяется уже к НПЦ. В in-рестрикторы НПЦ нельзя заходить, Из out-рестрикторов выходить. (Вроде так - лучше уточнить - все время путаю). То есть аномалии добавляются только в тот тип рестрикторов, куда нельзя входить. Обход без рестрикторов был в первых версиях у Red75, и то он потом на рестрикторах сделал, все остальные обходы делались на рестрикторах Суть в том, что хочу перед вызовом функции пустить счётчик, а после вызова функции остановить и глянуть, сколько времени прошло после вызова функции. Специально для этого есть класс в lua_help profile_timer. Изменено 28 Июня 2011 пользователем abramcumner Ссылка на комментарий
panzyuza 41 Опубликовано 28 Июня 2011 Поделиться Опубликовано 28 Июня 2011 (изменено) А так через xr_conditions можно передать параметры? function time_ust(t1,t2) local t1 = p[1] local t2 = p[2] return level.get_time_hours() >= t1 and level.get_time_hours() <= t2 end А параметр так [smart_terrains] esc_lager = {=time_ust(6,8)} Изменено 28 Июня 2011 пользователем panzyuza AVS_LOCATION_MOD Ссылка на комментарий
*Shoker* 322 Опубликовано 28 Июня 2011 Поделиться Опубликовано 28 Июня 2011 (изменено) Да, но немного по другому, в function time_ust(t1,t2) если я не ошибаюсь нужно писать так: function time_ust(actor, npc, p) t1 = p[1] t2 = p[2] А в esc_lager = {=time_ust(6,8)} заменить на esc_lager = {=time_ust(6:8)} abramcumner Спасибище! Изменено 28 Июня 2011 пользователем *Shoker* Можно просто Shoker, форум АМК съел моё старое имя и не хочет отдавать о_О Мастер аномалий на свою заднюю точку. Ссылка на комментарий
SibireaStalker 0 Опубликовано 30 Июня 2011 Поделиться Опубликовано 30 Июня 2011 Может не в тему конечно... В билдах есть такая консольная команда jump_to_level. Можно ли её как-нибудь в ЗП возродить? Я Повелитель не очень люблю - он у меня очень много времени сжирает Выводы модмейкера: 1)Вылетает - это хорошо. Значит, работает 2) Если хочешь сделать что-то хорошо, делай сам! 3) Если падёшь духом, падёт и мод. 4) Он живой... Ссылка на комментарий
strelok200 0 Опубликовано 30 Июня 2011 Поделиться Опубликовано 30 Июня 2011 Дайте скриптовую функцию : Возможность наладить отношение с кланами за деньги. В солянке вроде была Создаю глобальный мод с новыми локациямЭ Ссылка на комментарий
serega-gamer 0 Опубликовано 1 Июля 2011 Поделиться Опубликовано 1 Июля 2011 Привет всем народ пытаюсь совместить 2 мода Helicopter AI+PZRK и Stories revival mod v0.6 подскажите пожалуйста ка бы мне совместить эти функции в _g скрипте function printf(fmt,...) log(string.format(fmt,...)) end function qqq(n) local scr = true local con = true local k = "debug data QQQ "..tostring(n) if scr then news_manager.send_tip(db.actor, k, nil, nil, 5000) end if con then get_console():execute ("load "..k) get_console():execute ("flush") end end function parse_data(str) local string_parts = {} if str == nil then string_parts[1] = nil return string_parts end local str_beg,str_end str_end = str local split_pos = find_split_pos(str_end) while split_pos ~= nil do str_beg, str_end = split_string(str_end,split_pos) table.insert(string_parts,str_beg) split_pos = find_split_pos(str_end) end table.insert(string_parts,str_end) return string_parts end function find_split_pos(str) local split_pos = string.find(str,",") if split_pos == nil then return nil end local br1_pos = string.find(str,"(",1,true) local br2_pos = string.find(str,")",1,true) if br1_pos ~= nil and br2_pos ~= nil and br1_pos < br2_pos and split_pos > br1_pos then local str_end1 = string.sub(str,(br2_pos +1),string.len(str)) if string.find(str_end1,",") ~= nil then split_pos = br2_pos + string.find(str_end1,",") else split_pos = nil end end return split_pos end function split_string(str,split_pos) local str_beg = (string.sub(str,1,split_pos-1)) local str_end = string.sub(str,(split_pos+1),string.len(str)) return str_beg,str_end end и function printf(fmt,...) -- local arg={...} -- if arg==nil or arg[0]==nil then -- mylog(fmt) -- else -- mylog(string.format(fmt,...)) -- end end local bufferedmessages={} function mylog(msg) -- if db and db.actor then -- if bufferedmessages then -- for k,v in ipairs(bufferedmessages) do -- db.actor:give_game_news(v, "ui\\ui_iconsTotal", Frect():set(0,0,100,100), 0, 15000) -- end -- bufferedmessages=nil -- end -- db.actor:give_game_news(msg, "ui\\ui_iconsTotal", Frect():set(0,0,100,100), 0, 15000) -- else -- table.insert(bufferedmessages,msg) -- end end Добавлено через 2 мин.: Забыл сказать первый код из Helicopter AI+PZRK ну а второй я думаю понятно откуда Строгое предупреждение от модератора kokkai Большие массивы прячем под спойлер Реклама любых модов бесплатно на моём сайте писать в личку Ссылка на комментарий
Gektor 0 Опубликовано 1 Июля 2011 Поделиться Опубликовано 1 Июля 2011 День добрый. Подскажите пожалуста, можно ли в зове припяти прописать аним поинту через логику другую анимацию? если да то как? Заранее спасибо. Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу. Ссылка на комментарий
Clayman 104 Опубликовано 1 Июля 2011 Поделиться Опубликовано 1 Июля 2011 Gektor, можно конечно, секция будет выглядеть так: [animpoint@нужное_название] cover_name = название_смарт_кавера avail_animations = sleep; - название нужной анимации. А вот можно ли в такой секции прописывать звуки, которые будет издавать нпс и как это сделать хотелось бы и мне узнать. Ссылка на комментарий
Gektor 0 Опубликовано 1 Июля 2011 Поделиться Опубликовано 1 Июля 2011 Clayman, почемуто не срабатывает. Для того чтобы сработало в самом смарт_кавере не должно быть анимок прописано? Или я гдето в логике накосячил? [logic@esc_vishka_animp_1] active = animpoint@esc_vishka_animp_1 suitable = true prior = 100 [logic@esc_vishka_animp_2] active = animpoint@esc_vishka_animp_2 suitable = true prior = 90 [logic@esc_vishka_animp_3] active = animpoint@esc_vishka_animp_3 suitable = true prior = 90 [animpoint@esc_vishka_animp_gen] avail_animations = sit_ass use_camp = true meet = meet@esc_vishka_animpoint_meet [meet@esc_vishka_animpoint_meet] close_anim = nil close_victim = nil far_anim = nil far_victim = nil close_distance = 0 far_distance = 0 use = {=actor_enemy} false, {=dist_to_actor_le(3)} true, false snd_on_use = {!dist_to_actor_le(3)} nil meet_on_talking = false [animpoint@esc_vishka_animp_1]:animpoint@esc_vishka_animp_gen cover_name = esc_vishka_lager_animpoint_1 avail_animations = sit_ass [animpoint@esc_vishka_animp_2]:animpoint@esc_vishka_animp_gen cover_name = esc_vishka_lager_animpoint_2 avail_animations = sit_ass [animpoint@esc_vishka_animp_3]:animpoint@esc_vishka_animp_gen cover_name = esc_vishka_lager_animpoint_3 avail_animations = sit_ass Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу. Ссылка на комментарий
_Призрак_ 11 Опубликовано 1 Июля 2011 Поделиться Опубликовано 1 Июля 2011 Оставь код из Helicopter AI+PZRK И добавь функцию function mylog(msg) end И будет тебе счастье Freedom Ссылка на комментарий
panzyuza 41 Опубликовано 1 Июля 2011 Поделиться Опубликовано 1 Июля 2011 а можно ли скриптово вывести худ предмета? AVS_LOCATION_MOD Ссылка на комментарий
7.9 174 Опубликовано 1 Июля 2011 Поделиться Опубликовано 1 Июля 2011 Если 3DHUD, то 10 из 9 - нет. Если 2DHUD - чуть позже будет "почти" полноценная система... Пока можешь попробовать прототип (file.qip.ru/file/120871441/4910c4e0/docviewer_v203.html) - не совсем худ, но внешний вид... Хотя, - смотря, что именно требуется... всё легко Ссылка на комментарий
Clayman 104 Опубликовано 2 Июля 2011 Поделиться Опубликовано 2 Июля 2011 Gektor, а что конкретно не срабатывает? НПС вообще под логику не берется или анимпоинт занимает, но нужную анимацию не играет? Да и еще, это ты случайно не посиделки-болталки у костра пытаешься делать? Ссылка на комментарий
Gektor 0 Опубликовано 2 Июля 2011 Поделиться Опубликовано 2 Июля 2011 Аним поинт занимает, но нужную анимацию, установленую в логике, не отыгрывает. Да, пытаюсь сделать посиделки у костра. Вот только сидят они у меня на воздухе. Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу. Ссылка на комментарий
Clayman 104 Опубликовано 2 Июля 2011 Поделиться Опубликовано 2 Июля 2011 (изменено) Ну, для начала, чтобы в ЗП была анимация sit_ass я устанавливал скрипты от комрада nuclia. Для посиделок у костра, логику не нужно писать, достаточно поставить анимпоинты с установленной анимацией и накрыть это дело камп-зоной, тогда нпс будут в смарте автоматом как работы занимать эти анимпоинты и травить истории и лабать тяжелый рок на гитаре Цитирую урок от Nuclia: Смарт-каверы в ЗП. Применяются в основном в двух случаях: 1.- вместо точек путей в логике эксклюзивов. 2.- для кампов - посиделки у костра. Начнем с посиделок.Добавим в олл.спавн в зону нужного нам смарт-террейна несколько смарт-каверов и камп-зону "alife_zaton.ltx" [20001] ; cse_abstract properties section_name = camp_zone name = zat_a1_camp position = 241.788421630859,14.009066619873,467.594360351563 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 6 distance = 0 level_vertex_id = 1382565 object_flags = 0xffffff3e custom_data = <<END [camp] cfg = scripts\camp.ltx END ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 5.84479999542236 ; cse_alife_space_restrictor properties restrictor_type = 3 [20002] ; cse_abstract properties section_name = smart_cover name = zat_a1_animpoint_1 position = 241.788421630859,14.009066619873,466.594360351563 direction = 0,3.13,0 ; cse_alife_object properties game_vertex_id = 6 distance = 0 level_vertex_id = 1382565 object_flags = 0xffffffbf ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_smart_cover properties cse_smart_cover__unk1_sz = animpoint_sit_low cse_smart_cover__unk2_f32 = 0 enter_min_enemy_distance = 15 exit_min_enemy_distance = 10 ; se_smart_cover properties last_description = animpoint_sit_low loopholes = animpoint_sit_low,1 [20003] ; cse_abstract properties section_name = smart_cover name = zat_a1_animpoint_2 position = 240.788421630859,14.009066619873,468.594360351563 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 6 distance = 0 level_vertex_id = 1382565 object_flags = 0xffffffbf ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_smart_cover properties cse_smart_cover__unk1_sz = animpoint_sit_low cse_smart_cover__unk2_f32 = 0 enter_min_enemy_distance = 15 exit_min_enemy_distance = 10 ; se_smart_cover properties last_description = animpoint_sit_low loopholes = animpoint_sit_low,1 [20004] ; cse_abstract properties section_name = smart_cover name = zat_a1_animpoint_3 position = 242.788421630859,14.009066619873,468.594360351563 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 6 distance = 0 level_vertex_id = 1382565 object_flags = 0xffffffbf ; cse_shape properties shapes = shape0 shape0:type = sphere shape0:offset = 0,0,0 shape0:radius = 2 ; cse_smart_cover properties cse_smart_cover__unk1_sz = animpoint_sit_low cse_smart_cover__unk2_f32 = 0 enter_min_enemy_distance = 15 exit_min_enemy_distance = 10 ; se_smart_cover properties last_description = animpoint_sit_low loopholes = animpoint_sit_low,1 Все - лагерь для посиделок готов, собираем все с предыдущими наработками. Важный момент - шейп камп-зоны должен покрывать смарт-каверы, иначе получатся слишком скучные посиделки - не будут травить анекдоты и прочее. За направление взгляда отвечает дирекшн смарт-кавера. Попробуй сделать пока так, с анимацией sit_low. Добавлено через 1 мин.: А если висят в воздухе, значит координаты смарт-кавера неправильные. Изменено 2 Июля 2011 пользователем Clayman Ссылка на комментарий
Gektor 0 Опубликовано 2 Июля 2011 Поделиться Опубликовано 2 Июля 2011 Ну собственно именно эта анимка была прописана в самом смарт кавере . Вопрос как раз и был в том чтоба прописать через логику анимку не из списка СДК. Выходит без шаманства со скриптами смарт каверов никак нужную анимку не проткнеш? Я так понял, что анимки логика смарт кавера черпает из state_mgr_animstate_list_animpoint.script и state_mgr_animation_list_animpoint.script так? И именно по этому игра не находит анимки и ставит ту что в смарт кавере? А можно ли гдето ковырнуть, чтобы туда и из остальных файлов со списками анимок бралось? если да то как? Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу. Ссылка на комментарий
Clayman 104 Опубликовано 2 Июля 2011 Поделиться Опубликовано 2 Июля 2011 Да нет же, все работает. Шаманство со скриптами нужно чтобы добавить в анимпоинты недостающие анимации. А чтобы использовать стандартные из файла state_lib.script достаточно сделать секцию логики как я выше писал. И неважно что прописано в настройкахх смарт-кавера в сдк (аллспавне). Вот пример простейшей логики, я сделал научника в лагере новичков на кордоне, который днем бродит вокруг аномалии с детектором а ночью идет спать в лагерь новичков. Для дневной работы сделал обычный путь, а для сна что-то лень было ставить вей-поинт, ткнул смарт-кавер в нужном месте (анимация в сдк прописана любая, вроде sit_low). [logic@esc_sci] suitable = {=check_npc_name(esc_sci)} active = walker@esc_sci prior = 100 [walker@esc_sci] path_walk = walker_1_walk path_look = walker_1_look on_info = {!is_day} animpoint@esc_sci [animpoint@esc_sci] cover_name = esc_sci_sleep_smart_cover avail_animations = sleep on_info = {=is_day} walker@esc_sci И все работает. Ну на самом деле это я упрощенный вариант привел, там у меня еще секции на случай выбросов добавлены, куды ему бежать, секции [meet], но в таком виде все должно работать. Ссылка на комментарий
panzyuza 41 Опубликовано 2 Июля 2011 Поделиться Опубликовано 2 Июля 2011 просто есть худ детектора,что ни пробовал,при активации в слоте худа нет.Переделал как оружие,худа нет.Вот может через скрипт можно? AVS_LOCATION_MOD Ссылка на комментарий
Влад 9 Опубликовано 2 Июля 2011 Поделиться Опубликовано 2 Июля 2011 Как получить список файлов из конкретной папки? Мои работы Не бойтесь совершенства. Вам его не достичь. C. Дали Ссылка на комментарий
Gektor 0 Опубликовано 2 Июля 2011 Поделиться Опубликовано 2 Июля 2011 И тем не менее, эти подлые личности отказались принимать анимацию прописаную таким методом, как переходили в sit_low так и переходят. Команда ReWrite Team. От сталкера отошли. Пересели за другую платформу. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти