Текущее время: 27 апр 2024 23:59

Часовой пояс: UTC + 3 часа


Правила форума


Внимание! Все права на материалы опубликованные в этом форуме принадлежат их авторам! Перепечатка туториалов и статей разрешена только со ссылкой на этот сайт! В противном случае факт перепечатки считается нарушением авторских прав!



Новая тема Ответить
Страница 2 из 6
[ Сообщений: 88 ]
На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор
Сообщение
Заголовок сообщения: Азбука картостроения
СообщениеДобавлено: 17 сен 2007 11:56
Создаем шлагбаум с помощью функции door_rotating
Вообще шлабгаум можно создать много из чего, например через скрипт мовер, но подумайте сколько вам нужно сделать дела, реле, изменения скрипта файла (это не удобный способ).
Итак приступаем к создания шлагбаума.
Для начала создайте палку (тоесть что будет подниматься) и ось тоесть origin примерно вот так должно получиться:
Изображение
Заметьте я выделил origin браш чтобы вы видели где его нужно располагать.
Теперь создайте обычную кнопку, и займемся свойствами объектов.
Выделите швагбаум и origin и задайте им функцию door rotating.

Откройте их свойства и введите следующие:

Key: degrees // будет повышаться на 60 градусов.
Volume: 60

Key: type // звук при открытии и закрытие 1- как бы дверь.
Volume: 1


Теперь вкл следующие галочки:

x_axis // будет открываться на ось X
toogle // будет стоять открытым пока вы не нажмете на кнопку.
reverse // перемена.
force // ну тоесть наш швагбаум откроется даже если ты блокируешь его.

Все. теперь выделяем ваш рубильник и соединяем его со швагбаумом.
Теперь швагбаум готов.
Заголовок сообщения: Азбука картостроения
СообщениеДобавлено: 17 сен 2007 14:30
target_smoke.

Target_smoke применяется для создания дыма. Например если вы создали печь в доме то в трубе нужна сделать эффект дыма. Итак сейчас мы создадим с вами дым и расмотрим его свойства.
Для начала создайте его.

Target-->>target_smoke

Теперь будем работать и изучать его свойства. Откройте их.

Сначала разберем все галочки:

Black (дым будет идти черный)
White (дым будет идти белый)
smokeon (первоночально дым будет идти)
gravity (Дым будет идти неприрывно)


Теперь разберем все ключи:

Key: delay // Задержка дыма
Valume: 100 - каждую секунду он будет выпускаться. (В милисекундах).

Key: time // Время его нового положения
Valume: 500 - каждые 5 секунд он будет менять положение. (В милисекундах).

Key: duration // продолжительность перед дымом начинается к alpha
Valume: 200 - каждые 2 секунды (В милисекундах).

Key: start_size // Стартовый размер дыма
Valume: 50

Key: end_size // Конечный размер дыма
Valume: 50

Key: wait // Время через которое дым начнет действовать
Valume: 10


Теперь вы сможете создать дым, любых размеров и свойств.
Заголовок сообщения: Азбука картостроения
СообщениеДобавлено: 17 сен 2007 20:47
Target_effect
Итак само название говорит что это создает эффект, давайте рассмотрим его.
Его пример можно посмотреть в карте end где генрих, когда сыпатся камни и наносят вам ущерб, это и есть target_effect.
Давайте создадим точно такой же только камни будут сыпаться при включении рубульника.
Для начала создайте его target-->>target_effect
Теперь создайте info-->>info_notnull
И перемистите его, где вы хотите создать точку падения комней.
Теперь создайте target-->target_realy, и рубильник.
А теперь займемся свойствами объектов.
Мы имеем infi_notnull, target_relay, target_effect и рубильник.
Теперь откроем свойства target_effect и разберем их.
Сначала кнопочки.
Эти кнопки указывают какой объект будет сыпаться.

TNT - Типо базуки.
Explode - Граната (обычно этот метод применяется для эксплодирования радио).
Smoke - Дымовой эффект.
Rubbie - Падение камней (Как в карте end).
Gore - Падения крови с костями. (Жуть :)).
Lowgrav - Что то плохое.
Debris - эффект взрывной гранаты.


