Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » Скрипты - это легко... | страница 2
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 2 из 8
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8  След. | Все страницы
Поиск в этой теме:
Канал X2: The Threat: «Скрипты - это легко...»
Нужен ли этот проект?
Да
96%
 96%  [ 215 ]
Нет
0%
 0%  [ 1 ]
Мне все равно
2%
 2%  [ 6 ]
Всего проголосовало : 222
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Продолжаем учиться писать скрипты. Попытаемся разобраться в работе скрипта warehouse.xml «Корабль-склад» версии 2.0 (см. собрание скриптов пилотов). Мы с вам пройдем весь путь: от составления алгоритма до написания скрипта, реализующего выбранный алгоритм. Поехали!

Задача: заставить корабль следить за состоянием склада заданного товара станции приписки и поддерживать определенное, заданное пользователем, количество товара на складе, регулируя его за счет своего трюма.

Нужно сказать, что четко сформулированная задача – это 20% успеха дела. Необходимо точно представлять, ЧТО вы хотите сделать, чтобы составить нормальный алгоритм программы. Кроме этого, всегда нужно стремиться, чтобы скрипт:
а) был по-возможности небольшим, а если это по характеру задачи невозможно – то хорошо структурированным, иначе мы начнем в нем теряться;
б) был универсальным, если это требуется;
в) учитывал самые разные возникающие ситуации;
г) содержал некоторую защиту от некорректных действий пользователя;
д) не содержал кода, который мог бы привести к зависанию игры или имел от этого защиту;
е) не загружал игру бесконечными сложными вычислениями.
Разумеется, все это сложно совместить, но нужно стараться…

Итак, попробуем составить алгоритм, по которому будет действовать наш корабль. Можно было бы воспользоваться стандартной блочной схемой алгоритма из учебника информатики, но мы этого делать не будем. Во-первых, как составляется такая схема, мало кто знает и помнит (в том числе и я), во-вторых, часто она не очень удобна. Вместо этого попробуем человеческим языком расписать порядок действий нашего корабля (включая все необходимые подготовительные действия) с момента получения команды.

1. Очевидно, нам потребуются некоторые начальные условия для корабля, которые задает пользователь. Исходя из условий поставленной задачи, мы должны задать кораблю станцию, товар на станции, с которым он будет работать, и количество этого товара, которое корабль будет поддерживать. На последнем пункте остановимся и подумаем: каким должно быть это количество? Известно, что разные станции хранят различное количество различного товара. Если мы будем задавать абсолютное количество товара, то мы можем легко ошибиться, т.к. в этом случае мы должны твердо знать, сколько нужного нам товара хранит данная станция. Поэтому лучше задать относительное кол-во товара, например в процентах от максимального объема склада. Это позволит нам не думать о типе товара и фактическом объеме склада. И это будет правильный и универсальный подход к делу.
2. После получения условий начинаем действовать. Но прежде нужно кое-что проверить – вдруг пользователь задал некорректные условия? Ведь это может привести к неправильной работе и даже (не дай бог) к зависанию игры. Прежде всего необходимо проверить, кому принадлежит станция – игроку или другой расе. Если станция наша, то все в порядке, можно продолжать. Если же нет – дальнейшая работа бесполезна и нужно прервать выполнение скрипта.
3. Далее нужно проверить, может ли корабль перевозить/хранить заданный товар. Если да, то все в порядке, можно продолжать. Если же нет – дальнейшая работа также бесполезна и нужно прервать выполнение скрипта.
4. Все, больше ничего критического для нормальной работы скрипта пользователь не задал, можно действительно начинать действовать. Назначим станцию базой приписки для нашего корабля. Это будет удобно для пользователя при просмотре собственности.
5. В момент получения команды корабль может находится далеко от станции, и это нужно предусмотреть. Если это так, надо дать команду кораблю лететь на станцию, а если мы уже пристыкованы к этой станции, разумеется, лететь никуда не надо.
6. Дальше нам нужно получить из значения относительного лимита абсолютное, ведь относительный лимит удобен только для игрока, но для корабля он решительно не подходит. Для этого нам потребуются некоторые несложные вычисления.
7. Теперь можно приступать к выполнению главной задачи: следить за количеством товара на станции. Поскольку эта задача постоянна, выполнять мы ее будем циклически, пока кораблю не поступит другая команда. Для этого нужно организовать цикл и внутри цикла производить действия по загрузке/разгрузке.
8. Что делать внутри цикла? Нужно проверять, сколько товара есть на складе, сравнивать это фактическое кол-во с нашем лимитом, если товара больше, то погружаем излишек в трюм, если недостаток – то выгружаем товар на склад до достижения лимита.

Вот и все. Несложно, не правда ли? Попробуем теперь воплотить все это на языке игры.

Arguments
1: home.ware , Перем/Станция и товар , 'Select station and ware'
2: perc , Число , 'Input warehouse percent'

Зададим начальные условия для скрипта в разделе аргументов. Скриптовый движек игры позволяет задать переменную-массив из станции и ее товара. Это удобнее, чем отдельные переменные, потому как в процессе выбора товара запрашиваться будет только товар из списка товаров станции, а не вываливаться полный список всех существующих товаров. Назовем эту переменную-аргумент $home.ware. Процентный лимит будет называться у нас $perc.

Source Text
001 $ship = [THIS]

Присвоим переменной $ship указатель на объект (корабль), получивший команду. Это для нашего удобства.

002
003 $ware = $home.ware[0]
004 $home = $home.ware[1]

Присвоим переменной $ware значение ячейки номер 0 массива $home.ware (это наш товар), а переменной $home значение ячейки номер 1 того же массива (это станция).

005
006 $owner = $home -> get owner race

Получим в переменную $owner расу владельца станции $home.

007 skip if $owner == Player
008 return null

Проверим, совпадает ли раса-владелец $owner с расой Player, или, попросту говоря, принадлежит ли она игроку. Если нет, то прерываем скрипт.

010 skip if $ship -> can transport ware $ware
011 return null

Проверим, может ли корабль $ship перевозить товар $ware. Если нет, то прерываем скрипт.

013 $ship -> set homebase to $home

Установим для корабля $ship станцию $home в качестве станции приписки.

014
015 set script command: COMMAND_TYPE_TRADE_10

Эта команда позволит команде «Складировать товар» отображаться в информанционных окнах корабля, и мы будем видеть, ЧТО корабль делает. Это чистой воды сервисная команда. А происходит это потому, что в инициирующем скрипте команда-константа COMMAND_TYPE_TRADE_10 завязана на наш скрипт.

016
017 * fly to home if we are not at home

Это просто комментарий «летим домой если мы не дома».

018 skip if $home == [ENVIRONMENT]
019 @ = $ship -> fly to home base

Проверим, совпадает ли окружение [ENVIRONMENT] нашего корабля со станцией $home. В данном случае это наиболее простой способ узнать, пристыкован ли корабль к интересующей нас станции. Если окружение не совпадает, это значит, что корабль находится в космосе, пристыкован к другой станции или кораблю – неважно. Итак, если он не пристыкован, то даем команду кораблю $ship лететь на станцию приписки.

020 skip if $home -> exists
021 return null

Проверим, существует ли станция $home или нет. Ведь ее могли уничтожить, пока мы летели! Если же мы никуда не летели, то это чистая формальность. Вообщем, если станции нет, прекращаем работу скрипта.

022
023 $max = $home -> get max. store amount of ware $ware
024 $max = $max * $perc / 100

В переменную $max в строке 023 мы получаем максимальное кол-во товара $ware, которое может храниться на станции $home. В строке 024 мы присваиваем все той же переменной $max абсолютное значение лимита товара, восстанавливая его из указанного игроком процента в переменной $perc. Не будем вдаваться в арифметику второго класса – думаю, механизм всем понятен.

025
026 while [TRUE]

Организуем «вечный» цикл (для этого в качестве условия оператору while задается постоянное логическое значение «правда»), внутри которого будем заниматься нашим контролем лимита.

027 $quantity = $home -> get amount of ware $ware in cargo bay

Получаем в переменную $quantity количество товара $ware, которое в данный момент хранится на складе станции $home.

028 $quantity = $max - $quantity

Присваиваем переменной $quantity разницу нашего лимита $max и того же количества на складе $quantity.
Обратите внимание, как и в строках 023 и 024 мы не заводим лишнюю переменную, а используем уже существующие. Так вполне можно делать, так как это изменяющееся (динамическое) значение и нет нужды его долго хранить. К тому же такой прием экономит память. Итак, после этой строки переменная $quantity вместо текущего количества товара на станции стала хранить количество товара, которым нам нужно обменяться со станцией! Это количество по понятным причинам может быть либо положительным, либо отрицательным. Поняли, почему? Прикиньте возможные ситуации на бумажке и поразмыслите.

029 if $quantity > 0
030 = $ship -> unload $quantity units of $ware
031 else
032 $quantity = - $quantity
033 = $ship -> load $quantity units of $ware
034 end

Итак, если количество положительное ($quantity > 0), то выполняется строка 030, где корабль $ship пытается выгрузить $quantity единиц товара $ware. В противном случае ($quantity<=0) выполняются строки 032 и 033, где мы сначала инвертируем знак переменной $quantity (из отрицательного числа делаем такое же положительное, 0 останется неизменным), а потом пытаемся загрузить в корабль это количество. Строка 034 – конец оператора условия if. Обратите внимание – мы не занимаемся никакими вычислениями, учитывающими остаток свободного места на корабле! На самом деле за нас это делают команды load и unload. Они сами контролируют корректность процессов и ничего недопустимого не сделают. Кстати, по такому же принципу действуют торговые команды sell и buy, в которых задействованы еще и деньги. Здесь мы придерживаемся святого принципа универсальности: нам совершенно не важно, сколько свободного места на корабле и как оно изменяется.

035 @ = wait randomly from 10000 to 15000 ms
036 end

В строке 035 мы выдерживаем паузу в 10-15 секунд, а строка 036 – конец цикла.

037
038 return null

Все, конец скрипта.
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 14:51 03-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Сейчас приступил к описанию команд, стараюсь сделать объяснения максимально полными, а как следствие, куча времени уходит на эксперименты. Уже неделю разбираю "Навигационные команды", чтобы прогнать каждую, для нее нужно сделать скриптик да еще корабли в разные ситуации поставить. Потом все возвращаемые значения описать. Вот например дошел до информационных команд типа set destination и т.п. и понял, что просто описать недостаточно нужна подробная статья об использовании. Сейчас над ней и работаю.

Все это говорю к тому, что если в теме от меня несколько дней нет никаких сообщений, то это вовсе не значит, что работа над проектом встала. Работа идет каждый день, сайт тоже обновляется постоянно.

Очень рад что к работе подключился XenonTomb, уже две хороших статьи подкинул. И вобще люди помощь предлагают, только вот именно знатоков скриптописания единицы, а ведь в FAQ Скриптописание их много, парадокс...

Да кстати если кто разбирал работу каких команд, из неописанных мной, то не стесняйтесь шлите описание сюда или мне на мыло. Дело-то общее.

З.Ы. Просили поменять цвет сайта, так поменял.
_________________
Звезды зовут...
    Добавлено: 18:59 03-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Отчет о изменениях от 07\02\2005

1. Закончено описание команд раздела "Навигационные команды" (вроде подробней не бывает)
2. В голосовые симплы добавлено "Литеры латинского и греческого алфавитов"
3. Добавлена статья-разбор "Корабль-склад" автор XenonTomb
___________________________________________________________________

Страница проекта «Скрипты- это легко» http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./
_________________
Звезды зовут...
    Добавлено: 20:50 07-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Для всех!!!
Получаю периодически письма, типа «проверь орфографию» или «в конфе обсуждалось, а ты наоборот пишешь». Еще раз всем говорю : «Не надо мне писать писем в общем, если нашли ошибку пишите конкретно о ней. Хотите помочь – помогайте, если нет, не мешайте.

С уважением, DragonP.
_________________
Звезды зовут...
    Добавлено: 18:59 08-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Отчет о изменениях от 07\02\2005

1. Добавлено описание "Общие торговые команды"
2. Попралено описание некоторых Навигационных команд"

___________________________________________________________________

Страница проекта «Скрипты- это легко» http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./
_________________
Звезды зовут...
    Добавлено: 20:10 09-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Отчет о изменениях от 13\02\2005

1. Закончено описание команд раздела "Торговые команды"
2. Внесены изменения и дополнения почти во все разделы
___________________________________________________________________

Страница проекта «Скрипты- это легко» http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./
_________________
Звезды зовут...
    Добавлено: 21:28 13-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Отчет о изменениях от 15\02\2005

1. Начато описание команд раздела "Команды работы с объектами"
2. Добавлено в приложение "Иерархия классов объектов" (схема)

___________________________________________________________________

Страница проекта «Скрипты- это легко» http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./
_________________
Звезды зовут...
    Добавлено: 20:58 15-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Отчет о изменениях от 17\02\2005

1. Работа над описанием команд раздела "Команды работы с объектами"
2. Добавлено в приложение описание типов Астероидов с собранием скринов

___________________________________________________________________

Страница проекта «Скрипты- это легко» http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./
_________________
Звезды зовут...
    Добавлено: 01:44 18-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Отчет о изменениях от 24\02\2005

1. Работа над описанием команд раздела "Команды работы с объектами"
2. Добавлено в приложение описание типов Туманностей, Планет и Солнц.

___________________________________________________________________

Страница проекта «Скрипты- это легко» http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./
_________________
Звезды зовут...
    Добавлено: 19:47 24-02-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
2DragonP
В твой учебник про команду use jump drive. В MSCIHandbook сказано, что она возвращает TRUE, если прыжок удачно завершен, и FALSE - если не удался. Так вот, это неправда. Команда возвращает коды возврата:
FLRET_WARPED - прыжок прошел нормально
FLRET_ERROR - прыжок не удался (нет джампдрайва или батареек)
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 09:35 28-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
XenonTomb :
2DragonP
В твой учебник про команду use jump drive. В MSCIHandbook сказано, что она возвращает TRUE, если прыжок удачно завершен, и FALSE - если не удался. Так вот, это неправда. Команда возвращает коды возврата:
FLRET_WARPED - прыжок прошел нормально
FLRET_ERROR - прыжок не удался (нет джампдрайва или батареек)


Ok. поправлено Улыбка
_________________
Звезды зовут...
    Добавлено: 19:39 28-02-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Отчет о изменениях от 8\3\2005

1. Закончено описание команд раздела "Команды работы с объектами"
2. Добавлено в приложение описание типов Лиц пилотов и еще некоторые разделы.

___________________________________________________________________

Страница проекта «Скрипты- это легко» http://www.Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./
_________________
Звезды зовут...
    Добавлено: 14:00 08-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Здесь я собрал инфу о типах и подпипах товара для использования в командах:

<RetVar>=get maintype of ware <Var/Ware>
<RetVar>=get subtype of ware <Var/Ware>
<RetVar>=get ware from maintype <Var/Number> and subtype

http://www.dr-Ссылки на narod.ru запрещены! Используйте пожалуйста другие, более нормальные хостинги./download/ware_types.zip (~15 кб)
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 16:51 08-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
Список я тоже вытаскивал, но вот вопросик: в некоторых местах, ну к примеру maintype 5 subtype 17 стоит ReadText17-4101, а в файле типов TDocks на этом месте SS_DOCK_MUSEUM описатель дока-музея. В иерархической схеме док-музей тоже присутствует, так почему отражается ReadText. Может после какой миссии изменится ?
_________________
Звезды зовут...
    Добавлено: 05:31 09-03-2005   
RAider
 405 EGP


