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

5 скиллпоинтов у тренеров за уровень


Рекомендуемые сообщения

А за 0.5 секунды получалось?

Получалось.

 

Сейчас объясню как.

 

Открывается меню обучения. А нажимаю на навык, экран темнеет, и я ТУТ ЖЕ нажимаю "Активировать" на NPC, опять открывается диалоговое окно, и при этом твоего сообщения "Вы обучились N раз" НЕ появляется. Я могу еще раз нажать "Обучение", экран опять темнеет, я опять тут же нажимаю "Активировать"...

 

Вот если чуть-чуть подождать после потемнения экрана (те самые полсекунды), то да, сообщение появляется.

Ссылка на комментарий
Поделиться на другие сайты

  • Ответов 98
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Хм, это значит, что при повторной активации непися сразу после нажатия на навык время НЕ проходит. Потому что если бы оно проходило, то проверка на время срабатывала бы успешно. Значит при таком зверском багоюзе мортовский плагин тоже не будет работать (так как там та же самая проверка на прошедшие 2 часа).

Ссылка на комментарий
Поделиться на другие сайты

Хм, это значит, что при повторной активации непися сразу после нажатия на навык время НЕ проходит. Потому что если бы оно проходило, то проверка на время срабатывала бы успешно. Значит при таком зверском багоюзе мортовский плагин тоже не будет работать (так как там та же самая проверка на прошедшие 2 часа).

будет, так как там условие gamehour>2. У тебя просто переменные на переход в меню не успевают сброситься. Дело как раз не в двух часах, а в секундной таймере, он там нафиг не нужен. Проверь описанный мной багоюз у себя. Изменено пользователем mortuus
Ссылка на комментарий
Поделиться на другие сайты

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

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

 

 

4NM_TRAINING.ESP

Ссылка на комментарий
Поделиться на другие сайты

Пересчет часов при смене дня не требуется за счет запрета на обучение в ночное время.

Ну как бы тебе помягче объяснить, что один костыль лечить другим костылём не очень комильфо...

 

А через MWSE запрет нельзя сделать? Раз уж в 2018 году наконец-то началась мода на MWSE-шные плагины.

Ссылка на комментарий
Поделиться на другие сайты

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

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

Класс! Всё работает как надо!

 

Если не успеть быстро тыкнуть на NPC повторно, то сообщение "Вы обучились N раз" появляется во всплывающих сообщениях внизу по центру экрана. Если успеть тыкнуть на NPC сразу после потемнения, то сообщение появляется прямо в диалоговом окне.

 

Круто, поздравляю!

 

 

Особенно мне нравится, что обучаться можно реально 5 * уровень, и если в начале игры не качался, то это всё можно "нагнать" потом. Отличная идея!

Изменено пользователем -=ChieF=-
Ссылка на комментарий
Поделиться на другие сайты

Багоюз с быстрым входом в меню сразу после обучения навёл меня на мысль - а время-то при этом НЕ перезасекается! В итоге если сразу же после обучения тыкнуть диалог и начать прокачивать на этом же неписе красноречие и торговлю, то каждое повышение этих скиллов приведёт к трате скиллпоинта.

Моё упущение. Исправил его, добавив в скрипт строчку с засечением времени сразу же при обучении у тренера.

Фух, теперь вроде все баги отловлены)

4NM_TRAINING.ESP

Ссылка на комментарий
Поделиться на другие сайты

Багоюз с быстрым входом в меню сразу после обучения навёл меня на мысль - а время-то при этом НЕ перезасекается! В итоге если сразу же после обучения тыкнуть диалог и начать прокачивать на этом же неписе красноречие и торговлю, то каждое повышение этих скиллов приведёт к трате скиллпоинта.

Моё упущение. Исправил его, добавив в скрипт строчку с засечением времени сразу же при обучении у тренера.

Фух, теперь вроде все баги отловлены)

 

Отличная работа! Браво) Забираю вновь на тест!

Ссылка на комментарий
Поделиться на другие сайты

Ну как бы тебе помягче объяснить, что один костыль лечить другим костылём не очень комильфо...

 

А через MWSE запрет нельзя сделать? Раз уж в 2018 году наконец-то началась мода на MWSE-шные плагины.

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

почему костыль, если я всё правильно помню, то это я посмотрел в дагерфолле.

Ну вот так костыль, потому что если в Обливионе было расписание, когда персонажи по домам расходились и потому закрывали магазины, то в Морровинде они стоят на месте, и рефузал уже смотрится не так органично. Как бы сказать, дополнительное внимание к игровым условностям рушит иммерс.

Ссылка на комментарий
Поделиться на другие сайты

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

В комбинации с каким-нибудь Nighttime Door Locks будет еще более-менее.
Ссылка на комментарий
Поделиться на другие сайты

Можно. Надо заменить первую секцию скрипта на вот эту конструкцию:

 

if ( player->getlevel != "4nm_level" )

set "4nm_level" to ( player->getlevel )

set "4nm_skillpoints" to 5

set "4nm_lessons" to 0

set "4nm_stoptraining" to 0

endif

Ссылка на комментарий
Поделиться на другие сайты

Хэхэ, я то даже редактор не открывал никогда, видел только ножичек раскладной в папке с игрой :shito:

 

Если не затруднит, можно опционально сделать. Может еще кому пригодится.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 месяц спустя...

Обучаться можно 6 раз. Не знаю почему, но проверка не проходит, когда жмешь 5 раз обучиться. А вот на 6 вам говорят, мол, да, хорош тренироваться, вы уже обучились достаточно на этом уровне.

 

Версия с блоком отсюда, если что.

 

 

 

Можно. Надо заменить первую секцию скрипта на вот эту конструкцию:
 
if ( player->getlevel != "4nm_level" )
set "4nm_level" to ( player->getlevel )
set "4nm_skillpoints" to 5
set "4nm_lessons" to 0
set "4nm_stoptraining" to 0
endif

 

Ссылка на комментарий
Поделиться на другие сайты

Обучаться можно 6 раз. Не знаю почему, но проверка не проходит, когда жмешь 5 раз обучиться. А вот на 6 вам говорят, мол, да, хорош тренироваться, вы уже обучились достаточно на этом уровне.
set "4nm_skillpoints" to 5
Ну так авторы чинить будут, или нет?

Я не мастер скриптинга, но если с вышеуказанной строчкой <<set "4nm_skillpoints" to 5>> получается обучаться 6 раз, то может быть снижение этого значения до 4 позволит обучаться 5 раз? ;)

Ссылка на комментарий
Поделиться на другие сайты

Я не мастер скриптинга, но если с вышеуказанной строчкой 5>> получается обучаться 6 раз, то может быть снижение этого значения до 4 позволит обучаться 5 раз? ;)

 

Нет, там по какой то причине 5й раз проскакивает, пропускает зачисление очка обучения, на шестой раз выдает - вы уже обучились 5 раз. И более не дает обучаться.

 

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

Ссылка на комментарий
Поделиться на другие сайты

А с нормальной (не облоподобной) версией всё работает?

 

Я не понимаю, почему происходит такая фигня, поэтому не знаю что чинить)

Изменено пользователем Dagot_Prolaps
Ссылка на комментарий
Поделиться на другие сайты

А с нормальной (не облоподобной) версией всё работает?

 

Я не понимаю, почему происходит такая фигня, поэтому не знаю что чинить)

Скрипт покажи ёлы палы.

Ссылка на комментарий
Поделиться на другие сайты

Это Эл делал скрипт, заменив один из блоков, чтобы было как в Обле. Я поверил на слово, что там всё правильно.

Изменено пользователем Dagot_Prolaps
Ссылка на комментарий
Поделиться на другие сайты

Это Эл делал скрипт, заменив один из блоков, чтобы было как в Обле. Я поверил на слово, что там всё правильно.

 

Правильно и изначально не было)

 

Begin 4nm_training
 
short menu
short control
float hour1
float hour2
float timer
 
if ( player->getlevel != "4nm_level" )
set "4nm_level" to ( player->getlevel )
set "4nm_skillpoints" to 5
set "4nm_lessons" to 0
set "4nm_stoptraining" to 0
endif
 
if ( menumode == 1 )
if ( menu == 0 )
set hour1 to gamehour
set menu to 1
endif
if ( player->getsoundplaying "skillraise" == 1 )
player->stopsound "skillraise"
set control to 1
endif
elseif ( menu == 1 )
if ( control == 0 )
set menu to 0
endif
endif
 
if ( control == 1 )
set timer to ( timer + GetSecondsPassed )
if timer > 0.5
set hour2 to ( gamehour - hour1 )
if ( hour2
set hour2 to ( 24 + gamehour - hour1 )
endif
if hour2 >= 2
set "4nm_lessons" to ( "4nm_lessons" + 1 )
Messagebox "Вы обучились уже %.0f раз", 4nm_lessons
set hour1 to gamehour
if ( "4nm_skillpoints"
set "4nm_stoptraining" to 1
Messagebox "Вам пора применить полученные знания на практике"
endif
endif
set control to 0
set timer to 0
endif
endif
 
End
 
Лентяи
Ссылка на комментарий
Поделиться на другие сайты

Где тут 4nm_stoptraining юзается? Ну она устанавливается в 1 и че? Смысл скрипта в том чтобы вывести Messagebox "Вам пора применить полученные знания на практике" чтоли?

 

Кстати а че это мы звук прерываем?

if ( player->getsoundplaying "skillraise" == 1 )
        player->stopsound "skillraise"

Изменено пользователем Larkin
Ссылка на комментарий
Поделиться на другие сайты

Где тут 4nm_stoptraining юзается? Ну она устанавливается в 1 и че? Смысл скрипта в том чтобы вывести Messagebox "Вам пора применить полученные знания на практике" чтоли?

 

Кстати а че это мы звук прерываем?

if ( player->getsoundplaying "skillraise" == 1 )

        player->stopsound "skillraise"

ОМГ, ну ты зачем тогда просил выложить скрипт, раз не понимаешь его? 4nm_stoptraining - глобальная переменная, при 1 идет отказ сервиса тренировок.

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

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...