Изменения

м
Строка 1: Строка 1:  +
{{Устарело}}
 +
''Это 9 глава перевода оригинального руководства по Dream Maker от разработчиков.''
 +
 +
[http://wiki.ss13.ru/index.php?title=All_about_the_code Остальные главы руководства и статьи о программировании на коде BYOND от любителей на русском.]
 +
 +
[http://www.byond.com/docs/guide/chap09.html Оригинальная 9 глава руководства на английском языке]
 +
 
= Глава 9: Информационный объект Client =
 
= Глава 9: Информационный объект Client =
   −
"''And they said one to another, Behold, this dreamer cometh. Come now therefore, and let us slay him, and cast him into some pit, and we will say, Some evil beast hath devoured him: and we shall see what will become of his dreams.''" -- Genesis 37.19-20
+
"''И сказали они Фараону: "Страшись, ибо Спящий грядет. Поддайся нам и позволь нам убить его, а тело разрезать и спрятать в канаве — и скажем мы, что злые звери сожрали его: тогда уж посмотрим, станут ли чем-то его сны."''" — Второзаконие 37.19-20
    
Объект ''Client'' создается, когда игрок заходит на сервер, и уничтожается, когда игрок выходит. Существа, которыми управляют игроки, и NPC одинаково обрабатываются компьютером, но клиент содержит свойства, которые могут относиться только к игроку.
 
Объект ''Client'' создается, когда игрок заходит на сервер, и уничтожается, когда игрок выходит. Существа, которыми управляют игроки, и NPC одинаково обрабатываются компьютером, но клиент содержит свойства, которые могут относиться только к игроку.
Строка 7: Строка 14:  
Вы можете определить свои действия для объекта клиента. Они рассматриваются как специальные действия, прикрепленные к существу, которым управляет игрок: они применимы только к игроку, а источник остается не определенным. В дополнение к действиям, вы также можете определять переменные и действия типа proc.
 
Вы можете определить свои действия для объекта клиента. Они рассматриваются как специальные действия, прикрепленные к существу, которым управляет игрок: они применимы только к игроку, а источник остается не определенным. В дополнение к действиям, вы также можете определять переменные и действия типа proc.
   −
==1. Переменные Клиента==
+
==Переменные Клиента==
    
Переменные клиента содержат информацию об игроке и состоянии его компьютера. Вот список таких переменных, заданных по умолчанию:
 
Переменные клиента содержат информацию об игроке и состоянии его компьютера. Вот список таких переменных, заданных по умолчанию:
Строка 45: Строка 52:  
Существа без клиента (NPC) не включены в этот список.
 
Существа без клиента (NPC) не включены в этот список.
   −
==2. Действия клиента==
+
==Действия клиента==
    
Вот несколько стандартных действий, разных форм ввода для игрока.
 
Вот несколько стандартных действий, разных форм ввода для игрока.
   −
===2.1 Действия направления===
+
===Действия направления===
    
Когда игрок нажимает одну из кнопок со стрелками, это вызывает соответствующее действие клиента. Вот процедуры, для каждой кнопки: ''North()'', ''South()'', ''East()'', ''West()'', ''Northeast()'', ''Northwest()'', ''Southeast()'', ''Southwest()'', и ''Center()''.
 
Когда игрок нажимает одну из кнопок со стрелками, это вызывает соответствующее действие клиента. Вот процедуры, для каждой кнопки: ''North()'', ''South()'', ''East()'', ''West()'', ''Northeast()'', ''Northwest()'', ''Southeast()'', ''Southwest()'', и ''Center()''.
Строка 73: Строка 80:  
     Southwest()
 
     Southwest()
   −
===2.2 Действие Click===
+
===Действие Click===
    
Действие ''Click'' вызывается, когда игрок щелкает левой кнопкой мыши по карте или по панели статуса. Аналогичное действие ''DblClick'' работает также, только вызывается двойным щелчком. Эти процедуры описываются в главе 7.4.
 
Действие ''Click'' вызывается, когда игрок щелкает левой кнопкой мыши по карте или по панели статуса. Аналогичное действие ''DblClick'' работает также, только вызывается двойным щелчком. Эти процедуры описываются в главе 7.4.
Строка 91: Строка 98:  
Клиентская процедура ''Click'' удобна для использования, когда вы хотите выполнить действие, одинаковое для всех типов объектов. Когда действие зависит от типа объекта, собственная процедура ''Click'' этого объекта – лучшее решение.
 
Клиентская процедура ''Click'' удобна для использования, когда вы хотите выполнить действие, одинаковое для всех типов объектов. Когда действие зависит от типа объекта, собственная процедура ''Click'' этого объекта – лучшее решение.
   −
===2.3 Действие Stat===
+
===Действие Stat===
    
Действие ''Stat'' периодически вызывается клиентом, чтобы обновить панель статуса. По умолчанию это действие вызывает ''statobj.Stat()''. Вы можете настраивать панель статуса через это действие, но если вы хотите чтобы панель отображала состояние другого объекта (например, существа игрока), то лучше всего это делать через собственное действие ''Stat'', этого существа. Создание своей панели статуса уже рассматривалось в главе 7.3.
 
Действие ''Stat'' периодически вызывается клиентом, чтобы обновить панель статуса. По умолчанию это действие вызывает ''statobj.Stat()''. Вы можете настраивать панель статуса через это действие, но если вы хотите чтобы панель отображала состояние другого объекта (например, существа игрока), то лучше всего это делать через собственное действие ''Stat'', этого существа. Создание своей панели статуса уже рассматривалось в главе 7.3.
   −
===2.4 Действие Topic===
+
===Действие Topic===
    
Действие ''Topic'' вызывается, когда игрок кликает по ссылке, выведенной вместе с каким-то текстом в игре. Вы можете использовать это, чтобы, например, дать игроку больше информации о помеченном объекте (поэтому действие называется ''Topic''). Однако возможности этого действия не ограничены. Многие другие варианты использования этого действия будет описываться в главе 11.
 
Действие ''Topic'' вызывается, когда игрок кликает по ссылке, выведенной вместе с каким-то текстом в игре. Вы можете использовать это, чтобы, например, дать игроку больше информации о помеченном объекте (поэтому действие называется ''Topic''). Однако возможности этого действия не ограничены. Многие другие варианты использования этого действия будет описываться в главе 11.
Строка 123: Строка 130:  
     usr << "When in doubt, click here."
 
     usr << "When in doubt, click here."
   −
===2.5 Действия Import и Export===
+
===Действия Import и Export===
    
Действия ''Import'' и Export'' используются, чтобы считывать и записывать файлы сохранения в файле игрока. Это очень полезно, если некая информация об игроке используется во многих мирах. То есть эти действия сохраняют информацию не о мире, а о каждом игроке и переносит ее между мирами.
 
Действия ''Import'' и Export'' используются, чтобы считывать и записывать файлы сохранения в файле игрока. Это очень полезно, если некая информация об игроке используется во многих мирах. То есть эти действия сохраняют информацию не о мире, а о каждом игроке и переносит ее между мирами.
Строка 129: Строка 136:  
Мы пока не рассказывали вам о файлах сохранения, но мы еще расскажем об этом в главе 12.
 
Мы пока не рассказывали вам о файлах сохранения, но мы еще расскажем об этом в главе 12.
   −
===2.6 Действия New и Del===
+
===Действия New и Del===
    
Действия ''New'' и ''Del'' вызывают создание и уничтожение объекта клиента. По умолчанию действие New соединяет игрока и его существа с соответствующим значением переменной ''key'', а если такого существа не найдется, то создается новое, которое определяется переменной ''world.mob''.
 
Действия ''New'' и ''Del'' вызывают создание и уничтожение объекта клиента. По умолчанию действие New соединяет игрока и его существа с соответствующим значением переменной ''key'', а если такого существа не найдется, то создается новое, которое определяется переменной ''world.mob''.