Здравствуйте, гость ( Вход | Регистрация )
Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
---|---|---|---|---|---|
31.12.2010, 19:00 |
С Новым Годом! см название темы |
Присоединяюсь к поздравлениям! С Новым Годом, народ! Всех вам благ и поменьше забот и несчастий! Хочется напомнить и о предыдущем поздравлении: Хочу от лица начальства вас поздравить с наступающим НОВЫМ ГОДОМ, чтобы были настроения и сбывались мечты, всем много времени и терпения! Спасибо вам что вы есть, надеюсь этот форум стал чем-то больше чем просто каким-то сайтом в интернете для многих тут, и не зря это все делается, очень вам всем признателен, надеюсь в новом году мы будем немного добрее, много умнее и очень усердны, лень уйдет и будут делаться дела, так как хочется именно нам! С уважением, ваш N. Оно тоже достойно внимания И небольшой поднимающий настроение презент! |
FallenAngel, Invisible, Otshelnik-Fm, Saymon21 | ||
29.12.2010, 17:25 |
Ваши Вопросы И Предложения По Поводу Форума |
есть кнопка спойлера но не все знают что его можно пользовать ... вот тут тыкнуть тут что-то написано и код выглядит: Код [expand=вот тут тыкнуть]тут что-то написано[/expand] Думаю что можно в подсказке к спойлеру написать этот вариант Сделал чтобы всплывающая форма с вводом подсказки появлялась при вставке раскрывающегося текста, как при вставке URL Тестируйте, для начала работы измененного кода необходимо обновить кеш в браузере для сайта. |
Otshelnik-Fm, Accelerator | ||
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 записей и всё работает на ура |
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 |
Объединение хабов Развитие ресурса |
Преды убрал, раз флуд, значит флуд Жень, подумай, может тему перенести в "ваши проекты"? Остальных попрошу не по теме и не конструктивно не отписываться, тогда уже пойдут в ход предупреждения. Сам скажу, что подобные действа правда ни к чему хорошему не приводят, исключения составляют оочень хорошие отношения админов 2х хабов, хотя и там находится из-за чего поспорить, вот даже вам пример на форуме, админов вроде не очень много (я считаю как раз достаточно), но спорные моменты все равно возникают. "Власть" лучше не объединять под чье-то крыло, вообще с ней лучше не манипулировать без веских оснований и хорошего фундамента для сотрудничества. Если кто разумный (школьнегов, нубов и неадекватов сразу слать нахрен) решится на такое - рассказывайте о своем опыте, дабы все были приятно удивлены |
X-Sky | ||
26.11.2010, 13:21 |
Как правильно задавать вопросы полезный материал, для чайников обязателен к прочтению! |
Хочу поднять тему по поводу одного материала, спасибо Saymon'у за ссылку. Называется данный документ " P.S.: теперь можно отправлять "нубов" не только к поиску, но и в качестве дополнения в эту тему |
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 |
Точно, спасибо всем за фиксы |
-=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 |
как сделать юзербары со статистикой? |
Поставить |
Invisible | ||
6.9.2010, 23:36 |
Core.GetUserValue |
Цитата 0.4.1.x \ scripting.docs \ scripting-interface.html \ index.html Используй эту страницу и всё поймешь Специально для тебя: Код 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, так делать нельзя... Решение дано в скрипте. Если интересно - взгляни код, выкладываемый мной. Что будет неясно - спрашивай на хабе Итак, скрипт, мною как-то сделанный немного перековеркали, не в лучшую сторону, я вам скажу. Немного его переписал. Теперь таблица с временными поясами выглядит так: Код -- Часовые пояса, 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? |
OLGA | ||
2.9.2010, 18:57 |
Thunder API1, API2 | Бот |
Цитата <PtokaX> *** Nickolya2 с IP 127.0.0.1 был полностью забанен , наказал Nickolya по причине: test. Код <String Name="FullLwr">полностью </String> После полностью надо просто поставить неразрывный пробел |
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://mydc.ru/ipb.html?act=Search&nav=at&CODE=show&searchid=8176c5fd684f87cf834d8493133d1cb3&search_in=topics&result_type=topics&lastdate=86400 мы получимЦитата <Nickolya> Код Изменения в 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 |
Помогите перевести |
Пожалуйста, скрипт просто ужасен, немного его подретушировал Остальное, как было замечено выше, - на форуме... |
OLGA | ||
28.8.2010, 0:09 |
Hideme скрипт скрытия в юзер-листе |
Поправил скрипт немного, теперь всё работает, чтобы скрипт работал корректно он должен стоять поверх скрипта FirstRusHubBot. В скрипте сделал вот так для клиентов, поддерживающих характеристику QuickList: Код OnGetNickList = OnValidateNick Проверьте скрипт у кого есть в клиенте подобная характеристика... Скрипт в 1 посту. |
Setuper, Saymon21 | ||
26.8.2010, 13:35 |
Официальная страничка RusHUB Внимание - вопрос |
Теперь прикручен и |
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" Код -- Адрес программы-клиента: Плюс еще можно в скрипте lua.lua уменьшить интервал поиска, для более быстрой работы программы, сейчас там 15 секунд, попробуйте 10 или 5. Если что - заходите на хаб, спросите там, общаться в онлайне как-то оперативнее Да и в фильтре тоже меняется адрес на ваш внешний, пока это недоработки, исправлю по возможности.cfg.sServerAddress = "93.125.40.40" |
Saymon21 | ||
12.8.2010, 12:14 |
Поиск по TTH на MySQL |
Итак, давайте попробуем 1 версию в действии Первым делом дополняем бд: Код 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) Верли еще возвращает переменную результата выполнения запроса, которая нам обычно не нужна и ее можно опустить пустым значением. + не забываем делать переменные локальными Плюс в верли есть такая штука, почти все вызываемые функции имеют обратимость, но для этого не как в птоке надо сделать return true, а вернуть отличное от 1 значение, если мы не хотим останавливать выполнение функции, то необходимо вернуть 1, Код 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! Всего хорошего, развития твоих проектов, успехов во всех остальных начинаниях и конечно же оставаться и совершенствоваться в нашем сообществе! |
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, но надо не забыть в нем имя хаба |
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 |
Ваши Вопросы И Предложения По Поводу Форума |
"Архив" создал, перенес в него все что было, по тому посту выше о перемещении тоже все сделано, теперь ищите всю информацию в соответствующих разделах Если у модераторов есть мысли по разделам и/или перемещению/удалению тем - пишите, разложим все по полкам, ведь отдельный форум для этого и создавался. |
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'а ваши варианты и предложения |
Продолжим творческий марафон Жду Ваших оценок... |
KT315, Saymon21, X-Sky | ||
23.7.2010, 10:41 |
С Днюхой Тебя! поздравления |
Хочу поздравить Илью (он же наш модератор Wariner) с Днем Рождения! Всех благ, светлой головы, доброго настроения, чистой души и конечно же правильного кода Лично от меня - спасибо за то что состоялось такое знакомство |
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 | ||
|
Сейчас: 23.11.2024, 1:34 |