olol Опубликовано 1 января, 2020 Жалоба Поделиться Опубликовано 1 января, 2020 Похоже на то, что сбоит последний загруженный бутылек (как у анимации контейнеров).нужно добавлять его другому НПС, вот только кому...может попробовать добавлять/удалять бутылек Процессусу Вителлиусу ?ГФМ делает ему сохранность трупа (нельзя убрать). if ( GetItemCount "p_restore_health_e" > 0 ); есть в наличии бутылек "processus vitellius"->AddItem "p_restore_health_e" 1 Equip "p_restore_health_e" 1; выпить бутылек "processus vitellius"->RemoveItem "p_restore_health_e" 1 set timerHealth to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_health_q" > 0 ); проверка на следующий бутылек если нет предыдущего если опять не получится, значит не судьба... Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 1 января, 2020 Жалоба Поделиться Опубликовано 1 января, 2020 Похоже на то, что сбоит последний загруженный бутылек (как у анимации контейнеров).нужно добавлять его другому НПС, вот только кому...может попробовать добавлять/удалять бутылек Процессусу Вителлиусу ?ГФМ делает ему сохранность трупа (нельзя убрать). if ( GetItemCount "p_restore_health_e" > 0 ); есть в наличии бутылек "processus vitellius"->AddItem "p_restore_health_e" 1 Equip "p_restore_health_e" 1; выпить бутылек "processus vitellius"->RemoveItem "p_restore_health_e" 1 set timerHealth to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_health_q" > 0 ); проверка на следующий бутылек если нет предыдущего если опять не получится, значит не судьба... Не знаю, тесты не однозначны. Аддамасартус и Заинсипилу робят без проблем, а в Рамимилке вылетает ошибка и скрипт не работает на первом же НПС на входе. Вылетов, правда, нет теперь.Script Error: EXPRESSION in A_A_NPC_USING_POTION_PLEASEInfix to postfix Руководство пишет что подобные ошибки из-за синтаксиса, хз, где-то запятые или пробелы отсутствуют, что ли....Right Eval, кстати, раньше всегда была ошибка. а теперь вот это вот все... Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 2 января, 2020 Жалоба Поделиться Опубликовано 2 января, 2020 если вылеты прекратились - это хорошо.синтаксис тут не причем, иначе ошибка бы была бы у всех.наверно нужно, чтоб НПС был в текущей ячейке. Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 2 января, 2020 Жалоба Поделиться Опубликовано 2 января, 2020 (изменено) если вылеты прекратились - это хорошо.синтаксис тут не причем, иначе ошибка бы была бы у всех.наверно нужно, чтоб НПС был в текущей ячейке. Что значит в текущей? Если я пытаюсь зайти в Рамимилк, это разве не текущая ячейка становится? Поясни, пожалуйста. ПС Кстати, в Рамимилк таже постоянно вылетает вот такая ошибка, которую я уже давно безуспешно пытаюсь устранить (в своем плагине я ловушки не менял в этой локации, в редакторе там числится заморозка, а не проклятие здоровья). Она не может провоцировать ошибку (ну мало ли)? Trap spell 'dread curse: health' is invalid trap.Object 'com_chest_Daed_ruin_01' in cell 'Ramimilk, Shrine'. Изменено 2 января, 2020 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 2 января, 2020 Жалоба Поделиться Опубликовано 2 января, 2020 скрипт локальный, но добаляет бутылек НПС в другой ячейке:"processus vitellius"->AddItem "p_restore_health_e" 1 нужно либо в каждой ячейке ложить разных мертвых НПС под землю и добавлять имлибо постоянно добавлять/удалять одного НПС (морока с этим будет немалая). если ты в этой ячейке не менял, значит смотри какой другой мод это делает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 2 января, 2020 Жалоба Поделиться Опубликовано 2 января, 2020 (изменено) скрипт локальный, но добаляет бутылек НПС в другой ячейке:"processus vitellius"->AddItem "p_restore_health_e" 1 нужно либо в каждой ячейке ложить разных мертвых НПС под землю и добавлять имлибо постоянно добавлять/удалять одного НПС (морока с этим будет немалая). А почему тогда в первых двух пещерах норм срабатывает? Если бы была система в ошибках, я бы уже давно смирился, но дело именно в том, что где-то скрипт срабатывает без проблем, а где-то - глючит. Я тут попробовал сделать на основе заклинаний - вроде норм работает, ошибок нет. Да, костылек на фоне зелий, но для баланса вполне норм. Единственный минус - нет звукового и визуального эффекта. Насколько я помню, нельзя создать визуальный эффект заклинания в Морре без его четкого применения. Но можно хотя бы звук сделать (или звук восстановления, или звук выпивания при перетаскивании бутылки на персонажа)? Как привязать звук сразу после выпивания зелья? begin A_A_NPC_USING_POTION_PLEASE float timerHealthfloat timerMagfloat timerFatshort doOnce if ( doOnce ); NPC мертв returnelseIf ( OnDeath ); NPC умер set doOnce to 1; фиксируем смерть returnendif if ( timerHealth > 0 ); если задан таймер задержки set timerHealth to ( timerHealth - getsecondspassed ); уменьшаем таймерelseif ( GetEffect, sEffectRestoreHealth ); еще не кончился эффектelseif ( GetHealthGetRatio < 0.5); стало мало жизни if ( GetItemCount "p_restore_health_e" > 0 ); есть в наличии бутылек Modcurrenthealth 200;какая-то команда звука???RemoveItem "p_restore_health_e" 1 set timerHealth to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_health_q" > 0 ); проверка на следующий бутылек если нет предыдущего Modcurrenthealth 100RemoveItem "p_restore_health_q" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_s" > 0 ) Modcurrenthealth 50RemoveItem "p_restore_health_s" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_c" > 0 ) Modcurrenthealth 25RemoveItem "p_restore_health_c" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_b" > 0 ) Modcurrenthealth 15RemoveItem "p_restore_health_b" 1 set timerHealth to 3 endifendif end И в итоге - что делать с глобальными нацеленными, запускающимися с 1го активатора? Делать несколько активаторов и кидать их либо в помещения с НПС на входе, либо пряо под ноги там, где можно зайти с разных сторон в ячейку (или активатор сразу на входе срабатывает в ячейку в любом случае?). Изменено 2 января, 2020 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 2 января, 2020 Жалоба Поделиться Опубликовано 2 января, 2020 для первых ячеек движок еще помнит соседнюю ячейку НПС, а потом забывает. PlaySound3D "Drink" активатор срабатывает при в ходе в ячейку в любом месте, только работать он будет и при выходе из нее. Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 2 января, 2020 Жалоба Поделиться Опубликовано 2 января, 2020 для первых ячеек движок еще помнит соседнюю ячейку НПС, а потом забывает. PlaySound3D "Drink" активатор срабатывает при в ходе в ячейку в любом месте, только работать он будет и при выходе из нее. Погоди, это проблема? Т.е. скрипт опять будет работать постоянно? Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 2 января, 2020 Жалоба Поделиться Опубликовано 2 января, 2020 глобальные скрипты работают пока их не становят.они могут проверять выход из ячейки (для внутренних) и останавливаться, но при вхде их нужно опять запускать Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 2 января, 2020 Жалоба Поделиться Опубликовано 2 января, 2020 (изменено) глобальные скрипты работают пока их не становят.они могут проверять выход из ячейки (для внутренних) и останавливаться, но при вхде их нужно опять запускатьИ как это сделать? Я могу сделать же, например, активатор, который развешает скрипты при входе на виллу Дрена на братьев Йенит и Орваса, и как-то прописать, что если я вышел с виллы, скрипт останавливается, или нет? А потом - если я вернусь, он включится по новому (если внутри еще останутся живые)? Когда добавил звук и все остальные модификаторы (восстановление магии и стамины), игра стала зависать и вылетать при срабатывании скрипта! Однако, если оставить только скрипт с восстановлением здоровья - игра работает. Не перегружен ли скрипт, может, его как-то упростить?begin A_A_NPC_USING_POTION_PLEASE float timerHealthfloat timerMagfloat timerFatshort doOnce if ( doOnce ); NPC мертв returnelseIf ( OnDeath ); NPC умер set doOnce to 1; фиксируем смерть returnendif if ( timerHealth > 0 ); если задан таймер задержки set timerHealth to ( timerHealth - getsecondspassed ); уменьшаем таймерelseif ( GetEffect, sEffectRestoreHealth ); еще не кончился эффектelseif ( GetHealthGetRatio < 0.5); стало мало жизни if ( GetItemCount "p_restore_health_e" > 0 ); есть в наличии бутылек Modcurrenthealth 200PlaySound3D "Drink"RemoveItem "p_restore_health_e" 1 set timerHealth to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_health_q" > 0 ); проверка на следующий бутылек если нет предыдущего Modcurrenthealth 100PlaySound3D "Drink"RemoveItem "p_restore_health_q" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_s" > 0 ) Modcurrenthealth 50PlaySound3D "Drink"RemoveItem "p_restore_health_s" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_c" > 0 ) Modcurrenthealth 25PlaySound3D "Drink"RemoveItem "p_restore_health_c" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_b" > 0 ) Modcurrenthealth 15PlaySound3D "Drink"RemoveItem "p_restore_health_b" 1 set timerHealth to 3 endifendif;---------------------------------Магияif ( timerMag > 0 ); если задан таймер задержки set timerMag to ( timerMag - getsecondspassed ); уменьшаем таймерelseif ( GetEffect, sEffectRestoreSpellPoints ); еще не кончился эффектelseif ( GetMagicka < 150); стало мало маны if ( GetItemCount "p_restore_magicka_e" > 0 ); есть в наличии бутылек Modcurrentmagicka 300PlaySound3D "Drink"RemoveItem "p_restore_magicka_e" 1 set timerMag to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_magicka_q" > 0 ); проверка на следующий бутылек если нет предыдущего Modcurrentmagicka 150PlaySound3D "Drink"RemoveItem "p_restore_magicka_q" 1 set timerMag to 3 elseif ( GetItemCount "p_restore_magicka_s" > 0 ) Modcurrentmagicka 75PlaySound3D "Drink"RemoveItem "p_restore_magicka_s" 1 set timerMag to 3 elseif ( GetItemCount "p_restore_magicka_c" > 0 ) Modcurrentmagicka 40PlaySound3D "Drink"RemoveItem "p_restore_magicka_c" 1 set timerMag to 3 elseif ( GetItemCount "p_restore_magicka_b" > 0 ) Modcurrentmagicka 20PlaySound3D "Drink"RemoveItem "p_restore_magicka_b" 1 set timerMag to 3 endifendif;----------------------------Усталостьif ( timerFat > 0 ); если задан таймер задержки set timerFat to ( timerFat - getsecondspassed ); уменьшаем таймерelseif ( GetEffect, sEffectRestoreFatigue ); еще не кончился эффектelseif ( GetFatigue < 150); стало мало сил if ( GetItemCount "p_restore_fatigue_e" > 0 ); есть в наличии бутылек Modcurrentfatigue 400PlaySound3D "Drink"RemoveItem "p_restore_fatigue_e" 1 set timerFat to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_fatigue_q" > 0 ); проверка на следующий бутылек если нет предыдущего Modcurrentfatigue 200PlaySound3D "Drink"RemoveItem "p_restore_fatigue_q" 1 set timerFat to 3 elseif ( GetItemCount "p_restore_fatigue_s" > 0 ) Modcurrentfatigue 100PlaySound3D "Drink"RemoveItem "p_restore_fatigue_s" 1 set timerFat to 3 elseif ( GetItemCount "p_restore_fatigue_c" > 0 ) Modcurrentfatigue 50PlaySound3D "Drink"RemoveItem "p_restore_fatigue_c" 1 set timerFat to 3 elseif ( GetItemCount "p_restore_fatigue_b" > 0 ) Modcurrentfatigue 25PlaySound3D "Drink"RemoveItem "p_restore_fatigue_b" 1 set timerFat to 3 endifendif end Не все ясно с командой Modcurrent...где-то пишут, что она модифицирует здоровье, добавляя\уменьшая, где-то - что устанавливает текущее... Изменено 2 января, 2020 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 3 января, 2020 Жалоба Поделиться Опубликовано 3 января, 2020 Скрипт у вас перегружен, сносите весь блок усталости. Modcurrent модифицирует максимальное тоже. Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 3 января, 2020 Жалоба Поделиться Опубликовано 3 января, 2020 (изменено) Скрипт у вас перегружен, сносите весь блок усталости. Modcurrent модифицирует максимальное тоже.да даже с блоком магии уже не работает, много. Если currenthealth устанавливает и максимальное, то какая команда регенит часть текущего? а просто ModHealth тогда что делает (кс не выдает ошибку в скрипте, получается, есть такая команда?).ПС Я, кстати, потестил, вместо ModCurrentHealth 15 в последнем блоке поставил 1500 - однако 1500 здоровья у бандитки из Аддамасартуса не стало, она отрегенила ХП до максимума (а всего у нее порядка 88 ХП) и потом все равно быстро померла. Так все же точно, что делает эта команда - регенит на указанное число в рамках текущего ХП или устанавливает максимум? И как мне поступить м магией и усталостью тогда? Запускать отдельные скрипты внутри моего? Изменено 3 января, 2020 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 3 января, 2020 Жалоба Поделиться Опубликовано 3 января, 2020 да даже с блоком магии уже не работает, много. Если currenthealth устанавливает и максимальное, то какая команда регенит часть текущего? а просто ModHealth тогда что делает (кс не выдает ошибку в скрипте, получается, есть такая команда?).ПС Я, кстати, потестил, вместо ModCurrentHealth 15 в последнем блоке поставил 1500 - однако 1500 здоровья у бандитки из Аддамасартуса не стало, она отрегенила ХП до максимума (а всего у нее порядка 88 ХП) и потом все равно быстро померла. Так все же точно, что делает эта команда - регенит на указанное число в рамках текущего ХП или устанавливает максимум? И как мне поступить м магией и усталостью тогда? Запускать отдельные скрипты внутри моего?А да, modhealth максимальное.Да оставьте только блок здоровья и тестируйте. Messagebox ов туда напихайте, чтоб видеть какая стадия скрипта сейчас. Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 3 января, 2020 Жалоба Поделиться Опубликовано 3 января, 2020 @VarangПроблема с Equip заключается в том, что трибунал ее исправил для использования брони и оружия.А то, что бутылек при использовании исчезнет движок видимо не учитывает и по этому сбоит.Попробуй в старом скрипте перед Equip добавлять какой-нибудь другой бутылек (например p_reflection_s). Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 3 января, 2020 Жалоба Поделиться Опубликовано 3 января, 2020 @VarangПроблема с Equip заключается в том, что трибунал ее исправил для использования брони и оружия.А то, что бутылек при использовании исчезнет движок видимо не учитывает и по этому сбоит.Попробуй в старом скрипте перед Equip добавлять какой-нибудь другой бутылек (например p_reflection_s). а причем тут бутылек отражения??? Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 3 января, 2020 Жалоба Поделиться Опубликовано 3 января, 2020 (изменено) Если движок сбоит на последнем бутыльке в инвентаре, то можно попробовать добавить любой другой который ты не будешь использовать.Гарантии ни какой, но есть небольшая вероятность что это поможет. AddItem "p_burden_s" 1 Equip "p_restore_health_e" 1; выпить бутылек RemoveItem "p_burden_s" 1 Изменено 3 января, 2020 пользователем olol Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 3 января, 2020 Жалоба Поделиться Опубликовано 3 января, 2020 (изменено) Если движок сбоит на последнем бутыльке в инвентаре, то можно попробовать добавить любой другой который ты не будешь использовать.Гарантии ни какой, но есть небольшая вероятность что это поможет. AddItem "p_burden_s" 1 Equip "p_restore_health_e" 1; выпить бутылек RemoveItem "p_burden_s" 1 При юзании Equip прошлый раз он сбоил сразу при начале скрипта в Рамимилке.Но этот вариант я щас тоже потестил, он не робит. Думаю, об адекватном юзании Equip все ж можно забыть, увы, движок не не может и не будет адекватно обрабатывать эту функцию.Ты мне лучше растолкуй четко, как нормально сделать в моей ситуации направленные скрипты на НПС, уже имеющих на себе висящие скрипты? Т.е. как сделать грамотные активаторы, не парализующие всю игру. На примере Дрена и братьев Йенит, например (локация вилла Дрена)? И как запустить ModCurrentMagicka и ModCurrentFatugue грамотно, не перегружая скрипт, где здоровье, но через него же? Костыль с ModCurrentH\M\F мне пока кажется более перспективным, думаю, есть смысл больше на нем сосредоточиться. Я могу "занусуть" скрипт с зельями магии в скрипт зелий здоровья? Вот так: begin A_A_NPC_USING_POTION_HEALTHfloat timerHealthshort doOnceShort OnPCHitMe If (OnPCHitMe == 1)StartScript "A_A_NPC_USING_POTION_MAGIC"endif if ( doOnce ); NPC мертв returnelseIf ( OnDeath ); NPC умер set doOnce to 1; фиксируем смерть returnendifif ( timerHealth > 0 ); если задан таймер задержки set timerHealth to ( timerHealth - getsecondspassed ); уменьшаем таймерelseif ( GetEffect, sEffectRestoreHealth ); еще не кончился эффектelseif ( GetHealthGetRatio < 0.5); стало мало жизни if ( GetItemCount "p_restore_health_e" > 0 ); есть в наличии бутылек Modcurrenthealth 200PlaySound3D "Drink"RemoveItem "p_restore_health_e" 1 set timerHealth to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_health_q" > 0 ); проверка на следующий бутылек если нет предыдущего Modcurrenthealth 100PlaySound3D "Drink"RemoveItem "p_restore_health_q" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_s" > 0 ) Modcurrenthealth 50PlaySound3D "Drink"RemoveItem "p_restore_health_s" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_c" > 0 ) Modcurrenthealth 25PlaySound3D "Drink"RemoveItem "p_restore_health_c" 1 set timerHealth to 3 elseif ( GetItemCount "p_restore_health_b" > 0 ) Modcurrenthealth 15PlaySound3D "Drink"RemoveItem "p_restore_health_b" 1 set timerHealth to 3 endifendifend И ВОТ НА МАГИЮ: begin A_A_NPC_USING_POTION_MAGICfloat timerMagshort doOnce if ( doOnce ); NPC мертв returnelseIf ( OnDeath ); NPC умер set doOnce to 1; фиксируем смерть returnendif;---------------------------------Магияif ( timerMag > 0 ); если задан таймер задержки set timerMag to ( timerMag - getsecondspassed ); уменьшаем таймерelseif ( GetEffect, sEffectRestoreSpellPoints ); еще не кончился эффектelseif ( GetMagicka < 150); стало мало маны if ( GetItemCount "p_restore_magicka_e" > 0 ); есть в наличии бутылек Modcurrentmagicka 300PlaySound3D "Drink"RemoveItem "p_restore_magicka_e" 1 set timerMag to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_magicka_q" > 0 ); проверка на следующий бутылек если нет предыдущего Modcurrentmagicka 150PlaySound3D "Drink"RemoveItem "p_restore_magicka_q" 1 set timerMag to 3 elseif ( GetItemCount "p_restore_magicka_s" > 0 ) Modcurrentmagicka 75PlaySound3D "Drink"RemoveItem "p_restore_magicka_s" 1 set timerMag to 3 elseif ( GetItemCount "p_restore_magicka_c" > 0 ) Modcurrentmagicka 40PlaySound3D "Drink"RemoveItem "p_restore_magicka_c" 1 set timerMag to 3 elseif ( GetItemCount "p_restore_magicka_b" > 0 ) Modcurrentmagicka 20PlaySound3D "Drink"RemoveItem "p_restore_magicka_b" 1 set timerMag to 3 endifendifend Изменено 3 января, 2020 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 3 января, 2020 Жалоба Поделиться Опубликовано 3 января, 2020 направленный скрипт это глобальный скрипт, он работает пока его не остановят или он сам не остановится.если ты хочешь активатором в ячейке запускать направленный скрипт, то скрипт должен проверять выход из ячейки:if ( CellChanged )StopScript "A_A_NPC_USING_POTION_HEALTH" для магии ты опять проверяешь на 150 ! Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 3 января, 2020 Жалоба Поделиться Опубликовано 3 января, 2020 (изменено) для магии ты опять проверяешь на 150 ! А какая разница, если не работает вообще? Тем более, маг Аддамасартуса усилен, у него щас 180 магии, а скрипт на магию не робит все равно. Про активаторы понял, спасибо!Может, сделать какую-то иную, более совершенную проверку? Я тестил, если вводить в скрипт переменную Short OnPCHitMe и проверку атакой: If (OnPCHitMe == 1)StartScript "A_A_NPC_USING_POTION_MAGIC"endif То игра либо игнорирует запуск скрипта магии, либо вообще виснет. Где косяк теперь? Просто надо понять, какой скрипт будет 99% нормально работать, прежде чем вешать его на индивидуальные копии через активаторы. Изменено 3 января, 2020 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 4 января, 2020 Жалоба Поделиться Опубликовано 4 января, 2020 если в локальном скрипте скрипте возникают проблемы, то ты переносишь часть скрипта в другой глобальный и получаешь дополнительные проблемы, зачем? если проблема со звуком, то можно добавить проверку или использовать не 3D. if ( GetSoundPlaying "Drink" == 0 ) PlaySound "Drink"endif Для магии лучше запомнить начальное значение и потом следить за ее изменением: short doInitFloat MaxMagicka if ( doInit ) Set MaxMagicka to GetMagickaendif ...elseif ( GetMagicka / MaxMagicka Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 4 января, 2020 Жалоба Поделиться Опубликовано 4 января, 2020 (изменено) если в локальном скрипте скрипте возникают проблемы, то ты переносишь часть скрипта в другой глобальный и получаешь дополнительные проблемы, зачем? О чем я писал выше, что надо все проверить на работоспособность, прежде чем размножать на глобалки. Потому как при смене локалки меняется 1 скрипт на все, в в нацеленных их будет несколько десятков, и все разные. Для магии лучше запомнить начальное значение и потом следить за ее изменением: short doInitFloat MaxMagicka if ( doInit ) Set MaxMagicka to GetMagickaendif ...elseif ( GetMagicka / MaxMagicka < 0.5); стало мало маны Объясни, где это будет находиться в скриптах выше, пожалуйста, на пальцах, я пока очень плохо понимаю принцип работы этой новой схемы. Как это связано с его отстраненным запуском?Проблема текущего скрипта именно в перегрузе, пока не добавляешь блок магии + усталости (или даже что-то одно), все работает довольно стабильно. Изменено 4 января, 2020 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 4 января, 2020 Жалоба Поделиться Опубликовано 4 января, 2020 Ни какого перегруза быть не должно, если не работает при добавлении магии, то наверно она и одна работать не будет. begin A_A_NPC_USING_POTION_HEALTHshort doOnceshort doInitFloat MaxMagickafloat timerHealthfloat timerMagfloat f if ( doOnce ); NPC мертв returnelseIf ( OnDeath ); NPC умер set doOnce to 1; фиксируем смерть returnelseif ( doInit == 0 ) Set MaxMagicka to GetMagicka set doInit to 1; запоминаем начальную величину магииendifif ( timerHealth > 0 ); если задан таймер задержки set timerHealth to ( timerHealth - getsecondspassed ); уменьшаем таймерelseif ( GetEffect, sEffectRestoreHealth ); еще не кончился эффектelseif ( GetHealthGetRatio if ( GetItemCount "p_restore_health_e" > 0 ); есть в наличии бутылек Modcurrenthealth 200 if ( GetSoundPlaying "Drink" == 0 ) PlaySound "Drink" endif RemoveItem "p_restore_health_e" 1 set timerHealth to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_health_q" > 0 ); проверка на следующий бутылек если нет предыдущего...endif Set f to GetMagicka / MaxMagickaif ( timerMag > 0 ); если задан таймер задержки set timerMag to ( timerMag - getsecondspassed ); уменьшаем таймерelseif ( GetEffect, sEffectRestoreSpellPoints ); еще не кончился эффектelseif ( f if ( GetItemCount "p_restore_magicka_e" > 0 ); есть в наличии бутылек Modcurrentmagicka 300 if ( GetSoundPlaying "Drink" == 0 ) PlaySound "Drink" endif RemoveItem "p_restore_magicka_e" 1 set timerMag to 3; задаем три секунды таймеру elseif ( GetItemCount "p_restore_magicka_q" > 0 ); проверка на следующий бутылек если нет предыдущего ... Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 4 января, 2020 Жалоба Поделиться Опубликовано 4 января, 2020 Ни какого перегруза быть не должно, если не работает при добавлении магии, то наверно она и одна работать не будет. буду тестить, а doIHIT что за переменная? Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 4 января, 2020 Жалоба Поделиться Опубликовано 4 января, 2020 Названия переменным можно давать любые кроме ключевых слов.doInit - типа однократная начальная инициализация. Ссылка на комментарий Поделиться на другие сайты Поделиться
Larkin Опубликовано 5 января, 2020 Жалоба Поделиться Опубликовано 5 января, 2020 Ни какого перегруза быть не должно, если не работает при добавлении магии, то наверно она и одна работать не будет.Ну оптимизация у вас, факап. Там где можно обойтись двумя переменными заводится целых пять. И деление в каждом кадре.Нужно боольше doOnce, больше таймеров! Давай 500 делений в кадре? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти