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

Результаты поиска
JupiterJour  Offline  Сообщение №151 | Тема: Помощь по моддингу написано: 28 Август 2012, 22:25 | Отредактировано: Joopeeter - 29 Август 2012, 02:57


_


Цитата Вис

как сделать так, чтобы диалог появился через неделю после другого? То есть: поговорил, прошла неделя, появился другой диалог.


Тут пригодится глобальная переменная GameDaysPassed - сколько дней прошло с начала игры. В квестовый скрипт вписываем примерно так:

Условие первого диалога: GetQuestVariable zzQuestScript.DayX>-1 (тогда он будет доступен всю эту неделю)
Условие второго диалога: GetQuestVariable zzQuestScript.DayX==-1
В первом диалоге в подходящем результ-скрипте пишем:

JupiterJour  Offline  Сообщение №152 | Тема: Помощь по моддингу написано: 30 Август 2012, 19:05


_


Цитата Joopeeter

Есть такое ощущение, что считает движок где-то внутри, а у него не очень-то допытаешься


Похоже, я тут тебя обманул. Допытаться можно функцией GetPCMiscStat, а Песочного человека можно ещё поймать за работой функцией GetSandman.
Тогда если через подсчёт, то в квестовом скрипте будет примерно так:

А если через отслеживание действия, то примерно так:

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

JupiterJour  Offline  Сообщение №153 | Тема: Помощь по моддингу написано: 30 Август 2012, 20:16 | Отредактировано: Joopeeter - 30 Август 2012, 20:01


_


Цитата Ipatow

стимпак может "съедаться" тремя способами. Из инвенторя пип-бой (менюмод), с инвентарной кнопки, если стимпак повешен на кнопку (гейммод), а также из пип-боя со страницы эффектов - причём на ней двумя способами: просто кнопка "скушать стимпак" и целевое втыкание стимпака в покалеченные части силуэта ГГ.


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

JupiterJour  Offline  Сообщение №154 | Тема: ВОПРОСЫ по моддингу написано: 1 Сентябрь 2012, 15:29 | Отредактировано: Joopeeter - 1 Сентябрь 2012, 15:37


_


Там ещё фракции могут подсуропить. Хотя с этим как-то неясно. Если дать кому-нибудь в рыло в Мегатонне и сделать ему StopCombat, то он на секунду успокаивается и зеленеет, а потом опять краснеет и начинает драться. Типа ничего личного, но теперь ты враг моей фракции. А вот если стукнуть Агату (совсем небольно, честное слово!) и сделать ей StopCombat, то всё путём - успокаивается и прощает. Со SCAOnActor то же самое. Также у меня в игре был случай: случайно попал по Доку Хоффу во время боя, он, естественно, взъелся и вся его свита тоже. Так вот, пока с консоли не успокоил StopCombat одновременно его самого, его охранника и его корову, они так и агрились по очереди. По видимому, это важно для фракций с более чем одним членом.
Так что может пригодиться ClearActorsFactionsPlayerEnemyFlag.

JupiterJour  Offline  Сообщение №155 | Тема: Помощь по моддингу написано: 1 Сентябрь 2012, 16:21


_


Цитата Вис

У них же нет "Терминалов телепортеров"


Некоторые делают. :)
Отследить можно функцией GetLockLevel, но учти, что придётся навешивать скрипт на все запертые терминалы сколько их есть, либо дописывать к уже навешенным скриптам. В отличие от дверей, у терминалов запертость настраивается в базовом объекте, но это не сильно облегчает задачу - всё равно перелопачивать придётся вручную.
Сам скрипт вроде такого:

JupiterJour  Offline  Сообщение №156 | Тема: ВОПРОСЫ по моддингу написано: 1 Сентябрь 2012, 17:40


_


