Авторизация Регистрация Забыли пароль?
Реклама

Статьи
Наш игровой сервер
Наши сервисы
Мониторинг серверов
Информация
Нам интересно знать
Популярные теги
Популярные материалы
    Партнеры
    Счетчики
    Вы находитесь:

    Категория: Софт

    Синхронизатор ресурсов CS 1.6 и CS:S (v1.3.3)

    Автор: -=hunter=-

    Дата: 30 декабря 2010

    Просмотров: 1 586

    Комментариев: 6

    Синхронизатор ресурсов CS 1.6 и CS:S (v1.3.3)


    Версия: 1.3.3
    Автор: hunter

    Описание:
    Программа, которая позволяет синхронизировать ресурсы (карты, модели, звуки, спрайты, wad-файлы) между Вашими папками с игрой CS 1.6 (CS Source).

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

    Жесткая ссылка - это по сути тот же файл, визуально будет отображаться как копия исходного файла, но не будет занимать место на жестком диске. Исходный файл и жесткая ссылка обращаются к одним и тем же физическим данным на жестком диске, т.е. редактирование автоматически ведёт к изменению данных и в исходном файле и в жесткой ссылке. Удаление, переименование и перемещение жесткой ссылки никак не сказывается на физических данных файла, а также на исходном файле, и наоборот.


    Зачем нужна программа?
    Бывают ситуации, когда Вы держите на компьютере несколько папок с CS (например, несколько серверов).
    И может быть такое, что в каких-то папках может не доставать карт либо ресурсов (и при создании сервера вылазит ошибка о том, что не хватает какого-то wad'a, модельки, спрайта и т.д.). Вот эту проблему как раз и решает эта программа.


    Ресурсы, которые будут синхронизироваться между папками с CS 1.6:
    1. Все файлы в папке cstrike\maps и в подпапках
    2. Все файлы в папке cstrike\sound и в подпапках
    3. Все файлы в папке cstrike\models и в подпапках
    4. Все файлы в папке cstrike\sprites и в подпапках
    5. Все файлы в папке cstrike\gfx\env и в подпапках
    6. Все файлы в папке cstrike\overviews и в подпапках
    7. Все wad файлы в папке cstrike
    8. Все ресурсы из пунктов 1-7, но уже в папке cstrike_russian (опция включается в настройках)


    Ресурсы, которые будут синхронизироваться между папками с CS Source:
    1. Все файлы в папке cstrike\maps и в подпапках
    2. Все файлы в папке cstrike\sound и в подпапках
    3. Все файлы в папке cstrike\models и в подпапках
    4. Все файлы в папке cstrike\materials и в подпапках
    5. Все ресурсы из пунктов 1-4, но уже в папке cstrike_russian (опция включается в настройках)


    Установка:
    Распаковать в любую папку и запустить


    Требования по использованию программы:
    1. Операционная система не ниже Windows 2000
    2. Папки с игрой CS 1.6 должны находится на одном и том же разделе с файловой системой NTFS


    Особенности программы:
    1. Синхронизация занимает всего несколько секунд (линейно зависит от количества файлов в папках).
    2. Увеличивает свободное место на жестком диске благодаря замене копий файлов жесткими ссылками.




    Изменения в версии 1.3.3:
    1. Незначительные изменения (см. сообщения ниже)


    Изменения в версии 1.3:
    1. Добавлена поддержка CS:S.
    2. Добавлена опция "выход из программы по завершении синхронизации"




    Скачать:
    Скачать v1.3.3
    Похожие публикации
    Комментарии на сайте
    Emakill

    Написал: Emakill 2 января 2011 21:26 Группа: Юзер
    Нехрена неработает! angry
    Цитировать
    -=hunter=-

    Написал: -=hunter=- 3 января 2011 05:45 Группа: Юзер
    Нехрена неработает!

    для работы программы нужно иметь при себе пару библиотек: brain.dll и hands.dll.

    А вообще, пиши по теме, потому как "Нехрена неработает" ниочем не говорит, а только показывают ... вообщем, сдержусь.
    Цитировать
    Zbot

    Написал: Zbot 3 января 2011 13:39 Группа: Юзер
    Лучше попробуй символьные ссылки. У ни перед жёстким преимуществ больше.
    также увидел что программа выполняет процесс линковки в основном потоке. Я бы порекомендовал тебе познакомится с TTHread обьектом, очень помогает, и не вешает основную программу. Там же можно сделать процедуру аборта операции. Вот было бы и хорошо.
    Цитировать
    -=hunter=-

    Написал: -=hunter=- 3 января 2011 17:01 Группа: Юзер
    Zbot, он и так в потоке, просто окно блокирую во время синхронизации. Надо будет попробовать не все окно, а некоторые элементы только блокировать. Операцию аборта я обычно делаю, когда закрываю окно, хотя могу попробовать сделать, чтобы можно быть с помощью кнопки )

    Минусы символьных ссылок:
    1) после создания символьных ссылок нельзя трогать исходные папки, т.е. переименовывать или перемещать, иначе ссылка будет ссылаться на недоступное место.
    2) при удалении символьной ссылки с помощью explorer, удаляются при этом все файлы и папки в исходной папке.

    Обновил до 1.3.1:
    1) При нажатии главной кнопки окно теперь полностью не блокируется, а только некоторые элементы
    2) Теперь помимо запуска синхронизации можно остановить синхронизацию.

    Zbot, как думаешь, TerminateThread не опасна?
    Похоже да, посмотрю, как лучше решить эту проблему.

    Обновил до 1.3.2:
    1) остановка синхронизации теперь безопасно завершается
    Цитировать
    Zbot

    Написал: Zbot 3 января 2011 21:50 Группа: Юзер
    функция terminate ставит лишь свойство terminated в true у обьекта Tthread.

    А вообще все зависит от операций. Но есть такая штука как TThread.onTerminate:=@SomeProc
    выполняется когда поток завершается по TerminateThread

    И всеже придумай возможность отката всего что сделано программой. Т.е. полное удаление символьных ссылкок оторые втыкались программой.
    ^^^ Почему это надо ^^^
    Если во время операции синхронизации сделать "Файл" => "Выход" то, это привёдет к непоняткам.
    Правельно будет, при выходе проверять работает ли выполняющий поток(Проверять на nil), и если да "нежно" закрыть и откатить все что натворил оный поток, а затем закрыть программу.

    Далее если сделать синхронизацию один раз то, для второго раза надо перезапустить программу.

    Далее, вместо TprogressBar может стоит попробовать TGuage?
    Или отображать текущий TpgorgressBar.progrees в Tlabel.Caption(Где-нибудь в сторонке)?

    Недумаю что изначально "полный" ПрогрессБар можно посчитать красивым. тут либо желание разраба, либо ошибка оного же.
    Цитировать
    -=hunter=-

    Написал: -=hunter=- 3 января 2011 22:22 Группа: Юзер
    Т.е. полное удаление символьных ссылкок оторые втыкались программой.

    Да НЕ ДЕЛАЕТ программа никаких символьных ссылок!!!
    Жесткие ссылки только, т.к. они безопасны по сравнению с символьными ссылками.

    Если во время операции синхронизации сделать "Файл" => "Выход" то, это привёдет к непоняткам.

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

    Я еще ничего конкретного не услышал.

    Обновил до 1.3.3:
    теперь "мягко" останавливается поток при выходе
    Цитировать
    Новый комментарий

    Информация

    Посетители, находящиеся в группе lamo, не могут оставлять комментарии к данной публикации.