-
Публикаций
1 550 -
Зарегистрирован
-
Посещение
-
Победитель дней
67
Тип контента
Профили
Новости
База знаний
Форумы
Файлы
Галерея
Блоги
Весь контент Вис691
-
Кажется, я нашёл себе пистолет для прохождения) Магнум, а у нас что там по записям? Есть шанс догнать НВ?
-
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
Тебе всё равно нужен ID компаньона. В любом случае. -
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
Если не сработает, то напишу через ЖИП. Но только не раньше, чем завтра (а мб и вообще на выходных). Больно загружена у меня зачётная неделя, а скрипты с массивами за 5 минут не пишутся. -
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
Может быть кинуть врага в Фракцию друзей ГГ? Не знаю, есть ли такая, но вероятнее всего это как-то реализуемо. -
Так а в чём, собственно, проблема. Вы говорите, что запускается чистый SFW, так? Вам нужны дополнительные моды или что?
-
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
На этот случай я тут и сижу -
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
Говоря совсем просто, каждое нажатие на "ОК" было для скрипта аналогично нажатию "Попытаться починить дроида", т.к. индексы этих кнопок равны (и равны 0, как видно по твоему скрину). -
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
А, ну тут всё понятно. Опять смотрим сюда: http://geck.bethsoft.com/index.php?title=GetButtonPressed Читаем Теперь смотрим на скрипт. Что у нас происходит? Проверка на buttonVar, хорошо. Первый раз мы что-то нажали, сигнал прошёл (переменная стала = 0), выскочил следующий мессадж. Мы жмём окей, игра закрывает окно сообщения, т.е. выходим из менюшек (под менюшками я понимаю пип-бой, контейнеры, мессаджи и т.д.). Получается мы вновь в блоке GameMode. Что происходит теперь? Скрипт вновь упирается в set buttonVar to GetButtonPressed. Что последний раз было нажато? "ОК" из второго мессаджа. Так, и каков же индекс у этой кнопки? Если посмотреть на структуру кнопок в любом мессаге, видно что кнопки нумеруются с 0. Т.е. наш buttonVar вновь равен 0. Ну а там вновь вызывается сообщение и так до бесконечности. Вот тебе и проблема. Как решить? Ну, несложно догадаться вновь заглянуть на Вики и признать полезность переменной awaitingInput. Если сделать по подобию, то всё сработает. Грубо говоря, добавляешь проверку в самом начале блока и в нужное место (после вызова нового мессаджа, например) пихаешь Let awaitingInput := 0 (ну или через set, как тебе больше нравится). UPD: твой вариант тоже имеет место быть, но это тот ещё костыль) -
ScreenShot8
Вис691 прокомментировал никита19845 изображение в галерее в Скриншоты Fallout 3, NV, SFW
-
Из альбома: Разработки
Когда на парах делать совсем уж нечего. Теперь бы это закоддить. P.S. Записываюсь в художники проекта, я и не такое могу -
Тебе к нему
-
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
Остальные блоки работают в дебаг режиме. Не знаю, только для разрабов мода он или нет, но это не важно. Не за что. На самом деле, нам крупно повезло, что просто массив не существует. Я думал тут что-то серьёзнее. -
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
Цикл под этой строкой (с дампом) замени на If iArraySize != -1 foreach arrEntry <- arrActiveTeammates let rActor := arrEntry["value"] if eval !(rActor) continue endif if eval GetType rActor == 0 continue endif if eval !(rActor.IsActor) continue endif let iIndex := Ar_Find rActor alxUDCompanions.arrActiveCompanions if eval iIndex != Ar_BadNumericIndex Ar_Erase alxUDCompanions.arrActiveCompanions iIndex endif let iIndex := Ar_Find rActor alxUDCompanions.arrFormerCompanions if eval iIndex != Ar_BadNumericIndex Ar_Erase alxUDCompanions.arrFormerCompanions iIndex endif loop Endif Сейчас бы пытаться идти по массиву, которого не существует -
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
Добавь после принта с тройкой строку Ar_Dump arrActiveTeammates и результат из консоли скинь сюда. -
Вопросы по моддингу Fallout 3 и New Vegas
Вис691 ответил в теме Fallout 3 / NV - Мастерская по созданию модов
Ох, тут будет очень сложно что-то исправить сходу. Проблема в массиве(ах), вопрос только в каком(их). Перед каждой строкой "foreach arrEntry <- ..." добавь строку print "1" (2, 3 и т.д.). Посмотрим, какой массив ломается. -
Пока от школы тут, к сожалению, лишь одно название. Учеников катастрофически не хватает Структура безусловна очень важна. Много раз лично сталкивался с ситуацией, когда пишешь кусок кода - всё работает. Добавляешь что-то ещё - перестаёт работать. И при этом не видишь ошибку. А потом оказывается, что где-то напортачил со структурой. Поэтому крайне важно не забывать табуляцию - это намного упрощает чтение кода и поиск ошибок.
-
А, ты про это. Я же так и сказал, что разместил бы эту строку перед последним Endif'ом. Вариант со спамом одной команды не создаст сильной нагрузки, но если таких команд будет много, то да.
-
Ну, я себя мастером скриптинга не считаю. И прозвучало это как-то ненормально. Будто бы всюду хожу и перед всеми выпендриваюсь, какой я крутой в скриптах. А кто-то нашёл у меня ошибку и теперь злорадствует. Смысл в том, чтобы блок сработал ровно 1 раз после выхода из меню крафта. И если строка будет в самом низу, то это сработает также.
-
С чего вдруг? Блок пройдётся полностью, потом этим флагом закроется. Просто в ГеймМоде постоянно будет эта строка вызываться. Где проблема? К чему такое отношение?
-
Именно это я и хотел увидеть, в принципе. Единственное, я бы его разместил перед последним endif. Проблема была в том, что игрок мог зайти в меню крафта и просто выйти из него, ничего не крафтя. Тогда условие If iFlag выполнялось бы, и всё что в блоке также бы работало. А вот условие If iCurrentValue > iPreviousValue не выполнялось бы, а значит и строка Let iFlag := 0 была бы пропущена. Как-то так. Теперь точно всё. Мод готов к релизу. Если ты, конечно, этого хочешь.
-
Да. Но пока что есть ситуация, когда блок не закрывается.
-
Не, не надо ничего добавлять и усложнять. Надо всего лишь 1 строчку перенести, чтобы проход был единственным. Какая строка отвечает за остановку проходов? Т.е., какая строка влияет на НЕвыполнение условия If iFlag ? И куда её нужно перенести, чтобы она в любом случае выполнилась после одного прохода?
-
Уточнение здесь вовсе необязательное, у переменной iFlag всегда одно из двух значений - 0 или 1. Было бы их было больше, тогда да, было бы важно. Ну а в скрипте всё ещё есть ситуация, когда постоянно будет работать почти весь код, что в GameMode. А это не очень хорошо (хотя на таком мелком скрипте и не будет проблем, но всё же понимание того, что большой скрипт в подобной ситуации будет грузить игру, нужно).
-
Да тут мне надо тебя благодарить за трудолюбие. Приятно встретить человека, который готов поработать над тем, что он хочет получить. А не ждёт, пока за него всё сделают. В итоге получился вполне себе полный мод, который даже можно зарелизить. Добавить к нему, скорее всего, нечего, разве что какую-нибудь формулу для начисления опыта придумать. А то может немного читерным оказаться. А вот с этим что? Чисто от себя, как от администратора школы, хочу сказать, что очень рад, что смог помочь ученику. Я бы даже не против возобновить работу школы, вот только надо оно кому? Помнится, Даша говорила, что ей не помешало бы разобраться в азах... Так что пишите здесь, если хотите увидеть новые задания от меня или если захотите что-то создать (по типу мода от OldVaultBoy). Не стесняйтесь.
-
Здравствуйте. Никогда не занимался скриптингом в Ф4, поэтому ничем помочь, увы, не могу.