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

Takirell

Модмейкер
  • Постов

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

  • Посещение

Весь контент Takirell

  1. В данном случае - да, это невозможно прикрутить, но есть пример наркомании иного плана) Скриптовый эффект доппельгангера (квест на ДО, в Роще отражений), содержит в себе блок OnActivate, который, хоть и кроется писюнами со стороны компилятора CSE, но в игре то прекрасно работает)00) Хотя не должен. Как и не должен работать ванильный скрипт "RavenCamoranScript", в котором переменные объявляются прямо в блоках, а не в декларации оных - вначале скрипта.
  2. Хмм... зайдите в Мои документы\My Games\Oblivion, найдите там Oblivion.ini и откройте его через блокнот (NotePad ++). В открытом документе поищите опцию "bUseRefractionShader" и поставьте значение "1", если оно у Вас иное. Сохраните изменения и проверьте работу эффекта у того кричера.
  3. Ну, я уже написал - можете попробовать скопировать оригинальную папку Shaders и накатить ее поверх OR\ORC. Но, как мне кажется, это ничего не изменит особо. Трогать их вообще не вижу смысла, при наличии инструментов в виде нововведенных шейдеров. А вот с новыми шейдерами, которые добавляет OR, лично я уже работал и вполне себе успешно. Их можно в легкую копировать, менять TESR переменные (чтобы отвязать от ядра) и компилировать, затем - управлять через скрипты из игры. Это сложно, в том плане, что без исходников тяжко понять, какая переменная за что отвечает. Скажите, а что именно Вы хотите сделать? Я просто не понимаю задачи.
  4. Шейдер-паки, сами по себе, неразборные. Есть речь идет о тех, что лежат в Data\Shaders. Можно установить куда-нить ванильную Облу и оттуда перетянуть оригинальные шейдеры, с заменой. Правда, вряд ли это что изменит, т.к любой OR, насколько я понял, меняет освещение откуда-то из движка через сеттинги (как это делал Оскуро, правда, через GS'ы внутри плагина). А что не так с шейдерами ORC? Если их не включать, то ничего работать и не будет. Ну да, картинка чуть другой становится, но это не из-за шейдер-паков. Вообще, Вам с таким вопросом стоило бы обратиться к автору ORC, он отвечает на вопросы, обычно.
  5. Ну... ничего не мешает Вам попробовать задать НПС другие показатели и проверить, как НПС будет себя вести.
  6. mikkelito, А шо, xOBSE до 22.8 обновилось? Ого, надо бы и себе обновить. Спасибо за отзыв)
  7. Если мне не изменяет память, то отрицательное значение предмета в инвентаре у НПС, будет постоянно удалять указанный итем из его сумки, даже если актер его подберет. Либо, как я еще где-то слышал, это позволит сделать предмет, в сумке у НПС, бесконечным (но это вряд ли).
  8. А потом он ее слил)0))
  9. Эта стадия у Вас будет обновляться постоянно. Нужно условие-ограничитель, типа вот так: Short sOnce Begin GameMode if (sOnce == 0) setstage NameQuest 1 Set sOnce to 1 Return Endif End
  10. Takirell

    Лилит Мерунес

    heyzoom, По идеи, даже если Лилит попадает по Вам, модуль дружественного огня должен обнулять повреждения и снимать негативные эффекты, если те были наложены. Вы правы, у Лилит есть небольшая интеграция в основной квест игры и у Вас, к сожалению, что-то поломалось, раз они не срабатывают. Сейчас уже вряд ли что-то можно будет сделать с этим багом, поскольку нужно загружаться чуть ли не на момент, когда Вы ее нашли. Я в любом случае буду многое переписывать у нее (в плане кода), поскольку... иногда, по какой-то причине, скрипты не срабатывают должным образом.
  11. Takirell

    Лилит Мерунес

    Xa1oooooo, Сюжет Лилит будет развиваться в будущих обновлениях, работа над которыми худо-бедно, но ведется. А можно скрин проблемы с "просветами" прелестей? :D
  12. Однозначный лайк за работу, даж себе этот мод поставлю. Все никак руки не доходили пофиксить эту дрянь, хорошо, что вышел данный мод)
  13. Имеете ввиду - режим камеры? Если да, то поможет OBSE-функция "IsThirdPerson". Она используется, как правило, в условии типа: if (IsThirdPerson > 0) ;Режим от третьего лица Else ;Режим от первого лица Endif
  14. Самое примитивное, что приходит на ум, это функция SetActorAlpha, которая устанавливает прозрачность актера. 1 - полностью видимый, 0 - невидимый. Значение с плавающей точкой, может быть и 0.1, например. При этом, НПС все равно будут замечать персонажа так, словно он полностью видимый.
  15. Takirell

    Лилит Мерунес

    interskycom666, Автосохранения отключите. Вообще все.
  16. Да, невозможно менять значения в скрипте из другого плагина, увы. По крайней мере, я не нашел вариантов для того, чтобы это как-то реализовать. В OBSE есть функция GetVariable, которая позволяет считать значение той или иной переменной из скрипта другого плагина, но вот чтобы задать его - не-а, такого я не встречал. Не исключаю, что есть какие-то обходные пути, о которых я не знаю.
  17. Ну, в общем-то, по этой причине я и написал, что нужно перелопатить добрую половину механики открытия Врат.
  18. @jpsmith, Не то, чтобы затея совсем уж неосуществима, но это будет довольно сложно сделать + это, скорее всего, скажется на совместимости с другими модами. Придется перелопатить добрую часть механик Врат. Ко всему прочему, еще сперва нужно разобраться во всем этом :D 
  19. Takirell

    Loot Menu

    Прикольный мод, в свое время распилил его для интерактивного меню :D Лех, ты хоть убрал тот ужас в коде, где у автора было 2 или 3 блока GameMode в одном квестовом скрипте? Без слез не взглянешь.
  20. Жаль, что когда я начал только осваивать все это ремесло, у меня не было кого-то вроде себя нынешнего :D   Ну, в общем, вроде как даже что-то получилось. Мод получился не шибко сложный, если понимаете синтаксис и в целом более-менее ориентируетесь в скриптинге, механика работы должна быть понятна. По идеи, должно работать не только в случае, если бьет игрок, но и когда атакуют другие НПС. Пробуйте) SkeletonWeakness.7z
  21. Заданный Вами вопрос достаточно интересный, да и к тому же, я сам хотел сделать подобную систему для себя. Тут теперь есть мотивация, почему бы и нет? Зачастую лучше самому все сделать и объяснить на готовом, чем пытаться донести тупо словами. Раз уж мы тут задумали такой мод, то мне нужные точные данные... на сколько уязвимы будут скелеты к дробящему оружию, а также на сколько резистивны к стрелам. Все вот в этом духе) Концепт ясен, но ТЗ нет)
  22. Я же сказал, что придется использовать 2 хандлера - этот и OnHealthDamage.   Вот я тоже о ней подумал. Можно проверять по имени актера, а можно и по пути меша.   Действительно бред, поскольку запускать хандлеры и вешать подобного рода блоки в скриптовый эффект - онанизм планетарного уровня. Игра ловит клин после таких приколов и скрипт-профайлер вообще виснет наглухо, переставая выполнять какие-либо скрипты.   Я, считай, за 10+ лет практики, многие извращения видел в скриптинге, но такое... впервые) Не мудрите и просто дайте мне время, я подумаю и попробую сделать отдельный esp-файл, как в прошлый раз.
  23. OnHitWith, как и OnHit - ванильные блоки из игры, посему их хавает компилятор без проблем, если Вы вешаете скрипт с этим блоком на актера. А OnHealthDamage - уже новый блок, который работает ИСКЛЮЧИТЕЛЬНО как хандлер и никак иначе. Посему компилятор плюется ошибками при попытке впихнуть невпихуемое.   Да, в одной функции их не собрать, но в игру можно запускать хоть сразу 100 хандлеров, втч. и одного типа, но чтобы у них были разные исполняемые функции. Проблема в том, что от 100 таких обработчиков игре стремительно поплохеет, но от парочки наших - вряд ли. Просто я не хотел бы плодить лишние хандлеры там, где можно обойтись без них. Но тут, похоже, не тот случай... Похоже, чтобы ловить удары оружием, все же придется вводить еще один хандлер OnHitWith, в нем уже выдавать цели токен, который будет находится в сумке у НПС порядка 3-5 кадров, затем удаляться автоматически. По идеи, за этот момент, пока токен у НПС, OnHealthDamage должен будет успеть среагировать на наличие отметки у НПС и выполнить все необходимые рассчеты. Ну, в теории, оно, вроде бы как, должно и работать. Осталось только решить - как мы будем определять нежить и конкретные их типы?) Вариантов тут тоже несколько)
  24. @jpsmith, OnHitWith - вещь, в принципе. Вроде как в новых версиях OBSE его поправили, но я не проверял. На счет OnHealthDamage... чессказать, я тоже пока не имею мыслей, как отфильтровать урон непосредственно от стрел, с уроном от дробящего оружия все +\- понятно.   Ну, сперва нужно написать саму функцию, которая и будет что-то у нас делать в этом типе хандлера: scn TestDamageFunction Float fDamage ​Ref rAttacker Ref rTarget Begin Function {fDamage, rAttacker} ;Определяем цель, по которой приходит урон Let rTarget := GetSelf ;Ограничиваем срабатывание хандлера в случае несоответствия некоторых условий (их всегда можно дописать при необходимости) if (IsFormValid rTarget == 0) || (IsFormValid rAttacker== 0) || (fDamage <= 0) Return Endif ;Получаем абсолютную величину урона Let fDamage := Abs fDamage PrintToConsole "Актер *%n* был атакован актером *%n* и получил *%g* ед. урона!" rTarget rAttacker fDamage Return End Теперь, чтобы эта функция работала, ее нужно зарегистрировать в игре. Как правило, все Event-хандлеры принято запускать при загрузке сейва единожды из квеста\токена или любого другого гейм-мода: Begin GameMode if (GetGameLoaded) || (GetGameRestarted) SetEventHandler "OnHealthDamage" TestDamageFunction Return Endif End В принципе, это все. Имею ввиду, что хандлер зарегистрирован и должен выплевывать в консоль текст, который мы писали, используя функцию PrintToConsole. Теперь уже нужно правильно писать саму функцию)
×
×
  • Создать...