Форум » Записи участника [Dsion]

Результаты поиска
Dsion  Offline  Сообщение №1081 | Тема: Вопросы по скриптам Papyrus написано: 24 апреля 2017, 07:31



Mengur, мм, понятно. Возможно, стоит посмотреть возможности перков. Можно игроку добавить один перк, который будет повышать весь исходящий урон в, скажем, 4 раза, и весь входящий тоже в 4 раза.
Но это не совсем то потому что действовать будет только когда сражаются игрок против НИП. А если друг друга нагибают два НИП, то эффекта не будет.

Добавлено (24 Апреля 2017, 10:29)
---------------------------------------------
Я когда-то делал отдельную игровую расу, которая получала в 4 раза больше урона от почти любых источников, но могла переходить в состояние "фокуса", когда сам игрок движется с нормальной скоростью, а весь остальной мир - замедляется в 2 или 4 раза. Весело было от града стрел уклоняться как в "Матрице" :)

Добавлено (24 Апреля 2017, 10:31)
---------------------------------------------
И еще надо Game Settings посмотреть. Там много переменных, которые напрямую участвуют в формулах расчета всякой фигни, включая урон. Есть шанс процентов 60%, что там есть что-то, чем можно поднять урон абсолютно всем акторам.


Dsion  Offline  Сообщение №1082 | Тема: Вопросы по скриптам Papyrus написано: 24 апреля 2017, 07:52



С Game Settings точно стоит поразбираться.
Вот я выбрал наугад три настройки и увеличил их в 5 раз: fDamageStrengthMult, fCombatDamageScale, fDamageWeaponMult.
И что-то из этого реально изменило урон и мой, и НИП, который в меня стрелял.

Уникальные требования... Да можно-то можно, но не уверен, что можно ограничиться одними только скриптами. Вот дать призракам перк, который будет понижать в ноль весь урон от не-железа - это легко. Дать игроку перк, который будет понижать урон по призракам - тоже легко. А вот как это скриптами сделать я даже и не знаю...

Dsion  Offline  Сообщение №1083 | Тема: Вопросы по скриптам Papyrus написано: 24 апреля 2017, 14:21 | Отредактировано: Dsion - 24 апреля 2017, 14:24



Ага... Ну раз хорошо, то ладно...
По настройкам я много информации не видел.
https://www.creationkit.com/index.php?title=Category:Settings
Вот тут кое-что, но комментировано очень мало из них.
Легче методом тыка. Ввести фильтр "Damage" и пытаться догадаться, что они делают.
Но одна из тех трех точно работала!

Фигово, что нельзя всем НИП перк выдать. Там же всякое можно... Можно было бы сделать и шанс блокирования и шанс и что-угодно еще.

Dsion  Offline  Сообщение №1084 | Тема: Вопросы по скриптам Papyrus написано: 26 апреля 2017, 05:42 | Отредактировано: Dsion - 26 апреля 2017, 05:42



Mengur, скриптами без SKSE нельзя... С SKSE, вроде как, можно. Команды такого типа:
https://www.creationkit.com/index.php?title=SetGameSettingFloat_-_Game
Но я им не пользуюсь и не проверял.

Добавлено (26 Апреля 2017, 08:42)
---------------------------------------------
Может, действительно просто дать перк игроку? На битвы НИП против НИП это влиять не будет, но это же не так плохо. А то страшно представить, что может пара вампиров в городе сделать, если ты им еще и урон в 4 раза поднимешь :D

Dsion  Offline  Сообщение №1085 | Тема: Вопросы по скриптам Papyrus написано: 26 апреля 2017, 07:10



Ну да, я тоже когда-то размышлял над альтернативами концепии "HP". Не очень реалистично, когда в кого-то всаживают 20 стрел и ему пофиг, а потом еще одна стрела и он сразу сдыхает...
В Neverwinter Nights (и D&D вообще) хоть и тоже есть HP, но там иначе работает броня. Броня не уменьшает получаемый урон, а увеличивает шанс избежать урона вообще. Точно так же как ловкость. Можно было бы эту механику и в скайрим перенести. Больше бронищи - больше шанс избежать урона вообще. Но если уж урон получаешь, то он АДСКИЙ.
В добавок к этом можно было бы добавить какой-то штраф при низком значении HP. При, типа, ранении. Чем меньше ХП, тем медленее и слабее игрок.

Но совсем от HP я бы не отказывался, чтоб слабые крыски не ваншотили и чтоб не потеряли актуальность заклинания лечения.

Добавлено (26 Апреля 2017, 10:10)
---------------------------------------------
Кстати, можно еще рассмотреть вариант не увеличения урона, а уменьшения ХП... Эффект-то похожий?


Dsion  Offline  Сообщение №1086 | Тема: Вопросы по скриптам Papyrus написано: 26 апреля 2017, 07:47 | Отредактировано: Dsion - 26 апреля 2017, 07:50



Mengur, сам понимаешь, что отнимать от предыдущего значения текущее - это сомнительное решение. NPC могут лечиться или регенерировать  или получать урон из других источников (падение с высоты итп).
Я бы сначала трижды перепроверил, что желаемое нельзя сделать через game settings. Это безопасно и никаких конфликтов с другими модами.

Dsion  Offline  Сообщение №1087 | Тема: Вопросы по скриптам Papyrus написано: 27 апреля 2017, 06:37 | Отредактировано: Dsion - 27 апреля 2017, 06:39



Цитата nepewka

и еквипитем вот так просто работать не будет


На твоем месте, я бы все-таки попробовал. Всё тебе правильно подсказали. Моментально и с эффектом - EquipItem. А если долго и для красоты - то через пакет.

Dsion  Offline  Сообщение №1088 | Тема: Вопросы по скриптам Papyrus написано: 30 апреля 2017, 21:55



По-моему, этот ивент срабатывает и при попадании предметов туда. Даже если тарелка туда упадет.

Dsion  Offline  Сообщение №1089 | Тема: Вопросы по скриптам Papyrus написано: 1 мая 2017, 12:02



Mengur, нечего модифицировать ванильные записи без нужды... Создаешь квест, Start Game Enabled, создаешь в нем алиас на игрока. И уже на алиас вешаешь скрипт или заклинания. И работать будет, и совместимость 100%.

А по поводу сохранений, так есть трюк. Запускаешь игру, прямо в главном меню открываешь консоль и вбиваешь что-то типа

Код
coc whiterunbanneredmare

или другое место на твой вкус. Это мгновенно начинает новую игру и телепортирует игрока в указанное место. Если работаешь над модом со скриптами, его желательно каждый раз тестировать на новой игре или на сохранении, в котором мод еще не был подключен. Иначе могут, например, не поменяться property на скриптах.

Dsion  Offline  Сообщение №1090 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 28 мая 2017, 13:10



Или сделать, чтоб условия на рецептах перестали выполняться. Может, поменять Keyword на Небесной Кузне или что-то такое... У меня сейчас нету CK, чтоб проверить.

Dsion  Offline  Сообщение №1091 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 30 мая 2017, 15:35



Нету нормального способа...
Можно в твоем квесте выполнять проверку каждые несколько секунд. Или подцепиться к какому-то событию типа "игрок перешел в другую локацию" и в нем выполнять проверку.
Но это всё кривые способы... А нормального и нету-то...

Dsion  Offline  Сообщение №1092 | Тема: Вопросы по скриптам Papyrus написано: 23 июня 2017, 13:48 | Отредактировано: Dsion - 23 июня 2017, 13:49



m4mk203, да, вроде, нормально всё... Если OnClose срабатывает при закрытии... Должно работать. Не работает разве?

Если даже OnClose не срабатывает, то можно каст бяки повесить прямо на OnItemRemoved после Utility.Wait(0.1) - тогда она скастуется сразу после закрытия игроком меню сундука.

Если сундук должен быть многоразовым, можно добавить сбос переменной в OnActivate.

Dsion  Offline  Сообщение №1093 | Тема: Вопросы по скриптам Papyrus написано: 23 июня 2017, 17:28



m4mk203, а коготь твой собственный или ты для всех когтей такое хочешь сделать? Да вариантов дофига...

Если твой собственный, то есть же событие OnContainerChanged - можно повесить скрипт на коготь и этот ивент будет срабатывать при смене контейнера. Можно проверить, является ли "контейнер" игроком.

Если не твой и делаешь для всех когтей, можно создать квест, в квесте алиас игрока, а на алиасе игрок будет вызываться OnItemAdded и OnItemRemoved, с которыми ты уже знаком. Там уж можно проверить, находится ли взятый предмет в сприске когтей от неоткрытых дверей.

Ну и если это часть квеста, можно еще на алиас игрока повесить вредящую ability (пассивный эффект), с условием "коготь в инвентаре, дверь не открыта".

Фигово. да? Лично я не люблю, когда много вариантов :) Сложно выбрать. Когда вариант только один, как-то легче.

Dsion  Offline  Сообщение №1094 | Тема: Вопросы по скриптам Papyrus написано: 24 июня 2017, 22:56 | Отредактировано: Dsion - 24 июня 2017, 22:57



m4mk203, по поводу спавна нежити - так скрипты там, вроде, вообще не при чем. Думаю надо смотреть, LeveledCharacter. Это списки, в которые добавляются обычные НИП (акторы) и для каждого задается уровень игрока. У тебя, наверное, получится только два актора в списке: один со статическим 50 уровнем, а второй с уровнем игрока +5. Да, точно можно сделать и даже не сложно.

У меня мой самый главный мод, без которого я вообще не играю, немного похожее делает. Он вообще отменяет концепцию "уровня игрока" и зависимость мира от уровня игрока. У игрока уровня нету, есть только уровень навыков. А в мире с самого начала лазят монстры от 1 до 100 уровня. И есть шанс найти самые лучшие вещи прямо сразу (хотя, в основном, падает хлам). Уф, сколько же с этим модом надо мучиться, чтоб драурги и бандиты-марадеры перестали ваншотить из лука. Первые дни игры можно только травку собирать и отбившихся от стаи волков выискивать, чтоб деньги заработать.

За сундук - так это легко. Когда вещи попадают, выполняешь RegisterForSingleUpdateGameTime -  это заставит через указанное время (игровое) вызваться ивент OnUpdate(). А в ивенте OnUpdate() делаешь RemoveAllItems().

Dsion  Offline  Сообщение №1095 | Тема: Вопросы по скриптам Papyrus написано: 25 июня 2017, 12:17



m4mk203, а, ну давай...

Скорее всего, придется тебе дофига leveled-списков редактировать: и LeveledCharacter, и LeveledItem. Посмотри их хоть, попробуй разобраться, как они работают.

Я не поклонник перезаписи ванильных объектов в т.ч. списков, но в данном случае это оправданно.

Ну или еще, если есть в тебе олдскульный программистский дух, можешь почесать репу над вариантами, не требующими перезаписи ванильных объектов.
Вот для примера (я не предлагаю что-то подобное делать, а просто для примера):
Есть задача: усилить всю нежить во всех подземельях.
Вариант 1: Редактируем дофига leveled-списков и Actor'ов. Мод становится тяжелым и не (полностью) совместимым с любым другим модом, затрагивающим хоть один из этих же списков.
Вариант 2: Создаем всего один перк и даем его игроку. А в перке прописываем увеличить весь входящий урон по игроку в нордских руинах в 4 раза, а весь исходящий (по монстрам) - уменьшить в 4 раза. Весь - это чтоб и ловушки стали опаснее. Но можно увеличить урон только от нежити. В том же духе решаем и проблему с лутом.

Dsion  Offline  Сообщение №1096 | Тема: Вопросы по скриптам Papyrus написано: 25 июня 2017, 14:45 | Отредактировано: Dsion - 25 июня 2017, 14:47



m4mk203, да редактируй списки - не так это и страшно. Никаких сложностей это не вызовет, если не подключать другой мод, который их тоже редактирует... Или если их не отредактируют разработчики в каком-то новом патче...
Просто хотел сказать, что есть и другие пути. Например, можно добавить ловушку на все босс-сундуки, не редактируя при этом сами сундуки (ни референсы, ни базовый объект) и сохранив полную совместимость с чем-угодно. То же самое с любыми дверьми. Даже лут в сундуки можно добавить, не редактируя ванильных объектов.

А, ладно, забей. Это у меня мозги набекрень. Я страшные вещи делал, чтоб избежать кропотливой работы и перезаписи ванильных объектов :)

Dsion  Offline  Сообщение №1097 | Тема: Вопросы по скриптам Papyrus написано: 25 июня 2017, 22:05



m4mk203, можно и без триггера... На алиасе игрока скрипт с ивентом смены локации. И если локация находится в списке запретных для простых смертных, то вешаем на игрока вредящий эффект. Опционально, можно сделать, чтоб эффект вредил только в заданном радиусе от двери. Или даже чтоб усиливался по мере приближения к двери.
Лично мою интуицию такой вариант больше радует потому что гарантированно совместим с другими модами.

Dsion  Offline  Сообщение №1098 | Тема: Вопросы по скриптам Papyrus написано: 26 июня 2017, 14:38



m4mk203, вопрос, скорее, в том, к чему подцепиться... И как должен отреагировать мод, если его подключили уже после старта игры?

Можно прицепиться к началу отсчета игрового времени. Но в ванильном варианте оно начинается не тогда, когда игрок завершает создание персонажа, а когда его освобождают от наручников в крепости. Это самый простой вариант. В "живи другой жизнью" - вообще без понятия когда начинается.

Можно к расе игрока, к стадии главного квеста, входу в любую конкретную локацию. Или просто к смене локации, но при условии, что игрок уже полностью контролирует персонажа. Или просто проверять каждый игровой час, контролирует ли игрок персонажа. К первому входу в нордские руины итд итп.

Dsion  Offline  Сообщение №1099 | Тема: Вопросы по скриптам Papyrus написано: 26 июня 2017, 18:16 | Отредактировано: Dsion - 26 июня 2017, 18:24



m4mk203, да всё можно. Можно даже в две строчки скрипта заюзать стандартного гонца, который доставит игроку посылку. Ладненько, выбор конкретного решения там, где есть много вариантов, - это не моё. Так что я сливаюсь!

Dsion  Offline  Сообщение №1100 | Тема: Вопросы по скриптам Papyrus написано: 26 июня 2017, 18:36



А если игрок 11-го уровня в момент подключения мода?

Dsion  Offline  Сообщение №1101 | Тема: Вопросы по скриптам Papyrus написано: 26 июня 2017, 18:45 | Отредактировано: Dsion - 26 июня 2017, 18:47



m4mk203, попробуй, лучше, вот такой вариант (скрипт на квесте)

Код
Event OnInit()
    RegisterForSingleUpdateGameTime(0.1);
EndEvent

Event OnUpdate()
    Debug.MessageBox("111");
EndEvent


Я сейчас на море без СК, но, по-моему, такой вариант срабатывает через 1/10 часа после начала отсчета игрового времени (освобождение игрока от наручиков). А если мод был подключен не с самого начала игры, то через 1/10 часа после входа игрока в мир со включенным модом.

А вариант с гонцом точно не хочешь? Оглушение и прилетающие из ниоткуда предметы - как-то не лорово.

Dsion  Offline  Сообщение №1102 | Тема: Вопросы по скриптам Papyrus написано: 26 июня 2017, 18:51



m4mk203, а я не помню :(
Помню только, что где-то есть квест гонца (что-то там со словом "Courier"). На квесте скрипт, а в скрипте функция, которую достаточно вызвать и всё.
Как-то так:

Код
Имя_скрипта_на_квесте_курьера Property Siski Auto

Event OnInit()
    Siski.Какая-то_функция(Какой-то предмет);
EndEvent

Dsion  Offline  Сообщение №1103 | Тема: Вопросы по скриптам Papyrus написано: 27 июня 2017, 12:54



m4mk203, попробуй сначала на стрелу хоть какое-то зачарование повесить. Я на море без СК, но не помню, чтоб такое было возможно.
На арбалетных болтах висит Explosion - но это взрыв, а не зачарование. Там хрен получишь референсы тех, кого задел взрыв.
А вот с помощью перка на ГГ можно сделать... Там можно к любому попаданию из любого оружия подцепиться или даже ко взмаху этим оружием.

Вот еще глянь:
OnDeath
другого способа не приходит в голову. вешать можно на базового актора, на конкретный референс или на алиас.

Dsion  Offline  Сообщение №1104 | Тема: Вопросы по скриптам Papyrus написано: 27 июня 2017, 15:06



Цитата m4mk203

Делал таким макаром отравленные стрелы


мм, я такого не помню( Но если ты можешь через стрелу повесить на кого-то эффект, то получить реферес - вообще не проблема:
https://www.creationkit.com/fallout...._Script
см. ивент. OnEffectStart

Dsion  Offline  Сообщение №1105 | Тема: Вопросы по скриптам Papyrus написано: 29 июня 2017, 09:33



Так на неживые сундуки и магический эффект-то не накладывается. Поймать попадания по сундукам я только два способа знаю: один предполагает повешение скрипта на сам сундук, что плохо, а второй еще хуже и точно тебе не понравится.

Dsion  Offline  Сообщение №1106 | Тема: Вопросы по скриптам Papyrus написано: 29 июня 2017, 13:28



Цитата m4mk203

А вобще можно определить кого именно (бандюка, солдата, гражданского, драугра, фалмера и т.д.) я убил? И если да, то как именно определяется класс жертвы?


Я бы начал даже еще более издали: можно ли вообще поймать событие убийства кого-либо игроком, не вешая скрипт на жертву.
Кроме вот этого, лично мне других вариантов в голову и не приходит:
https://www.creationkit.com/index.php?title=OnStoryKillActor_-_Quest
А проверить класс жертвы - это уже легко. По кейвордам делается:
https://www.creationkit.com/index.php?title=HasKeyword_-_Form

Dsion  Offline  Сообщение №1107 | Тема: Вопросы по скриптам Papyrus написано: 29 июня 2017, 15:00 | Отредактировано: Dsion - 29 июня 2017, 15:02



Цитата m4mk203

Я правильно понимаю?


А я почём знаю? Я так не извращался! Да, нужен квест и в квесте событие. А еще запись в SM Event Node. И не забыть снова остановить квест после обработки события.

Кейворды почти у всего есть - да. По ним можно определить, например, является ли НИП нежитью, является ли локация таверной, сделан ли какой-то предмет брони из стали.

Статистика в меню - есть такая. Эти цифры можно считывать из скрипта. Но изменять или устанавливать условия измнения - нельзя. Скайрим, в основном, на С++ написан, а скрипты ограничены в возможностях.

Dsion  Offline  Сообщение №1108 | Тема: Вопросы по скриптам Papyrus написано: 29 июня 2017, 17:30 | Отредактировано: Dsion - 29 июня 2017, 17:32



Цитата m4mk203

зачем останавливать квест?


Ну OnStoryKillActor - это один из способов старта квеста. Квест может быть запущен изначально (Start game enabled), может запускаться из предыдущего квеста в цепочке, может запускаться из скрипта в любом месте. А может еще по ивентам вот такого типа, как OnStoryKillActor - их много.
Но если его не остановить, то следующее убийство его и не запустит, ясно дело.

Тебе, наверное, кажется, что это способ ух-какой-кривой-и-вообще-через-задницу, но это еще ничего. CK ощутимо ограничивает фантазию людей и приходится придумывать вот такие штуки. Регулярно перезапускаемый квест - это еще цветочки и даже не вредит совместимости.

Хм... Другие вариаты? Не знаю даже... Ну можно дать пассивную абилити каждой расе, но перезаписывать все расы - бред.
Еще можно подождать. Вдруг кто-то другой что-то придумает.

Начни пока реализовывать хоть что-то :) А то размечтался тут, заданий себе наставил)

Dsion  Offline  Сообщение №1109 | Тема: Вопросы по Creation Kit (продолжение старой темы) написано: 30 июня 2017, 19:50 | Отредактировано: Dsion - 30 июня 2017, 19:50



Wdsawdsa, ну квест обязательно нужен. Запущенный. В квесте диалог. На диалоге условия, которые будет удовлетворять только управитель и только если кнопка еще не куплена.
А в поле End диалога маленький скриптик. Главное в нем:

Код
MySecretButton.Enable()


Создать проперти MySecretButton и заполнить кнопкой.
Подробно расписывать каждый шаг - лениво. Так что ты начинай и по ходу дела спрашивай, если что-то не получится.

Dsion  Offline  Сообщение №1110 | Тема: Вопросы по скриптам Papyrus написано: 3 июля 2017, 10:03 | Отредактировано: Dsion - 3 июля 2017, 10:25



m4mk203, а что за OnStoryRemoveFromPlayer? Я такого и не видел. Через обычный OnItemRemoved работало бы точно. А если через старт квеста... Не пробовал переместить проверку предмета из самого скрипта в условие на SM Event Node?
Но лучше скрипт с OnItemRemoved на алиас игрока.

Форум » Записи участника [Dsion]
Поиск:





Ответ на жалобу смотрите в разделе жалоб