Пакость Опубликовано 9 июня, 2012 Опубликовано 9 июня, 2012 Да. Статья конечно информативна, но автора реально заносило в сторону от объекта рассмотрения, что не упрощает восприятие. А теперь по вопросу: Если для Oblivion - то почти никак. Движок игры поддерживает только два режима бота NPC (разумные боты) и Creature (животные) Для NPC модель и скелет тела жёстко фиксированы. Поменять можно только модель головы. Некоторая универсальность есть только у Creature - тут можно как видимую часть бота привязать любую модель, правда с поправкой: животные не могут экипировать на себя что либо, следовательно, если хочешь, чтоб что-то отображалось - это надо "приварить" к модели тела. Моменты: Животные не могут вести диалогов, но, в принципе, посредством OBSE и скриптов можно решить эту проблему ИИ животных ещё тупее, чем у NPC. Если это для тебя важно - ведут себя они неестественно и заставить их делать что-то конкретное намного сложнее, чем NPC. А для Skyrim - незнаю. -------------- Petrovich, Umbakano Jr, спасибо.
Ларьяда Опубликовано 10 июня, 2012 Опубликовано 10 июня, 2012 (изменено) Хочу плагин на готовку. Соответственно, сижу и пытаюсь такой сделать. Предполагается, что у горе-кулинара будет возможность испортить блюдо неправильными ингредиентами. Готовые блюда я хочу запихнуть в раздел зелий, а не ингредиентов - мне кажется, так будет справедливее (от поедания ингредиентов толку чуть). Так вот, дело в следующем. Я хочу, чтобы при употреблении испорченного блюда был шанс (именно шанс!) на негативные последствия (либо подцепить болезнь "Несварение желудка", либо чтобы накладывался временный магический эффект, который можно обозвать "Изжога"). С наложением болезни можно попробовать скрипт в DLS про бритву Хрюна посмотреть - там в конце при поедании сердца гемофилия венценосных накладывалась. Если я разберусь, конечно, в том скрипте... Но надо попробовать. Только там эффект был гарантированный, а мне бы всё-таки шанс хотелось, а не 100% гарантию. Проще говоря, надо что-то такое: персонаж съедает испорченную пищу (выпивает зелье) - на него действуют какие-то обычные для зелий эффекты плюс скрипт-эффект: шанс в момент употребления получить болезнь или временный магический эффект типа проклятья (т. е. "Развеиванием" не лечится). Кто-нибудь может подсказать, как это реализовать можно? (Если вообще возможно, конечно.) На какие мне скриптовые команды внимание обратить? Про наложение болезни - простое AddSpell, как я понимаю. Глянула скрипт в DLS - он маленький и нестрашный (просто магией я пока особо не баловалась). А вот про шанс вопрос остаётся открытым. Буду благодарна за подсказку. Извиняюсь. Кажется, всё проще, чем я думала. Попробую создать уровневый список с нужными мне эффектами, и чтобы скрипт кастовал на игрока один из эффектов этого уровневого списка. Изменено 10 июня, 2012 пользователем Ларьяда
Umbakano Jr Опубликовано 10 июня, 2012 Опубликовано 10 июня, 2012 'Ларьяда' сказал(-а): Хочу плагин на готовку. Соответственно, сижу и пытаюсь такой сделать. Собственно, кулинария неоднократно реализована в различных модах, например - Millstone Farm а "болячки" при поедании некачественной еды/воды реализованы, например, здесь - Basic Primary Needs
Пакость Опубликовано 10 июня, 2012 Опубликовано 10 июня, 2012 Ларьяда, по поводу шанса: В игре существует скриптовая функция рандомной генерации числа. На её основе можно сгенерить "шанс". Как? - покопайся в базовых игровых скриптах, относящихся к вампиризму - помню в них мне попадплись варианты практической реализации. Ну или, если дойдёт: А = Рандом Если А==хх ...вариант0... иначеЕсли А==ху ...вариант1... иначеЕсли А==ух ...вариант3... конецЕсли
Ларьяда Опубликовано 10 июня, 2012 Опубликовано 10 июня, 2012 Спасибо. Про рандом уже сама догадалась и сделала - работает. Ёксель-моксель... Случайно не туда нажала - и всё стёрлось, что я писала в ответе до этого. Вообще другая страница грузиться пошла... Это надо так? Н-да, могу же, когда не хочу... В общем, плагины на готовку, конечно, есть, но я пытаюсь универсальный сделать, допускающий свободную взаимозаменяемость ингредиентов и не завязанный на строгих рецептах. Хотела ещё сделать, чтобы за один раз не могли в одном и том же котелке получиться два разных блюда и чтобы был лимит на количество порций. Пришлось повырезать - стала скрипт в КС копировать, а он банально не влез. Кто ж знал, что там лимит на количество строк кода. Попробую всё-таки придумать, как прикрутить обратно те ограничения, от которых пришлось отказаться. Скрипт скомпилировался, тестовый контейнер исправно отбирает ингредиенты и выдаёт взамен блюда, но не нравится мне, что в одном и том же котелке удаётся одновременно сварганить суп (а то и несколько разных), плов, кашу да ещё и компот. Причём в неограниченных количествах. А с рандомом я по такому принципу сделала: 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%. И оба эффекта могут наложиться одновременно, а может не наложиться вообще ни одного. То самое, что мне было нужно. Правда, с болезнями всё прекрасно работает, а вот чтобы просто плохое заклинание наложилось, которое действует столько-то секунд, а потом прекращается - не вышло. В список заклинаний игрока добавилось вместо того, чтобы подействовать. Значит, будут болезни.
theReaper Опубликовано 11 июня, 2012 Опубликовано 11 июня, 2012 Вообщем такая ситуация: не получается сделать заклинание, работающее по принципу вкл\выкл. Принцип работы, наверное, как и у всех таких заклинаний, есть заклинание, которое добавляет определенную способность, вот сам код скрипта на заклинании: 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 так и висит на нуле. В чем тут ошибка?
Naratzul Опубликовано 11 июня, 2012 Опубликовано 11 июня, 2012 (изменено) А может лучше так? scriptname zxMyScriptLifeDetectSpell Begin ScriptStartEffect player.addspell MyLifeDetectAbil End Begin ScriptEffectFinish player.removespell MyLifeDetectAbil end А нет, не то. Не понял сразу суть скрипта. У тебя ошибка в скрипте. В первом условии переменная написана неправильно. Изменено 11 июня, 2012 пользователем Naratzul
theReaper Опубликовано 11 июня, 2012 Опубликовано 11 июня, 2012 Это я потом вручную писал, в КС все нормально, зайду с компа - отредактирую сообщение. А что будет, если так, как ты написал, сделать?
Umbakano Jr Опубликовано 11 июня, 2012 Опубликовано 11 июня, 2012 'theReaper' сказал(-а): В чем тут ошибка? В elseif... надо использовать просто else...
theReaper Опубликовано 11 июня, 2012 Опубликовано 11 июня, 2012 'Umbakano сказал(-а): В elseif... надо использовать просто else... пробовал не помогло, смысл-то тот же будет. Тут даже такая фишка, что свитч с каджым новым началом скрипта снова становится 0, не знаю почему.
Umbakano Jr Опубликовано 11 июня, 2012 Опубликовано 11 июня, 2012 'theReaper' сказал(-а): ... но не убирается при повторном кастовании закла, как будто переменная switch так и висит на нуле. ... Так и должно быть - каждое кастование вызывает новый экземпляр скрипта, соответственно, заново инициализируется переменная short... Используй функцию dispel...
theReaper Опубликовано 11 июня, 2012 Опубликовано 11 июня, 2012 'Umbakano сказал(-а): Так и должно быть - каждое кастование вызывает новый экземпляр скрипта, соответственно, заново инициализируется переменная short... Используй функцию dispel... что это за функция? А можно как-нить проверить есть ли определенное заклинание у ГГ?все, проблему решил, увидел некое сочитание в статейке, такой вот скрипт получился: scriptname zxMyScriptLifeDetectSpell Begin ScriptEffectStart if (Removespell zxMyLifeDetectAbil == 0) player.addspell zxMyLifeDetectAbil else ;if (Removespell zxMyLifeDetectAbil == 1) player.removespell zxMyLifeDetectAbil endif End
theReaper Опубликовано 12 июня, 2012 Опубликовано 12 июня, 2012 Немного странный вопрос: можно ли изменить скорость выполнения скриптов на квесте? Например, суть такова: есть абилка, которая добавляется при нажатии кнопки <button>, и убирается, когда кнопка отпущенная. Проблема в том, что после нажатии кнопки абилка добавляется только после 2-3х секунд и удаляется, соответственно, тоже с задержкой. Такое ощущение, что скрипт выполняется каждые N-фреймов. Можно ли эту "задержку" как-то убрать?
Пакость Опубликовано 12 июня, 2012 Опубликовано 12 июня, 2012 можно. делаешь в управляющем скрипте а-ля player.каст [на себя] спелл. чё-то в этом роде. theReaper, поставить центральный процессор побыстрее Тут относительно стабилизировать время можно только в сторону задержки. Так что? Держу открытым ворос: Как скомпилировась скрипт 00DiaryQuest в плагине Players Diary? Неужели никто не в курсе?
theReaper Опубликовано 12 июня, 2012 Опубликовано 12 июня, 2012 я тоже думал об этом, а потом диспеллом, но толк вряд ли из этого получится. Я эксперементировал просто с выводом сообщения, они все-равно появляются с задержкой
Umbakano Jr Опубликовано 12 июня, 2012 Опубликовано 12 июня, 2012 'theReaper' сказал(-а): Немного странный вопрос: можно ли изменить скорость выполнения скриптов на квесте? ... Специальная переменная fQuestDelayTime Как использовать - вот пример...
theReaper Опубликовано 12 июня, 2012 Опубликовано 12 июня, 2012 'Umbakano сказал(-а): Специальная переменная fQuestDelayTime Как использовать - вот пример... Помогло. Огромное спасибо!)
che_guevaro Опубликовано 16 июня, 2012 Опубликовано 16 июня, 2012 Напомните пожалуйста команду, с помощью которой можно выбрать рандомное число.
Umbakano Jr Опубликовано 16 июня, 2012 Опубликовано 16 июня, 2012 'che_guevaro' сказал(-а): Напомните пожалуйста команду, с помощью которой можно выбрать рандомное число. Функция GetRandomPercent возвращает случайное число в интервале от 0 до 99 включительно. Чтобы сгенерировать случайное число в заданном диапазоне между мин. и макс. значениями используйте следующий синтаксис: set randVal to min + GetRandomPercent * (max-min) / 99 Источник - OSFM 1
TES-Diesel modding Опубликовано 29 июня, 2012 Опубликовано 29 июня, 2012 Не подскажете, как сделать в локации проигрывание своей музыки? Я знаю, наверняка много было здесь подобных постов, но поискать интернет не позволяет, но очень нужно. Заходите в мой инстаграм @argunov.ceramic, я там посудку делаю :heart:
Naratzul Опубликовано 29 июня, 2012 Опубликовано 29 июня, 2012 '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
TES-Diesel modding Опубликовано 30 июня, 2012 Опубликовано 30 июня, 2012 'Naratzul' сказал(-а): Забросил моддинг облы, но раньше делал так. Писал этот скрипт и вешал его на квест: Большое спасибо за столь оперативный ответ. Ждите "+" Заходите в мой инстаграм @argunov.ceramic, я там посудку делаю :heart:
Пакость Опубликовано 2 июля, 2012 Опубликовано 2 июля, 2012 (изменено) Death The Kid На практике не пробовал, но: создать свой объект типа Sound (находятся в разделе sound окна object window), поставить в нём опции Loop и 2D. Добавить этот объект в интересующую ячейку. Кто в курсе: Надо торговца заставить продать предмет ОДИН РАЗ. т. е. чтоб он продал его и больше никогда в игре этот предмет не появлялся в продаже. вариант через топики диалогов, а не меню торговли - тоже подходит, но я совсем не шарю в области диалогов и квестов т. е. пойму только в виде пошаговой инструкции "для дибилов". .... или где взять справки, как вообще торговцы делаются, модифицируются? Изменено 3 июля, 2012 пользователем Пакость
Санек Опубликовано 4 июля, 2012 Опубликовано 4 июля, 2012 Можно ли как то в CS сделать так чтобы было нельзя выбирать расы из некоторых плагинов в качестве игровых например:ночных эльфов. Убей одного, и тебя назовут убийцей. Убей миллионы, и тебя назовут победителем. Убей всех, и будешь считаться богом.Нас окружает темнота. Мы должны научится двигаться в ней бесшумно и уверенно.Те, кто играют в игры дьявола, рано или поздно обнажают его меч.
Teinaava Опубликовано 5 июля, 2012 Опубликовано 5 июля, 2012 'Санек' сказал(-а): Можно ли как то в CS сделать так чтобы было нельзя выбирать расы из некоторых плагинов в качестве игровых например:ночных эльфов. Можно. В главном окне: Персонажи/Раса/Text Data и сними флажок с "Игровая" Только у компаньонов этой расы пропадёт голос, если флажок снимешь. ============================================= Как сделать, чтобы магия и здоровье не восстанавливались во время сна и ожидания? И ещё нужно сделать так, чтобы нельзя было чинить оружие, когда рядом враги, в том смысле, что даже если враги тебя не видят (по принципу ожидания, чтобы появлялось сообщение "вы не можете чинить оружие, когда рядом враги")
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти