Клан "DamneD".



  Введение в скрипты ПЗ

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

В описаниях команд я буду использовать такой или такой шрифт для имен функций, формальные параметры обозначать так, а в [квадратных] скобках записывать необязательные части выражений, символами ... обозначать повторение предыдущего выражения.

Итак, некоторые общие сведения об СПЗ: для выполнения каких-либо действий применяется вызов процедуры или функции в виде имя_команды ( [параметр_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().

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

Таблицы:
Таблицы доспех
Таблицы оружия
Таблицы магии
Таблицы рун
Таблицы материалов
Таблицы квестовых предметов
Таблицы имён NPC
Таблица локаций
Прочие таблицы
Файлы:
Файлы для взломв ПЗ
Файлы дэмо-версии ПЗ
Файлы обновления версии ПЗ
Прочие файлы
Всё для взлома:
Как ломать рост
Как ломать оружие и броню
Как ломать магию
Как ломать скорость
Советы по взлому
Чаты:
Об игре без взлома
Об игре со взломом
Для людей из DamneD
Гостевые:
Об игре без взлома
Об игре со взломом
Для людей из DamneD
Форумы:
Об игре без взлома
Об игре со взломом
Для людей из DamneD
Ссылки:
Оффициальный сайт игры
Оффициальный сайт DamneD
Сайт супер читера в этой игре
Сайт о многих хаках в ПЗ

Download Flash plug-in


Hosted by uCoz