ShadowMimicry Опубликовано 3 марта, 2019 Жалоба Поделиться Опубликовано 3 марта, 2019 (изменено) После подмены ниф файла, меню анимации у активаторов типа "банер" перестает быть активным. В чем причина? Можно ли его разблокировать и повесить анимацию на такой активатор? Изменено 3 марта, 2019 пользователем ShadowMimicry Ссылка на комментарий Поделиться на другие сайты Поделиться
CemKey Опубликовано 3 марта, 2019 Жалоба Поделиться Опубликовано 3 марта, 2019 (изменено) После подмены ниф файла, меню анимации у активаторов типа "банер" перестает быть активным. В чем причина? Можно ли его разблокировать и повесить анимацию на такой активатор?Ну так анимация нужна. Ниф с анимацией. Изменено 3 марта, 2019 пользователем CemKey Ссылка на комментарий Поделиться на другие сайты Поделиться
ShadowMimicry Опубликовано 3 марта, 2019 Жалоба Поделиться Опубликовано 3 марта, 2019 Ну так анимация нужна. Ниф с анимацией.Семкей, так он с анимацией. Я беру ниф который от банера. Переименовую его закидываю в активаторы, и анимация становится неактивной.. При том что в нифскопе я могу ее проиграть, она работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
CemKey Опубликовано 3 марта, 2019 Жалоба Поделиться Опубликовано 3 марта, 2019 (изменено) Семкей, так он с анимацией. Я беру ниф который от банера. Переименовую его закидываю в активаторы, и анимация становится неактивной.. При том что в нифскопе я могу ее проиграть, она работает.А без этого не вставить в игру?Нужны еще два сопутствующие файла. С тем же именем, но в начале стоит x xИмяФайла.nif и xИмяФайла.kf. Их тоже надо скопировать и соответственно переименовать. Изменено 3 марта, 2019 пользователем CemKey Ссылка на комментарий Поделиться на другие сайты Поделиться
ShadowMimicry Опубликовано 3 марта, 2019 Жалоба Поделиться Опубликовано 3 марта, 2019 А без этого не вставить в игру?Нужны еще два сопутствующие файла. С тем же именем, но в начале стоит x xИмяФайла.nif и xИмяФайла.kf. Их тоже надо скопировать и соответственно переименовать.Я правильно понял? 1)Блабла.nif 2)xБлабла.nif 3)xБлабла.kf Так? Ссылка на комментарий Поделиться на другие сайты Поделиться
CemKey Опубликовано 3 марта, 2019 Жалоба Поделиться Опубликовано 3 марта, 2019 Так?Угу. Ссылка на комментарий Поделиться на другие сайты Поделиться
ShadowMimicry Опубликовано 3 марта, 2019 Жалоба Поделиться Опубликовано 3 марта, 2019 Угу.Вот что значит делать что то, при этом не зная элементарных вещей:( Спасибо Семкей, а можешь в двух словах объяснить для чего они?Особенно интересно про второй nif с "x" впереди. Ссылка на комментарий Поделиться на другие сайты Поделиться
CemKey Опубликовано 3 марта, 2019 Жалоба Поделиться Опубликовано 3 марта, 2019 второй nif с "x" впереди.Просто модель без анимации, а .kf - это сама анимация. По сути то используются игрой эти два файла с префиксом x (как мне кажется). Почему именно такая конструкция не знаю. Ссылка на комментарий Поделиться на другие сайты Поделиться
Dagot_Prolaps Опубликовано 11 марта, 2019 Жалоба Поделиться Опубликовано 11 марта, 2019 Есть ли функция для округления чисел до целого? Например, есть 2.7398, нужно сделать из него 2 Если в этом языке нет функции floor, то разрабатывали ли уже простейший алгоритм такого округления? Ссылка на комментарий Поделиться на другие сайты Поделиться
olol Опубликовано 12 марта, 2019 Жалоба Поделиться Опубликовано 12 марта, 2019 целые переменные short и long не могут быть дробными.если присвоить им дробное значение, то остаток от бросится или округлится.если от бросится, то для округления увеличь перед сложением дробь на 0.5 Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 Добрый день. Хотел узнать, если я раздаю НПС абилку, поднимающую ему навык - будет ли это учитываться в обучении, когда он учит навыкам, или там в расчет идут только прописанные изначально в описании НПС? Ссылка на комментарий Поделиться на другие сайты Поделиться
morrow Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 Добрый день. Хотел узнать, если я раздаю НПС абилку, поднимающую ему навык - будет ли это учитываться в обучении, когда он учит навыкам, или там в расчет идут только прописанные изначально в описании НПС?Будет учитываться в обучении.Здесь повысили торговцам навыки торговли и красноречия — в итоге те из них, кто обучал навыкам, все сплошь стали обучать торговле и красноречию вместо того, что предлагали изначально. Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 (изменено) Понял, спасибо. Тогда еще вопрос. Примерно с месяц назад обращался здесь к товарищу Муун Шепард, он помог мне сделать скрипт на питье зелий НПС, за что ему спасибо . К сожалению, месяц тестов показали, что скрипт чем дальше качается игрок, тем хуже работает - частые попадания не дают нпс шансов на выпивание...нельзя ли немного сменить принцип, убрав зависимость от попаданий протагониста и тайминга боя, создав условия, равные с игроком? То есть, скриптом при снижении хп моментально делается проверка на наличие опред зелья здоровья/маны/усталости- оно удаляется, а НПС подвергается аналогичному по силе эффекту заклинания восстановления здоровья/маны/усталости? И если да - можно ли выставить тайминг, чтобы нпс скриптом таким образом не "удалил" все зелья сразу? Изменено 16 марта, 2019 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 А разве скрипт зависит от попаданий? Он ведь должен активироваться в самом начале боя, когда непись кричит боевую фразу. И после работает мгновенно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 А разве скрипт зависит от попаданий? Он ведь должен активироваться в самом начале боя, когда непись кричит боевую фразу. И после работает мгновенно. он активируется, но ии не хочет пить зелья в ту же секунду, как потерял хелсы-ману, он делает это только в паузы, в основном, когда в него не летят один за другим удары. Проще говоря, в затяжных поединках с частыми промахами игрока, нпс выпивает почти все, а если Нереварин не промахивается - практически ничего, не помогает даже понижение порога потери питья зелий от потерь. Мне же надо, чтобы НПС оперативно реагировал на снятие хелсов-маны - упало до 50% тут же выпил зелье, прошла пара сек, если здоровье успели сбить еще - выпил снова. Но это не работает так, увы...поэтому и пришло в голову заменить скрипт реального выпивания условным, с проверкой на наличие зелий и наложением магического эффекта, в надежде, что это будет работать мгновенно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 Мда, понятно. Тогда нужно заменить каждый блок с выпиванием зелья на такой removeitem "some_potion" 1 modcurrenthealth 50Где вместо 50 подставить ожидаемый эффект от зелья. И вместо health писать fatigue/magicka соответственно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 (изменено) Мда, понятно. Тогда нужно заменить каждый блок с выпиванием зелья на такой removeitem "some_potion" 1modcurrenthealth 50Где вместо 50 подставить ожидаемый эффект от зелья. И вместо health писать fatigue/magicka соответственно. а магический эффект как-то можно добавить? Ну чтоб звук и звездочки-аура? И как тайминг сделать, чтоб и не удалил все 3 зелья в инвентаре, например (или др ограничение). Изменено 16 марта, 2019 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 (изменено) И как тайминг сделать, чтоб и не удалил все 3 зелья в инвентаре, например (или др ограничение).Добавить в начало скрипта это. short counterHealth short counterMagicka short counterFatigue if ( counterHealth > 0 ) set counterHealth to ( counterHealth - 1 ) return endifА в каждый блок с "выпиванием" зелья восстановления здоровья добавить set counterHealth to 40; или такое же число, как мощность зельяИ сделать такие же блоки для counterMagicka и counterFatigue. Про эффект и звездочки пока не знаю, увы. Изменено 16 марта, 2019 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 (изменено) А нельзя просто наложить эквивалентный зелью закл, как это делают алтари,, или скрипт это не позволит? Про 2й блок уточнить - куда именно добавить, в начало? Изменено 16 марта, 2019 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 А нельзя просто наложить эквивалентный зелью закл, как это делают алтари,, или скрипт это не позволит?Хм... а попробуйте вместо modcurrenthealth использовать explodeSpell "SpellID". Вместо SpellID подставьте какое-нибудь лечащее заклинание для теста. Если сработает, то потом нужно будет создать для каждого зелья по соответствующему заклинанию.Про 2й блок уточнить - куда именно добавить, в начало?В блок, в котором пьется зелье. Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 (изменено) В общем, постестил. С заклинанием - не сработало, вместо пространного эффекта заклинания оно добавляется в арсенал НПС, после чего НПС может его скастовать (а иногда и НЕ скастовать)...С currenthealth все получше, за исключением того, что все же не уверен, правильно ли я вписал setcounter ? Слабые НПС с большим количеством слабых дешевых склонны "выпивать" их почти сразу, в то время как более дорогие выпиваются поэтапно у более сильных НПС...хотя, как по мне, это связано с тем, что выпивание слабого зелья может не восстановить ХП у НПС выше 60%, после чего в ту же секунду наступается следующая проверка, потом идет еще удар по НПС, хп сносится почти до 0, и тут уже все зелья выпиваются залпом...но все же, проверьте, пожалуйста...может, ошибка, но если нет, можно бы как-то жестко привязать проверки на тайминг, для создания имитации питья... begin AI_USING_POTION short counterHealthif ( counterHealth > 0 )set counterHealth to ( counterHealth - 1 )returnendif if ( GetHealthGetRatio < 0.6) ; здоровье меньше 60%if ( GetItemCount p_restore_health_b > 0 )set counterHealth to 15removeitem "p_restore_health_b" 1modcurrenthealth 15returnelseif ( GetItemCount p_restore_health_c > 0 )set counterHealth to 25removeitem "p_restore_health_c" 1modcurrenthealth 25set counterHealth to 25returnelseif ( GetItemCount p_restore_health_s > 0 )set counterHealth to 50removeitem "p_restore_health_s" 1modcurrenthealth 50returnelseif ( GetItemCount p_restore_health_q > 0 )set counterHealth to 100removeitem "p_restore_health_q" 1modcurrenthealth 100set counterHealth to 100returnelseif ( GetItemCount p_restore_health_e > 0 )set counterHealth to 200removeitem "p_restore_health_e" 1modcurrenthealth 200endifendif В общем, если оставить вариант с current health, и подкрутить тайминг, останется только узнать, как создать для антуража анимацию выпивания, а с ускоренным излечением, в отличие от зелья (current регенит почти в момент) можно и смириться, в конце концов, игрок читерит так на каждом углу... Обидно, и непонятно, все же, почему currenthealth ИИ выполняет как часы, а вот просто зелья ИИ нормально пить не хочет...ПС Как вариант, можно попробовать добавлять НПС не заклятиие, а характеристику (пост. эффект), но тоже нужен тайминг...то есть, эквивалентно эксклюзивному зелью добавляем "Восстановить здоровье 40П" - а через 5 сек абилка удаляется у НПС. Так можно? Изменено 16 марта, 2019 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 16 марта, 2019 Жалоба Поделиться Опубликовано 16 марта, 2019 (изменено) ПС Как вариант, можно попробовать добавлять НПС не заклятиие, а характеристику (пост. эффект), но тоже нужен тайминг...то есть, эквивалентно эксклюзивному зелью добавляем "Восстановить здоровье 40П" - а через 5 сек абилка удаляется у НПС. Так можно?В принципе, можно, но мне было бы очень лениво прописывать блоки и переменные для каждого зелья (дешевого, стандартного и т. д.). Будет выглядеть примерно так: float timerHealth1; таймер для уценненных зелий float timerHealth2; таймер для дешевых зелий float timerHealth3; таймер для стандартных зелий float timerHealth4; таймер для качественных зелий float timerHealth5; таймер для экслюзивных зелий float myX float myY float myZ if ( GetSpell "Spell1" == 1 ); сделать такой же блок для всех пяти переменных и, соответственно, менять айди заклинания set timerHealth1 to ( timerHealth1 + getsecondspassed ) set MyX to GetPos X set MyY to GetPos Y set MyZ to GetPos Z DummyNPC->SetPos X MyX DummyNPC->SetPos Y MyY DummyNPC->SetPos Z MyZ if ( timerHealth1 >= 5 ) ; 5 секунд откат RemoveSpell "Spell1" set timerHealth1 to 0 endif endif А блок с выпиванием зелья будет выглядеть так: if ( GetItemCount p_restore_health_b > 0 ) if ( GetSpell "Spell1" == 0 ) removeitem "p_restore_health_b" 1 AddSpell "Spell1" PlaceAtMe "DummyNPC1" 1,1,0; непись, который обеспечит искорки. Возможно, для разных уровней зелья стоит создать разных неписей, однако оставить одно айди для усталости/здоровья/магии, потому что искорки всегда выглядят одинаково. endif endif Хм, чтобы добавить соответствующий эффект можно попробовать создать непися, на котором висит постоянная невидимость. На непися навесить скрипт float timer short doonce if ( MenuMode == 1 ) return endif if ( doonce == 1 ) SetDelete 1 return endif if ( GetDisabled == 0 ) Disable ExplodeSpell "Healing spell"; это должна быть не постоянная характеристика, а именно заклинание endif set timer to ( timer + getSecondsPassed ) if ( timer >= 3 ) set doonce to 1 return endif UPD: Поправил скрипты. Для искорок лучше создать даже не непися, а какой-нибудь очень мелкий или невидимый активатор (или не активатор, а колечко). Sound marker'ы не подойдут, на них будет постоянно выскакивать ошибка. Изменено 16 марта, 2019 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Varang Опубликовано 17 марта, 2019 Жалоба Поделиться Опубликовано 17 марта, 2019 (изменено) В общем, прописал, потестил...не знаю, что-то глючит, или это я косанул - на данном этапе скрипт активируется, и не прекращается совсем - т.е. нпс получает эту абилку "навсегда", и она уже не удаляется у него из инвентаря, независимо от того, ск там - зелий - тупо идет постоянная регенерация. Может, я где-то ошибся? begin AI_USING_POTION float timerHealth1; таймер для уценненных зелийfloat timerHealth2; таймер для дешевых зелийfloat timerHealth3; таймер для стандартных зелийfloat timerHealth4; таймер для качественных зелийfloat timerHealth5; таймер для экслюзивных зелий if ( GetSpell "1_Potion_B" == 1 ); уцset timerHealth1 to ( timerHealth1 + getsecondspassed )if ( timerHealth1 >= 5 ) ; 5 секунд откатRemoveSpell "1_Potion_B"set timerHealth1 to 0endifendif if ( GetSpell "1_Potion_C" == 1 ); дешset timerHealth2 to ( timerHealth2 + getsecondspassed )if ( timerHealth2 >= 5 ) ; 5 секунд откатRemoveSpell "1_Potion_C"set timerHealth2 to 0endifendif if ( GetSpell "1_Potion_S" == 1 ); стset timerHealth3 to ( timerHealth3 + getsecondspassed )if ( timerHealth3 >= 5 ) ; 5 секунд откатRemoveSpell "1_Potion_S"set timerHealth3 to 0endifendif if ( GetSpell "1_Potion_Q" == 1 ); качset timerHealth4 to ( timerHealth4 + getsecondspassed )if ( timerHealth4 >= 5 ) ; 5 секунд откатRemoveSpell "1_Potion_Q"set timerHealth4 to 0endifendif if ( GetSpell "1_Potion_EK" == 1 ); эксset timerHealth5 to ( timerHealth5 + getsecondspassed )if ( timerHealth5 >= 5 ) ; 5 секунд откатRemoveSpell "1_Potion_EK"set timerHealth5 to 0endifendif; -----------------------------------------------------------------------if ( GetHealthGetRatio < 0.5) ; здоровье меньше 50%if ( GetItemCount p_restore_health_b > 0 )if ( GetSpell "1_Potion_B" == 0 )removeitem "p_restore_health_b" 1AddSpell "1_Potion_B"endifendifelseif ( GetItemCount p_restore_health_c > 0 )elseif ( GetSpell "1_Potion_C" == 0 )removeitem "p_restore_health_C" 1AddSpell "1_Potion_C"endifendifelseif ( GetItemCount p_restore_health_s > 0 )elseif ( GetSpell "1_Potion_S" == 0 )removeitem "p_restore_health_s" 1AddSpell "1_Potion_S"endifendifelseif ( GetItemCount p_restore_health_q > 0 )elseif ( GetSpell "1_Potion_Q" == 0 )removeitem "p_restore_health_q" 1AddSpell "1_Potion_Q"endifendifelseif ( GetItemCount p_restore_health_e > 0 )elseif ( GetSpell "1_Potion_EK" == 0 )removeitem "p_restore_health_e" 1AddSpell "1_Potion_EK"endifendif ПС Скрипт с нпс на каст для эффекта пока не добавлял, решил поэтапно со всем разобраться Изменено 17 марта, 2019 пользователем Varang Ссылка на комментарий Поделиться на другие сайты Поделиться
Муурн Шепард Опубликовано 17 марта, 2019 Жалоба Поделиться Опубликовано 17 марта, 2019 (изменено) elseif ( GetSpell "1_Potion_EK" == 0 )Это ни в коем случае не должен быть elseif. if ( GetHealthGetRatio < 0.5) ; здоровье меньше 50%if ( GetItemCount p_restore_health_b > 0 )if ( GetSpell "1_Potion_B" == 0 )removeitem "p_restore_health_b" 1AddSpell "1_Potion_B"endifendifelseif ( GetItemCount p_restore_health_c > 0 )if ( GetSpell "1_Potion_C" == 0 )removeitem "p_restore_health_C" 1AddSpell "1_Potion_C"endifendifelseif ( GetItemCount p_restore_health_s > 0 )if ( GetSpell "1_Potion_S" == 0 )removeitem "p_restore_health_s" 1AddSpell "1_Potion_S"endifendifelseif ( GetItemCount p_restore_health_q > 0 )if ( GetSpell "1_Potion_Q" == 0 )removeitem "p_restore_health_q" 1AddSpell "1_Potion_Q"endifendifelseif ( GetItemCount p_restore_health_e > 0 )if ( GetSpell "1_Potion_EK" == 0 )removeitem "p_restore_health_e" 1AddSpell "1_Potion_EK"endifendifendif Жирным выделены лишние endif'ы, а курсивом -- которые нужно добавить. Изменено 17 марта, 2019 пользователем Муурн Шепард Ссылка на комментарий Поделиться на другие сайты Поделиться
Dagot_Prolaps Опубликовано 17 марта, 2019 Жалоба Поделиться Опубликовано 17 марта, 2019 Зачем существуют скрипты болезней, которые висят на заражённых существах типа этого? Begin diseaseAscended DontSaveObject if ( CellChanged == 0 ) return endif if ( GetBlightDisease == 0 ) AddSpell "ash woe blight" AddSpell "black-heart blight" AddSpell "chanthrax blight" AddSpell "ash-chancre" endif End Они добавляют прописанные болезни если существо не поражено болезнью. Но ведь все заражённые существа и так изначально имеют в своём списке заклианий свои болезни. Зачем тогда скрипт, висящий мёртвым грузом? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Пожалуйста, войдите, чтобы комментировать
Вы сможете оставить комментарий после входа в
Войти