Вселенная Аллодов
 
: Главная :: Форум :: Файлы :: Галерея :: Аллоды Онлайн :: ЗвА :: ЛА :: ПЗ :: А2 :: А1 :
Главное меню
Игры Nival'а
Друзья и партнеры
Скрипт Проклятых Земель :: Проклятые Земли

Скрипт "Проклятых Земель" (далее СПЗ) представляет собой простой язык программирования. К сожалению, как уже было сказано, скриптовые программы недоступны, и мы можем довольствоваться лишь отдельными вызовами команд. По этой причине описание СПЗ здесь не полно и не слишком последовательно.


Итак, некоторые общие сведения об СПЗ: для выполнения каких-либо действий применяется вызов процедуры или функции в виде имя_команды ( [параметр_1] [,параметр_2] [...] ) . В качестве параметров могут выступать как непосредственные значения, так и вызовы функций. Имена фунций и процедур не зависят от регистра символов (т.е., GetX и gEtx обозначают одно и то же). Для арифметических и логических операций используются вызовы функций (скажем, числа складываются вызовом Add(a,b))


Примеры:

SetCP(GetObject(4517),40,135,0)

KillUnit(GetObjectByName("NSheriff"))

FixWorldTime(0)

В СПЗ используется четыре различных типа данных:


float

Вещественное число, для внутреннего представления используется 4 байта. В консоли этот тип применяется для всех числовых параметров и возвращаемых значений. В описаниях я буду иногда ссылаться на него, как на bool, подчеркивая, что в данном случае значение типа float интерпретируется, как булевое: ложь, если значение равно нулю, и истина, если оно равно единице (именно единице - ПЗ плохо относятся к попытке представить истину как произвольное ненулевое значение).


string

Строка символов. При задании в качестве непосредственного значения заключается в "двойные кавычки".


object

Как следует из названия, этот тип используется для представления объектов игры. Чаще всего в их роли выступают юниты. Object, пожалуй, наиболее широко используемый тип.


group

Этот тип представляет собой набор экземпляров типа object. Он используется для информативных целей - определить, находятся ли юниты игрока в заданной области, задать в целях квеста группу монстров для уничтожения, и т.п. Наиболее интересным для игрока, очевидно, является тип object, позволяющий воздействовать на юниты. Получить экземпляры типа object можно при помощи соответствующих функций. Основным способом при этом является вызов GetObject(), получающей object по идентификатору юнита - числу, однозначно определяющему данный отдельно взятый юнит на данной карте. Например, на карте мультиквеста "Сокровища разбойников" два ближайших к входу в игровую зону кабана (на севере) имеют идентификаторы 4517 и 4651, а генерал Ирискелль на карте мультиквеста "Вторжение на Гипат" имеет идентификатор 1001936. Самый простой способ узнать идентификатор юнита - включить системные сообщения группы ai при помощи консольной команды filter и отслеживать значения идентификаторов в консоли.


Другой специфический способ получить экземпляр object - воспользоваться функцией GetObjectByName(), получающей object по имени юнита. В ближайшее время я опубликую список этих имен.


Еще одним фактом, на который следует обратить внимание, является то, что любой юнит приписан к какому-либо игроку. Речь идет не об игроках-людях, а об абстрактных сущностях, используемых в основном для группирования юнитов и задания взаимоотношений для этих групп. Игрок определяется своим номером, например, 0 по умолчанию используется для всех юнитов, управляемых людьми, а 7 - для вышеупомянутых кабанов 4517 и 4651. См. GetPlayer().


Нужно помнить и о том, что большая часть скриптовых команд действует только на сервере. Постараюсь обяснить это подробнее: в сингле игрок-человек один, и он легко может пользоваться всеми командами - его компьютер и является сервером игры. В мультиплеере же ситуация несколько сложнее. Дело в том, что игровая зона, положение юнитов на ней, действующие спеллы, и все прочие параметры поддерживаются именно на компьютере сервера, и клиент не может на него повлиять. Некоторым исключением является то время, когда клиент находится на базе: при этом карта базы поддерживается исключительно его компьютером, без участия сервера, поэтому на базе скриптовые команды могут быть использованы и клиентом.


Loot Money - Трофейные деньги

Common loot Probability - Вероятность получения денег (100% default)

А что такое:

Rare loot Probability - сопротивляемость монстра к воровству? (%)

Common loot Mask - ?

Rare loot Mask - ?


Common loot Probability - Вероятность получения обычного лута

Rare loot Probability - Вероятность супер-лута


Skill science - сопротивляемость воровству

Галерея
Скриншот 116: Скриншот с закрытого бета-теста!

Опубликовано с официального разрешения "Nival Online"

Перейти в Галерею
Это интересно...

"Проклятые Земли", как и в свое время "Аллоды", стали прорывной игрой для российского рынка. Это была первая 3D-игра компании "Nival Interactive", по уровню графики, видеороликов и обилию возможностей для игрока не уступавшая мировым флагманам. Почти одновременно с "Проклятыми Землями" вышли "Diablo 2", "Baldur's Gate 2: Shadows of Amn", "Icewind Dale".

Статистика
Картинок: 400+
Статей: 140+
Игр серии: 6
Ссылок: 26
Файлов: 85+
Orphus с нами
Система Orphus
  MorgenS, 2007-2018
Census web-site engine 2.1 ©
Полный список авторов сайта