HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть II
Страницы (32): « Первая ... « 27 28 29 30 [31] 32 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Crystallize так он и так отдельный.

Ну что же. Продолжаю страдать с миграцией на Core Profile (дежурно замечу, что с миграцией на Вулкан страдания можно смело умножать на 10 или даже на 100). Прикол в том что тривиальнейшие вещи превращаются в какое-то законченное мозгоёбство. Ну вот помните функцию ещё из халфы - FillRGBA? Цветную полосочку нарисовать или квадратег там. Ну чёт такое.
Что может быть проще? В Core Profile этого нельзя в принципе. Это должна быть полноценная геометрия в VBO и с шейдером. А шейдеры у меня без материалов не рисуются в принципе. Тут конечно следует оговориться.
Да, я мог бы конечно нарисовать какие-то вещи прямо внутри движка, захардкодить, даже мог бы шейдеры встроить прямо в бинарник, но это идёт вразрез с моей концепцией. Не нужно мне такого, вот оно что.
Так что - в общем порядке. Грёбанный дефолтный материал со встроенной текстурой *white и погнали. Тварство.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 223823

Старое сообщение 09-03-2025 14:29
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Как я тебе переведу POINTSIZE в функцию от масштаба разрешения? Оно же нелинейное.


Ну тоесть ты делаешь шрифт с поинтсайзом допустим 10 на маленьком разрешении и растягиваешь его? Я правильно понимаю? Поинтсайз даёт картинку символа всегда в фиксированом разрешении?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 09-03-2025 в 16:16

Сообщить модератору | IP: Записан
Сообщение: 223826

Старое сообщение 09-03-2025 16:13
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Ну тоесть ты делаешь шрифт с поинтсайзом допустим 10 на маленьком разрешении и растягиваешь его?

Я растягиваю не просто шрифт, а всю композцию на текущий момент.
Поэтому меню и мыльное. Меню было создано в начале пандемии, с 2020-м году, с тех пор я его и не касался. Ну вот, через непрямое воздействие - из-за перехода на Core Profile, у меня наконец-то дошли руки до меню.
А с поинтсайзом не так всё очевидно. Какой поинтсайз использовать для разных разрешений? Можно ли его как-то вычислить?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 223828

Старое сообщение 09-03-2025 16:35
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Дядя Миша
А ты можешь высчитать PPI для разрешения?

Поидее так:
новый поинтсайз = опорный поинтсайз * (новый PPI/опорный PPI).

Например у нас опорный поинтсайз 12pt.
Опорное разрешение 1920x1080 (96 PPI)
Новое разрешение 3840x2160 (192 PPI)

Тогда новый поинтсайз = 12 * (192/96) = 24 pt.

Но чтобы рассчитать PPI нужно знать диагональ экрана, возможно ли программно её получить из драйвера?

Нейронка предложила следующее:

C++ Source Code:
1
#include <windows.h>
2
#include <iostream>
3
#include <cmath>
4
 
5
int main() {
6
  // Получаем разрешение экрана в пикселях
7
  int screenWidth = GetSystemMetrics(SM_CXSCREEN);
8
  int screenHeight = GetSystemMetrics(SM_CYSCREEN);
9
 
10
  // Получаем физический размер экрана в миллиметрах
11
  HDC hdc = GetDC(NULL);
12
  int widthMM = GetDeviceCaps(hdc, HORZSIZE);
13
  int heightMM = GetDeviceCaps(hdc, VERTSIZE);
14
  ReleaseDC(NULL, hdc);
15
 
16
  // Вычисляем диагональ в дюймах
17
  double diagonalMM = std::sqrt(widthMM * widthMM + heightMM * heightMM);
18
  double diagonalInches = diagonalMM / 25.4;
19
 
20
  // Вычисляем PPI
21
  double PPI = std::sqrt(screenWidth * screenWidth + screenHeight * screenHeight) / diagonalInches;
22
 
23
  // Выводим результат
24
  std::cout << "Screen Resolution: " << screenWidth << "x" << screenHeight << std::endl;
25
  std::cout << "Physical Size: " << widthMM << "x" << heightMM << " mm" << std::endl;
26
  std::cout << "Diagonal: " << diagonalInches << " inches" << std::endl;
27
  std::cout << "PPI: " << PPI << std::endl;
28
 
29
  return 0;
30
}