А вот в сцене драки с Туннельными Змеями используется не Player.GetHealthPercentage, а сравнение текущего здоровья с половиной запомненного в начале. Впрочем, Player.GetHealthPercentage в Ф3 тоже используется раз пять.
Как насчёт локализовать проблему? Просто, до всяких диалогов, затеять драку и с консоли успокоить непися StopCombat или player.SCAOnActor. Потом во время заскриптованной драки. Хоть ясно будет, на каком этапе поломка.

JupiterJour  Offline  Сообщение №157 | Тема: Помощь по моддингу написано: 1 Сентябрь 2012, 17:59


_


Цитата Вис

Есть идеи как это сделать побыстрей?


Пораньше начать.
Я о чём и толкую, нельзя со стороны определить, по крайней мере, стандартными средствами, во что именно сейчас тычет отвёрткой/пальцами игрок. Поэтому отслеживать должен сам тыкаемый объект, а для этого надо на него навесить скрипт. Что было хорошо для одного повышающего навык сейфа, может стать таким вот гемором если надо учесть всё-всё, что заперто в игре. Дверей тоже больше трёхсот, контейнеров - больше пятисот. Надо ещё не накосячить с уже имеющимися на всём этом скриптами.
В принципе, есть специальные менюмоды для взлома/хака, но в ГЭКК-вики они не упоминаются среди правильно работающих. К тому же остаётся проблема определения текущего взламываемого объекта.

JupiterJour  Offline  Сообщение №158 | Тема: ВОПРОСЫ по моддингу написано: 1 Сентябрь 2012, 18:19


_


Мысль в том, чтобы определить, что же
Цитата Caiena

со скриптом не так


Возможно, не срабатывает if Player.GetHealthPercentage < 0.50. Некоторые функции, которые в Ф3 использовали доли единицы, в Вегасе используют проценты. Конкретно по этой ГЭКК-вики не пишет ничего такого, но там иногда не всё задокументировано. Опять можно посмотреть, что возвращает рlayer.GetHealthPercentage, введённая с консоли. Или вместо неё можно попробовать так:
Code

if player.GetAV health < player.GetBaseAV health/2
StopCombat; или SCAOnActor
endif

JupiterJour  Offline  Сообщение №159 | Тема: Помощь по моддингу написано: 1 Сентябрь 2012, 23:57 | Отредактировано: Joopeeter - 2 Сентябрь 2012, 00:00


_


Скрипт надо будет чуть изменить из-за того, что висеть он будет и на запертых, и не незапертых контейнерах, так как у контейнеров это настраивается на копии, а не на базовом объекте. Кроме того, если ходил по ссылке, то наверное заметил, что сложность механического замка и сложность терминала нумеруются по-разному:

Кстати, там в терминалах я не учёл невзламываемые (правда, что-то не припомню таких в игре). Надо дополнить условие
if GetLocked && GetLockLevel<5
НО! В локации может быть много десятков контейнеров и в режиме меню запустятся разом скрипты на каждой копии. Уж не знаю насколько менюмод легче для игры, чем гейммод (если вообще легче), но лучше сначала проверить: поставить штук 50-70-100 копий заскриптованного контейнера и посмотреть насчёт тормозов в разных меню.
И, честно говоря, вызывает сомнения целесообразность редактирования многих сотен объектов. Даже не в смысле трудоёмкости, а в смысле что чем меньше лезешь с изменениями в оригинальное, тем лучше. Если по хорошему, то надо будет проверять каждый контейнер через Use Info, и если у него нет копий, подлежащих взлому, скрипт не вешать.
И ещё. Если контейнер заперт на взламываемый замок, но также может быть открыт и ключом, то при данном способе в обоих случаях скорее всего будет засчитан успешный взлом. Если, конечно, скрипт срабатывает до отпирания, что вероятней всего.

JupiterJour  Offline  Сообщение №160 | Тема: Помощь по моддингу написано: 2 Сентябрь 2012, 20:29


_


