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

Паха007

Управление проектами
  • Публикаций

    2 357
  • Пожертвование

    100 000,00 ₽ 
  • Зарегистрирован

  • Посещение

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

    67

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


  1. В 08.05.2021 в 02:53, RaggaL сказал:

    Так а что же мне делать? пробовал переписывать скрипт вручную (Ранее копировал-вставлял), раз в прошлый раз помогло. Но результата нет.

    Володя написал выше. Добавить строчку set bAwaitingInput to 1 выше строчки активации мессадж-бокса.

    • Нравится 1

  2. Видимо не работает твой блок MenuMode в скрипте. Скорее всего потому, что у тебя стоит условие If ( bAwaitingInput == 1 ), а сама переменная стоит на 0, вот блок и не срабатывает. Я не вижу, чтобы она где-то в скрипте начислялась. Она где-то начисляется вне скрипта? И какая у нее задача вообще? Зачем она нужна?

     

    А само окно активируется. Его активация прописана в блоке OnActivate, и этот блок работает.


  3. Сотри строчку целиком, сохрани скрипт и закрой его. Затем открой скрипт, впиши ее снова и попробуй сохранить.

     

    Почему скрипт ругается на "to" не понятно, единственное, что приходит на ум - o прописана по-русски. Если кто-то помнит, похожая проблема была у Allnart,ы когда-то давно, скрипт ругался на абсолютно правильную строчку. Как тогда решили это, я уже не помню.

    • Нравится 1

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

    За основу брал скрипт от биологической исследовательской станции, просто сменил открываемое меню и ссылку на мой message box.

    Просто сменил ссылку... Да уж. Точнее сказать просто отодрал от скрипта маленький кусок...

     

    Так а в чем сейчас-то проблема? Вот это не компилируется или не работает так как ты задумал? Или что?

    Спойлер
    
    scn BioReactorScript
    
    short nButton
    short bAwaitingInput
    
    Begin OnActivate
        if IsActionRef player == 1 
            If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1
                setTalkingActivatorActor BioReactorNPC
                activate
            else
                ShowMessage BioReactorNoTalk
            endif
        endif
    End.
    
    BEGIN MenuMode 1001
    
    	If ( bAwaitingInput == 1 )
    		Set nButton to GetButtonPressed;
    
    		If ( nButton > -1 )
    			Set bAwaitingInput to 0;
    
    ; -------------------------------------------------------------------	BUTTON 0 ----------------------------------------------	\/	; "Go away"
    			If ( nButton == 0 )
    				Set nButton to -1;
    				Return;
    ; -------------------------------------------------------------------	BUTTON 1 ----------------------------------------------	\/	; "Charge"
    			Elseif ( nButton == 2 )
    				Set nButton to -1;
    				Player.ShowRecipeMenu BioReactor
    			Endif
    		Endif
    	Else
    		Return;
    	Endif
    	
    END; menumode 1001

     


  5. 16 минут назад, RaggaL сказал:

    За основу брал скрипт от биологической исследовательской станции, просто сменил открываемое меню и ссылку на мой message box.

    В блоке BEGIN MenuMode присутствуют как минимум две переменные - nButton, которая отвечает за строки в меню и bAwaitingInput. Но почему-то в скрипте они не прописаны.

    scn BioReactorScript
    
    short nButton
    short bAwaitingInput
    
    Begin OnActivate
        if IsActionRef player == 1 
            If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1
                setTalkingActivatorActor BioReactorNPC
                activate
            else
                ShowMessage BioReactorNoTalk
            endif
        endif
    End.
    
    BEGIN MenuMode 1001
    
    	If ( bAwaitingInput == 1 )
    		Set nButton to GetButtonPressed;
    
    		If ( nButton > -1 )
    			Set bAwaitingInput to 0;
    
    ; -------------------------------------------------------------------	BUTTON 0 ----------------------------------------------	\/	; "Go away"
    			If ( nButton == 0 )
    				Set nButton to -1;
    				Return;
    ; -------------------------------------------------------------------	BUTTON 1 ----------------------------------------------	\/	; "Charge"
    			Elseif ( nButton == 2 )
    				Set nButton to -1;
    				Player.ShowRecipeMenu BioReactor
    			Endif
    		Endif
    	Else
    		Return;
    	Endif
    	
    END; menumode 1001

    А вообще, скинул бы ты исходник скрипта, с которого ты это скопировал, чтобы знать, что ты там поменял.


  6. В 30.04.2021 в 15:05, RaggaL сказал:

    Вроде бы все просто, надо переиначить кусок ванильного скрипта под свои REF ID. Но что там и за что отвечает-не понимаю. Интуитивно выделил вот такое:

    В этом куске скрипта нет никаких рефID, я могу конечно написать что примерно означает каждая строчка скрипта, но надо ли оно?


  7. 9 часов назад, ShadowSharkAlive сказал:

    Замена слайдов, я имею ввиду картинок. 

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

    Самое сложное, пожалуй - это сами картинки сделать. А внедрить в игру не трудно, они там в качестве текстур находятся, в формате dds. По сути тут даже редактор не нужен, достаточно поменять ресурсы. Делайте красивые картинки, сделать из этого мод поможем.


  8. 13 минут назад, ShadowSharkAlive сказал:

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

    Смотря что из себя будет представлять этот реплейсер, перерисовка слайдов, замена озвучки?


  9. Я не понимаю, что такое личностный модуль, так как не знаком с модом про биреактор. Переменная bBuddiesTalk - это, видимо, какая-то переменная, которую ввел автор мода для чего-то. Что касается message box-а с кнопками - все действия, которые он выполняет прописываются в скрипте, есть такая внутриигровая переменная - Button, она как раз и завязана с вариантами выбора и их последствиями при выборе вариантов из message box-а.


  10. 4 часа назад, RaggaL сказал:

    Скопировал и себе такой, разместил в мире объект мебели, но вот указать его как цель путешествия не могу, его нет в выпадающем списке. Пробовал делать через linked reference и у креста, и у непися, и у обоих сразу.

    Прилагаю скриншот, наверное неинформативный.

    Галочку надо поставить Persisdent Reference (постоянная ссылка) в окне креста. И вообще это галочка должна стоять на всех объектах, которым ты даешь референс ID. Далее, надо нажать "окей" в окне, тем самым сохранить результат.


  11. В 15.04.2021 в 16:19, RaggaL сказал:

    Скрипты и диалоги сделаны, настал черед пакетов AI. Моррисон нанимается в отряд, появляется колесо компаньона. Но следовать за ГГ или менять оружие по команде не хочет.

    И не будет. С этой аброкадаброй, которую ты у кого-то списал на ютубе колесо работать не будет. Колесо спутника завязано с переменными, которые имеют определенные ID и прописаны в скриптах напарников, названия у них идентичны в каждом скрипте компаньона, можно посмотреть на примере ванильных спутников. А еще помимо этих переменных колесо связано с ванильными компаньонскими топиками, названия которых тоже можно посмотреть в ванильном квесте спутников. Система колеса очень проста и практически не требует скриптов, кроме добавления переменных в скрипт NPC, все остальное там реализовано через диалоги. Так что, если хочешь колесо, удаляй всю эту штуку с тем скриптом и своими топиками, которую ты написал, и смотри, детально разбирай реализацию ванильных напарников.

    В 15.04.2021 в 16:19, RaggaL сказал:

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

    Правильно, ты же ничего не прописал, чтобы он был дружелюбен по отношению к игроку. При найме и увольнении в результ-окне следует прописать ряд функций.

     

    При найме:

    Set IDREF.Waiting to 0 на всякий случай отменяет ожидание, если оно активировано
    IgnoreCrime 1 игнорирует атаки игрока
    NPCREF.AddPerk CompanionSuite какой-то игровой перк для компаньонов, не помню точно какой, однако это и есть колесо спутника.
    Player.AddPerk NPCFollowerPerk (ID перка) добавляет игроку уникальный перк напарника, если таковой имеется
    Set NPCREF.IsFollowingDefault to 1 активирует стандартную дистанцию следования (через пакет)
    Set NPCREF.CombatStyleRanged to 1 активирует дальний стиль боя по умолчанию

    SetPlayerTeammate 1 функция "товарищ по команде"
    SetIgnoreFriendlyHits 1 действие перка "дружеские подколки"
    Set NPCREF.RaggalHired to 1 начисляет переменную, значение 1 -  персонаж нанят, нужна для настройки пакетов
    Set NPCREF.RaggalFired to 0 начисляет переменную, значение 0 -  персонаж не уволен
    NPCREF.AddToFaction FollowerFaction 1 добавляет персонажа во фракцию игрока
    NPCREF.SetFactionRank TeammateFaction 1 фракционная функция
    NPCREF.ResetAI перезагружает AI  напарника
    ShowMessage IDMsg (ID сообщения "Message") выводит на экран сообщение о присоединение персонажа к игроку
    ShowMessage IDMsg (ID сообщения "Message") выводит сообщение о добавлении игроку уникального перка напарника, если таковой имеется

     

    При увольнении прописываются функции, обратные этим, кроме некоторых.

    Set NPCREF.Waiting to 0 на всякий случай отменяет ожидание, если оно активировано
    IgnoreCrime 0 Отменяет игнорирование атак игрока
    Set NPCREF.RaggalHired to 0 начисляет переменную, значение 1 -  персонаж не нанят нужна для настройки пакетов
    Set NPCREF.RaggalFired to 1 начисляет переменную, значение 1 -  персонаж уволен, нужна для настройки пакетов
    Set NPCREF.RaggalL38 to 0 начисляет переменную, значение 1 -  персонаж уволен, 1 - направлен в Лаки 38, 0 - отправлен туда, где обитал ранее, нужна для настройки пакетов
    NPCREF.SetPlayerTeammate 0
    NPCREF.RemovePerk CompanionSuite забирает у напарника вышеупомянутый перк
    Player.RemovePerk NPCFollowerPerk (ID перка) забирает у игрока перк напарника
    NPCREF.RemoveFromFaction FollowerFaction исключает персонажа из фракции игрока
    ShowMessage IDMsg выводит на экран сообщение о увольнении напарника
    ShowMessage IDMsg выводит сообщение о потери игроком уникального перка напарника, если таковой имеется
    NPCREF.ResetAI

     

    Извиняюсь, если разочаровал, но прежде чем смотреть какие-то ролики в интернете, нужно было посмотреть реализации спутников в оригинальной игре, или скачать базовый туториал по созданию супермутанта-компаньона "Малыш Джимми". Там подробно все описано, как раз под колесо. В принципе, вариантов реализации напарников много, в ванильном Fallout 3, например, они вообще по другому созданы в сравнении с NV. Так что, твой вариант с колесом не подружится.

    • Нравится 2

  12. 19 минут назад, RaggaL сказал:

    так как в списке GetQuestVariable нет моего квеста.

    Нет, потому, что ты переместил скрипт с квеста на NPC, и теперь условие GetQuestVariable надо сменить на GetScriptVariable, в нем найдешь своего NPC и его переменные.

    Спойлер

    02b8a0cf5c00.jpg

     

    Условие GetQuestVariable используется для переменных скриптов, которые привязаны к квестам. Условие GetScriptVariable используется для переменных скриптов, которые привязаны к NPC и прочим объектам. 

    • Нравится 1

  13. И ты сам это сочинил? Или списал где-то?

     

    scn RGLfollowerScript2
    
    short RGLFollow ; 0=NO 1=YES
    short RGLWeap ; 0=range 1=melee
    short RGLDist ; 0=long 1=close
    short RGLWait ; 0=NO 1=Yes
    short RGLAgression ; 0=default 1=agressive 2=passive
    
    Begin OnLoad
    
    If RGLWeap == 0 Перед 0 пропустил пробел
       RGLfollowerREF.SetRGLWeap FollowersCombatStyleRanged Неправильно, вообще бессмыслица
       RGLfollowerREF.SetCombatStyle FollowersCombatStyleRanged Надо так
    Else
    If RGLWeap == 1 Опять пропустил пробел
       RGLfollowerREF.SetRGLWeap FollowersCombatStyleMelee Опять бессмыслица
       RGLfollowerREF.SetCombatStyle FollowersCombatStyleMelee Надо так
    EndIf
    
    END

    Вот так должно сохраниться. Но будет-ли написанное тобой работать корректно в связки с какими-то твоими диалогами, которые я не знаю как реализованы, я не знаю. Какая-то это странная реализация.


  14. Во-первых, на что наложен этот скрипт? На NPC или квест? И что он должен делать по твоей задумке?

     

    6 часов назад, RaggaL сказал:

    RGLfollowerREF.SetRGLWeap FollowersCombatStyleRanged

    
    GLfollowerREF.SetRGLWeap FollowersCombatStyleMelee

    Во-вторых, что это за бред сивой кобылы? Что ты хочешь сделать этими строчками?


  15. 4 часа назад, RaggaL сказал:

    Разъяснения в картинках хороши, помогло доделать скрипт, прописать переключения переменных через диалоги.
    Отпишусь, как только разберусь с работой диалогов и смогу проверить скрипт в деле.

    Главное не забывать компилировать все вписанные скриптовые строчки, кнопка находится рядом с окном. Если скриптовые строчки прописаны правильно, они сохраняться без проблем. Вот тут как раз, во время начисления нужного значения переменной (если это значение для запуска пакета), и нужно запускать процедуру пересмотра пакетов NPC. Тогда NPC начнет исполнять пакет незамедлительно. Например:

     

    Set RaggalQuest.RaggalValue to 1

    RaggalREF.evp

     

    В данном тексте - RaggalQuest - это твой квест, RaggalValue - это прописанная в скрипте квеста переменная, 1 - это значение, которое мы начисляем. А RaggalREF - это рееренс ID NPC, который выполняет пакет.


  16. 18 минут назад, adilkhan сказал:

    а перевод кто то делает или уже никогда перевод не выйдет?

    Кто-нибудь может и делает.... Но нам о таковых ничего не известно.

    18 минут назад, adilkhan сказал:

    и еще вопрос кто переводил new california

    А вы ее не скачивали? Команда переводчиков Falcon-Lair. На сайте в описании к моду есть список людей, которые принимали участие в переводе. 

     

    18 минут назад, adilkhan сказал:

    и за сколько?

    За бесплатно.

     

    • Нравится 1

  17. 4 часа назад, RaggaL сказал:

    Раз через стадии будет подтупливать, то этот способ лучше не использовать.

    Дело не в условиях через стадии. Дело в том, что AI имеют свойства иногда подтупливать в присутствии игрока, хоть через стадии, хоть через переменные. И поэтому желательно запускать процедуру пересмотра пакета при его активации, даже если пакет активируется через переменную.

     

    4 часа назад, RaggaL сказал:

    Пришлось отказаться от трех реплик, так как микрофон сломался и я не мог их озвучить. Заменил на многоточие.

    В таком случае галочки Random и Rendom End не нужны. Достаточно отдной галочки Goodbye.

     

    4 часа назад, RaggaL сказал:

    Очевидно, что не хватает команды "end" , но с ней скрипт не сохраняется.

    В данном случае End не нужно, End - это завершение какого-либо функционального блока. В данном скрипте у тебя нет таких блоков. К примеру, вот начало и завершение блоков, показываю наглядно.

    Спойлер

    55746b80cb69.jpg
     

     

    4 часа назад, RaggaL сказал:

    И к квесту привязываться не хочет, не появляется в списке.

    Не появляется, потому, что в верхнем правом углу в графе "тип скрипта" у тебя прописано - Object, а надо - Quest:

    Спойлер

    ad9c24337192.jpg

    Что бы он появился в списке, необходимо выбрать строку - Quest, сохранить скрипт и закрыть его. Закрыть квест, если он был открыт во время сохранения скрипта. Далее открываем квест и скрипт отображается в списке.

     

    4 часа назад, RaggaL сказал:

    Также мне не понятно, почему у этих переменных не нужно прописывать их возможные значения. 

    Тебе, похоже, вообще непонятен принцип работы скриптовых переменных. Значение всех переменных по умолчанию - 0. А ты уже сам начисляешь им значения. Начислять значения переменных можно где угодно и какие угодно. Приставка short говорит о том, что значения могут быть только целочисленные, не дробные. Можно, например, вот здесь начислить, во время диалога:

    Спойлер

    e38418c05d4f.jpg

    Или вот тут, при запуске стадии:

    Спойлер

    2f9d36914c38.jpg

    А можно в самих скриптах, но для тебя это, наверное, сложно, так как ты не умеешь скрипты "сочинять".

    Спойлер

    505c36eda80a.jpg

    А вот в условиях пакетов (в диалогах тоже можно это использовать) ты уже прописываешь, какое должно быть значение переменной для запуска пакета.

    • Нравится 1

  18. 5 часов назад, RaggaL сказал:

    То есть, я могу сделать пакеты АИ через стадии квеста, которые будут переключаться диалогами, а в самих пакетах использовать GetStage?

    Там можно использовать любые условия, как и в диалогах, хоть стадии, хоть переменные. Вот только при переключении стадий, если игрок будет стоять рядом AI NPC может подтупливать. Поэтому при переключении стадий лучше запускать процедуру пересмотра пакетов этим NPC, для этого есть скриптовая функция - РефкренсID.Evp, то бишь нужен референс ID персонажа, прописать можно либо в скрипте каком-нибудь, либо в результ-окне стадии, например. Если хочешь делать через переменные, тогда создавай в квесте скрипт и прописывай в нем переменную.

    5 часов назад, RaggaL сказал:

    А еще я нашел баг  в своем моде про биореактор.  Моя реплика GOODBYE имеется у всех НПС, хотя в условиях прописан только нужный НПС. Скрин прилагаю.

    Странно, вроде условие правильно прописано. Может это все-таки не твоя реплика у всех остальных NPC, а какая-то из другого квеста, многоточие. А что это вообще за скрин, почему там одна реплика, у тебя же их три было, и зачем там стоят галочки Rendom и Rendom End, если реплика всего одна.

     


  19. 11 часов назад, RaggaL сказал:

    Впервые сел делать пакеты АИ, по инструкции. Автор легко и просто создает условия работы пакета,а у меня почему-то нет нужного квеста в выпадающем списке. Прилагаю скрин условия и скрин квеста. В квесте созданы стадии.

    В этом квесте нет переменных, к чему ты собрался пакет привязывать? Поэтому его и в списке нет.

     

    Условие GetQuestVariable подразумевает использование скриптовых переменных квестов. Для стадий квестов есть условие GetStage.


  20. Нет, приоритет топика "гудбай" трогать я бы не советовал. Так-то твои реплики стоят выше, значит они в приоритете. Я смотрю там один топик вообще без условий стоит. Посмотри на первых вкладках квестов приоритеты квестов - BioReactor, GenericAdult, Generic. У квеста BioReactor приоритет должен быть выше.

     

    Далее проверь условия Condition своих трех реплик "гудбай". Может у тебя опять там что-то не правильно прописано. Хотя у тебя там и условий вроде нет, кроме условия на NPC, и там явно все правильно, раз они высвечиваются в диалогах NPC.

     

    Ну и самое важное. В последней своей реплике (Труд во благо партии-превыше всего!), помимо галочек "goodbye" и "random", поставь галочку "Random End". Это касается только последней (третьей реплики)! Таким образом мы запускаем цикл, NPC в случайном порядке говорит случайную фразу из первых трех, затем на той, где стоит галка "random end" цикл заканчивается и начинается снова.

    • Нравится 1

  21. 5 часов назад, RaggaL сказал:

    Выдвинул. Почему-то у меня все подобные вкладки так сдвигаются сами каждый раз.

    Это не у тебя, это в принципе такая особенность редактора. При открытии он почему-то все скрывает. Хотя лет 8 назад я не припомню такого, может это как-то связано с ini файлом редактора или причина в новых ОС, на которые мы перешли после семерки. Не знаю, в общем.

    Цитата

    зеленой линией отметил мои топики. Остальное- чужое.

    Круто, теперь я знаю названия твоих топиков, вот только толку от этих скринов ноль. Я вижу только названия топиков, а не то что в них. Нам нужен топик GOODBYE.

     

    Далее, во вклвдке Conversation выбирай топик GOODBYE, он 8 по счету у тебя. В нем содержаться все реплики, которые может произнести твой NPC во время прощания, то бишь которые подходят ему по условиям, из разных квестов, просматривай каждую, включая их условия Condition, которые у тебя тоже скрыты по умолчанию. По идее, реплики, которые в приоритете, будут расположены первые в списке. Нужно посмотреть их условия и из каких они квестов.

    • Нравится 1

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