Теперь рассмотрим ключи:

Key: mass // от массы зависит ущерб (Например камни с весов 75 отнимают по 15 жизней)
Valume: 75

Key: dmg // Радиус уничтожения.
Volume: 0 - по умолчанию

Key: Type // какой звук будет издовать при начале падения.
Volume: rock


Glass - Стекло
Wood - Дерево
Metal - Металл
Gibs - Гибс
Rock - Полы
Brick - Кирпичи
Fabric - Стены


Далее нужно связать все правильно.

Выделим target_effect и соединим с info_notnull
Теперь target_relay с target_effect
И ваш рубильник с target_effect.


Все проверьте должно получиться так:
Изображение
А вот что получилось в игре:
Изображение
Заголовок сообщения: Азбука картостроения
СообщениеДобавлено: 15 апр 2008 13:29
Думаю, не будет лишним, если даже уже где-то говорилось, еще раз рассказать про использование буферов в сценариях AI и BRUSH.


Синтаксис следующий:

accum <индекс буфера> <команда> <параметр>

accum - используется для утверждения "что если". accum хранит целочисленные значения, которые используются в триггерах.

индекс буфера - индеск буфера в диапазоне [0..31]

команда - команда, применяемая к буферу
Cписок доступных команд:
inc
abort_if_less_than
abort_if_greater_than
abort_if_equal
abort_if_not_equal
set
bitset
bitreset
abort_if_bitset
abort_if_not_bitset
random


параметр - целочисленный параметр в диапазоне [0..63]


А теперь подробно рассмотрим каждую команду и начнем с основных, которые выполняют инициацию буфера. Они пишутся в триггере spawn.

Команда: set
Синтаксис: accum set
Пояснение: установка значения m в буфер с индексом n.

Команда: bitset
Синтаксис: accum bitset
Пояснение: "перевод" разряда m в буфере с индексом n в состояние "включено"

Команда: bitreset
Синтаксис: accum bitreset
Пояснение: "перевод" разряда m в буфере с индексом n в состояние "выключено"

Эти три команды могут использоваться как в триггере spawn, так и в остальных триггерах.
Пример возможного сценария:

spawn
{
      accum 0 set 0
      accum 1 bitset 0
      accum 1 bitset 1
      accum 1 bitreset 2
      accum 2 bitset 0
      accum 3 set 2
      ...
}

trigger get_help
{
      ...
      accum 0 set 2
      ...
      accum 1 bitreset 0
      ...
}

trigger reaction
{
      ...
      accum 1 bitset 1
      ...
}


Рассмотрим остальные команды.

Команда: abort_if_bitset
Синтаксис: accum abort_if_bitset
Пояснение: прерывание выполнения сценария, если разряд m в буфере с индексом n в состоянии "включено"

Команда: abort_if_not_bitset
Синтаксис: accum abort_if_not_bitset
Пояснение: прерывание выполнения сценария, если разряд m в буфере с индексом n в состоянии "выключено"

Команда: abort_if_equal
Синтаксис: accum abort_if_equal
Пояснение: прерывание выполнения сценария, если значение буфера с индексом n равно m

Команда: abort_if_not_equal
Синтаксис: accum abort_if_not_equal
Пояснение: прерывание выполнения сценария, если значение буфера с индексом n не равно m

Команда: abort_if_less_than
Синтаксис: accum abort_if_less_than
Пояснение: прерывание выполнения сценария, если значение буфера с индексом n меньше чем m

Команда: abort_if_greater_than
Синтаксис: accum abort_if_greater_than
Пояснение: прерывание выполнения сценария, если значение буфера с индексом n больше чем m

Команда: random
Синтаксис: accum random
Пояснение: установка значения в буфер с индексом n случайного значения m в диапазоне [0..m-1]


Практическое применение на примере нескольких задач.

1. Необходимо после того, как будут убиты все враги на карте (например, их 40), сменить музыку на более спокойную.
Создается script_mover с именем, например, counter.
В этом объекте сценарий будет выглядеть так:

counter
{
      spawn
     {
            accum 0 set 0 // Инициировали буфер 0 с начальным значением 0
     }

     //Объявляем триггер, выполняющий подсчет убитых
     trigger check_deaths
     {
           accum 0 inc 1 // Наращиваем при каждом вызове триггера значение буфера 0 на единицу
           accum 0 abort_if_not_equal 40 // Если значение буфера 0 не равно 40, прерываем дальнейшее выполнение. Как только оно станет равно 40, выполнятся команды, расположенные за этим оператором проверки
           mu_fade 0 2000
           mu_queue sound/music/m_mission
     }
}

У каждого врага в сценарии в триггере death вызывается триггер check_deaths из объекта counter, а именно:

soldier1
{
      death
      {
            trigger counter check_deaths
      }
}

...
...
...

soldier40
{
      death
      {
            trigger counter check_deaths
      }
}


2. Требуется заставить действовать врага в разных ситуациях одинаково, к примеру, если он что-то услышит, увидит мертвого или увидит самого игрока, то выполнить что-либо. Первое, что приходит в голову - это в каждом триггере, будь то enemysight, inspectsoundstart или inspectbodystart описать эти действия. Мы поступим по-другому.

soldier1
{
      spawn
      {
            accum 0 bitreset 0 // В буфере 0 разряд 0 ставим в состоянии "выключено"
      }
      enemysight
      {
            trigger soldier1 reaction // Вызываем триггер reaction, если soldier1 нас "засек"
      }
      inspectsoundstart
      {
            trigger soldier1 reaction // Вызываем триггер reaction, если soldier1 что-то услышал
      }
      inspectbodystart
      {
            trigger soldier1 reaction // Вызываем триггер reaction, если soldier1 увидил мертвое тело
      }
      trigger reaction
      {
            accum 0 abort_if_bitset 0 // Поскольку триггер reaction может быть вызван неоднократно, защищаем себя от этого проверкой разряда 0 в буфере 0 - если разряд в состоянии "выключено" то выполняется сценарий
            accum 0 bitset 0 // Переводим разряд 0 в буфере 0 в состояние "включено" для дальнейшей блокировки выполнения этого сценария
            ...
      }
}

Обычно такой метод применителен на стелс-картах, тем самым делая врагов настоящими параноиками, которые от любого шороха кидаются к alarm_box.


3. Действия, выполняемые в сценке, должны выполнятся независимо от того, прервал ли игрок сценку или нет. Предположим в камеру должен попасть пролетающий самолет, а если сценка была прервана, то все равно он должен пролететь.

Сценарий AI.

player
{
      playerstart
      {
            trigger cinematic movie
      }
      trigger cam1
      {
            startcam c01
      }
      trigger cam2
      {
            startcam c02
      }
      trigger cam3
      {
            startcam c03
      }
      trigger cam4
      {
            startcam c04
      }
      trigger camerainterrupt
      {
            stopcam
            trigger cinematic stop_movie
      }
}

Сценарий BRUSH.

cinematic
{
      spawn
      {
            accum 0 bitreset 0 // В буфере 0 разряд 0 ставим в состоянии "выключено"
      }
      trigger movie
      {
            trigger player cam1
            wait 4000
            trigger player cam2
            wait 4000
            trigger player cam3
            trigger airplane fly // Запускаем самолет
            accum 0 bitset 0 // Раз самолет запущен, то в буфере 0 разряд 0 ставим в состоянии "включено"
            wait 4000
            trigger player cam4
            wait 4000
            trigger cinematic stop_movie
      }
      trigger stop_movie
      {
            resetscript
            ...
            accum 0 abort_if_bitset 0 // Если в буфере 0 разряд 0 "включен", то сценарий обрывается. Если выключен то -
            trigger airplane fly      // самолет полетит
      }
}

airplane
{
      trigger fly
      {
            ...
      }
}


4. Дверца шкафа должна открываться/закрываться. Дверца шкафа представляет из себя script_mover. Подобные вещи можно наблюдать на картах escape2, tram.

Реализация в сценарии AI.

player
{
      trigger toggle_locker1 // на карте располагаем target_script_trigger с ключом "target" и значением "toggle_locker1". Он свою очередь привязан к func_invisible_user.
      {
            trigger locker1 toggle // Вызов триггера toggle (является своего рода переключателем между состояниями "открыто"/"закрыто") у дверцы locker1.
      }
}
Реализация в сценарии BRUSH.

locker1
{
      spawn
      {
           accum 0 set 0 // 0 - закрыта, 1 - открыта
      }
      trigger toggle
      {
           trigger locker1 open
           wait 5 // "Выжидаем 0.005 сек для того, чтобы значение в буфере 0 успело измениться
           trigger locker1 close
      }
      trigger open
      {
           accum 0 abort_if_not_equal 0 // Проверяем - если не равно 0, значит дверца уже открыта и прерываем сценарий
           accum 0 set 1 // Если проверка успешно прошла, то выставляем единицу ("дверца открыта") и выполняем сценарий по "открыванию"
           ...
      }
      trigger close
      {
           accum 0 abort_if_not_equal 1 // Проверяем - если не равно 1, значит дверца уже закрыта и прерываем сценарий
           accum 0 set 0 // Если проверка успешно прошла, то выставляем ноль ("дверца закрыта") и выполняем сценарий по "закрыванию"
           ...
      }
}

Этот же сценарий можно было решить и через bitset и bitreset, а именно:
locker1
{
      spawn
      {
           accum 0 bitreset 0 // "выключено" - закрыта, "включено" - открыта
      }
      trigger toggle
      {
           trigger locker1 open
           wait 5
           trigger locker1 close
      }
      trigger open
      {
           accum 0 abort_if_bitset 0 // Проверяем - если "включено", значит дверца уже открыта и прерываем сценарий
           accum 0 bitset 0 // Если проверка успешно прошла, то переводим в состояние "включено" ("дверца открыта") и выполняем сценарий по "открыванию"
           ...
      }
      trigger close
      {
           accum 0 abort_if_not_bitset 0 // Проверяем - если "выключено", значит дверца уже закрыта и прерываем сценарий
           accum 0 bitreset 0 // Если проверка успешно прошла, то переводим в состояние "выключено" ("дверца закрыта") и выполняем сценарий по "закрыванию"
           ...
      }
}
_________________
Вот уже много лет российский народ качает права. Пока удалось скачать около 20%. (с)
Последний раз редактировалось Sergey FOXX 15 апр 2008 17:17, всего редактировалось 1 раз.
Заголовок сообщения: Re: Азбука картостроения
СообщениеДобавлено: 27 ноя 2009 16:23
Kessler писал(а):
Повреждаемый материал

Изображение

Этот тутор научит вас разрушать – это слово не означает просто разрушение, но и получить надлежащие развалины, как стена которая в последствии будет иметь трещину
Теперь нам нужно сделать небольшую комнату

Постарайтесь сделать как показано на рисунке с разрушенной дверью в середине. Пока не обращайте внимание на стрелку.


Теперь выделите все части вашей разрушенной двери и нажав ПКМ сделайте из нее func_static . Теперь нажмите N чтобы увидеть свойства этого энтайта(после того как вы сделали из нее func_static она стала энтайтом)
Теперь этому вашему энтайту дайте свойства key : targetname value: debris поставьте галочку на start_invis.


Держите вашу дверь взломанной и нажмите H это на время скроет вашу дверь чтоб она вам не мешала. Когда захотите вы за просто можете вернуть ее нажав shift-H
Теперь вы должны сделать еще одну дверь какой она была до взрыва
Вы должны сделать простой браш а не полную функциональную дверь с текстурой двери и все. Щелкните ПКМ и сделайте из нее func_explosive
И пишите св-ва target debris
Health 30
Type metal
Mass 100

Теперь нажмите Шифт – Н и вы увидите что ваша целая дверь соединилась с разрушенной

Изображение




