Перейти к содержанию

Рекомендуемые сообщения

Опубликовано
Да. Статья конечно информативна, но автора реально заносило в сторону от объекта рассмотрения, что не упрощает восприятие.
А теперь по вопросу:
Если для Oblivion - то почти никак. Движок игры поддерживает только два режима бота NPC (разумные боты) и Creature (животные)
Для NPC модель и скелет тела жёстко фиксированы. Поменять можно только модель головы.
Некоторая универсальность есть только у Creature - тут можно как видимую часть бота привязать любую модель, правда с поправкой: животные не могут экипировать на себя что либо, следовательно, если хочешь, чтоб что-то отображалось - это надо "приварить" к модели тела.
Моменты:
Животные не могут вести диалогов, но, в принципе, посредством OBSE и скриптов можно решить эту проблему
ИИ животных ещё тупее, чем у NPC. Если это для тебя важно - ведут себя они неестественно и заставить их делать что-то конкретное намного сложнее, чем NPC.
А для Skyrim - незнаю.
--------------
Petrovich, Umbakano Jr, спасибо.
Опубликовано (изменено)
Хочу плагин на готовку. Соответственно, сижу и пытаюсь такой сделать.
Предполагается, что у горе-кулинара будет возможность испортить блюдо неправильными ингредиентами. Готовые блюда я хочу запихнуть в раздел зелий, а не ингредиентов - мне кажется, так будет справедливее (от поедания ингредиентов толку чуть). Так вот, дело в следующем. Я хочу, чтобы при употреблении испорченного блюда был шанс (именно шанс!) на негативные последствия (либо подцепить болезнь "Несварение желудка", либо чтобы накладывался временный магический эффект, который можно обозвать "Изжога").
С наложением болезни можно попробовать скрипт в DLS про бритву Хрюна посмотреть - там в конце при поедании сердца гемофилия венценосных накладывалась. Если я разберусь, конечно, в том скрипте... Но надо попробовать. Только там эффект был гарантированный, а мне бы всё-таки шанс хотелось, а не 100% гарантию.
Проще говоря, надо что-то такое: персонаж съедает испорченную пищу (выпивает зелье) - на него действуют какие-то обычные для зелий эффекты плюс скрипт-эффект: шанс в момент употребления получить болезнь или временный магический эффект типа проклятья (т. е. "Развеиванием" не лечится).
Кто-нибудь может подсказать, как это реализовать можно? (Если вообще возможно, конечно.) На какие мне скриптовые команды внимание обратить?


Про наложение болезни - простое AddSpell, как я понимаю. Глянула скрипт в DLS - он маленький и нестрашный (просто магией я пока особо не баловалась). А вот про шанс вопрос остаётся открытым. Буду благодарна за подсказку.


Извиняюсь. Кажется, всё проще, чем я думала. Попробую создать уровневый список с нужными мне эффектами, и чтобы скрипт кастовал на игрока один из эффектов этого уровневого списка. Изменено пользователем Ларьяда
Опубликовано
'Ларьяда' сказал(-а):

Хочу плагин на готовку. Соответственно, сижу и пытаюсь такой сделать.

Собственно, кулинария неоднократно реализована в различных модах, например - Millstone Farm
а "болячки" при поедании некачественной еды/воды реализованы, например, здесь - Basic Primary Needs
Опубликовано
Ларьяда, по поводу шанса: В игре существует скриптовая функция рандомной генерации числа. На её основе можно сгенерить "шанс". Как? - покопайся в базовых игровых скриптах, относящихся к вампиризму - помню в них мне попадплись варианты практической реализации.
Ну или, если дойдёт:
А = Рандом
Если А==хх
...вариант0...
иначеЕсли А==ху
...вариант1...
иначеЕсли А==ух
...вариант3...
конецЕсли
Опубликовано
Спасибо. Про рандом уже сама догадалась и сделала - работает.
Ёксель-моксель... Случайно не туда нажала - и всё стёрлось, что я писала в ответе до этого. Вообще другая страница грузиться пошла... Это надо так? Н-да, могу же, когда не хочу...
В общем, плагины на готовку, конечно, есть, но я пытаюсь универсальный сделать, допускающий свободную взаимозаменяемость ингредиентов и не завязанный на строгих рецептах. Хотела ещё сделать, чтобы за один раз не могли в одном и том же котелке получиться два разных блюда и чтобы был лимит на количество порций. Пришлось повырезать - стала скрипт в КС копировать, а он банально не влез. Кто ж знал, что там лимит на количество строк кода.
Попробую всё-таки придумать, как прикрутить обратно те ограничения, от которых пришлось отказаться. Скрипт скомпилировался, тестовый контейнер исправно отбирает ингредиенты и выдаёт взамен блюда, но не нравится мне, что в одном и том же котелке удаётся одновременно сварганить суп (а то и несколько разных), плов, кашу да ещё и компот. Причём в неограниченных количествах.

