PtokaX forum

Archive => Archived 5.1 boards => Help with scripts => Topic started by: Gnuff? on 31 August, 2007, 14:02:53

Title: Hide Share
Post by: Gnuff? on 31 August, 2007, 14:02:53
Can someone tell my when using this script, sometimes the users share becomes visible and invible, like the wind blows?

And can it be modded so it stays hidden?

-- Ops Share Hider Script By ¨~"°o•Hawk•o°"~¨
--28/11/2005
-- Hides Your Share From the user list
--ammended 16/01/2006 Thx Mutor
-- ConnectToMeArrival,RevConnectToMeArrival,SearchArrival and BlockgetList By bastya_elvtars

function Main()
sTable["loadfile"]()
end

function NewUserConnected(user)
if sTable.tAllowList[user.iProfile] == 1 then
user:SendData("$UserCommand 1 3 ?????Pir@tZone??????\\"..sTable["Menu"].."\\Hide Share$<%[mynick]> !hideshare&#124;")
user:SendData("$UserCommand 1 3 ?????Pir@tZone??????\\"..sTable["Menu"].."\\Show Share$<%[mynick]> !unhideshare&#124;")
end
  SetTimer(1000)
  StartTimer()
end
OpConnected = NewUserConnected

function OnTimer()
for a,b in pairs(sTable.Hiders) do
Nick = GetItemByName(a)
if Nick then
s,e,name,desc,speed,email,share = string.find(Nick.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
SendToAll( "$MyINFO $ALL "..name.." "..desc.."$ $"..speed.."$"..email.."$0$")
end
end
  StopTimer()
end


function ChatArrival(user, data)
local s, e, cmd = string.find(data, "%b<>%s+(%S+).*|")
if sTable.tAllowList[user.iProfile] == 1 and cmd and sTable.commands[cmd] then
return sTable.commands[cmd](user, data)
end
end

function BlockgetList(user,data,bRev)
local ret
local nick
if bRev then
_,_,nick = string.find(data, "%S+%s+%S+%s+(%S+)")
else
_,_,nick = string.find(data, "%S+%s+(%S+)")
end
if nick and sTable.Hiders[nick] then
ret=1
end
return ret
end

function ConnectToMeArrival(user, data)
return BlockgetList(user,data,false)
end

function RevConnectToMeArrival(user,data)
return BlockgetList(user,data,true)
end

function SearchArrival(user,data) -- searches aren't sent to hiders
for _,usr in ipairs(frmHub:GetOnlineUsers()) do
if not sTable.Hiders[user.sName] then
user:SendData(data)
end
end
  return 1
end

sTable = {
["Menu"] = "Hide/Show Share", --//  Sets the Name used in the right click Menu
["Bot"] = frmHub:GetHubBotName(), --//   Sets the Bot name to the same as set in Ptokax
Hiders = {},

tAllowList = {
[0] = 1, --// Master Profile (enabled)
[1] = 1, --// Ops Profile (enabled)
[2] = 1, --// VIP Profile (enabjed) --// Profiles Allowed to use the command  1 = yes  / 0 = No
[3] = 0, --// REG Profile (Disabled)
[4] = 1, --// Moderator Profile (enabled)
[5] = 1, --// Netfounder Profile (enabled)
},

commands = {
["!unhideshare"] = function(user, data)
if sTable.Hiders[user.sName] then
local s,e,name,desc,speed,email,share = string.find(user.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
SendToAll( "$MyINFO $ALL "..name.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
sTable.Hiders[user.sName] = nil
sTable["SaveTable"]()
user:SendData(sTable["Bot"],"Your Share Has been added to userlist!")
end
return 1
end,

["!hideshare"] = function(user, data)
local s,e,name,desc,speed,email,share = string.find(user.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
SendToAll( "$MyINFO $ALL "..name.." "..desc.."$ $"..speed.."$"..email.."$0$")
sTable.Hiders[user.sName] = 1
sTable["SaveTable"]()
user:SendData(sTable["Bot"]," Your Share Has been removed from userlist!")
return 1
end ,
},

["loadfile"] = function()
local f,e = io.open("ShareHidden.lst","r")
if f then
while 1 do
line = f:read("*l")
if line ==  nil then
break
end
local s,e,InfoOne,InfoTwo = string.find(line, "(.+)$$$(.+)")
if InfoOne ~= nil then
sTable.Hiders[InfoOne]=InfoTwo
end
end
f:close(f)
else
f,e = io.open("ShareHidden.lst", "w" )
f:write()
f:close()
end
end,

["SaveTable"] = function()
local f,e = io.open("ShareHidden.lst", "w" )
for aaa,bbb in pairs(sTable.Hiders) do
f:write(aaa.."$$$"..bbb.."\n")
end
f:close()
end,
}
Title: Re: Hide Share
Post by: bastya_elvtars on 31 August, 2007, 14:13:01
This is by design. The correct behaviour would be to resend the MyINFO right after a sharehider (a. k. a. stupid fuck) sends his own one.