Примечания:
Точность данных: Физический размер экрана, возвращаемый GetDeviceCaps, может быть неточным на некоторых мониторах, особенно если драйверы не предоставляют корректную информацию.

Многомониторные системы: Этот код работает только для основного монитора. Для работы с несколькими мониторами используйте EnumDisplayMonitors и GetMonitorInfo.

Высокий DPI: На системах с высоким DPI (например, Retina-экраны) может потребоваться учет масштабирования Windows. Используйте SetProcessDPIAware или SetProcessDpiAwareness для корректной работы.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 09-03-2025 в 17:00

Сообщить модератору | IP: Записан
Сообщение: 223830

Старое сообщение 09-03-2025 16:49
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
А ты можешь высчитать PPI для разрешения?

А почему по ссылке написано "эту статью предлагается удалить"? Уж не ты ли её редактировал?

Ну в целом это видимо именно то, что мне нужно, спасибо, пригодится.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 223831

Старое сообщение 09-03-2025 19:31
-
Crystallize
Житель форума

Дата регистрации: Jul 2007
Проживает: Новосибирск
Сообщений: 4738
Возраст: 35

Рейтинг



Цитата:
Дядя Миша писал:
Crystallize так он и так отдельный.

В том смысле что он не будет унаследован от класса модели.

Сообщить модератору | IP: Записан
Сообщение: 223833

Старое сообщение 10-03-2025 03:49
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
Crystallize писал:
В том смысле что он не будет унаследован от класса модели.

До позавчерашнего дня он и не был унаследован от класса модели.
А теперь унаследован

Добавлено 10-03-2025 в 10:34:

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

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 223835

Старое сообщение 10-03-2025 07:34
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Дядя Миша
Стоит ли расчитывать на разметку для UI пока ты им занялся? У тебя же уже есть свой аналог json, можно его использовать для разметки.

Цитата:
Дядя Миша писал:

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


О это дело хорошее.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 10-03-2025 в 08:33

Сообщить модератору | IP: Записан
Сообщение: 223836

Старое сообщение 10-03-2025 08:31
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Стоит ли расчитывать на разметку для UI пока ты им занялся?

Вот прямщас - не стоит. Но поскольку я занялся, я буду там наводить порядок, улучшать ситуацию и переписывать меню. Чтобы нормально было.
Я это мыло в меню сделал в начале 2020-го года, когда буквально не знал за что хвататься - ни своих форматов уровней, моделей, рендер не написан, ни-че-го. Да и скриптового языка тогда уже не было. Теперь же, когда всё это появилось, я возращаюсь к старым проблемам и делаю рефакторинг.
К тому же это всё равно необходимо для правильной работы Core Profile, то есть два в одном получается. Ну и функционал расширяется, теперь можно будет использовать шейдеры в 2D.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 223838

Старое сообщение 10-03-2025 16:47
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
Для шрифтов это требование довольно легко соблюсти - достаточно унаследовать класс шрифта от класса модели. Технически шрифт сам по себе и есть модель - он тоже использует юниформ-контейнер для хранения данных и всё такое. Тут проблем нет. А мелкие шероховатости для такой имплементации элементарно решаются в процессе отладки.
То есть система сразу заработает как надо, а если что-то вдруг будет не так, исправится после очередного бета-тестирования.
Совсем иная ситуация с рендерингом отдельно стоящих картинок.
Картинка очевидно не может быть сущностью, типа модели. Уже хотя бы потому что в материале этих картинок может быть сколько угодно загружено. Ну то есть, логическая нестыковка.
Поэтому я принял следующее решение: любые картинки будут загружаться как шрифты. То есть с тем же именем, создавать для себя уникальный материал ну и всё такое. И представлены будут как шрифт с одной буквой ну или с одной иконкой, если хотите.
К тому же, поскольку там целый набор взаимодействия с ректанглами, к этой сущности куда проще и удобнее прикрутить динамические текстуры с обновляемыми пикселями. То есть концепция достаточно стройная и надёжная. Но не без подводных камней, о которых я расскажу немного позже.


