Цитата: (Scripter @ 20.01.07 - 23:20)
Возможно опять вопрос не в тему, но все же спрошу: есть ли функции, возвращающий значения характеристик персонаж(сила, ловкость и т.д.)? Если есть опишите ее. Или опишите как это сделать другим образом.
Функция
GetActorValue StatName, где StatName - это характеристика или навык игрока. Возвращает текущее значение характеристики или навыка.
Функция
GetBaseActorValue StatName - возвращает базовое значение характеристики или навыка.
Функция
SetActorValue StatName value - устанавливает базовое значение value характеристики или навыка.
Функция
ForceActorValue StatName value - устанавливает текущее значение value характеристики или навыка.
Функция
ModActorValue StatName value - изменяет характеристику или навык персонажа на величину value. Может принимать отрицательные значения.
Список StatName можно посмотреть
тут.Пример:
Код:
set var to Player.GetActorValue Strength
Записываем в переменную var текущее значение силы игрока.
Код:
Player.ModActorValue Health 10
Увеличивает текущее здоровье игрока на 10 едениц.
добавлено vitalka - 21.01.07 - 15:48Выдержка из моего туториальчика по созданию себе помошника. Полностью туториал можно почитать
тут.Код:
ScriptName MyGirlScript
short Button; сюда будем заносить номер нажатой кнопки
short MyVar; потом объясню
begin onActivate
Поле
OnActivate запускается тогда, когда объект активируют. В данном случае,когда мы подходим к персонажу и нажимаем клавишу пробел. Далее проверим, жив ли наш персонаж. А то неудобно както с трупом разговаривать. Для этого существует функция
GetDead. Эта функция возвращает 1, если наш объект дохлый.
Код:
if ( MyGirlRef.GetDead <= 0 )
Вобщем, если наш объект ( MyGirlRef - имя, которое мы вводили в Render Window) не дохлый (GEtDead не равна еденице), то делаем следующее:
Код:
MessageBox "Любимая... " "пойдем со мной" "подожди здесь" "сходи прогуляйся" "беги домой" "а что у тебя в карманах?"
Функция
MessageBox выводит на экран окошко с кнопками. Содержимое первых кавычек - это заголовок окна. Содержимое последующих кавычек - это собственно кнопки, на которые можно нажимать.
Код:
Set MyVar to 1; заносим еденицу в MyVar
else; а иначе, если персонаж дохлый (GetDead = 1, т.е больше нуля)
Message "Твоя девушка померла."
Функция
Message, не выводит на экран никакого окошка а пишет сообщение в верхнем левом углу экрана. (типа сообщения Quicksave, когда мы жмем на F5)
Код:
Set MyVar to -1
Return
Return означает дальнейшее прекращение обработки скрипта.
Код:
endif;команда if всегда так должна заканчиваться
end onActivate; команда onActivate - тоже ( можно просто end)
begin GameMode
if ( MyVar == 1 )
Т.е если наш персонаж жив и мы нажали какую-либо кнопку (см. выше), то идем дальше:
Код:
Set Button to GetButtonPressed
Записываем номер нажатой кнопки в нашу переменную Button. Функция
GetButtonPressed возвращает значение нажатой клавиши. Нумерация кнопок начинается с нуля. Т.е если мы нажали первую кнопку, то функция вернет значение 0.
Код:
if ( Button == 0 ); если мы нажали первую кнопку
SetIgnoreFriendlyHits 1
Наверное, каждый попадал в такую ситуацию, когда в бою случайно задевал за какого-нибудь дружественного персонажа, после чего он набрасывался на вас с кулаками. Так вот, функция
SetIgnoreFriendlyHits позволит использовать вашего помощника в качестве груши.
Код:
SetOwnership
Функция
SetOwnership устанавливает принадлежность предмета к собственности NPC или фракции. Т.е. теперь помошник будет принадлежать вам. (есть некоторые сомнения по описанию этой функции. Если я не прав, прошу сообщить в этой теме)
Код:
AddScriptPackage "MyGirlPackageFollow"
Добавляет наш пакет, который мы составляли раннее.
Код:
StopWaiting MyGirlPackageFollow
Если предыдущая команда нашему персонажу была, например,"подожди здесь", то этот пакет был приостановлен. Теперь мы его запускаем заново и приостанавливаем другие два наших пакета:
Код:
Wait MyGirlPackageRun
Wait MyGirlPackageWander
Set MyVar to -1
Можно, в принципе, обойтись и без этой переменной, но так мы экономим время обработки скрипта, когда мы не жмем ни на какие кнопки.
Код:
Return
elseif ( Button == 1 )
Wait MyGirlPackageFollow
Wait MyGirlPackageRun
Wait MyGirlPackageWander
Set MyVar to -1
Return
А иначе, если нажата вторая кнопка, приостановить все пакеты. Персонаж будет стоять на месте.
Код:
elseif ( Button == 2 )
AddScriptPackage "MyGirlPackageWander"
StopWaiting MyGirlPackageWander
Wait MyGirlPackageFollow
Wait MyGirlPackageRun
Set MyVar to -1
Return
elseif ( Button == 3 )
AddScriptPackage "MyGirlPackageRun"
StopWaiting MyGirlPackageRun
Wait MyGirlPackageFollow
Wait MyGirlPackageWander
Set MyVar to -1
Return
Ну, тут все понятно - запустить один пакет, оба других приостановить.
Код:
elseif (Button == 4 )
KarmanRef.Activate player 1
Если нажата кнопка 5 - активировать объект KarmanRef, т.е наш сундук.
Код:
Set MyVar to -1
Return
endif
endif
end GameMode
добавлено vitalka - 21.01.07 - 16:01Сообщение отредактировал vitalka - 27.01.07 - 21:19