PtokaX forum

Archive => Archived 4.0 boards => Request for Lua 4 scripts => Topic started by: [G-T-E]Gate? on 15 November, 2003, 17:21:16

Title: Urgent need for>Free Slot Search Bot
Post by: [G-T-E]Gate? on 15 November, 2003, 17:21:16
Ive been getting a large request from my users for a bot that will show the users in the hub with Free Slots. Looked thru  the forum and havent found it yet .
Greatfull if some one can give me a link or paste a working script in a Messege.
Thanks
Title:
Post by: lazyj189 on 15 November, 2003, 18:31:16
-- SlotsBot for PtokaX DC Hub 0.3.2.6 Test Drive 4
-- On command +slots, sends a search and checks the results for free slots & total number of slots
-- Sends the results in PM from Hub bot
-- Adaptation by OpiumVolage (01 July 2003) based on
-- retrobot? v0.99?
-- slots module
-- by tezlo
-- 2003
-- Twiddled a bit to have results sent in PM - by bolamix 1 July 2003
-- unused sTarget left for future syntax parsing.


botName = "your_hub_bot"

-- library

function getid(table, name)

return foreachi(table, function(id, item) if item.sName == %name then return id end end)

end


function putitem(table, item)

if not item then return end

local id = getid(table, item.sName)

if id then table[id] = item

else tinsert(table, item) id = table.n

end return id

end

-- events

function OnTimer()

local i = 1 while tabSlots[i] do

local table = tabSlots[i]

if clock() >= table.iClock + tmrSlots then

if table.tItems.n == 0 then SendPmToNick(table.sName, botName, "No users with free slots found|") end

SendPmToNick(table.sName, botName, "Done|")

tremove(tabSlots, i)

if tabSlots.n == 0 then frmHub:EnableSearchData(0) end

else i = i + 1 end

end

end


function slotsOnHub(user, args)

local s, e, free, all = strfind(args, " (%d+)/(%d+)"..strchar(5))

foreachi(tabSlots, function(id, item)

if not getid(item.tItems, %user.sName) then

putitem(item.tItems, { sName = %user.sName, sValue = %free.."/"..%all })

-- if item.sTarget and (%user.sName == item.sTarget) then
-- SendToNick(item.sName, " user "..%user.sName.." "..%free.."/"..%all.."|")
-- item.iClock = item.iClock - tmrSlots
-- elseif not item.sTarget and

if (tonumber(%free) >= item.iNR) then

SendPmToNick(item.sName, botName, " user "..%user.sName.." "..%free.."/"..%all.."|")

end

end end)

end



function doSlots(user, nr, nick)

user:SendPM(botName, "Checking..|")

frmHub:EnableSearchData(1)

SendToAll("$Search Hub:"..Command.." T?F?0?1?.|")

putitem(tabSlots, { sName = user.sName, iClock = clock(), iNR = nr, tItems = {n=0} })

-- putitem(tabSlots, { sName = user.sName, sTarget = nick, iClock = clock(), iNR = nr, tItems = {n=0} })

end

-- init

tmrSlots = 5 -- Number of seconds waiting for replys

tabSlots = {n=0}

Command = "+slots"


function DataArrival(user, data)

if strfind(data, "%b<>%s+("..Command..").*|") then

s, e, nr = strfind(data, "%b<>%s+"..Command.."%s+([0-9]+)")

if s then nr = tonumber(nr) else nr = 1 end

doSlots(user, nr) return 1

end

if strfind(data, "^%$SR") then slotsOnHub(user, data) end

end


function Main()

SetTimer(tmrSlots*1000)

StartTimer()

end

Title:
Post by: [G-T-E]Gate? on 15 November, 2003, 19:43:48
Thanks for ur reply . lazyj189
Have a problem though. Added the script and after checking Syn och restarting script I get the folowing >>
 Syntax Error: attempt to call field `EnableSearchData' (a nil value)

 I gave the bot the name FreeSlotSearch   and even tried using the Main Hub Bot Name which controlls my commands but  still same. Iam running GS1.62  and using PtokaX-0.327.PaueredBai ..  
 I have no other problems  with my scripts and have been running them for over 6months about .
 Thanks in advance
Title:
Post by: lazyj189 on 15 November, 2003, 19:53:16
PtokaX-0.327.PaueredBai ????

that doesnt sound like an official ptokax release.  What is it exactly?  this script will work in 3.2.6 TD4, you might want to download the latest "official" ptokax hub.
Title:
Post by: tezlo on 15 November, 2003, 19:53:40
update to testdrive..
man this script also need a rewrite
Title:
Post by: lazyj189 on 15 November, 2003, 20:10:37
ya, it needs a little work, but hey, it was right there for the posting
Title:
Post by: tezlo on 16 November, 2003, 17:20:38
>> (http://board.univ-angers.fr/thread.php?threadid=512&boardid=13&sid=779f4268c00d1692163b85f32c695e87&page=1#3)