1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

«Возвращение на Грифон v2.01» - сингл-плеер ремейк-мод для UT2004

Тема в разделе "Мастерская", создана пользователем Stvaan, 14 май 2022.

  1. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    Сегодня работал над 8-й картой. Тот же автор, что и у 7-й, но разительно отличается по стилю и тех.исполнению.

    Возвращался к ранее созданным картам, чтобы добавить немного декораций и эмиттеров. Буду возвращаться ещё и ещё по мере изучения доступных пакетов статик-мешей и создания собственных декораций и эмиттеров.

    Shot00033.jpg
     
  2. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    8-ю карту закончил.

    Пытался сделать актёра MakeNaliFriendly. Взял кусок кода из портированного «dots» актёра Nali, скомпилировал, всё прошло удачно, но… MakeNaliFriendly не заработал. Связано с тем, что Player это не подкласс Pawn, а новый класс Controller. А как работает AI монстров - вообще тёмный лес. Долго разбираться не стал, но чувствую себя тупым!

    И да, «экватор». Версия мода 0.5 «бета» с небольшими оговорками.
     
    GreenEyesMan нравится это.
  3. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    Целый день как проклятый делал 9-ю карту. Пока это самая большая карта, как по протяжённости, количеству противников, так и по количеству брашей и размеру на диске. Дворец, copy/paste, все дела…
    В оригинале было много растительных декораций, увеличенных во много раз, чтобы создать иллюзию зарослей. Придётся как-то воссоздавать всё это… или нет. :rolleyes:

    Shot00034.jpg
     
    GreenEyesMan нравится это.
  4. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    483
    Если используется нали из U1Pawns, актору нали нужно отключить bGroupFear, все нали на уровне не будут бояться игрока.
    Код:
    function Trigger(actor Other, pawn EventInstigator)
    {
        local Controller C;
    
      if (!Pawn(Other).IsHumanControlled())
        return;
    
        for (C = Level.ControllerList; C != None; C = C.NextController)
        {
            if (C.Pawn != None && C.Pawn.IsA('Nali'))
            {
                Nali(C.Pawn).bIsFriendlyToPlayer = true;
                Nali(C.Pawn).AlarmObject = InitAlarmObject;
            }
        }
    }
    В теории должно сбрасывать боязнь нали игрока.
    Откомпилировать и проверить не смог, компилятор упорото хочет пересобрать все пакеты мода...
     
    unreal doom нравится это.
  5. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    @Alien3674, спасибо за попытку. Не заработало. У меня примерно то же самое и было. Кроме строки Nali(C.Pawn).AlarmObject = InitAlarmObject; которая вызывала стойкую ошибку при компиляции, и я её убрал. Эта строка, как я понимаю, возвращает Nali к первоначальному AlarmTag, если он назначен, не влияя ни на что другое в поведении.

    Пробежал 8-ю карту, исправил пару недочётов и нашёл 2 дыры в BSP. Одну замаскировал невидимой декорацией, вышло хорошо.

    Для растительных декораций на 9-й карте пробовал Volume + DecorationList. Нигде никаких пояснений. При достаточной высоте Volume растения спавнятся при старте карты на разной высоте. WTF? Зачем тогда флаг bAlign ??? При малой высоте Volume статик-меши не спавнятся вообще. Поэкспериментировал и удалил нафиг!
    Всё-таки 9-я карта огромна. Сотни (!) факелов, которые надо заменить эмиттерами. Устал от copy/paste, а сделана только половина работы.
     
  6. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    483
    Какая ошибка? Какой класс нали используется?
     
  7. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    Ошибка Error, Bad or missing expression in '='
    Класс U1Pawns.Nali
     
  8. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    483
    Offtop
    @Stvaan, ересь какая то. Порядок пакетов EditPackages какой?

    Во я туплю, мда, спящему кодить нельзя :facepalm:.
    Код:
    //A: preload
    #exec OBJ LOAD FILE="U1Pawns.u"
    
    function Trigger(actor Other, pawn EventInstigator)
    {
        local Controller C;
    
      if (!Pawn(Other).IsHumanControlled())
        return;
    
        for (C = Level.ControllerList; C != None; C = C.NextController)
        {
            if (C.Pawn != None && C.Pawn.IsA('Nali'))
            {
                Nali(C.Pawn).bIsFriendlyToPlayer = true;
                Nali(C.Pawn).AlarmObject = Nali(C.Pawn).InitAlarmObject;
            }
        }
    }
    Про самое главное, откуда долждно браться значение сохраненного аларм объекта, забыл :D.
     
    Последнее редактирование: 2 июн 2022
    unreal doom нравится это.
  9. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    Порядок пакетов определён в ut2004.ini.
    Ваш код с моими правками теперь компилируется, работает и выглядит так:
    ==================================
    class MakeNaliFriendly extends Triggers;

    function Trigger(actor Other, pawn EventInstigator)
    {
    local Controller C;

    if ( !Pawn(Other).IsHumanControlled() )
    {

    for (C = Level.ControllerList; C != None; C = C.NextController)
    {
    if (C.Pawn != None && C.Pawn.IsA('Nali'))
    {
    Nali(C.Pawn).bIsFriendlyToPlayer = True;
    Nali(C.Pawn).AlarmObject = Nali(C.Pawn).InitAlarmObject;
    }
    }
    }
    }

    defaultproperties
    {
    }


    Однако, раненый игроком нали хоть и становится дружелюбным по триггеру, но продолжает находится в состоянии bIsFearing, проигрывая соотв.анимацию и звуки между назначенными AlarmPoint'ами.

    Думаю, дальше не стОит заморачиваться. MakeNaliFriendly нужен и не нужен. Да и то в одном месте на весь ремейк.
     
    Последнее редактирование: 2 июн 2022
  10. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    483
    @Stvaan, хм, возможно что то упускаем, там столько кода... скорее всего нужно сбросить ткущего врага, попробуй этот вариант, смотри лог.
    Код:
    #exec OBJ LOAD FILE="U1Pawns.u"
    
    function Trigger(actor Other, pawn EventInstigator)
    {
        local Controller mController;
    
      if (!Pawn(Other).IsHumanControlled())
        return;
    
        for (mController = Level.ControllerList; mController != None; mController = mController.NextController)
        {
            if (mController.IsA('NaliAI'))
            {
              Log("--- found nali controller"@mController);
              MonsterController(mController).OldEnemy = None;
            mController.Enemy = None;
                Nali(mController.Pawn).bIsFriendlyToPlayer = true;
                Nali(mController.Pawn).AlarmObject = Nali(mController.Pawn).InitAlarmObject;
            }
        }
    }
    
     
    unreal doom нравится это.
  11. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    @Alien3674, спасибо огромное! В таком варианте (без return; в первом условии) всё заработало как надо. Упомяну вас в финальных титрах мода.

    Продолжаю свой дневник модостроителя. :)
    В UE2.5 используется отличная от UE1 система освещения. Редактор версии 3.0 по-прежнему поддерживает старую систему, демонстрируя для актёра Light всякие эффекты типа LT_SubtlePulse и LE_TorchWaver… Костыль для этого бардака нашёлся. Нужно создать пустой Emitter, в секции Display поставить bUseDynamicLights=True, эмиттер назначить источником света (секции LightColor, Lightning), выбрать LT-эффект и – вуаля! – всё пашет как надо. Только вертикальная синхронизация должна быть включена в ut2004.ini! Эффекты с префиксом LE, однако, всё равно не работают. :ranting2:

    9-ю карту пока не закончил. Ищу красивые эмиттеры для телепортеров Нали. Ведь объёмный свет для актёров Light тоже не работает в UE2.5…
     
  12. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    483
    @Stvaan, исправь первое условие, Pawn(EventInstigator).IsHumanControlled() (Other обычно указывает на класс который вызвал триггер событие), следует удостовериться кто вызывает событие, только для реального человека. Хотя, событие можно фильтровать в триггере.
    В общем, если что, обращайтесь, чем смогу помогу, я не кусаюсь :D.
     
  13. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    10-я карта. Внешне и не больше остальных, но много замен на статик-меши и много возни с уникальными муверами текущей воды.

    Shot00035.jpg
     
  14. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    Закончил 9-ю карту, продолжаю 10-ю. Становится скучно.

    А, нет! Не скучно. Понадобился динамический объём воды в бассейне. Ну… не сильно понадобился, но стало интересно.
    Официально все Volume имеют неотключаемый через GUI атрибут bStatic=True. Как заставить WaterVolume двигаться вместе с мувером? Нашёл в интернете быстрый «костыль»:

    Таки нет. Не работает!!! Возможно, мувер должен быть не обычным, а каким-то особенным…? Ответа, как обычно нет. Возможно, поэкспериментирую… Сейчас чувствую какую-то ненормальную усталость и отупение. Возможно, стоит сделать перерыв.
     
  15. Alien3674

    Alien3674

    Регистрация:
    1 июл 2011
    Сообщения:
    483
    @Stvaan, можно поступить проще, UnrealScript.
    Создаем дочерний класс от WaterVolume с дефолтным значением bStatic=False, создаем дочерний класс от Mover с кодом:
    Код:
    function PostBeginPlay()
    {
        local Actor Act;
    
        super.PostBeginPlay();
    
        if (AttachTag != '')
        {
            forEach AllActors(class 'Actor', Act, AttachTag)
          {
              if (Mover(Act) == None)
                  Act.SetBase(self);
          }
        }
    }
    И аттачим что угодно к этому муверу.
    --- добавлено 5 июн 2022, предыдущее сообщение размещено: 5 июн 2022 ---
    Тестовый пример.
     

    Вложения:

    • A2k4Tests.zip
      Размер файла:
      9 КБ
      Просмотров:
      15
    unreal doom нравится это.
  16. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    Да, такая мысль тоже мне сразу пришла в голову. Но и так слишком много кода получилось.
    Динамический объём воды заработал. Это я затупил, приаттачив WaterVolume к муверу с неуникальным тагом. Сделал Tag уникальным, и всё получилось, как я хотел. Так что, закончил я 10-ю карту.

    Параллельно завершил (надеюсь) свои паки скриптов и декораций. Три каркаса в группе Male1Body, всё с буквами HD в конце, GasBStatue и подклассы Reactivedecos_UT2K4 - моё.
    Также сделал эмиттером отличный эффект разливающейся воды из деревянной бочки, при разбивании оной.

    ReactiveDecos_.jpg
     
  17. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    На повестке 11-я карта. Самая маленькая из игровых. Жуткое смешение стилей. Создана автором явно как «затычка», лишь бы была. Не удивительно, что я её не запомнил, повторно проходя оригинал (и параллельно работая над переводом) почти 8 лет назад. Впрочем, на ней была интересная задача, которую пришлось решать не так, как в оригинальном моде. Спойлерить не буду. Сюрприз!

    Shot00036.jpg

    Дочка протестировала первые три карты. В целом ей неожиданно понравилось. Внёс мелкие правки по её замечаниям.
     
  18. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    Кое-как закончил 12-ю карту. Много выпадений BSP, особенно на стыках зон. Даже уменьшив количество зон, и превратив некоторые сложные глючащие браши в staticmesh'и, не смог всё исправить. По крайней мере, карта играбельна. Впрочем, осталась проблема с LadderVolume и наклонной лестницей! Надо подумать и поэкспериментировать.

    Shot00037.jpg
     
    GreenEyesMan нравится это.
  19. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    13-я карта в работе. Пока никаких проблем.

    Дочка протестировала карты 4 и 5.

    Shot00038.jpg
     
  20. Stvaan

    Stvaan

    Регистрация:
    3 ноя 2006
    Сообщения:
    137
    14-я карта в работе. Никаких проблем.

    С LadderVolume и наклонной лестницей на карте 12 разобрался. Нужно было просто не пересекать меш лестницы и LadderVolume!

    К закрытому бета-тестированию подключился Валерий "Melodoser" Широков. Он же предоставил один свой музыкальный трек.

    Shot00039.jpg
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление