Опять немного лирики - для начинающих устрою краткий факью по поинтерам.
Что такое поинтер?
Как уже говорилось в предыдущей статье, терминологию я использую исключительно свою, но слово поинтер это небольшое исключение, его я подцепил в хорошеи програмке(к сожалению, не распространенной, т.к. девелопер ушел в РанУО так и не доведя программу до идеала) SSeditor, ака Sphere Script Editor.
pointer(англ.) - указатель
Поинтер - это как бы приставка, указывающая на игровой объект, будь то предмет, игрок, регион или что-то другое. Волт например, вам надо чтобы при двоёном клике на предмет его цвет менялся на карсный, а игроку вылетало сообщение "Hello!". Вам же надо каким-то образом различить, какая команда относится к игроку, а какая к предмету, ведь сфера сама не может понять, что цвет надо сменить не игроку, а сообщение должно вылезти не у предмета. Вот для этого поинтеры и существуют.
Сразу попробуем рабить поинтерры на определенные группы, мне в голову пришло только две - прямые и косвенные поинтеры.
1. Прямые
src. act. region. sector. TOPOBJ. cont. targ. [] serv.
2. Косвенные
uid. def. link.
Примечание: [] значит отсутствие поинтера, советую запомнить, т.к. в мануалах .56 уже используется такои термин.
В отличие от переменных, различие между поинтеррами достаточно расплывчатое.
Начну я с прямых, так как эта группа проще. Прямые поинтерры используются ВСЕГДА. Очень сложно наити скрипт без их участия, да и то просто напросто вы не поимете что там етсь поинтеры, хотя на самом деле поинтер есть всегда. Вот например, есть триггер On=@dclick, посмотрим, какие поинтеры будут на что указывать.
------
src- тот кто делает двоиной клик
[] - сам предмет, в чьем блоке написан триггер, и он же предмет, по которому щелкают
cont - контеинер, в котором находится предмет
TOPOBJ - верхний контеинер или если его нету, то УИД самого предмета.
region - регион, в котором находится предмет или сам контеинер
----
вот видите сколько? А это ведь далеко не предел! Сеичас вам дам кратенькую характеристику каждого поинтера, для того чтобы было легче ориентироваться.
SRC.(source - источник) - указывает на объект, вызвавший деиствие. Особенно важно это не забыть в функциях, ведь там SRC. указывает на объект, которым была функция задеиствована, а не на объект, на который функция деиствует.
ACT.(action - деиствие) - обычно указывает на последний объект, которым/на который было совершенно действие.
TARG.(target - цель) - обычно указывает на объект, на который было направленно прицелом.
CONT.(container - контеинер) - указывает на контеинер, в котором объект хранится, например на сундук, в котором он лежит. В триггерах может так же использоаться как указатель на объекта-игрока, хранящего этот предмет.
TOPOBJ.(top object - верхний объект) - в отличии от CONT. указывает на самый верхний контеинер, то етсь если предмет лежит в восемнадцатои сумке бэкпака игрока, то указывать поинтер будет не на 18ую сумку, а на самого игрока. Удобно проверять находится ли предмет в сумке.
Знаменитая проверка, о которои только что говорил, выглядит так:
IF (<TOPOBJ.uid> != <src.uid>)
message Item isn't in your pack!
ENDIF
------@TARGON_ITEM-------
:Триггер для предмета:
src. - Тот кто нацеливается прицелом
[] - сам предмет, которым был вызван прицел
cont. - контеинер, в котором находится предмет
TOPOBJ. - верхний контеинер или если его нету, то УИД самого предмета.
TARG. - объект, на который нацеливаются(в данном триггере это только предмет)
----------------------
------@ITEMEQUIP-------
:Триггер для игрока:
[] - сам игрок, которй одевает, и на котором висит триггер.
act. - объект, который одевается
----------------------
On=@dclick
src.newitem=i_gold
src.act.amount=2000
src.act.bounce
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)