А с рандомом я по такому принципу сделала:

Begin scripteffectstart

set var to GetRandomPercent
if var> 74
addspell [болячка 1]
endif
set var to getrandompercent
if var > 49
addspell [болячка 2]
endif
End

Как раз и получится, что в первом случае шанс около 25%, а во втором - 50%. И оба эффекта могут наложиться одновременно, а может не наложиться вообще ни одного. То самое, что мне было нужно.
Правда, с болезнями всё прекрасно работает, а вот чтобы просто плохое заклинание наложилось, которое действует столько-то секунд, а потом прекращается - не вышло. В список заклинаний игрока добавилось вместо того, чтобы подействовать. Значит, будут болезни.
Опубликовано
Вообщем такая ситуация: не получается сделать заклинание, работающее по принципу вкл\выкл. Принцип работы, наверное, как и у всех таких заклинаний, есть заклинание, которое добавляет определенную способность, вот сам код скрипта на заклинании:

scriptname zxMyScriptLifeDetectSpell

short switch

Begin ScriptEffectStart

if (switch == 0)
player.addspell zxMyLifeDetectAbil
set switch to 1

elseif (switch == 1)
player.removespell zxMyLifeDetectAbil
set switch to 0
endif

End


так вот, во время игры, абилка добавляется, но не убирается при повторном кастовании закла, как будто переменная switch так и висит на нуле.
В чем тут ошибка?
Опубликовано (изменено)
А может лучше так?
scriptname zxMyScriptLifeDetectSpell

Begin ScriptStartEffect
player.addspell MyLifeDetectAbil
End

Begin ScriptEffectFinish
player.removespell MyLifeDetectAbil
end

А нет, не то. Не понял сразу суть скрипта.

У тебя ошибка в скрипте. В первом условии переменная написана неправильно. Изменено пользователем Naratzul
Опубликовано
Это я потом вручную писал, в КС все нормально, зайду с компа - отредактирую сообщение.
А что будет, если так, как ты написал, сделать?
Опубликовано
'Umbakano сказал(-а):

В elseif... надо использовать просто else...

пробовал не помогло, смысл-то тот же будет.

Тут даже такая фишка, что свитч с каджым новым началом скрипта снова становится 0, не знаю почему.
Опубликовано
'theReaper' сказал(-а):

...
но не убирается при повторном кастовании закла, как будто переменная switch так и висит на нуле.
...

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

Используй функцию dispel...
Опубликовано
'Umbakano сказал(-а):

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

Используй функцию dispel...


что это за функция?
А можно как-нить проверить есть ли определенное заклинание у ГГ?

все, проблему решил, увидел некое сочитание в статейке, такой вот скрипт получился:

scriptname zxMyScriptLifeDetectSpell

Begin ScriptEffectStart

if (Removespell zxMyLifeDetectAbil == 0)
player.addspell zxMyLifeDetectAbil

else ;if (Removespell zxMyLifeDetectAbil == 1)
player.removespell zxMyLifeDetectAbil

endif

End
Опубликовано
Немного странный вопрос: можно ли изменить скорость выполнения скриптов на квесте?
Например, суть такова: есть абилка, которая добавляется при нажатии кнопки <button>, и убирается, когда кнопка отпущенная. Проблема в том, что после нажатии кнопки абилка добавляется только после 2-3х секунд и удаляется, соответственно, тоже с задержкой. Такое ощущение, что скрипт выполняется каждые N-фреймов. Можно ли эту "задержку" как-то убрать?
Опубликовано
можно. делаешь в управляющем скрипте а-ля player.каст [на себя] спелл. чё-то в этом роде.

theReaper, поставить центральный процессор побыстрее :turned:
Тут относительно стабилизировать время можно только в сторону задержки.

