Изменения

Материал из Chaotic Onyx
Перейти к навигацииПерейти к поиску
Перевод кусочка оригинального гайда по DM "Генерация выходных данных". Не претендую на полную точность перевода.
Строка 278: Строка 278:  
Здесь одинарные кавычки окружают имя файла. Как и в случае с текстовыми аргументами, последняя кавычка необязательна, если нет дополнительных параметров.
 
Здесь одинарные кавычки окружают имя файла. Как и в случае с текстовыми аргументами, последняя кавычка необязательна, если нет дополнительных параметров.
   −
== Generating Output ==
+
== Генерация выходных данных ==
   −
The simplicity of the set_icon verb hides the power behind it. Think about what happens when you use it. You enter the name of an icon file through the client and it magically appears on the map. In a game running over the network with multiple users, it works just the same. Behind the scenes, the file you specify gets transported to the server, which then automatically distributes it to all the other clients. Transmitting multi-media files across the network is an elementary operation in DM, little different than entering some numbers or text.
+
Простота ''verb/set_icon'' скрывает за ним невероятную мощь. Подумайте, что происходит, когда вы его используете. Вы вводите имя файла с иконкой через клиент, и она волшебным образом появляется на карте. В игре, работающей по сети с несколькими пользователями, это работает точно так же. За кулисами указанный вами файл передается на сервер, который затем автоматически рассылает его всем остальным клиентам. Передача мультимедийных файлов по сети - это элементарная операция в DM, мало чем отличающаяся от ввода цифр или текста.
   −
Speaking of multi-media, here is an example that makes use of the sound input type.
+
Раз уж речь зашла о мультимедиа, вот пример, в котором используется тип ввода ''sound''.
    
  mob/verb/play(snd as sound)
 
  mob/verb/play(snd as sound)
 
     view() << snd
 
     view() << snd
   −
This plays a sound file (either wav or midi) to everyone in view. The << operator in this context is used to send output to a mob or list of mobs. In this case, everyone in the list computed by the view() instruction receives a sound file. (To be precise, only those people who need a copy of the sound file will receive it. If they don't have sound turned on or if they already have the file, it won't be transmitted.) If their machine is capable of playing sounds and their client is configured to allow it, the sound will automatically play for them. Not bad for two lines of code!
+
Это воспроизводит звуковой файл (wav или midi) для всех, кто находится в поле зрения. Оператор << в данном контексте используется для отправки вывода в толпу или список толп. В этом случае звуковой файл получают все, кто находится в списке, вычисляемом инструкцией view(). (Если быть точным, то только те, кому нужна копия звукового файла, получат его. Если у них не включен звук или если у них уже есть файл, он не будет передан.) Если их машина способна воспроизводить звуки и их клиент настроен на это, звук будет автоматически воспроизведен для них. Неплохо для двух строк кода!
   −
The output operator << opens up all sorts of possibilities. For example, you can say things.
+
Оператор вывода << открывает всевозможные возможности. Например, вы можете сказать.
    
  mob/verb/say(msg as text)
 
  mob/verb/say(msg as text)
 
     view() << msg
 
     view() << msg
   −
=== Variables in Text ===
+
=== Переменные в тексте ===
   −
Usually, however, you would want some indication of who is doing the talking. To do that, you need a new piece of magic called an embedded text expression. It allows you to display text containing variables.
+
Обычно, однако, требуется указать, кто говорит. Для этого вам понадобится новая часть магии, называемая встроенным текстовым выражением. Оно позволяет отображать текст, содержащий переменные.
    
  mob/verb/say(msg as text)
 
  mob/verb/say(msg as text)
 
     view() << "[usr] says, '[msg]'"
 
     view() << "[usr] says, '[msg]'"
In this example, the variables usr and msg are substituted into the text before it is displayed. The result could be something like "Ug says, 'gimme back my club!'". As you can see, the brackets [ ] inside of the text are used to surround the variables. Such a construct is called an embedded expression. It is buried right inside the text but it gets replaced at run-time by its value. More details will be revealed on that subject in section 11.3.
     −
We can now make use of the object input types. For example, you can wink at people with the following verb.
+
В этом примере переменные ''usr'' и ''msg'' подставляются в текст перед его отображением. В результате может получиться что-то вроде «Ug says, 'gimme back my club!». Как видите, скобки [ ] внутри текста используются для окружения переменных. Такая конструкция называется встроенным выражением. Оно находится прямо в тексте, но во время выполнения заменяется своим значением. Более подробно об этом будет рассказано в разделе 11.3.
 +
 
 +
Теперь мы можем использовать типы ввода объектов. Например, вы можете подмигнуть людям с помощью следующего ''verb''.
    
  mob/verb/wink(M as mob)
 
  mob/verb/wink(M as mob)
 
     view() << "[usr] winks at [M]."
 
     view() << "[usr] winks at [M]."
   −
The possibilities for intrigue and secrecy increase with a covert version of the say command.
+
Возможности для интриг и секретности возрастают с тайной версией команды "say".
    
  mob/verb/whisper(M as mob,msg as text)
 
  mob/verb/whisper(M as mob,msg as text)
 
     M << "[usr] whispers, '[msg]'"
 
     M << "[usr] whispers, '[msg]'"
   −
This example uses two arguments to achieve its purpose. The first one is the target of the message. The second is the text to transmit.
+
В этом примере для достижения цели используются два аргумента. Первый - это цель сообщения. Второй - текст, который нужно передать.
 
      
== Flexibility in Choice of the Source ==
 
== Flexibility in Choice of the Source ==
33

правки

Навигация