Вис, я очень не люблю говорить кому-то что ему делать, а что нет, но тут всё же дам такой совет: не реализуй этот способ. Лучше отслеживай потихоньку в квестовом скрипте GetPCMiscStat и фиг с ним с уровнем сложности.
Во-первых, неизбежны баги. Баги с ключами/паролями, баги с дверьми, либо исключение дверных замков из подсчёта, кто его знает какие ещё баги из-за скриптов, потому что придётся изменять их десятками, а внимание притупляется... Честное слово, простой незабагованный мод лучше сложного забагованного. Лучше для игроков, красивее при взгляде изнутри.
Во-вторых, менять какие-то оригинальные объекты, скрипты и т.п., не понимая чётко что ты делаешь, не нужно. Причём понимать придётся тебе самому, потому что переписывать за тебя кучу игровых скриптов вряд ли кто возьмётся. Я, например, не возьмусь. Пошаговую инструкцию по совмещению скриптов писать тоже не стану, поскольку совсем не уверен, что она подойдет ко всем случаям, а понимания, которое требуется, чтобы сманеврировать в нужном месте, механическое выполнение кем-то написанных пунктов не прибавит ни на грош.

JupiterJour  Offline  Сообщение №161 | Тема: ВОПРОСЫ по моддингу написано: 2 Сентябрь 2012, 20:48


_


Цитата Caiena

BoxBonkTarget.StopCombat player


Если перчатки не у игрока, то BoxBonkTarget'ом является как раз игрок. Может, использовать ещё GetContainer? Типа:
ref Owner
....
set Owner to GetContainer
....
Owner.StopCombat

JupiterJour  Offline  Сообщение №162 | Тема: ВОПРОСЫ по моддингу написано: 2 Сентябрь 2012, 21:08 | Отредактировано: Joopeeter - 2 Сентябрь 2012, 21:10


_


Цитата Caiena

Ха, я же говорила - Волшебник!


:D :D
Ну, на всякий случай:

(ref Owner) под (ref BoxBonkTarget)'ом
(set Owner to GetContainer) под (Set BoxBonkTarget to GetOwnerLastTarget)'ом
(Owner.StopCombat) под (BoxBonkTarget.StopCombat)'ом
И переменные обычно всё же объявляют сразу после Scriptname, хоть тут и без разницы.

JupiterJour  Offline  Сообщение №163 | Тема: ВОПРОСЫ по моддингу написано: 4 Сентябрь 2012, 10:24


_


Цитата bruner

Даже не пытается что то искать стоит столбом.


А что, он должен, по-твоему, подбежать к двери, порыскать там, остановиться, почесать репу, а потом подойти к тебе и сказать:"Дык эта... А навмеш-то где? Нету навмеша-то!" :D
Игра и не подбегая знает, может он пройти или нет, вот и не суетится зря.

JupiterJour  Offline  Сообщение №164 | Тема: Скрипты написано: 6 Сентябрь 2012, 19:09 | Отредактировано: Joopeeter - 6 Сентябрь 2012, 19:10


_


Цитата GR1n

Какой функцией возможно вернуть значение урона, который был нанесен игроку в данный момент? Просто мне нужно сделать скрипт, который не позволял бы игроку умереть, если ему был нанесен урон больше, чем его собственное текущее здоровье


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

JupiterJour  Offline  Сообщение №165 | Тема: Скрипты написано: 7 Сентябрь 2012, 09:48 | Отредактировано: Joopeeter - 7 Сентябрь 2012, 10:30


_


Наличие/отсутствие гриба - это переменная State на том грибе. Тогда на кнопке будет так:

Кстати, этот скрипт, насколько я помню, для двери с выключателем в другой локации. Если выключатель этой двери - вон тот слева, то можно просто связать их через Activate Parent:

И ещё кстати. Не ясно зачем вообще там дверь, гриб, как видно из его скрипта, прекрасно растёт и при открытой. Чтоб не рос:

Всё написано без проверки.

JupiterJour  Offline  Сообщение №166 | Тема: Скрипты написано: 8 Сентябрь 2012, 16:11 | Отредактировано: Joopeeter - 8 Сентябрь 2012, 16:14


