в таком случае пока у меня нету идей, как это можно осуществить. Хотя вчера я обрадовался, подумав про эти фрагменты в перках, думая что они срабатывают только при получении... Если бы можно было там какую-то затычку ставить в этом фрагменте, чтобы он постоянно не срабатывал - но наверное такой функции нету
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №242
| Тема: Вопросы по скриптам Papyrus
написано: 29 апреля 2022, 08:36
| Отредактировано: Multigone - 29 апреля 2022, 16:52
nepewka, посмотри OnTimer() и OnTimerGameTime(), похоже, это аналоги OnUpdate() и OnUpdateGameTime(), только лучше, потому что в одном скрипте можно использовать сразу несколько таймеров. Впрочем, не уверен.
не, судя по всему нельзя...
C:\Users\nepej\AppData\Local\Temp\PapyrusTemp\MyMod01\AAAsc10.psc(19,0): script event ontimer already defined in the same state
всё равно не понимаю, чем ты считаешь это лучше апдейта. а если у них разные таймеры, как они будут работать ?
плюс если маг эффект слетает с цели, таймер не работает больше. тогда как старый добрый апдейт насколько я помню код выполнял до конца несмотря на слетевший эффект
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №246
| Тема: Вопросы по скриптам Papyrus
написано: 30 апреля 2022, 11:22
| Отредактировано: nepewka - 30 апреля 2022, 11:23
И OnUpdate() и OnUpdateGameTime() точно так же кончались, когда прекращал действовать маг. эффект. Только цикл WHILE c Wait() продолжает работать, пока условия выполняются, с сохранением всех переменных скрипта.
Понял, спасибо)
Напомни пожалуйста, как через скрипт в одном модуле, получить доступ к форм ид другого модуля ? Ну то есть есть модуль1 и модуль2 Как в скрипте в модуль1, получить доступ например к спеллу из модуль2, чтобы использовать его в командах cast
модули имею ввиду обычные esp и esl(те которые создаются сверхлимита), но к последним я так понимаю доступа через скрипт не получишь, ведь так ?
Проверил уже, да, должен быть подгружен. А я уже подумал, что можно таким способом из какого угодно файла подгружать формы, наплевав таким образом на лимит подгрузки в 255 плагинов
Всем привет! Давненько сюда не заходил из-за нехватки времени, сейчас появилось несколько выходных - появилось желание поиграть в фолач. Напомню, что в прошлый раз общались на тему скрипта, который поможет осуществить правильную работу резистов. (опять же напомню, что в 4 фоле криво работает одна из формул подсчёта энерго урона, хочу это исправить костылями ) Был бы очень любезен, если бы Вы направили на нужный путь и помогли в написании)
Цель: Нужно чтобы висела ability на игроке и на окружающих игрока актёрах (с которыми игрок может вступить в бой) (эта ability будет отвечать за работу резиста)
По идее нужно 2 или 3 скрипта как я понимаю.
1 скрипт будет на игроке, выдавать ability окружающим игрока актёрам. При переходе в локу или как это правильно осуществить, кто-нибудь знает ?
2 скрипт будет на актёрах, должен сработать 1 раз, просчитать новый резист и всё. (главное чтобы он не повторялся, если один и тот же актёр будет взаимодействовать с игроком больше 1 раза )
3 скрипт ещё раз на игроке, тоже будет отвечать за просчёт нового резиста. (вот этот наоборот должен повторяться и обновляться, так как значение резиста для игрока динамически должно меняться по ходу игры)
Заранее спасибо за помощь!
Изменение репутации для пользователя nepewka
nepewkaOffline
Сообщение №252
| Тема: Вопросы по скриптам Papyrus
написано: 5 ноября 2022, 08:05
| Отредактировано: Multigone - 6 ноября 2022, 14:01
Multigone, привет! подскажи, пожалуйста, как правильно дописать данный скрипт для Fallout 4, накидал очень криво, но мысль такова: задача ванильного кода 42 раза пополнить здоровье нпц, когда оно опускается в 0 или меньше, а для меня важно, чтобы это разбивалось на две проверки по 21 разу, для первой используется int Pika, для второй int Pika2).
Возможно это прозвучит бредово, но я хочу научиться для себя делать мульти проверки через разные integer. Тобишь двойные, тройные, четверные. Звучит странно, но насколько ты меня знаешь за многие годы нашего общения здесь многие из моих задач были странными и тяжело обьяснимыми))
Scriptname AAAdefa extends Actor
int Pika int Pika2 float DAM ActorValue property Health auto
event onload() DAM = 10000.0 StartDeferredKill() StartTimer(0.001) Endevent
Event OnTimer(int aiTimerID) Debug.Notification( "Working" ) if GetValue(Health) <= 0 if Pika >= 21 Pika2 += 1 else Pika += 1 RestoreValue(Health, DAM) endif if Pika2 >= 21 EndDeferredKill() CancelTimer() return else Pika2 += 1 RestoreValue(Health, DAM) endif endif StartTimer(0.001) endEvent
Если ты не уверен, что апдейт с периодом ниже 0.1 тебе ЖИЗНЕННО необходим, и это точно нужно для правильной работы кода, то никогда не опускайся ниже 0.1 с.
я не уверен, но вроде как замечал ошибки в работе данного скрипта с периодом обновления 0.25. К примеру в Fallout стрельба имеет очень высокую скорость и иногда скрипт может просто не прогружать здоровье при периоде обновления 0.25, но это не точно, чисто логически. Надо проверить в общем