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

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

    Категория: Плагины

    AMXX Simple File Manager

    Автор: crash94

    Дата: 9 сентября 2010

    Просмотров: 2 899

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

    AMXX Simple File Manager

    Примитивный файловый+download менеджер средствами AMXX

    Вступление:

    Ситуация, например, такая. У провайдера есть игровой CS сервер, у нас есть rcon от этого сервера или amxx админка и возможность поставить хотя бы 1 единственный плагин как-нибудь. Больше ничего. FTP доступа к папке с сервером игры нету. А управлять хочется, и на должном уровне. Для этого же нужно самому заливать плагины в папку plugins, прописывать их в plugins.ini только как без ftp? А вот так! При помощи этого маленького плагина.

    Описание:
    Плагин с минимально необходимым набором функций для работы с файлами и конфигами в папке cstrike сервера и в подкаталогах.

    Требования:
    CS 1.6
    AMXMODX v1.76d (или другой совместимой версии)

    Установка:
    скачайте плагин. разархивируйте.
    расположите file_manager.amxx в ...\cstrike\addons\amxmodx\plugins
    разместите строку "file_manager.amxx" в файле ...\cstrike\addons\amxmodx\configs\plugins.ini

    Возможности:
    Плагин может: проверить существует ли файл, выдать размер файла, переименовать файл, переместить файл, прочесть содержимое файла, удалить файл, записать строчку в файл, показать содержимое папки, создать папку, удалить папку - всё это в пределах папки cstrike и её подкаталогов. Также плагин может скачать файл с http адреса на сервер (карты, плагины). Скорость скачки ~ 4kb/sec. По завершению закачки пользователь стартовавший закачку будет извещен, если он не отсоединялся от сервера во время неё.
    Также, можно при помощи этого плагина обновить сам AMXMODX или METAMOD на сервере (нужно только качать не поверх, а рядом, затем "поменять файлы местами" переименовав их. вообще, рискованная затея).

    Переменные:
    amx_fcutlen {n} (по-умолчанию=3) - устанавливает, сколько знаков в конце строки обрезать перед вводом в файл посредством amx_fwrite. минимум рекомендуется 2, ибо плагин в результате своей работы последний 2 символа строки делает лишними. Переменная была введена потому, что при чтении строчек из файла отформатированного по разному, каждый раз остаются\обрезаются ненужные\нужные символы. например, для чтения строчек из текстового файла созданного в среде linux рекомендуется значение 2, для win 3. В общем, стоит поэксперементировать и нужное значеним подобрать самому.
    amx_fsilent {0|1} (по-умолчанию=0) - выкл|вкл ответ на ввод команд.

    Команды:
    amx_f - показать текущий путь и имя файла.
    amx_fdef либо amx_fd - установить путь "addons/amxmodx/configs".
    amx_fdef0 либо amx_f0 - установить путь "".
    amx_fdefp либо amx_fp установить путь "addons/amxmodx/plugins".
    amx_fdefm либо amx_fm установить путь "maps".
    amx_fdefl либо amx_fl установить путь "addons/amxmodx/logs".
    amx_fup - установить путь на 1 папку выше.
    amx_fex - проверить, существует ли файл.
    amx_fsize - показать размер файла.
    amx_fread - показать содержимое файла.
    amx_fdir - показать содержимое папки.

    amx_fcd - добавить папку в путь.
    Usage: amx_fcd {folder}
    Example: amx_fcd configs

    amx_fpath - установить путь.
    Usage: amx_fpath {path}
    Example: amx_fpath addons/amxmodx/configs

    amx_fsetpath - установить путь и имя файла.
    Usage: amx_fsetpath {full path}
    Example: amx_fsetpath addons/amxmodx/configs/plugins.ini

    amx_fname либо amx_fn - установить имя файла.
    Usage: amx_fname {filename}
    Example: amx_fname plugins.ini

    amx_fdelete - удалить файл (предварительно дополнительно указав его в amx_fname).
    Usage: amx_fdelete {filename}
    Example: amx_fname conmotd.txt ; amx_fdelete conmotd.txt

    amx_fdeleteall - удалить все файлы в папке. (предварительно дополнительно указав путь к ней в amx_fpath).
    Usage: amx_fdeleteall {foldername}
    Example: amx_fdeleteall plugins

    amx_fwrite - записать строку в файл.
    Usage: amx_fwrite ~"{string}"
    Example: amx_fwrite ~"sys_ticrate 100"

    (спец символ '~' используется для того, чтобы игнорировать последующий за ним знак " и сдвинуть всю строку на 2 символа влево, ибо иначе встречающиеся в строке знаки ";" обрывают ввод строки)

    amx_fwrite2 - записать строку в буфер (max 10).
    Usage: amx_fwrite2 ~"{string}"
    Example: amx_fwrite2 ~"sys_ticrate 100"

    amx_fwrite3 - склеить все строки из буфера + вводную строку и записать результат в файл.
    Usage: amx_fwrite3 ~"{string}"
    Example: amx_fwrite3 ~"sys_ticrate 100"

    amx_fcreatedir - создать папку.
    Usage: amx_fcreatedir {folder}
    Example: amx_fcreatedir my_folder

    amx_fdeletedir - удалить папку.
    Usage: amx_fdeletedir {folder}
    Example: amx_fdeletedir my_folder

    amx_frename - переименовать файл.
    Usage: amx_frename {newname}
    Example: amx_frename plugins.ini.bak

    amx_fmove - переместить файл.
    Usage: amx_fmove {path}
    Example: amx_fmove addons/amxmodx/configs

    //===============================================

    amx_fwritein - записать строку в файл (практически полный аналог amx_fwrite).
    Usage: amx_fwritein ~"{string}"
    Example: amx_fwritein ~"sys_ticrate 100"

    amx_fwriteset - установить номер строчки с которой начнёт запись в файл команда amx_fwritein.
    Usage: amx_fwriteset {string number}
    Example: amx_fwriteset 0

    amx_fclear - отчистить файл.
    Usage: amx_fclear {filename}
    Example: amx_fname plugins.ini ; amx_fclear plugins.ini

    amx_fcopy - сделать копию файла.
    Usage: amx_fcopy {destination path}
    Example: amx_fcopy maps/de_dust2_copy.bsp")
    Example2: (в эту же папку сделать копию): amx_fcopy de_dust2_copy.bsp

    amx_fcomp - сравнить файлы на идентичность.
    Usage: amx_fcomp {file1 path} {file2 path}
    Example: amx_fcomp maps/de_dust2.bsp maps/de_dust2_copy.bsp

    amx_fhash - подсчитать хэш-сумму файла.
    реализация хэш-функции для подсчета хэш-суммы самая примитивная какая мне только пришла в голову, ибо необходимости в сложной я никакой не вижу, а нужда считать хэш хоть как-нибудь была. хэш-функция просто складывает по очереди каждый байт файла.
    Usage: amx_fhash
    Example: amx_fname plugins.ini ; amx_fhash

    //===============================================

    amx_fsetsource - установить источник закачки.
    Usage (HTTP only!): amx_fsetsource {http_link}
    Example: amx_fsetsource https://src.ucoz.net/img/fr/ic/9/online.gif

    amx_fsetdest - установить путь закачки.
    Usage: amx_fsetdest {path/filename}
    Example: amx_fsetdest addons/amxmodx/online.gif

    amx_fstart - начать закачку.

    после удачной закачки плагин увеличивает значение квара сервера decalfrequency на 1 (этот квар крайне ненужный, поэтому выбран именно он). при неудачной отнимает 1. так что можно контролировать удачность загрузки не заходя на сервер через HLSW.

    Примечания:


    команды amx_fread и amx_fdir при использовании через консоль игры часто выдаёт ошибку overflowed. чтобы этого избежать, нужно использовать amx_fread через rcon, например из hlsw.
    ----------
    для заливки на сервер конфигов при помощи команды amx_fwrite удобно составлять "загрузочные" конфиги, которые загружаются с консоли командой exec и составляются примерно так:


    //exec scripts/server/configs/plugins.cfg

    alias "w1" "wait"
    alias "w2" "w1;w1"
    alias "w4" "w2;w2"
    alias "w8" "w4;w4"

    w8;amx_fdef
    w8;amx_fname plugins.ini
    w8;amx_fdelete plugins.ini
    //-----------------------------------------------------------------
    w8;amx_fwrite ~"; AMX Mod X plugins
    w8;amx_fwrite ~"
    w8;amx_fwrite ~"; Admin Base - Always one has to be activated
    w8;amx_fwrite ~";admin.amxx ; admin base (required for any admin-related)
    w8;amx_fwrite ~"admin_sql.amxx debug ; admin base - SQL version (comment admin.amxx)
    w8;amx_fwrite ~"amxbans.amxx
    w8;amx_fwrite ~"
    w8;amx_fwrite ~"; Basic
    w8;amx_fwrite ~"admincmd.amxx ; basic admin console commands
    w8;amx_fwrite ~"adminhelp.amxx ; help command for admin console commands
    w8;amx_fwrite ~"adminslots.amxx ; slot reservation
    w8;amx_fwrite ~"multilingual.amxx ; Multi-Lingual management
    w8;amx_fwrite ~"

    если входная строчка длинее 116 символов, то нужно её разбить на несколько строчек и грузить на сервер при помощи команд amx_fwrite2 и amx_fwrite3.


    выглядит это так:

    Quote
    w8;amx_fwrite ~"// Set in seconds how fast players can chat (chat-flood protection)
    w8;amx_fwrite ~"amx_flood_time 0.75
    w8;amx_fwrite ~"
    w8;amx_fwrite2 ~"// Amount of reserved slots, amx_hideslots must be 1 to use this cvar (for more details see comments in plugi
    w8;amx_fwrite3 ~"n source)
    w8;amx_fwrite ~"amx_reservation 4

    в результате получим это:


    // Set in seconds how fast players can chat (chat-flood protection)
    amx_flood_time 0.75

    // Amount of reserved slots, amx_hideslots must be 1 to use this cvar (for more details see comments in plugin source)
    amx_reservation 4


    Скачать
    _file_manager.rar [0 b] (cкачиваний: 267)
    Похожие публикации
    Новый комментарий

    Информация

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