Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
Здравствуйте, гость ( Вход | Регистрация )
Вопросы Разработчикам Скриптов, вопросы по скриптам (мелкие вопросы) |
20.4.2009, 21:11
Сообщение
#341
|
|
Продвинутый участник Группа: Пользователи Сообщений: 173 Регистрация: 26.1.2009 Из: Saratov Пользователь №: 1 965 Спасибо сказали: 7 раз |
почему..сменить сходу - эелментарно!..но будет дисконект)))...по поводу сохранения в файл или бд ясно дело!...но как лучше все таки...
1)ну максимальное кол-во можно узнать из "Core.GetMaxUsersPeak()"? ну или можно к примеру при "UserConnected(tUser)" смотреть текущее кол-во юзеров и если оно больше максимального, то сохранять его как максимальное... 2) а вот макс шару как лучше собирать? |
|
|
20.4.2009, 21:27
Сообщение
#342
|
|
Продвинутый участник Группа: Пользователи Сообщений: 173 Регистрация: 26.1.2009 Из: Saratov Пользователь №: 1 965 Спасибо сказали: 7 раз |
да по поводу ip все понятно...
Как так же...ну про макс юзеров, можно смотреть текущее колво юзеров...а как смотреть текущую общую шару? ....тьфу блин...чет я сам недоглядел что есть такая же функция на шару...эх..невнимательный стал какой-то...зря пить бросил))) |
|
|
21.4.2009, 0:01
Сообщение
#343
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Вот и я не понимал что ты не мог сделать по шаре))
Кстати, это всё есть в хуббе, и при большом желании можешь вытащить оттуда |
|
|
21.4.2009, 19:27
Сообщение
#344
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 8 Регистрация: 18.4.2009 Из: Харьков Пользователь №: 3 086 Спасибо сказали: 0 раз |
Народ как мне зделать скрипт чтоб я писал в текстовом фаиле ссылки допустим а через меню хаба ссылки оно мне личку отпровляли (просто нужно такой скрипт ) Зарание спасибо.
|
|
|
21.4.2009, 19:34
Сообщение
#345
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
|
|
|
22.4.2009, 9:50
Сообщение
#346
|
|
Продвинутый участник Группа: Пользователи Сообщений: 173 Регистрация: 26.1.2009 Из: Saratov Пользователь №: 1 965 Спасибо сказали: 7 раз |
Вот и я не понимал что ты не мог сделать по шаре)) Кстати, это всё есть в хуббе, и при большом желании можешь вытащить оттуда знаю что есть, но не хочу в ней копаться..в свое время налазился! Я вообщем то как раз хочу с нее слезть..поэтому все что в ней использовали, переписываю отдельно... подскажите как считать названия текстовых файлов находящихся в папке? Нужны доп библиотеки? или можно как то по-другому! Если обязательно доп . библ. подскажите что именно! |
|
|
22.4.2009, 10:27
Сообщение
#347
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Библиотека называется pxlfs. Расшифровывается как PtokaX Lua File System.
Под API2: PXLFS.rar ( 53.93 килобайт ) Кол-во скачиваний: 3 Советую в папке, где находится файл PtokaX.exe создать папку libs (если она ещё не создана) и туда помещать все дополнительные dll-ки Код local lfs = require"pxlfs"
local sPath = "путь_к_папке" -- обязательно на конце со слешем. Например: Core.GetPtokaXPath().."scripts/texts/" LoadTxt = function() local tTable = {} -- таблица с именами всех текстовых файлов в папке for f in lfs.dir(sPath) do if f ~= '.' and f ~= ".." then local sFile = f:match"(.+)%.txt$" if sFile then local attr = lfs.attributes(sPath..f) if attr.mode == "file" then table.insert(tTable, sFile) end end end end return tTable end |
|
|
22.4.2009, 16:26
Сообщение
#348
|
|
Продвинутый участник Группа: Пользователи Сообщений: 173 Регистрация: 26.1.2009 Из: Saratov Пользователь №: 1 965 Спасибо сказали: 7 раз |
Спасибо большое! А где нить можно узнать все возможности использования данной библиотеки?
В частности, создать-удалить файл. Код if f ~= '.' and f ~= ".." then '.' и ".." это я так понимаю другие папки? т.е. как мне поределить что там не файл, а папка. Задумка такова: Подменю: "название", в нем для обычных юзеров отображаются различные пункты (с названиями равными именам текстовых файлов лежащих в заданной папке). при выборе како-го нибудт пункта юзеру выводится текст этого текстового файла. Для админов (заданных профилей) в этом подменю имется "добавить пункт", "удалить пункт"... При создании пункта, админу преддлагается ввести имя файла (которое после добавиться в это подменю для всех) и необходимый текст, в результате в этой папке создается текстовый файл с введенным текстом (который юзеры смогут просмтореть при выбере добавленного пункта == созданному имени файла) Удалить пункт соотвественно удаляется файл и ессно удаляется соответсвующий пункт в этом меню. |
|
|
22.4.2009, 18:30
Сообщение
#349
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Код if attr.mode == "file" then эта строчка говорит, что мы ищем файлы, а не папки.Если папка, в которой создаётся файл существует, то файл создать не трудно: io.open и тд. С удалением немного сложнее. Нужно юзать, например, функцию os.execute, которая для различных систем (win и *nix) имеет в параметрах разные слеши. |
|
|
22.4.2009, 18:34
Сообщение
#350
|
|
Главный ра******й тут... Группа: Главные администраторы Сообщений: 1 727 Регистрация: 18.5.2008 Из: RF, 2la Пользователь №: 1 Спасибо сказали: 776 раз |
. и .. в файловых системах - текущая и высшая по иерархии папки соответственно. А файлы создать и удалить можно средствами самого луа. Файл создается при записи в него, функция записи в файл: Код function SaveToFile(sFileWay, sData) -- sFileWay - путь к файлу, sData - записываемые данные local sHandle = io.open(sFileWay, "w+") -- открываем файл sHandle:write(sData) -- записываем sHandle:flush() -- сохраняем изменения sHandle:close() -- закрываем файл end А удаление: Цитата os.remove (filename)
Удалаяет файл или директорию с заданным именем. Директории должны быть пусты. Если функция не может провести удаления, она возвращает nil, плюс строку, содержащую описание ошибки. |
|
|
22.4.2009, 19:32
Сообщение
#351
|
|
Продвинутый участник Группа: Пользователи Сообщений: 173 Регистрация: 26.1.2009 Из: Saratov Пользователь №: 1 965 Спасибо сказали: 7 раз |
Спасибо вам! Буду разбираться...
по поводу "." и "..", это и имел ввиду...собственно это понятно, команда "dir" ведь! За ссылку отдельное спасибо, обязательно почитаю, инглишь знаю боле менее! |
|
|
25.4.2009, 11:01
Сообщение
#352
|
|
Участник Группа: Пользователи Сообщений: 47 Регистрация: 20.4.2009 Пользователь №: 3 112 Спасибо сказали: 1 раз |
Извените что перебиваю.
Как сделать чтобы функцию уведомляли о новых сообщениях сокета? ... - не получается у меня =\ Вот попытался что-то написать Бот заходит на канал и сидит там пока его не вышвырнит пингом =\ CODE socket = require("socket")
mytcp = socket.tcp() mytcp:settimeout(iTimeOut) local iTimeOut = 1 -- таймаут соединения на получение local iBuferSize = nil -- размер буфера (nil - стандартный) function Main() SetTimer(1000) end function ChatArrival(tUser, sData) mytcp:setpeername("195.91.176.3","6667") mytcp:connect("195.91.176.3","6667") local _, sError = mytcp:send("USER dsdsd g00ns.net Canuck :Canuck" .. "\n") local _, sError = mytcp:send("NICK dsdsd" .. "\n") local _, sError = mytcp:send("JOIN #HL2_DM" .. "\n") for i=1,40 do local bData, sError = ReceiveData() SendToAll("Бот",bData) return end end function OnExit() mytcp:close() end OnError = OnExit function ReceiveData() local sData, sError = mytcp:receive(iBuferSize) if sError then -- ошибка! return nil, sError end return sData end |
|
|
25.4.2009, 17:06
Сообщение
#353
|
|
Продвинутый участник Группа: Пользователи Сообщений: 173 Регистрация: 26.1.2009 Из: Saratov Пользователь №: 1 965 Спасибо сказали: 7 раз |
такой вопрос...делаю небольшой бот с различными возможностями спецом для нашего хаба. Так вот...я там при подключении каждого юзера собираю с него инфу всевозможною(айпи, профиль, пасворд, последнее посещение и т.д..) а записываю в таблицу и текстовый файл, чтобы потом по команде админ могу посмотреть инфу о том или ином юзере, плюс можно было чистить реги которые не использовались N дней. Вопрос следущий, всю эту таблицу с данными лучше хранить в памяти, или лучше записывать в текстовый файл и в памяти сразу таблицу обнулять? А потом при просмотре инфы ее подгружать из текстового файла, выводить на экран и снова убирать из памяти (присваивая ей nil значение)...вообщем как лучше делать?
Имхо лучше обнулять каждый раз, ибо таблца очень большая ведь будет...различных ников 1000-2000... с другой стороны получится она будет подгружаться из текстового файла каждый раз при подключении юзера какого нить...вот не знаю какой вариант будет лучше... |
|
|
25.4.2009, 17:16
Сообщение
#354
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Лучший вариант - база данных
|
|
|
25.4.2009, 17:23
Сообщение
#355
|
|
Продвинутый участник Группа: Пользователи Сообщений: 173 Регистрация: 26.1.2009 Из: Saratov Пользователь №: 1 965 Спасибо сказали: 7 раз |
ну увы пока все без мускуля...в роли базы данных щас обычный текстовый файл...! Ну так как лучше держать всю таблицу в памяти? или держать ее только в файле и каждый раз подгружать - выгружать?
|
|
|
25.4.2009, 17:30
Сообщение
#356
|
|
RusHub team lead Группа: Модераторы Сообщений: 4 030 Регистрация: 20.6.2008 Из: г. Королёв (Моск. обл.) Пользователь №: 46 Спасибо сказали: 1708 раз |
Это 2 противоположности, которые имеют свои плюсы и минусы.
Хранение в файлах: плюс - меньшее потребление оперативы, минус - нагрузка на процессор при частых извлечениях. Хранение в памяти: плюс - быстрота выполнения без нагрузки на процессор, минут - забитость памяти. |
|
|
25.4.2009, 17:43
Сообщение
#357
|
|
Продвинутый участник Группа: Пользователи Сообщений: 173 Регистрация: 26.1.2009 Из: Saratov Пользователь №: 1 965 Спасибо сказали: 7 раз |
ну это понятно!...тогда подходит надо анализуря что все таки лучше...скажем то что употребит память не страшно...важно то чтобы, быстро удобно стабильнее...плюс немешало другим скриптам и прочим процессам в птоке...
и тут у меня опять закаралсь очередная мысль...как бы мне получать при подключении юзера мак его...!!! сначала думал делать так: запускать заранее написанный bat-ник...котоый узнает мак и записывает сразу в текстовый файл...и потом скриптом считывать текстовый файл...НО: 1) х.з. насколько быстро будет считывать и записываться батником мак юзера 2) надо думать как написать этот батник 3) топология сетки помоему ваще не позволяет толком определять быстро макадреса юзера...ибо сетка сегментирована... идей ни у кого нету? |
|
|
25.4.2009, 17:44
Сообщение
#358
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
я знаю одно что бот с БД будет наилучшим вариантом ибо при большой базе хоть в памяти хоть на диске тормоза будут!
|
|
|
25.4.2009, 18:25
Сообщение
#359
|
|
Продвинутый участник Группа: Пользователи Сообщений: 173 Регистрация: 26.1.2009 Из: Saratov Пользователь №: 1 965 Спасибо сказали: 7 раз |
хм...хуба ведь без бд......а мой бот куда "легче" будет...
да и вообще бот "громко" сказано...просто будет привествие(Добро пожаловавть на хаб, ваше инфа и т.д...), сбор инфы о юзерах, новости, рега, текстовые файлы |
|
|
25.4.2009, 18:32
Сообщение
#360
|
|
Самый главный активист :-D Группа: Модераторы Сообщений: 2 790 Регистрация: 29.6.2008 Из: г. Тула Пользователь №: 97 Спасибо сказали: 440 раз |
ну если почитать отзывы о хуббе на больших хабах...... что то оффтоплю я. пардон))))
|
|
|
Похожие темы
|
Сейчас: 23.11.2024, 19:47 |