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 делений в кадре? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти