В первую очередь спасибо за огромное количество полезнейшего материала по скриптингу.
Вопрос. Есть локация. В ней сундук. На сундуке скрипт с защитным проклятием. Срабатывает эта пакость на событии OnClose сундука. В данный момент схема срабатывания вероятностная. Что нужно: как корректно отследить в момент закрытия сундука тот факт, что ГГ что-то из него взял / не взял? Что именно он взял значения не имеет. Важно только лутали ли сундук вообще или содержимое осталось нетронутым. Отловить это нужно именно в событии закрытия.
Будет ли правильным такое решение в скрипте на сундуке:
Код
Bool WasLooted = False ; флаг лутался ли сундук
Event OnItemRemoved(Form akBaseItem, int aiItemCount, ObjectReference akItemReference, ObjectReference akDestContainer) If akDestContainer == Game.GetPlayer() WasLooted = True EndIf endEvent
Event OnClose(ObjectReference akActionRef) If WasLooted == True ; контейнер был полутан - выполняем нужные действия. endif endEvent
Dsion, работает. Я просто еще слабенько знаком с взаимосвязью ивентов и консультируюсь на тему правильный ли набор событий я использую для решения задачи. То, что она работает сейчас, не грантирует работу всегда Спасибо Вам за ответ.
Цитата Dsion
Если сундук должен быть многоразовым, можно добавить сбос переменной в OnActivate.
Да, это стандартный сундук в подземелье с респавном. Но переменная-флаг же не глобальная. Разве она не реинициализируется при каждом контакте с сундуком?
Еще такой момент. Как правильно реализовать следующую штуку: Если ГГ таскает в инвентаре драконий коготь от еще не открытой двери могильника, то его неким образом плющит. Если дверь уже открыта, то коготь безвреден. Очень хотелось бы избежать постоянных проверок инвентаря и вкл/отк пакости повесить на события касающиеся исключительно взятия / выбрасывания когтя.
Ага. Суть понял. Да, когти игровые и больше всего подойдет вариант отработки смены контейнера на самом когте.
Умаялся с этими дверями для когтей. Оказывается это не единый объект, а целая лесопарковая зона:) Я так понимаю, что состояние открыта/закрыта должно храниться в глобальных переменных? И к сожалению сами когти это просто болванки в мискайтемах без явной привязки к двери. Придется видимо прописывать двери для каждого когтя ручками в скриптах.
А в каком месте лежит скрипт, отвечающий за спавн драугров в данжах? К чему вопрос: нужно изменить спавн так, что пока гг ниже 50-го уровня в данжах могильников спавнится нечисть уровня 50 (знаю что жесть но так надо), а если гг достиг уровня 50 то спавнится нечисть с левелом = уровень гг + 5. Такое вобще возможно?
И еще вопрос по спавну. Есть созданный мною сундук. В какой-то момент игрового времени туда попадают вещи. Нужно чтобы через 3 игровых дня с момента попадания в сундук шмота (если гг не забрал шмот из этого сундука) он автоматом очищался в ноль. Возвращать шмот игроку не нужно. Просто очистить сундук.
З. Ы.
На мой вкус куча вариантов - это хорошо Больше свободы действий.
Он вообще отменяет концепцию "уровня игрока" и зависимость мира от уровня игрока. У игрока уровня нету, есть только уровень навыков. А в мире с самого начала лазят монстры от 1 до 100 уровня.
Аминь, брат!
Делаю полную перебалансировку нордских подземелий с максимальной отвязкой от уровня гг и мощной магической защитой. Задолбало ходить в могильники величайших воинов и черных магов прошлого, как в долбанный Диснейленд и находить в могилах таких людей по 3 септима паллитре и жравые подштанники.
Dsion, согласен, курочить родную отбалансированную систему спавна нефиг. Но и обвешивать гг приблудами тоже не очень хочется.
Пока общую картину вижу для себя так:
1. Скрипты защиты на сундуках. (там будет жесть вплоть до срезания навыков с выбиванием перков скрытности, красноречия, взлома) 2. Все сундуки запереть на экспертные замки 3. Доступ к ключевым дверям защищен кил-тригером , убивающим любого (или ка-то оригинальнее портящим жизнь (ну там манну в 0 и выносливость с жизнью пополам на 10 игровых часов) ), кто подойдет к ним без специальной приблуды (защитного амулета). 4. Дополнительно разместить в подземельях (на стенах потолках и в разных укромных местах) руны с неким своим сильнодолбящим эффектом (кстати где эта пакость лежит в СК?). 5. По левеллистам. На сколько я понял их логику они прописываются в объекте по кнопке эдитбэйз. Ведь можно не трогать родной левеллист и просто добавить сундуку еще один свой со своей системой спавна плюшек (можно вобще присобачить объекту несколько левеллистов?). Или это все же будет влиять на совместимость по левеллистам? 6. По поводу тварей. Если ребаланс родных ведет к сложностям, то может добавить новые точки спавна высокоуровневых неписей (военачальников и драконьих жрецов) в местах, где раньше гг безпрепятственно скакал аки горный козел по пастбищу? У них будет свой спавн (как мне кажется) и уровень априори сильнее ванили. 7. Защитные амулеты. Будут делаться в кузнице атронахов из редких и дорогих ингридиентов, а основными ингридиентами для них будут магические свитки, которые спавнятся исключительно в сундуках драугров и нигде больше их взять нельзя. Так что в любом случае гг придется лезть в подземелья и сундуки. 8. Дополнительным стимулом будут разные располезные трофеи, лежащие в конце подземелий (с периодическим респавном). Так что будет смысл и ходить и возвращаться в уже пройденные данжи.
Нарада, простой фокус. Перед ключевыми дверями подземелья ставится тригер-зона. Когда игрок в нее попадает ему становится весьма фигово или совсем кердык не зависимо от того, что он открыл эту дверь или нет. Суть в том что в моей модификации по подземельям драугров могут шастать только драугры или же посвященные культа жрецов (вполне логичная защита для таких мест от проникновения туда разных праздношатающихся особей). Остальным в подземельях хана. Для посвященных же существуют защитные амулеты. К примеру через ключевые двери без вреда для себя можно пройти только будучи в особой маске жреца. Ну и т.д. Амулеты же крафтятся сложно и с участием ингридиентов, которые можно добыть только в подземельях.
Правильно ли я понял систему с алиасами: создаем пустой квест без стадий и флагом стартовать в начале игы. В список алиасов вешаем игрока. И уже на алиас игрока все нужные скриптовые отработки. Так?
Теперь по дверям. Дело в том, что в нордских подземельях я хочу отрабатывать не только два класса дверей (первый - с драконьим когтем и замками-ребусами, второй - все остальные) но и точки логического разделения подземелий на области, а там уже к объекту не привяжешся. Под точками логического разделения я понимаю такие вещи как выход с винтовой лестницы в обрядную комнату на Ветренном Пике, то есть места, где происходит доступ в некие значимые обрядово или логически учатки подземелья, а вот дверей там может и не быть. По сути это некие "дверные проемы", небольшие комнаты, мосты. Там без триггерных областей ИМХО никак. Ну и не хочется мне трогать событие смены локаций. Как бы вылетов не наплодить.
Еще момент по поводу квестов и алиасов. Нужно реализовать такую штуку:
При начале новой игры после создания и подтверждения персонажа у гг нужно запустить эффект оглушения с анимацией и закинуть с соответствующим уведомлением ему в инвентарь записку и пару плюшек. Никакой квест при этом начинаться не должен. Событие одноразовое и происходит безусловно. При этом фокус должен корректно сработать даже при установленном моде "Живи другой жизнью". Как такое реализовать?
Изменение репутации для пользователя m4mk203
m4mk203Offline
Сообщение №8
| Тема: Вопросы по скриптам Papyrus
написано: 26 июня 2017, 14:10
| Отредактировано: Multigone - 22 апреля 2020, 15:46
Dsion, а можно отплясать таким колхозно-ломовым методом: нужное событие случается при достижении игроком скажем 2-го уровня? На получении 2-го уровня гг вряд-ли успеет сунуться хоть в один данж драугров. Если да, то как именно это реализовать? Событие одноразовое и никакого квеста на нем не стартует. Просто кидаем в инвенталь записку, пару приблуд и проигрываем под это все анимацию оглушения секунд на 10.
Вот сокращенный (без описания квестов и стадий) вариант ТЗ для мода.
ТЗ
Переработка древних подземелий.
Обоснование Три простых факта:
1. Этим данжам тысячи(!) лет и они до сих пор не разграблены, хотя территория их нахождения плотно заселена и авантюристов на ней хватает. 2. Кто похоронен в этих данжах? Великие воины прошлого среди которых хватало и Языков (читай тех же довакинов) + самые продвинутые черные маги того времени - драконьи жрецы. 3. В данжах есть гора предметов, которые не могли там пролежать тысячи лет тупо не сгнив + есть свежие продукты + горит огонь + механические ловушеки сохраняют работоспособность.
Отсюда вполне логические выводы: 1. В данжах лежат очень серьезные противники и зависеть от уровня ГГ они зависеть не могут ибо на момент смерти уже были люто прокачаны. 2. Данжи времен расцвета черных магов не могут быть защищены только парой тупых ребусов, доской с гвоздями и шатающимися топориками. Эти могильники должны защищать реально страшные заклятия для обеспечения их недоступности для самых искушенных грабителей (среди которых вполне могут быть и опытные маги) 3. В сокровищницах таких данжей не может лежать пара септимов и сраный кожанный шлем. Сундуки должны быть просто набиты ценностями и артефактами, которые должны обесапечить умершим в ином мире благополучие и власть. 4. Доступ к сундукам должен быть максимально закрыт отличными замками и охранными заклинаниями, способными эффективно отпугивать даже самых упоротых воров. 5. Кто сказал, что культ древних жрецов исчез окончательно, не оставив тайных последователей? Никто. Более того, ситуация в данжах ясно говорит о том, что их посещают и обслуживают. Отсюда вывод - должен быть способ безопасного существования в данжах.
Из вышесказанного следует ряд задач для приведения данжей в надлежащий вид
1. Противники в подземельях уровнем не ниже хорошо прокачанного доы - 50 левел. 2. Все сундуки заперты на экспертные замки + защищены серьезными заклинаниями, основная задача который предотвратить вынос ценностей и жестоко наказать вора. Предусматривается пороговое повышение жесткости наказания в зависимости от колличества срабатыцваний защиты. Первых 5 раз просто отберем весь шмот. С 6 по 10 разы отбираем шмот и телепортим в паскудное место с 11 по 15 шмот+место+режем до 5 навык скрытности и т.д. 3. Обеспечить магическую защиту ключевых дверей переходов и помещений данжей. При попадании в эти системы защиты без оберегающих амулетов гг ожидают неприятные дебафы. Достаточно мощные, чтобы даже неплохо раскачанный ГГ не смог уйти далеко по данжу без охранного амулета (специальная маска драконьего жреца) 4. Двери усыпальниц и ключи от них должны быть защищены самым серьезным образом. Попытка ношения когтя от неоткрытой еще двери без защитного амулета приводит к очень быстрой смерти ГГ вне зависимости от уровня прокачки. Попытка открыть или даже подойти дверь с когтем без соответствующего амулета автоматом убивает ГГ независимо от уровня прокачки. 5. Существует ряд защитных амулетов: а) Защита от заклятий сундуков б) защита от дверных и коридорных ловушек в) Защита для ношения когтя г) Защита для прохождения главной двери Оригиналы этих амулетов принадлежат посвященным и достать их гг не сможет, но сможет скрафтить ухудшенные аналоги в кузнице атронахов. Худшесть аналогов в том, что они уничтожаются каждый раз при контакте с соответствующей системой защиты. Основной ингридиент для крафта этих амулетов - магические свитки с благословениями жрецов. Найти эти свитки можно только в сундуках драугров в их данжах. То есть гг в любом случае придется туда лезть и рисковать. 6. Неким (пока не придумал) образом системы защиты данжей должны подстраиваться под гг: ловушки на воина могут быть пофигу магу и наоборот. Не должно быть читерной комбинации прокачки гг. Каждый тип (воин или маг) должен огребать по полной. 7. В конце квеста (прохождение всех данжей с драконьими когтями) гг получит возможность заиметь некоторые защитные амулеты в оригинальном качестве (не уничтожаются при контакте с ловушками). Но только один - максимум два.
8. Доп стимулом будет размещение с рандомным спавном в подземельях и сундуках серьезных вкусностей и плюшек в виде уникальной брони, заклинаний, оружия.
В первую очередь я планирую реализовать все плюшки, амулеты и механику ловушек. Потом очередь квестов.
Фактически нужно решить три основных задачи: 1. Серьезно мотивировать ГГ лезть в данжи. 2. Устроить в этих данжах реальное зверство при чем не банальным задиранием уровня неписей 3. Обеспечить реиграбельность пройденных данжей в рамках даже текущего прохождения (мотивировать ГГ возвращаться туда)
Dsion, ох.... Ладно. Давай тоггда попробуем вариант универсального типа - с гонцом. Но я слыхал, что этот кадр глюковат. Правда сам с ним за три года общения со скаем проблем не имел. Расскажи как с гонцом запилить
Выдача наград за убийство именованых драконьих жрецов (тех из них, что имеют маски).
Есть секретные кусты, в них секретный алтарь. Есть сделанный руками набор наградных плюх, забитый в формлист. Есть глобальная переменная-счетчик (булл не катит ибо ГГ может вернуться за наградой после убийства нескольких жрецов) количества свежих трупаков жрецов . Есть формлист с перечнем масок жрецов.
Когда ГГ жмакает по алтарю скрипт смотрит на счетчик убийств и если он не 0, то начинает в цикле выдавать награды. Цикл по значению счетчика. После выдачи наград счетчик обнуляется.
Механизм выдачи награды. Для получения плюшки по задумке нужно выполнение двух условий:
1. Подтвержденное убийство жреца именно ГГ, а не компаньеном или законом всемирной справедливости. 2. Маска жреца в инвентаре ГГ (на данном этапе - чисто антуражная опция, но в дальнейшем будет иметь серьезное функциональное значение)
При выдаче награды маска жертвы удаляется из формлиста масок. Соответственно дважды за один намордник пиченьки не дают.
Проблема: глобальный счетчик убийств должен тикать только при условии, что жреца грохнул именно ГГ. Как это однозначно отловить? Че делать с остальным - понятно.
2. Нужна помощь в создании чудоплюшки.
"Стрела вора"
Эбонитовая стрела. Мой уникальный объект, созданный в ките. Под него создан свой эффект на попадание. При попадании по живым целям работает стандартным образом. Фишка в том, что если я попадаю такой стрелой в трупешник или сундук, то лут из таргета автоматом перемещается в инвентарь ГГ. При этом не должно возникать крайма на ГГ. Лут вполне может отмечаться, как ворованный. Главное не спровоцировать событие преступления.
Стрелы выдаются рандомным лутом с низким шансом и не крафтятся.
На сколько я понимаю тут нужно отрабатывать ситуацию скриптом, который висит на маг эффекте в специальном зачаре привязанном в графе зачарования на эффекте попадания данной стрелы. Вопрос: как должен выглядеть скрипт на маг. эффекте, который определит, что таргет нужного типа (и при этом не живой) и получит референс на контейнер, чтобы забрать лут. При этом должен сохраняться рабочим механизм стандартного попадания по живой цели.
m4mk203, попробуй сначала на стрелу хоть какое-то зачарование повесить
Можно. Работает. Делал таким макаром отравленные стрелы, которые при попадании вешают на таргет эффект яда через зачар с дейтсвием при контакте. Просто хрен его знает как вынуть референс таргета. С перками не работал ни разу и даже не представляю как это работает. Буду посмотреть.
OnDeath имеется в виду то событие, что срабатывает на жреце и типа отдает референс на киллера? То есть вешаю скрипт на актора-жреца в СК и отрабатываю в скрипте его событие OnDeath. Правильно?
Dsion, скрипт привязал к стреле, но всплыла проблемка: OnEffectStart в этом варианте срабатывает только на живых целях и трупаках. Больше ни на каком типе контейнера этого события не возникает.
Изменение репутации для пользователя m4mk203
m4mk203Offline
Сообщение №15
| Тема: Вопросы по скриптам Papyrus
написано: 29 июня 2017, 12:42
| Отредактировано: m4mk203 - 29 июня 2017, 12:49
Dsion, с сундуками дело гнилое. Ок. Буду развивать тему с живыми и мертвыми. Эффект прикольный получился
Такой вот прикол
Задача считать трупы по категориям. Подробнее. Есть два типа трупешников, за которые ГГ будет получать вознаграждение. Механизм не квестового типа. Предположим я пробежался по владению Истмарк и нарезал в нем пару десятков бандюков (в разных локациях этого владения). В какой-то момент я прихожу к ярлу Истмарка и через диалог с ним (отдельно созданную для этого ветку) получаю некую награду (по рандому из формлиста) за убиенных. После этого счетчик убийств для данного владения обнуляется и я снова иду на охоту. Счетчик не для локации, а именно для всего конкретного владения. 9 владений - 9 счетчиков.
Вопрос. К чему лепить скрипт-обработчик OnDeath для подсчета убийства бандюков в конкретном владении (независимо от конкретной локации этого владения)?
Ну и та же модель относительно драугров. Не важно где и когда я убил Драугра, но есои это сделал я, то счетчик должен тикнуть. Награда будет получаться у специального алтаря и место убийства драугров не имеет значения. Опять же вопрос на что повесить отслеживание события смерти.
Ну и главное... А вобще можно определить кого именно (бандюка, солдата, гражданского, драугра, фалмера и т.д.) я убил? И если да, то как именно определяется класс жертвы?
П.С.
Если нужен зачар на стрелы
В СК
Делаем так: создаем стрелы - создаем для них прожектл - создаем эксплоужн для данного прожектла - на эксплоужн в соответствующее поле вставляем нужный зачар контактного типа. Ну и на зачар можно повесить уже необходимый скрипт.
Изменение репутации для пользователя m4mk203
m4mk203Offline
Сообщение №16
| Тема: Вопросы по скриптам Papyrus
написано: 29 июня 2017, 13:36
| Отредактировано: m4mk203 - 29 июня 2017, 14:09
Dsion, ну, мысль о подсчете приперлась после взгляда на статистику прохождения в главном меню игры. Там же подсчитывается количество убийств. И при этом скриптов на неписи нима. Видимо, присутствует некая системная функция... Буду копать.
Цитата Dsion
А проверить класс жертвы
То есть ты имееш в виду что у каждой локации и НПС есть кейворд, определяющий класс или некую принадлежность? Я просто там еще не копался основательно.
Вариант со скриптовым событием предполагает примерно такое решение?
Приходит в голову такой алгоритм (правильно ли я думаю) 1. Делаем перманентный квест 2. Вешаем туду обработку события OnStoryKillActor 3. В обработчике события определяем фракцию убиенного и тикаем соответствующий глобальный счетчик.
То есть этот скрипт будет работать в любой локации и на событии убийства игроком любого НПС. Я правильно понимаю?
И не забыть снова остановить квест после обработки события.
А тут можно как для тупых? зачем останавливать квест? Мне ж нужно чтобы он работал на протяжении всей игры. Я имел в виду отработку ситуации не когда ярл дает квест игроку на отстрел бандюков, а когда гг просто шатается по скаю, отстреливает бандитов и потом может прийти к ярлу владения мол "я тебе тут закоулки подчистил, кинь деньжат на развитие". Получил награду (квест при этом завершаться не должен) пошол дальше терорить скайрим снова вернулся за наградой ну и так до бесконечности.
Изменение репутации для пользователя m4mk203
m4mk203Offline
Сообщение №18
| Тема: Вопросы по скриптам Papyrus
написано: 2 июля 2017, 22:30
| Отредактировано: m4mk203 - 2 июля 2017, 22:32
Dsion, ага. Если стартует квест по ивенту то вариант вполне себе норм. Со стрелами было хуже. Я просто в самой механике квестов пока ноль.
А реализовывать.... Та реализовано уже дофига на самом деле. Сейчас просто выстраиваю все элемены задумки в логически связанную картину. Сложность в том, что только начал изучать скриптовую и квестовую части и по этой причине не могу глобально смоделировать механику задуманного процесса. ХЗ че можно реализовать, а что нет.
Добавлено (03 Июля 2017, 01:30) --------------------------------------------- Так. Счетчики убитых драугров, бандюков, драконьих жрецов сделать удалось. Прекрасно отлавливаются по фракциям.
А вот с драконьими когтями возникли сложности. При получении когтя все отлично. Западло возникло при обработке события сброса когтя из инвентаря.
EVENT OnStoryRemoveFromPlayer(ObjectReference akOwner, ObjectReference akItem, Location akLocation, Form akItemBase, int aiRemoveType) if ClawList.HasForm(akItemBase) bool MoreClaws = false int ind = 0 ;Debug.MessageBox("ClawList Size is "+ClawList.GetSize())
While (ind < ClawList.GetSize()) Form currClaw = ClawList.GetAt(ind) if Game.GetPlayer().GetItemCount(currClaw) > 0 ind = ClawList.GetSize() MoreClaws = true Debug.MessageBox("OOOPS!!!") else ind = ind + 1 endif EndWhile if MoreClaws == true Debug.MessageBox("You have MORE CLAWS!!!") else Debug.MessageBox("Now you are free from CLAWS!!!") endif
else Debug.MessageBox("Fuck... its not a claw") endIf stop() ENDEVENT
Суть скрипта: отловить событие ухода когтя из инвентаря ГГ и при этом проверить, что у ГГ не осталось других когтей из списка ClawList.
Все работает отлично если первым я перемещаю из инвентаря коготь. Если же первым я выбрасываю скажем волчью шкуру, а следом за ней (не закрывая инвентарь) коготь, то факт сброса когтя не отлавливается.
Dsion, та я не против квест подвесить. Просто пока домучаю событие sm event node. Оно все-таки выгоднее ибо срабатывает только по ситуации. Вобщем спасибо за разъяснеия. Буду копаться.
Добавлено (03 Июля 2017, 19:37) --------------------------------------------- Существует ли некий универсальный способ решения следующей задачи
Игрок входит в локацию и если лока в черном списке, то в момент события смены локации происходит следующее
1. Получаем список референсов всех сундуков в локации куда мы приперлись 2. Запираем все сундуки на максимальный левел (даже если я там был пять минут назад) 3. Спавним в сундуках вещи из некоего своего списка (скажем формлиста) в каждом сундуке по вероятностной схеме 4. Подвешиваем на все сундуки скрипт-ловушку, срабатывающую на закрытие сундука после лутания по вероятностной схеме.
Короче мне нужно, чтобы спавн специтемов и ловушки работали только на сундуках в определенных локациях. И событие спавна, запирания сундуков происходило всегда при заходе в локацию ГГ. И чтобы ловушки на сундуках срабатывали только в определенных локациях и больше нигде.
Dsion, да ХЗ с какого конца подползать лучше. Честно. Опыта в перебалансировке локаций = 0. Я надеялся, что в локе можно получить массив всех референсов определенного класса и обработать их. К примеру все сундуки, все двери, всех уровневых засранцев (кого спавнить, а кого нет), все триггеры (какие включить, а какие вырубить) ну и т.д.
Смотри, я в общем смысле хочу реализовать такую поведенческую схему на нордских подземельях:
1. Механика будет распространяться на все нордские руины, не занятые людьми (дох...на локаций + несколько подземелий, сделанных вручную). Соответственно хотелось бы разрабатывать механизмы реакции на игрока с точки зрения универсальности и привязываться к одному-двум событиям, а не плодить кучу тригеров, обвешивать скриптами каждый куст в отдельности и т.д. С другой стороны если нормального универсального подхода (сделал для одной локи и развесил на остальные) нет, то готов потратить время и отработать каждый объект.
2. Задумка в том, что при каждом входе игрока в локацию там автоматом будет происходить респавн спецлута, спецмонстров, всех замков в локе. То есть: зашел в локу - вычистил - вышел - через 5 мин вернулся в ту же самую локу, а там все новенькое блестит и кусается.
3. Есть мысль заставить локацию подстраиваться под игрока: под танка одни сюрпризы, под мага другие, под вора третьи и т.д. Выбрать схему спавна ловушек удобнее всего при входе гг в локу проанализировав его снарягу и прокачку.
Добавлено (03 Июля 2017, 23:07) ---------------------------------------------
Цитата Dsion
Есть условие IsInList - я бы попробовал для интереса.
Получилось. В параметрах условия нужно выставить EventData: Item ref. В таком случае отлавливается только выброска когтей из инвентаря независимо от последовательности других предметов.
Делаю для своего мода налоговую систему. Сейчас реализовано начисление гг налога за производство оружия (броня, оружие, зачарование) На всех профильных станках по Скайриму отслеживается крафт каждой вещи и начисляется в глобальную переменную налог. Сделано все через SM Event Node с отловом по кейвордам события Craft Item. Беда Craft Item в том, что стандартный способ вешания скрипта на квест по этому событию не проходит. Однозначный краш игры при задействовании события. В силу этого золото за крафт начисляю в глоб переменную.
Завис наглухо со следующим: как содрать с ГГ сумму налога?
Как хотелось бы: при входе в любой город к ГГ подбегнает сборщик податей и в диалоге требует оплату налога. ГГ может заплатить и жить спокойно дальше или послать бедолагу на. При посыланни на ГГ должен вешаться крайм со штрафом равным долгу по налогу. Уплата налога должна происходить скажем каждый игровой понедельник. Как это сделать?
Назрела задача реализовать такую фишку: ограбление ГГ при поражении в бою.
Конкретнее: если во время боя здоровье ГГ падает ниже отметки 10% то бой прекращается, гг вырубается и его шмот отбирает тот НПС, хит которого был последним.
Не могу понять каким способом отловить момент падения здоровья ниже заданной планки? За какие события цепляться и на что их вешать? ОнХит не универсальный вариант ибо не учитывает урона от магов (вроде бы).
Изменение репутации для пользователя m4mk203
m4mk203Offline
Сообщение №26
| Тема: Вопросы по скриптам Papyrus
написано: 8 ноября 2017, 17:27
| Отредактировано: m4mk203 - 8 ноября 2017, 17:27
Dsion, неубиваемым? Да. Это вариант. Как пилить в таком случае?
Все, про OnBleedOut понял. Дальше знаю что делать.
Добавлено (08 Ноября 2017, 20:27) --------------------------------------------- Как в скрипте получить список референсов активных в данный момент фоловеров ГГ ?
Суть: ГГ проиграл бой = фолловеры разбежались.
Изменение репутации для пользователя m4mk203
m4mk203Offline
Сообщение №27
| Тема: Вопросы по скриптам Papyrus
написано: 9 ноября 2017, 00:50
| Отредактировано: m4mk203 - 9 ноября 2017, 01:01
Dsion, ну... А если их (нпс) отсканить по радиусу вокруг ГГ на свойство isTeammate? Какимнить скриптом с 20-ю заранее вбитыми пустыми алиасами и эти самые алиасы заполнить.
Цитата Dsion
А что будет, если игрока победят с твоим модом?
А ничего страшного не будет. Он же после поражения и ограбления телепортится на рандомный маркер в какую-нить глушь. Так что в закрытой локации он не залипнет. Другое дело, что с квестом и этой дверью можей выйти лажа... Надо будет обдумать такую ситуацию.
Lexo, да, логика правильная, но есть нюансы: мне нужен список референсов текущих фоловеров, находящихся рядом с игроком, по ряду причин:
1. Не все активные фоловеры могут быть со мной в этот момент. Может я некоторых дома оставил. 2. Их всех при поражении гг нужно вывести из боя иначе они будут продолжать рубилово (вроде бы) 3. Часть из них будет уходить в момент поражения от гг (аналог освобождения фоловера через диалог), а часть будет оставаться. По вероятностной схеме. 4. Ну и тех, кто остался с гг тоже должны бы грабануть.
Так что референсы нужны однозначно. Вешать на ГГ заклинание-плащ с детектом таргетов на хостайл тиммейт пока единственное, что придумывается.
Еще один вопрос (меня это поставило в тупик): а есть ли способ определить на уровне скрипта на алиасе игрока момент, когда ГГ уходит в сник или выходит из сника? Имеено как событие, а не маркер isSneaking.
Изменение репутации для пользователя m4mk203
m4mk203Offline
Сообщение №29
| Тема: Вопросы по скриптам Papyrus
написано: 15 ноября 2017, 18:42
| Отредактировано: m4mk203 - 15 ноября 2017, 19:24
Dsion, как отпускать еще не знаю, но имея референсы я хотя бы смогу включить фоловеров в события сценария и отработать с ними те же действия, что и с гг. В крайнем случае можно будет пнуть фоловеров в дом гг и заставить их ждать там или в рандомной таверне.
Так стоп... А в чем пробьема отпустить фоловера? Есть же строка диалога на отпускание. Провернуть по актору тотже кусок скрипта да ыоловер и отпущен. И на сколько я помню там идет жонглирование фракциями, а не пакетами. Имеется в виду FollowerDialog