- •Туториал о создании компаньонов-животных V.2.0
- •1. Создание животного
- •2. Создание пакетов
- •3. Размещение животного в мире (с Ref)
- •4. Скрипт на призыв
- •5. Заклинание призыва
- •6. Скрипт основной
- •7. Добавляем в меню пункт «Установить дом»
- •8. Добавление визуальных эффектов
- •9. Даем возможность компаньону носить наши вещи
6. Скрипт основной
Теперь у нас все готово для того, чтобы написать основной скрипт, на котором фактически и будет держаться наш плагин. Итак, идем Gameplay>Edit Scripts… В редакторе скриптов выбираем Script>New и вставляем такой вот скрипт:
ScriptName IgorRaCBBScript; имя скрипта
short Button; объявляем короткую целочисленную переменную Button (кнопки из меню)
short MyVar; объявляем короткую целочисленную переменную MyVar
begin onActivate; начало работы скрипта происходит после активации объекта на
; который он повешен, в данном случае мы будем вешать его на компаньона
player.addspell IgorRaSpellBlackBearCall; добавление заклинания призыва игроку
if ( IgorRaCompanionBlackBearRef.GetDead <= 0 ); проверка, жив ли компаньон
MessageBox "Мой верный друг... " "пойдем со мной" "подожди здесь" "прогуляйся" "беги домой"; выводим на экран меню управления компаньоном. Содержимое первых
; кавычек – это заголовок окна. Содержимое последующих кавычек - это собственно
; кнопки, на которые можно нажимать
Set MyVar to 1
else ( IgorRaCompanionBlackBearRef.GetDead = 1 ); если компаньон мертв, тогда…
Message "Твой друг умер."; выводится сообщение в верхнем левом углу экрана
player.removespell IgorRaSpellBlackBearCall; удаление заклинания призыва у игрока
Set MyVar to -1
Return; означает прекращение обработки скрипта
endif
end onActivate
begin GameMode; блок который проигрывается все время
if ( MyVar == 1 )
Set Button to GetButtonPressed; проверка на нажатые кнопки меню
if ( Button == 0 ); нажата первая кнопка меню
SetIgnoreFriendlyHits 1; функция игнорирования компаньоном ваших ударов по нему
SetOwnership
AddScriptPackage "IgorRaCompanionBlackBearFollow"; добавление пакета АИ
StopWaiting IgorRaCompanionBlackBearFollow; прекращение остановки пакета, если
; он был остановлен раннее
Wait IgorRaCompanionBlackBearRun; остановка пакета Run, если он был запущен
Wait IgorRaCompanionBlackBearWander; остановка пакета Wander, если он был
; запущен
Set MyVar to -1
Return
elseif ( Button == 1 ); нажата вторая кнопка меню
Wait IgorRaCompanionBlackBearFollow
Wait IgorRaCompanionBlackBearRun
Wait IgorRaCompanionBlackBearWander
Set MyVar to -1
Return
elseif ( Button == 2 ); нажата третья кнопка меню
AddScriptPackage "IgorRaCompanionBlackBearWander"
StopWaiting IgorRaCompanionBlackBearWander
Wait IgorRaCompanionBlackBearFollow
Wait IgorRaCompanionBlackBearRun
Set MyVar to -1
Return
elseif ( Button == 3 ); нажата четвертая кнопка меню
AddScriptPackage "IgorRaCompanionBlackBearRun"
StopWaiting IgorRaCompanionBlackBearRun
Wait IgorRaCompanionBlackBearFollow
Wait IgorRaCompanionBlackBearWander
Set MyVar to -1
Return
endif
endif
end GameMode
Жирным выделены те элементы, которые должны быть готовы перед написанием скрипта, иначе вы не сможете его сохранить. Будут выдаваться сообщения, что объекты на которые ссылается скрипт не существуют. Это прежде всего Ref-ссылка на копию компаньона, три созданные нами раннее пакета (их ID), и ID заклинания призыва.
И последний штрих. Нам нужно повесить скрипт на компаньона.
В окне редактирования нашего компаньона в окошке Script выбираем наш основной скрипт.