HonestWriter Опубликовано 1 июля, 2017 Жалоба Поделиться Опубликовано 1 июля, 2017 Доброго времени суток, господа. Срочно нужна помощь по одному вопросу. Пилю плагин на умного компаньона, который бы реагировал на действия игрока. ВСЕ хорошо, почти закончил, но есть одна ОГРОМНАЯ проблема. Я настроил ему кастомную прокачку. Все скиллы и атрибуты игрок повышает компаньону сам за експирианс поинты. Реализуется это через mod<параметр/навык>. Здоровье, мана и запас сил растут соответственно тоже, через мод. И вот, тестрируя, столкнулся с такой проблемой. Через определенный промежуток времени ВСЕ характеристики и навыки сбрасываются, возвращаются к исходным! Ладно, это не проблема, навыки и параметны можно записывать в переменные, скажем, и постоянно возвращать их через set<параметр/навык> в скрипте того же компаньона, но что делать с здоровьем, маной и запасом сил? Как их возвращать? Ведь если приклеить sethealth, скажем, то ведь может получиться так, что компаньон будет вечно с одним показателем здоровья, или, если запихнуть команду в if{}endif, то он может вихилится прямо по середине боя. КУонечно, можно добавить всякие доп.проверки, но это не эффективно. Может, кто знает, как грамотно обыграть всю эту концепцию, может есть какой-нибудь флаг сохранения параметров или еще что-нибудь в этом духе? В общем, жду от гуру советов, как это фиксится. Спасибо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 1 июля, 2017 Жалоба Поделиться Опубликовано 1 июля, 2017 У непися стоит Auto-Calculate Stats в CS? Ссылка на комментарий Поделиться на другие сайты Поделиться
HonestWriter Опубликовано 1 июля, 2017 Жалоба Поделиться Опубликовано 1 июля, 2017 (изменено) У непися стоит Auto-Calculate Stats в CS? Нет, не включено, я только что чекнул. Изменено 1 июля, 2017 пользователем HonestWriter Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 1 июля, 2017 Жалоба Поделиться Опубликовано 1 июля, 2017 Все навыки и параметры сбрасываются после отдыха, так понимаю? Ссылка на комментарий Поделиться на другие сайты Поделиться
HonestWriter Опубликовано 1 июля, 2017 Жалоба Поделиться Опубликовано 1 июля, 2017 Все навыки и параметры сбрасываются после отдыха, так понимаю? Нет, рандомно, через какой-то промежуток игрового времени. В последнем тесте это случилось на 52 дне игры. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 1 июля, 2017 Жалоба Поделиться Опубликовано 1 июля, 2017 (изменено) У меня на неписе сбрасываются все параметры после того, как я провожу 72 часа в другой ячейке и один раз там жду или отдыхаю. Способов обойти не знаю. SetHealth нормально работает с переменными и, в принципе, можно каждый раз делать проверку GetPCSleeping == 1 и устанавливать неписю правильные хиты. Изменено 1 июля, 2017 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
HonestWriter Опубликовано 1 июля, 2017 Жалоба Поделиться Опубликовано 1 июля, 2017 У меня на неписе сбрасываются все параметры после того, как я провожу 72 часа в другой ячейке и один раз там жду или отдыхаю. Способов обойти не знаю. SetHealth нормально работает с переменными и, в принципе, можно каждый раз делать проверку GetPCSleeping == 1 и устанавливать неписю правильные хиты. Спасибо за помощь. Я не знал, честно, что параметры сбрасываются каждые 72 часа отсутствия (в мануале, который я читал эта информация сообщалась только относительно диалогов). Переписал все параметры на локальные переменные и установил переприсваивание. Теперь все работает как надо! Ссылка на комментарий Поделиться на другие сайты Поделиться
Skooma Cat Опубликовано 14 июля, 2018 Жалоба Поделиться Опубликовано 14 июля, 2018 Вопрос № 1. Подскажите название скрипта в редакторе, который отвечает за появление надписи "Выглядит слишком сложным", при низком значении навыка "Безопасность"?Вопрос № 2. Существуют ли функция, в скриптовом языке Морровинда, отвечающая за определение знака рождения персонажа? По типу GetPCBirthSign? Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 14 июля, 2018 Жалоба Поделиться Опубликовано 14 июля, 2018 Вопрос № 1. Подскажите название скрипта в редакторе, который отвечает за появление надписи "Выглядит слишком сложным", при низком значении навыка "Безопасность"?Вопрос № 2. Существуют ли функция, в скриптовом языке Морровинда, отвечающая за определение знака рождения персонажа? По типу GetPCBirthSign?1. Это зашито в движок.2. Разве что в MWSE, т.к. в Морровинде функции не могут возвращать строки. В Морровинде можно проверить наличие бонусов, которые дает знак. Например: if ( GetSpellEffects, "wombburn" == 1 )позволяет определить, что у персонажа есть способность Замороженная Магия от знака Атронаха.Такой подход моды на регенерацию магии используют. Ссылка на комментарий Поделиться на другие сайты Поделиться
mortuus Опубликовано 14 июля, 2018 Жалоба Поделиться Опубликовано 14 июля, 2018 (изменено) 1 Это не зашито в движок, это гмст переменная, ищите эту фразу там.2 Переменной нет, возможность реализации есть и не одна. Через определение наложенных на игрока эффектов и через диалог. А ещё есть функция в mwseЕсть же тема по скриптам, зачем плодить? Изменено 14 июля, 2018 пользователем mortuus Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 14 июля, 2018 Жалоба Поделиться Опубликовано 14 июля, 2018 1 Это не зашито в движок, это гмст переменная, ищите эту фразу там.Судя по тексту вопроса, он скорее был не о том, как изменить собственно текст надписи, а о том, где расположена логика, отвечающая за появление надписи.Хотя сам вопрос неточный. Ссылка на комментарий Поделиться на другие сайты Поделиться
Марк К. Марцелл Опубликовано 14 июля, 2018 Жалоба Поделиться Опубликовано 14 июля, 2018 Есть же тема по скриптам, зачем плодить? Ты прав. Объединил. Ссылка на комментарий Поделиться на другие сайты Поделиться
Skooma Cat Опубликовано 15 июля, 2018 Жалоба Поделиться Опубликовано 15 июля, 2018 (изменено) Судя по тексту вопроса, он скорее был не о том, как изменить собственно текст надписи, а о том, где расположена логика, отвечающая за появление надписи.Хотя сам вопрос неточный. Да, я именно спрашивал про логику появления(я спрашивал название скрипта, чтобы его откорректировать как мне нужно). Насчёт второго пункта, про знаки рождения, мне всё понятно - спасибо. Ты прав. Объединил. Создал тему, не глядя какие уже существуют. Извините. По первому пункту всё же есть вопрос:В оригинальном(без MWSE) скриптовом языке Морровинда, есть функция GetLocked (статья на UESP - http://en.uesp.net/wiki/Tes3Mod:GetLocked).Можно ли создать глобальный скрипт, который открывает MessageBox при попытке открыть каждый в игре запертый объект(дверь, сундук - что угодно)? Примечание 1(GMST переменные). Собственно, я нашёл три переменные, отвечающие за взлом замков. fPickLockMult(-1)iPickMinChance(5)iPickMaxChance(75)Мне лично нужно, чтобы эти значения менялись в зависимости от уровня навыка Безопасность. Это можно реализовать? Изменено 15 июля, 2018 пользователем Skooma Cat Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 15 июля, 2018 Жалоба Поделиться Опубликовано 15 июля, 2018 (изменено) По первому пункту всё же есть вопрос:В оригинальном(без MWSE) скриптовом языке Морровинда, есть функция GetLocked (статья на UESP - http://en.uesp.net/wiki/Tes3Mod:GetLocked).Можно ли создать глобальный скрипт, который открывает MessageBox при попытке открыть запертый объект(дверь, сундук - что угодно)? Примечание 1(GMST переменные). Собственно, я нашёл три переменные, отвечающие за взлом замков. fPickLockMult(-1)iPickMinChance(5)iPickMaxChance(75)Мне лично нужно, чтобы эти значения менялись в зависимости от уровня навыка Безопасность. Это можно реализовать? 1 Через указание цели if ( de_p_chest_02salynsaret->getlocked == 0 ) messagebox "open" endifСундук должен быть reference persist 2 Это gmst переменные, из игры их нельзя менять. Изменено 15 июля, 2018 пользователем Larkin Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 15 июля, 2018 Жалоба Поделиться Опубликовано 15 июля, 2018 (изменено) Можно ли создать глобальный скрипт, который открывает MessageBox при попытке открыть каждый в игре запертый объект(дверь, сундук - что угодно)?Нет. С MWSE, емнип, такая проверка возможна. В обычном Морроувинде, думаю, реально выкрутиться через GetSoundPlaying.Мне лично нужно, чтобы эти значения менялись в зависимости от уровня навыка Безопасность. Это можно реализовать?Без MWSE менять GMST нельзя. Изменено 15 июля, 2018 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Skooma Cat Опубликовано 15 июля, 2018 Жалоба Поделиться Опубликовано 15 июля, 2018 Нет. С MWSE, емнип, такая проверка возможна. В обычном Морроувинде, думаю, реально выкрутиться через GetSoundPlaying.Без MWSE менять GMST нельзя. 1. Чем отличается GetLocked от GetSoundPlaying? B как выкрутится через GetSoundPlaying? Поставить в программе условие, что если воспроизводится звук закрытого объекта, то выводить MessageBox, такой вариант возможен?2. Посоветуйте, пожалуйста, надежную ссылку на самую последнюю версию MWSE (слышал, что там поддерживается меню настройки модов). Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 15 июля, 2018 Жалоба Поделиться Опубликовано 15 июля, 2018 1. Чем отличается GetLocked от GetSoundPlaying? B как выкрутится через GetSoundPlaying? Поставить в программе условие, что если воспроизводится звук закрытого объекта, то выводить MessageBox, такой вариант возможен?Да, выводить MessageBox, если воспроизводится соответствующий звук. Или под "открыть" имелось в виду "взломать"? GetLocked -- это про наличие замка, а не про действия игрока. MWSE можно найти на Nexus'е или на GitHub'е, вроде бы. Ссылка на комментарий Поделиться на другие сайты Поделиться
mortuus Опубликовано 23 июля, 2018 Жалоба Поделиться Опубликовано 23 июля, 2018 1. Чем отличается GetLocked от GetSoundPlaying? B как выкрутится через GetSoundPlaying? Поставить в программе условие, что если воспроизводится звук закрытого объекта, то выводить MessageBox, такой вариант возможен?2. Посоветуйте, пожалуйста, надежную ссылку на самую последнюю версию MWSE (слышал, что там поддерживается меню настройки модов). 1 Getlocked работает только в локальном скрипте, его надо помещать на каждый объект. GetSoundPlaying работает с привязкой звука к предмету, очень перспективная была бы функция, если бы некоторые звуки не были привязаны хрен знает к чему. В любом случае, ни одна из этих функций не заменит оригинальный текст. Что конкретно то сделать захотел, объясни, так реально будет проще подсказать. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ao3 Опубликовано 30 июля, 2018 Жалоба Поделиться Опубликовано 30 июля, 2018 Напомните пожалуйста, как заставить НПС упасть на четвереньки, то есть проиграть анимацию нокдауна? Эта функция маловато описана в MSFD, пробовал PlayGroup, KnockDown, 0 но происходит что-то не то Ссылка на комментарий Поделиться на другие сайты Поделиться
mortuus Опубликовано 31 июля, 2018 Жалоба Поделиться Опубликовано 31 июля, 2018 Напомните пожалуйста, как заставить НПС упасть на четвереньки, то есть проиграть анимацию нокдауна? Эта функция маловато описана в MSFD, пробовал PlayGroup, KnockDown, 0 но происходит что-то не тоСтамину в минус загони. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ao3 Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Стамину в минус загони. Стамина в минус не ту анимацию даёт. Ссылка на комментарий Поделиться на другие сайты Поделиться
mortuus Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Стамина в минус не ту анимацию даёт.Ну эту анимацию ты никак не получишь, смирись. Есть конечно костыли, но это РЕАЛЬНО костыли. Ссылка на комментарий Поделиться на другие сайты Поделиться
Ao3 Опубликовано 8 августа, 2018 Жалоба Поделиться Опубликовано 8 августа, 2018 Специально скачал http://www.fullrest.ru/files/vampire-embrace/filesПомню что там такое было. И точно: begin emb_kneelslave float timer float doonce if ( menumode == 1 ) ; wait until leave menumode return endif if ( doonce == 0 ) set doonce to 1 set timer to 0 playgroup knockdown 1 return endif set timer to ( timer + getsecondspassed ) if ( timer < 3 ) return endif playgroup idle 1 set doonce to 0 stopscript emb_kneelslave end Ссылка на комментарий Поделиться на другие сайты Поделиться
akortunov Опубликовано 13 августа, 2018 Жалоба Поделиться Опубликовано 13 августа, 2018 (изменено) Не подскажет кто-нибудь, как точно работает функция GetPCTraveling?Я пытаюсь аналогичную для OpenMW реализовать.Сейчас подход такой:1. Устанавливаем флаг при выборе назначения в меню путешествия2. По прибытии на место GetPCTraveling будет возвращать 1 в течение одного кадра (из-за установленного флага). В этом же кадре можно рассчитать разницу во времени до и после путешествия.3. Скидываем флаг во втором кадре. Оно примерно так должно работать, или там еще нюансы есть? И работает ли GetPCInJail аналогично? Изменено 13 августа, 2018 пользователем akortunov Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 23 ноября, 2018 Жалоба Поделиться Опубликовано 23 ноября, 2018 (изменено) Неплохо бы изобрести способ получение текущей сложности игры. На неё можно было бы кучу неплохих идей завязать. Например скриптовые ловушки били бы сильнее если высокая сложность. Бонусы какие нибудь скриптовые были бы слабее или наоборот сильнее в зависимости от сложности.Сложность влияет на наносимый или получаемый урон но непонятно как, и на ум только приходит костыльная идея - помещать моба с большим здоровьем и другого моба который нанесет удар, и по величине нанесенного урона можно как то высчитать текущую сложность. Кто кто что придумает - пишите. Изменено 23 ноября, 2018 пользователем Larkin Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти