|
Здравствуйте, гость ( Вход | Регистрация )
|
![]() ![]()
Сообщение
#41
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
Название: RusHub
Текущая версия: 2.3.10 Платформы: Windows (XP/Vista/7), GNU Linux, FreeBSD, Mac OS X, Solaris Разрядность: 32, 64 Лицензия: Основан на: verlihub SourceForge: GoogleCode: Официальный сайт: RusHub.org Полная поддержка и использование протокола NMDC. Хаб поддерживает работу с ipv6. Хаб поддерживает ADC протокол (тестирование). Хаб постоянно совершенствуется и развивается. Описание настроек хаба sAddresses - адреса хаба (указываются через пробел) bAdcOn - включить режим работы хаба по протоколу ADC sHubName - имя хаба sTopic - топик хаба (приписка к имени хаба) sHubBot - ник основного бота хаба. sLocale - языковая локаль. По умолчанию устанавливается локаль системы (для России устанавливаем Russian_Russia.1251) bSendUserIp - отсылать ip адреса пользователей, то есть использовать ли характеристики UserIP и UserIP2 (1 - да, 0 - нет). bDelayedMyINFO - отсылать команды $MyINFO и $Quit с задержкой. Из-за отсутствия пока задержки входа рекомендуется установить этот параметр в 0. bCheckSRNick - проверять ник в $SR команде. bCheckRctmNick - проверять ли ник в RCTM команде (1 - проверять, 0 - не проверять). bCheckCTMIp - проверять ip в CTM команде bCheckSearchIp - проверять ip при активном поиске bDelayedLogin - записывать пользователя только после полной отсылки ему списка всех пользователей (на больших хабах список всех пользователей может не отправиться за один раз, поэтому для таких хабов рекомендуется включить эту опцию). bNicklistOnLogin - при входе на хаб отправлять список всех пользователей во время записи пользователя, а не по команде $GetNickList. iTimeoutAny - время на получение от пользователя какой-либо команды (таймаут соединения) iTimeoutLogon - максимальное время входа на хаб (в сек.). iMaxPassiveRes - количество возвращаемых хабом результатов при пассивном поиске. iTimerConnPeriod - период таймера соединения в мсек. (системная настройка, не рекомендуется изменять). iTimerServPeriod - период таймера сервера в мсек. (системная настройка, не рекомендуется изменять). iStepDelay - задержка в мсек на каждом цикле (системная настройка, не рекомендуется изменять). iStrSizeMax - максимальная длина команды, отправленной на хаб пользователем. iStartPing - время начала пинга пользователя в сек (отсчитывается от момента входа на хаб). iPingInterval - период, через который пингуется пользователь. iMaxLevel - уровень логирования событий хаба (от 0 до 6). По умолчанию 0 - не логировать события. iMaxErrLevel - уровень логирования ошибок хаба (от 0 до 2). По умолчанию 2 - логировать все ошибки. iSysLoading - коэффициент загруженности системы (системная настройка, не рекомендуется изменять). iMaxNickLen - максимальная длина ника (проверяется только у пользователей с профилем -1). iMinNickLen - минимальная длина ника (проверяется только у пользователей с профилем -1). bDisableNoDCCmd - запретить использование команд, которые не относятся к NMDC командам (не начинаются со знака $, за исключением команды пинга и команды чата). iFloodTime... и iFloodCount... - параметры флуда (количество iFloodCount за время iFloodTime (в сек.)) bRegMainBot - регистрировать основного бота. bMainBotKey - ключ у основного бота. sMainBotMyINFO - MyINFO основного бота. sMainBotIP - ip основного бота. bWebServer - включить веб-сервер (по умолчанию отключен). sWebAddresses - адреса веб сервера (указываются через пробел). Через ; можно указывать порт. iWebTimeout - тайм-аут соединения с веб сервером (в сек.). Время бездействия, по истечению которого веб-сервер закрывает соединение с клиентом. iWebStrSizeMax - максимальный размер сообщения отсылаемого клиентом. bMAC - включить определение MAC адреса (по умолчанию отключено). iUsersLimit - глобальное ограничение числа пользователей (по умолчанию -1 - проверка отключена) bUDPServer - включить udp сервер (1 - включить, 0 - отключить) sUDPAddresses - udp адреса хаба sMainPath - основная директория хаба sPluginPath - директория плагинов sLogPath - директория логов sLangPath - директория языковых настроек sLang - текущая языковая настройка (имя файла без расширения) iMaxSendSize - настройка, отвечающая за максимальный размер буфера отсылки (по умолчанию 2818047). При превышении этого размера пользователь отключается от хаба. Lua plugin: LUA API события UID - идентификатор пользователя, который отослал команду. UID представляет из себя указатель на реальную структуру соединения пользователя (type(UID) = "userdata"). Введён с целью оптимизации выбора пользователя без нагрузки lua стека. OnStartup() Описание: Функция выполняется при старте скрипта. Возвращаемое значение: любое OnExit() Описание: Функция выполняется при остановке скрипта Возвращаемое значение: любое OnError(sErrMsg) Описание: Функция выполняется при ошибке в скрипте Возвращаемое значение: true или 1 - не останавливать скрипт при ошибке во время выполнения Исключения составляют таймерные функции, которые останавливают скрипт при ошибке, дабы не загружать систему и не прийти к переполнению лога OnScriptError(sScriptName, sErrMsg, bStoped) Описание: Функция выполняется при возникновении ошибки в скрипте sScriptName. sErrMsg - сообщение с ошибкой. Флаг bStoped равен true если скрипт, в котором возникла ошибка, был остановлен, в противном случае флаг bStoped равен false. Функция не вызывается для текущего скрипта. Для отслеживания ошибок в текущем скрипте нужно использовать функцию OnError(sErrMsg). Напомню, что по умолчанию скрипт отключается при ошибке, отключение скрипта можно предотвратить возвратом true в функции OnError этого скрипта. Возвращаемое значение: true или 1 - не вызывать это событие в ниже стоящих скриптах (т.е. прекращение действия события). OnScriptStart(sScriptName) Описание: Функция выполняется при старте скрипта sScriptName. Возвращаемое значение: true или 1 - не вызывать это событие в ниже стоящих скриптах (т.е. прекращение действия события). OnScriptStop(sScriptName) Описание: Функция выполняется при остановке скрипта sScriptName. Возвращаемое значение: true или 1 - не вызывать это событие в ниже стоящих скриптах (т.е. прекращение действия события). OnUserConnected(UID) Описание: Функция выполняется при входе пользователя. Функция выполняется после отправки пользователю первичной команды $Lock и до любого другого действия на хабе. На данном этапе определён только IP адрес, порт и мак пользователя. Возвращаемое значение: true или 1 - не отправлять при входе надпись: "Этот хаб работает под управлением..." OnUserDisconnected(UID) Описание: Функция выполняется после закрытия соедиения с пользователем. Функция является последней функцией перед окончательным удалением соединения. На данном этапе определён только IP адрес, порт и мак пользователя, все остальные данные уже удалены. Возвращаемое значение: любое OnUserEnter(UID) Описание: Функция выполняется при окончательном входе пользователя, после добавления пользователя в списки. Функция является последним этапом входа на хаб. Возвращаемое значение: любое OnUserExit(UID) Описание: Функция выполняется при выходе пользователя, перед удаление пользователя из списков. Функция является первым этапом выхода. Возвращаемое значение: любое OnSupports(UID, sData) Описание: Функция выполняется при обмене характеристиками между клиентом и сервером. Функция не будет выполняться, если клиент не поддерживает никаких дополнений и характеристик. Возвращаемое значение: true или 1 - не отправлять характеристики хаба клиенту. OnKey(UID, sData) Описание: Функция выполняется при получении ключа от клиента. Возвращаемое значение: true или 1 - проверять ключ. OnValidateNick(UID, sData) Описание: Функция выполняется после проверки ника и до проверки необходимости пароля. Ник пользователя уже определён. Возвращаемое значение: true или 1 - отправить запрос на получение пароля. Позволяет проводить регистрацию по средствам скриптов. OnMyPass(UID, sData) Описание: Функция выполняется после поступления на хаб пароля от пользователя. Возвращаемое значение: true или 1 - вход оператора (отправка команды $LogedIn). OnVersion(UID, sData) Описание: Функция выполняется после поступления на хаб версии протокола. Возвращаемое значение: true или 1 - проверять равенство версии 1,0091. OnGetNickList(UID, sData) Описание: Функция выполняется до отсылки списка пользователей. Возвращаемое значение: true или 1 - не отсылать список. OnMyINFO(UID, sData) Описание: Функция выполняется при отправке на хаб MyINFO строки. Функция выполняется после всех проверок параметров и до рассылки всем пользователям. Возвращаемое значение (игнорируется при первой отправке, а работает только при последующих): 1) return false, return nil, return 0 - безусловное выполнение события 2) return true, return 1 - блокировка события 3) return 2 - выполнеие события и блокировка после обхода всех скриптов 4) return 3 - выполнение публичного события для всех соединений, кроме соединения, породившего это событие 5) return 4 - выполнение публичного события для всех соединений, кроме соединений, имеющих такой же ip адрес, что и соединение, породившее это событие Примечание: Возвращаемое значение игнорируется при первой отправке на хаб MyINFO строки, так как в случае блокировки события пользователь будет скрыт (возможно эту политику следует пересмотреть (опустить) в дальнейшем). OnChat(UID, sData) Описание: Функция выполняется при отправке в чат сообщения пользователем. Функция выполняется после всех проверок и до отправки. Возвращаемое значение: 1) return false, return nil, return 0 - безусловное выполнение события 2) return true, return 1 - блокировка события 3) return 2 - выполнеие события и блокировка после обхода всех скриптов 4) return 3 - выполнение публичного события для всех соединений, кроме соединения, породившего это событие 5) return 4 - выполнение публичного события для всех соединений, кроме соединений, имеющих такой же ip адрес, что и соединение, породившее это событие OnTo(UID, sData) Описание: Функция выполняется при отправке в сообщения приват. Функция выполняется после всех проверок и до отправки. Возвращаемое значение: true или 1 - не отсылать сообщение. OnConnectToMe(UID, sData) Описание: Функция выполняется при попытке активного соединения. Функция выполняется после всех проверок и до отправки. Возвращаемое значение: true или 1 - не соединять пользователей. OnRevConnectToMe(UID, sData) Описание: Функция выполняется при попытке пассивного соединения. Функция выполняется после всех проверок и до отправки. Возвращаемое значение: true или 1 - не соединять пользователей. OnSearch(UID, sData) Описание: Функция выполняется при поиске. Функция выполняется после всех проверок и до отправки. Возвращаемое значение: 1) return false, return nil, return 0 - безусловное выполнение события 2) return true, return 1 - блокировка события 3) return 2 - выполнеие события и блокировка после обхода всех скриптов 4) return 3 - выполнение публичного события для всех соединений, кроме соединения, породившего это событие 5) return 4 - выполнение публичного события для всех соединений, кроме соединений, имеющих такой же ip адрес, что и соединение, породившее это событие OnSR(UID, sData) Описание: Функция выполняется при поступлении на хаб результатов пассивного поиска. Функция выполняется после всех проверок и до отправки. Возвращаемое значение: true или 1 - блокировать результаты поиска. OnAny(UID, sData, iType) Описание: Функция выполняется при поступлении на хаб любой команды. Возвращаемое значение: true или 1 - блокировать команду. OnUnknown(UID, sData) Описание: Функция выполняется при поступлении на хаб любой не известной команды. Возвращаемое значение: true или 1 - не блокировать команду. OnKick(UID, sData) Описание: Функция выполняется при поступлении на хаб команды кика. Возвращаемое значение: любое. OnOpForceMove(UID, sData) Описание: Функция выполняется при поступлении на хаб команды перенаправления. Возвращаемое значение: любое. OnGetINFO(UID, sData) Описание: Функция выполняется при поступлении на хаб команды $GetINFO. Возвращаемое значение: true или 1 - не отсылать пользователю MyINFO запрошенного пользователя. OnFlood(UID, iType, iNum) Описание: Функция выполняется при обнаружении флуда со стороны пользователя. Может служить для устаноки бана за флуд или для разрешения флуда ОПераторам хаба. Параметр iType указывает тип команды, которой флудили. Параметр iNum указывает номер срабатываемого флуда 1 или 2 (см. настройки флуда). Возвращаемое значение: true или 1 - не отключать пользователя. OnWebData(WebID, sData) Описание: Функция выполняется при поступлении данных на веб-сервер. Возвращаемое значение: true или 1 - не разъединять пользователя по окончанию работы данного события. OnConfigChange(sName, sValue) Описание: Функция выполняется при изменении настройки. Параметр sName - название измененной настройки, sValue - новое значение настройки Возвращаемое значение: любое. Событие срабатывает только после изменения настройки при помощи объекта Config. OnMCTo(UID, sData) Описание: Функция выполняется при отправке приватного сообщения в чат. Функция выполняется после всех проверок и до отправки. Возвращаемое значение: true или 1 - не отсылать сообщение. LUA API функции Core.SendToAll(sData, sNick, sFrom) Описание: Функция отправляет данные sData всем пользователям, которые находятся на хабе. Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.SendToUser(UID/sToNick/tNicks, sData, sNick, sFrom) Описание: Функция отправляет данные sData пользователю с идентификатором UID (User ID) или с ником sToNick или таблице ников tNicks. Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.SendToAllExceptNicks(tExcept, sData, sNick, sFrom) Описание: Функция отправляет данные sData всем пользователям, которые находятся на хабе, кроме пользователей, ники которых указаны в таблице tExcept, если таковые находится на хабе. Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.SendToProfile(iProfile/tProfiles, sData, sNick, sFrom) Описание: Функция отправляет данные sData профилю/профилям. Если в первом аргументе функции указано число, то данные отправляются указанному профилю, если в первом аргументе указана таблица, то данные отправляются профилям, которые указаны в этой таблице. Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Описание: Функция отправляет данные sData всем пользователям, ники которых указаны в таблице tNicks, если таковые находится на хабе. Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Функция устарела. Используйте вместо неё функцию Core.SendToUser(tNicks, sData, sNick, sFrom) Core.GetUser( Описание: Функция возвращает UID пользователя по нику sNick. Описание: 2 - MyINFO строка (sMyINFO) 3 - пользовательские данные (sData) 4 - пользователь в оп-листе, то есть имеет ключик (bInOpList) 5 - пользователь скрыт в ник-листе (bHide) 6 - пользователь в ip-листе, то есть ему отсылаются ip адреса всх пользователей (bInIpList) Функция устарела. Используйте вместо неё прямую установку параметров: UID[sName] = Value или Core.GetUser(sNick)[sName] = Value, где sName - это одна из строк: "iProfile", "sMyINFO", "sData" и тд. Core.GetUsersCount() Описание: Функция возвращает текущее количество онлайн пользователей. Core.GetTotalShare() Описание: Функция возвращает текущую суммарную шару всех пользователей хаба. Core.Disconnect(UID/sNick) Описание: Функция отключает пользователя по идентификатору UID, или по нику sNick. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.DisconnectIP(sIP, iProfile/tProfiles) Описание: Функция отключает всех пользователей с указанным IP. Если указан профиль/таблица с профилями iProfile/tProfiles, то отключаются только пользователи с указанным профилем/профилями. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.RestartScripts(iType) Описание: Функция перезапускает все скрипты. Если параметр iType отсутствует, равен nil или равен 0, то перезагружаются все скрипты без исключения. Если параметр iType равен 1, то перезагружаются все скрипты, кроме работающих на данный момент. Если параметр iType равен 2, то перезагружаются все скрипты, кроме текущего скрипта (из которого была вызвана данная функция). Возвращает true. Core.RestartScript(sScriptName) Описание: Функция перезапускает скрипт с именем sScriptName. Если параметр sScriptName отсутствует или равен nil, то функция перезапускает текущий скрипт. Возвращает true в случае успеха, nil в случае неудачи, nil и сообщение об ошибке в случае синтаксической ошибки. Core.StopScript(sScriptName) Описание: Функция останавливает скрипт с именем sScriptName. Если параметр sScriptName отсутствует или равен nil, то функция останавливает текущий скрипт. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.StartScript(sScriptName) Описание: Функция запускает скрипт с именем sScriptName. Возвращает true в случае успеха, nil в случае неудачи, nil и сообщение об ошибке в случае синтаксической ошибки. Core.MoveUpScript(sScriptName) Описание: Функция поднимает скрипт с именем sScriptName в дереве выполнения. Если параметр не указан, то поднимается текущий скрипт. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.MoveDownScript(sScriptName) Описание: Функция опускает скрипт с именем sScriptName в дереве выполнения. Если параметр не указан, то опускается текущий скрипт. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.GetScripts() Описание: Функция возвращает таблицу со скриптами как таблицы с полями sName, bEnabled, iMemUsage. Core.GetScript(sScriptName) Описание: Функция возвращает таблицу со скриптом таблицу с полями sName, bEnabled, iMemUsage. Если имя не указано, то возвращается таблица текущего скрипта. Core.GetGVal(sScriptName, sParam) Описание: Функция возвращает значение глобальной переменной с именем sParam скрипта sScriptName. Функция работает только с переменными типов: string, number, boolean, lightuserdata и table, для остальных типов будет возвращать nil. Возвращает значение в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.SetGVal(sScriptName, sParam, Value) Описание: Функция устанавливает значение глобальной переменной с именем sParam скрипта sScriptName. Функция работает только с переменными типов: string, number, boolean, lightuserdata и table. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.SetCmd(sData) Описание: Функция устанавливает новую команду для функций последующих скриптов. Устанавливаемая команда должна быть синтаксически правильной, то есть соответствовать по синтаксису команде текущего события (API функции события). В противном случае функция не изменит команду и вернёт nil и соответствующее сообщение. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.GetUsers(sIP, bAll) Описание: При отсутствии аргументов функция возвращает таблицу со всеми уже полностью вошедшими на хаб пользователями (с UID-ми всех вошедших пользователей хаба). Core.GetUsers(true) - таблица со всеми пользователями хаба, даже которые только входят и ещё не вошли. Core.GetUsers(sIP) - таблица с UID'ми вошедших пользователей с указанным IP Core.GetUsers(sIP, true) - таблица со всеми пользователями с указанным IP. Core.AddTimer(iId, iInterval, sFunc) Описание: Функция добавляет таймер с идентификатором iId и интервалом срабатывания iInterval (в мсек). Если указано имя глобальной функции sFunc, то эта функция и будет выполняться, если имя функции не указано, то скрипт ищет глобальную функцию OnTimer (в параметр функции передаётся идентификатор). Идентификатор может повторяться. Возвращает количество зарегистрированных таймеров с таким iId в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.DelTimer(iId) Описание: Функция удаляет таймер по идентификатору iId. Идентификатор может повторяться, однако, удаляется таймер по идентификатору, поэтому удалятся все таймеры с указанным идентификатором. Удаляются таймеры только текущего скрипта! Таймеры с таким же идентификатором других скриптов не удаляются! Возвращает количество удалённых таймеров в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.GetUpTime() Описание: Функция возвращает время работы хаба (в сек.) Описание: Функция возвращает настройку хаба sName. Какого бы типа не была настройка, всегда возвращается строковый тип. В случае неудачи возвращает nil и сообщение об ошибке. Функция устарела. Используйте вместо неё объект: Config[sName] Описание: Функция устанавливает настройку хаба sName в значение sValue. Однако, исключения составляют настройки sHubIP, iMainPort, sSubPorts, которые нельзя изменить. При изменении настройки sHubName или sTopic отправляется соответствующая команда. После изменения, настройки сохраняются. При изменении sHubBot и/или bRegMainBot - автоматически перерегистрируется бот. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Функция устарела. Используйте вместо неё прямую установку параметров: Config[sName] = sValue Core.GetLang(sName) Описание: Функция возвращает "языковую" настройку sName. В случае неудачи возвращает nil и сообщение об ошибке. Core.SetLang(sName, sValue) Описание: Функция устанавливает "языковую" настройку хаба sName в значение sValue. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.Call(sScriptName, sFunc, ...) Описание: Функция вызывает функцию sFunc другого скрипта sScriptName с параметрами, которые указываются в аргументе 3, 4 и тд. Параметры функции и возвращаемые значения функции могут быть только следующих типов: string, number, boolean, table и userlightdata. Функция Core.Call возвращает все те значения, которые возвращает функция sFunc скрипта sScriptName. В случае ошибки функция возвращает nil и сообщение об ошибке. Core.SendToAllExceptIPs(tExcept, sData, sNick, sFrom) Описание: Функция отправляет сообщение всем пользователям, за исключением пользователей с ip адресами, которые указаны в таблице tExcept. Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.SendToIP(sIP, sData, sNick, sFrom, iProfile/tProfiles) Описание: Функция отправляет сообщение sData всем пользователям с указанным IP адресом sIP. Если указан параметр sNick, то сообщение sData отправляется в чат от ника sNick. Если указаны параметры sNick и sFrom, то сообщение sData отправляется в приват от отправителя sFrom с ником sNick. Если указан профиль/таблица с профилями iProfile/tProfiles, то сообщение отправляется только указанным профилям с данным IP адресом. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.RegBot(sNick, bKey, sMyINFO, sIP) Описание: Функция регистрирует бота с ником sNick. Если bKey равен true, то бот регистрируется с ключиком. sMyINFO - это часть MyINFO строки (часть после ника, начиная с описания и до конца MyINFO). sIP - возможный ip адрес для бота. Обязательным параметром является только первый параметр - sNick. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.UnregBot(sNick) Описание: Функция удаляет регистрацию бота с ником sNick из списка. Возвращает true в случае успеха, nil и сообщение об ошибке в случае неудачи. Core.SetHubState(iNum) Описание: Функция устанавливает состояние хаба. iNum = nil или iNum = 0 - остановка хаба. iNum = 1 - рестарт хаба. Остальные значения заразервированы на будущее Core.Redirect(UID/sNick, sAddress[, sReason]) Описание: Перенаправляет пользователя на адрес sAddress с причиной sReason. Причину указывать не обязательно. Возвращает true в случае успеха, nil и сообщение с ошибкой - в случае неудачи Config - объект конфигурационных настроек хаба Config.table() - таблица с названиями всех возможных настроек хаба Core.sMainDir - основной путь, по которому располагается хаб Core.sScriptsDir - абсолютный путь, по которому располагается директория скриптов Core.sHubVersion - название и версия хаба Core.sLuaPluginVersion - название и версия плагина Core.sSystem - название и версия ОС _TRACEBACK = debug.traceback - способ включить stack trace для скрипта Параметры пользователя UID.sNick - ник UID.sIP - ip UID.iProfile - профиль UID.bInOpList - пользователь в оп-листе, то есть имеет ключик UID.bInIpList - пользователь в ip-листе, то есть ему отсылаются ip адреса всех пользователей UID.bInUserList - пользователь полностью вошёл и добавлен в список пользователей UID.bHide - пользователь скрыт в ник-листе UID.iPort - порт хаба UID.iPortConn - порт соединения UID.sMacAddress - мак адрес UID.sVersion - версия протокола UID.sData - вспомогательное текстовое поле для различных нужд UID.UID - UID юзера (lightuserdate) UID.sSupports - параметр $Suppurts команды UID.sMyINFO - MyINFO строка UID.sDesc - описание UID.sTag - тэг UID.sClientName - название клиента UID.sClientVersion - версия клиента UID.sMode - режим UID.iUsHubs - обычные хабы UID.iRegHubs - рег хабы UID.iOpHubs - оп хабы UID.iSlots - слоты UID.iLimit - ограничитель скорости скачивания с пользователя (L:x) UID.iOpen - открытые экстра слоты (O:x) UID.iBandwidth - ограничитель скорости скачивания с пользователя (B:x) UID.iDownload - ограничитель скорости скачивания пользователем (D:x) UID.sFraction - ограничитель скорости скачивания пользователем/с пользователя (F:x/y) UID.sConn - соединение UID.iByte - магический байт UID.sEmail - email UID.iShare - шара в байтах UID.iEnterTime - время входа на хаб (время отсылки на хаб команды $Key) UID.sIPConn - ip адрес (хост) хаба, на который был принят пользователь UID.bKick - способность ОПератора к кику UID.bRedirect - способность ОПератора к перенаправлению Текущая версия: ![]() ![]() Lua плагин: ![]() ![]() Pdb файлы: ![]() ![]() ![]() ![]() Исходники можно скачать с: SVN: Спасибо сказали: Nickolya, BIMMER71, Jaska, intlive, Wariner, DEL, FallenAngel, Invisible, mariner, fixx, Ksan, Serx, Артём, serrrios, ShadoWx, Maximum, Otshelnik-Fm, Vizunchik, Accelerator, Karumo, PomanoB, -=Alexandr=-, Infinity_Love, alex82, ExC0tiC, rival, KT315, Drakula, Alexey, Phazeus, Andrew Frost, BeN, Kingston, Sekretchik, CrazyKiller, Saymon21, hondas, Dimon21, X-Sky, TiGRpp, KamoK, ART8150, lewonchik, LOPD, andromed, Alexey5176, -=FugeN=- 2, SKIFI, stone, Egerj1, ke(x)one, AltSide, Jarkrait, arktik, Mangust, kma21 |
|
|
![]() |
![]()
Сообщение
#42
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.2.7
Added: Сделан таймерный кэш для массовой рассылки (оптимизация обходов списка, актуальная на больших хабах). Added: Сделан параметр настроек "глобальное ограничение общего числа пользователей". Added: Наконец-то добавлена возможность установки сервиса/демона (проблема с установкой директории для конфигурационных файлов в windows решена). Для показа помощи по доступным командам вводим в консоли: rushub.exe -h (набор команд для window и для linux несколько различается). Added: Добавлено логирование изменения уровня нагрузки на хаб. Fixed: Изменена кодировка по умолчанию для файла настроек с windows-1252 на windows-1251. Fixed: Оптимизирована аллокация при конкатенации протокольных команд. Fixed: Закрыта незначительная утечка в памяти (проявлялась при удалении бота). |
|
|
![]()
Сообщение
#43
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.2.8
lua plugin v 1.27 Added: Сделан пинг при проверке занятого ника Fixed: Устранен баг в функции Core.RegBot (появился в версии 2.2.7 из-за добавления параметров логирования) Fixed: Поправлен luaconf.h (не работал луа плагин в линуксе из-за некорректности этого файла, если сборка была с этим (модифицированным) файлом) Fixed: Поправлен путь к папке libs (смена корневой директории для линукса) Fixed: Поправлен путь для файла luaerr.log в lua плагине (сделать абсолютный путь вместо относительного) |
|
|
![]()
Сообщение
#44
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.2.9
lua plugin v 1.28 Added: Сделан параметр настроек для дополнительных ip:port. Вместо настроек: sHubIP, iMainPort и sSubPorts теперь одна настройка sAddresses, в которой можно через пробел писать ip адреса (или хост-адреса) и через двоеточие различные порты. Если порт не указан явно, то берётся порт по умолчанию 411. Пример: Код <Item Name="sAddresses">dc.hub.ru:413 127.0.0.1 192.168.0.1:4111</Item> Added: В lua плагине сделана функция, возвращающая список всех возможных настроек хаба: Config.table() - функция возвращает таблицу с названиями настроек. Таким образом, теперь можно написать простейший обход настроек хаба: Код for _, v in ipairs(Config.table()) do print(v, Config[v]) end Added: Сделана поддержка команды $MCTo. В lua плагине за эту команду отвечает событие OnMCTo. Added: Сделана возможность остановки windows сервиса (подробности в команде -h). Added: Сделано формирование логов по дате запуска хаба. Fixed: Пересмотрена политика занятости ника (была актуальная проблема для unix систем - висели "мёртвые" соединения). Fixed: Сделан рефакторинг кода. Fixed: Сделана проверка внутренней версии плагина и запись в лог сообщения о не поддерживаемой версии плагина. |
|
|
![]()
Сообщение
#45
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.2.10
lua plugin v 1.29 Added: Добавлена возможность логирования в syslog. Added: Добавлены в пинг стандартные функции антифлуда. Added: Добавлена шара в приветственное сообщение. Added: Введены причины дисконнекта. Added: Сделана возможность показа ip (хоста) сервера, к которому коннектился пользователь (UID.sIPConn). Added: Добавлена функция Core.Redirect(UID/sNick, sAddress[, sReason]). Причину указывать не обязательно. Added: Дабавлен параметр юзера UID.bKick. Установка этого параметра в true даёт право ОПератору кикать других юзеров Added: Дабавлен параметр юзера UID.bRedirect. Установка этого параметра в true даёт право ОПератору перенаправлять других юзеров Fixed: Исправлен баг удаления открытых соединений при использовании poll в линуксе. Fixed: Починен входящий пинг. Fixed: Оптимизирована работа парсера. Fixed: Оптимизировано приветственное сообщение, сделан его кеш и убраны секунды. Fixed: Загнан интерфейсы для плагинов в один файл для удобства использования сторонними разработчиками. P.S. В случае обновления хаба рекомендуется удалить старый файл lang.xml для того чтобы изменилось приветственное сообщение |
|
|
![]()
Сообщение
#46
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.2.11
lua plugin v 1.30 Added: Добавлено логирование в веб сервере Added: Некоторый рефакторинг. Added: Сделана папка под логи Fixed: Починено взаимодействие между хабом и плагинами (передача векторов между хабом и плагинами) |
|
|
![]()
Сообщение
#47
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.2.12
lua plugin v 1.31 Fixed: Починен параметр bHide (сломался после введения общего кэша). Fixed: Поправлены права на создание папок в линуксе. Fixed: Исправлены пути lua модулей для линукса. Fixed: Починены метатаблицы объектов Config и UID. Added: Введено дополнительное логирование и отлов исключений в windows Спасибо сказали: |
|
|
![]()
Сообщение
#48
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.2.13
lua plugin v 1.32 Added: В windows добавлен отлов всех исключений с трейсом. Теперь после "падения хаба" (хаб теперь не падает, а программа просто закрывается) создаётся файл exception.txt, который содержит информацию о проблеме. Для полноценной информации нужно чтобы файлы с символами rushub.pdb и lua.pdb лежали рядом с rushub.exe. Возможно этого не всегда будет достаточно, и могут потребоваться символы системных либ, однако хотя бы так. Fixed: Исправлен баг в метатаблице UID (рекурсивный вызов). |
|
|
![]()
Сообщение
#49
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.2.14
lua plugin v 1.33 Added: Реализован стектрейс lua-ошибок: _TRACEBACK = debug.traceback. Fixed: Устранен баг с уборкой мусора от UID. Fixed: Устранен баг в функции закрытия соединения (poll функционал в select случае). Fixed: Объединены функции Core.SendToNicks и Core.SendToUser (функция Core.SendToNicks осталась, но считается устаревшей) Fixed: Усовершенствована функция Core.GetUsers. Разделились возвращаемые пользователи на группы: все и все вошедшие (Core.GetUsers(bAll), Core.GetUsers(sIP, bAll)). Core.GetUsers() - вернёт только уже полностью вошедшие на хаб пользователей Core.GetUsers(true) - вернёт всех пользователей Аналогично и для случая возврата по ip: Core.GetUsers(sIP) и Core.GetUsers(sIP, true) Fixed: Изменена кодировка в файле scripts.xml с windows-1252 на windows-1251. Fixed: Подправлен путь до файла lua.hpp (lua/lua.hpp). Fixed: Файл luaerr.log переменён в папку logs. Спасибо сказали: |
|
|
![]()
Сообщение
#50
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.0
lua plugin v 2.0 Added: Добавлено определение версии в системах UNIX Added: Добавлен показ в логе загружаемого плагина (имя и версия) Added: Добавлен терминальный сигнал SIGTSTP (Ctrl-Z) Added: Реализован активный поиск со стороны хаба (udp поиск). Added: Полноценная поддержка команды UserIP (для возможности использования клиент должен отослать в $Support характеристику UserIP или UserIP2) Added: Добавлены настройки: sMainPath - основная директория Fixed: Исправлены некоторые не значительные утечки в памяти Fixed: Изменена нотация и проведен рефакторинг кода Fixed: Исправлено логирование (в логгер добавлен буфер для логирования событий до загрузки настроек логирования) Fixed: Исправлен баг в Core.sSystem (возвращалась пустая строка, если скрипт автоматически запускался при старте хаба) Fixed: Устранён баг с выставление флага пассивного режима Fixed: Функция SendToAllExceptIps не работала, а так как её никто не использовал, то для единого стиля функция переименована в SendToAllExceptIPs Fixed: Исправлен счётчик закрываемых соединений Fixed: Оптимизация алгоритма проверки при массовой рассылке Fixed: Изменены идентификаторы команд: Код 0 — $MultiSearch
1 — $MultiSearch Hub: 2 — $Search Hub: 3 — $Search 4 — $SR 5 — $SR UDP 6 — $MyINFO 7 — $Supports 8 — $Key 9 — $ValidateNick 10 — $Version 11 — $GetNickList 12 — Chat 13 — $To 14 — $Quit 15 — $MyPass 16 — $ConnectToMe 17 — $RevConnectToMe 18 — $MultiConnectToMe 19 — $Kick 20 — $OpForceMove 21 — $GetINFO 22 — $MCTo 23 — $UserIP 24 — Ping 25 — Unknown |
|
|
![]()
Сообщение
#51
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.1
lua plugin v 2.1 Added: Сборка win64 Added: Введено юнит-тестирование хаба Fixed: Устранён баг в lua плагине (удаление из списка) Fixed: Проверено/устранено подтекание памяти Fixed: Исправлен баг в функции получения mac-адреса Fixed: Проведён рефакторинг и оптимизация |
|
|
![]()
Сообщение
#52
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.2
lua plugin v 2.2 Fixed: Устранен баг в списке удаляемых таймеров Fixed: Убран автозапуск хаба непосредственно после установки сервиса Fixed: Исправлен lang файл по умолчанию Fixed: Устранен баг циклического вызова при отсутствии файла лога Fixed: Устранен баг в вызове параметров UID Fixed: Устранен баг в вызове события OnScriptError |
|
|
![]()
Сообщение
#53
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.3
lua plugin v 2.3 Added: Поддержка ipv6. Пример настройки одновременного прослушивания ipv4 и ipv6 адресов: Код <Item Name="sAddresses">0.0.0.0:411 [::]:411 [fe80::219:7dff:fe86:e017]:413</Item> Адреса указываются через пробел. Порт указывается через двоеточие (если порт отсутствует, то берётся порт по умолчанию 411), при этом, ipv6 обязательно необходимо заключать в квадратные скобки (ipv4 также может быть заключен в квадратные скобки, однако для ipv4 это необязательное требование). Также вместо ip адреса может быть указан хост, а вместо числового значения порта может быть указан его буквенный аналог (например: 80 <=> http, 443 <=> https, 512 <=> exec и тд.).Fixed: Упрощено взаимодействие плагинов |
|
|
![]()
Сообщение
#54
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.4
lua plugin v 2.4 Added: Добавлена задержка для процесса остановки windows службы Added: В файл RusHub.xml добавлены относительные (относительно него) пути, которые при загрузке заменяются на абсолютные, а при сохранении настроек в файл - обратно в относительные Fixed: Устранен баг в команде $UserIP Fixed: Устранен баг в lua api функции SendToIP Fixed: Устранен баг в установке ipv6 адреса без порта Fixed: Устранен баг в тримировании пустой строки Fixed: Изменена логика работы события OnExit при остановке хаба (теперь событие отрабатывает до дисконнекта всех пользователей хаба) Fixed: Проведено профилирование и оптимизация ядра хаба Fixed: Немного снижено потребление памяти |
|
|
![]()
Сообщение
#55
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.5
lua plugin v 2.5 Fixed: Оптимизация запросов на соединение. Одновременный приём до 64 соединений за цикл (до этого было 1 соединение за цикл). Fixed: Проведен стресс-тест с последующей оптимизацией, что позволяет отныне хабу держать 10k+ соединений. Fixed: Устранён баг в команде $SR UDP. Отсутствовала настройка длины команды. Fixed: Оптимизированы события в Lua плагине. Для каждого события создан свой список скриптов. Таким образом, при вызове события не происходит никаких лишних обходов (обходятся только скрипты, в которых есть функция того или иного события). |
|
|
![]()
Сообщение
#56
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.6
Added: Добавлена частичная поддержка ADC протокола (вход/выход и чат). Для переключения хаба в ADC режим работы, нужно установить настройку bAdcOn. Fixed: Устранена проблема с поиском пользователей в 64 битной системе. Fixed: Устранен баг с установкой MyINFO из скрипта. Спасибо сказали: |
|
|
![]()
Сообщение
#57
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.7
lua plugin v 2.6 Added: Добавлено использование системы сборки GNU Autotools. Added: Добавлена настройка iMaxSendSize, отвечающая за максимальный размер буфера отсылки (по умолчанию 2818047). При превышении этого размера пользователь отключается от хаба. Fixed: Устранена повторная отсылка команды $Hello. Fixed: Устранена уязвимость, при помощи которой можно было выкинуть с хаба зарегистрированного пользователя. Fixed: Частичный рефакторинг кода. |
|
|
![]()
Сообщение
#58
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.8
lua plugin v 2.7 Added: Добавлена возможность установки параметров MyINFO. Текущие параметры: sDesc - описание пользователя (строка); Added: Добавлена возможность установки из Lua своих параметров следующих типов данных: строки, числа, логические. Added: Сообщения в логах хаба стали более наглядными. Добавился констроль строк и уровни логирования: FATAL - критическая ошибка (уровень 0); Added: Добавлена поддержка поиска и соединения клиентов в ADC. Fixed: Устранен баг в UDP поиске (не работал UDP поиск). Fixed: Устранен баг с таймерами в lua (функция Core.AddTimer не вызывалась RunTime, а могла вызываться только непосредственно в событии OnStartup). Fixed: Устранен баг в пути, по которому пишутся логи lua плагина. Fixed: Произведена локальная оптимизация и рефакторинг, а также уменьшено потребление памяти хабом. |
|
|
![]()
Сообщение
#59
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.9
lua plugin v 2.8 Added: Добавлен показ сообщения при первом отключении после частых переподключений. Added: Добавлен языковый файл English.xml.example. Added: Добавлен единственный таймер на длительность входа и соответствующая настройка: iTimeoutLogon. Fixed: Модифицирован формат времени в логах. Fixed: Исправлена ошибка, возникающая при ipv6 коннекте. Fixed: Исправлен баг в отключениях при антифлуде (несоответствие с настройками). Fixed: Обновлен tinyxml до версии 2.6.2. Fixed: Удалены таймеры, а также соответствующие им настройки: iTimeoutKey, iTimeoutNick, iTimeoutLogin, iTimeoutMyinfo. iTimeoutGetpass. Fixed: Исправлен баг в проверке ника. Теперь если входит юзер с профилем -1, а на хабе пользователь с таким ником уже есть, то входящий отключается. Если же входит юзер с профилем не равным -1, то отключается тот, кто находится на хабе с его ником (защита для зарегистрированных от обрыва соединений). |
|
|
![]()
Сообщение
#60
|
|
![]() RusHub team lead ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз ![]() |
rushub v 2.3.10
lua plugin v 2.9 Fixed: Обновлен Zlib 1.2.7. Fixed: Обновлен Lua 5.1.5. Fixed: Устранены некоторые незначительные баги, утечки, глюки. Fixed: Рефакторинг кода и частичная поддержка стандарта ISO C++. |
|
|
![]() ![]() |
Похожие темы
![]() |
Сейчас: 8.9.2024, 2:54 |