myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
История благодарностей участнику Nickolya. Спасибо сказали: 772
Дата поста: В теме: За сообщение: Спасибо сказали:
26.12.2010, 19:33 SmilesLimiter
API2 | Бан за злоупотребление смайлами
zorx007, смайлы все прописаны в файле, они берутся только оттуда и это вроде очевидно. Под раздачу попало слово :Хмм: в нем содержится 2 смайла: сам :Хмм: и :Х оба смайла прописаны в файле и т.к. 2й смайл архитектурно другой, но входит в состав первого, то произошел такой глюк (оторвать руки тем, кто делал эти буквенные обозначения смайлов). Решение данной проблемы - удалять найденные смайлы в сообщении, вот что для этого делаем:
Код
tSmiles[MakeNormMagicCharacters(sLine)] = 1
заменяем на
Код
table.insert(tSmiles, MakeNormMagicCharacters(sLine))
затем меняем
Код
    local iSmilesCount = 0
    for sSmile in pairs(tSmiles) do
        for sSmileFound in string.gmatch(sMsg, "("..sSmile..")") do
            iSmilesCount = iSmilesCount + 1
на
Код
    local iSmilesCount, i = 0
    for _, sSmile in ipairs(tSmiles) do
        sMsg, i = sMsg:gsub(sSmile, '')
        iSmilesCount = iSmilesCount + i

На всякий случай, для особо ленивых, перезалил скрипт в 1 сообщении с фиксом магнетов (в виде опции) и этими правками, качайте лучше оттуда)
zorx007
26.12.2010, 16:24 Ваши Вопросы И Предложения По Поводу Форума
Ksan, добавил! В оба шаблона. По-идее где-то должна быть настройка этого, в шаблоне есть опция, но я ее не нашел...
+ сделал label'ы для этих надписей, теперь можно не прицеливаться в чекбокс, а кликать по надписи) Пожалуйста!
P.S.: И для тех, кому надо сделать подобное, - little howto.
Ksan, Accelerator, Alexey
22.12.2010, 1:23 Перебор файлов в каталоге
Допустим как-то вот так:
Код
sWeNeedDataInFiles = "some data here"
tData = {}

require"lfs"

function attrdir (path)
    for file in lfs.dir(path) do
        if file ~= "." and file ~= ".." then
            local f = path..'/'..file
            -- print ("\t "..f)
            local attr = lfs.attributes (f)
            assert (type(attr) == "table")
            if attr.mode == "directory" then
                attrdir (f)
            else
                local h = io.open(f, 'r+')
                if h then
                    local sData = h:read('*a')
                    if sData:find(sWeNeedDataInFiles, 1, true) then
                        tData[f] = sData
                    end
                    h:close()
                end
            end
        end
    end
end

attrdir ("./somepath/")


Лишь немного переделал функцию из примеров.
Invisible
22.12.2010, 1:08 ChatLogsMySQL
API2 | Лог главного чата
Мы перешли на переделанный скрипт Алекса, чего и вам советую: ChatHistorySQL, ибо этот уже не поддерживается. В базе нашего хаба уже приближается к 300000 записей и всё работает на ура big_smile.gif
Kingston
20.12.2010, 22:46 SmilesLimiter
API2 | Бан за злоупотребление смайлами
zorx007, могу предложить попробовать вставить после
Код
function CountSmiles(sMsg)
вот такой код:
Код
sMsg = sMsg:gsub("(magnet:%S+)", "")
zorx007
19.12.2010, 14:46 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Цитата
заменить "table.maxn" на "#"
Это никак не связано с апи, это функции языка.

Функция должна выглядеть как минимум вот так:
Код
function OnChat(tUser, sData)
    local _, _, sMess = string.find(sData, "^%b<>%s(.*)$")
    if sMess then
        for key in pairs(sTrigs) do
            if (string.find(String2Lower(sMess), key)) then
                local answer = string.gsub(sTrigs[key][math.random(1,#sTrigs[key])], "%b[]", tUser.sNick)
                Core.SendToAll(sMess, tUser.sNick)
                Core.SendToAll(answer, sBot)
                return true
            end
        end
    end
end
Sekretchik
8.12.2010, 0:54 HELP & FAQ по RusHub'у!
Есть предложение открыть wiki по русхабу думаю поможет новичкам...
Хорошо, сделаю по возможности, обещаю. Тогда вопрос вот в чем: надо ли вики еще и для форума или хватит его возможностей?
DEN 007
29.11.2010, 0:17 StatPX
API1, API2 | Статистика хаба
Saymon21
28.11.2010, 18:15 Объединение хабов
Развитие ресурса
Преды убрал, раз флуд, значит флуд big_smile.gif
Жень, подумай, может тему перенести в "ваши проекты"?
Остальных попрошу не по теме и не конструктивно не отписываться, тогда уже пойдут в ход предупреждения.
Сам скажу, что подобные действа правда ни к чему хорошему не приводят, исключения составляют оочень хорошие отношения админов 2х хабов, хотя и там находится из-за чего поспорить, вот даже вам пример на форуме, админов вроде не очень много (я считаю как раз достаточно), но спорные моменты все равно возникают. "Власть" лучше не объединять под чье-то крыло, вообще с ней лучше не манипулировать без веских оснований и хорошего фундамента для сотрудничества.
Если кто разумный (школьнегов, нубов и неадекватов сразу слать нахрен) решится на такое - рассказывайте о своем опыте, дабы все были приятно удивлены big_smile.gif
X-Sky
26.11.2010, 13:21 Как правильно задавать вопросы
полезный материал, для чайников обязателен к прочтению!
Хочу поднять тему по поводу одного материала, спасибо Saymon'у за ссылку. Называется данный документ "Как правильно задавать вопросы". Рекомендую прочитать всем, хотя проблема там не напрямую касается данного форума, но в большинстве моментов данный текст будет дико полезен. Жду ваших мнений, какого-то холливарчика и так далее... Хотелось бы чтобы выделенные лично вами полезные моменты появились ниже в виде цитат, буду очень за это благодарен!

P.S.: теперь можно отправлять "нубов" не только к поиску, но и в качестве дополнения в эту тему big_smile.gif
Saymon21, Osimus
22.11.2010, 21:42 Курсы Валют Цб
API2 | Скрипт-информатор. 18 валют на выбор.
Вся байда из-за смены локали в викторине:
Код
os.setlocale"Russian_Russia.1251"
из за-этого действа меняется знак, являющийся разделителем целой и дробной части числа. Меняется как раз с точки на запятую...

Чтобы курс валют заработал, надо в скрипте курса валют 2 раза удалить
Код
Value=string.gsub(Value,",",".")
-slava-
22.11.2010, 17:09 MyDC.ru
Скрипт новостей с данного форума
Вообще уже давно эта тема поднимается... И всегда одно и то же решение: функция преобразования кодировок, её надо вставить в скрипт и обработать пришедшие в утф данные. Либо для русхаба есть собранная библиотека iconv, можно воспользоваться ей.

Если конкретно, то может после
Код
            local fd,sz,hd = socket.http.request(sAddr[i][1])
            if fd and sz then
поможет добавление
Код
                fd = Utf8ToAnsi(fd)
hipimps71
22.11.2010, 17:04 ChatLogsMySQL
API2 | Лог главного чата
Saymon, жестко ты. Все же просто:
Код
DELETE FROM `имя_таблицы` ORDER BY `id` DESC LIMIT 10000
Naum_Off
14.11.2010, 8:55 Перенаправление пользователей
Поправил, там была путаница в именах команд: sRedirCmd и sRedurCmd... Плюс маленькие правки, смотрите уже сами. Еще вместо UserConnected надо бы RegConnected, т.к. у анрега точно нет прав на перенаправление.
В флайлинке все равно вот такая картина:
Цитата
[08:47:45] <PtokaX> В том зале вам удобнее будет сидеть!
[08:47:45] <PtokaX> Вы были перенаправлены на адрес.хаба.ru. Сообщение: В том зале вам удобнее будет сидеть!
[08:47:45] *** Нажмите "Перенаправление" для соединения с адрес.хаба.ru
[08:47:45] *** Отключен

Делают его разработчики что хотят, вырезают, потом возвращают назад настройки, самодурство какое-то.
Ksan, truth
13.11.2010, 10:02 Cleanreg
API2 | Скрипт чистки регистраций
1. Если мне не изменяет память, в скрипте есть команда для добавления админом ника, на который не действует ограничение (это зовется иммунитет в скрипте), отсюда и эта надпись.
2. Добавляем после таблицы tAviableNicks вот такую:
Код
tAviableProfiles = {
    [0] = true,
    [1] = true,
}
затем находим
Код
if tAviableNicks[user.sNick] == 1 then
и
Код
if tAviableNicks[user.sNick] then
и меняем на
Код
if tAviableNicks[user.sNick] or tAviableProfiles[user.iProfile] then

3. Вряд ли, механизм везде один.
4. Нет.
thehawk
12.11.2010, 6:49 Конфликт IP-адресов
Хватит вам, видя кусок названия темы, у меня в голове ясно проскочило "Конфликт Ksan и dimajak"... Может так и переименуем ее?
Ksan, DNS (ДНС) и DHCP (ДиАшСиПи) правда разные технологии (за информацией в гугл), и для предотвращения вот таких вот бредовых споров, советую принимать участие лишь в тех обсуждениях, где ты владеешь вопросом (это обращение не к конкретному лицу, а для всех!).
Naum_Off, а четкого решения, кроме как построения порядка в твоей локалке я тоже не вижу...
Naum_Off
7.11.2010, 1:19 Перевод сообщений verlihub
Цитата
Too little slots for the number of hubs (hubs/slots ratio), max ratio is %[tag_max_hs_ratio]: %[hubs] hubs require %[min_slots]

Слишком мало слотов на один хаб, максимальное соотношение хабы/слоты - %[tag_max_hs_ratio]: %[hubs] хабов требуют %[min_slots] слотов
хотя по-идее должно быть минимальное соотношение...
Цитата
Too low upload limit for your connection type (%[conn_type]), max ratio is %[tag_max_hs_ratio]

Слишком низкое ограничение скорости для твоего типа соединения (%[conn_type]), максимальное соотношение - %[tag_max_hs_ratio]
Цитата
Too upload limit for your connection type (%[conn_type]), min upload limit is %[tag_min_ls_ratio] per every slot

Слишком низкое ограничение скорости для твоего типа соединения (%[conn_type]), минимальное ограничение - %[tag_min_ls_ratio] на каждый открытый слот
тут вообще вроде слово пропущено, хотя может это английские ухищрения...
Net_Strannik
4.11.2010, 22:13 CountryStats
API2 | Статистика местоположения пользователей по странам
Код
sMsg = sMsg.."\n"..tCfg.RowPrefix..(tCountry[v[1]] or "Неизвестно")..string.rep("\t",tCountryTabs[v[1]] or 3)..v[2].." ("..(math.round(v[2]/iTotal*1000)/10).."%)"
заменяй на
Код
sMsg = sMsg.."\n"..tCfg.RowPrefix..i..". "..(tCountry[v[1]] or "Неизвестно")..string.rep("\t",tCountryTabs[v[1]] or 3)..v[2].." ("..(math.round(v[2]/iTotal*1000)/10).."%)"
Артём, Saymon21, TiGRpp
3.11.2010, 21:02 Скрипт Release для PtokaX 0.4.1.x
нужен скрипт аля Release or Request (by jiten) под API2
Добавь после
Код
    for b in sPrefs:gmatch "%S" do
        Settings.tPrefixes[b] = 1
    end
вот такую строку:
Код
    tOptional()

До этого в базе надо поправить всё руками и в файле конфига выставить нужное значение.
foralls, мамин_парень
1.11.2010, 3:29 Ограничение по максимальной шаре
Ограничение с возможностью бана за нереальную шару
С баном по диапазонам конечно заморочка, это надо сделать эту базу, функции чтения из файла, прочитать базу, закешировать ее...
А вот простая банилка выглядит так:
Код
iMaxShare = 1024*1024*1024*1000    -- максимальная шара, 1000 Гб
iBanTime = 60*4                    -- время бана (0 = время по умолчанию в настрйоках хаба), 4 часа

function UserConnected(tUser)
    local iShare = Core.GetUserValue(tUser, 16) or 0
    if iShare > iMaxShare then
        BanMan.TempBan(tUser, iBanTime, 'читерство', 'ограничитель_шары', false)
        Core.Disconnect(tUser)
    end
end
RegConnected=UserConnected
OpConnected=UserConnected
thehawk
23.10.2010, 17:18 Викторина
API2
Итак, выкладываю викторину, в которой при правильном ответе выходит только сообщение об этом, а итоги подводятся либо по окончании времени ответа на вопрос, либо по N правильных ответов от юзеров, что опционально. Добавлена в конфиг 1 настройка и изменена еще одна:
Код
TrivEx._Sets.showcorrectanswer = 0        -- 0 = режим игры с несколькими правильными ответами от разных юзеров, 1 = показывать детальный отчет о правильном ответе, 2 = только показывать, что был дан правильный ответ
TrivEx._Sets.answerstonext = 3            -- 0 = играем пока не истечет время, другое число - максимальное количество пользователей, после которых будут подведены итоги
Это все изменения касательно конфига, так что первую опцию можете поправить у себя, вторую просто вставить за ней прямо в конфиге. Изменения в самом скрипте более значительны, поэтому сохранив старый, заменяйте скрипт на новый. Архив содержит исключительно скрипт и файл конфига, базы и другие файлы должны быть от викторины из этой темы выше. Тестите...
Ksan, Saymon21, TiGRpp
22.10.2010, 22:54 Textfiles_manager_and_updater
API1, API2 | Обновление TXT файлов по интервалу
Для 2 апи библиотека находится здесь. Папка указывается относительно корневой папки хаба, по умолчанию в скрипте
Код
sTextFilesPath = "texts"    -- папка с текстовыми файлами
т.е. стандартная папка текстовых файлов. Вроде ничего сложного. Если так нужен скрипт - изучи конфиг и тему повнимательней. А что не получилось и какие ошибки были желательно бы описывать!
ramzes
21.10.2010, 23:46 Ошибки текущей версии хаба
Обнаруженные ошибки публикуются в этой теме
А хаб потерял способность работать на занятом порту? У меня он закрывался когда работала птока на этих же портах. Версия 2.2.5. Вот лог при уровне логирования 6:
Раскрывающийся текст
Цитата
[Fri Oct 22 00:42:56 2010|698] (3) cPluginList: Open plugin dir: C:/Server/RusHub/plugins/
[Fri Oct 22 00:42:56 2010|699] (3) cPluginList: Plugin file name: lua.dll
[Fri Oct 22 00:42:56 2010|699] (3) cPluginList: Attempt loading plugin: C:/Server/RusHub/plugins/lua.dll
[Fri Oct 22 00:42:56 2010|703] (4) tcHashMap: Added: 3645847146
[Fri Oct 22 00:42:56 2010|703] (1) cPluginList: OnPluginLoad: LuaScripts
[Fri Oct 22 00:42:56 2010|789] (3) cPluginList: Success loading plugin: C:/Server/RusHub/plugins/lua.dll
[Fri Oct 22 00:42:56 2010|789] (4) cFullUserList: (0)[UserList] Before add: RusHubBot Size: 0
[Fri Oct 22 00:42:56 2010|790] (4) cFullUserList: (1)[UserList] After add: RusHubBot Size: 1
[Fri Oct 22 00:42:56 2010|797] (3) cConn: (sock 0) Created new socket: 104
[Fri Oct 22 00:42:56 2010|797] (0) cDCServer: Listening on 0.0.0.0:411 TCP
[Fri Oct 22 00:42:56 2010|806] (3) cConn: (sock 0) Created new socket: 112
[Fri Oct 22 00:42:56 2010|821] (0) cDCServer: Listening on 0.0.0.0:82 TCP
[Fri Oct 22 00:42:56 2010|831] (1) cDCServer: Main loop start
(error)[Fri Oct 22 00:42:56 2010|831] (0) cDCServer: Error in Choose function: 10038
[Fri Oct 22 00:42:56 2010|831] (4) cUserList: (0)[HelloList] SendToAll begin
[Fri Oct 22 00:42:56 2010|831] (4) cUserList: (0)[HelloList] SendToAll end
[Fri Oct 22 00:42:56 2010|831] (4) cFullUserList: (1)[UserList] SendToAll begin
[Fri Oct 22 00:42:56 2010|831] (4) cFullUserList: (1)[UserList] SendToAll end
[Fri Oct 22 00:42:56 2010|831] (4) cUserList: (0)[EnterList] SendToAll begin
[Fri Oct 22 00:42:56 2010|831] (4) cUserList: (0)[EnterList] SendToAll end
[Fri Oct 22 00:42:56 2010|831] (4) cUserList: (0)[IpList] SendToAll begin
[Fri Oct 22 00:42:56 2010|831] (4) cUserList: (0)[IpList] SendToAll end
[Fri Oct 22 00:42:56 2010|833] (1) cDCServer: Main loop stop(0)
[Fri Oct 22 00:42:56 2010|833] (1) cDCServer: Destruct cDCServer
[Fri Oct 22 00:42:56 2010|833] (4) cFullUserList: (1)[UserList] Before leave: RusHubBot Size: 1
[Fri Oct 22 00:42:56 2010|834] (3) cConn: (sock 112) Closing socket: 112
(error)[Fri Oct 22 00:42:56 2010|835] (1) cConn: (sock 4294967295) Socket not closed
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 2463625346
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1834894687
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 38389295
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1354372972
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 4013974225
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 267932812
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1619653466
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 89886786
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1440765047
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 924471204
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1249126537
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1292036137
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 3500438526
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1441506923
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 2497597390
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 3921014489
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 4133011101
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 839095340
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 3241210791
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 839095402
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 2319565064
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1920325163
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 3241709085
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1897296471
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 89897379
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 2966725055
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 3410494483
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 928240012
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 638680049
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 310477493
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1655823040
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1655823106
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1655822908
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1655823337
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1655823205
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1655822842
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 210350772
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 2868999302
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 192938982
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1909056761
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1909063152
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 4270480723
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 2368290531
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 3828213569
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 4077856483
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 3817216852
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 411494349
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1273038395
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 3080749733
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 2951784572
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 522984871
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1471936912
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1451667604
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 862538789
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 388104966
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1017003379
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 2783933617
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 3084980142
[Fri Oct 22 00:42:56 2010|835] (4) tcHashMap: Removed: 1177432900
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3034586648
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3246583260
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 4040293355
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1832404774
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 4040293283
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3367287815
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 185677258
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1832903068
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2709948790
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1357111626
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 4058032526
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 185694589
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 339815448
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 185692213
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3746315545
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1832382268
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 356259150
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3528964200
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3730053738
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 804651966
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1016648578
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 259718801
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3660352332
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 259718729
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1624941357
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 4275735856
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3660850626
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2136548316
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 783711152
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3484632052
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 4275753187
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 532542718
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 4275750811
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2083457279
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3660329826
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 548986420
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1786617742
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1562029951
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3742848099
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1489100278
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1604872690
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1323359489
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1392876078
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3723393388
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 721182213
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1575808715
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1020831298
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2154020765
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2323891644
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1323359551
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2324409183
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1393149849
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 721172896
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2324389938
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2324210253
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2324180286
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 721185502
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3124479944
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 73107532
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2568655447
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3027868750
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 4119305465
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3505347827
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 1745979549
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3176362395
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 2406615178
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 396210927
[Fri Oct 22 00:42:56 2010|836] (4) tcHashMap: Removed: 3064793732
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 1839680650
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 73812053
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 2318516545
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 295303051
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 102536437
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 1155059607
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 3757644531
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 309334802
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 1304555235
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 2408511023
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 4148322102
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 3485246745
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 3344104437
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 2979112201
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 3872493890
[Fri Oct 22 00:42:56 2010|837] (4) tcHashMap: Removed: 3309777511
[Fri Oct 22 00:42:56 2010|837] (1) cDirs:
Allocated objects: 2
Unclosed sockets: 1
При закрытой птоке все запускается нормально.
Setuper
20.10.2010, 20:35 TotalGag
для аварийной заглушки всего хаба (кроме определенных лиц)
Milena, ставить скрипт надо в самое начало, выше лонли и прочих гагов...
Milena
15.10.2010, 16:21 ChatNickChanger by Nickolya
API2 | Скрипт смены ников выводимых в чат
Добавил небольшой функционал в скрипт по запросу Saymon'а, подробности в 1 сообщении.
Invisible, Saymon21
12.10.2010, 22:46 Приветствие на хабе по нику, а не по рангу!
с
Итак, поясняю для всех: как объясняете и просите - так и получаете. Мы не читаем ваших мыслей. Желательно приближать все просьбы к хорошо сформированному Техническому Заданию. WHITE38, что касается тебя, то остановись и подумай, надо всего-то настроить в скриптах доступ для всех профилей и убрать из сообщения приветствия профиль юзера, если он есть... Понтами типа большой шары или возраста хаба тут не затмить собственную глупость. Садитесь и настраивайте то, что есть или внятно и по полкам описывайте что вам надо.
Saymon21
11.10.2010, 15:50 Функции ===> Читаем, Дабы Не Задавать Вопросов <===
Скрипт-интерфейс PtokaX Lua. ВСЕ СКРИПТОВЫЕ ФУНКЦИИ PtokaX API
Вряд ли, вроде все понятно и так, тестируй, тогда разберешься быстро! На голой теории выехать вряд ли вообще получится. Если что неясно - есть тема вопросов разработчикам.
Invisible
5.10.2010, 7:47 Вопросы Разработчикам Скриптов
вопросы по скриптам (мелкие вопросы)
Код
MyCmd = ( "!mes" or  "!мес" ) -- команда
Mess = "Внимание!! .... "      -- сообщение (допустим реклама)

TableN = {  ["Ник1"] = true,  ["Ник2"] = true,  ["Ник3"] = true,} -- таблица ников исключений

function ChatArrival(user,data)
    -- data = string.sub(data,1,-2)
    data = data:sub(1,-2)    -- Лучше использовать методы!
    -- cmd,toWho = string.match(data, "%b<>%s+(%S*)%s*(%S*)")
    local cmd,toWho = data:match("^%b<>%s+(%S*)%s*(%S*)")    -- Переменные надо объявлять локальными!
    if (cmd == "!mes" or cmd == "!мес") then
        -- if not ( toWho == "") then
        if toWho ~= "" then    -- Так же наглядней и проще, чем выше!?
            local toWho = Core.GetUser(toWho,true)    -- Чтобы несколько раз не вызывать функцию - выносим ее результат в локальную переменную
            -- if Core.GetUser(toWho,true) == nil then
            if not toWho then    -- Вот так тоже короче и понятнее: отрицание равнозначно проверке на равенство nil или false
                Core.SendToNick(user.sNick," Пользователя нет в сети, попробуйте позднее...")
            else
                -- toWho = Core.GetUser(toWho,true)    -- Это нам уже не надо
                
----Выбор случайного ника из списка юзеров:
                -- users = Core.GetOnlineUsers()
                local users = Core.GetOnlineUsers()    -- опять же, зачем гадить в глобальное окружение?
                -- name = users[math.random(1,#users)].sNick    
                local name = users[math.random(1,#users)].sNick    -- тут аналогично
                -- while TableN[name] do
                local i = 0    -- Для нашей безопасности устанавливаем некоторый счетчик, когда он зашкалит - выходим из цикла чтобы не попасть в бесконечность
                while (TableN[name] or name == toWho) do    -- Сюда же можно задать второе условие неравности toWho
                    -- users = Core.GetOnlineUsers()    -- Непонятно, зачем тебе заново эта таблица, выполнять какие-то функции в цикле вообще нежелательно!
                    name = users[math.random(1,#users)].sNick
                    i = i+1
                    if i == 10 then    -- Счетчик зашаклил...
                        break
                    end
                end
                if i ~= 10 then    -- Это своеобразная проверка, вышли мы по зашкаленному счетчику или нет, можно сделать и по-другому, но и так пойдет
                    Core.SendToAll("<"..name.."> "..toWho.sNick..": "..Mess.."")
                else
                    Core.SendToNick(user.sNick,"Не удалось создать случайный ник!")    -- Иначе говорим что ничего не вышло
                end
            end
        else
            Core.SendToNick(user.sNick,"Вы не ввели имя пользователя!")
        end
        return true
    end
end
Invisible
3.10.2010, 17:48 ChatHistorySQL
История чата
Код
date ("H:i:s Y-m-d", $row['time'])
intlive
1.10.2010, 12:17 Доработанный Tag Script
API1 | Добавляет имя профиля в Описание юзера
Анатолий, вы видимо туго воспринимаете информацию... Чтобы "нормально" отображало всё надо забить свои диапазоны в скрипт, они не имеют свойств настраиваться самостоятельно. И если надо поменять то, что в квадратных скобках, это делается проще некуда, блокнотом... А выражаться надо понятнее, если что-то не работает или не так, как вам надо - пишите все детально и во всех мелочах, тогда разобраться всегда будет просто. Подскажу еще один скрипт, называется Description_Network, ищите на форуме.
OLGA
30.9.2010, 10:16 Доработанный Tag Script
API1 | Добавляет имя профиля в Описание юзера
OLGA, достаточно настроить правильно хаб! На странице настроек "Моя информация" ставишь в нужных местах галочки и отправляешь информацию всем.
P.S.: пишите как пятнадцатилетний школьник-задрот....
мамин_парень
24.9.2010, 17:29 От: Stoptrep
От темы с ID: 1337
В идеале - вправить мозги админу...
А так, надо в начало скрипта добавить таблицу с профилями, которые не будут лимитироваться скриптом:
Код
tAllow = {
    [0] = true,
    [1] = true,
}
И после
Код
function ChatArrival(tUser)
добавить
Код
    if tAllow[tUser.iProfile] then
        return
    end
Invisible
21.9.2010, 17:29 Чат Комнаты
API2 | Возможно создать несколько чат комнат
VOVKT, то, что юзер отправляет кому-то в приват, он всегда видит в неизменном виде, в отличие от общего чата, так что отправлять ему его же текст не имеет смысла. И все команды и прочее, что идет в привате всегда будут видны "как есть". Что касается захвата, то в функции tSys:DoCmd идущие за командой даты ловятся как
Код
sA
VNoName
21.9.2010, 13:40 Weather [ Api 1&2 ] [ By Nickolya ]
API2 | Расширенная погода с rp5.ru
Из изменений на сайте - замена
Код
id=forecast
на
Код
class=forecast
и полный переход на utf-8... Исправленная версия для 2 апи в первом посту.
Ksan
21.9.2010, 12:00 string.gsub
string.gsub замена > < аналогом < >
Итак, для начала, я думаю, тебе надо прочитать Несколько Слов О Захватах И Регулярных Выражениях. Затем могу предложить такой костыль, который я как-то сделал для скрипта SmilesLimiter:
Код
tMagic = {
    ["%^"] = "%%%^",
    ["%["] = "%%%[",
    ["%)"] = "%%%)",
    ["%("] = "%%%(",
    ["%+"] = "%%%+",
    ["%*"] = "%%%*",
    ["%$"] = "%%%$",
    ["%?"] = "%%%?",
    ["%."] = "%%%.",
    ["%-"] = "%%%-",
}

function MakeNormMagicCharacters(sData)
    local sData = string.gsub(sData, "%%", "%%%%")
    for sFrom, sTo in pairs(tMagic) do
        sData = string.gsub(sData, sFrom, sTo)
    end
    return sData
end

Применение в твоем случчае:
Код
gsub( MakeNormMagicCharacters("8-\\"), "<img src='dckolobok/blush2.bmp.png'>"):gsub( MakeNormMagicCharacters("%-\\"), "<img src='dckolobok/wacko.bmp.png'>"):gsub( MakeNormMagicCharacters("$-\\"), "<img src='dckolobok/beee.bmp.png'>"):gsub( MakeNormMagicCharacters("{:-\\"), "<img src='dckolobok/unsure.bmp.png'>")


Для справки: в луа символ \ является служебным и для его нормального использования надо писать \\
Двойная кавычка экранируется как \"

Либо еще можно использовать метод отсюда, он оптимальнее.

Но лучше изучить просто какие символы экранируются и записывать вообще вот так:
Код
gsub( "8%-\\", "<img src='dckolobok/blush2.bmp.png'>"):gsub( "%%%-\\", "<img src='dckolobok/wacko.bmp.png'>"):gsub( "%$%-\\", "<img src='dckolobok/beee.bmp.png'>"):gsub( "{:%-\\", "<img src='dckolobok/unsure.bmp.png'>")
Invisible, Saymon21, foXDEvil
21.9.2010, 10:50 Домены Для Вашего Хаба
Как думаете?
Цитата
dc-urbania A 178.165.114.206
Готово!
@_JuNiOr_@
20.9.2010, 14:05 ShortUrls
API2 | Скрипт сокращения ссылок в чате
Обновил версию по запросу реквестера, вся информация в первом посту.
DEN 007, sania
17.9.2010, 22:46 HiLo 1.0c
API2 | Угадай число
Все конечно очень хорошо, но это не так тяжело сделать и самому, берем такую функцию (она немного извращена мной)
Код
function SerializeToString(tTable, sTableName, sTab)
    local tTableConcat = {}
    local sTab = sTab or ""
    table.insert(tTableConcat, sTab)
    table.insert(tTableConcat, sTableName and sTableName.." = {\r\n" or "return {\r\n")
    for key, value in pairs(tTable) do
        local sKey = (type(key) == "string") and ("[%q]"):format(key) or ("[%d]"):format(key)
        if(type(value) == "table") then
            table.insert(tTableConcat, SerializeToString(value, sKey, sTab.."\t"))
        else
            local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value)
            table.insert(tTableConcat, sTab)
            table.insert(tTableConcat, "\t")
            table.insert(tTableConcat, sKey)
            table.insert(tTableConcat, " = ")
            table.insert(tTableConcat, sValue)
        end
        table.insert(tTableConcat, ",\r\n")
    end
    table.insert(tTableConcat, sTab)
    table.insert(tTableConcat, "}")
    return table.concat(tTableConcat)
end


И делаем, к примеру, вот так
Код
Core.SendToNick('Invisible', SerializeToString(Core.GetOnlineNonOps(), "Core.GetOnlineNonOps()"))
и смотрим что выходит, так со всем, что нам надо... Лично я учился так.
Invisible
15.9.2010, 9:15 Чат Комнаты
API2 | Возможно создать несколько чат комнат
Код
function UserDisconnected(tUser)
    for sRoom, t in pairs(tRooms) do
        local sNick = tUser.sNick
        if tRooms[sRoom]["tMembers"][sNick] then
            tRooms[sRoom]["tMembers"][sNick]=nil
            tSys:Save(tRooms,"tRooms",tSys.sScriptsPath..tSys.hFile)
            tSys:SendToUser(sNick,tRooms[sRoom].sMsgExit,sRoom,sRoom)
            if tSys.bShowEnterExit then tSys:SendToMembers(sNick,sRoom,"*** Вышел: "..sNick,sRoom) end
        end
    end
end


Чтобы не было лишнего пробела замени
Код
    local _,_,sArg1,sArg2,sArg3=string.find(sData,"%$To:%s+(%S+)%s+From:%s+(%S+)%s+%$%b<>(.*)")
на
Код
    local _,_,sArg1,sArg2,sArg3=string.find(sData,"%$To:%s+(%S+)%s+From:%s+(%S+)%s+%$%b<>%s(.*)")
VNoName
14.9.2010, 12:34 Чат Комнаты
API2 | Возможно создать несколько чат комнат
Код
                -- return true    -- было вот здесь
            end
            return true    -- стало здесь, и так надо сделать по всей функции tSys:DoCmd(sNick,sArg,sRoom)
        elseif self:String2Lower(sCmd)==self:String2Lower(self.sCmdExit) then
VNoName
13.9.2010, 15:52 RegmeEmail
API2 | Регистрация через e-mail
Код
    Core.SendToOps(([[<%s> Зарегистрировался новый юзер, вот детали регистрации:

    Ник: %s
    Пароль: %s
    Шара: %s
    IP: %s
    Режим работы: %s
    Открыто слотов: %s
    
]]):format(sBot, tUser.sNick, sPasswd, GetNormalShare(Core.GetUserValue(tUser, 16) or 0), tUser.sIP, Core.GetUserValue(tUser, 10) and "Актив" or "Пассив", Core.GetUserValue(tUser, 21) or 0))


Функция GetNormalShare, ее надо дописать в самый конец скрипта:
Код
function GetNormalShare(s)
  s = tonumber(s) or 0
  if s >= 1125899906842624 then return (math.floor(1000 * s / 1125899906842624) / 1000).." ПБ"
  elseif s >= 1099511627776 then return (math.floor(1000 * s / 1099511627776) / 1000).." TБ"
  elseif s >= 1073741824 then return (math.floor(1000 * s / 1073741824) / 1000).." ГБ"
  elseif s >= 1048576 then return (math.floor(1000 * s / 1048576) / 1000).." МБ"
  elseif s >= 1024 then return (math.floor(1000 * s / 1024) / 1000).." КБ"
  else return s.." Б" end
end


Писал без проверки, так что за код не ручаюсь.
-=Zion=-
13.9.2010, 13:45 Викторина
API2
Ошибка значит что во всем скрипте где-то в функцию отправки пользователю не переданы данные...
Предлагаю вот такой фикс, заменяем
Код
function TrivEx:SendToUser(curUser,data)
    if (self._datamode == "main") then
        Core.SendToNick(curUser.sNick,"<"..TrivEx._Sets.bot.."> "..data)
    else
        Core.SendPmToNick(curUser.sNick,TrivEx._Sets.bot,data)
    end
end
на
Код
function TrivEx:SendToUser(curUser,data)
    if data then
        if (self._datamode == "main") then
            Core.SendToNick(curUser.sNick,"<"..TrivEx._Sets.bot.."> "..data)
        else
            Core.SendPmToNick(curUser.sNick,TrivEx._Sets.bot,data)
        end
    end
end
OLGA
13.9.2010, 13:19 RegmeEmail
API2 | Регистрация через e-mail
Точно, спасибо всем за фиксы big_smile.gif
-=Zion=-
12.9.2010, 20:07 Чат Комнаты
API2 | Возможно создать несколько чат комнат
Попробуй вот так:
Код
        elseif self:String2Lower(sCmd)==self:String2Lower(self.sCmdUsers) then
            sRoom=self:CheckRoom(sA,sNick,sRoom)
            if not sRoom then
                return true
            end
            if tRooms[sRoom]["tMembers"][sNick] then
                local i, sMembers = 0, {}
                for sNick in pairs(tRooms[sRoom]["tMembers"]) do
                    i = i + 1
                    table.insert(sMembers, sNick)
                end
                sMembers = table.concat(sMembers, ', ')
                tSys:SendToUser(sNick,"В комнате "..i.." пользователей: "..sMembers,sRoom,sRoom)
                return true
            end
VNoName
9.9.2010, 9:14 Twitter
Просмотр статуса пользователя
Строка
Код
local sBot
только объявляет переменную локальной, бот задается тут:
Код
sBot = SetMan.GetString(21)
т.е. надо заменять эту строку на
Код
sBot = "Twitter"


Чтобы бот не дублировал сообщения в чате заменяем
Код
    if sStatus ~= nil then
        Core.SendToAll("<"..sBot.."> *** Twitter "..sOutName.." ***\r\n"..sStatus)
    end
на
Код
    if sStatus ~= nil then
        if not sMemStatus or sMemStatus ~= sStatus then
            Core.SendToAll("<"..sBot.."> *** Twitter "..sOutName.." ***\r\n"..sStatus)
            sMemStatus = sStatus
        end
    end
PomanoB, DEN 007
7.9.2010, 17:04 как сделать юзербары со статистикой?
Поставить Lua-GD и попробовать переделать под верли скрипт юзербаров. Хотя думаю вариант со сбором информации в бд и генерации юзербаров средствами того же пхп тоже возможен, как это сделано в WebStats.
Invisible
6.9.2010, 23:36 Core.GetUserValue
Цитата
0.4.1.x \ scripting.docs \ scripting-interface.html \ index.html
Используй эту страницу и всё поймешь big_smile.gif

Специально для тебя:
Код
User data IDs for Core.GetUserData call.
0    - sMode
1    - sMyInfoString
2    - sDescription
3    - sTag
4    - sConnection
5    - sEmail
6    - sClient
7    - sClientVersion
8    - sVersion
9    - bConnected
10    - bActive
11    - bOperator
12    - bUserCommand
13    - bQuickList
14    - bSuspiciousTag
15    - iProfile
16    - iShareSize
17    - iHubs
18    - iNormalHubs
19    - iRegHubs
20    - iOpHubs
21    - iSlots
22    - iLlimit
23    - iDefloodWarns
24    - iMagicByte
25    - iLoginTime
26    - sCountryCode
Invisible
6.9.2010, 23:19 Запросы на скрипты
Он говорит что глобальной функции extractCmd не существует, по коду так оно и есть, так что либо тебе надо ее найти, либо самому отпарсить данные и извлечь из них команду и данные за ней.
KT315
4.9.2010, 20:45 Домены Для Вашего Хаба
Как думаете?
Такой айпи был закреплен за доменом раньше, на обновление днс надо время, порой оно занимает дни, так что ждите и реже меняйте айпи, лучше никогда... Для достоверности:
Цитата
uz-torrents A 89.236.254.187


И еще, обращение ко всем, кто получил домен! При обнаружении спама (или другой антиморальной деятельности) на других хабах с наших поддоменов - сначала будет предупреждение в этой теме, потом удаление домена.
Saymon21
4.9.2010, 18:23 Скрипт Действий
API1, API2 | Сообщения от 3его лица в чат
Естественно разница большая, лучше соединять меню вообще при старте скрипта, очищать память и юзеру отправлять уже готовую строку, в ней, если надо, можно сделать шаблоны для замены через gsub, тогда это максимально оптимизирует скрипт. Если вы собираете строку по маленьким кусам - это плохо, многоразовый вызов одной функции - тоже не ахти. Да и лучше использовать
Код
Core.SendToUser(tUser
вместо
Код
Core.SendToNick(tUser.sNick
Это тоже некого рода оптимизация скрипта.

Т.е. лучший для вас вариант такой
Код
-- при старте
sMenu = "$UserCommand 1 2 бла-бла-бла #124;|"..
"$UserCommand 1 2 бла-бла-бла #124;|"..
"$UserCommand 1 2 бла-бла-бла #124;"

-- при заходе клиента
Core.SendToUser(tUser, sMenu)
А еще лучше сделать отправку меню по запросу или через некоторое время после захода пользователя, это дает некую разгрузку и клиенту юзера и хабу.
Saymon21, RAND(i)M
4.9.2010, 1:44 PtokaX 0.4.1.2
ДЦ клиент
Да уж... Delia, спасибо за разъяснения! xXx-Portal, медвежьи услуги и левая информация на этом форуме воспринимаются оочень плохо, так что думай что делаешь, говоришь, пишешь и так далее, пожалуйста. Еще замечу подобные выходки на форуме и он будет только для чтения.
Aleksions
4.9.2010, 1:39 Время Стран.(Городов)
Каждые 6 или 3 часов выводило время в чат несколько стран например.
Ksan, так делать нельзя... Решение дано в скрипте. Если интересно - взгляни код, выкладываемый мной. Что будет неясно - спрашивай на хабе big_smile.gif
Итак, скрипт, мною как-то сделанный немного перековеркали, не в лучшую сторону, я вам скажу. Немного его переписал. Теперь таблица с временными поясами выглядит так:
Код
     -- Часовые пояса, 1 параметр здесь служит приставкой для времени и даты, первый параметр - смещение относительно текущего времени:
    tTimeZones = {
        --{0, "MSK"},
        {4, "NRSK_"},
    }

Таблицу вывода надо переписать вот так:
Код
    tFormat = {
        [1] = {
            ["iInteval"] = 10,
            ["sWhatBeforeInfo"] = "[",
            ["tPhrases"] = {
                "---==СЕРЕБРО==--- DChub]",
                "Хозяин хаба: Otmorozov]",
                "Оператор хаба: Алексашка]",
                "Московское время: HOURS:MINUTES]",
                "WEEK DAY MONTH YEAR г.]",
                "Норильское время: NRSK_HOURS:NRSK_MINUTES]",
                "NRSK_WEEK NRSK_DAY NRSK_MONTH NRSK_YEAR г.]",
                "Юзеров на хабе: USERS]",
                "Общая шара хаба: SHARE]",
            },
        },
    }

Как видите, для городов, где смещен часовой пояс, мы добавляем приставку к заменяемому параметру из таблицы tTimeZones.

Сам скрипт с исправлениями прикрепляю: [attachment=4985:Informer_.lua]

P.S.: OLGA, на форуме можно прикладывать файлы к сообщениям, делайте это, обменники тут в моде, как и код на всю страницу. И вы случайно не сам мисьё Otmorozov? big_smile1.gif
OLGA
2.9.2010, 18:57 Thunder
API1, API2 | Бот
Цитата
<PtokaX> *** Nickolya2 с IP 127.0.0.1 был полностью забанен , наказал Nickolya по причине: test.

Код
    <String Name="FullLwr">полностью </String>
После полностью надо просто поставить неразрывный пробел big_smile.gif
Don_Kocha
1.9.2010, 23:17 Скриптик такой...
Смысл скрипта сокращение http ссылок
Invisible, DEN 007
1.9.2010, 23:14 ShortUrls
API2 | Скрипт сокращения ссылок в чате
Название: ShortUrls
Версия: 1.01
Версия API: API2
Автор: Nickolya
Запросил: DEN 007 здесь

Скрипт сокращает в чате все ссылки, превышающие заданный в скрипте порог длинны, через сервис http://is.gd/

При отправке в чат чего-то типа
Код
http://mydc.ru/ipb.html?act=Search&nav=at&CODE=show&searchid=8176c5fd684f87cf834d8493133d1cb3&search_in=topics&result_type=topics&lastdate=86400
мы получим
Цитата
<Nickolya> http://is.gd/ePQkt (сокращенная ссылка на mydc.ru)


Код
    Изменения в 1.01:
        - команда для получения короткой ссылки
        - профили, которым доступна команда
        - меню для команды


Из конфига можно выделить
Код
local iMaxLen = 40    -- максимальная длинна ссылки для отправки в чат без сокращения, при ее привышении ссылка будет сокращена
http.TIMEOUT = 1    -- таймаут для ответа от сервера, в секундах

local sSeeCmd = "getshorturl"    -- команда для получения короткой ссылки
local tCanUseCmdsProfiles = {    -- профили, которым можно использовать команду
    [0] = true,
    [1] = true,
    [2] = true,
    [3] = true,
    [-1] = false,
}
local sMenuWay = "Меню пользователя\\"    -- путь в меню


Для работы, естественно, потребуется установленная библиотека сокетов.

Старая версия
[attachment=4974:ShortUrl...a_v_1.00.lua]
Invisible, Accelerator, Saymon21, Aлзим, DEN 007, sania, Something_Wild
31.8.2010, 20:08 Предложения для развития
Есть подобная фишка в хексхабе, в верли тоже на команду отдельное событие. Я считаю что стоит сделать как с таймерами, т.е. функция типа
Core.AddTrigger("somecmd") будет возвращать айди события, а по событию будет вызываться функция OnTrigger(iId), при указании функции в Core.AddTrigger("somecmd", "SomeCmdFunction"), будет вызываьться функция, переданная вторым параметром. А вот передачу параметров в таблице tParams не считаю удобным т.к. они используются всегда по-разному (порой нужно взять параметры через пробел, порой нужна вся строка), поэтому можно просто передавать строку, идущую за командой.
Saymon21
30.8.2010, 23:36 Помогите перевести
Пожалуйста, скрипт просто ужасен, немного его подретушировал big_smile.gif Остальное, как было замечено выше, - на форуме...
OLGA
28.8.2010, 0:09 Hideme
скрипт скрытия в юзер-листе
Поправил скрипт немного, теперь всё работает, чтобы скрипт работал корректно он должен стоять поверх скрипта FirstRusHubBot.
В скрипте сделал вот так для клиентов, поддерживающих характеристику QuickList:
Код
OnGetNickList = OnValidateNick
Проверьте скрипт у кого есть в клиенте подобная характеристика... Скрипт в 1 посту.
Setuper, Saymon21
26.8.2010, 13:35 Официальная страничка RusHUB
Внимание - вопрос
Теперь прикручен и сайт, а не только домен exciting.gif Все доки перенес туда, надо теперь привести это к более информативному и актуальном виду, в топике русхаба только не знаю, надо ли это все дублировать, либо оставить только публикацию новых версий? Все замечания, предложения, мысли и мнения - в этой теме.
Ksan, Accelerator, Saymon21
25.8.2010, 6:10 Setting Saver
API2 | Сохраняет настройки хаба
Отправляет по таймеру только указанному нику. Смотри в настройках
Код
local sReportNick = "Tsd" -- Отправлять нику сообщение о сохранении по таймеру. Оставьте пустые кавычки если не надо
xXx-Portal
23.8.2010, 12:47 Полоса в меню
Поправил, и не забывайте что || надо заменить на & #124;| без пробела, естественно.
random name
18.8.2010, 11:49 Помогите !
со скриптом )
Надо всего-то удалить
Код
    tCommands["lifetime"].fFunction(user)


Старайся выражаться яснее, чтобы твоя просьба была понятна всем! На непонятные темы ответов не жди.
P.S.: за следующую названную ТАК тему будут вешаться предупреждения, после бана мог бы и ознакомиться с правилами форума.
Don_Kocha
16.8.2010, 16:58 Ваши Вопросы И Предложения По Поводу Форума
Вернул назад форму быстрого ответа и ее закрытость. Проблема с неработающим быстрым редактированием сообщений в теме устранилась.
Ksan, alex82
12.8.2010, 17:51 Поиск по TTH на MySQL
Мы уже немного обкатали скрипт с Saymon'ом, оказывается для нормальных ответов надо в файле Searcher.lua выставить настройку
Код
    -- Адрес программы-клиента:
    cfg.sServerAddress = "127.0.0.1"
таким образом, что ее значением будет ваш внешний айпи, на который присоединяются юзеры, именно айпи! К примеру
Код
    -- Адрес программы-клиента:
    cfg.sServerAddress = "93.125.40.40"
Плюс еще можно в скрипте lua.lua уменьшить интервал поиска, для более быстрой работы программы, сейчас там 15 секунд, попробуйте 10 или 5. Если что - заходите на хаб, спросите там, общаться в онлайне как-то оперативнее big_smile.gif Да и в фильтре тоже меняется адрес на ваш внешний, пока это недоработки, исправлю по возможности.
Saymon21
12.8.2010, 12:14 Поиск по TTH на MySQL
Итак, давайте попробуем 1 версию в действии big_smile.gif

Первым делом дополняем бд:
Код
ALTER TABLE `tbl_link`
    ADD `DATEUP` DATETIME NULL DEFAULT NULL ,
    ADD `DATEFIRST` DATETIME NULL DEFAULT NULL ,
    ADD `USERSEEDER` INT( 11 ) NOT NULL DEFAULT 0 ,
    ADD `USER` TEXT NOT NULL;


Теперь надо скачать программу, обрабатывающую поисковые ответы и работающую с бд, качаем из этого поста Searcher_server.rar и распаковываем куда-нибудь, теперь заходим в папке этого "сервера" в файл lua.lua и видим там конфиг, правим его как надо, указываем правильные юзера и пароль к бд, задаем порты, интервалы поиска и прочее. Сохраняем этот файл. Теперь создаем ярлык для lua.exe и в параметрах запуска добавляем ключ -d чтобы вышло что-то типа
Цитата
C:\Server\luaaio_2.0_windows\lua.exe -d
Теперь запускаем этот ярлык и сворачиваем получившееся окно.

Далее загружаем и кладем скрипт Searcher.lua в папку скриптов птоки, для работы скрипта потребуется библиотека сокетов. Запускаем скрипт в птоке и теперь можно посмотреть как пошел процесс в отладочном окне программы-поисковика (она свернулась в трей).

Пока все, если что-то непонятно - спрашивайте. Функций поиска с сайта пока нет, проверьте на баги первую версию...

P.S.: мне кажется понадобится пробросить порты программы в случае с роутером, их 2 штуки.
P.P.S.: результаты работы находятся в базе данных, не думаю что в отладочных сообщениях вам будет по-кайфу разбираться, они, в принципе, только для меня.
P.P.P.S.: от вас жду хака на магнето, выложенного так же публично
P.P.P.P.S.: при использовании скриптов было бы очень любезно сделать активную ссылку (хотя бы у копирайтов движка внизу) на этот форум.
Lesh™, Saymon21
11.8.2010, 23:56 Помогите реализовать скрипт с PtokaX для Verlihub
Вернее будет так:
Код
  local _,sIP = VH:GetUserIP(user)
Верли еще возвращает переменную результата выполнения запроса, которая нам обычно не нужна и ее можно опустить пустым значением. + не забываем делать переменные локальными big_smile.gif Плюс в верли есть такая штука, почти все вызываемые функции имеют обратимость, но для этого не как в птоке надо сделать return true, а вернуть отличное от 1 значение, если мы не хотим останавливать выполнение функции, то необходимо вернуть 1, тут такие функции помечены как Discardable. Потом необходимо добавлять | в конец отправляемых команд, так сделан верли... Так что выходит что пара функций у нас становится такими:
Код
function VH_OnUserLogin(user)
    VH:SendDataToUser("<"..Bot.."> Тема: '"..tTopic.Topic.."', установил "..tTopic.SetUser.." ("..tTopic.sDate..")|", user)
    local _,sIP = VH:GetUserIP(user)
    VH:SendDataToUser("<"..Bot.."> Привет "..user..", добро пожаловать на Дом.ru P2P сервис. Ваш IP: "..sIP.."|", user)
    return 1
end

function VH_OnParsedMsgChat(user,data)
    local cmd = data:match"%b<>%s+(%S+)"
    if cmd and cmd == "!topic" then
        local sMsg = data:match"%b<>%s+%S+%s+(.*)"
        if not sMsg then
            VH:SendDataToUser("<"..Bot.."> Вы не ввели текст топика|", user)
            return 0
        end
        tTopic = {
            sDate = os.date"%H:%M:%S / %d.%m.%y",
            SetUser = user,
            Topic = sMsg
        }
        SaveToFile(filename, tTopic, "tTopic")
    end
    return 1
end
Herurg
7.8.2010, 19:52 Хочу провести на хабе жеребьевку ФИФА Чемп мира
или лигу чемп всеравно
Держи, ники и команды надо вписывать руками... Результат выдается по запуску скрипта.
van21
4.8.2010, 19:00 Ваши Вопросы И Предложения По Поводу Форума
Setuper, вставляется в форум быстрого ответа. Обнови кеш, скорее всего проблема в нем т.к. обновлялись некоторые жаваскритпы. Не так уж и много добавилось, а левая панель скрывается. По-моему так удобней с некоторыми дополнительными функциями из основного редактора.
Saymon21
4.8.2010, 18:52 Ваши Вопросы И Предложения По Поводу Форума
Пока добавил кнопку для цитирования ника, сделал расширенным и всегда открытым быстрый ответ. Для основного скина добавил расширение для красивого отображения увеличенных картинок (по нажатию на миниатюре).
Ksan, Saymon21, X-Sky
3.8.2010, 16:08 IP Info
API2 | Информация об IP-адресах, отправленных в главный чат
По просьбе одного из участников форума добавил кое-какой функционал, протестируйте...

Цитата
Версия 1.01 by Nickolya:
- если в сообщении несколько ip - отображается информация по каждому
- добавлен вывод информации о доменных именах, теперь необходима еще и бибилиотека socket
- добавлена опция вывода сообщений об адресах для всех юзеров


Вот результат работы:
Цитата
<IP-Info> Информация об адресе mydc.ru ( 79.174.78.92 ) : Форум администраторов хабов ( Сервер mydc.ru )
<Nickolya> http://mydc.ru/ http://mydc.ru/ http://mydc.ru/
<IP-Info> Информация об IP-адресе 79.174.78.92: Сервер mydc.ru
<Nickolya> 79.174.78.92
<IP-Info> Информация об адресе www.ya.ru ( 93.158.134.3 ) : Поисковая система Яндекс
<Nickolya> www.ya.ru


P.S.: скрипт может сильно тормозить хаб из-за работы библиотеки сокетов...
intlive, rus.region78, Invisible, Saymon21, Chimera, Cyber_voodoo
2.8.2010, 23:06 С Днюхой Тебя!
поздравления
А сегодня поздравляем нашего повсеместного модератора, администратора и просто хорошего человека X-Sky! Всего хорошего, развития твоих проектов, успехов во всех остальных начинаниях и конечно же оставаться и совершенствоваться в нашем сообществе! victory.gif victory.gif victory.gif
X-Sky
30.7.2010, 12:59 Нужен скрипт ставящий люб приставку перед ником!
Чтоб она везде отображался на хабе
Уже обсуждалось что не надо делать какие-либо приписки к никам в юзер-листе. Пусть ставят сами, а если не дано - пусть не суются... Либо берись писать инструкцию в картинках что да куда нажимать чтобы сменить ник.
van21
27.7.2010, 23:27 HubTopic
Скрипт показывающий ваш текст в строке состояния
Скрипт менюшек выполняет функцию OnUserEnter при отсылке меню, чтобы не было повторной отправки надо заменить
Код
function OnUserEnter(UID)
    if tAccess[UID.iProfile] then
        Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Установить тему$<%[mynick]> !хабтопик %[line:Введите тему чата]|")
        Core.SendToUser(UID,"$UserCommand 0 3")
        Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Удалить тему$<%[mynick]> !хабтопик офф|")
    end
    if sHubTopic then
        Core.SendToUser(UID,"$HubTopic "..sHubTopic)
    end
end
на
Код
function OnUserEnter(UID)
    if sHubTopic then
        Core.SendToUser(UID,"$HubTopic "..sHubTopic)
    end
    ContextMenu(UID)
end

function ContextMenu(UID)
    if tAccess[UID.iProfile] then
        Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Установить тему$<%[mynick]> !хабтопик %[line:Введите тему чата]|")
        Core.SendToUser(UID,"$UserCommand 0 3")
        Core.SendToUser(UID,"$UserCommand 1 3 "..tCfg.Menu.."\\Удалить тему$<%[mynick]> !хабтопик офф|")
    end
end


А чтобы сменить топик надо отправлять еще и $HubName, но надо не забыть в нем имя хаба big_smile.gif
Saymon21
27.7.2010, 22:38 Скрипт статистики для админов
Статистические данные о посещаемости
valdis73, если надо скрипт можно сделать так чтобы он считал только определенных пользователей. Опиши тут как лучше, по приставке в нике или по диапазону адресов и мы тебе скажем что сделать чтобы получить желаемое тобой.
valdis73, мамин_парень
26.7.2010, 21:54 Trans
API1, API2
Сделал проверку слова на ник юзера, может кривовато работать...
Invisible
26.7.2010, 18:33 Cleanreg
API2 | Скрипт чистки регистраций
Если скрипт работает, то его синтаксис тебя не должен заботить, прекращай заниматься ерундой.

Не уверен что внятно и правильно объяснил, но если интересно - попробуй вникнуть
А ошибка из-за того что к таблице 'SetMan' идет обращение в основной части программы, а не в функции, а существует таблица только когда хаб включен и скрипт запущен.
striker
26.7.2010, 17:02 Скрипт статистики для админов
Статистические данные о посещаемости
Приделать функцию работы исключительно с определенным диапазоном адресов можно, не думаю что это будет проблемой, тем более код очень хорошо прокомментирован.
Тем более все упирается в одну строку в скрипте))))

Код
local iUC = Core.GetUsersCount()  -- текущее кол-во юзеров
valdis73, мамин_парень
26.7.2010, 10:05 Ваши Вопросы И Предложения По Поводу Форума
"Архив" создал, перенес в него все что было, по тому посту выше о перемещении тоже все сделано, теперь ищите всю информацию в соответствующих разделах bad_smile.gif Если у модераторов есть мысли по разделам и/или перемещению/удалению тем - пишите, разложим все по полкам, ведь отдельный форум для этого и создавался.
Setuper, Saymon21
26.7.2010, 1:07 Ваши Вопросы И Предложения По Поводу Форума
А пока тихо и незаметно появились разделы Скрипты для Eximus, Библиотеки и модули, Сетевые скрипты и Безопасность. Первые 2 раздела я заполнил перенесенными темами, последние два возлагаю на ваши плечи. Все замечания, как всегда, обсуждаются здесь.
Otshelnik-Fm, Saymon21
24.7.2010, 19:44 Сообщение юзерам с нулевой шарой
Сообщение юзерам с нулевой шарой
Если ты про скрипт Артема - то надо сделать все то что я описывал выше и добавить еще в самом конце
Код
ChatArrival = UserConnected
Perspect
23.7.2010, 23:22 Логотип для RusHub'а
ваши варианты и предложения
Продолжим творческий марафон big_smile.gif Жду Ваших оценок...
KT315, Saymon21, X-Sky
23.7.2010, 10:41 С Днюхой Тебя!
поздравления
Хочу поздравить Илью (он же наш модератор Wariner) с Днем Рождения! Всех благ, светлой головы, доброго настроения, чистой души и конечно же правильного кода feel_good.gif

Лично от меня - спасибо за то что состоялось такое знакомство big_smile.gif
Wariner
20.7.2010, 14:00 Запрет пустого сообщения
API 2
Да, не позволит, но он не учитывает неразрывный пробел, поэтому будет достаточно вот такого кода
Код
function ChatArrival(tUser, sData)
    if sData:find("^%b<>[%s"..string.char(160).."]+|$") then
        return true
    end
end
Serx, Saymon21, RoL, WINS, мамин_парень
15.7.2010, 16:18 ChatNickChanger by Nickolya
API2 | Скрипт смены ников выводимых в чат
Чтобы не палиться при использовании команды кика через клиента (при отправке <nick> is kicking ... because: ...) необходимо
перед
Код
    local tChangedNickTable = tChangedChatNicks[tUser.sNick] or false
добавить
Код
    if sData:match "^%b<>%s+is%s+kicking%s+.+$" then
        return
    end
Milena, Saymon21
9.7.2010, 10:47 Часто задаваемые вопросы
Eximius | Читать всем без исключения!
Я так понимаю это изложение своими словами и опытом вот этой темы? Спасибо тебе Тём! Надеюсь тут для новичка понятнее.
sania
6.7.2010, 9:56 Help
Возможноли зделать RSS парсинг с UCOZ сайта
Берем тогда обычный скрипт рсс, можно отсюда: RSS Ленты, API2 | Скрипт для просмотра новостных лент, конфигурируем, можно допилить как надо. Все что я сделал - добавил перекодирование из утф8 и указал адрес ленты + поправил косяк с сохранением файла.
Wan
5.7.2010, 17:50 Fuck2UnReg
API1, API2 | Скрипт ограничений для незарегистрированных юзеров
Надо конечно. В самое начало тогда добавляй таблицу с профилями блокируемых:
Код
tLockProfiles = {
    [3] = true,
    [-1] = true,
}

И 3 раза в скрипте заменяй
Код
if tUser.iProfile == -1 and
на
Код
if tLockProfiles[tUser.iProfile] and
truth, мамин_парень
5.7.2010, 17:14 Eximius
Windows
Создал я отдельный форум. От вас жду наполнения информацией по данному хабу. Артём, ты модерируешь этот форум.
Артём, Saymon21
5.7.2010, 14:37 Домены Для Вашего Хаба
Как думаете?
Домены есть, не было меня big_smile.gif Домен оформил: sinsei.mydc.ru
Sinsei
5.7.2010, 11:45 Помогите со скриптом для птоки который удалялбы неиспользуемые реги
Помогите со скриптом для птоки который удалялбы неиспользуемые реги
Темы я кое-как совместил. Автору - сначала изучай форум, потом пиши, ок?
X-Sky, bot9ra

14 страниц V  < 1 2 3 4 5 > » 
RSS Сейчас: 21.8.2019, 20:33