• Прежде, чем задать вопрос, пожалуйста, убедитесь, что такой вопрос не задавался раньше. Старайтесь описать суть вопроса как можно подробней. • Прежде, чем опубликовать ответ на вопрос, пожалуйста, убедитесь, что обладаете необходимыми для этого знаниями. Старайтесь cформулировать суть ответа как можно лаконичней. • При желании ответить в приватном порядке, пожалуйста, воспользуйтесь ЛС. • При желании поблагодарить ответившего, пожалуйста, воспользуйтесь кнопкой "+" полезного сообщения.
Сообщения, не относящиеся к вопросам по скриптам Papyrus, ответам на них или уточнениям, являются оффтопом и могут быть удалены.
Красное солнце Есть вопросы по скриптам Papyrus? Пиши не в ЛС, а в эту тему.
Тоже пробовал. Строка: Debug.MessageBox(tgActor.GetLeveledActorBase().GetName() + " предпочитает носить обувь на каблуках") Всё равно выдает кракозябры.
Тоже пробовал. Строка:Debug.MessageBox(tgActor.GetLeveledActorBase().GetName() + " предпочитает носить обувь на каблуках") Всё равно выдает кракозябры.
Что-то я не уверен, что Debug функции - крутой способ выводить сообщения пользователю. Разве какие-то ванильные скрипты так делают? Для этого есть Messages. У них никаких проблем с кодировками и их намного легче переводить на другие языки (чем скомпилированный скрипт), если кому-то понадобится. И имя конкретного NPC в них можно вставить без SKSE функций.
Изменение репутации для пользователя Multigone
MultigoneOffline
Сообщение №1296
написано: 9 ноября 2014, 18:07
| Отредактировано: Multigone - 9 ноября 2014, 18:09
Dsion, зато в них можно выводить почти любые переменные с помощью as string. Плюс, в моде не надо создавать лишние формы MESG... Так что, думаю, да, неплохой.
Доброго времени суток. Понимаю что уже не первый спрашиваю, но по тех. причинам не могу всю тему просмотреть. Так что извините... Столкнулся с проблемой пытаясь изменить скрипт с функциями из SKSE. При попытке компиляции выдает ошибку что незнает такие функции. Кит, SKSE, патч игры совпадают (последнее незнаю нужно ли). Подскажите как правильно провести данную последовательность? Только просьба подробно что куда кидать, как запускать, через что и т.д.
Компилирую через notepad , который использует стандартный ассамблер. Пути прописал правильно - обычные скрипты получается скомпилировать.
А пытаюсь подружить расу Demonica с Better Vampirism от Brehanin
Netico, скорей всего, не до конца установлен SKSE.
3. Copy the .psc files in Data\Scripts\Source\ into the Data\Scripts\Source\ folder of your installation. The .psc files are only needed if you have the CreationKit installed and intend to create or compile Papyrus scripts.
Multigone, не до конца это как? Что подразумевается? / Скопировать исходники самого SKSE? Меня беспокоит что они значительно меньше стандартных скриптов. Или это ничего?
Офигел что-ле?! Да твой балбес-отец еще под стол пешком ходил, когда я уже ЭВМ программировала! Да я тебе MSDN читала, когда ты еще одним только молоком питался! Да я первого "Принца" за 20 минут!..
Короче, не хватало еще, чтоб мне сутки нужны были на такую хрень!
mayor, та не гони, чел. За сутки даже моя бабушка с этим разобралась бы. Ты тоже справишься.
я вообще не понимаю в этих скриптах.в базовых покапался,мне это не помогло..устал искать уже
Добавлено (29 Ноября 2014, 13:39) --------------------------------------------- мне вообще скрипты не нужны в моде,вот лишь этот один.все в него упирается.
Всем привет) Давно не заглядывал на Модгеймз, но возник небольшой вопрос. Захотел сделать невозможность открытия замков определенного уровня при отсутствии нужного перка. В целом, все работает, но есть одна загвоздка: не знаю, как полностью отменить взаимодействие с запертой дверью. Попробовал BlockActivation(), но в этом случае показывается окно, где предлагается просто выбрать нужное действие, т.е. открыть замок и т.п., и дальше открывается картинка взлома замка, а нужно, чтобы при попытке активации взлом был в принципе невозможен (как в случае, когда требуется ключ, например).
If akActor == Game.GetPlayer() If akTargetRef.IsLocked() == 1 If akTargetRef.GetLockLevel() <= 1 && akActor.HasPerk(aaaPerk) == 0 akTargetRef.BlockActivation() EndIf EndIf EndIf
MagicalDagger, можно поставить перед дверью коллизию и отключить ее, когда она будет не нужна. Это годится для какой-то конкретной двери или дверей, но это не глобальное решение вопроса.
Кто к нам с чем и за чем, тот от того и того... ʘ_ʘ <a class="link" href="http://modgames.net/load/0-0-200451-0-17" rel="nofollow" target="_blank"> border="0" alt=""/</a>
Изменение репутации для пользователя MagicalDagger
VALKNUT, требуется именно глобальное решение. Помню, подобный момент был реализован в старой версии Skyrim Balanced Mode, но у меня только последняя, а там этот момент убран. Так что реализовать как-то точно можно, вопрос - как.
Они нужны для работы скриптов и игры - ну да но игра и без них будет запускаться, только вот все что написано в игре на скриптах, квесты события в игре могут не работать корректно, что приведет к вылетам из игры, а чего вы спрашиваете есть конкретная проблема или цель ? опишите !
Изменение репутации для пользователя PhysxN
PhysxNOffline
Сообщение №1315
написано: 30 ноября 2014, 12:00
| Отредактировано: PhysxN - 30 ноября 2014, 12:04
Они нужны для работы скриптов и игры - ну да но игра и без них будет запускаться,
Нет, Source - это исходники скриптов, игра их даже не использует. Они нужны для мододелов. Игра использует скрипты в формате pex, в Source лежат декомпилированные скрипты в формате psc, которые можно открыть любым текстовым редактором.
Lantainiell, исходники скриптов (*.psc файлы из Source) вообще не нужны игре. При установке CK туда записывается что-то около 13000 файлов. 76 из них нужны, если Вы собираетесь создавать новые скрипты в CK. А остальные - только если Вы хотите посмотреть/изменить скрипты на ванильных квестах и объектах.
А скомпилированные скрипты (*.pex из папки Scripts) нужны самой игре. Но они чаще всего упакованы в BSA. Во всяком случае, все ванильные упакованы. А некоторые авторы модов могут и не упаковывать.
{This is a temp script to get the art working right for the flame atronach.} ;===============================================
import utility import form
;===============================================
Actor selfRef VisualEffect Property AtronachFlameTrail Auto Armor Property AtronachFlameDeadSkin Auto EffectShader Property AtronachFlameDeathFXS Auto EffectShader Property AtronachUnsummonDeathFXS Auto explosion property AtronachFlameDeathExplosion auto int atronachHealth
Event OnEffectFinish(Actor akTarget, Actor akCaster) AtronachFlameTrail.Stop(selfRef) ENDEVENT
EVENT onDying(actor myKiller) atronachHealth = selfRef.GetAV("Health") as int if atronachHealth > 0 ; debug.trace("flame health > 0") AtronachFlameTrail.Stop(selfRef) AtronachUnsummonDeathFXS.Play(selfRef) elseIf atronachHealth <= 0 wait(3.0) ; debug.trace("flame health <= 0") AtronachFlameDeathFXS.Play(selfRef) wait(0.5) selfRef.placeAtMe(AtronachFlameDeathExplosion) wait(0.1) AtronachFlameTrail.Stop(selfRef) selfRef.EquipItem(AtronachFlameDeadSkin) wait(1) AtronachFlameDeathFXS.Stop(selfRef) endif ENDEVENT
При смерти атронаха происходит его взрыв и смена скина на скин мёртвого атронаха. Проблема в том, что скрипт работает только в том случае, если атронаху установлен фиксированный уровень. Если же я ставлю ему галку повышать уровень вместе с уровнем игрока, то этот скрипт не работает: не происходит взрыва и смены скина. Скорее всего это связано с событием onDying. Что там за особенности такие, если уровень персонажа автоповышается? Зачем там проверяется: atronachHealth = selfRef.GetAV("Health") as int if atronachHealth > 0 ?
Форум » TES V: Skyrim » Мастерская » Вопросы по скриптам Papyrus (О скриптах Papyrus (Skyrim). Скриптеры не проходите мимо!)