get the texts in main
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

get the texts in main

Started by gathering, 12 December, 2004, 02:06:58

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gathering

how do i get this script to write the text in main and not in pm

-- texter v4.5 by plop
-- thx 2 chilla for the faster routine for opening the files
-- shows text files from a folder named text.
-- doesn't mather what prefix it used.
-- if the file excist it shows (unless it's locked for the users level).
-- 4.4 tiny bug fix on not releasing the file after loading.
-- 4.5 fixed bug needing a script restart 2 activate changed level settings

Bot = "angel"
FDFolder = "text"


   msg = "\r\n\r\n"
   msg = msg.."  file viewing commands.\r\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n"
   msg = msg.."  +lock \t\t- locks the file to the given level numbers\r\n"
   msg = msg.."  +free \t\t\t\t- free's the file again so every level can see them\r\n"
   msg = msg.."  +where \t\t\t- changes the location the text file shows. where can be main/pm/allmain/allpm.\r\n"
   msg = msg.."  +show \t\t\t\t- shows which levels can see the file\r\n\r\n"
   
   msg = msg.."  file entry commands.\r\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n"
   msg = msg.."  +addentry \t\t- shows the file to the given level numbers on entry\r\n"
   msg = msg.."  +delentry \t\t\t- stops the given file from being shown on entry\r\n"
   msg = msg.."  +whereentry \t\t- changes the location the text file is shown on entry. where can be main/pm.\r\n"
   msg = msg.."  +showentry \t\t\t- shows which levels get to see the file on entry\r\n\r\n"
   
   msg = msg.."  file timer commands.\r\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n"
   msg = msg.."  +addtimer \t- adds the given filename to the timer. where can be allmain/allpm.\r\n"
   msg = msg.."  +deltimer \t\t\t- removes the given file from the timer\r\n"
   msg = msg.."  +showtimer \t\t\t- shows which on which interval the file is shown by the timer\r\n\r\n"
   
   msg = msg.."  basic help commands.\r\n------------------------------------------------------------------------------------------------------------------------------------------------------------------------\r\n"
   msg = msg.."  +showall\t\t\t\t\t- shows all the files which have settings\r\n"
   msg = msg.."  +list\t\t\t\t\t- shows all avail files\r\n"
   msg = msg.."  +fun\t\t\t\t\t- this help menu\r\n|"

function Main()
   frmHub:RegBot(Bot)
   if readfrom(FDFolder.."/textlevels.lua") then
      dofile(FDFolder.."/textlevels.lua")
      readfrom()
   else
      text = {}
      text._error={
         ["file"]="file doesn't excist|",
         ["nonum"]="pls tell me which level numbers!.|",
         ["nofile"]="which file?.|",
         ["noargs"]="pls tell me where!. main/pm/allmain/allpm.|",
         ["noargs2"]="pls tell me where!. allmain/allpm.|",
         ["notimer"]="pls tell me which interval (in minutes).|"
      }
      text._default="allmain"
      text._levels = {}
      text._where = {}
      text._entry = {}
      text._entrywhere = {}
      text._timer = {}
      text._interval = {}
      text._intervalb = {}
      text._entrywheres = {
         ["main"] = "main",
         ["pm"] = "pm"
      }
      text._wheres = {
         ["main"] = "main",
         ["allmain"] = "allmain",
         ["pm"] = "pm",
         ["allpm"] = "allpm"
      }
      text._timerwheres = {
         ["main"]="main",
         ["pm"]="pm"
      }
      save()
   end
   text._interval = nil
   text._interval = {}
   for a,b in text._intervalb do
      text._interval[a]=b
   end
   SetTimer(60*1000)
   StartTimer()
   text._timercounter = 0
  -- text._interval = text._intervalb
 
end


gathering

Commands = {
   ["lock"] = function(user, data)
      s,e,file,args = strfind(data, "%$%b<>%s*%S+%s*(%S*)%s*(.*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif args == "" then
         user:SendPM(Bot, text._error["nonum"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._levels[file] then
            text._levels[file]=nil
         end
         text._levels[file]={}
         gsub(strlower(args), "(%S+)", function(number) text._levels[(file)][tonumber(number)]=tonumber(number) end)
         user:SendPM(Bot, "the file: "..file..".txt can now only be viewed by the levels "..args.."|")
         save()
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   ["free"] = function(user, data)
      s,e,file = strfind(data, "%$%b<>%s*%S+%s*(%S*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._levels[file] then
            text._levels[file]=nil
            user:SendPM(Bot, "the file: "..file..".txt is now unlocked!")
            save()
         else
            user:SendPM(Bot, "the file "..file..".txt wasn't locked!|")
         end
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   ["show"] = function(user, data)
      s,e,file = strfind(data, "%$%b<>%s*%S+%s*(%S*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._levels[file] then
            local tmp = "the file: "..file..".txt can be viewed by the levels:"
            for a,b in text._levels[file] do
               tmp = tmp.." "..a
            end
            tmp = tmp.." in "..(text._where[file] or text._default)
            user:SendPM(Bot, tmp.."|")
         else
            user:SendPM(Bot, "the file "..file..".txt isn't locked!|")
         end
      else
         user:SendPM(Bot, text._error["file"])
     end
   end,
   ["where"] = function(user, data)
      s,e,file,args = strfind(data, "%$%b<>%s*%S+%s*(%S*)%s*(%S*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif args == "" then
         user:SendPM(Bot, text._error["noargs"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._wheres[args] then
            text._where[file]=args
            user:SendPM(Bot, "the file "..file.." will now show in "..args.."|")
            save()
         else
            user:SendPM(Bot, "wrong syntax!|")
         end
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   
   ["addentry"] = function(user, data)
      s,e,file,args = strfind(data, "%$%b<>%s*%S+%s*(%S*)%s*([%d%s]*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif args == "" then
         user:SendPM(Bot, text._error["nonum"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._entry[file] then
            text._entry[file] = nil
         end
         text._entry[file]={}
         gsub(strlower(args), "(%S+)", function(number) text._entry[(file)][tonumber(number)]=tonumber(number) end)
         user:SendPM(Bot, "the file: "..file..".txt whill now be shown to the levels "..args.." when they enter the hub|")
         save()
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   ["delentry"] = function(user, data)
      s,e,file = strfind(data, "%$%b<>%s*%S+%s*(%S*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._entry[file] then
            text._entry[file]=nil
            if text._entrywhere[file] then
               text._entrywhere[file]=nil
            end
            user:SendPM(Bot, "the file: "..file..".txt won't be shown on entry anymore!")
            save()
         else
            user:SendPM(Bot, "the file "..file..".txt wasn't shown on entry!|")
         end
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   ["whereentry"] = function(user, data)
      s,e,file,args = strfind(data, "%$%b<>%s*%S+%s*(%S*)%s*(%S*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif args == "" then
         user:SendPM(Bot, text._error["noargs"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._entrywheres[args] then
            text._entrywhere[file]=args
            user:SendPM(Bot, "the file "..file.." will now show in "..args.." on entry|")
            save()
         else
            user:SendPM(Bot, text._error["noargs2"])
         end
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   ["showentry"] = function(user,data)
      s,e,file = strfind(data, "%$%b<>%s*%S+%s*(%S*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._levels[file] then
            local tmp = "the file: "..file..".txt is shown to the levels:"
            for a,b in text._entry[file] do
               tmp = tmp.." "..a
            end
            tmp = tmp.." in "..(text._entrywhere[file] or text._default)
            user:SendPM(Bot, tmp.."|")
         else
            user:SendPM(Bot, "the file "..file..".txt isn't shown!|")
         end
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   
   ["addtimer"] = function(user, data)
      s,e,file,args,args2 = strfind(data, "%$%b<>%s*%S+%s*(%S*)%s*(%d*)%s*(%S*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif args == "" then
         user:SendPM(Bot, text._error["notimer"] )
      elseif args2 == "" then
         user:SendPM(Bot, text._error["noargs2"] )
      elseif text._timerwheres[args2] == nil then
         user:SendPM(Bot, "use "..text._error["noargs2"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         -- cleaning old settings
         text._intervalb[file] = nil
         text._interval[file] = nil
         text._timer[file] = nil
         -- adding the new settings
         args = tonumber(args)
         text._interval[file] = args + text._timercounter
         text._intervalb[file] = args
         text._timer[file] = args2
         user:SendPM(Bot, "the file: "..file..".txt whill now be shown every: "..args.." minutes in "..args2.."|")
         save()
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   ["deltimer"] = function(user, data)
      s,e,file = strfind(data, "%$%b<>%s*%S+%s*(%S*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._interval[file] then
            text._intervalb[file] = nil
            text._interval[file] = nil
            text._timer[file] = nil
            user:SendPM(Bot, "the file: "..file..".txt is removed from the timer!")
            save()
         else
            user:SendPM(Bot, "the file "..file..".txt wasn't in the timer!|")
         end
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   ["showtimer"] = function(user,data)
      s,e,file = strfind(data, "%$%b<>%s*%S+%s*(%S*)")
      if file == "" then
         user:SendPM(Bot, text._error["nofile"] )
      elseif readfrom(FDFolder.."/"..file..".txt") then
         if text._timer[file] then
            local tmp = "the file: "..file..".txt is shown every:"..text._interval[file].." minutes in "..text._timer[file].."|"
            user:SendPM(Bot, tmp.."|")
         else
            user:SendPM(Bot, "the file "..file..".txt isn't in the timer!|")
         end
      else
         user:SendPM(Bot, text._error["file"])
      end
   end,
   
   ["showall"] = function(user,data)
      tmp = ""
      local e=0
      for a,b in text._levels do
         if e==0 then
            tmp = "  on command\r\n  file\t\tlevels\t\twhere\r\n------------------------------------------------------------------------------------\r\n"
            e=1
         end
         tmp = tmp.."  "..a.."\t\t"
         for c,d in text._levels[a] do
            tmp = tmp.." "..c
         end
         tmp = tmp.."\t\t"..(text._where[a] or text._default).."\r\n"
      end
      if e == 1 then tmp = tmp.."------------------------------------------------------------------------------------\r\n\r\n" end
      e=0
      for a,b in text._entry do
         if e==0 then
            tmp = tmp.."  on entry\r\n  file\t\tlevels\t\twhere\r\n------------------------------------------------------------------------------------\r\n"
            e=1
         end
         tmp = tmp.."  "..a.."\t\t"
         for c,d in text._entry[a] do
            tmp = tmp.." "..c
         end
         tmp = tmp.."\t\t"..(text._entrywhere[a] or text._default).."\r\n"
      end
      if e == 1 then tmp = tmp.."------------------------------------------------------------------------------------\r\n\r\n" end
      e=0
      for a,b in text._timer do
         if e==0 then
            tmp = tmp.."  on timer\r\n  file\t\ttime (minutes)\twhere\r\n------------------------------------------------------------------------------------\r\n"
            e=1
         end
         tmp = tmp.."  "..a.."\t\t".." "..text._interval[a].."\t\t"..(text._timer[a] or text._default).."\r\n"
      end
      if e == 0 then
         user:SendPM(Bot, "\r\n\r\n"..tmp.."|")
      else
         user:SendPM(Bot, "\r\n\r\n"..tmp.."------------------------------------------------------------------------------------\r\n\r\n|")
      end
   end,
   ["help"] = function(user, data)
      user:SendPM(Bot, msg.."|")
   end,
   ["list"] = function(user, data)
      execute("dir "..FDFolder.." > "..FDFolder.."/dirlist.lst")
      readfrom(FDFolder.."/dirlist.lst")
      local tmp = "\r\n\r\n  all available files:\r\n------------------------------------------------------\r\n"
      while 1 do
         local kicks = read()
         if kicks ==  nil then
            break
         end
         local s,e,name = strfind(kicks, "%s(%S+)%.txt$")
         if name then
            tmp = tmp.."  "..name.."\r\n"
         end
      end
      readfrom()
      remove(FDFolder.."/dirlist.lst")
      user:SendPM(Bot, tmp.."|")
   end
}




function DataArrival(user, data)
   if( strsub(data, 1, 1) == "<" ) then
      data=strsub(data,1,strlen(data)-1)
      s,e,cmd = strfind(data,"%b<>%s+%S(%w+)")
      if readfrom(FDFolder.."/"..cmd..".txt") then
         if text._levels[cmd] then
            if text._levels[cmd][user.iProfile] then
               showtext(user, cmd, text._levels[cmd][user.iProfile])
            end
            return 1
         else
            showtext(user, cmd, text._default)
            return 1
         end
      end
   elseif(strsub(data, 1, 4) == "$To:") then
      s,e,whoTo = strfind(data,"$To:%s+(%S+)")
      if whoTo == Bot then
         data=strsub(data,1,strlen(data)-1)
         s,e,cmd = strfind(data,"$To:%s+%S+%s+From:%s+%S+%s+$%b<>%s+%S(%w+)")
         if Commands[cmd] and user.iProfile == 0 then
            return call(Commands[cmd], {user,data})
         elseif readfrom(FDFolder.."/"..cmd..".txt") then
            if text._levels[cmd] then
               if text._levels[cmd][user.iProfile] then
                  showtext(user, cmd, text._where[cmd])
               end
               readfrom()
               return 1
            else
               showtext(user, cmd, text._default)
               readfrom()
               return 1
            end
         end
      end
   end
end

gathering

function save()
   writeto(FDFolder.."/textlevels.lua")
   write("\n--config file for texter 4.3, better not edit this by hand if you don't know what your doing\n\ntext={\n")
   local t = 0
   for a,b in text do
      if type(text[a]) ~= "number" then
         if t==0 then
            write("   "..a.."=")
            t=1
         else
            write(",\n   "..a.."=")
         end
         if type(b) == "string" then
            write("\""..b.."\"")
         else
            t2 = 0
            t3 = 0
            write("{")
            for c,d in text[a] do
               if type(d) ~= "table" then
                  if tonumber(d) then
                     tmp = d
                  else
                     tmp = "\""..d.."\""
                  end
                  if t2 == 0 then
                     write("\n      [\""..c.."\"]="..tmp)
                     t2 = 1
                  else
                     write(",\n      [\""..c.."\"]="..tmp)
                  end
               else
                  if t3==0 then
                     t3 = 1
                  else
                     write(",")
                  end
                  t4 = 0
                  for e,f in text[a][c] do
                     if t4 == 0 then
                        write("\n      [\""..c.."\"]={")
                        write("\n         ["..e.."]="..f)
                        t4 = 1
                     else
                        write(",\n         ["..e.."]="..f)
                     end
                  end
                  write("\n      }")
               end
            end
            write("\n   }")
         end
      end
   end
   write("\n}\n\n--plopyrights reserved")
   writeto()
end



function showtext(user, file, where)
   local handle = openfile(FDFolder.."/"..file..".txt", "r")
   local contents = gsub(read(handle, "*a"),strchar(10), "\r\n")
   closefile (handle)
   if where == "main" then
      user:SendData(Bot, "\r\n"..contents.."\r\n|")
   elseif where == "allmain" then
      SendToAll(Bot, "\r\n"..contents.."\r\n|")
   elseif where == "allpm" then
      SendPmToAll(Bot, "\r\n"..contents.."\r\n|")
   else
      user:SendPM(Bot, "\r\n"..contents.."\r\n|")
   end
end


function NewUserConnected(user)
   for a,b in text._entry do
      if text._entry[a][user.iProfile] then
         showtext(user, a, (text._entrywhere[a] or text._default))
      end
   end
end

function OpConnected(user)
   for a,b in text._entry do
      if text._entry[a][user.iProfile] then
         showtext(user, a, (text._entrywhere[a] or text._default))
      end
   end
end

function OnTimer()
   text._timercounter = text._timercounter +1
   for a,b in text._timer do
      if text._interval[a] == text._timercounter then
         text._interval[a] = text._interval[a] +text._timercounter
         showtext(Bot, a, text._timer[a])
      end
   end
end

plop

type !help in pm 2 the script and read it a bit.
nothing has 2 be changed on the script, you just gotta give the right command 2 change it.

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

gathering

#4
eventhow i change it nothing hapens it?s still in a pm ond not in main

plop

QuoteOriginally posted by gathering
eventhow i change it nothing hapens it?s still in a pm ond not in main
restart the script, it's a bit buggy on changes on the settings.

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

gathering


imby

did you solve that bug in it plop? You said you worked out the bug on the texter thread but not sure if you fixed it.

plop

QuoteOriginally posted by imby
did you solve that bug in it plop? You said you worked out the bug on the texter thread but not sure if you fixed it.
some1 is running a test version with a posible fix, just beside that were testing a improved timer.
but this all is on halt because of deflood 5 and some other projects i'm doing.

plop
http://www.plop.nl lua scripts/howto\'s.
http://www.thegoldenangel.net
http://www.vikingshub.com
http://www.lua.org

>>----> he who fights hatred with hatred, drives the spreading of hatred <----<<

SMF spam blocked by CleanTalk