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

Вис691

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

    1 539
  • Пожертвование

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

  • Посещение

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

    67

Весь контент Вис691

  1. Вис691

    Нам... 10 лет

    Ох уж эта вечная путаница с цифрами в моём нике. Как началась в 2012, так и не изменилась Мне повезло быть приглашённым на сайт, хотя по факту я в то время не умел ничего. У меня в "Портфолио" находилось 1,5 модификации, все скрипты в которых были написаны не мной (я активно просил помощи на просторах модгеймса). Но я очень хорошо помню, как Паха007 похвалил меня за то, что я обновил свой первый квест, исправив основные ошибки, опечатки и всё то, на что мне указали в комментариях. Потом был SFW, RA и, конечно же, Гранд-Каньон. И если к первым двум я уже никакого отношения не имею (за исключением небольшой помощи со скриптами - теперь я их сам умею писать!), то вот последний проект хотелось бы увидеть в завершённом виде. Надеюсь, у нас получится. Присоединяюсь ко всем благодарностям из первого поста. Конечно же, благодарю Магнума за приглашение и за 10 лет совместной работы. Ещё мне бы хотелось сказать спасибо всем тем, кто активно работает на баг-трекере, оставляет подробные описания со скринами и даже роликами. Поверьте, грамотно описанный баг - это половина (а иногда и больше) пути к его фиксу. Кстати, о фиксах. Спасибо всем, кто сам исправляет различные проблемы по мере возможностей. Даже и не верится, что уже прошло 10 лет. Столько людей приходили и уходили с проекта за это время. Посчастливилось пообщаться с интересными (и чего уж греха таить, не посчастливилось встретиться с не очень приятными) людьми. С развитием xNVSE начали появляться новые крутые моды, так что игра продолжает жить, и это радует. Посмотрим, что будет дальше.
  2. Можно вот это попробовать https://geckwiki.com/index.php?title=SetInteractionDisabled Т.е. получить ref, который там через PlaceAtMe и на него эту функцию. Или можно сразу на все объекты этого типа, но тогда нужно найти какой-нибудь квест, который всегда запущен и туда небольшой фрагмент кода вставить. Если нужна помощь с любым из этих 2ух вариантов, пишите.
  3. Вис691

    Невнимательный платит дважды

    Да, я видел, спасибо!
  4. Всем привет! Прошёл очередной год, а, значит, пришло время очередного отчёта. Сегодня хотел бы поднять две темы, лишь косвенно связанные с Каньоном. Кстати, забавно вышло. В прошлый раз писал, что защитился и вновь поступил. А сейчас выходит так, что скоро вновь защищаться буду. Ну да ладно, сейчас не об этом. Начнём, пожалуй, с темы поста. Ребята, делайте бекапы. Терять прогресс, и делать что-то заново - невероятно больно. Первый раз у меня случился, когда я решил закинуть обновление от товарищей по команде. А так как у нас всё идёт архивом, я благополучно перезаписал свои наработки старой версией файла. И это было очень неприятно, т.к. это был файл интерфейса. А править эти .xml файлы - то ещё удовольствие. Пришлось вспоминать, что я там наваял, и делать заново. Я даже не уверен, что ничего не забыл. Состояние такое, будто я разобрал что-то, затем собрал заново, а у меня остались лишние детали. Но вроде работает, так что не всё так печально. Второй раз случился, когда я переставлял винду. Старая была явно чем-то заражена, поэтому я, не раздумывая, снёс абсолютно всё, что было на дисках. Естественно, перед этим я сохранил самую ценную инфу. Стоит ли говорить, что про моды на Fallout я забыл? Благо в этот раз потери были не такие большие - только плагин. Да и в том лишь диалоги, которые имеются в виде Word-овского документа. Так что это восстановить было несложно. Но муторно, не люблю монотонную работу . И собственно встаёт вопрос - а как бекапить? Очевидно, надо на какой-то внешний ресурс. Создавать git-репозиторий не хочется, звучит как оверкилл. С другой стороны, всякие .xml файлы там бы хорошо зашли, ибо можно будет отследить все изменения и историю. Может какой-нибудь onedrive? Но тут всю директорию с модами пихать не вариант, слишком тяжёлая. Значит, нужен механизм синхронизации... Не знаю, в общем! Если есть какие-то практики - пишите, очень интересно! Не хочу наступать на грабли в третий раз. Переходим ко второй теме. Ребята, идите в ногу со временем. NVSE до сих пор развивается, не стесняйтесь переходить на новые фичи, ибо они зачастую сделаны лучше, чем оригинал. Я сейчас даже не говорю про лямбда-выражения и прочие продвинутые штуки. Возьму самый банальный пример. Стандартный set .. to и let из NVSE. Мало того, что возможностей у последней функции куда больше, так ещё и читаемость повышается в разы. Вот вам пример: set MyVeryLongNamedQuest.SomeVariable to MyVeryLongNamedQuest.SomeVariable + 1 let MyVeryLongNamedQuest.SomeVariable += 1 Строка получилась в 2 раза короче! А с выходом xNVSE 6.1.0 можно даже так: MyVeryLongNamedQuest.SomeVariable += 1 Если вам в скрипте потребуются строки или массивы, от let никуда не уйти. Так используйте эту функцию везде. Более того, ещё один огромный плюс, указанный в вики: Если возникает ошибка (во время игры), то в консоль будет выведено сообщение, содержащее мод и скрипт, в котором возникла ошибка! Это очень круто, ибо помогает ловить ошибки, которые set просто молча игнорирует. В общем, не стесняйтесь развиваться вместе с NVSE. Может, однажды найдёте что-то, что давно искали. Однако я ни в коем случае не призываю бежать и переписывать старый, уже проверенный код. В этом может быть резон только, если удастся его оптимизировать и снизить нагрузку с игры. В остальных случаях - двигайтесь дальше. Всем спасибо за внимание и с Наступающим!
  5. Исправить нынче можно. Надо вот этим воспользоваться: https://geckwiki.com/index.php?title=DecompileScript
  6. Версия 1.4

    1 901 раз скачали

    "... для всех ваших нужд в создании мира!" GECK обеспечивает Вас инструментами, которые позволяют расширять игру так, как Вам хочется! Вы можете создавать, модифицировать и изменять любые данные, используемые игрой, от пейзажей, городов и локаций до написания диалогов, создания персонажей, оружия, существ и многое другое. Установка: Распаковать содержимое архива в папку Вашей игры. Дополнительная настройка: 1) Находим конфигурационный файл (в Windows 7 "c:UsersИМЯ ПОЛЬЗОВАТЕЛЯDocumentsMy GamesFalloutNVGECKCustom.ini") 2) Изменяем некоторые параметры: Загрузка нескольких мастер-файлов (.esm). В строке bAllowMultipleMasterLoads= меняем 0 на 1 Возможность запуска нескольких GECK одновременно. В строке bAllowMultipleEditors= меняем 0 на 1 Отображение всех объектов в окне рендеринга. В строке bUseMultibounds= меняем 1 на 0
  7. По идее можно так попробовать: SetName ".44 %qМагнум%q, оболочечный" Ammo44Magnum Отсюда: %q - Prints a double quote character.
  8. Названия скриптов лучше не начинать с цифр. Не знаю, как сейчас, но раньше с подобными возникали аномалии.
  9. ГЕКК нужно тоже запускать в режиме FOSE. Для этого создаёте ярлык fose_loader.exe (или как он там называется) -> ПКМ по нему -> Свойства -> В графе "объект" дописываете " -editor" (без кавычек, начинается с пробела). В итоге должно быть что-то типа такого в этой графе: "путь до .exe fose" -editor Теперь этот ярлык должен запускать ГЕКК с поддержкой FOSE
  10. Вот тут утверждается, что в FOSE есть. Я сам не проверял, конечно, но эта вики довольно качественная.
  11. int iCounter ref rMsg begin GameMode let iCounter := ... ; какая-то логика для получения индекса let rMsg := ListGetNthForm MsgsList iCounter ; MsgsList - лист с сообщениями showMessage rMsg end
  12. Если условие тривиальное - скажем, число - то можно засунуть мессаджи в форм лист в нужном порядке, а потом по индексу доставать. Что-то более хитрое в голову не приходит.
  13. Ой, не, так плохо. Нам нет смысла гонять цикл "постоянно" (с поправкой на расстояние). Если возвращаться к диалогам типа "Я продам 5/10/15... книг", то проще всего весь скрипт (тот что отвечает за продажу) вынести в UDF и просто из Result Script диалога его вызывать. Количество книг передавать как переменную. Тогда и глобальные не нужны будут. Таким образом весь скрипт будет срабатывать единожды, только во время диалога и не будет грузить игру лишними проверками. Для диалогов в условия вполне достаточно GetItemCount - он и с форм-листами работает (считает суммарное количество предметов, что нам и нужно).
  14. А, точно, они же в xNVSE понапридумывали кучу нового. Сверху в меню Gameplay -> Globals... ну и там ПКМ и как обычно. Что ж за верблюд у вас 3000 книг на себе таскает? Мне-то всё равно, какую систему фиксить/оставлять - главное чтобы работала без проблем.
  15. Когда я разрабатывал эту систему через рецепты, автолута ещё не существовало, да и не задумывался я, что кто-то будет продавать книги тысячами - инвентарь всё же не резиновый. Я сейчас не вспомню, что и как там устроено, но в принципе посмотреть можно, если надо. У варианта с рецептами был плюс в том, что игрок сам мог выбрать, что и каком количестве он хочет продать. Вариант, представленный выше, тоже имеет место быть. Только он всё-таки в полу-псевдокоде пока, т.к. Count = BookTempCount не скомпилируется)
  16. А сам мод, где есть эти самые AidSigarettePack, подключили при изначальной загрузке ГЕКК? Скрипт в ГЕКК не сохраняется или сохраняется, но не работает в игре?
  17. Или можно подождать, пока у него появится время, ибо он всё-таки один, а одних лишь проектов в Фоллауте несколько. Не говорю уже о личной жизни.
  18. Да я ж говорю, попробовал у себя кусок, что прислал выше. Переменные создал в квесте про пупсов вообще. Скомпилировалось без проблем. поэтому я не знаю, почему у тебя не заработало.
  19. Let намного лучше set, включая отправку в консоль ошибок, если появляются. Я бы предлагал от set отказаться совсем. Видимо что-то не так делаешь, я сейчас попробовал у себя - без проблем. Использую чистый ГЕКК + Extender
  20. Набрать 27 уровней с 0-27 проще (требует меньше опыта), чем с 8-35, не забывайте про это. Я как большой любитель математики сделал бы честно - запомнил, сколько опыта ГГ имеет и потом столько же бы вернул. Сделать это можно так: let iCurrentLevel := player.GetLevel ; текущий уровень let iNextLevel := iCurrentLevel + 1 ; следующий уровень let iXPForNextLevelTotal := 25 * (3 * iNextLevel + 2) * (iNextLevel - 1) ; сколько всего нужно опыта для получения следующего уровня с 0 let iXPForNextLevel := GetXPForNextLevel ; сколько опыта нужно для получения следующего уровня с текущего значения let iPlayerXP := iXPForNextLevelTotal - iXPForNextLevel ; текущее количество опыта у ГГ Естественно, некоторые этапы можно объединить, чтобы выкинуть лишние переменные. Хотя и необязательно. Возврат опыта, кстати, может работать неверно, если используется RewardXP. Там похоже не указанное число даётся, а число + модификаторы, если есть. Видимо от перков или ещё чего, не в курсе. Я как бы сам про это не знал, пока не увидел, что существует RewardXPExact. Может быть с этой функцией получится лучше.
  21. Очень сильно сожЕлею, что люди не смогут полноценно насладиться качественным переводом.
  22. Могу только предположить, что MenuMode надо на GameMode поменять. Мне кажется, что сразу после нажатия на кнопку, мессаджбокс закрывается, и код обработки срабатывает только тогда, когда ты обратно какой-то мессаджбокс открываешь. Upd: по поводу глобальных переменных. Зашёл в Gameplay->Globals...->ПКМ в поле с переменными->New и создал переменную aaaTestGlobal. Затем создал тестовый скрипт: scn aaaTestScript begin GameMode if aaaTestGlobal == 0 let aaaTestGlobal := 1 endif end Всё сохранилось без проблем.

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