Перейти к содержанию

ALAN

Заблокирован
  • Публикаций

    190
  • Зарегистрирован

  • Посещение

  • Отзывы

    0%

Весь контент ALAN

  1. ALAN

    Бд

    В Iptables правила: iptables -A INPUT -p tcp -i eth0 -s xx.xx.xx.xxx --dport 3306 -j ACCEPT Где xx.xx.xx.xxx IP адрес сервера на котором находится сайт, eth0 - имя сетевого интерфейса геймсервера. P.S. Если ломанут сайт и зальют туда шелл то считают доступ на базу гейма с конфигов и попадут в базу независимо от настроек фаервола, так как коннект с шелла будет считаться, что это сайт стучит в базу.
  2. ALAN

    Ошибка

    freya_new - база данных, offline - таблица в этой базе.
  3. ALAN

    Исходники Goddess Of Destruction

    Цену в личку если не трудно. Спасибо.
  4. ALAN

    Дата Центр.

    Ребята, ну что Вы как дети малые, раздела контактов нет, юридических реквизитов нет, фактического адреса нет. Сайт крутится на бесплатной джомле. Отсюда делаем вывод,- ресурс не принадлежит какой либо компании а просто кто то взял где то в аренду сервер, поставил, настроил, установил сайт и попросту барыжит хостами. И слово МЫ на сайте в таких случаях кроме смеха у меня ничего не вызывает, это как правило не мы а кто то один человек. Разумеется никакой своей сетевой инфраструктуры там отродясь и не было и уж темболее ожидать какую либо серьезную защиту от доса там не стоит. То же самое могу сказать о ddos guard на которых пофейлилось куча проектов на старте если набраться терпения и хорошо погуглить в этом плане. Основные критерии при выборе хостера: Уникальный дизайн и движок сайта. Наличие фактического адреса и стационарного телефона в разделе контакты. Наличие непосредственно статуса юридического лица. Наличие лицензий на телематические услуги и услуги передачи данных. Долгий срок работы. Наличие достаточного количества положительных отзывах на порталах посвященных услугам хостеров. Из рекомендаций, если речь идет о выделенном сервере могу порекомендовать Оверсан, датацентр Меркурий.
  5. Перед началом данной статьи необходимо внимательно взглянуть на Вашу сборку. Если там присутствуют файлы с расширением *.so (l2lt.so и.т.п) то сборка по данному реководству работать не будет, для того, чтоб она работала необходимо дополнительно установить и настроить эмуляцию Linux, что могу в дальнейшем расписать если будет в этом необходимость. На FreeBSD прекрасно работают все сборки на исходниках овера и многие другие. Если данных файлов нет, то запасаемся пивком и поехали... Статья ориентирована на новичков в UNIX. OS FreeBSD тестировалась лично мной не один год, и показала большую стабильность (осебенно при DDoS атаке) в работе по сравнению с любой сборкой Linux разве что OS OpenBSD. FreeBSD вообще в узких кругах считается одной из лучших систем, не зря ее используют на своих серверех google и ряд других очень крупных проектов. В то же время она является системой очень требовательной к правильной настройке. Описываю установку и настройку под х64 по той простой причине, что 32 битные платформы на мой взгляд начинают морально устаревать и практически все современные процессоры поддерживают x64. Скачиваем ISO образ под 64 битную платформу: CD http://ftp6.ru.freebsd.org/pub/FreeBSD/ISO...amd64-disc1.iso DVD http://ftp6.ru.freebsd.org/pub/FreeBSD/ISO...d64-dvd1.iso.xz (перед записью файл нужно распаковать) Записываем образ на диск, ставим машину, включаем, заходим в биос, выставляем dvd привод на первое место в загрузку при старте, сохраняем и пускаем в перезагруз. При загрузке FreeBSD лоадера выбираем 1. FreeBSD (default), далее выбираем страну,, кодировку (koi-8r по дефолту), после чего нас выводит на окно параметров установки. Выбираем Standat и жмем enter. Перед нами меню разметки диска. Если на нем есть какие либо разделы, удаляем их клавишей D, после чего выставляем авторазметку (весь диск под систему) последовательным нажатием, сначало клавиша A, затем клавиша Q Перед нами меню установки загрузчика. Выбираем Standart (Install a standart MBR) и жмем enter. После этого мы попадаем в меню разметки разделов диска. Если сервер тестовый, то смело ставьте авторазметку методом последовательного нажатия клавишей A затем Q. Если сервер не тестовый и уже предназначен для работы то к составлению разделов нужно отнестись более внимательно, при необходимости могу проконсультировать, здесь описывать все тонкости не хватит времени. По окончании установки разделов Вас выведет на окно конфигурации установки, где необходимо поставить галочку только на опции Developer (галочка устанавливается клавишей пробел), языковые пакеты не выбираем, нажимаем энтер, нас снова выкинет на окно с выбранной опцией Developer. При помощи TAB перескакиваем на OK и жмем Enter. Опция установки - CD/DVD - Enter. В сл. окне еще раз Enter после чего начнется установка системы. По окончании установки проходим ряд параметров конфигурации: 1. Would you like to configure any Ethernet network devices? YES 2. Do you want to try IPv6 configuration of the interface? NO Окно конфигурации сетевых настроек инрерфейса: Host: srv.domain.com (Обязательно домен 3 уровня. Можно от балды. Если у вас к примеру есть домен domain.com то в окне host укажите что то вроде srv.domain.com или game.domain.com) При нажатии TAB переходим к сл. окну Domain где уже необходим параметр домена 2 уровня - он станет автоматом.) Domain: domain.com IPv Gateway: xx.xxx.xxx.xxx (IP шлюза по умолчанию) Name server: xxx.xxx.xxx.xx (IP DNS сервера) IPv4 Address: xxx.xxx.xxx.xx (IP сервера) Netmask: 255.255.xxx.xxx (маска сети) ОК - Enter. 3. Would you like to bring the re0 (имя вашего интерфейса) interface up right now? YES 4. Do you want this machine to function as a network gateway? NO 5. Do you want to configure inetd and the network services that it provides? NO 6. Would you like to enable SSH login? YES - Будьте внимательны, если Вы отрицательно ответите на этот вопрос то не сможете удаленно зайти на сервер по SSH пока не включите загрузку SSH демона локально. 7. Do you want to have anonymous FTP access to this machine? NO 8. Do you want to configure this machine as an NFS server? NO 9. Do you want to configure this machine as an NFS client? NO 10. Would you like to customize your system console settings? 11. Would you like to set this machine's time zone now? YES - Далее выбираем страну и город. 12. Does this system have a PS/2, serial, or bus mouse? NO 13. User Confirmation Requested The FreeBSD package collection. NO - Никакие пакеты нам сейчас ставить не нужно. 14. User Confirmation Requested Would you like to add any initial user account to the system? YES - создаем дополнительного пользователя в групе wheel, в целях безопасности при удаленном входе на сервер по SSH необходимо залогиниться именно этим юзером, после чего перейти в root командой SU Менять настройки безопасности и позволять удаленно логиниться сразу в рута настоятельно не рекомендую. Выбираем User, жмем enter. Login ID: - имя пользователя. Пусть в текущем примере это будет test UID: - Не трогаем, оставляем как есть. Group: Вводим значение wheel В два сл. окна вводим пароль после чего перепрыгиваем на OK и жмем Enter, более ничего менять не нужно. В появившемся окне выбираем Exit, жмем enter, затем 2 раза вводим пароль который будет использоваться для пользователя root. 15. User Confirmation Requested Visit the general configuration menu. NO Далее в появившемся окне клавишей TAB переходим на кнопку в самом низу X Exit Install и жмем enter. На вопрос о перезагрузке отвечаем положительно (YES) После чего вынимаем диск из DVD привода, подтверждаем выемку в появившемся окне. Машина уйдет в перезагрузку. На этом установка операционной системы FreeBSD завершена. Дожидаемся окончания перезагрузки и переходим к непосредственной настройке системы. Логинимся под пользователем root. (Если работаем локально то можно залогиниться сразу под root) Если выполняем удаленный вход по SSH то необходимо залогиниться под пользователем, которого мы создали, в данном примере test и после этого дать команду su. Система попросит пароль от рута, вводим его (стоит заметить что ввод пароля не будет отображаться никак, даже звездочками). Для удаленной работы по SSH потребуется SSH клиент. Вполне удобен клиент Putty, скачать можно отсюда http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe Проверяем: srv# uname -a FreeBSD srv.domain.com 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Thu Feb 17 02:41:51 UTC 2011 root@mason.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC amd64 srv# Все ОК. Первым делом обновляем дерево портов: srv# cd /usr/ports && portsnap fetch && portsnap fetch extract && portsnap fetch update Дожидаемся окончания, мин. 15, в зависимости от скорости интернет канала и машины. Ставим необходимый для удобства работы софт. Загрузчик файлов. srv# cd /usr/ports/ftp/wget srv# make config Снимаем галочку с IPV6 и жмем ок srv# make install clean Все галочки Options в появившихся кокнах которые будут выскакивать оставляем по умолчанию. Ждем окончания установки. srv# rehash Установка завершена. Ставим файлменеджер MC srv# cd /usr/ports/misc/mc srv# make install clean Параметры в появившихся окнах конфигурации оставляем по умолчанию. srv# rehash Установка завершена. Устанавливаем MySQL сервер. srv# cd /usr/ports/databases/mysql51-server srv# make install clean srv# rehash Настраиваем: srv# cd /usr/local srv# ./bin/mysql_install_db --user=mysql srv# echo 'mysql_enable="YES"' >> /etc/rc.conf Стартуем srv# /usr/local/etc/rc.d/mysql-server start Устанавливаем пароль для пользователя root MySQL, где 1234567 смените на пароль root для MySql (Внимание! Пользователь root системы и пользователь root MySQL вещи совершенно разные, разные должны быть и пароли) /usr/local/bin/mysqladmin -u root password 1234567 Создаем файл настроек: srv# touch /var/db/mysql/my.cnf Редактируем srv# ee /var/db/mysql/my.cnf Вписываем следующее: [mysqld] character-set-server=utf8 collation-server=utf8_general_ci init-connect="SET NAMES utf8" skip-character-set-client-handshake log_error = /var/db/mysql/mysql.err [mysql] default-character-set=utf8 [mysqld_safe] default-character-set=utf8 [client] default-character-set=utf8 [mysqldump] default-character-set=utf8 После того как вписали, нажимаем ESC затем подтверждаем энтером изменения. Это базовые настройки, стоит иметь ввиду, что на серверах с онлайном 300+ необходима более точная настройка MySQL а именно правильное выставление параметров кешей. И совершенно не важно какая операционная система используется, Linux или FreeBSD. Типмчная ошибка многих, бросить все по умолчанию а затем думать почему при большом онлайне начинаются лаги,- потому что при большом онлайне нагрузка на MySQL очень немалая. Еще ко всему сказанному хочу добавить то, что если Вы используете обычные жесткие диски SATA 7200 оборотов, то бодьте готовы к тому, что при онлайне 800+ может возникнуть ситуация, что не хватает скорости успевать отрабатывать запросы мускул. Идеал для геймсервера это SSD c ежедневным бэкапом на другой хард или ftp. Очень часто данная ошибка проявляет себе при открытии сервера, когда масса народа ломится на логинпорт и форум зафлужен воплями о невозможности зайти. Вообще это тонкая и отдельная тема выходящая за рамки данной статьи и описывать все нюансы я не стану. Рестартим MySQL srv# /usr/local/etc/rc.d/mysql-server restart Проверяем srv# ps -aux | grep mysql mysql 86479 0.0 0.0 8296 1920 ?? Is 6:59PM 0:00.00 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/var/db/mysql/my.cnf --user=mysql --datadir=/var/db/mysql --pid-file=/ mysql 86577 0.0 0.6 63272 26340 ?? I 6:59PM 0:00.07 /usr/local/libexec/mysqld --defaults-extra-file=/var/db/mysql/my.cnf --basedir=/usr/local --datadir=/var/db/mysql --log-error=/ root 86596 0.0 0.0 9124 1484 0 S+ 7:06PM 0:00.00 grep mysql srv# Все ОК. Работу с MySQL из коммандной строки описывать не стану, долго да и не нужно, кому нужно тот и сам найдет на просторах интернета. Упростим задачу. Ставим Webmin srv# cd /usr/ports/sysutils/webmin srv# make install clean srv# rehash Добавляем в автозапуск при старте srv# echo 'webmin_enable="YES"' >> /etc/rc.conf Сетапим srv# /usr/local/lib/webmin/setup.sh Log file directory [/var/log/webmin]: Full path to perl (default /usr/bin/perl): Web server port (default 10000): Login name (default admin): Login password: пароль на webmin Password again: пароль на webmin Use SSL (y/n): y Стартуем srv# /usr/local/etc/rc.d/webmin start Заходим: https://192.111.111.111:10000 IP разумеется свой Логинимся: admin и Ваш пароль Меняем язык по умолчанию Webmin - Change Language and Theme - Webmin UI language - Personal choice - Russian UTF-8 Нажимаем Make changes, ждем пока применятся настройки и обновляем страницу. Идем - Службы - Сервер баз данных MySQL Вводим пароль от пользователя root MySql и сохраняем после чего попадаем на страницу конфигурации MySQL. Первым делом удаляем базу Test, затем переходим в Права баз данных и удаляем там все что есть, возвращаемся в список баз данных. Переходим в пункт Права пользователя, Удаляем там целиком все за исключением root localhost Должен остаться только один пользователь root c хостом localhost и заполненным полем шифрованный пароль. Нажимаем создание нового пользователя Создаем поочереди пользователей l2login и l2 server Узлы - оставляем галочку любой так как к серверу MySQL будет коннектиться сайт сервера для выборок статистики и записи аккаунтов. Права - ничего не отмечаем, нажимаем создать. В оканцовке создания пользователей в вэбмине имеем следующее l2login Любой *92CC53429A963CC7A5D91CA0DC471F44E7AACAAB None Нет l2server Любой *92CC53429A963CC7A5D91CA0DC471F44E7AACAAB None Нет root localhost *92CC53429A963CC7A5D91CA0DC471F44E7AACAAB None Все Возвращаемся в список баз данных. Нажимаем создание новой базы данных, имя базы данных l2login, Character set utf8, Collation order utf8_general_ci Анналогичным образом создаем базу l2server Переходим в пункт Права баз данных - Создание новых прав базы данных Базы данных - галочку на Selected - из списка выбираем базу l2login, Имя пользователя l2login, Узлы - любой Права - держа клавишу Shift отмечаем там все пункты и нажимаем создать. Повторяем то же самое для базы l2server. В оканцовке имеем следубщий вид: l2login l2login Любой Все l2server l2server Любой Все Настройка MySQL завершена, мы имеем работающий сервер MySQL с созданными базами и пользователями под логин и геймсервер. Следующим этапом у нас будет установка Jave платформы, установка сборки, и настройка фаервола. Ставим Java srv# cd /usr/ports/java/jdk16 srv# make install clean Убираем там галочку с пункта WEB Enable the browser plugin and Java Web Start, жмем ОК и тут же получаем облом с ошибкой. Ошибка связанная с гемороем лицензионного соглашения. Делаем следующее: srv# cd /usr/ports/distfiles srv# wget http://www.java.net/download/jdk6/6u3/prom...24_sep_2007.jar srv# wget http://www.java.net/download/jdk6/6u3/prom...24_sep_2007.jar Далее идем на http://www.eyesbeyond.com/freebsddom/java/jdk16.html Качаем оттуда Patches 4 (нюанс в том что напрямую его не качнуть так как надо согласиться с лицензионным соглашением) и кидаем скачанный файл куда нибудь на хост, после чего srv# wget http://хост_куда_залили.ru/bsd-jdk16-patches-4.tar.bz2 srv# cd /usr/ports/java/jdk16 srv# make install clean Пролистываем соглашение до конца, вводим yes и нажимаем enter. В выскакивающих окнах конфигураций при установке пакетов оставляем все опции как есть по умолчанию. Непосредственно перед окончанием инсталляции мы получаем очередной облом описанный выше но другого дополнительного пакета. Топаем http://www.FreeBSDFoundation.org/cgi-bin/d..._07-b02.tar.bz2 соглашаемся с соглашением, качаем файл, кидаем на хост. srv# cd /usr/ports/distfiles srv# wget http://хост_куда_залили.ru/diablo-caffe-fr..._07-b02.tar.bz2 srv# cd /usr/ports/java/jdk16 srv# make install clean srv# rehash По окончании установки проверяем: srv# java -version java version "1.6.0_07" Diablo Java SE Runtime Environment (build 1.6.0_07-b02) Diablo Java HotSpot 64-Bit Server VM (build 10.0-b23, mixed mode) srv# Все ОК. Создаем отдельного пользователя без привелегий в системе из под которого будет работать сборка. srv# adduser l2game Username: l2game Full name: l2game Uid (Leave empty for default): Login group [l2game]: Login group is l2game. Invite l2game into other groups? []: Login class [default]: Shell (sh csh tcsh nologin) [sh]: sh Home directory [/home/l2game]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: Use an empty password? (yes/no) [no]: Use a random password? (yes/no) [no]: Enter password: пароль для пользователя Enter password again: пароль для пользователя Lock out the account after creation? [no]: Username : l2game Password : ***** Full Name : l2game Uid : 1002 Class : Groups : l2game Home : /home/l2game Home Mode : Shell : /bin/sh Locked : no OK? (yes/no): yes adduser: INFO: Successfully added (l2game) to the user database. Add another user? (yes/no): no Goodbye! srv# Итого мы создали пользователя с логином l2game Ставим на сервер оболочку bash (нужна для некоторых сборок) srv# cd /usr/ports/shells/bash srv# make install clean srv# rehash srv# cd /bin srv# ln -s /usr/local/bin/bash bash Настраиваем фаервол. В примере описываю настройку PF, мне он очень понравился. Для использования PF крайне желательно пересобрать ядро с его поддержкой а не грузить все отдельным модулем, чем сейчас и займемся. srv# cd /sys/amd64/conf srv# cp GENERIC L2 srv# ee L2 Прямо под концом секции options дописываем следующее: device pf device pflog device pfsync options ALTQ options ALTQ_CBQ # Class Bases Queuing (CBQ) options ALTQ_RED # Random Early Detection (RED) options ALTQ_RIO # RED In/Out options ALTQ_HFSC # Hierarchical Packet Scheduler (HFSC) options ALTQ_PRIQ # Priority Queuing (PRIQ) options ALTQ_NOPCC # Required for SMP build Жмем эскейп и затем подтверждаем энтером сохранение. Далее: srv# config L2 Kernel build directory is ../compile/L2 Don't forget to do ``make cleandepend && make depend'' srv# cd ../compile/L2 srv# make depend && make && make install Ждем окончания сборки и установки нового ядра. По окончании установки создаем скрипт правил фаервола PF: srv# touch /etc/pg.conf Узнаем имя своего сетевого интерфейса: srv# ifconfig У меня это re0, у вас может быть другим. Запомните, если Вы ошибетесь в конфигурационном файле PF в случае удаленной работы вы можете попросту потерять свой сервер после рестарта. Редактируем: srv# ee /etc/pf.conf Приводим файл к следующему виду а так же не забываем отредактировать там свой IP и имя интерфейса: ###Имя Вашего сетевого интерфейса ext_if = "re0" ###IP адрес Вашего сервера ext_ip = "192.168.1.221/32" ###Частные сети(не трогать) private_nets = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8, 169.254.0.0/16, 192.0.2.0/24, 0.0.0.0/8, 240.0.0.0/4 }" ###Нормализация### set block-policy drop set state-policy floating set loginterface $ext_if set limit { frags 100000, states 100000 } set optimization normal set skip on lo0 scrub in all ###Фильтр### antispoof quick for { lo0, $ext_if } block log all block drop in quick on $ext_if from $private_nets to any ###Разрешаем все исходящие соединения по протоколам TCP, UDP, ICMP pass out on $ext_if proto tcp from any to any pass out on $ext_if proto icmp from any to any pass out on $ext_if proto udp from any to any keep state ###Разрешаем входящие на логинсервер pass in on $ext_if proto tcp from any to $ext_ip port 2106 flags S/SA synproxy state ###Разрешаем входящие на геймсервер pass in on $ext_if proto tcp from any to $ext_ip port 7777 flags S/SA synproxy state ###разрешаем SSH pass in on $ext_if proto tcp from any to $ext_ip port 22 flags S/SA synproxy state ###разрешаем входящие на MySQL pass in on $ext_if proto tcp from xxx.xxx.xxx.xx to $ext_ip port 3106 flags S/SA synproxy state pass in on $ext_if proto tcp from xxx.xxx.xxx.xx to $ext_ip port 3106 flags S/SA synproxy state ###Где xxx.xxx.xxx.xx IP на котором работает Ваш сайт а так же ваш домашний IP # чтоб была возможность подконнектиться к мускулу в случае надобности навикатом ###В случае нескольких геймсерверов, когда нужно открыть из вне порт 9014 #pass in on $ext_if proto tcp from xxx.xxx.xxx.xx to $ext_ip port 9014 flags S/SA synproxy state #pass in on $ext_if proto tcp from xxx.xxx.xxx.xx to $ext_ip port 9014 flags S/SA synproxy state #pass in on $ext_if proto tcp from xxx.xxx.xxx.xx to $ext_ip port 9014 flags S/SA synproxy state ###Где xx.xxx.xxx.xx IP Ваших геймсерверов, никому другому на этом порту делать нефик PF очень функциональный фаервол и тут я описал только базовые опции, описывать отдельные опции и все тонкости настроек касаемые защиты от DDoS атак я не стану, кому будет интересно читайте мануалы по PF. Единственное, в данном конфиге я порезал входящий траффик по протаколам UDP и ICMP. На геймсервере данные протоколы вовсе не нужны, причем вырезание входящих коннектов по данным протоколам отметает ряд DDoS атак. Добавляем PF а автозагрузку: srv# ee /etc/rc.conf Дописываем туда: pf_enable="YES" pf_program="/sbin/pfctl" pf_flags="" pf_rules="/etc/pf.conf" pflog_enable="YES" pflog_logfile="/var/log/pf.log" pflog_program="/sbin/pflogd" pflog_flags="" Сохраняем, закрываем. Отправляем сервер в перезагрузку: srv# reboot Сервер готов к установке сборки. Редактируем все конфиги сборки под работу на сервере, пакуем в gzip архив и сливаем на хост. Логинимся по ssh на сервер под созданным пользователем l2game srv# wget http://хост.ру/имя_файла_сборки.gz srv# tar xvzf имя_файла_сборки.gz Устанавливаем права доступа на файлы сборки: srv# find /home/l2game/gameserver -type f -exec chmod 644 {} \; srv# find /home/l2game/gameserver -type d -exec chmod 755 {} \; На все файлы с расширением SH необходимо дать права на запуск: Пример... srv# cd /home/l2game/gameserver srv# chmod +x startgameserver.sh startloginserver.sh Стартуем сборку: srv# cd /home/l2game/gameserver srv# ./startloginserver.sh srv# ./startgameserver.sh Подключаемся игровым клиентом.... Пользуемся... Небольшой FAQ по статье. Почему в MySql нужно создавать отдельную базу под логин и отдельную под гейм, зачем создавать отдельных пользователей а не работать из под учетной записи root MySql? Потому что если у вас хакнут сайт и сольют с конфига данные пользователя root MySql вам не только вайпнут игровые базы, а похерят вообще все базы мускула если таковые будут иметь место. Отдельная база логинсервера полезна если используется один логин и несколько геймов и инсталлить все в одну базу попросту нерационально. Почему нежно создавать отдельного пользователя без привелегий в системе под работу сборки? Потому что если этого не сделать по умолчанию вы стартанете ее под учетной записью root, а пользователь root имеет все права в системе и в случае если ваша сборка будет с шеллами, бэкдорами и прочей нечистью и при этом будет запущена из под рута, Вам так отымеют целиком весь сервер, что вы глазам своим с трудом поверите. Итог - полная переустановка операционки и всего ПО с нуля. В случае хака сборки которая работает из под отдельного пользователя максимум что можно сделать, так это убить все файлы этого пользователя включая сборку и при этом никак не навредить всей системе. А убитые файлы за считанные минуты можно откатить из бэкапа. PS Форумные тролли, критики, которые могут только критиковать чужие труды и у которых за плечами нет ни одной своей работы могут идут лесом дружно взявшись за руки, я не обращаю на ваше нытье ни малейшего внимания. Статья написана мной лично, ни откуда ничего не слизано, опубликована только здесь. По всем вопросам касаемым написанному желательно писать в личку дабы не разводить тут флудильню. Понравилось, жми спасибку, вам это ничего не стоит а мне приятно за час потраченного времени которого у меня катастрофически нехватает.
  6. Шара дизайна dilora.ru с версткой под SW13 http://rghost.ru/private/38390169/5aaf122d...9b03d921097bfc7 Картинки, флеш, js и css тащите сами, в лом, в архиве только tpl файлы.
  7. Куплю русскую локализацию html-ru под HF Перевод должен быть полный 100% С предложениями и ценами в личку.
×
×
  • Создать...