Перейти к содержанию

N42

Сталкеры
  • Публикаций

    1 146
  • Зарегистрирован

  • Посещение

  • Победитель дней

    5

Сообщения, опубликованные N42


  1. 9 часов назад, Z53HaMeR сказал:

    Порекомендуйте, стоит ли  начинать с ванильного без модов или с модами?

    Начни с оригиналов без модов чтобы потом разницу увидеть между модами и оригиналом, насколько изменили модами игру. Если только на графику мод без аи паков, анимаций и т.д. А потом уже моды можно заценить

    • Мастер! 1

  2. Etil в принципе, можно попробовать убивать оффлайновых нпс и мутней через sobj:on_death(sobj), но тогда придется делать перебор всех объектов и сравнивать расстояние от них до взрывчатки.

    В онлайн взрывчатку перевести можно так:

    alife():set_switch_offline(id, false)
    alife():set_switch_online(id, true)
    alife():set_interactive(id, true)

    В оффлайн:

    alife():set_switch_offline(id, true)
    alife():set_switch_online(id, false)
    alife():set_interactive(id, false)

    В _g.script есть функция для проверки, в онлайне объект или нет - is_object_online, можно через нее проверять и при необходимости переводить в онлайн

    Хит лучше перенести в net_spawn, так и будет на каждом апдейте хитовать. Можно взрывать не хитом, а через obj:explode(0)


    Дополнено 11 минуты спустя

    А, в _g.script есть и функция с переводом в онлайн - switch_online


  3. Etil если грубо и вкратце
     

    Спойлер

    сталкер сам по себе как серверная игра, но сервер и клиент на одном компе. Есть серверные объекты (оффлайновые) и клиентские (онлайновые) - это копии серверного объекта, создаются когда объект попадает в зону алайфа (или всегда в онлайне на текущей локации). Ну, совсем грубо, если какой-то объект находится в онлайне, получается, этот объект "раздвоен" - один основной на сервере и второй как копия у игрока. За радиусом алайфа только серверные объекты (если не выведены принудительно в онлайн). При спавне за радиусом алайфа должен в любом случае заспавниться объект, но он будет серверным. У оффлайновых и онлайновых объектов разные функции, если что-то работает у онлайнового  - может не работать у оффлайнового (или название другое). Хитануть можно только онлайновый. Можно в lua_help.script посмотреть, что у кого (для онлайновых смотри class game_object, остальное для оффлайновых. Тут можно посмотреть описание большинства функций https://www.amk-team.ru/forum/topic/7450-spravochnik-po-funkciyam-i-klassam )

    Соответственно, получать серверный объект и клиентский придется по-разному. Например, по id серверный alife():object(id) (сюда еще подойдет name из оллспауна), клиентский level.object_by_id(id) ну т.д. Тот же id объекта по-разному получается, у серверного obj.id, у клиентского obj:id()

    Как проверяешь, заспавнился ли объект? По срабатыванию биндера? Биндер работает только у онлайнового объекта, но это не значит, что объект вообще не заспавнился, просто не появилась клиентская "копия"

    Для чего ее взрываешь? Если чтобы убить кого-то - смысла держать взрывчатку все время в онлайне нет, все равно все нпс и мутни за радиусом алайфа в оффлайне, и их не зацепит. Или для красивого эффекта?

     

    • Мастер! 2

  4. 18 часов назад, Etil сказал:

    Мне нужно "узнать" координаты ближайшей поверхности под объектом, который я спавню скриптом высоко в воздухе

    Можно попробовать использовать координаты левел вертекса local pos = level.vertex_position(lv)

    18 часов назад, Etil сказал:

    как узнать координаты точки, на которую смотрит ГГ?

    Вроде в ogsr и в x-ray extensions добавили функции для этого, в оригинале без танцев с бубном никак

    18 часов назад, Etil сказал:

    взрывчатка, которую я спавню по скрипту, не появляется, пока я не подойду достаточно близко

    Она просто спавнится или спавнится и сразу взрывается?


  5. Pepel так и не написал, в какой момент прошлый вылет был. В диалоге сразу на фразе со спавном? Или при переходе? А щас в какой момент вылет? В диалоге? Вот это убери

    8 часов назад, Pepel сказал:

                <phrase id="3">
                    <text>new_dialog_buriy_3</text>
                    <action>_freeplay_sa.esc_yantar</action>
                    <next>2</next>
                </phrase>

     

    • Спасибо 1

  6. Pepel проверь гейм вертексы, правильно ли вписал


    Дополнено 5 минуты спустя
    5 часов назад, Pepel сказал:

    function esc_yantar()
            create_level_changer(6006, vector():set(-241,-19,-116), 14486, 8,
                1459,
                136667,

    Ощущение, будто местами перепутаны


  7. Pepel когда пишешь, что что-то сделал и не работает - прикладывай файлы (или код под спойлером), что именно делал, какие файлы ковырял, что в них добавлял. А также подробнее пиши, что именно не работает (не спавнится сам переход/спавнится, но не переходит или вылетает/только через диалог не работает и т.д.). Старожилы-телепаты уже давно отошли от модинга, а у новых еще не развились телепатические способности. Если не предоставляешь нормальную информацию - не жди нормальной помощи

    • Мастер! 1

  8. 9 часов назад, baraholschik сказал:

    почему при переходе между локациями могут автоматом проваливаться куча побочных квестов?

    У меня было такое с квестами, где цель была в лагере, который работает по условию (например, где ночные задания нападения мутантов). Уже не помню, что делал, чтобы не проваливались, но после правки именно на такие лагеря задания перестали проваливаться. Я про оригинал, если речь про сборки - без понятия. Может и в оригинале это исправили, не следил за последними версиями. Смотри может в конфиге заданий про провал есть, или в task_status_functor.script ищи условия

    9 часов назад, baraholschik сказал:

    Я поиграл с показателями иммунитетов у нпс по адресу gamedata-configs-creatures-profiles, но это ничего не дало

    Может не те профили. Лучше смотреть секции нпс, параметры каких секций они наследуют. Ну или пройтись по всем подключенным файлам, а не только в той папке configs\creatures\stalkers.ltx

    9 часов назад, baraholschik сказал:

    что если показатель иммунитета для конкретного воздействия равен нулю, то это означает полный иммунитет к воздействию, а единица означает отсутствие иммунитета. Это действительно так?

    Да, тут как у гг

    9 часов назад, baraholschik сказал:

    нужно как то сделать сюжетных персонажей бессмертными

    Добавить им в логику invulnerable = true

    • Хабар 1

  9. Paracetamol сам Сахаров также помирает? Проверь саму секцию

    Спойлер

    burn_immunity                 = 0.0
    strike_immunity               = 0.0
    shock_immunity                = 0.0
    wound_immunity            = 0.0
    radiation_immunity          = 0.0
    telepatic_immunity          = 0.0
    chemical_burn_immunity = 0.0
    explosion_immunity          = 0.0
    fire_wound_immunity         = 0.0
    wound_2_immunity            = 0.0

    Или создать свою новую. Может на всякий случай добавить health_hit_part = 0, bleeding_v = 0 и т.д. Но, если память не изменяет, в карусели все равно может порвать