Я кстати тогда тебе и говорил, что движок по идее может работать с абстрактным массивом пикселей. А вот как туда их загружать это можно вынести и в пользовательскую часть. Чтобы каждый мог прикрутить свои форматы. Но ты помню сказал что архитектура под такое не заточена.

Цитата:
Дядя Миша писал:
К тому же это всё равно необходимо для правильной работы Core Profile, то есть два в одном получается. Ну и функционал расширяется, теперь можно будет использовать шейдеры в 2D.


Это правильно. Шейдеры в 2д нужны, особенно с прозрачностью и альфой всякой. Щас мода вернулась ещё из аэро 7ки делать размыливающий фон шейдер

Цитата:
Дядя Миша писал:
Вот прямщас - не стоит. Но поскольку я занялся, я буду там наводить порядок, улучшать ситуацию и переписывать меню. Чтобы нормально было.


Это хорошо. Язык разметки нужен, т.к. верстать в коде UI это полный ужас.

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Отредактировано FiEctro 10-03-2025 в 17:12

Сообщить модератору | IP: Записан
Сообщение: 223839

Старое сообщение 10-03-2025 16:59
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Чтобы каждый мог прикрутить свои форматы

Да откуда ты понабрался этой пакости?
Что значит "прикрутить свои форматы" ? А может ты тогда заодно прикрутишь вообще всё, и операционную систему впридачу, и компьютер сам соберёшь и кремний из песка тоже добудешь, я правильно понимаю?

Цитата:
FiEctro писал:
Язык разметки нужен, т.к. верстать в коде UI это полный ужас.

Ну для классических халфовских-кваковских менюшек он не нужен.
Пусть уж остаются какие есть. А вот для нового абстрактного меню, я безусловно такой язык сделаю.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 223840

Старое сообщение 10-03-2025 19:04
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Итак, я полностью переработал концепцию движковых шрифтов, изменил их формат, снял некоторые ограничения, добавил мета-информацию и заставил всё это рисоваться с использованием системы материалов и кастомных шейдеров. Отдельно хочу отметить тот факт, что мне даже удалось сохранить нетронутой отрисовку в движке, что на первый взгляд было довольно непросто сделать. То есть движок рендерит ряд вещей, которые используются для отладки, а так же пресловутый FillRGBA. И ещё кадры видео. Разумеется мне совершенно не хотелось завязывать это внутри движка с системой материалов. Ибо материалы, как вы понимаете - они пользовательские. То есть у нас бы наружу торчали материалы, которые грузит и использует сам движок, а не пользователи.
Кто-то конечно скажет - да ну ерунда, такое у всех есть, но мне эта ситуация не нравилась изначально. Что движок что-то там такое грузит.
В то же время никакой хард-код внутри движка мне тоже делать совершенно не хотелось и я не стал его делать. На данный момент движок грузит ровно один уникальный материал под названием *fixedpipeline который используется для рендеринга всяких вещей, не нуждающихся в специализированном материале. То есть, проще говоря, я сэмулировал FFP в ограниченном объеме, прямо внутри движка. В принципе система получилась прозрачная и пользователям она мешать не должна. Так что с 2D отрисовкой слава богу всё получилось и устаканилось.

Следующий шаг - нарисовать через шейдеры и материалы отладочную геометрию. Но возможно что-то из нее придётся и выбросить за ненадобностью, будем посмотреть.

Добавлено 12-03-2025 в 18:32:

Вообще, в дальнейшем, если мне понадобится подгрузить дополнительные материалы из движка (ещё один или два), то я так и буду использовать звезду в качестве индикатора системности.