_


Всё кроме "умри" - пакеты.
Чтобы пакет начался сразу, надо либо добавить его скриптово AddScriptPackage, либо в нужном месте дать команду на переоценку пакетов EvaluatePackage.

JupiterJour  Offline  Сообщение №167 | Тема: Помощь по моддингу написано: 8 Сентябрь 2012, 19:23 | Отредактировано: Joopeeter - 8 Сентябрь 2012, 19:48


_


Цитата Joopeeter

во что именно сейчас тычет отвёрткой/пальцами игрок.


JupiterJour  Offline  Сообщение №168 | Тема: Скрипты написано: 8 Сентябрь 2012, 19:38


_


Дык OpenTeammateContainer это и есть залаз в инвентарь. Просто надо читать что там про синтаксис пишут..
OpenTeammateContainer 1 открывает инвентарь как если бы непись был напарником.

JupiterJour  Offline  Сообщение №169 | Тема: Помощь по моддингу написано: 9 Сентябрь 2012, 00:18 | Отредактировано: Joopeeter - 9 Сентябрь 2012, 00:18


_


Сложность можно отследить и без ФОСЕ. Экстендер, как теперь выяснилось, позволяет получить реф-ссылку, на которой потом применяется функция GetLockLevel. То есть, не навешивая скрипт на базовый объект, можно определить, сложность чего именно отслеживается в данный момент.
Правда, как я уже упоминал, ГЭКК-вики не упоминает менюмод хака (MenuMode 1055) в числе всегда корректно работающих, но сам я это не проверял, а не верить Ipatow'у нет никаких оснований. Так что если у тебя нет предубеждений против ФОСЕ...
Можно переиначить и под контейнеры с дверьми, но двери-телепорты всё равно не будут отслеживаться правильно.

JupiterJour  Offline  Сообщение №170 | Тема: Помощь по моддингу написано: 11 Сентябрь 2012, 11:34


_


Цитата Vita$

Есть туторы которые уходят в сами подробности скриптинга?


На том же modder.ucoz.ru, который посоветовал tundruck73, есть учебник OSFM. Он по Обливиону, но общие принципы насчёт шортов, бегин-гейммодов и прочего те же самые. Большинство функций тоже остались как были, но и отличаются многие, так что на ГЭКК-вики ходить всё равно придётся, как ни крути, больше информацию взять просто негде.

JupiterJour  Offline  Сообщение №171 | Тема: Помощь по моддингу написано: 12 Сентябрь 2012, 11:39


_


Цитата Игрец

Нужно уменьшить расстояние уховосприятия оружия (потрошитель...), так как играть сложно из-за обилия выданных на руки экземпляров. Кто скажет?
Радиус обнаружения уменьшать негоже, сам звук тоже, неплохо-бы скрипт на оружие, дабы оно включалось только в десяти метрах...


Не понял, не нравится жужжание в своих руках или в чужих? И где это там, интересно, "обилие"?
В чужих - меняй звук. Гоже там или нет, но расстояние, с которого начинается затухание и расстояние, на котором затухает полностью, задаются именно в настройках звука.
В своих - хм, можно, наверное, нагромоздить скрипт, заменяющий озвученное оружие на беззвучное в зависимости, скажем, от того... Но надо ли оно? Есть клавиша "R", что ещё надо?

JupiterJour  Offline  Сообщение №172 | Тема: Помощь по моддингу написано: 12 Сентябрь 2012, 16:59


_


Звук Idle Sound. В данном случае WPNRipperIdleLPM. Здесь только выбор какой звук, сам он в Miscellaneous -> Sound. Дистанции в его настройках.

JupiterJour  Offline  Сообщение №173 | Тема: Бункер модмейкеров написано: 18 Сентябрь 2012, 06:19 | Отредактировано: Joopeeter - 18 Сентябрь 2012, 06:58


