Author Topic: i need convert Request Reg  (Read 2248 times)

0 Members and 1 Guest are viewing this topic.

Offline TrIp-iN-SuN

  • Double Ace
  • *
  • Posts: 142
  • Karma: +6/-19
  • ][?][ PsySun ][?][
i need convert Request Reg
« on: 31 March, 2008, 13:11:30 »
Code: Lua
  1. --[[
  2.         Request Reg 1.0b LUA 5.0/5.1
  3.        
  4.         by American Idiot 8/30/05
  5.        
  6.         Requested by Psycho_Chihuahua
  7.        
  8.         Provides user command to request registration.
  9.         -User must supply a valid password with request.
  10.         -Online Ops are notified of request.
  11.         -Users are messaged about registration on connect
  12.         -Option for timed registration reminder to unregged
  13.        
  14.         Converted to 5.1 12/01/06
  15.        
  16.         +Changes from 1.0       12/31/06 reuested by ScAnDaL
  17.                 +Added context menu [right click]
  18.                 +Added listen for command in pm to bot.
  19.  
  20. ]]
  21.  
  22. --//Botname pulled from the hub
  23. Bot = frmHub:GetHubBotName()
  24. sBotName = frmHub:GetOpChatName()
  25. --//User Command to request registration
  26. ReqCmd = "regme"
  27. --//Send timed message to unreged? "on"/"off"
  28. TimedMsg = "on"
  29. --//Interval [in minutes] between message to unregged
  30. Mins = 15
  31.  
  32. Main = function()
  33.         if TimedMsg == "on" then
  34.                 SetTimer(Mins*60000)
  35.                 StartTimer()
  36.                 OnTimer()
  37.         end
  38. end
  39.  
  40. function NewUserConnected(user, data)
  41.         if not frmHub:isNickRegged(user.sName) then
  42.                 user:SendData("$UserCommand 1 3 ? Register ? $<%[mynick]> "..
  43.                 frmHub:GetPrefixes()[1]..ReqCmd.." %[line:Password]&#38;#124;")
  44.         end
  45. end
  46.  
  47. ChatArrival = function(user, data)
  48.         if user.iProfile == -1 then
  49.                 local s,e,to = string.find(data,"^$To:%s(%S+)%sFrom:")
  50.                 local s,e,cmd = string.find(data, "%b<>%s%p(%w+)")
  51.                 local s,e,pwd = string.find(data, "%b<>%s%p%w+%s(%S+)|$")
  52.                 if cmd and (cmd == ReqCmd) then
  53.                         if pwd then
  54.                                 if string.find(pwd, "[%c|\n\r]") then
  55.                                         local msg = "That password has invalid charachters, try another."
  56.                                         return MsgNick(user,msg,to),1
  57.                                 else
  58.                                         local RequestTime=os.date("%B %d %Y %I:%m %p ")
  59.                                         local ReqMsg="\r\n\r\n\tRequest Submitted: "..user.sName..
  60.                                         " Your Registration Request Was Sent"..
  61.                                         " To All Online Operators,"..
  62.                                         " Dont Forget To Open A Slot For The Operators To Check Your Share ."
  63.                                         if not user.bRegistered then
  64.                                                 local RegMsg0=" The user "..
  65.                                                 user.sName.." Want to be registered with the password:  "..pwd..""..
  66.                                                 "   Please check  "..user.sName.."  Share and respond."
  67.                                                 SendPmToOps(sBotName,RegMsg0)
  68.                                                 return MsgNick(user,ReqMsg,to),1
  69.                                         else
  70.                                                 local RegMsg1="\r\n\r\n\t"..RequestTime.."\r\n\tAttention Operators: the user "..
  71.                                                 user.sName.." has requested registration.\r\n"..
  72.                                                 "\tThat nick was already found in the user database. "..
  73.                                                 "Please check and assist the user in logging in.\r\n\r\n"
  74.                                                 SendPmToOps(sBotName,RegMsg1)
  75.                                                 return MsgNick(user,ReqMsg,to),1
  76.                                         end
  77.                                 end
  78.                         else
  79.                                 local msg = "You must provide a password"
  80.                                 return MsgNick(user,msg,to),1
  81.                         end
  82.                 end
  83.         end
  84. end
  85. ToArrival = ChatArrival
  86.  
  87. MsgNick = function(user,msg,to)
  88.         if to and to == Bot then
  89.                 user:SendPM(Bot,msg)
  90.         else
  91.                 user:SendData(Bot,msg)
  92.         end
  93. end
  94.  
  95. function OnTimer()
  96.         for i,v in ipairs(frmHub:GetOnlineUsers()) do
  97.                 local name = GetItemByName(v.sName)
  98.                         if name then
  99.                                 if not name.bRegistered then
  100.                                         local art = "\t"..string.rep("?",60).."\r\n"
  101.                                         local ul = string.rep("?",6)
  102.                                         local RegMsg="\r\n\r\n"..art.."\tNotice: Users are required to "..
  103.                                         "register themselves in this hub.\r\n\t          (Download and search is disabled for unregistered users)\r\n"..art..""..
  104.                                         "\tYou can request registration by typing ->  "..
  105.                                         frmHub:GetPrefixes()[1]..ReqCmd.." password, in main chat.\r\n"..
  106.                                         "\tAs soon as possible an Operator will check your client\r\n"..
  107.                                         "\tand share and assist you with registration.\r\n"..art
  108.                                         SendPmToNick(name.sName,Bot,RegMsg)
  109.                                 end
  110.                         end
  111.         end
  112. end
« Last Edit: 31 March, 2008, 18:25:56 by bastya_elvtars »
dchub://PsySun.Sytes.net

PtokaX forum

i need convert Request Reg
« on: 31 March, 2008, 13:11:30 »

Offline TrIp-iN-SuN

  • Double Ace
  • *
  • Posts: 142
  • Karma: +6/-19
  • ][?][ PsySun ][?][
Re: i need convert Request Reg
« Reply #1 on: 31 March, 2008, 13:14:11 »
and this
Code: Lua
  1.  --/----------------------------------------------------------------------------
  2. -- Entry Bot v1.2 (7/4/2005)
  3. -- For PtokaX 0.3.3.0 build 17.02 or Higher
  4.  
  5. -- Thanks to Dessamator for the Timed Message efforts
  6. -- Script Changed By ']['rIp?iN??uN
  7.  
  8. --/ Some Features:
  9. -- Supports pre-defined categories;
  10. -- Commands to add, delete, show, find entries and much more;
  11. -- Entries older than x Days are automatically deleted (optional)
  12. -- Ability to send pre-defined category's content to main when desired
  13. -- Includes an optimized RighClick;
  14. --/----------------------------------------------------------------------------
  15.  
  16. Settings = {
  17.         sBot = frmHub:GetHubBotName(),          -- Default Bot Name or -- sBot = "custombot"
  18.         sMenu = "? Release Bot",                        -- RightClick Menu Name
  19.         cFile = "Category.tbl",                 -- File where the Categories are stored
  20.         rFile = "Entry.tbl",                    -- File where the Entries are stored
  21.         vFile = "Votes.tbl",                    -- File where the Voters are stored
  22.         eFolder = "Entry",                      -- Folder where the .tbl files are stored
  23.         iVer = " Release",                              -- Script Version
  24.         iMax = 40,                              -- Maximum entries to be shown
  25.         vMax = 20,                              -- Maximum votes to be shown
  26.         pMax = 20,                              -- Maximum posters to be shown
  27.         SendOnConnect = 0,                      -- 1 = Send iMax Entries to every user on connect; 0 = Don't send
  28.         CatSize = 20,                           -- Category's size
  29.         EntrySize =90,                          -- Entry's size (recommended: 75-80)
  30.         Sensitive = 0,                          -- 1 = Searches case-sensitive; 0 = not case-sensitive
  31.         TimedCat = 0,                           -- 1 = Send specific category content to main in an interval; 0: not
  32.         TimedMsg = "your message",              -- Message shown below each Timed Category in Main
  33.         Times = {                               -- ["time in 24h format"] = "Category" (not case sensitive)
  34.                 ["12:30"] = "cat1",
  35.                 ["13:00"] = "cat2",
  36.         },
  37.         cDelay = 12,                            -- Cleaner Checking Delay (in hours)
  38.         pCleaner = 1,                           -- 1 = Sends cleaner actions to all; 0 = doesn't
  39.         Cleaner = 1,                            -- 1 = Set Automatic Cleaner On; 0 = Automatic Cleaner Off
  40.         SendRC = 1,                             -- 1 = Send RighClick; 0 = Don't
  41.         SendTo = {                              -- Send RightClick to Profile [x] = (1 = on, 0 = off)
  42.                 [0] = 1,                                -- Master
  43.                 [1] = 1,                                -- Operator
  44.                 [2] = 1,                                -- VIP
  45.                 [3] = 1,                                -- REG
  46.                 [4] = 1,                                -- Custom Profile
  47.                 [5] = 1,                                -- Custom Profile
  48.                 [6] = 1,                                -- Custom Profile
  49.                 [-1] = 1,                               -- Unreg
  50.         },
  51.         -- Commands --
  52.         addCatCmd = "addcat", delCatCmd = "delcat", showCatCmd = "showcat", addCmd = "addrls", TimedCmd = "rotator",
  53.         showCmd = "rls", delCmd = "delrls", delAllCmd = "delall", findCmd = "find", helpCmd = "entryhelp",
  54.         voteCmd = "vote", TopVotesCmd = "topvote", clrVotesCmd = "clrvote", TopPosterCmd = "topposter",
  55.         --------------
  56.         sChar = { "-", " ", "i", "l", "r", "t", "I", "y", "o", }, -- Don't change this
  57. }
  58.  
  59. -- If you're using PtokaX's default profiles it should be like this:
  60. -- Levels = { [-1] = 1, [3] = 2, [2] = 3, [1] = 4, [4] = 5, [0] = 6, [5] = 7, [6] = 8 }
  61. -- If you're using Robocop profiles don't change this.
  62. Levels = { [-1] = 1, [3] = 2, [2] = 3, [1] = 4, [4] = 5, [0] = 6, [5] = 7, [6] = 8 }
  63.  
  64. Category = {} Entry = {} tPrefixes = {} Votes = {} tabTimers = {n=0} TmrFreq = 60*1000
  65.  
  66. Main = function()
  67.         if Settings.sBot ~= frmHub:GetHubBotName() then frmHub:RegBot(Settings.sBot) end
  68.         if loadfile(Settings.eFolder.."/"..Settings.cFile) then dofile(Settings.eFolder.."/"..Settings.cFile) else os.execute("mkdir "..Settings.eFolder) end
  69.         if loadfile(Settings.eFolder.."/"..Settings.rFile) then dofile(Settings.eFolder.."/"..Settings.rFile) else io.output(Settings.eFolder.."/"..Settings.rFile) end
  70.         if loadfile(Settings.eFolder.."/"..Settings.vFile) then dofile(Settings.eFolder.."/"..Settings.vFile) end
  71.         for a,b in pairs(frmHub:GetPrefixes()) do tPrefixes[b] = 1 end
  72.         RegTimer(Cleaner, Settings.cDelay*60*60*1000) RegTimer(TimedCat, 60*1000) SetTimer(TmrFreq) StartTimer()
  73. end
  74.  
  75. ChatArrival = function(sUser,sData)
  76.         local sData = string.sub(sData,1,-2)
  77.         local s,e,sPrefix,cmd = string.find(sData,"%b<>%s*(%S)(%S+)")
  78.         if sPrefix and tPrefixes[sPrefix] and tCmds[cmd] then
  79.                 if tCmds[cmd][2] <= Levels[sUser.iProfile] then
  80.                         return tCmds[cmd][1](sUser,sData)
  81.                 else
  82.                         return sUser:SendData(Settings.sBot,"?:?:? Error: You Are Not Allowed To Use This CommanD ?:?:?"), 1
  83.                 end
  84.         end
  85. end
  86.  
  87. ToArrival = ChatArrival
  88.  
  89. tCmds = {
  90.  
  91. --              Commands Structure:
  92. --              [Command] = { function, Lowest Profile that can use this command (check Levels table), Description, Example, RightClick Command},
  93.  
  94.         [Settings.addCatCmd]    =       {
  95.                                 function(user,data)
  96.                                         local s,e,cat,date = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(%d+)")
  97.                                         if cat and date then
  98.                                                 if Category[string.lower(cat)] == nil then
  99.                                                         if (string.len(cat) > Settings.CatSize) then
  100.                                                                 user:SendData(Settings.sBot,"?:?:? Error: The Category Can't Have More Than "..Settings.CatSize.." Characters ?:?:?")
  101.                                                         else
  102.                                                                 Category[string.lower(cat)] = date
  103.                                                                 SaveToFile(Settings.eFolder.."/"..Settings.cFile,Category,"Category")
  104.                                                                 user:SendData(Settings.sBot,cat.." was successfully added to the Categories.")
  105.                                                         end
  106.                                                 else
  107.                                                         user:SendData(Settings.sBot,"?:?:? Error: There Is Already A Category: "..cat)
  108.                                                 end
  109.                                         else
  110.                                                 user:SendData(Settings.sBot,"?:?:? Syntax Error: Type +"..Settings.addCatCmd.." <category> <maximum time in days>")
  111.                                         end
  112.                                         return 1
  113.                                 end, 6, "Add category and delete Time", "+"..Settings.addCatCmd.." Movies 15",
  114.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Add\\Category$<%[mynick]> +"..Settings.addCatCmd.." %[line:Category] %[line:LifeTime in Days]|" },
  115.         [Settings.delCatCmd]    =       {
  116.                                 function(user,data)
  117.                                         local s,e,cat = string.find(data,"%b<>%s+%S+%s+(%S+)")
  118.                                         if cat then
  119.                                                 if Category[string.lower(cat)] then
  120.                                                         Category[string.lower(cat)] = nil ShowEntry(1,table.getn(Entry),1,4,cat,"",Entry)
  121.                                                         SaveToFile(Settings.eFolder.."/"..Settings.cFile,Category,"Category")
  122.                                                         user:SendData(Settings.sBot,cat.." was sucessfully deleted from the Categories.")
  123.                                                 else
  124.                                                         user:SendData(Settings.sBot,"?:?:? Error: There Is No Category: "..cat)
  125.                                                 end
  126.                                         else
  127.                                                 user:SendData(Settings.sBot,"?:?:? Syntax Error: Type +"..Settings.delCatCmd.." <category>")
  128.                                         end
  129.                                         return 1
  130.                                 end, 6, "Deletes an existing category", "+"..Settings.delCatCmd.." Movies",
  131.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Delete\\Category$<%[mynick]> +"..Settings.delCatCmd.." %[line:Category]|" },
  132.         [Settings.showCatCmd]   =       {
  133.                                 function(user)
  134.                                         if next(Category) then
  135.                                                 local msg = "\r\n\r\n".."\t"..string.rep("??",15).."\r\n"
  136.                                                 msg = msg.."\t\tCategory List:\r\n"
  137.                                                 msg = msg.."\t"..string.rep("??",15).."\r\n"
  138.                                                 local i,v for i, v in pairs(Category) do msg = msg.."\t       ? "..string.upper(string.sub(i,1,1))..string.sub(i,2,string.len(i)).." ("..v.." days)\r\n" end
  139.                                                 user:SendData(Settings.sBot,msg)
  140.                                         else
  141.                                                 user:SendData(Settings.sBot,"?:?:? Error: There Are No Categories!");
  142.                                         end
  143.                                         return 1
  144.                                 end, 1, "Shows categories", "+"..Settings.showCatCmd,
  145.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Show\\Categories$<%[mynick]> +"..Settings.showCatCmd.."|" },
  146.         [Settings.addCmd]       =       {
  147.                                 function(user,data)
  148.                                         local s,e,cat,rel = string.find(data,"%b<>%s+%S+%s+(%S+)%s+(.*)")
  149.                                         if cat then
  150.                                                 if Category[string.lower(cat)] then
  151.                                                         if rel ~= "" then
  152.                                                                 local Exists = nil
  153.                                                                 for i = 1, table.getn(Entry) do
  154.                                                                         if string.lower(Entry[i][2]) == string.lower(cat) and string.lower(Entry[i][3]) == string.lower(rel) then
  155.                                                                                 Exists = 1
  156.                                                                         end
  157.                                                                 end
  158.                                                                 if Exists == 1 then
  159.                                                                         user:SendData(Settings.sBot,"?:?:? Error: There's Already An Release "..rel.." in "..cat..".")
  160.                                                                 else
  161.                                                                         if (string.len(rel) > Settings.EntrySize) then
  162.                                                                                 user:SendData(Settings.sBot,"?:?:? Error: The Release Can't Have More Than "..Settings.EntrySize.." characters.")
  163.                                                                         else
  164.                                                                                 cat = string.lower(cat)
  165.                                                                                 table.insert( Entry, { user.sName, cat, rel, os.date(), 0, } )
  166.                                                                                 SaveToFile(Settings.eFolder.."/"..Settings.rFile,Entry,"Entry")
  167.                                                                                 SendToAll(Settings.sBot,user.sName.." Added A  "..cat.." New Release : "..rel..". To See The Last 40 RLS Type : +"..Settings.showCmd)
  168.                                                                         end
  169.                                                                 end
  170.                                                         else
  171.                                                                 user:SendData(Settings.sBot,"?:?:? Error: Please Type An Release.")
  172.                                                         end
  173.                                                 else
  174.                                                         user:SendData(Settings.sBot,"?:?:? Error: There Is No Category: "..cat)
  175.                                                 end
  176.                                         else
  177.                                                 user:SendData(Settings.sBot,"?:?:? Syntax Error: Type +"..Settings.addCmd.." <category> <Entry>")
  178.                                         end
  179.                                         return 1
  180.                                 end, 3, "Adds an entry to a category", "+"..Settings.addCmd.." Movies Matrix Revolutions",
  181.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Add\\Release$<%[mynick]> +"..Settings.addCmd.." %[line:Category] %[line:Entry]|" },
  182.         [Settings.showCmd]      =       {
  183.                                 function(user,data)
  184.                                         local s,e,cat = string.find(data,"%b<>%s+%S+%s+(%S+)")
  185.                                         if cat then
  186.                                                 if Category[string.lower(cat)] then
  187.                                                         user:SendPM(Settings.sBot,ShowEntry(1, table.getn(Entry), 1, 3, cat, string.rep("\t",9).."Showing all "..cat.." "..string.rep("\t",7).."["..os.date().."]\r\n",Entry))
  188.                                                 elseif string.lower(cat) == "all" then
  189.                                                         user:SendPM(Settings.sBot,ShowEntry(1, table.getn(Entry), 1, 1, false, string.rep("\t",9).."Showing all entries ["..table.getn(Entry).."]"..string.rep("\t",7).."["..os.date().."]\r\n",Entry))
  190.                                                 else
  191.                                                         user:SendData(Settings.sBot,"?:?:? Error: There Is No Category: "..cat)
  192.                                                 end
  193.                                         else
  194.                                                 user:SendPM(Settings.sBot,ShowEntry(table.getn(Entry) - Settings.iMax + 1, table.getn(Entry), 1, 1, false, string.rep("\t",9).."Last "..Settings.iMax.." entries "..string.rep("\t",8).."["..os.date().."]\r\n",Entry))
  195.                                         end
  196.                                 end, 1, "Shows "..Settings.iMax.."/all/category entries", "+"..Settings.showCmd..", +"..Settings.showCmd.." all, +"..Settings.showCmd.." Movies",
  197.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Show\\"..Settings.iMax.."/All/Category$<%[mynick]> !"..Settings.showCmd.." %[line:empty/All/Category]|" },
  198.         [Settings.delCmd]       =       {
  199.                                 function(user,data)
  200.                                         local s,e,rel = string.find(data,"%b<>%s+%S+%s+(.*)")
  201.                                         if rel then
  202.                                                 if tonumber(rel) then
  203.                                                         rel = tonumber(rel) local Deleted = nil
  204.                                                         for i = 1, table.getn(Entry), 1 do
  205.                                                                 if Entry[rel] then
  206.                                                                         table.remove(Entry,rel) Deleted = 1 break
  207.                                                                 end
  208.                                                         end
  209.                                                         if Deleted == 1 then
  210.                                                                 user:SendData(Settings.sBot,"ID "..rel.." Was Successfully Deleted.")
  211.                                                                 SaveToFile(Settings.eFolder.."/"..Settings.rFile,Entry,"Entry")
  212.                                                         else
  213.                                                                 user:SendData(Settings.sBot,"?:?:? Error: There Is No ID: "..rel..".")
  214.                                                         end
  215.                                                 elseif Category[string.lower(rel)] then
  216.                                                         if ShowEntry(1,table.getn(Entry),1,4,rel,"",Entry) == nil then
  217.                                                                 ShowEntry(table.getn(Entry),1,-1,4,rel,"",Entry)
  218.                                                                 SaveToFile(Settings.eFolder.."/"..Settings.rFile,Entry,"Entry")
  219.                                                                 user:SendData(Settings.sBot,"Category: "..rel.." Was Succesfully Cleaned Up.")
  220.                                                         else
  221.                                                                 user:SendData(Settings.sBot,"?:?:? Error: There Is No Category: "..rel)
  222.                                                         end
  223.                                                 else
  224.                                                         if ShowEntry(1,table.getn(Entry),1,6,rel,"",Entry) == nil then
  225.                                                                 ShowEntry(1,table.getn(Entry),1,6,rel,"",Entry)
  226.                                                                 SaveToFile(Settings.eFolder.."/"..Settings.rFile,Entry,"Entry")
  227.                                                                 user:SendData(Settings.sBot,"Entry: "..rel.." Was Succesfully Deleted.")
  228.                                                         else
  229.                                                                 user:SendData(Settings.sBot,"?:?:? Error: There Is No Entry: "..rel)
  230.                                                         end
  231.                                                 end
  232.                                         else
  233.                                                 user:SendData(Settings.sBot,"?:?:? Syntax Error: Type +"..Settings.delCmd.." <entry/ID/category>")
  234.                                         end
  235.                                         return 1
  236.                                 end, 4, "Deletes entry/ID/by category", "+"..Settings.delCmd.." Matrix Revolutions; +"..Settings.delCmd.." 5; +"..Settings.delCmd.." Movies",
  237.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Delete\\Release/ID/Category Content$<%[mynick]> !"..Settings.delCmd.." %[line:Entry/ID/Category Name]|" },
  238.         [Settings.delAllCmd]    =       {
  239.                                 function(user,data)
  240.                                         Entry = nil Entry = {} SaveToFile(Settings.eFolder.."/"..Settings.rFile,Entry,"Entry")
  241.                                         user:SendData(Settings.sBot,"All Releases Have Been Deleted Successfully.")
  242.                                         return 1
  243.                                 end, 6, "Deletes all entries", "+"..Settings.delAllCmd,
  244.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Delete\\All Release$<%[mynick]> +"..Settings.delAllCmd.."|" },
  245.         [Settings.findCmd]      =       {
  246.                                 function(user,data)
  247.                                         local s,e,str = string.find(data,"%b<>%s+%S+%s+(%S+)")
  248.                                         if str then
  249.                                                 user:SendPM(Settings.sBot,ShowEntry(1, table.getn(Entry), 1, 2, str, string.rep("\t",9).."Search Results of: "..str..string.rep("\t",7).."["..os.date().."]\r\n",Entry))
  250.                                         else
  251.                                                 user:SendData(Settings.sBot,"?:?:? Syntax Error: Type +"..Settings.findCmd.." <string>")
  252.                                         end
  253.                                         return 1
  254.                                 end, 1, "Finds an entry by any string", "+"..Settings.findCmd.." PsyMusic",
  255.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Find\\All$<%[mynick]> +"..Settings.findCmd.." %[line:String]|" },
  256.         [Settings.TimedCmd]     =       {
  257.                                 function(user,data)
  258.                                         local s,e,arg = string.find(data,"%b<>%s+%S+%s+(%S+)")
  259.                                         if arg then
  260.                                                 if string.lower(arg) == "on" then
  261.                                                         StartTimer() user:SendData(Settings.sBot,"Category Rotator Has Been Enabled.")
  262.                                                 elseif string.lower(arg) == "off" then
  263.                                                         StopTimer() user:SendData(Settings.sBot,"Category Rotator Has Been Disabled.")
  264.                                                 end
  265.                                         else
  266.                                                 user:SendData(Settings.sBot,"?:?:? Syntax Error: Type +"..Settings.TimedCmd.." <on/off>")
  267.                                         end
  268.                                         return 1
  269.                                 end, 6, "Set Category Rotator status", "+"..Settings.TimedCmd.." <on/off>",
  270.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Setup\\Rotator Status$<%[mynick]> +"..Settings.TimedCmd.." %[line:on/off]|" },
  271.         [Settings.voteCmd]      =       {
  272.                                 function(user,data)
  273.                                         local s,e,i = string.find(data,"%b<>%s+%S+%s+(%d+)")
  274.                                         if i then
  275.                                                 if Entry[tonumber(i)] then
  276.                                                         if not Votes[Entry[tonumber(i)][2]] then Votes[Entry[tonumber(i)][2]] = {} end
  277.                                                         if Votes[Entry[tonumber(i)][2]][user.sIP] then
  278.                                                                 user:SendData(Settings.sBot,"?:?:? Error: You Have Already Voted.")
  279.                                                         else
  280.                                                                 Votes[Entry[tonumber(i)][2]][user.sIP] = 1
  281.                                                                 Entry[tonumber(i)][5] = Entry[tonumber(i)][5] + 1
  282.                                                                 SaveToFile(Settings.eFolder.."/"..Settings.vFile,Votes,"Votes")
  283.                                                                 SaveToFile(Settings.eFolder.."/"..Settings.rFile,Entry,"Entry")
  284.                                                                 user:SendData(Settings.sBot,"You have successfully voted on "..Entry[tonumber(i)][3].." [Category: "..Entry[tonumber(i)][2].."].")
  285.                                                                 SendPmToOps(Settings.sBot,user.sName.." voted on "..Entry[tonumber(i)][3].." [Category: "..Entry[tonumber(i)][2].."].")
  286.                                                         end
  287.                                                 else
  288.                                                         user:SendData(Settings.sBot,"?:?:? Error: There is no ID: "..i..".")
  289.                                                 end
  290.                                         else
  291.                                                 user:SendData(Settings.sBot,"?:?:? Syntax Error: Type +"..Settings.voteCmd.." <ID>")
  292.                                         end
  293.                                         return 1
  294.                                 end, 1, "Vote for a certain Entry", "+"..Settings.voteCmd.." <ID>",
  295.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Vote\\Entry$<%[mynick]> +"..Settings.voteCmd.." %[line:ID]|" },
  296.         [Settings.TopVotesCmd]  =       {
  297.                                 function(user,data)
  298.                                         local Voting = {}
  299.                                         for i = 1, Settings.vMax do
  300.                                                 if Entry[i] and Entry[i][5] > 0 then
  301.                                                         table.insert(Voting,{ i, Entry[i][1], Entry[i][2], Entry[i][3], Entry[i][4], Entry[i][5] })
  302.                                                 end
  303.                                         end
  304.                                         table.sort(Voting,function(a,b) return (a[6] > b[6]) end)
  305.                                         user:SendPM(Settings.sBot,ShowEntry(1,Settings.vMax,1,5,false,string.rep("\t",9).."Top "..Settings.vMax.." Votes"..string.rep("\t",8).."["..os.date().."]\r\n     "..string.rep("?",163).."\r\n     Nr.\tVotes\tDate - Time\t\tPoster\t\t\tCategory\t\t\tEntry\r\n",Voting))
  306.                                         return 1
  307.                                 end, 1, "Top Entry Voting", "+"..Settings.TopVotesCmd,
  308.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Top\\Votes$<%[mynick]> +"..Settings.TopVotesCmd.."|" },
  309.         [Settings.clrVotesCmd]  =       {
  310.                                 function(user,data)
  311.                                         for i = 1, table.getn(Entry) do
  312.                                                 if Entry[i] then
  313.                                                         Entry[i][5] = 0
  314.                                                 end
  315.                                         end
  316.                                         Votes = nil Votes = {}
  317.                                         SaveToFile(Settings.eFolder.."/"..Settings.vFile,Votes,"Votes")
  318.                                         SaveToFile(Settings.eFolder.."/"..Settings.rFile,Entry,"Entry")
  319.                                         user:SendData(Settings.sBot,"All Votes Have Been Successfully Cleared.")
  320.                                         return 1
  321.                                 end, 6, "Clear all Votes", "+"..Settings.clrVotesCmd,
  322.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Vote\\Clear$<%[mynick]> +"..Settings.clrVotesCmd.."|" },
  323.         [Settings.TopPosterCmd] =       {
  324.                                 function(user,data)
  325.                                         local TopPoster = {}
  326.                                         for i = 1, table.getn(Entry) do
  327.                                                 if TopPoster[Entry[i][1]] then TopPoster[Entry[i][1]] = TopPoster[Entry[i][1]] + 1 else TopPoster[Entry[i][1]] = 1 end
  328.                                         end
  329.                                         local tCopy = {}
  330.                                         for x, y in pairs(TopPoster) do
  331.                                                 table.insert(tCopy, {x, tonumber(y), y/table.getn(Entry)})
  332.                                         end
  333.                                         table.sort(tCopy, function(a,b) return (a[2] > b[2]) end)
  334.                                         user:SendPM(Settings.sBot,ShowEntry(1,Settings.pMax,1,7,false,string.rep("\t",8).."Top "..Settings.pMax.." Posters - Total Entries: "..table.getn(Entry)..string.rep("\t",7).."["..os.date().."]\r\n     "..string.rep("?",163).."\r\n     Nr.\tUser\t\t\tPosts\r\n",tCopy))
  335.                                         return 1
  336.                                 end, 1, "Top Release Voting", "+"..Settings.TopVotesCmd,
  337.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Top\\Posters$<%[mynick]> +"..Settings.TopPosterCmd.."|" },
  338.  
  339.         [Settings.helpCmd]      =       {
  340.                                 function(user)
  341.                                         local sHelpOutput = "\r\n\t"..string.rep("?", 100).."\r\n"..string.rep("\t",5).."        "..Settings.iVer.." By PsYDreaM2\t\t\t\r\n\t"..string.rep("?:?:?",25).."\r\n\tAvailable Commands:".."\r\n\r\n"
  342.                                         for sCmd, tCmd in pairs(tCmds) do
  343.                                                 if(tCmd[2] <= Levels[user.iProfile]) then
  344.                                                         sHelpOutput = sHelpOutput.."\t+"..sCmd..DoTabs(1,CheckSize("+"..sCmd))..tCmd[3]..DoTabs(1,CheckSize(tCmd[3]))..tCmd[4].."\r\n";
  345.                                                 end
  346.                                         end
  347.                                         user:SendData(Settings.sBot, sHelpOutput.."\t"..string.rep("?:?:?",25));
  348.                                         return 1
  349.                                 end, 1, "Displays this help message", "+"..Settings.helpCmd,
  350.                                 "$UserCommand 1 3 !(?PsySuN?)!\\"..Settings.sMenu.."\\Help$<%[mynick]> +"..Settings.helpCmd.."|" },
  351. }
  352.  
  353. NewUserConnected = function(sUser)
  354.         if Settings.SendOnConnect == 1 then
  355.                 sUser:SendPM(Settings.sBot,ShowEntry(table.getn(Entry) - Settings.iMax + 1, table.getn(Entry), 1, 1, false, string.rep("\t",9).."Last "..Settings.iMax.." entries "..string.rep("\t",8).."["..os.date().."]\r\n",Entry))
  356.         end
  357.         if Settings.SendTo[sUser.iProfile] == 1 and Settings.SendRC == 1 and sUser.bUserCommand then
  358.                 for i,v in pairs(tCmds) do if(v[2] <= Levels[sUser.iProfile]) then sUser:SendData(v[5]) end end
  359.         end
  360. end
  361.  
  362. OpConnected = NewUserConnected
  363.  
  364. OnTimer = function()
  365.         for i in ipairs(tabTimers) do
  366.                 tabTimers[i].count = tabTimers[i].count + 1
  367.                 if tabTimers[i].count > tabTimers[i].trig then
  368.                         tabTimers[i].count=1
  369.                         tabTimers[i]:func()
  370.                 end
  371.         end
  372. end
  373.  
  374. RegTimer = function(f, Interval)
  375.         local tmpTrig = Interval / TmrFreq
  376.         assert(Interval >= TmrFreq , "RegTimer(): Please Adjust TmrFreq")
  377.         local Timer = {n=0}
  378.         Timer.func=f
  379.         Timer.trig=tmpTrig
  380.         Timer.count=1
  381.         table.insert(tabTimers, Timer)
  382. end
  383.  
  384. Cleaner = function()
  385.         if (Settings.Cleaner == 1) then -- RegCleaner based
  386.                 local juliannow = jdate(tonumber(os.date("%d")), tonumber(os.date("%m")), tonumber(os.date("%Y")))
  387.                 local chkd, clnd, x = 0, 0, os.clock()
  388.                 for i = table.getn(Entry), 1, -1 do
  389.                         chkd = chkd + 1
  390.                         for v,oldest in pairs(Category) do
  391.                                 local s, e, month, day, year = string.find(Entry[i][4], "(%d+)%/(%d+)%/(%d+)");
  392.                                 local julian = jdate( tonumber(day), tonumber(month), tonumber("20"..year) )
  393.                                 if ((juliannow - julian) > tonumber(oldest)) and Entry[i][2] == v then
  394.                                         clnd = clnd + 1
  395.                                         table.remove(Entry,i)
  396.                                         SaveToFile(Settings.eFolder.."/"..Settings.rFile,Entry,"Entry")
  397.                                 end;
  398.                         end
  399.                 end
  400.                 if clnd ~= 0 and Settings.pCleaner == 1 then SendToAll(Settings.sBot,"Release Cleaner: "..chkd.." entries were processed and "..clnd.." were deleted. ( "..string.format("%0.2f",((clnd*100)/chkd)).."% ) in: "..string.format("%0.4f", os.clock()-x ).." seconds.") end
  401.         end
  402. end
  403.  
  404. TimedCat = function()
  405.         if (Settings.TimedCat == 1) and Settings.Times[os.date("%H:%M")] then
  406.                 local TimedMain = function(cat)
  407.                         local msg = "\r\n\r\n\t".." Category: "..cat.."\r\n\t"..string.rep("__",55).."\r\n\r\n\t? "
  408.                         for i in ipairs(Entry) do
  409.                                 if Entry[i] and string.lower(Entry[i][2]) == string.lower(cat) then
  410.                                         local sCopy = Entry[i][3]
  411.                                         while string.len(sCopy) > 120 do
  412.                                                 msg = msg..string.sub(sCopy,1,120).."\r\n\t"
  413.                                                 sCopy  = string.sub(sCopy,121,string.len(sCopy))
  414.                                         end
  415.                                         msg = msg..sCopy.."\r\n\t? "
  416.                                 end
  417.                         end
  418.                         msg = string.sub(msg,1,string.len(msg)-2)
  419.                         msg = msg.."\r\n\t"..Settings.TimedMsg.."\r\n\t"..string.rep("__",55).."\r\n"
  420.                         return msg
  421.                 end
  422.                 SendToAll(TimedMain(Settings.Times[os.date("%H:%M")]))
  423.         end
  424.         collectgarbage(); io.flush();
  425. end
  426.  
  427. jdate = function(d, m, y)
  428.         local a, b, c = 0, 0, 0 if m <= 2 then y = y - 1; m = m + 12; end
  429.         if (y*10000 + m*100 + d) >= 15821015 then a = math.floor(y/100); b = 2 - a + math.floor(a/4) end
  430.         if y <= 0 then c = 0.75 end return math.floor(365.25*y - c) + math.floor(30.6001*(m+1) + d + 1720994 + b)
  431. end
  432.  
  433. ShowEntry = function(Start,End,Order,Mode,String,Header,Table)
  434.         local msg, border = "\r\n",string.rep("?", 163)
  435.         if Table == Entry then
  436.                 msg = msg.."     "..border.."\r\n"..Header.."     "..string.rep("?",163).."\r\n     Nr.\tVotes\tDate - Time\t\tPoster\t\t\tCategory\t\t\tEntry\r\n"
  437.         else
  438.                 msg = msg.."     "..border..Header
  439.         end
  440.         msg = msg.."     "..string.rep("???????????????????????????????? P ? S ? Y ? S ? U ? N ???????????????????????????????",2).."\r\n"
  441.         for i = Start, End, Order do
  442.                 if Table[i] then
  443.                         if Mode == 1 then
  444.                                 msg = msg.."     "..i..".\t"..Table[i][5].."\t"..Table[i][4].."\t\t"..Table[i][1]..DoTabs(1,CheckSize(Table[i][1]))..string.upper(string.sub(Table[i][2],1,1))..string.sub(Table[i][2],2,string.len(Table[i][2]))..DoTabs(1,CheckSize(Table[i][2]))..Table[i][3].."\r\n"
  445.                         elseif Mode == 2 then
  446.                                 if Settings.Sensitive == 1 then
  447.                                         where = Table[i][1]..Table[i][2]..Table[i][3]..Table[i][4]
  448.                                 else
  449.                                         where = string.lower(Table[i][1]..Table[i][2]..Table[i][3]..Table[i][4]) String = string.lower(String)
  450.                                 end
  451.                                 if string.find(where,String) then msg = msg.."     "..i..".\t"..Table[i][5].."\t"..Table[i][4].."\t\t"..Table[i][1]..DoTabs(1,CheckSize(Table[i][1]))..string.upper(string.sub(Table[i][2],1,1))..string.sub(Table[i][2],2,string.len(Table[i][2]))..DoTabs(1,CheckSize(Table[i][2]))..Table[i][3].."\r\n" end
  452.                         elseif Mode == 3 then
  453.                                 if string.lower(Table[i][2]) == string.lower(String) then msg = msg.."     "..i..".\t"..Table[i][5].."\t"..Table[i][4].."\t\t"..Table[i][1]..DoTabs(1,CheckSize(Table[i][1]))..string.upper(string.sub(Table[i][2],1,1))..string.sub(Table[i][2],2,string.len(Table[i][2]))..DoTabs(1,CheckSize(Table[i][2]))..Table[i][3].."\r\n" end
  454.                         elseif Mode == 4 then
  455.                                 if string.lower(Table[i][2]) == string.lower(String) then table.remove(Table,i) return nil end
  456.                         elseif Mode == 5 then
  457.                                 msg = msg.."     "..Table[i][1]..".\t"..Table[i][6].."\t"..Table[i][5].."\t\t"..Table[i][2]..DoTabs(1,CheckSize(Table[i][2]))..string.upper(string.sub(Table[i][3],1,1))..string.sub(Table[i][3],2,string.len(Table[i][3]))..DoTabs(1,CheckSize(Table[i][3]))..Table[i][4]..DoTabs(1,CheckSize(Table[i][4])).."\r\n"
  458.                         elseif Mode == 6 then
  459.                                 if string.lower(Table[i][3]) == string.lower(String) then table.remove(Table,i) return nil end
  460.                         elseif Mode == 7 then
  461.                                 msg = msg.."     "..i..".\t"..Table[i][1]..DoTabs(1,CheckSize(Table[i][1]))..Table[i][2].." ("..string.format("%0.3f",Table[i][3]*100).."%)\r\n"
  462.                         end
  463.                 end
  464.         end
  465.         msg = msg.."     "..border.."\r\n" return msg
  466. end
  467.  
  468. DoTabs = function(Type, size) -- nErBoS Release bot based
  469.         local sTmp = ""
  470.         if (Type == 1) then
  471.                 if (size < 8) then sTmp = "\t\t\t" elseif (size < 16) then sTmp = "\t\t" else sTmp = "\t" end return sTmp
  472.         elseif (Type == 2) then
  473.                 if (size < 8) then sTmp = string.rep("\t",12) elseif (size < 16) then sTmp = string.rep("\t",11)  elseif (size < 24) then sTmp = string.rep("\t",10)
  474.                 elseif (size < 32) then sTmp = string.rep("\t",9) elseif (size < 40) then sTmp = string.rep("\t",8) elseif (size < 48) then sTmp = string.rep("\t",7)
  475.                 elseif (size < 56) then sTmp = string.rep("\t",6) elseif (size < 64) then sTmp = string.rep("\t",5) elseif (size < 72) then sTmp = "\t\t\t\t"
  476.                 elseif (size < 80) then sTmp = "\t\t\t" elseif (size < 88) then sTmp = "\t\t" else sTmp = "\t" end return sTmp
  477.         end
  478. end
  479.  
  480. CheckSize = function(String) -- nErBoS Release bot based
  481.         local realSize,aux,remove = string.len(String),1,0
  482.         while aux < realSize + 1 do
  483.                 for i=1, table.getn(Settings.sChar) do if (string.sub(String,aux,aux) == Settings.sChar[i]) then remove = remove + 0.5 end end
  484.                 aux = aux + 1
  485.         end return realSize - remove
  486. end
  487.  
  488. Serialize = function(tTable,sTableName,hFile,sTab)
  489.         sTab = sTab or "";
  490.         hFile:write(sTab..sTableName.." = {\n");
  491.         for key,value in pairs(tTable) do
  492.                 if (type(value) ~= "function") then
  493.                         local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key);
  494.                         if(type(value) == "table") then
  495.                                 Serialize(value,sKey,hFile,sTab.."\t");
  496.                         else
  497.                                 local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value);
  498.                                 hFile:write(sTab.."\t"..sKey.." = "..sValue);
  499.                         end
  500.                         hFile:write(",\n");
  501.                 end
  502.         end
  503.         hFile:write(sTab.."}");
  504. end
  505.  
  506. SaveToFile = function(file,table,tablename)
  507.         local hFile = io.open(file,"w+") Serialize(table,tablename,hFile); hFile:close()
  508. end
  509. --/----------------------------------------------------------------------------
« Last Edit: 31 March, 2008, 18:27:01 by bastya_elvtars »
dchub://PsySun.Sytes.net

Offline Daywalker?

  • Scripter
  • Member
  • ******
  • Posts: 45
  • Karma: +9/-9
Re: i need convert Request Reg
« Reply #2 on: 31 March, 2008, 15:03:13 »
Both scripts allready excist for new API..

ReqReg by American Idiot

FreshStuff a Advanced Releasebot by Batya or

ReleaseBot.lua a easygo release bot by me.

Offline TrIp-iN-SuN

  • Double Ace
  • *
  • Posts: 142
  • Karma: +6/-19
  • ][?][ PsySun ][?][
Re: i need convert Request Reg
« Reply #3 on: 01 April, 2008, 10:54:41 »
no i dont see this scripts in new API look them good and u see your self i am right dont find them in new API and freshstuff and releasebot its not like my release bot look your self and regreg its script user can reg his self
dchub://PsySun.Sytes.net

Offline Daywalker?

  • Scripter
  • Member
  • ******
  • Posts: 45
  • Karma: +9/-9
Re: i need convert Request Reg
« Reply #4 on: 01 April, 2008, 11:44:38 »
ehm...
http://board.ptokax.ath.cx/index.php?topic=7605.0

Code: [Select]
--[[

Request Reg 2.0 LUA 5.11 [Strict][API 2]

by American Idiot 02/18/08

Requested by Psycho_Chihuahua

Provides user command to request registration.
-User must supply a valid password with request.
-Online Ops are notified of request.
-Users are messaged about registration on connect
-Option for timed registration reminder.

+Changes from 1.x
~Converted for use with the new Px API. Requested by ]-[?LL?L?L??nG?L

]]

what am i missing with this script?

Other script is your personal choice i just did one maybe the one who made yours wants to update it?

Offline TrIp-iN-SuN

  • Double Ace
  • *
  • Posts: 142
  • Karma: +6/-19
  • ][?][ PsySun ][?][
Re: i need convert Request Reg
« Reply #5 on: 01 April, 2008, 12:11:21 »
ohh tnx and over script releasebot i need to convert
dchub://PsySun.Sytes.net

PtokaX forum

Re: i need convert Request Reg
« Reply #5 on: 01 April, 2008, 12:11:21 »