Это популярное сообщение. Dennis_Chikin 3664 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Ссылка на комментарий
Jekyll 92 Опубликовано 18 Мая 2016 Поделиться Опубликовано 18 Мая 2016 снять координаты полёта на нужной тебе высоте. Может, я не совсем корректно выразился? Мне не нужно привязывать полтера к определенному маршруту (пусть летает себе, где хочет). Нужно изменить высоту его перемещения, которая при этом заметно колеблется - монстр при движении то опускается, то поднимается. Из вышесказанного тобой выходит, что в конфигах монстра искомого параметра нет? Ссылка на комментарий
PTB 8 Опубликовано 18 Мая 2016 Поделиться Опубликовано 18 Мая 2016 Здравствуйте, прошу помощи. Склепал из разных скриптов вот такую фу-ию. local level_name = { ["l01_escape"] = "Кордон", ["l02_garbage"] = "Свалка", ["l03_agroprom"] = "Агропром", --и т.д. } local killers = { monster_classes = { [clsid.bloodsucker_s] = "Кровосос", [clsid.boar_s] = "Кабан", [clsid.dog_s] = "Собака", --и т.д. } } local weapon_classes = { weapon_ognestrel = { ["wpn_pm"] = "Огнестрельное ранение (пистолет)", ["wpn_pb"] = "Огнестрельное ранение (пистолет)", ["wpn_fort1"] = "Огнестрельное ранение (пистолет)", --и т.д. }, weapon_blowing ={ ["wpn_rpg7"] = "Взрыв (ракетница)", ["wpn_rg-6"] = "Взрыв (гранатомет)", ["wpn_rg6_m1"] = "Взрыв (гранатомет)", ["wpn_grenade_launcher"] = "Взрыв (граната)", ["wpn_grenade_f1"] = "Взрыв (граната)", ["wpn_grenade_rgd5"] = "Взрыв (граната)" }, weapon_knife = { ["wpn_knife"] = "Ножевое ранение" } } function news_of_npc_kill(victim) if victim and IsStalker(victim) then local dead_news ="\\n%c[255,160,160,160]Погиб сталкер: %c[default]"..victim:character_name().."%c[255,160,160,160] Место смерти: %c[default]"..level_name[level.name()].."\\n%c[255,160,160,160]Причина смерти: %c[default]" or "" db.actor:give_game_news(dead_news, "ui\\ui_iconstotal", Frect():set(0,752,83,47), 1000, 6000) news_sound() end end function news_sound() local snd_obj snd_obj = xr_sound.get_safe_sound_object([[device\pda\pda_tip]]) -- путь до звукового файла snd_obj:play_no_feedback(db.actor, sound_object.s2d, 1, vector(), 1.0) end Вопрос: Как определить причину смерти? Ссылка на комментарий
Fagot. 400 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 выходит, что в конфигах монстра искомого параметра нет?Выходит, да... Ссылка на комментарий
Struck 61 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 Как определить причину смерти? Дропнуть тип хита в коллбеки повсеместно, я уже писал пару раз, без этого достоверно определить причину (в некоторых случаях) невозможно. Примеров пока нет, а вот как НЕправильно - смотри амк, симбион и иже с ними. Добавлено BFG, 19 Мая 2016 Вечный бан. п.2.0. Ссылка на комментарий
Это популярное сообщение. Zander_driver 10348 Опубликовано 19 Мая 2016 Это популярное сообщение. Поделиться Опубликовано 19 Мая 2016 Кто знает, как изменить высоту полета полтергейста? От массы неправильных ответов становится нехорошо... неужели у нас народ настолько плохо понимает как вообще устроен сталкер, что в такие дебри ударяются из-за простого и очевидного в целом, вопроса. В начале таки про оффтоп. Если при создании локации в СДК не делалось нечто _очень_ странное, то все lv и gv на ней в любом случае будут на поверхности террейна или что-то около того. Их нету в воздухе на произвольной высоте над землей, так что если (для любых целей) таки требуется проложить путь/снять координаты в воздухе - достаточно снять эти координаты на земле и прибавить желаемую высоту по оси y (это в сталкере вертикаль), оставляя lv и gv неизменными. И кстати по теме полтергейста это таки лютый оффтоп от слова совсем. Теперь про полтергейста. Он с точки зрения игры не летает, а ходит по земле, так же как и все прочие нпс/монстры. А почему же он над землей виден? Причин две. 1) "анимация ходьбы" у него такая. 2) визуал живого полтергейста состоит из партиклов - а у них в свою очередь имеется кость привязки (на модели полтергейста), и координаты возпроизведения относительно этой кости... партиклы вовсе не обязаны показываться строго там же, где и сам объект к которым они привязаны. (В качестве примера, например, аномалии "Корона" из "Судьбы Зоны" - электрические кольца висят в воздухе над землей, но объект аномалии в действительности находится на поверхности земли, под этим кольцом.) В конфиг полтергейста лазить конечно незачем - нет там никакой высоты полета, т.к. и полета как такового на самом деле нет. Действовать можно двумя путями. 1. Если достаточно изменить видимое положение полтергейста - можно изменить свойства его партиклов, поменяв у них высоту воспроизведения относительно "объекта привязки". 2. Если надо в то же время изменить и положение тела полтергейста, в которое могут попадать пули например, то тут уже надо копаться в его визуале, менять его модель и анимацию ходьбы. И то и другое вполне реально при наличии определенных навыков. P.S. Меня в этой истории дико удивляет один факт. Почему я, не моделлер и не специалист по партиклам, это знаю, а вышеотписавшиеся товарищи, пардон, занимались гаданиями на кофейной гуще. P.P.S. BFG - Большое Спасибо. 2 2 3 Ссылка на комментарий
Kober(BRUC) 99 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 (изменено) Доброго времени суток. Не знаю в ту тему ли я пишу. Но все же.Есть на локации пару объектов. Например два ящика. Как мне узнать их "игровое" имя?Кто не понял. Например: esc_box_lager_123 Изменено 19 Мая 2016 пользователем BFG Ссылка на комментарий
BFG 7583 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 (изменено) @Kober(BRUC), Может эти способы и не совсем правильные, но других не знаю. - если ящики сделаны геометрией, то никак, у них просто нет имени. - если ящики сидят в оллспавне, то найти все их в секции локации, поставить ГГ на ящик, глянуть координаты места и найти похожие. Это и будет искомый ящик. - положить в каждый ящик разные итемы, скомпилить оллспавн, начать НИ, пробежаться по ящикам и узнать по предметам, какой тебе нужен. Изменено 19 Мая 2016 пользователем BFG 1 1 1 Ссылка на комментарий
Expropriator 2119 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 @BFG, @Kober(BRUC), еще вариант с СДК - это наиболее правильный вариант. Конвертором Бардака - по-моему, так называется. 1 Ссылка на комментарий
BFG 7583 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 @Дизель, Есть такой вариант. Но не стал про него упоминать, ибо это уже сложно. Неизвестно какой мод, неизвестно какие локации, неизвестно сможет ли человек настроить свою папку с конфигами для СДК. А это реально непростой процесс. Например папку с конфигами НС, чтоб её корректно видел СДК я настраивал наверно месяц. И то после того как её уже на половину настроил другой человек, я постоянно задавая нубские вопросы в теме по СДК. Но настроил таки, хотя не уверен что прям на 100%, но локи компилятся и СДК не ругается. Так что этот вариант самый крайний и сложный. 1 2 Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 (изменено) Вылетает с таким рестриктором. Спавнить нормально, но стоит из него выйти или рядом походить - вылет. Поршни и функция прописаны, ругань на формат, но я не вижу ошибок... [2971]; cse_abstract propertiessection_name = space_restrictorname = bandit_assault_triggerposition = 50.1554756164551, -0.174215316772461, 140.720397949219direction = -1.90009188827389e-007, -0.0872660875320435, -1.66235665233216e-008id = 65535version = 118script_version = 6spawn_id = 1491; cse_alife_object propertiesgame_vertex_id = 1247level_vertex_id = 23949object_flags = 0xffffff3ecustom_data = <<END[logic]active = sr_idle@check1[sr_idle@check1]on_actor_outside = nil %+pass_false =bandit_sms%END; cse_shape propertiesshapes = 1shape_0:type = sphereshape_0:offset = 0,0,0shape_0:radius = 61.47998046875; cse_alife_space_restrictor propertiesrestrictor_type = 3 Изменено 19 Мая 2016 пользователем CRAZY_STALKER666 Ссылка на комментарий
Expropriator 2119 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 @CRAZY_STALKER666, это неполная картина. Тебе ни кто не скажет причину. Надо видеть желательно лог. Какой формат - ругань? Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 @Дизель, [error]Expression : fatal error [error]Function : CScriptEngine::lua_error[error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp[error]Line : 73[error]Description : [error]Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) Вылетает, когда выхожу из рестриктора, т.е срабатывает on_actor_outside и вылетает!?! Не могу понять в чем дело! Ссылка на комментарий
Expropriator 2119 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 %+pass_false =bandit_sms% Только это может вести на вылет. Логика прекращается событием. Удали попробуй событие %+pass_false =bandit_sms% либо всё, либо по очереди, и выяснишь и скажешь. Ссылка на комментарий
CRAZY_STALKER666 36 Опубликовано 19 Мая 2016 Поделиться Опубликовано 19 Мая 2016 @Дизель, есл ставить on_actor_inside это всё работает( поршня и функции прописаны) Сейчас гляну с сторону ведомых НПЦ Проблема была в ведомых НПЦ - всё, заработало) Ссылка на комментарий
Kober(BRUC) 99 Опубликовано 20 Мая 2016 Поделиться Опубликовано 20 Мая 2016 Здравствуйте. Есть у меня новый предмет(допустим bread_hj). Который находится просто на полу/столе/ и т.п. И нужно что бы при подборе данного предмета вызывалась определенная функция. Проблема в том, что функция должна срабатывать сразу же. А не после определенного действия. Например открытие инвентаря. Ссылка на комментарий
=VENOM= 51 Опубликовано 20 Мая 2016 Поделиться Опубликовано 20 Мая 2016 @Kober(BRUC), ваш вопрос из тех, что всплывают здесь с завидной регулярностью. Решение тоже стандартное: найдите файл bind_stalker.script, откройте его. Найдите в нём функцию, указанную ниже, и вставьте в неё свой обработчик на взятие вашего уникального предмета в инвентарь игрока: function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) --game_stats.update_take_item (obj, self.object) -- НАПРИМЕР, ВОТ СЮДА МОЖНО ВСТАВИТЬ СВОЙ ОБРАБОТЧИК НА ВЗЯТИЕ ПРЕДМЕТА В ИНВЕНТАРЬ АКТЁРА end P.S. Наверное, подобный вопрос лучше было бы задать в теме "скриптование". P.P.S. А если предмет квестовый, то ещё правильнее будет сделать отдельную функцию-обработчик подзадачи квеста на взятие предмета в инвентарь - и не надо будет лезть в биндер актёра. 1 Ссылка на комментарий
Expropriator 2119 Опубликовано 20 Мая 2016 Поделиться Опубликовано 20 Мая 2016 (изменено) @=VENOM=, а в ТЧ работает логика такая?: [logic]active = sr_idle@start[sr_idle@start]on_info = { =actor_has_item(wpn_pkm) } sr_idle@time %% Изменено 20 Мая 2016 пользователем Дизель Ссылка на комментарий
BFG 7583 Опубликовано 20 Мая 2016 Поделиться Опубликовано 20 Мая 2016 (изменено) И нужно что бы при подборе данного предмета вызывалась определенная функция. Дополню пост @=VENOM=, ставь в то место например new_hmm.checking_use_item(obj) Затем в new_hmm.script пишешь такую функцию function checking_use_item(obj) local ln = level.name() local actor = db.actor local sec = obj:section() if ln=="имя_локации" and sec=="имя_итема" then actor:give_info_portion("имя_поршня") скрипт.имя_функции() ..... ..... end end Можешь убрать выдачу поршня по взятию итема и оставить только активацию функции. Строк может быть несколько. Пример взят из Народной Солянки 3.09.2010. Если она у тебя есть, открой braad_test.script и посмотри там как сделано отслеживание по взятию предмета или отслеживание по выдаче поршня. Изменено 21 Мая 2016 пользователем BFG 1 Ссылка на комментарий
Kober(BRUC) 99 Опубликовано 20 Мая 2016 Поделиться Опубликовано 20 Мая 2016 (изменено) А если я хочу что бы у меня активировалось две функции, мне надо после "скрипт.имя_функции" написать "and", а потом еще раз "скрипт.имя_функции"? Тоесть: .... скрипт.имя_функции and скрипт.имя_функции .... .... end end Изменено 20 Мая 2016 пользователем BFG Ссылка на комментарий
Expropriator 2119 Опубликовано 20 Мая 2016 Поделиться Опубликовано 20 Мая 2016 (изменено) @Kober(BRUC), не надо and - перечисление подключения подобных функций без всяких and пишется. Только () не забудь в конце каждого перечисления поставить. Изменено 20 Мая 2016 пользователем Дизель 1 1 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти