PtokaX forum

Archive => Archived 4.0 boards => Help with Lua 4 scripts => Topic started by: Osmium on 12 January, 2005, 00:31:12

Title: Help with adding scripts
Post by: Osmium on 12 January, 2005, 00:31:12
I have (PtokaX0.3.3.0) (RoboCop9.0a) and i want to add a birthday script. What cind of script can i have, and how do i install it?  Svara g?rna p? swe...
Title:
Post by: bastya_elvtars on 12 January, 2005, 01:17:36
Search here for Birthday Bot and you just have to put it into the scripts folder.
Title:
Post by: DJ Bert on 12 January, 2005, 18:11:20
This script can be used for it. It was first used as a countdown for new year. :D
 
------------------------------------------------------------------------------
-------                  countdown bot by plop                         -------
-------             original julian day made by tezlo                  -------
-------      modifyd by chilla 2 also handle hours, mins, seconds      -------
------------------------------------------------------------------------------

------------------------------------------------------------------------------
-------           THE TEXT FILE LOADS ON BOT START                     -------
------------------------------------------------------------------------------
------- this may sound weird but this 2 make sure it shows on time,    -------
-------      as i allready seen some big ascii's come by               -------
------------------------------------------------------------------------------

------------------------------------------------------------------------------
Bot = "Guardian"
--This the date the timer has 2 stop @ midnight
-- year (2 numbers), month, day
SylYear,SylMonth,SylDay = 05,01,30
-- this is the file 2 be shown
file = "birtday.txt"
------------------------------------------------------------------------------


------------------------------------------------------------------------------
function OnTimer()
   if last == 0 then
      SendToAll(Bot, TimeLeft())
      Sync()
   elseif last == 1 then
      SendAscii() -- send the msg
      StopTimer() -- kill the timer
   end
end
------------------------------------------------------------------------------
function jdatehms(d, m, y,ho,mi,se)
local a, b, c = 0, 0, 0
if m <= 2 then
y = y - 1
m = m + 12
end
if (y*10000 + m*100 + d) >= 15821015 then
a = floor(y/100)
b = 2 - a + floor(a/4)
end
if y <= 0 then c = 0.75 end
return floor(365.25*y - c) + floor(30.6001*(m+1) + d + 1720994 + b),ho*3600+mi*60+se
end
------------------------------------------------------------------------------
function TimeLeft()
   local curday,cursec = jdatehms(tonumber(date("%d")),tonumber(date("%m")),tonumber(date("%y")),tonumber(date("%H")),tonumber(date("%M")),tonumber(date("%S")))
local sylday,sylsec = jdatehms(SylDay,SylMonth,SylYear,24,0,0)
local tmp = sylsec-cursec
local hours, minutes,seconds = floor(mod(tmp/3600, 60)), floor(mod(tmp/60, 60)), floor(mod(tmp/1, 60))
return ("Time left till DJ Bert has his birthday: "..sylday-curday.." Day's, "..hours.." Hours, "..minutes.." Minutes, "..seconds.." Seconds")
end
------------------------------------------------------------------------------
function ShowAscii()
   text ="\r\n\r\n"
   readfrom(file)
   while 1 do
      local line = read()
      if line == nil then
         readfrom()
         break
      end
      text = text..line.."\r\n"
   end
end
------------------------------------------------------------------------------
function SendAscii()
   SendToAll(Bot, text.." |")
   SendToAll(Bot, "DJ Bert has a birthday")
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+)")
      if cmd == "!daysleft" then
         user:SendData(Bot, TimeLeft().."|")
         return 1
      end
   end
end
------------------------------------------------------------------------------
function NewUserConnected(user)
   user:SendData(Bot, TimeLeft().."|")
end
------------------------------------------------------------------------------
function OpConnected(user)
   user:SendData(Bot, TimeLeft().."|")
end
------------------------------------------------------------------------------
function Main()
SetTimer(100 * 1000)
StartTimer()
   SendToAll(Bot, TimeLeft().."|")
   Sync()
   ShowAscii()
   last = 0
end
------------------------------------------------------------------------------
function Sync()
   local curday,cursec = jdatehms(tonumber(date("%d")),tonumber(date("%m")),tonumber(date("%y")),tonumber(date("%H")),tonumber(date("%M")),tonumber(date("%S")))
local sylday,sylsec = jdatehms(SylDay,SylMonth,SylYear,24,0,0)
   local tmp = sylsec-cursec
   local hours, minutes,seconds = floor(mod(tmp/3600, 60)), floor(mod(tmp/60, 60)), floor(mod(tmp/1, 60))
   local day = sylday-curday
   if day ~= 0 then
      adjust = (floor(mod(minutes, 60))*60)+seconds
      if adjust ~= 0 then
         SetTimer(adjust * 1000)
      else
         SetTimer(3600 * 1000)
      end
   else
      if tmp > 3600 then  --- every hours a msg
         adjust = (floor(mod(minutes, 60))*60)+seconds
         if adjust ~= 0 then
            SetTimer(adjust * 1000)
         else
            SetTimer(3600 * 1000)
         end
      elseif tmp > 900 then  -- every 15 mins a msg
         adjust = (floor(mod(minutes, 15))*60)+seconds
         if adjust ~= 0 then
            SetTimer(adjust * 1000)
         else
            SetTimer(900 * 1000)
         end
      elseif tmp > 300 then  -- every 5 mins a msg
         adjust = (floor(mod(minutes, 5))*60)+seconds
         if adjust ~= 0 then
            SetTimer(adjust * 1000)
         else
            SetTimer(300 * 1000)
         end
      elseif tmp > 60 then  -- every min a msg
         adjust = (floor(mod(minutes, 1))*60)+seconds
         if adjust ~= 0 then
            SetTimer(adjust * 1000)
         else
            SetTimer(60 * 1000)
         end
      elseif tmp > 15 then  -- every 15 secs a msg
         adjust = floor(mod(seconds, 15))
         if adjust ~= 0 then
            SetTimer(adjust * 1000)
         else
            SetTimer(15 * 1000)
         end
      elseif tmp > 10 then  -- every 10 secs a msg
         adjust = floor(mod(seconds, 10))
         if adjust ~= 0 then
            SetTimer(adjust * 1000)
         else
            SetTimer(5 * 1000)
         end
      elseif tmp > 1 then
         SetTimer(1 * 1000)
      else
         last = 1
         SetTimer(1 * 1000)
      end
   end
end
------------------------------------------------------------------------------


Grtzzz
DJ Bert
Title:
Post by: ((UKSN))shad_dow on 12 January, 2005, 18:25:28
hi

why not search the forums for

--- BirthdayMan v 3.5
--- by Herodes

sholud do the trick nicely :)

hope it helps

shad