А как сделать,чтобы когда разрушаешь стену от нее летели камни ?А то у меня получаются какие-то лоскуты как от флага...
_________________
Bewege sich! Oder mich werde erschießen dich an Ort und Stelle!
Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 27 ноя 2009 17:32
Открываете свойства target_effect клавишей N и ставите ему нужные свойства, список свойств, которые можно ему задать, в том-же окне, сверху. Вот из всех, что там присутствуют, выбераете камни. И задаёте ключ:

key: type
Value: brick

Можете ещё fabric попробовать.

Тоже самое делаете в свойствах эксплозива. Таргет-эффект можно не ставить вообще, но с ним горазда красивее.
Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 28 ноя 2009 23:20
Спасибо))))Пробовала сделать как вы сказали и все получиплось без всяких stone и добавления звука :)
_________________
Bewege sich! Oder mich werde erschießen dich an Ort und Stelle!
Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 04 дек 2009 16:23
Люди,можно как то исправить освещение на карте ?
Просто у меня огонь в лампах и факелах отображался как то не реально,попробовала компилировать через это
Изображение
думала качество станет лучше,а вместо этого вся карта вообще теперь освещена ярким белым цветом((((((((
самое противное и файл мап с которым я работаю тоже так сохранился!

Может это можно как то исправить ?Просто жалко карту выбрасывать столько работала над ней :((((
_________________
Bewege sich! Oder mich werde erschießen dich an Ort und Stelle!
Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 10 дек 2009 17:49
Просто белым? Значит это - Q3Map2: (single) BSP -meta...

Как Вы компилировали, никак не влияет на карту. Перекомпилируйте.
_________________
If a key opens many locks, it is a master key.
If a lock is opened by many keys, it is a shitty lock.
Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 15 дек 2009 02:45
Решил написать небольшой мануальчик.Ничге нового,но может кому то окажется полезным.Мы будем делать прохудившийся пол,который проваливается под ногами когда игрок проходит по нему.

Начнем,сделайте ваш пол(я делал из досок но это может быть что угодно,например камень) и назначьте ему - func --func explosive (в свойствах можно ввести type для характерного звука,доски,камни итд см выше).Над этим полом делаем браш,назначаем ему текстуру триггер и делаем его trigger -- trigger once.После этого нужно создать рядом таргет rellay и func timer.Заходим в свойства func timer и вводим значение wait -- 2 (время которое пройдет перед тем как он развалится)Далее делаем так:Выделяем тригер-браш а затем target rellay и жмем ктрл+к -- затем target rellay и func timer (жмем то же) и потом наш функ таймер и сам разрушаемый пол.

Все разрушаемый пол готов,теперь когда игрок пойдет по нему он провалится (можно делать ловушки таким образом).
Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 15 дек 2009 02:58
Небольшой технический вопрос,как сделать что бы лифт в шахте изначально был вверху или при нажатии кнопки туда поднимался?
Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 28 дек 2009 22:09
Alex2106 писал(а):
Небольшой технический вопрос,как сделать что бы лифт в шахте изначально был вверху или при нажатии кнопки туда поднимался?

См. второй пост этой темы.
Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 30 дек 2009 14:29
Лифт с помошью мувера делать,как мне - лишние заморочки.Попробую пока вместо функ_плат функ_дверь юзать(плат от кнопки у меня запустить не получилось).А вот с бомбардировщиками придется через мувер.
Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 17 мар 2010 17:01
Создание прохудившегося пола, стены и т.д.
1. Создайте браш.
2. Назначьте func_explosive.
3. Поставьте крестик на TOUCHABLE.
4. Установите тип материала.

Теперь при задевании этого браша он будет ломаться, даже если его заденет ai.
_________________
Официальный сайт Project-X

Заголовок сообщения: Re: [Мануалы] Операции с объектами, свет, эффекты
СообщениеДобавлено: 12 июн 2010 19:27
Свет.

Позвольте там быть светом
Это - длинная обучающая программа, но я думаю, что это пригодится.

Так что давайте нырнем прямо в начало.
Вы сделали карту, и освещение нуждается в помощи.
Не потейте. Много мапперов находятся в одной лодке.
Давайте добавим некоторый свет.

В Q3A есть только три вида света.

1. Точечный источник света.
2. Текстурный свет.
3. Рассеянный свет.

Давайте начнем с точечный источника света (далее "источник света").
Чтобы добавить источник света, щелкните правой кнопкой мыши на 2д окне и выбрать light из списка, который появляется.
Рисунок в помощь:
Изображение

Затем открывается небольшое окно с установленным по умолчанию значением яркости света 300.
Другой рисунок в помощь
Изображение

Я почти всегда изменяю значение по умолчанию на более меньшее число, в среднем между 100-200, но все карты отличаются. И это имеет значение, как далеко источник света находится от поверхности, которую Вы пытаетесь осветить.
Вы заметите, что этот источник света - просто белый свет. Теперь это не то, чтобы плохо, но что, если Вы хотите небольшой цвет?
Я действительно сказал небольшой цвет. (Я ненавижу карты, которые похожи, что Уолт Дисней подбросил в них). Далее, Вы делаете то, что Вы хотите.
Выберите источник света, нажмите клавишу k. Это откроет меню выбора цвета.
Похоже на это.
Изображение

Тогда все, что необходимо сделать, выбрать цвет, и он будет добавлен к Вашему источнику света как ключ _color наряду с рядом численных значений как 1.0000000 1.000000 0.725490.

Теперь Вы можете войти в меню этого объекта (Вы знаете, надо выбрать объект и нажать клавишу N),
Похоже на это:
Изображение

Есть также некоторые другие вещи, которые можно сделать в этом меню.

Направленный источник света.
Хорошо, что еще может быть сделано? Ну, давайте смотреть на то, что должно сказать меню объекта (клавиша N):

Неотображаемый точечный источник света.
--------КЛЮЧИ--------
light: значение интенсивности света (по умолчанию 300).
_color: значение RGB света (по умолчанию белый - 1 1 1).
target: укажите это на target_position, info_null или info_notnull, чтобы создать эффект центра внимания.
radius: радиус наборов светового конуса для центров внимания (по умолчанию 64). Свет должен направлен на точечный объект.
--------SPAWNFLAGS---
LINEAR: затемнение света будет линейно вместо обратного квадрата расстояния от источника.

Hmmm, цель мы можем указать источнику света. Круто!
Давайте смотреть на выполнение этого.
Можно использовать target_position или info_null или info_notnull, чтобы сделать это.
Снимите выделение с вашего источника света. Теперь щелкните правой кнопкой мыши на 2д окне ниже объекта, выберите пункт Info, затем info_null. Заметка, всегда используйте info_null, или info_notnull для этого, поскольку их не помнит движок игры, и target_positions, таким образом более быстрая скорость.

Теперь переместите info_null, где Вы хотите, чтобы свет сиял. Для этого будет работать пол, но можно указать это что угодно. Как только это делается, снимите выделение (клавиша ESC). Затем выберите источник света (shift с левой кнопкой мыши), и повторите это с target_position. Теперь держите ctrl и нажмите K так, чтобы два из них были соединены. Важно выбрать их в том заказе.

Вот некоторые рис. с тем же самым источником света и той же самым интенсивностью света (200) с различными параметрами настройки.

Только свет текстуры:
Изображение

Текстурный свет плюс источник света соединеный с info_null:
http://www.wemakemaps.com/images/lightt ... e1tarp.jpg

Свет текстуры плюс источник света с включенным флажком linear, связанный с info_null ,
Хм кажется тем же самым как сначала первый только с текстурой:
Изображение

Свет текстуры плюс источник света со значением 100, связанный с info_null:
Изображение

Свет текстуры плюс источник света со значением 100, связанный с info_null
Я также добавил луч света и изменил формубраша с текстурой света:
Изображение

Это - то, как будет выглядеть в редакторе в 3д виде:
Изображение

Bill Brooks © 1999
_________________
Официальный сайт Project-X

Показать сообщения за:  Поле сортировки  
Страница 2 из 6
[ Сообщений: 88 ]

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Кто сегодня был на конференции за последние 24 часа

Пользователи смотревшие этот форум за последние 24 часа: нет зарегистрированных пользователей и 247 гостей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения
Перейти:  

Работает на phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB