Ворон Опубликовано 6 июля, 2008 Жалоба Поделиться Опубликовано 6 июля, 2008 Распишу, как протестирую... Ссылка на комментарий Поделиться на другие сайты Поделиться
Ворон Опубликовано 6 июля, 2008 Автор Жалоба Поделиться Опубликовано 6 июля, 2008 (изменено) И так начинаем разбирать этот момент... сразу скажу, что нам нужен скриптовый расширитель OBSE с версиями файлов 15.3.0.0 или 0015 (не бета), скачать его можно отсюда... http://obse.silverlock.orgРазбирать установку будете в поиске или гугле... Тем более кто в ладах с буржуйским сами разбирутся... Все что нам нужно мы имеет, к сожалению нормально работающей функции я так и не нашел, поэтому будем лечить зубы через ж***)))... Славо богу жо... у нас с этими делами знакомая... И техника забугорская у нас для этого дела есть, то бишь OBSE, так вот... Теория... Дело в том, что совсем недавно в OBSE 15ой версии появились команды и функции позволяющие контролировать и управлять горячими клавишами... Всего таких функций 3... это GetHotkeyItem - Возвращает RefId предмета или заклинания помещенного на одну из 8 стандартных игровых клавишь... то есть по умолчанию цифры с 1 по 8 (ID вещи или заклинания:Ref) GetHotkeyItem [Горячая клавиша]:ShortSetHotkeyItem - Устанавливает на указанную горячую клавишу, указанный предмет или заклинание (Ничего не возвращает) SetHotkeyItem [Горячая клавиша]:Short [iD вещи или заклинания]:RefClearHotkey - "Стирает" указанную горячую клавишу... То есть делает ее пустой... (Ничего не возвращает) ClearHotkey [Горячая клавиша]:Short Использовать в скрипте мы будет все три... Так же мы будем использовать команды контроля клавиатры и ввода... GetControl - Возвращает DX код нажатой клавиши, которые установлены в управлении игроком, для последующего его использования (DX код:Long) GetControl [Номер горячей клавиши*]:ShortTapKey - Нажимает "за игрока" клавишу, чей DX код мы используем (Ничего не возвращает) TapKey [DX код]:Long 1* Использовать мы будем только первый слот горячей клавиши, который имеет код 18, то есть команда будет выглядеть так "GetControl 18" Теорию разобрали... Изменено 6 июля, 2008 пользователем Ворон Ссылка на комментарий Поделиться на другие сайты Поделиться
Ворон Опубликовано 6 июля, 2008 Автор Жалоба Поделиться Опубликовано 6 июля, 2008 Теперь теория механики и процесса работы... Все элементарно просто... Для того, чтобы заставить игрока использовать то или иное заклинание, то есть, чтобы оно само у него "выбралось" Мы будет делать так... 1. Сначало нам нужно определиться какое заклинание мы будем "устанавливать" для каста игроку, пусть его ID будет [iD необходимого спелла]2. Мы по срабатыванию определенного условия будем добавлять игроку это заклинание, если он его не имеет... Если имеет перепрыгиваем на следующий пункт3. Мы создаем переменные которые будут хранить [iD бывшей вещи на г.к.]:Ref, [Код клаваши вызова г.к]:Long, сам код клавиши "управления" первой горячей клавишей мы знаем... Это 184. Мы будем заносить в [iD бывшей вещи на г.к.] ID предмета или спелла на первой горячей клавишей, чтобы не создавать неудобства игроку своим "невидимым" выворачиванием движка на изнанку, чтобы потом возвратить его на место... Ведь нам требуется всего 2-3 фрейма, чтобы выполнить желаемое.5. Мы заносим [iD необходимого спелла] в первую горячую клавишу и в следующий фрейм мы вызываем ее командой TapKey с [Код клаваши вызова г.к], который мы определяем зарание используя переменую [Код клаваши вызова г.к], которую определяем командой GetControl 18.6. Мы устанавливаем старый предмет из временного хранилища, переменной [iD бывшей вещи на г.к.] в первый слот повторяющейся командой SetHotkeyItem.7. Все... У нас нетронутый набор горячих клавиш установленных игроком и необходимый выбранный спелл... Все данные манипуляции действуют только на игрока, учтите... Ссылка на комментарий Поделиться на другие сайты Поделиться
Ворон Опубликовано 6 июля, 2008 Автор Жалоба Поделиться Опубликовано 6 июля, 2008 Пример скрипта ScriptName SealQuestScript Float fQuestDelayTime;Ref SealCasterReference - не обращайте внимания:);Ref SealCasterMark - аналогично ^_^Ref TempHotKeyLong FirstHotKeyCode Begin GameMode Set fQuestDelayTime To 0.001 If ( SealCode == 3 ) && ( SealActivate == 1 ) Set TempHotKey To GetHotKeyItem 1 SetHotKeyItem 1 0RaikiriJutsu Set FirstHotKeyCode To GetControl 18 TapKey FirstHotKeyCode SetHotKeyItem 1 TempHotKey Set SealCode To 0EndIf If ( SealCode == 0 ) && ( SealActivate == 1 ) Set SealActivate To 0EndIf End Begin MenuMode Return End Ссылка на комментарий Поделиться на другие сайты Поделиться
Ворон Опубликовано 6 июля, 2008 Автор Жалоба Поделиться Опубликовано 6 июля, 2008 все...) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти