PtokaX, Описание. Публикация новых версий |
Здравствуйте, гость ( Вход | Регистрация )
PtokaX, Описание. Публикация новых версий |
11.4.2017, 23:07
Сообщение
#41
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Релиз PtokaX 0.5.2.2
build 556 Сборки с Lua 5.1.5: Сборки с Lua 5.3.4: Исходный код: 0.5.2.2_nix_src.tar.7z ( 3.46 мегабайт ) Кол-во скачиваний: 3 0.5.2.2svn20170411_r155.7z ( 459.95 килобайт ) Кол-во скачиваний: 4 Список изменений (на английском) Added: Reconnect to database on connection failure or connection lost. Fixed: Compile for Windows 10 IoT. Fixed: Typo in server manager and resource leak in sqlite on exit (thx Pavel Pimenov for report). Fixed: Incorrect long length message when incomplete search command was received (thx Alexey for report). Fixed: Search request was sent to users without share (thx Pavel Pimenov for report). Fixed: Missing $ValidateDenide when user use nick that is in reserved nicks (thx Alexey for report). Fixed: Extra pipe in !checknickban result (thx Alexey for report). Fixed: IP and Port check in DC commands. (thx Mank and Rolex for report). Fixed: Missing IP check for validity in some hub commands. Fixed: Empty password received from user was not checked properly and accepted as new password for reg. Fixed: Bandwidth waste, when IPv6 user send search request with IPv4 address. Fixed: Possible crash on hublist registration (thx Pavel Pimenov for report). Fixed: Bind to single IP caused bind to all addresses when IPv6 address was empty. Fixed: Typo in scripting interface. MaxSlotsLimt -> MaxSlotsLimit (thx C??oЯy†? for report). Changed: Log script errors is enabled by default for PtokaX versions without GUI. |
|
|
15.9.2011, 15:31
Сообщение
#42
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Для работы с сокетами используются несколько модулей на Lua, которые поставляются вместе с библиотекой и в архиве находятся в каталоге scripts. Содержимое этого каталога нужно поместить в любое из перечисленных мест: корневой каталог птоки, каталог libs или каталог scripts/libs. После чего создать в этом каталоге подкаталог socket, в который переместить файлы: ftp.lua, http.lua, smtp.lua, tp.lua, url.lua.
Примечание: Если стояла старая версия библиотеки сокетов, то предварительно надо найти и удалить старые версии этих файлов. Для сомневающихся в работоспособности библиотеки сокетов: У меня всё работает, что я делаю не так? 20110917_PX0420_WebAdmin.png ( 28.46 килобайт ) Кол-во скачиваний: 1102 |
|
|
22.9.2011, 18:37
Сообщение
#43
|
|
Начинающий Группа: Пользователи Сообщений: 16 Регистрация: 20.3.2009 Пользователь №: 2 666 Спасибо сказали: 2 раза |
Доброго времени суток подскажите пожалуйста как установить сабж как службу, инструкция
Код PtokaX-x64_svc -c "C:\Ptokax\cfg" -i PtokaX PtokaX-x64_svc.exe разумеется существует, папка с конфигам тоже, рядом лежит gui версия она стартует и работает прекрасно, апри запуске службы получаю сообщение от системы "Данная служба была запущена а потом автоматически остановлена, ..." ps: во время запуска службы gui версия разумеется выгружена. |
|
|
23.9.2011, 0:10
Сообщение
#44
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Если заглянуть в файл ReadMe-Service.txt, идущий в комплекте с консольной версией птоки, то можно увидеть следующие ключи и их описание:
Цитата Command line commands available: -c <configdir> - absolute path to PtokaX config directory (where will PtokaX have cfg, logs, scripts and texts directories). -i <servicename> - install PtokaX as windows service with given name. -u <servicename> - uninstall PtokaX service with given name. -h - show help. -v - show PtokaX version with build date and time. Из описания ключа -c следует, что в той вики написана недостоверная информация и команда должна иметь вид: Код PtokaX-x64_svc -c "C:\Ptokax" -i PtokaX
|
|
|
23.9.2011, 5:31
Сообщение
#45
|
|
Белый Волк Группа: Пользователи Сообщений: 1 723 Регистрация: 11.9.2008 Из: г.Томск Пользователь №: 516 Спасибо сказали: 657 раз |
Alexey, может, исправишь в той Вики?
|
|
|
23.9.2011, 13:39
Сообщение
#46
|
|
Начинающий Группа: Пользователи Сообщений: 16 Регистрация: 20.3.2009 Пользователь №: 2 666 Спасибо сказали: 2 раза |
Alexey
благодарю, помогло, а я балбес - даже в доки не глянул Ksan мая уже исправил. |
|
|
24.10.2011, 17:41
Сообщение
#47
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 5 Регистрация: 7.10.2008 Пользователь №: 749 Спасибо сказали: 0 раз |
Новая версия PtokaX: 0.4.2.0 Внимание! В версиях под Windows не работает функция Lua API TmrMan.RemoveTimer(nTimerId) Исправили в Цитата Fixed: TmrMan.RemoveTimer Lua api call in windoze version (thx Cęńoßy†ę for report)
|
|
|
19.12.2011, 14:39
Сообщение
#48
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 9 Регистрация: 27.11.2010 Из: Volzhsky Пользователь №: 8 157 Спасибо сказали: 1 раз |
Ну вроде как вышла новая версия
Переставил скрипты с 0.4.2.0 build 241 не хотят работать Хуббабот и Скрипт действий HUBBABOT/timer.lu:144: attempt to call global 'TableMaxSize' (a nil value) adic.lua:293: invalid escape sequence near '\$' Антиреклама и Автотопик работают)) |
|
|
23.12.2011, 21:01
Сообщение
#49
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
Хаб на PtokaX 0.4.2.0 build 301 (поставлены библиотеки как сказано тут ) всё работает. Решил потестить PtokaX 0.4.2.0 build 316-lua5.2.0. Используются те же бибилиотеки.
Но при включении скриптов, использующих сокет выкидывает ошибки: 1. (во всплывающем окошке) Точка входа в процедуру @luaL_addlstring не найдена в библиотеке DLL PXLUA.DLL 2. (в сообщении скриптов PtokaX) Синтаксис error loading module 'pxsocket' from file 'E:\WithoutInstaller\Test PtokaX 0.4.2.0-316\libs\pxsocket.dll': Не найдена указанная процедура. В чём может быть причина? |
|
|
23.12.2011, 21:54
Сообщение
#50
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
А в том, что другой язык уже и плагины (либы) несовместимы.
|
|
|
23.12.2011, 22:44
Сообщение
#51
|
|
Продвинутый участник Группа: Пользователи Сообщений: 176 Регистрация: 11.7.2008 Пользователь №: 171 Спасибо сказали: 182 раза |
|
|
|
24.12.2011, 10:03
Сообщение
#52
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
пока не выйдут свежие версии либ
|
|
|
28.12.2011, 7:39
Сообщение
#53
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Последняя, на данный момент, тестовая версия PtokaX со старой версией Lua 5.1.4: 0.4.2.0b314.7z
Список изменений (на английском) Added: Core.SetUserInfo call to Lua api. Added: IDs 28 - 42 for Core.GetUserValue Lua api call (see Lua API docs). Added: IPv6 support to sockets. Added: IPv6 support to bans and range bans. Added: IPv6 country database support. Added: IPv6 client to client connections support. Added: IPv6 search support. Added: IP64 and IPv4 protocol extensions support. Added: Check for IPv4 connection for user connected to hub by IPv6. Added: IPv4 client connection support for users connected to hub by IPv6 when IPv4 connection check success. Added: IPv4 search support for users connected to hub by IPv6 when IPv4 connection check success. Added: Setting for manual IPv4 and IPv6 addresses. Changed: Country database for IPv4 from ip-to-country to IpToCountry. Fixed: TmrMan.RemoveTimer Lua api call in windoze version (thx CęńoЯy†ę for report). Fixed: MOTD was not updated after change in gui (thx mappy for report). Fixed: Few settings was not updated after change in gui. Работает с библиотеками из этого поста. Из списка изменений особо стоит отметить исправление ошибки в функции Lua API TmrMan.RemoveTimer(nTimerId) и появление возможности полноценно менять MyINFO пользователей. |
|
|
16.3.2012, 10:28
Сообщение
#54
|
|
Начинающий Группа: Пользователи Сообщений: 12 Регистрация: 7.7.2010 Из: Камышин Пользователь №: 7 220 Спасибо сказали: 0 раз |
Добрый день. Установил 0.4.2.0 сборка 314 Ptokax с оф.сайта, но перестало работать несколько скриптов. Кто может посмотреть, в чём проблема с данным скриптом "Кулинар", например:
CODE --[[ Название скрипта: Kulinar Версия скрипта: 1.0 Версия API: API2 Автор: Tsd © 09.2010 Описание: Скрипт выдаёт через меню случайный кулинарный рецепт с сайта Для работы скрипта требуется библиотека LuaSocket, взять можно тут: http://mydc.ru/topic43.html ]] ------ Настройки. local sBot = "Кулинарные рецепты" -- Имя бота. Оставьте пустые кавычки если основной бот хаба. local bRegBot = true -- Регистрировать бота? true - да, false - нет. local bKeyBot = true -- Бот будет с ключиком? true - да, false - нет. local sBotDesc = "Кулинарный маньяк" -- Описание бота. Оставьте пустые кавычки если не надо описание. local bMC = false -- Отсылать рецепт в майнчат/приват. true - майнчат, false - приват. local sMenu = "Кулинарные рецепты" -- Путь к меню. local sCom = "#eath" -- Команда. ------ Конец настроек. function OnStartup() if sBot == "" then sBot = SetMan.GetString(21) else if bRegBot then Core.RegBot(sBot,sBotDesc,"",bKeyBot) end end require("socket.http") assert(socket,"Ошибка загрузки библиотеки socket.http. Проверьте наличие файлов необходимых библиотек.") end function Main() assert(nil, "Ошибка. Эта версия скрипта предназначена для API2 !") end function UserConnected(user) Core.SendToNick(user.sNick,"$UserCommand 1 3 "..sMenu.."$<%[mynick]> "..sCom.."|") end OpConnected,RegConnected = UserConnected,UserConnected function ChatArrival(user,sData) if sData:find("%b<> "..sCom.."|") then local fd,sz,hd = socket.http.request "http://kniga-receptov.net/" if fd and sz then local sMsg = fd:match("#b09d7e;'>(.-)</font>(.*)") sMsg = string.gsub (sMsg, "</b></div><br><font style='color: #f0ddde;'><div style='padding%-left: 15px; padding%-right: 15px;'>","\n") if bMC then Core.SendToUser(user,"<"..sBot..">\t\t"..sMsg.."\n\t\t\t\tПриятного аппетита!\n") else Core.SendPmToNick(user.sNick,sBot,"\t\t"..sMsg.."\n\t\t\t\tПриятного аппетита!\n") end else Core.SendToUser(user, "<"..sBot.."> Все захотели кушать, видимо сервер перегружен. Попробуйте позже...") end collectgarbage("collect") return true end end Ошибка на хабе такая: G:\ptokax\scripts\Kulinar_1.0.lua:42: attempt to index global 'socket' (a nil value) 42 строка в скрипте : local fd,sz,hd = socket.http.request Библиотеки установлены со ссылок данного форума под 64 бита : http://mydc.ru/topic19.html?view=findpost&p=40183 вот какие файлы и папки в каталоге моего Птоки Работало и работало со старой, надо было мне удалить всё =( |
|
|
19.3.2012, 12:03
Сообщение
#55
|
|
Начинающий Группа: Пользователи Сообщений: 12 Регистрация: 7.7.2010 Из: Камышин Пользователь №: 7 220 Спасибо сказали: 0 раз |
Так же проявилась проблема с ChatHistory скриптом. Ошибка в 159 строке, сервер выдаёт ошибку ChatHist.lua:159: attempt to index a nil value
Вот сам скрипт: CODE --[[ Chat History On Entry 1.06 LUA 5.11 [Strict][API 2] By Mutor 01/15/07 Logs Main Chat and provides chat history in private message at user connect. -Provides manual history command -Provides delete message command -Provides delete all messages command -Provides history by days command -Provides chat history help command -Provides context menu [right click] -Optional max history entries -Optional number of messages sent at connect -Optional exclude pm at login per user +Changes from 1.05 +Added Anti-advertisement options. Requested by sphinx <BotName> Chat History Help Command Description ???????????????????????????????????????????? +delchat Delete Single Chat Entry +history Get Chat History +togglehistory Toggle Chat History +dayhistory Chat History By Days +chathelp Chat History Help +delete Delete Chat History ???????????????????????????????????????????? ]] Cfg = { -- Botname pulled from the hub or use "CustomName" Bot = "[Летописец]", --SetMan.GetString(21), -- Bot description Desc = "I send a message to new users.", -- Bot email address Mail = "nomail@fuck.com", -- Admin's profile AdminProf = 0, -- Admins nick for status / error messages OpNick = "Администратор", -- File to save chat data to File = "HubChat.dat", -- File to save chat data to UserFile = "ChatUsers.dat", -- Maximum number of lines to display on user connect History = 15, -- Maximum number of lines to cache MaxChat = 50, -- Context Menu Title Menu = "Ваше меню", -- Context Submenu Title SubMenu = "История чата", -- Set your profiles permissions here. -- profile_idx, history enabled [0=no 1=yes], "Profile Name" Profiles = { [-1] = {1,"Unregistered User"}, [0] = {1,"Master"}, [1] = {1,"Operator"}, [2] = {1,"Vip"}, [3] = {1,"Registered User"}, }, -- Block Advert Strings? 0 = disabled, 1 = From History, 2 = From History/Main Chat AaBlock = 0, -- Message to send to user when advert trigger was found. "" = disabled [(user) will be replaced with user nick] AaReply = "(user), ваш чат заблокирован, не рекламьте здесь, пожалуйста.", -- External File Advert Strings "" = disabled AaFile = "AntiAd.txt", -- Default Anti-Advertisement triggers, if not using external file AaTrigs = { "dchub:","http:","ftp:","hopto.org","myftp.biz","myftp.org","myvnc.com","no-ip.biz","no-ip.info","no-ip.org", "redirectme.net","servebeer.com","serveblog.net","servecounterstrike.com","serveftp.com","servegame.com", "servehalflife.com","servehttp.com","servemp3.com","servepics.com","servequake.com","sytes.net","mine.nu", "zapto.org","blogsyte.com","cable-modem.org","ciscofreak.com","damnserver.com","ditchyourip.com","bounceme.net", "dnsiskinky.com","geekgalaxy.com","homesecuritymac.com","homesecuritypc.com","myactivedirectory.com", "mymediapc.net","mypsx.net","net-freaks.com","no-ip.ca","no-ip.co.uk","no-ip.com","no-ip.net","point2this.com", "pointto.us","quicksytes.com","securityexploits.com","securitytactics.com","serveexchange.com","servehumour.com", "servep2p.com","servesarcasm.com","stufftoread.com","unusualperson.com","workisboring.com","dns2go","myftpsite", }, } OnStartup = function() local LuaVer = _VERSION:sub(1,7) if LuaVer ~= "Lua 5.1" then return OnError("This script is incompatible with ".._VERSION),true end Cfg.Script = "История чата для хаба PtokaX ".._VERSION.." " Cfg.Pfx = SetMan.GetString(29):sub(1,1) if Cfg.Bot ~= SetMan.GetString(21) or Cfg.Bot ~= SetMan.GetString(21) and not SetMan.GetHubBot().bEnabled then Core.RegBot(Cfg.Bot,Cfg.Desc.." PtokaX ".._VERSION, Cfg.Mail,true) end Cfg.Path = string.gsub(Core.GetPtokaXPath().."scripts/","/","\\") Cfg.File = Cfg.Path..Cfg.File Cfg.UserFile = Cfg.Path..Cfg.UserFile if loadfile(Cfg.File) then dofile(Cfg.File) local f,e = io.open(Cfg.File) local size = f:seek("end") size = FormatSize(size) f:close() OnError(Cfg.File.." was found and executed. File size: ".. size.." "..#Cfg.Chat.." entries.") else Cfg.Chat = {} local t = { tonumber(os.date("%Y") + os.date("%j")), os.date("%m/%d/%y"), os.date("%I:%M")..string.sub(string.lower(os.date("%p")),1,1), "<"..Cfg.Bot.."> Файл истории чата был создан ".. os.date("on: %B %d, %Y at: %I:%M")..string.sub(string.lower(os.date("%p")),1,1) } table.insert(Cfg.Chat,t) SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat") OnError(Cfg.File.." был найден. Этот файл был создан для вас .") end if loadfile(Cfg.UserFile) then dofile(Cfg.UserFile) local f,e = io.open(Cfg.UserFile) local size = f:seek("end") size = FormatSize(size) f:close() OnError(Cfg.UserFile.." был найден и запущен. Размер файла: ".. size.." "..#Cfg.Exclude.." entries.") else Cfg.Exclude = {} SaveToFile(Cfg.UserFile,Cfg.Exclude,"Cfg.Exclude") OnError(Cfg.UserFile.." не был найден. Этот файл был создан для вас .") end if Cfg.AaFile ~= "" and loadfile(Cfg.AaFile) then dofile(Cfg.File) end OnError(Cfg.Script.." был запущен. Использованая память: "..CleanMem()) end OnExit = function() OnError(Cfg.Script.." остановлен, освобождено "..CleanMem().." памяти.") end OnError = function(msg) if Core.GetUser(Cfg.OpNick) then Core.SendToNick(Cfg.OpNick,"<"..Cfg.Bot.."> "..msg) end end ChatArrival = function(user, data) data = data:sub(1,-2) local _,_,to = data:find("^$To: (%S+) From:") local _,_,prefix = data:find("%b<> (["..SetMan.GetString(29).."])") if not prefix and not to then local op = ProfMan.GetProfile(user.iProfile).tProfilePermissions.bIsOP if not op and ChkAd(data) and Cfg.AaBlock > 0 then if Cfg.AaReply ~= "" then Core.SendToUser(user,"<"..Cfg.Bot..">"..Cfg.AaReply:gsub("%(user%)",user.sNick).."|") end if Cfg.AaBlock == 2 then return true else return false end end local t = { tonumber(os.date("%Y") + os.date("%j")), os.date("%m/%d/%y"), os.date("%I:%M")..string.sub(string.lower(os.date("%p")),1,1), data, } table.insert(Cfg.Chat,t) for x = 1, #Cfg.Chat - Cfg.MaxChat do table.remove(Cfg.Chat,1) end SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat") else local _,_,cmd = data:find("%b<> %p(%w+)") if cmd and Cmds[cmd] then if Cfg.Profiles[user.iProfile] and Cfg.Profiles[user.iProfile][1] == 1 then if to and to == Cfg.Bot then return Core.SendPmToUser(user,Cfg.Bot,Cmds[cmd](user,data).."|"),true else return Core.SendToUser(user,"<"..Cfg.Bot.."> "..Cmds[cmd](user,data).."|"),true end else if to and to == Cfg.Bot then Core.SendPmToUser(user,Cfg.Bot,user.sNick.. " у вас нет прав использования этой команды.|") else Core.SendToUser(user,"<"..Cfg.Bot.."> "..user.sNick.. " у вас нет прав использования этой команды.|") end return true end end end end ToArrival = ChatArrival UserConnected = function(user) if Cfg.Profiles[user.iProfile] and Cfg.Profiles[user.iProfile][1] == 1 then local Exclude = CheckEx(user) if not Exclude then local add = "\n\n\tВведите "..Cfg.Pfx.."togglehistory чтобы выключить прием этого сообщения.\n\n" Core.SendPmToUser(user,Cfg.Bot,add..GetChat(Cfg.History).."|") end end if SendCmds(user) then local Profile = ProfName(user) Core.SendToUser(user,"<"..Cfg.Bot.."> "..Profile.."История чата 1.06 ".. "включена. Управление из меню по правому клику.|") end end RegConnected,OpConnected = UserConnected,UserConnected CleanMem = function() collectgarbage("collect") Cfg.Mem = string.format("%-.2f Kb.",collectgarbage("count")) return Cfg.Mem end CheckEx = function(user) for a,b in ipairs(Cfg.Exclude) do if b:lower() == user.sNick:lower() then return a end end end GetChat = function(lines) local x = lines if lines > #Cfg.Chat then x,lines = #Cfg.Chat,#Cfg.Chat end x = #Cfg.Chat - x local str = "\r\n\r\n <"..string.rep("?",70).."[ Последние ( "..(lines).." ) сообщений чата ]??????????>\r\n" for i,v in ipairs(Cfg.Chat) do if i > x then str = str.."\r\n "..string.format("%"..string.len(#Cfg.Chat).. "s",i).."] "..v[2].." "..v[3].." "..v[4] end end return str.."\r\n\r\n <"..string.rep("?",70).."[ Конец истории чата ]".. string.rep("?",4 + string.len(lines)).."??????????>\r\n\r\n" end DelChat = function(lines) local count = lines if lines > #Cfg.Chat then lines = #Cfg.Chat end if lines == #Cfg.Chat then count = "all "..lines end for x = 1, lines do table.remove(Cfg.Chat,1) end if #Cfg.Chat == 0 then local t = { tonumber(os.date("%Y") + os.date("%j")), os.date("%m/%d/%y"), os.date("%I:%M")..string.sub(string.lower(os.date("%p")),1,1), "<"..Cfg.Bot.."> История чата очищена ".. os.date("on: %B %d %Y at: %I:%M")..string.sub(string.lower(os.date("%p")),1,1) } table.insert(Cfg.Chat,t) end SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat") return count.." messages deleted." end function Serialize(tTable, sTableName, sTab) assert(tTable, "tTable equals nil") assert(sTableName, "sTableName equals nil") assert(type(tTable) == "table", "tTable must be a table!") assert(type(sTableName) == "string", "sTableName must be a string!") sTab = sTab or "" sTmp = "" sTmp = sTmp..sTab..sTableName.." = {\n" for key, value in ipairs(tTable) do local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key) if(type(value) == "table") then sTmp = sTmp..Serialize(value, sKey, sTab.."\t") else local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value) sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue end sTmp = sTmp..",\n" end sTmp = sTmp..sTab.."}" return sTmp end function SaveToFile(File , Table , Tablename) local handle = io.open(File,"w") handle:write(Serialize(Table, Tablename)) handle:flush() handle:close() CleanMem() end SendCmds = function(user) if Cfg.Profiles[user.iProfile] and Cfg.Profiles[user.iProfile][1] == 1 then for i,v in pairs(Cmds) do local m,s,pfx = Cfg.Menu,Cfg.SubMenu,Cfg.Pfx local c,n,pm,p = "$UserCommand 1","$<%[mynick]>","$$To: ".. Cfg.Bot.." From: %[mynick] ","||" local d,a1,a2 = Cmds[i]() Core.SendToUser(user,c.." 1 "..m.."\\"..s.."\\"..d..n.." "..pfx..i..a1..p) Core.SendToUser(user,c.." 2 "..m.."\\"..s.."\\"..d..pm..n.." "..pfx..i..a2..p) end CleanMem() return true end end FormatSize = function(int) local i,u,x = tonumber(int) or 0,{"","K","M","G","T","P"},1 while i > 1024 do i,x = i/1024,x+1 end return string.format("%.2f %sB.",i,u[x]) end ProfName = function(user) local p,prof = user.iProfile if p and p ~= -1 then prof = ProfMan.GetProfile(p).sProfileName else prof = "Unregistered User" end return prof end ChkAd = function(data) for i,v in ipairs(Cfg.AaTrigs) do if data:lower():find(v:lower(),1,1) or data:lower():find("%d+%.%d+%.%d+%.%d+") then return i end end end Cmds = { togglehistory = function(user,data) if user then local status,result = "убраны из","Теперь вы будете ".. "получать истрию чата при заходе на хаб." local Exclude = CheckEx(user) if not Exclude then table.insert(Cfg.Exclude,user.sNick) status,result = "добавлены в","Больше вы ".. "не будете получать историю чата при входе." else table.remove(Cfg.Exclude,Exclude) end SaveToFile(Cfg.UserFile,Cfg.Exclude,"Cfg.Exclude") return "Вы были "..status.." таблицы исключений. "..result else return "Активация сохранения истории чата","","" end end, history = function(user,data) local ChatLines = Cfg.MaxChat if user then local _,_,lines = data:find("%b<> %p%w+ (%d+)") if not lines then lines = ChatLines else lines = tonumber(lines) end return GetChat(lines) else return "Получить историю чата", " %[line:# Число линий для вывода (макс) "..ChatLines.."]", " %[line:# Число линий для вывода (макс) "..ChatLines.."]" end end, dayhistory = function(user,data) local today = tonumber(os.date("%Y") + os.date("%j")) if user then local _,_,days = data:find("%b<> %p%w+ (%d+)") if days then local past = today - tonumber(days) OnError(past) local str = "\r\n\r\n <"..string.rep("?",70).. "[ Last ( "..days.." ) days of chat ]??????????>\r\n" for i,v in ipairs(Cfg.Chat)do if v[1] > past then str = str.."\r\n ["..i.."] "..v[2].." "..v[3].." "..v[4] end end str = str.."\r\n\r\n <"..string.rep("?",70).."[ Конец истории чата ]".. string.rep("?",string.len(days)).."??????????>\r\n\r\n" return str else return "You must specify how many days" end else return "История чата по дням", " %[line:За сколько дней показать историю?]", " %[line:За сколько дней показать историю?]" end end, delete = function(user,data) local ChatLines = #Cfg.Chat if user then if user.iProfile == Cfg.AdminProf then local _,_,lines = data:find("%b<> %p%w+ (%d+)") if not lines then lines = ChatLines else lines = tonumber(lines) end return DelChat(lines) else return "Sorry "..user.sNick..", this command is for ".. ProfMan.GetProfile(Cfg.AdminProf).sProfileName.."'s only." end else return "Стереть историю чата", " %[line:# линий **ноль = все ("..ChatLines..") сообщения ]", " %[line:# линий **ноль = все ("..ChatLines..") сообщения ]" end end, delchat = function(user,data) local ChatLines = #Cfg.Chat if user then if user.iProfile == Cfg.AdminProf then local _,_,line = data:find("%b<> %p%w+ (%d+)") if line then line = tonumber(line) if Cfg.Chat[line] then local str = Cfg.Chat[line][4] table.remove(Cfg.Chat,line) SaveToFile(Cfg.File,Cfg.Chat,"Cfg.Chat") return "Линии истории чата "..line.." были удалены.\r\n".. "Удаленная история: "..string.format("%q",str) else return line.." не верный ввод."..GetChat(Cfg.History) end else return "Вы должны указать что нужно удалить." end else return "Прости "..user.sNick..", эта команда только для ".. ProfMan.GetProfile(Cfg.AdminProf).sProfileName.."пользователей." end else return "Удалить строку истории", " %[line:Какую трем?]", " %[line:Какую трем?]" end end, chathelp = function(user,data,to) if user then local reply = "Chat History Help\n\n\tCommand\t\tDescription\r\n".. "\t"..string.rep("?",40).."\r\n" for i,v in pairs(Cmds) do local desc,args = Cmds[i]() reply = reply.."\t"..Cfg.Pfx..string.format("%-15s",i).."\t"..desc.."\r\n" end return reply.."\n\t"..string.rep("?",40).."\r\n\r\n" else return "Помощь по истории чата","","" end end, } При этом историю скрипт записывает, но постоянно выпадает эта ошибка, как её отключить и влияет ли она на что-либо ещё? В lua мало понимаю, прошу помощи. |
|
|
19.3.2012, 14:38
Сообщение
#56
|
|
Наруто на аваторке Группа: Пользователи Сообщений: 2 606 Регистрация: 11.10.2008 Из: Харькова Пользователь №: 771 Спасибо сказали: 774 раза |
ramzes, попробуй новее версию этого скрипта
|
|
|
20.3.2012, 13:02
Сообщение
#57
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Ошибка на хабе такая: G:\ptokax\scripts\Kulinar_1.0.lua:42: attempt to index global 'socket' (a nil value) 42 строка в скрипте : local fd,sz,hd = socket.http.request Библиотеки установлены со ссылок данного форума под 64 бита : http://mydc.ru/topic19.html?view=findpost&p=40183 вот какие файлы и папки в каталоге моего Птоки Ты не полностью обновил библиотеку сокетов, в этом причина. Так же проявилась проблема с ChatHistory скриптом. Ошибка в 159 строке, сервер выдаёт ошибку ChatHist.lua:159: attempt to index a nil value При этом историю скрипт записывает, но постоянно выпадает эта ошибка, как её отключить и влияет ли она на что-либо ещё? В lua мало понимаю, прошу помощи. Эта ошибка будет возникать и на предыдущих версиях птоки. Проблема не в птоке, а в самом скрипте и обсуждать её надо в теме скрипта, а не здесь. |
|
|
20.3.2012, 13:34
Сообщение
#58
|
|
Начинающий Группа: Пользователи Сообщений: 12 Регистрация: 7.7.2010 Из: Камышин Пользователь №: 7 220 Спасибо сказали: 0 раз |
Ты не полностью обновил библиотеку сокетов, в этом причина. Эта ошибка будет возникать и на предыдущих версиях птоки. Проблема не в птоке, а в самом скрипте и обсуждать её надо в теме скрипта, а не здесь. Артём, установил предложенный тобою скрипт, работает отлично! Alexey, скрипт кулинар отлично работал на прошлой версии птохи, буду писать в другую ветку форума, извините. |
|
|
22.3.2012, 20:13
Сообщение
#59
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 2 Регистрация: 22.3.2012 Пользователь №: 10 425 Спасибо сказали: 0 раз |
Здравствуйте. Скачал те скрипты на предыдущей странице, распаковал всё в libs и в script/libs, однако:
Синтаксис error loading module 'pxsocket' from file 'C:\ptokax 4.2\pxsocket.dll': Не найдена указанная процедура. Помогите, возможно я просто не туда распаковал либы... Стоит последняя версия птокакса. |
|
|
22.3.2012, 21:34
Сообщение
#60
|
|
7 квадратиков Группа: Модераторы Сообщений: 793 Регистрация: 21.1.2009 Пользователь №: 1 895 Спасибо сказали: 301 раз |
Привет. Из ошибки однозначно следует, что ты не до конца удалил остатки старой библиотеки. Тут есть ясное описание, что и куда надо распаковать и какие файлы найти и удалить.
|
|
|
23.3.2012, 1:22
Сообщение
#61
|
|
Абсолютный новичок Группа: Пользователи Сообщений: 2 Регистрация: 22.3.2012 Пользователь №: 10 425 Спасибо сказали: 0 раз |
Ничерта там не понял ) Я уже везде эти libs создал, а старые не знаю какие >_>. Ставил птокакс новый этот с нуля.
|
|
|
Похожие темы
|
Сейчас: 27.11.2024, 3:14 |