_


KAIN48, по-хорошему, так это мы все должны поздравлять тебя, как главного библиотекаря.
Фотошоп я не умею,так что рисовал поздравительную открытку в ГЭКК и портретного сходства, как ни мучился, не вышло. Никакого не вышло, если честно. Поэтому на всякий случай: Каин в шляпе.

P.S.
:)

JupiterJour  Offline  Сообщение №174 | Тема: Помощь по моддингу написано: 18 Сентябрь 2012, 06:36


_


Цитата Вис

Даже при взломе двери телепортера всё получилось!


А теперь попробуй взломать её с другой стороны.

JupiterJour  Offline  Сообщение №175 | Тема: ВОПРОСЫ по моддингу написано: 18 Сентябрь 2012, 23:44 | Отредактировано: Joopeeter - 18 Сентябрь 2012, 23:52


_


Кстати да. Хотя ГЭКК-вики и пишет, будто Spread игнорируется и игра использует для макс. разброса вычисленные значения, но когда мне надо было, чтобы непись точнее попадал из уникальной железнодорожной винтовки, я уменьшил её разброс и костыли ложились заметно кучнее. Правда, мин. разброс я там вообще убрал в ноль, но и внешний диаметр круга из костылей значительно уменьшился.

JupiterJour  Offline  Сообщение №176 | Тема: ВОПРОСЫ по моддингу написано: 19 Сентябрь 2012, 00:08


_


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

JupiterJour  Offline  Сообщение №177 | Тема: ВОПРОСЫ по моддингу написано: 19 Сентябрь 2012, 00:30


_


Там на вики в обсуждении пишут, что будто бы для игрока и непися разброс считается по-разному: для игрока по "большой" формуле со всякими там модификаторами, а для непися по "малой"
Spread * fWeaponConditionSpreadX + Min. Spread
Так что, возможно, моё наблюдение для играбельного оружия и не актуально.
Цитата Ipatow

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


Подтверждаю. Бьются. :D

JupiterJour  Offline  Сообщение №178 | Тема: Бункер модмейкеров написано: 19 Сентябрь 2012, 09:22


_


Ничего себе клипчик! Даже не представляю, сколько часов труда ушло на шестиминутный ролик. Автор молодец!

Который уползает на карачках - это из тех, кому хоть хороший ответ, хоть плохой - всё равно пойдёт и спросит по стопятьсотдвадцатьпятому разу (сам знаешь, такие есть).

JupiterJour  Offline  Сообщение №179 | Тема: ВОПРОСЫ по моддингу написано: 19 Сентябрь 2012, 10:04


_


Alisa1992, есть небольшой модик Centered 3P Cam, он центрирует камеру при виде от третьего лица. Там изменены настройки fOverShoulderOffsetPointX и fOverShoulderPosX. Думаю, копать надо в ту сторону.

JupiterJour  Offline  Сообщение №180 | Тема: Помощь по G.E.C.K. написано: 24 Сентябрь 2012, 20:14


_


Цитата rizys-mod

Вроде нельзя удалить в гекк коллизию.


Но зато можно приспособить на пользу делу баг с остающейся на месте коллизией при перемещении с помощью SetPos (ну кто мог подумать, что пригодиться! :) ).
VIPerMX, делается объект Moveble Staic (или Activator, или ещё какой, лишь бы двигался через SetPos) с моделью от "отключаемой" статики. Ставится где-нибудь в укромном месте - до отключения коллизии он не потребуется. Лучше сразу делать его путём дублирования и замены той статики, тогда можно будет просто сместить его подальше по любой одной оси (пусть будет z). В нужный момент настоящая статика дизэйблится:
[RefID настоящей статики].Disable
а на её место скриптово подсовывается фальшивая:
[RefID фальшивой статики].SetPos z [значение координаты z настоящей статики]
При этом коллизия фальшивки остаётся где была, а перемещается только "внешний вид" - это тот самый баг. :)

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





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