Добавлено 12-03-2025 в 18:48:

После того как я переведу отладочную отрисовку на VAO + шейдеры можно будет наконец-то подвести итоги по вышенаписанному и двигаться дальше.

Добавлено 12-03-2025 в 19:43:

Провёл ревизию отладочной визуализации. Насчитал 7 (СЕМЬ) не связанных друг с другом систем. Охренеть конечно. Буду сокращать, выбрасывать ненужное, нужное объединять с другим. В идеале конечно бы оставить одну, но к сожалению не получится. Впрочем поглядим.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 223843

Старое сообщение 12-03-2025 16:43
-
FiEctro
Кот Арсис

Дата регистрации: Aug 2006
Проживает: код
Сообщений: 13497
Возраст: 33

Рейтинг



Цитата:
Дядя Миша писал:
азумеется мне совершенно не хотелось завязывать это внутри движка с системой материалов. Ибо материалы, как вы понимаете - они пользовательские. То есть у нас бы наружу торчали материалы, которые грузит и использует сам движок, а не пользователи.
Кто-то конечно скажет - да ну ерунда, такое у всех есть, но мне эта ситуация не нравилась изначально. Что движок что-то там такое грузит.


Но свои то материалы и шейдеры для 2д можно делать?

__________________
У котёнка мокрый нос и гладенькая шерсть, у него забавный хвост и быстрых лапок шесть. Две задних, две средних и две передних лапы, такая многоножка получилася у папы.
Он ученый — папа мой — зверушек изучает, гуляет по помойкам, ловит крыс и чаек. Две крысы белокрылые и чайки две унылые покрытые пупырчатою кожей лягушат без пёрышек тоскуют и ускакать спешат.
А ещё есть муравей большой размером с гуся он пугает всех зверей, и я его боюся, когда он ковыляет на лапках на своих.
И в двери ударяет, и начинает стих: Я — муравей, воды налей! Не меньше ведра, напиться мне пора!

Сообщить модератору | IP: Записан
Сообщение: 223844

Старое сообщение 12-03-2025 16:53
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
FiEctro писал:
Но свои то материалы и шейдеры для 2д можно делать?

конечно можно, любые без ограничений. Только вот практика подсказывает - это мало кому нужно.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 223845

Старое сообщение 12-03-2025 18:20
-
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33010
Нанёс повреждений: 392 ед.

Рейтинг



Потихоньку осваиваю появившиеся возможности для двухмерного рендеринга. Добавил разные материалы, кстати появилась возможность менять цвета в превьюшках модели игрока через палитру. Top и Bottom color.
Раньше это работало только для самих моделек, т.е. в 3D.

Сделал предварительную ревизию отладочной отрисовки - выбросил поддержкку .pts файлов (это где описана утечка на уровне с помощью точек). Устаревшая штука, .lin файлы гораздо лучше с этим справляются.

Так же выбросил всю визуализацию коллизии. Толку от нее всегда было немного. В силу устройства коллижен детектора в XashNT, единственное место, где что-то могло пойти не так - это стадия децимации-симплификации треугольников. Ну и за пять лет я выловил единственный такой случай - в квейке на e1m2 перед дверью, закрытой серебрянным ключом внезапно вырос лишний треугольник. Сделал чуть более строгие правила для децимации - баг прошёл. А что же касается мест, где игрок внезапно проваливается под уровень из-за того, что он как бы подныривает под плоскость, то помочь в их обнаружении данная визуализация всё равно не могла. Но при этом потребляла довольно много памяти на хранение и время при загрузке на построение. Да и код, который для этого использовался вообщем-то больше был нигде неприменим.

Так что выбросил.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 223848

Старое сообщение 13-03-2025 16:19
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 14:37. Новая тема    Ответить
Страницы (32): « Первая ... « 27 28 29 30 [31] 32 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Разработка игр > Наши проекты > XashNT: блог разработчика
Часть II
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024