Перейти к контенту

=VENOM=

Проверенные
  • Число публикаций

    131
  • Регистрация

  • Последнее посещение

  • AMKoin

    20 [Подарить AMKoin]

Весь контент пользователя =VENOM=

  1. Просто ищем сталкера по имени (не character_name, а именно name!), и снимаем с него метку (точку на (мини)карте): local obj = alife():object("stalker_name") if obj then obj:visible_for_map(false) end
  2. =VENOM=

    Скриптование

    Ясно - я просто никогда не интересовался подобными фишками, просто решил уточнить функционал.
  3. =VENOM=

    Скриптование

    Хотелось бы уточнить - то есть на горячей клавише сброса "активного" ствола авторазряжалка не срабатывает?
  4. =VENOM=

    Скриптование

    Попробуй сделать так - в биндере актёра в колбэке on_item_drop огородить вызов "авторазряжалки": if level.present() then --ваша авторазряжалка end
  5. =VENOM=

    Скриптование

    ... С уважением, но очень уж какие-то сложные у вас инструменты. Я предложу сделать так (по-минимуму, т.к. минимум - это ассемблер, а ассемблер - это всё моё): Для спона заданного количества объектов на случайных координатах относительно центра заданной точки на текущей локации: function spawn_random_object_on_random_position_on_current_level(lv_id, gv_id, radius, countball, tabmonster) local new_lv_id local pos local new_random_npc local new_mob for a=1, countball do local offset = vector():set(math.random()*6-3, 0, math.random()*6-3) offset:normalize() new_lv_id = level.vertex_in_direction(lv_id, offset, math.random(0, radius)) pos = level.vertex_position(new_lv_id) new_random_npc = tabmonster[math.random(table.getn(tabmonster))] new_mob = alife():create(new_random_npc, pos, new_lv_id, gv_id) end end На входе функции: [level_vertex_id центральной точки спона объектов], [game_vertex_id центральной точки спона объектов], [радиус, в котором будут спониться объекты относительно центральной точки], [количество создаваемых объектов], [таблица (ИМЕННО ТАБЛИЦА!) объектов, которые нужно создать] Переменная new_mob, ясное дело, позволяет сразу же наполнить логикой только что созданный объект (если речь идёт об NPC, например). Подсказывайте ошибки - я уже успел неслабо приложился к поллитровке, и она у меня сегодня не последняя. Точно не последняя. Успевайте. Забыл один local удалить ...
  6. =VENOM=

    Скриптование

    Судя по логу вылета, возможно, есть какая-то ошибка в конструкции квеста. И ещё в ЛС загляни - там пара вопросов тоже имеется.
  7. =VENOM=

    Скриптование

    Да вроде всё в норме... Да, сам новый инфопоршн "vzial" ты прописал в файле с какими-нибудь другими инфопоршнами, например, в info_portions.xml? Ах, да, ещё - какого NPC ты создаёшь - вместо "generic_stalker"? И нужна ли ему логика, или это простой одноразовый враг-"болванчик"?
  8. =VENOM=

    Скриптование

    Нет, твои документы, судя по всему, созданы на основе "Документов из Припяти". А что за "спаун" с доками? Поподробнее бы...
  9. =VENOM=

    Скриптование

    Если предмет "tol" - уникальный, то необходимости в проверке инфопрошна нет, как и в самом инфопоршне тоже. Пропущенный аргумент? Кстати, функция спонит NPC по lv и gv актёра - если недалеко, это некритично (и если нет резких перепадов геометрии уровня, и если ГГ не стоит спиной впритирку к стене). К тому же, если понадобится бОльшее расстояние, придётся дополнительно вычислять lv точки спона. Это функция относится к заданию на документы военных на Агропроме. Ты её не менял? Проверь ещё раз, всё ли правильно скопировал из примеров.
  10. =VENOM=

    Скриптование

    1. Открой файл bind_stalker. script, и замени стандартную функцию на эту - почти так же, как было описано выше: function actor_binder:on_item_take (obj) level_tasks.proceed(self.object) --game_stats.update_take_item (obj, self.object) if neron_script then neron_script.check_item_and_spawn_npc(obj) end end 2. Создай в папке scripts\ файл neron_script.script - здесь будут храниться все (ну, или почти все) твои скрипты. 3. Скопируй в этот файл эту функцию: function check_item_and_spawn_npc(item) if item:section() == "tol" then local actor = db.actor local dist = -3 local pos = actor:position() local dir = actor:direction() pos = pos:add(dir:mul(dist)) local npc = alife():create("generic_stalker", pos, actor:level_vertex_id(), actor:game_vertex_id()) actor:give_info_portion("vzial") end end 4. Вместо "generic_stalker" вставь того NPC, которого ты хочешь создать за спиной у ГГ. Значение "-3" - это дистанция (в игровых метрах), на которой NPC будет создан за спиной у ГГ - её можно изменять. Инфопрошн "vzial" тоже будет получен - правда, я не совсем понимаю, зачем это нужно. Если только для каких-то последующих проверок, событий и т.д... В результате, как только ГГ подберёт предмет "tol", за спиной, на расстоянии 3-х метров у него возникнет NPC, и будет получен инфопоршн "vzial". Если что-то пойдёт не так, или что-то непонятно, уточняй.
  11. =VENOM=

    Скриптование

    Любую функцию можно вызвать из диалога. Не совсем понятно: проверка наличия предмета в луте ГГ должна выполняться в диалоге (например, при получении предмета от NPC)? Или ГГ может просто подобрать предмет (взять из инвенторибокса -тайника, например)? В первом случае наличие предмета в луте ГГ легко проверить прямо в диалоге - прекондишном ветки диалога, с последующим получением инфопоршна и споном NPC. Во втором - как было описано выше, проверка при взятии предмета в лут ГГ с получением инфопоршна, после чего хоть в диалоге, хоть в активном таске можно спокойно заспонить NPC. Я подозреваю, что можно вообще обойтись без выдачи инфопоршна - если только он не нужен для каких-то дополнительных проверок?
  12. =VENOM=

    Скриптование

    Конечно, можно. Только надо учитывать, что функция-обработчик взятия предмета в инвентарь будет срабатывать в биндере актёра только в момент пополнения инвентаря после получения инфопоршна. В твоём варианте обработка всего инвентаря актёра (хотя и неявно) будет обрабатываться непрерывно, как только будет получен инфопоршн. В общем-то некритично, конечно - кому как...
  13. =VENOM=

    Скриптование

    Если проверку на взятие предмета в инвентарь ГГ тебе нужно проверять только после получения инфопоршна "vzial", так.
  14. Можно и без SDK - я добавлял освещение для костров Припяти, банально редактируя all.spawn. Но получил в результате довольно заметное "подтормаживание" в Припяти в процессе игры. Всё же нагрузка - источники света, да ещё и анимацией. Поэтому плюнул, и вернул всё в исходное состояние.
  15. =VENOM=

    Скриптование

    Проверка инфопоршна в простейшем случае, ("infoportion" - это имя инфопоршна): Что касается подобранного ГГ предмета. Если идти тем путём, как написано у тебя, то в файле bind_stalker.script найди функцию: Так она выглядит в оригинальной ТЧ, у меня, по крайней мере. И замени её на что-то вроде: Этим ты добавишь ссылку на свою функцию-обработчик взятия предмета. Можно, конечно, и прямо здесь вписать обработчик, но лучше хранить свои скрипты отдельно - потом проще будет найти, где чьи лапы и хвосты. Для этого нужно будет создать файл myscripts.script в папке с остальными скриптами, а уже в этом файле написать обработчик, примерно так: Здесь функция будет срабатывать на взятие ГГ предмета с определённым названием (section_name).
  16. =VENOM=

    Скриптование

    В DLL-библиотеке оригинальной ТЧ просто-напросто нет функции teleport_npc (и подобных ей), поэтому ничего и не происходит.
  17. =VENOM=

    Windows 7

    Отвечу сам себе - нашёл, установил и подключил мини-патчик для UT - под Direct10. И всё заработало, как в старые добрые времена! В отличие от Сталкера ...
  18. =VENOM=

    Windows 7

    К сожалению, ничего не помогло ... Видимо, проблема действительно в в самой видеокарте (утилиты ни значительного нагрева, ни высокой нагрузки во время игры не показывают). Кстати, запускаю старенький UT - на динамическом освещении игра тоже идёт с рывками. Вот такие пироги...
  19. =VENOM=

    Windows 7

    Здравствуйте! В параллельной теме "Срочно нужна помощь" задавал вопрос по такой проблеме: Версии сталкера ставил разные, и запускал и под Vista, и под 7-й (и 32 и 64 бит) - картина аналогичная. Раз уж дело касается "семёрки", задам ещё раз вопрос здесь: кто-нибудь сталкивался с аналогичной проблемой? И если да, есть ли решение (без учёта замены компьютера, естественно )?
  20. =VENOM=

    Скриптование

    abramcumner, цитирую: Я, если честно, знаю об этом, и у меня в all.spawn уже давным-давно вообще нет тех респонеров, которые были в оригинальной игре (цель постановки вопроса была совсем в другом - и, в общем, достигнута ). Однако, с моей точки зрения, гораздо лучше оставить всё, как есть (т.е. оффлайновый респон всех NPC - и сталкеров, и... мутантов), иначе неудачно расположенные респонеры, подходящие по параметрам для смартов на текущей локации (достаточно далеко от "зачищаемого" смарта по respawn_radius) в некоторой степени лишат игру "симуляционной миграции" NPC между локациями. Что будет выглядеть не очень хорошо - как будто локации изолированы друг от друга. А насчёт "вербовщиков" - это, конечно, разработчику решать. Моё мнение - совсем уж сопливых новичков никто не ждёт в группировках - себе дороже обойдутся. Более логичным выглядело бы вербовать более опытных сталкеров, скажем, в Баре (тут, правда, есть проблема - в оригинальной игре Бар контролируют "долгари", как быть со "Свободой"?). Ну, а создать респонеры, срабатывающие по условию, проще простого. К примеру, у себя я сделал отслеживание продвижения игрока по локациям, и, по ходу игры - в соответствии с этими условиями - начинают включаться респонеры (чтобы они раньше положенного срока не плодили тех NPC, которые на ранних этапах не требуются). Ну, а некоторые, наоборот, отключаются. В значительной степни пришлось сделать это из-за АМК "оффлайн-алайфа", отключать который мне не хочется. Впрочем, можно чуточку "поколдовать", и сделать так, чтобы в зависимости от условий (функция, инфопоршн) один и тот же респонер будет порождать NPC селективно, а не по приоритетному выбору из нескольких секций, как сейчас.
  21. weas, попробуй в секции твоей аномалии прописать: postprocess = postprocess_psy_zone А ты сам пробовал? В оригинальной игре (ТЧ) такая секция [postprocess_psy_zone] отсутствует. --/ Artos
  22. =VENOM=

    Скриптование

    Artos, насчёт модератора - это ты прав, пускай он даст оценку действиям - и моим, и твоим, в том числе. А раз ты куратор темы, то ответь мне на вопрос (то есть, помоги разобраться). Цитирую: Говоря о том, что "разработчиками этот респавнер предназначался именно для этого гулага", ты связывался с разработчиками по этому вопросу, или это твои домыслы? Поясняю: это критически важно для моей модификации игры, серьёзно. Не спрашивай "зачем" - просто ответь.
  23. =VENOM=

    Скриптование

    Artos, слово - не воробей, поэтому вот тебе тоже
  24. =VENOM=

    Скриптование

    Artos, это я тебе возражу (и докажу) - т.к. в своё время всё то, о чём я говорил, неоднократно проверял, и всё это у меня и сейчас вполне так ничего себе работает . Начнём сначала: Для универсальных гулагов предназначен файл-пресет general_lager.ltx - а для "именных", как ты выразился , предназначен тот, который я указал. Далее: респонеры NPC никаким местом не привязаны к каким-либо "гулагам". Поясняю ещё раз: любой респонер может плодить неписей для любых смарттеррейнов (или, если угодно, для "гулагов" ), если он подходит по праметрам (повторюсь: в общем случае - группировка, ранг). Чтобы убедиться в этом, достаточно через некоторое время после начала игры (после срабатывания респонеров, это дело в разных модах реализовано совершенно по-разному) просмотреть глобальную карту (следует включить отображение всех NPC (или только сталкеров) на глобальной карте - как это сделать, пояснять, надеюсь, не потребуется?). В ярлычках неписей видно, что смарты наполнены совершенно разными респоновыми сталкерами, я имею в виду сталкерами, рождёнными совершенно разными респонерами. И не надо валить всё на алайф, "перегоняющий" сталкеров из одних смартов в другие, повторюсь: отслеживая путь любого NPC от респонера до смарта, становится очевидно, что никакие респонеры не привязаны ни к каким смартам. Единственные респонеры, срабатывающие в момент взятия NPC под гулаг (при условии, что условие для них прописано в смарте) - это респонеры, наполняющие ящики с барахлом в смартах. То есть, поменяв в конкретной секции "опытных" на "мастеров", ничего глобального ты не совершишь, т.к. в оллспоне есть куча других респонеров, которые наплодят и "опытных", и "новичков" в предостаточном количестве. Далее: человеку явно было нужно всего лишь заспонить и поселить на Кордоне бандоса-мастера, и для этого совершенно не хотелось лезть в оллспон (да это и ни к чему, я уже пояснял, что нужно для этого сделать, причём двумя способами ). А если уж ты решил создать дополнительные секции спона (отдельные, для "мастеров" и т.п.), то, чтобы прописать их в существующий респонер, потребуется править оллспон. Далее: ты, видимо, не знаком с тем фактом, что для любой работы в скриптовых файлах гулагов (тот же gulag_escape.script) можно создать условия "приёма на работу" (я частично уже отписывал, по каким параметрам это можно сделать - там ещё много чего можно "наусловить" ). Эти условия называются predicate, и их, повторяю, можно применить к любой работе гулага. Если нужен конкретный пример - не поленись, загляни в этот файл (gulag_escape.script), и посмотри, как это реализовано для работы Волка или Фаната в смарте "лагерь новичков" (esc_lager). Таким образом, на работу "пахана" в смарте бандитов на АТП можно поставить условие, человеческим языком описываемое как "на работу принимается (назначается) только NPC с группировкой "бандит", с именем профиля "sim_bandit_master", и с рангом, равным 900 и более". Интересный факт: таким образом, кстати, можно обойти ограничение, выставленное для смартов Кордона в ltx-файле (конкретно smart_terrain_presets.ltx). Можно ещё кучу условий добавить . Заключение: в указанный смарт (esc_fabrika_bandit) в оригинальной игре принимаются NPC с группировкой "бандит", с рангами "новичок" (ранг менее 300), и "опытный" (ранг более 300 и менее 600). Никакие "мастера", заспоненные каким-то "назначенным именно для этого гулага" респонером под гулаг в смарте браться не будут. Чтобы изменить статус-кво, см. мой предыдущий пост - там всё для этого есть.
  25. =VENOM=

    Скриптование

    лнкс, надо было выложить свою изменённую секцию, чтобы оценить, что к чему. В общем случае, если тебе нужно, чтобы на Кордоне спонились мастера-бандосы, сделай так:

AMK-Team.ru

×
×
  • Создать...