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

Dagot_Prolaps

Граждане
  • Постов

    936
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Dagot_Prolaps

  1. Что насчёт создания совместимового ребаланса брони совместимого с МФР?

    1) Ставим галку на ГФМ, не активный

    2) Ставим галку на беттер армор, не активный

    3) Загружаем так КС

    4) Импортируем подготовленную таблицу - схраняем

     

    Ничего не забыл?

  2. Ложные срабатывания там были из-за того что отсутствовала проверка на выход из меню.

    то есть Нереварин заходит в меню - ТАЙМЕР ЗАСЕКАЕТСЯ - покрутился в меню, ничего не повысил - вышел.

    Заходит через несколько часов ещё в меню алхимии - А таймер-то НЕ перезасекается - Нереварин варит зелья, повышает скилл - и на тебе ложное срабатывание.

     

    Вот оригинальная версия твоего скрипта и исправленная:

     

     

    Begin Mort_traning
     
    float timer
    short state
    float time_m
    short status
     
    if ( Player->getlevel != mort_LvlUp )
    set mort_traning_gl to 0
    set mort_LvlUp to ( Player->getlevel )
    endif
     
    if ( menumode == 1 )
    If ( state == 0 )
    set state to 1
    set timer to gamehour
    endif
    if ( player->getsoundplaying "skillraise" == 1 )
    player->stopsound "skillraise"
    set status to 1
    endif
    if ( status == 1 )
    set time_m to ( gamehour - timer )
    set status to 0
    if ( time_m < 0 )
    set time_m to ( 24 - gamehour + timer )
    endif
    if time_m >= 2
    set Mort_traning_gl  to Mort_traning_gl + 1
    Messagebox "Обучались %.0f раз", Mort_traning_gl 
    set state to 0
    set time_m to 0
    endif
    endif
    endif
     
    end
     

     
     
     

    Begin Mort_traning
     
    float timer
    short state
    float time_m
    short status
     
    if ( Player->getlevel != mort_LvlUp )
    set mort_traning_gl to 0
    set mort_LvlUp to ( Player->getlevel )
    endif
     
    if ( menumode == 1 )
    If ( state == 0 )
    set state to 1
    set timer to gamehour
    endif
    if ( player->getsoundplaying "skillraise" == 1 )
    player->stopsound "skillraise"
    set status to 1
    endif
    if ( status == 1 )
    set time_m to ( gamehour - timer )
    set status to 0
    if ( time_m < 0 )
    set time_m to ( 24 - gamehour + timer )
    endif
    if time_m >= 2
    set Mort_traning_gl  to Mort_traning_gl + 1
    Messagebox "Обучались %.0f раз", Mort_traning_gl 
    set state to 0
    set time_m to 0
    endif
    endif
    endif
     
    if ( menumode == 0 )
    If ( state == 1 )
    set state to 0
    endif
    endif
     
    end

     

    Однако исправленная почему-то не работает, хотя там всего лишь добавлена ещё одна секция в конце.

     

    Ещё обрати внимание на эту дичь:

     

    if ( time_m < 0 )
    set time_m to ( 24 - gamehour + timer )
     

    Должно быть так:

     

    if ( time_m < 0 )
    set time_m to ( 24 + gamehour - timer )
  3. А что если взять Ребёрт, Лор вепонс пак, Оружейную Тамриэля, выбрать оттуда самую годноту, привести названия нифов и иконок в упорядоченный вид и создать 1 большой оружейный пак через есп без уровневых списков, добавлений в игру и прочих изменений?

    А потом запихнуть данные в таблицу по новому методу и можно будет менять параметры как угодно а потом пихать в любые ребалансы и сборки.

  4. Если сократить время ожидания до 0.5 секунды - справятся ли со скриптом самые допотопные компы? Ради них и была секунда.

     

     

    Вот итоговая версия с задержкой 0.5 секунды и без тестового сообщения.

    Пробовал заабузить в стиле "самые быстрые руки на диком Вварденфелле" - не вышло.

    4NM_TRAINING.ESP

  5. Прошу помочь в тестировании плагина на 5 обучений за уровень:

     

    http://www.fullrest.ru/forum/topic/41449-5-skillpointov-u-trenerov-za-uroven/

     

    Раньше подобный плаг был включён в МФР 2.0, но его выпилили из-за критических багов. Ну так вот, баги исправлены! А сама механика плагина куда демократичнее предыдущего

    4NM_TRAINING.ESP

  6. Сэры и мутсэры, свершилось!

     

    Плагин даёт Нереварину 5 скиллпоинтов за каждый уровень. Скиллпоинты сохраняются и тратятся на обучение у тренеров. В отличие от системы Обливиона и Скайирима вам совершенно не нужно прибегать к задротству и быстрей бежать хоть к кому-нибудь чтобы потратить свои 5 скиллпоинтов на обучение. Нет - играйте себе спокойно в своём темпе. Можете прийти в Балмору уже на 9 уровне и сразу потратить накопленные 45 скиллпоинтов, поднять у тренеров 5 уровней, получить ещё 25 скиллпоинтов и тут же потратить и их. Хотя куда разумнее было бы проявить экономность: тратить драгоценные скиллпоинты только на самые труднопрокачиваемые навыки на высоких значениях.

     

     

    Работает это так:

     

     

     

     

    Новые глобальные переменные:

     

    4nm_lessons = 0
    4nm_stoptraining = 0
     
    Сам стартовый скрипт:
     
    Begin 4nm_training
     
    short menu
    short control
    short level
    short skillpoints
    float hour1
    float hour2
    float timer
     
    if ( player->getlevel != level )
    set level to ( player->getlevel )
    set skillpoints to ( level * 5 )
    endif
     
    if ( skillpoints > "4nm_lessons" )
    if ( "4nm_stoptraining" == 1 )
    set "4nm_stoptraining" to 0
    endif
    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 < 0 )
    set hour2 to ( 26 + gamehour - hour1 )
    endif
    if hour2 >= 2
    set "4nm_lessons" to ( "4nm_lessons" + 1 )
    Messagebox "Вы обучились уже %.0f раз", 4nm_lessons
    set hour1 to gamehour
    if ( skillpoints <= "4nm_lessons" )
    set "4nm_stoptraining" to 1
    Messagebox "Вам пора применить полученные знания на практике"
    endif
    endif
    set control to 0
    set timer to 0
    endif
    endif
     
    End
     
    Для работы запрета на обучение обязателен МСР с опцией "фильтр отказа от предоставления услуг"
     

     
    Когда игрок обучается у тренера, игра воспринимает это как повышение навыка из режима меню.
    В отличие от мортовского плагина я постарался исправить ложное срабатывание повышения счётчика обучений при прокачке алхимии, зачарования, кузнеца, красноречия и торговли - все эти навыки повышаются из меню.
    С книгами же всё в порядке - игра не считает их прокачкой навыков из меню.
     
     
    При обучении у тренеров спустя полсекунды приходит сообщение "Вы обучились уже столько-то раз". Это сообщение НЕ должно приходить при собственноручном повышении алхимии, зачарования, кузнеца, торговли и красноречия.
     
     
    Скачать:

     

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

    Begin Mort_traning
     
    float timer
    short state
    float time_m
    short status
     
    if ( Player->getlevel != mort_LvlUp )
    set mort_traning_gl to 0
    set mort_LvlUp to ( Player->getlevel )
    endif
     
    if ( menumode == 1 )
    If ( state == 0 )
    set state to 1
    set timer to gamehour
    endif
    if ( player->getsoundplaying "skillraise" == 1 )
    player->stopsound "skillraise"
    set status to 1
    endif
    if ( status == 1 )
    set time_m to ( gamehour - timer )
    set status to 0
    if ( time_m < 0 )
    set time_m to ( 24 - gamehour + timer )
    endif
    if time_m >= 2
    set Mort_traning_gl  to Mort_traning_gl + 1
    Messagebox "Обучались %.0f раз", Mort_traning_gl 
    set state to 0
    set time_m to 0
    endif
    endif
    endif
     
    end
     

     
     
     

    Begin Mort_traning
     
    float timer
    short state
    float time_m
    short status
     
    if ( Player->getlevel != mort_LvlUp )
    set mort_traning_gl to 0
    set mort_LvlUp to ( Player->getlevel )
    endif
     
    if ( menumode == 1 )
    If ( state == 0 )
    set state to 1
    set timer to gamehour
    endif
    if ( player->getsoundplaying "skillraise" == 1 )
    player->stopsound "skillraise"
    set status to 1
    endif
    if ( status == 1 )
    set time_m to ( gamehour - timer )
    set status to 0
    if ( time_m < 0 )
    set time_m to ( 24 - gamehour + timer )
    endif
    if time_m >= 2
    set Mort_traning_gl  to Mort_traning_gl + 1
    Messagebox "Обучались %.0f раз", Mort_traning_gl 
    set state to 0
    set time_m to 0
    endif
    endif
    endif
     
    if ( menumode == 0 )
    If ( state == 1 )
    set state to 0
    endif
    endif
     
    end

     

     

    UPD: о боги и гоги! Я сделал! До чего же идиотский способ пришлось применить!

  8. Вопрос по синтаксису вычислений в скриптах

     

    Распознает ли игра такую формулировку?

    set skillpoints to ( player->getlevel * 5 )
     
     
    Или же мне надо обязательно задавать ещё одну глобальную переменную для определения уровня героя вот так?
    set level to ( player->getlevel )
    set skillpoints to ( level * 5 )
     
     
    Что по синтаксису неравенств? Сработает ли такая фигня c двойными скобками?
    if ( ( player->getlevel * 5 ) > lessons )
     
    Или мне нужно делать через отдельную глобальную переменную вот так?
    if ( skillpoints > lessons )
  9. О, шикарно! Теперь прояснилось всё кроме одной детали. У меня есть догадка как сократить скрипт до всего нескольких строк, но не понимаю в чём подвох.

     

    Отбросим условия, оставив только чистый счётчик:
     
    if ( menumode == 1 )
    if ( player->getsoundplaying "skillraise" == 1 )
    player->stopsound "skillraise"
    set Mort_traning_gl  to Mort_traning_gl + 1
    Messagebox "Вы обучались уже %.0f раз", Mort_traning_gl
    endif
    endif
     
    Есть какие-либо причины по которым эта элементарная конструкция не будет работать и считать число обучений?
     
    Первое же условие - если Игрок в меню - пока оно не выполнено любые звуки будут игнорироваться.
  10. Спасибо, разобрался где в КС находятся отказы от предоставления услуг.

    Он создал там новую строку "вам стоит применить знания на практике" и в условиях этого отказа значится две строки:

    1) Глобал = Морт_трейнинг_гл = 5   С этим всё ясно, это счётчик.

    2) Функция = Чойс = 4    А вот с этим не ясно. Что это, зачем оно нужно?

     

    И как дифференцировать отказы от обучения с отказами и от торговли?

  11. Вот здесь выложен вариант вполне рабочей проверки на число обучений:

    http://www.fullrest.ru/forum/topic/36243-proverka-kolichestva-obuchenii-gg/

     

    Просветите, где в КС находится секция непосредственной реакции на нажатие кнопки "Обучиться такому-то навыку"? Чтобы в зависимости от результата проверки вышеупомянутым скриптом или запустить обычный процесс обучения или выдать сообщения типа "я не могу обучать вас больше этому навыку".

  12. Ага, а ещё не пить самодельные зелья и не прыгать чтобы неписи не убегали  :-D

     

    Кстати, кто-нибудь видел плагин, меняющий ИИ так чтобы они и впрямь переставали удирать от каждого прыжка чуть выше головы?

  13. Я кажется понял, как правильно сделать безконфликтный ребаланс.

     

    1) Делаем на основе чистого МТБ основной файл ребаланса, не затрагивающий оружие, броню и одежду.

     

    2) Загружаем МТБ и неактивный ГФМ. На этой основе экспортируем все данные и делаем свои таблицы оружи, брони и одежды.

     

    3) Загружаем МТБ и основной файл ребаланса как активный. Импортируем в него свои таблицы. Получаем полноценный ребаланс для чистого Морра.

     

    4) Загружаем МТБ, НЕАКТИВНЫЙ ГФМ и активный основной файл ребаланса. Импортируем в него свои таблицы. Получаем полноценный ребаланс для Морра с ГФМ, который будет теперь его требовать.

     

     

     

    Вопрос: какая версия ГФМ была использована в таблицах реалистик вепон и армор на листах значений из оригинальной игры?

  14. Так я про что старых не существует. "Новые" в смысле совсем новые, до этого не существующие.

     

    Например, гномское длинное копьё, даэдрическое длинное копьё...

  15. Где бы найти автора плагина на контролируемое выпивание зелий? Идея хорошая, но явно не дожал. Что 5 секунд кд на приём зелий, что 4 зелья одновременно - не устраняют читерства, что лежит в основе алхимии. Я бы добавил совокупную опцию:

    * Каждое выпивание повышает таймер на 50 секунд

    * Каждую секунду таймер (если ГГ не в меню) понижается на 1 секунду

    * Если таймер выше 100, то зелья (и маиты всякие) пить нельзя.

     

    То есть ГГ может выжрать залпом сразу 3 зелья в начале боя, но потом ему придётся долго ждать.

    Реально ли такое сделать стартовым скриптом без МВСЕ? МСР ведь привязывает звуки выпивания к ГГ, значит они распознаваемые?

  16. Нет, если ГФМ к примеру меняет текстуру, модельку, зачарование и параметры шмтоки, а твой плагин - лишь 1 букву в её названии, то если загрузить сперва ГФМ а потом свой плагин, то мы получи стандартную шмотку с изменённым названием и оригинальной текстурой, моделькой, зачарованием и параметрами. 

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