Введение
Zscript — это язык нового уровня, он совмещает в себе SBARINFO, DECORATE, ACS и при этом, добавляет собственный функционал. Данный язык своим функционалом напоминает C++, а по структуре, почти полная копия DECORATE. Этот язык покрыт завесой тайн для многих моддеров(в том числе и для меня), а также, о нем не так много информации, но это и делает его столь желанным, поэтому мы здесь и собрались.
Превращаем DECORATE в ZSCRIPT.
В качестве актора DECORATE, я буду использовать декорацию bunny взятую из урока DECORATE. Cоздание декораций(1).
Исходный код у него следующий:
actor bunny 10000
{
radius 10
height 64
+SOLID
states
{
Spawn:
BUNN A -1
stop
}
}
Скопируйте код актора bunny к себе в ZSCRIPT.
И поставьте «;» в нужных местах.
actor bunny 10000
{
radius 10;
height 64;
+SOLID;
states
{
Spawn:
BUNN A -1;
stop;
}
}
Символ «;» ставится после:
- свойств(properties)
radius 10;
height 64;
- флагов(необязательно, но ради красоты кода — желательно)
+SOLID;
- анимаций
BUNN A -1;
- и комманд
stop;
В общем, ставится во всех местах, кроме блоков и стейтов.
Далее заменим первую строку.
actor bunny 10000
На следующую:
class bunny:Actor
В ZSCRIPT чтобы создать актор, нужно создать класс который наследуется от класса Actor. Наследование от актора имеет следующий синтаксис:
class название_класса:Actor
После всех манипуляций, код должен выглядеть так:
class bunny:Actor
{
radius 10;
height 64;
+SOLID;
states
{
Spawn:
BUNN A -1;
stop;
}
}
Последнее что осталось, это добавить все свойства и флаги, в блок default.
class bunny:Actor
{
default
{
radius 10;
height 64;
+SOLID;
}
states
{
Spawn:
BUNN A -1;
stop;
}
}
Готово. Теперь, вы можете заспавнить декорацию bunny, коммандой «summon bunny«.
На данном этапе вы не сможете поставить декорацию на карту, потому что не указано число_актора_в_редакторе.
Добавляем актор в редактор.
В ZSCRIPT число_актора_в_редакторе добавляется через MAPINFO, в отличии от DECORATE.
Чтобы добавить наш актор bunny в редактор нужно открыть MAPINFO. И добавить в него следующие строки.
DoomEdNums
{
10000 = "bunny"
}
Синтаксис у DoomEdNums следующий:
DoomEdNums
{
число_актора_в_редакторе1 = "название_актора1"
число_актора_в_редакторе2 = "название_актора2"
число_актора_в_редакторе3 = "название_актора3"
.....................и так далее ...............
}
В нашем случае:
- число_актора_в_редакторе — 10000
- название_актора — bunny
Теперь вы сможете добавить актор bunny через редактор.
Для этого:
- Перейдите в Things Mode
- Cоздайте предмет(ПКМ)
- И в графе Type укажите 10000 (число_актора_в_редакторе) .
Нажмите ОК. Готово, теперь можете запускать.
Вывод.
В итоге, в отличии от DECORATE, в ZSCRIPT:
- Символ «;» ставится везде, за исключением блоков и стейтов.
- В ZSCRIPT нет акторов, вместо них классы которые наследуются от класса Actor.
- В ZSCRIPT невозможно указать число_актора_в_редакторе, это число указывается в MAPINFO, в блоке DoomEdNums.