Рейтинг канала: 2(21)
Репутация: 133
Сообщения: 1294
Откуда: Таганрог
Зарегистрирован: 08.07.2003
Нет такого Док-музея. не существует таких станций в игре, как и "утилизаторов"-scrapyard`ов.некоторые стандартные строки из TFactories не используются. соответственно, поэтому для них может не быть описания в главном xml игры. - на page 17, строке 4101.поищи в 44001\70001(2,3) - скорее всего там нет таких строк.

зы. за проект - спасибо! счас пойду качать твой учебник, буду для себя разбирать скрипт-редактор.

ззы. нет желания поучаствовать в моддинге?...плагинчик AL написать небольшой? Улыбка
_________________
Smart is the new Sexy.
    Добавлено: 05:53 09-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Поправки-дополнения к некоторым командам.
Команды create ships и create flying ware создают объекты корректно, т.е. если координаты заняты другим объектом, то созаваемый объект креатится рядышком. А вот create station и create asteroid не обращают внимания на занятость координат: если они совпадут, то занимающий координаты объект умрет. Все мои попытки использовать команду set safe position of sector object <sectorobject> (применительно к sectorID существующего объекта) никчему не привели: объект воздействия так и оставался на прежнем месте. Этот вопрос требует тщательного изучения и проверки на практике. Может кто-то разобрался уже?
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 10:45 09-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
RAider :
счас пойду качать твой учебник

Ну надоже какое совпадение, я вчера распечатал для изучения твой пост в темке New Ships + Lasers Rebalance MOD для X2. Улыбка


RAider :
нет желания поучаствовать в моддинге?...плагинчик AL написать небольшой? Улыбка

Я бы с радостью, но не хочу браться за другое дело не закончив первое Улыбка , но если позже предложение будет актуально, то завсегда готов Супер!

XenonTomb :
Все мои попытки использовать команду set safe position of sector object <sectorobject> (применительно к sectorID существующего объекта) никчему не привели

safe position и при работе с обычными указателями на объекты , на мой взгляд не всегда предсказуема. А секторальные ID даже в MSCI советуется избегать и заменять их командами более высокого уровня. Видимо как и другие команды помеченные как "неиспользуемые" просто глючит. Я если чесно ее не проверял, поэксперементировал с create/kill/free/start sector Object они работают как описано. Улыбка
_________________
Звезды зовут...
    Добавлено: 11:06 09-03-2005   
XenonTomb
 250 EGP


Рейтинг канала: 2(16)
Репутация: 66
Сообщения: 867
Откуда: Николаев, Украина
Зарегистрирован: 17.03.2004
Поправка к командам

<RetVar/IF> <object> is disabled
<object> set ship disabled to <Var/Number>


Они используются для управления космомухами (скрипт !ship.cmd.idle.spacefly). Когда вы палите в муху из ID, она останавливается (disabled=TRUE), а через некоторое время опять оживает (disabled=FALSE). На другие корабли команда не действует (вроде).
_________________
Будут предложения - присылайте на расчетный счет :)
    Добавлено: 11:13 09-03-2005   
DragonP
 281 EGP


Рейтинг канала: 3(27)
Репутация: 108
Сообщения: 527
Откуда: Новосибирск
Зарегистрирован: 18.12.2004
XenonTomb :
Поправка к командам

<RetVar/IF> <object> is disabled
<object> set ship disabled to <Var/Number>


Вот спасибочки. Реальная заплатка на MSCI. Круто!

А из навигационных Set|get tactical не копал? Тоже странное поведение. Управление команда удерживает пока не отключишь автопилот, а корабль никаких действий не выполняет. Но точно знаю, она чегото делает. Подмигиваю
_________________
Звезды зовут...
    Добавлено: 11:35 09-03-2005   
RAider
 405 EGP


Рейтинг канала: 2(21)
Репутация: 133
Сообщения: 1294
Откуда: Таганрог
Зарегистрирован: 08.07.2003
DragonP :

Я бы с радостью, но не хочу браться за другое дело не закончив первое Улыбка , но если позже предложение будет актуально, то завсегда готов Супер!

ок,работы там - непочатый край, идей - ваше крыши, только скриптеров не хватает...и времени Расстроен

насчет учебника - утром проглядел страничку твою. искал гдебы в виже архивчика скачать целиком информацию. не нашел...или плохо искал?...уже думаю - а не выкачать ли целиком все твои странички с народа.кстати, сколько такой архивчик весить будет - с той инфой,что есть на данный момент?
_________________
Smart is the new Sexy.
    Добавлено: 18:30 09-03-2005   
Канал X2: The Threat: «Скрипты - это легко...»
На страницу: Пред.  1, 2, 3, 4, 5, 6, 7, 8  След. | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Я – несостоявшийся общественный деятель. Кто такой общественный деятель, я толком не представляю. Возможно, поэтому я – несостоявшийся... (jenya)

  » Скрипты - это легко... | страница 2
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18