Так что? Держу открытым ворос:
Как скомпилировась скрипт 00DiaryQuest в плагине Players Diary?
Неужели никто не в курсе?
Опубликовано
я тоже думал об этом, а потом диспеллом, но толк вряд ли из этого получится. Я эксперементировал просто с выводом сообщения, они все-равно появляются с задержкой
Опубликовано
&#39;theReaper&#39; сказал(-а):

Немного странный вопрос: можно ли изменить скорость выполнения скриптов на квесте?
...

Специальная переменная fQuestDelayTime
Как использовать - вот пример...
Опубликовано
&#39;che_guevaro&#39; сказал(-а):

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

Функция GetRandomPercent возвращает случайное число в интервале от 0 до 99 включительно.
Чтобы сгенерировать случайное число в заданном диапазоне между мин. и макс. значениями используйте
следующий синтаксис:
set randVal to min + GetRandomPercent * (max-min) / 99

Источник - OSFM
  • Нравится 1
  • 2 недели спустя...
Опубликовано
Не подскажете, как сделать в локации проигрывание своей музыки?
Я знаю, наверняка много было здесь подобных постов, но поискать интернет не позволяет, но очень нужно.
Заходите в мой инстаграм @argunov.ceramic, я там посудку делаю  :heart:
 
 
Опубликовано
&#39;Death сказал(-а):

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

Забросил моддинг облы, но раньше делал так. Писал этот скрипт и вешал его на квест:

scn MusicSCR
float fQuestDelayTime
float MusicTimer
begin GameMode

if Player.IsInInterior == 1
if Player.IsInCombat == 0
if (player.GetInCell ID == 1); здесь указывай ID локации
set MusicTimer to MusicTimer - GetSecondsPassed
if ( MusicTimer < 0 )
set MusicTimer to N; N - число длительности мелодии в секундах
StreamMusic "Data/Music/Folder/Name.mp3"; путь до музыки
endif
endif
else
set MusicTimer to -1
endif
else
set MusicTimer to -1
endif


end
begin MenuMode 1007
set MusicTimer to -1
end
begin MenuMode 1
set MusicTimer to -1
end
begin MenuMode 1013
set MusicTimer to -1
end
  • Нравится 1
Опубликовано
&#39;Naratzul&#39; сказал(-а):

Забросил моддинг облы, но раньше делал так. Писал этот скрипт и вешал его на квест:

Большое спасибо за столь оперативный ответ. Ждите "+" ;)
Заходите в мой инстаграм @argunov.ceramic, я там посудку делаю  :heart:
 
 
Опубликовано (изменено)
Death The Kid
На практике не пробовал, но:
создать свой объект типа Sound (находятся в разделе sound окна object window), поставить в нём опции Loop и 2D.
Добавить этот объект в интересующую ячейку.
 
Кто в курсе: Надо торговца заставить продать предмет ОДИН РАЗ.
т. е. чтоб он продал его и больше никогда в игре этот предмет не появлялся в продаже.
вариант через топики диалогов, а не меню торговли - тоже подходит, но я совсем не шарю в области диалогов и квестов т. е. пойму только в виде пошаговой инструкции "для дибилов".
....
или где взять справки, как вообще торговцы делаются, модифицируются? Изменено пользователем Пакость
Опубликовано
Можно ли как то в CS сделать так чтобы было нельзя выбирать расы из некоторых плагинов в качестве игровых например:ночных эльфов.
Убей одного, и тебя назовут убийцей. Убей миллионы, и тебя назовут победителем. Убей всех, и будешь считаться богом.
Нас окружает темнота. Мы должны научится двигаться в ней бесшумно и уверенно.
Те, кто играют в игры дьявола, рано или поздно обнажают его меч.
Опубликовано
&#39;Санек&#39; сказал(-а):

Можно ли как то в CS сделать так чтобы было нельзя выбирать расы из некоторых плагинов в качестве игровых например:ночных эльфов.
Можно. В главном окне: Персонажи/Раса/Text Data и сними флажок с "Игровая" Только у компаньонов этой расы пропадёт голос, если флажок снимешь.

=============================================

Как сделать, чтобы магия и здоровье не восстанавливались во время сна и ожидания? И ещё нужно сделать так, чтобы нельзя было чинить оружие, когда рядом враги, в том смысле, что даже если враги тебя не видят (по принципу ожидания, чтобы появлялось сообщение "вы не можете чинить оружие, когда рядом враги")

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
×
×
  • Создать...