AMX MOD X
Пятница, 29.03.2024, 12:04:20



Приветствую Вас Гость | RSS
[ Главная ] [ AMXX Simple File Manager [v0.2.37] от 12.04.2010 - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
AMX Mod X Форум » Плагины » Готовые плагины » AMXX Simple File Manager [v0.2.37] от 12.04.2010 (Примитивный файловый+download менеджер средствами AMXX)
AMXX Simple File Manager [v0.2.37] от 12.04.2010
ArgusДата: Четверг, 21.08.2008, 02:31:49 | Сообщение # 1
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Репутация: 8
Статус: Не в сети
AMXX Simple File Manager
v0.1.1 release 02.08.2008
v0.2.25 release 19.06.2009 [v0.2.25]
v0.2.37 release 12.04.2010 [v0.2.37]

Вступление:
Ситуация, например, такая. У провайдера есть игровой 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 http://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 и составляются примерно так:

Quote
//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

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

Quote
// 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


----------
весь код касающийся http закачки написал Bentski (http://kzlt.bentski.lt/) за что ему огромнейший респект и уважуха. (HTTP Downloader v1.0 http://forums.alliedmods.net/showthread.php?p=551998 )

Скачать плагин и исходник:
http://amxmodx.ucoz.ru/load/0-0-0-72-20


Правила форума
Поиск плагинов
Последние сообщения форума
 
BruteДата: Четверг, 21.08.2008, 02:37:17 | Сообщение # 2
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Кому то сильно пригодится...

Только вот приставка amx_ у всех команд раздражает :(
пока её пишешь можно забыть, что хотел ввести...

Спасибо.

 
DaTaДата: Пятница, 22.08.2008, 00:53:09 | Сообщение # 3
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Quote (Argus)
Также, можно при помощи этого плагина обновить сам AMXMODX или METAMOD на сервере (нужно только качать не поверх, а рядом, затем "поменять файлы местами" переименовав их. вообще, рискованная затея).

можно удалить полностью метамод и амхмодх, и он должен работать дальше, до смены карты

а вообще можно было бы организовать какой-то протокол на подобие фтп и сделать GUI оболочку для работы с ним, но это гемор

так что идея плагина хороша, будет время - посмотрю код

 
ArgusДата: Вторник, 26.08.2008, 10:44:40 | Сообщение # 4
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Репутация: 8
Статус: Не в сети
В ходе экспериментов с этим плагином мне удалось получить доступ к любому файлу на том разделе, на котором находится сервер игры. т.е. утверждение о работоспособности плагина только 'в пределах папки cstrike и её подкаталогов' является недействительным.

Правила форума
Поиск плагинов
Последние сообщения форума
 
slogicДата: Вторник, 26.08.2008, 12:54:42 | Сообщение # 5
Генералиссимус
Группа: Админы
Сообщений: 1941
Репутация: 47
Статус: Не в сети
Quote (Argus)
т.е. утверждение о работоспособности плагина только 'в пределах папки cstrike и её подкаталогов' является недействительным.

когда об этом шла речь, то подразумевался механизм кэширования, встроенный в сервер игры. всегда можно написать модуль для amx/x с недостающе функциональностью.
 
ArgusДата: Понедельник, 12.04.2010, 23:40:47 | Сообщение # 6
AMXModX Fan
Группа: Cупер-модеры
Сообщений: 379
Репутация: 8
Статус: Не в сети
встречаем, AMXX Simple File Manager v0.2.36 release 12.04.2010 [v0.2.37] beer

Правила форума
Поиск плагинов
Последние сообщения форума
 
AMX Mod X Форум » Плагины » Готовые плагины » AMXX Simple File Manager [v0.2.37] от 12.04.2010 (Примитивный файловый+download менеджер средствами AMXX)
  • Страница 1 из 1
  • 1
Поиск:

AMX Mod X Russian Community © 2006-2024