arifon Опубликовано 23 апреля, 2020 Опубликовано 23 апреля, 2020 это не то место где часовой, это при в ходе в локацию, один просто постоянно смотрит в стену. Когда отключаю патч все ходят нормально, больше всего что поражает нигде на форумах не могу найти такой проблемы, как будто только у меня такая хрень. пробовал переустанавливать игру, удалял все сохранения не помогает. Возможно ли как нибудь проверить аи пакеты персонажей внутри и вручную переделать чтобы были как в оригинале без патча? 23.04.2020 11:01:58, Azazellz сказал(-а): К скриптам это отношения точно не имеет. Ну и вроде как у них там на входе в храм пост, где часовой стоять должен.
Антенна связи с космосом Опубликовано 29 апреля, 2020 Опубликовано 29 апреля, 2020 Здравствуйте, товарищи, у меня вопрос. Я нуб и юзаю КК по Скайриму методом тыка в игре сапёр, потому как программа постоянно вылетает. При попытки создания квеста в разделе Quest Stages появилась ошибка Starting 1 compile threads for 1 files... Compiling "QF_aaaDialogueFolloverXavier_090DD8B7"... <unknown>(0,0): Unable to find flags file: TESV_Papyrus_Flags.flg F:\Games\TES V - Skyrim\Data\Scripts\Source\temp\QF_aaaDialogueFolloverXavier_090DD8B7.psc(3,0): Unknown user flag Hidden No output generated for QF_aaaDialogueFolloverXavier_090DD8B7, compilation failed. Batch compile of 1 files finished. 0 succeeded, 1 failed. Failed on QF_aaaDialogueFolloverXavier_090DD8B7 Я так понял, дело в том, что нет tesv_papyrus_flags.flag, который искать надобно в архиве scripts.rar в папке Data, но у меня не только в дата, у меня нигде такой папочки нет. Объясните начинающему - что тут можно поделать и в чём я не прав? Я пытаюсь Ксавьера сделать "говорящим" и более менее оригинальным фолловером. Я права, потому что я так сказала. Несогласные могут идти на йух вместе с прилетающими туда птичками. Ня.
Azazellz Опубликовано 29 апреля, 2020 Опубликовано 29 апреля, 2020 29.04.2020 07:28:33, Антенна связи с космосом сказал(-а): Здравствуйте, товарищи, у меня вопрос. Я нуб и юзаю КК по Скайриму методом тыка в игре сапёр, потому как программа постоянно вылетает. При попытки создания квеста в разделе Quest Stages появилась ошибка Starting 1 compile threads for 1 files... Compiling "QF_aaaDialogueFolloverXavier_090DD8B7"... <unknown>(0,0): Unable to find flags file: TESV_Papyrus_Flags.flg F:\Games\TES V - Skyrim\Data\Scripts\Source\temp\QF_aaaDialogueFolloverXavier_090DD8B7.psc(3,0): Unknown user flag Hidden No output generated for QF_aaaDialogueFolloverXavier_090DD8B7, compilation failed. Batch compile of 1 files finished. 0 succeeded, 1 failed. Failed on QF_aaaDialogueFolloverXavier_090DD8B7 Я так понял, дело в том, что нет tesv_papyrus_flags.flag, который искать надобно в архиве scripts.rar в папке Data, но у меня не только в дата, у меня нигде такой папочки нет. Объясните начинающему - что тут можно поделать и в чём я не прав? Я пытаюсь Ксавьера сделать "говорящим" и более менее оригинальным фолловером. Папка со скриптами и исходниками идет в комплекте с СК обычно. Потому что в самом скае скрипты упакованы в bsa (misc.bsa), и исходников к ним нет. Если для ЛЕ моддишь - скачай с gamer-mods, там была хорошая версия СК со всеми фиксами.
Антенна связи с космосом Опубликовано 29 апреля, 2020 Опубликовано 29 апреля, 2020 29.04.2020 09:42:38, Azazellz сказал(-а): Папка со скриптами и исходниками идет в комплекте с СК обычно. Потому что в самом скае скрипты упакованы в bsa (misc.bsa), и исходников к ним нет. Если для ЛЕ моддишь - скачай с gamer-mods, там была хорошая версия СК со всеми фиксами. Спааасибо, скачаю) Я права, потому что я так сказала. Несогласные могут идти на йух вместе с прилетающими туда птичками. Ня.
Stalker11 Опубликовано 30 апреля, 2020 Опубликовано 30 апреля, 2020 23.02.2018 10:43:17, werr сказал(-а): Ну так компилятору нужен файл TESV_Papyrus_Flags.flg для работы. Он лежит в архиве с исходниками скриптов. А если он все равно эту ошибку выдает ?<unknown>(0,0): Unable to find flags file: TESV_Papyrus_Flags.flg Файл TESV_Papyrus_Flags.flg есть в папке Papyrus Compilers
werr Опубликовано 1 мая, 2020 Опубликовано 1 мая, 2020 30.04.2020 20:33:52, Stalker11 сказал(-а):А если он все равно эту ошибку выдает ?<unknown>(0,0): Unable to find flags file: TESV_Papyrus_Flags.flg Файл TESV_Papyrus_Flags.flg есть в папке Papyrus CompilersЭто все здорово конечно, но ты не туда распаковал архив Scripts.rar. TESV_Papyrus_Flags.flg должен располагаться в той же папке, откуда СК смотрит на исходники скриптов: Data/Scripts/Source. A Random Dude's Story
Stalker11 Опубликовано 1 мая, 2020 Опубликовано 1 мая, 2020 (изменено) 01.05.2020 11:49:33, werr сказал(-а): Это все здорово конечно, но ты не туда распаковал архив Scripts.rar. TESV_Papyrus_Flags.flg должен располагаться в той же папке, откуда СК смотрит на исходники скриптов: Data/Scripts/Source. Отбой, нашел причину.7zip архив распаковал не правильно data\script\script Изменено 1 мая, 2020 пользователем Stalker11
Stalker11 Опубликовано 1 мая, 2020 Опубликовано 1 мая, 2020 01.05.2020 12:00:44, Stalker11 сказал(-а):Отбой, нашел причину.7zip архив распаковал не правильно data\script\script
budu200 Опубликовано 14 мая, 2020 Опубликовано 14 мая, 2020 Доброго всем... подскажите ...А есть ли функция в скриптах..на случайные числа? К примеру от 1 до 10? Чтото не могу ничего найти... Эт к примеру ..чтобы на локе(или тригер) ...играла музыка случайная из 10... Да и барда хочу заменить...в доме на грамофон))
Azazellz Опубликовано 14 мая, 2020 Опубликовано 14 мая, 2020 14.05.2020 11:38:56, budu200 сказал(-а): Доброго всем... подскажите ...А есть ли функция в скриптах..на случайные числа? К примеру от 1 до 10? Чтото не могу ничего найти... Эт к примеру ..чтобы на локе(или тригер) ...играла музыка случайная из 10... Да и барда хочу заменить...в доме на грамофон)) https://www.creationkit.com/index.php?title=RandomInt_-_Utility https://www.creationkit.com/index.php?title=RandomFloat_-_Utility
Enush Опубликовано 16 июля, 2020 Опубликовано 16 июля, 2020 Всем привет. Продолжаю свою тему с сумкой из другой темы. Подскажите пожалуйста скрипт для респавна предметов в контейнере, и желательно уточнить куда его нужно прописать, в Reference или в Edit Base ?
Azazellz Опубликовано 16 июля, 2020 Опубликовано 16 июля, 2020 16.07.2020 18:14:54, Enush сказал(-а): Всем привет. Продолжаю свою тему с сумкой из другой темы. Подскажите пожалуйста скрипт для респавна предметов в контейнере, и желательно уточнить куда его нужно прописать, в Reference или в Edit Base ? Команда для ресета объекта, включая инвентарь: https://www.creationkit.com/index.php?title=Reset_-_ObjectReference Вообще о скриптинге читай тут. Ибо команда сама по себе ничего не делает, нужен триггер (Event), который заставит ее сработать.
Enush Опубликовано 17 июля, 2020 Опубликовано 17 июля, 2020 Откровенно говоря понял мало чего... не понимаю что именно в скрипте надо заменить на свои данные, а что оставить. Я так понимаю мой скрипт выглядит примерно таким образом ? Event OnActivate(ObjectReference akActionRef) Function Reset(ObjectReference akTarget = None) native EndEvent
Azazellz Опубликовано 17 июля, 2020 Опубликовано 17 июля, 2020 17.07.2020 09:25:36, Enush сказал(-а):Откровенно говоря понял мало чего... не понимаю что именно в скрипте надо заменить на свои данные, а что оставить. Ну так и читал бы внимательней, и повторял сразу. Если с английским плохо - гугл-переводчик бы подключил. Контекст с него словить можно, особенно когда сам по туториалу вещи описаные делаешь, а не просто читаешь. 17.07.2020 09:25:36, Enush сказал(-а):Я так понимаю мой скрипт выглядит примерно таким образом ? Нет, не так. То, что ты написал - это описание команды. Конкретные примеры использования - ниже. В твоем случае, если будешь прикреплять к уже размещенному контейнеру, команда будет выглядить как-то так. Event OnActivate(ObjectReference akActionRef) self.Reset() EndEvent Но учти, что такая вот штука заресетит содержимое моментально. Будет читерский контейнер с бесконечными ресурсами. И еще учти, что тут нет заголовка скрипта.
Enush Опубликовано 17 июля, 2020 Опубликовано 17 июля, 2020 (изменено) 17.07.2020 09:36:33, Azazellz сказал(-а):Ну так и читал бы внимательней, и повторял сразу. Так бы и делал, проблема в том что сами примеры совершенно другие, следовательно и скрипты не такие как мне нужно. По поводу моментального респавна уже не важно, главное что бы появилось содержимое. Скрипты эти конечно... это тебе не озвучки в неписях ломать что бы напарников делать :) P.S. Теперь правильно? Scriptname ScriptAlchemyCommon extends ObjectReference Event OnActivate(ObjectReference akActionRef) self.Reset() EndEvent Изменено 17 июля, 2020 пользователем Enush
Azazellz Опубликовано 17 июля, 2020 Опубликовано 17 июля, 2020 17.07.2020 09:41:36, Enush сказал(-а):Как бы и делал, проблема в том что сами примеры совершенно другие, следовательно и скрипты не такие как мне нужно. Так в уроках тебя общим принципам учат. Что, как, куда. А дальше ты уже по этим принципам сам свое пишешь, руководствуясь списком доступных функций и прочих штук. Вот три основных страницы, в которых есть прям почти все, что надо. https://www.creationkit.com/index.php?title=Category:Script_Objects https://www.creationkit.com/index.php?title=Event https://www.creationkit.com/index.php?title=Keyword_Reference 17.07.2020 09:41:36, Enush сказал(-а):Теперь правильно? Ну, типа того, да.
Enush Опубликовано 17 июля, 2020 Опубликовано 17 июля, 2020 Благодарю за подробное толкование скриптинга так такового. Я знаю что это самый банальный и лёгкий вариант, который только можно придумать, но я в этом вообще ни разу не разбирался до этого, и, наверное уже не стану, ибо то чего я хотел получить я и получил. Что касается моей сумки то всё работает безотказно, единственное что я забыл убрать модуль на рандомные зелья каждый определённый уровень, уже исправил, в сумке только три моих ингридиента для яда, которые обновляются каждый раз при открытии контейнера. Ещё раз большое спасибо.
Antares669 Опубликовано 1 октября, 2020 Опубликовано 1 октября, 2020 Скрипт из квеста про амулет Бенду,что добавляется убив вора(событие срабатывает при попадании предмета в инвентарь в количестве 1 шт)Как изменить скрипт ,чтоб он переводил на 30 стадию с Проверкой что у игрока есть 2 амулета и только после этой проверки осуществил переход на 30 стадию ,если же у игрока 1 амулет или не одного чтоб оставался так и на 20 стадии.Ниже тело скрипта Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer) if (newContainer == Game.GetPlayer()) GSQ01.SetObjectivedisplayed(30) GSQ01.SetStage(30) endif EndEvent
Azazellz Опубликовано 1 октября, 2020 Опубликовано 1 октября, 2020 01.10.2020 13:06:13, Antares669 сказал(-а): Скрипт из квеста про амулет Бенду,что добавляется убив вора(событие срабатывает при попадании предмета в инвентарь в количестве 1 шт)Как изменить скрипт ,чтоб он переводил на 30 стадию с Проверкой что у игрока есть 2 амулета и только после этой проверки осуществил переход на 30 стадию ,если же у игрока 1 амулет или не одного чтоб оставался так и на 20 стадии.Ниже тело скрипта Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer) if (newContainer == Game.GetPlayer()) GSQ01.SetObjectivedisplayed(30) GSQ01.SetStage(30) endif EndEvent Добавь еще одно условие if типа такого: Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer) if (newContainer == Game.GetPlayer()) if (Game.GetPlayer().GetItemCount(SuperSecretAmulet)>= 1) GSQ01.SetObjectivedisplayed(30) GSQ01.SetStage(30) endif endif EndEvent Только не забудь этот SuperSecretAmulet в список property добавить, и задать, что это за амулет такой. Цепляешь этот скрипт к двум разным амулетам, каждому определяешь в проперти другой амулет. Сработает только если оба амулета окажутся в инвентаре одновременно. Это если амулеты разные. Если одинаковые (один и тот же предмет в количестве двух, типа обычного золотого амулета) - то просто исправь циферку в скрипте с 1 на 2. 1
Antares669 Опубликовано 1 октября, 2020 Опубликовано 1 октября, 2020 01.10.2020 15:34:01, Azazellz сказал(-а): Добавь еще одно условие if типа такого: Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer) if (newContainer == Game.GetPlayer()) if (Game.GetPlayer().GetItemCount(SuperSecretAmulet)>= 1) GSQ01.SetObjectivedisplayed(30) GSQ01.SetStage(30) endif endif EndEvent Только не забудь этот SuperSecretAmulet в список property добавить, и задать, что это за амулет такой. Цепляешь этот скрипт к двум разным амулетам, каждому определяешь в проперти другой амулет. Сработает только если оба амулета окажутся в инвентаре одновременно. Это если амулеты разные. Если одинаковые (один и тот же предмет в количестве двух, типа обычного золотого амулета) - то просто исправь циферку в скрипте с 1 на 2. Спасибо вам за грамотные советы!Хотя в вашем скрипте и ошибочка не компилируется так как выводит -Двойное условие...Вот когда одно удалить ,то все начинает компилироваться,но что интересно при попадании из кузни в инвентарь пишет сразу же на первой броньке что выкованны 2 шт.Хотя и прописал как вы советовали ввел вот это на предмете Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer) if (newContainer == Game.GetPlayer()) (Game.GetPlayer().GetItemCount(PirateArmor)>= 2) ReturnQeenPotema.SetObjectivedisplayed(24) ReturnQeenPotema.SetStage(25) endif EndEvent Armor Property PirateArmor Auto Сразу автоматом сменилась стадия квеста после попадания первого же одеяния в инвентарь,а нужно по условию что на первой стадия молчит и при добавлении второй срабатывает.А У меня срабатывает скрипт сразу после выплавки как только первый попадает в инвентарь минуя условие(Чудно))Одеяние одно и тоже.
Azazellz Опубликовано 1 октября, 2020 Опубликовано 1 октября, 2020 01.10.2020 18:38:09, Antares669 сказал(-а):А У меня срабатывает скрипт сразу после выплавки как только первый попадает в инвентарь минуя условие Потому что у тебя в скрипте нет второго условия. Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer) if (newContainer == Game.GetPlayer()) && (Game.GetPlayer().GetItemCount(PirateArmor)>= 2) GSQ01.SetObjectivedisplayed(30) GSQ01.SetStage(30) endif EndEvent Можно попробовать так. 1
Antares669 Опубликовано 1 октября, 2020 Опубликовано 1 октября, 2020 Все вопрос решился и все заработало все вышеобозначенные скрипты неправильные что исходили от меня и от глубоко уважаемого Azazellz,я просто забыл про Великий и Могучий оператор ELSE)))) :) в Скрипте банально отраженны только 2 условия это передача вещи в контейнер и смена стадии при ее попадании,но не было Третьего условия что если вещь попадает в инвентарь в количестве <=1,то стадия квеста висит на прежней 24 строке.Естестевенно раз нет третьего условия ,то доминировал скрипт второго условия и сразу после первого предмета переключал на новую стадию.Но Добавив оператор ELSE-мы включили Проверку всем Условиям и как оказалось чего то не хватает а именно задней стадии ,что если у игрока нет 2 бронек то доминирует уже не 25 стадия а именно прописанная оператором ELSE <=1 именно 24 нужная стадия!!Еще раз Благодарю Azazellz за помощь...... :bye:
Antares669 Опубликовано 1 октября, 2020 Опубликовано 1 октября, 2020 01.10.2020 19:33:28, Azazellz сказал(-а): Потому что у тебя в скрипте нет второго условия. Event OnContainerChanged(ObjectReference newContainer, ObjectReference oldContainer) if (newContainer == Game.GetPlayer()) && (Game.GetPlayer().GetItemCount(PirateArmor)>= 2) GSQ01.SetObjectivedisplayed(30) GSQ01.SetStage(30) endif EndEvent Можно попробовать так. Спасибо вам большое за помощь и участие Azazellz!Но ваш скрипт как и выше мои все ошибочные,нет они конечно компилируются и работают но неправильно отображают Функциональность в игре,тоесть этакие скриптовые полуфабрикаты.где минимум условий а потому такая трабла!!Добавил третье условие через оператор (else) с ее проверкой двух предыдущих стадий и все выстроилось в одну линию и теперь -Четко и правильно работает скрипт !!Мы имея 2 шмотки переключаемся на стадию 25 а имея всего одну шмотку сидим Принудительно на стадии 24 и даже если попробуем словчить и побежим с одной шмоткой при заявленном операторе 25 типа у нас в инвентаре 2 шмотки то оператор else даже не открывает диалог квестодателя!!А вот выковав еще одну шмотку появляется диалог на передачу 2 одеяний!!Еще раз вас от Души Благодарю Azazellz. :bye:
Antares669 Опубликовано 1 октября, 2020 Опубликовано 1 октября, 2020 (изменено) Может кому то когда то и пригодится мое инфо!!и человек сэкономит для себя пол дня поисков!!Вроде бы в простейшем скрипте!!Но посмотрите возможности Оператора ELSE-мы увидим что он контролирует все Процессы с передачей при Условиях Полноформатный оператор if-else содержит заголовок, включающий условие, тело 1, ключевое слово else и тело 2. Тела оператора могут состоять из одного или нескольких операторов и обрамляются фигурными скобками. if ( Условие ) // Заголовок оператора и условие { Блок операторов 1, // Если условие истинно, то.. составляющих тело1 //..выполняются операторы тела 1 }else // А если условие ложно.. Оператор else Оператор else выполняется в том случае, если условие указанное в if ложно. В таком случае будет проигнорирован код в блоке if, и программа сражу перейдет к выполнению кода в блоке else. Данный оператор нужно прописывать после закрывающей фигурной скобки блока кода if или после единственной инструкции оператора if: if (a < b) { a = b; } else { b = a + 1; } // или так if (c < b) c = 7; else cout << "C >= b" << endl; if (a < b) { a = b; } else { b = a + 1; } // или так if (c < b) c = 7; else cout << "C >= b" << endl; Как видите, правила к коду внутри оператора else ровно такие же как и к коду внутри оператора if. Теперь давайте попробуем создать более сложную программу, которая будет использовать конструкцию ветвления. Пример В качестве примера давайте напишем программу, которая будет эмулировать поведение продавца магазина. Для создания подобной программы давайте воспользуемся структурой if-else: #include <iostream> #include <stdlib.h> using namespace std; int main() { setlocale(0, ""); // устанавливаем локаль bool b; // создаем переменную типа bool cout << "Хотите купить машину? "; // выводим сообщение cin >> b; // узнаем ответ покупателя if (b) { // проверяем, что ответил пользователь cout << "Хотите Audi? "; // опять сообщение cin >> b; // и снова узнаем ответ if (b) // очередная проверка cout << "Пройдемте со мной." << endl; else // предлагаем альтернативное решение cout << "Тогда вам в соседний отдел." << endl; } else cout << "Так зачем вы сюда пришли?" << endl; return 0; #include <iostream> #include <stdlib.h> using namespace std; int main() { setlocale(0, ""); // устанавливаем локаль bool b; // создаем переменную типа bool cout << "Хотите купить машину? "; // выводим сообщение cin >> b; // узнаем ответ покупателя if (b) { // проверяем, что ответил пользователь cout << "Хотите Audi? "; // опять сообщение cin >> b; // и снова узнаем ответ if (b) // очередная проверка cout << "Пройдемте со мной." << endl; else // предлагаем альтернативное решение cout << "Тогда вам в соседний отдел." << endl; } else cout << "Так зачем вы сюда пришли?" << endl; return 0; } Разбор кода Здесь все должно быть вам понятным, однако давайте еще разок быстренько пробежимся по написанному нами коду: В строке 8 мы используем функцию, для вывода русских символов в консоль. В строке 14 начинается ветвление в C++. Тут у нас стандартный оператор ветвления if, а также оператор else. Внутри блока if у нас есть дополнительное условие. Изменено 1 октября, 2020 пользователем Antares669
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти