need some help whit tis script
i try to overwrite description for users based on ip
the code i modify it bellow
-- welcomemesses script by AmsterdamBulldogs
login = {
["BotName"] = frmHub:GetHubBotName().."_Login",
["Hubowner"] = "dragos_sdcxp",
["webadres"] = "http://10.48.8.252",
["Forumadres"] = "Nu este momentan disponibila",
["helpcommand"] = "Click dreapta"
}
local kb = "1024"
local mb = kb*kb
local gb = mb*kb
local tb = gb*kb
function NewUserConnected(user)
Message(user)
end
function OpConnected(user)
Message(user)
end
--// Profile Counter
function ProfileCounter(profile)
local table, count = GetUsersByProfile(profile), 0
for i, User in table do
if GetItemByName(User) then
count = count + 1
end
end
return count
end
--//Reg User Count
function OnlineRegUsers()
local table, count = frmHub:GetOnlineUsers(), 0
for i, User in table do
if User.iProfile >=0 then
count = count + 1
end
end
return count
end
--//ip calculate
function compip(ips)
local _,_,a,b,c,d = string.find(ips, "(%d+).(%d+).(%d+).(%d+)")
return ((a*16777216) + (b*65536) + (c*256) + d)
end
--GetOnlineUsers
function Message(user)
local timeanddate = os.date("%d-%m-%Y %H:%M:%S")
local tmp = os.clock()
local weeks, days, hours, minutes, seconds = math.floor(tmp/604800), math.floor(math.mod(tmp/86400, 7)), math.floor(math.mod(tmp/3600, 24)), math.floor(math.mod(tmp/60, 60)), math.floor(math.mod(tmp/1, 60))
if frmHub:GetHubTopic() == nil then
topic = "No topic set"
else
topic = frmHub:GetHubTopic()
end
if frmHub:GetHubName() ==nil then
HubName = "No hub name"
else
HubName = frmHub:GetHubName()
end
if frmHub:GetHubAddress() ==nil then
HubAddress = "Hub owner not specify"
else
HubAddress = frmHub:GetHubAddress()
end
if user.sMyInfoString then
local disp = ""
doGetProfile = GetProfileName(user.iProfile) or "Not registerd (request reg white +reqreg )"
hubshare = string.format("%0.3f", frmHub:GetCurrentShareAmount()/(tb)).." TB"
local s,e,name,desc,speed,email,share = string.find(user.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
--try to modify description
local ipuser = compip(user.sIP)
desc = "Dont work"
if ipuser == (127*16777216 + 1) then desc = "Test"
elseif ipuser > (10*16777216 + 48*65536 + 8*256 ) and ipuser < (10*16777216 + 48*65536 + 8*256 + 255) then desc = "DTNET ... ADY 0722144079"
elseif ipuser > (10*16777216 + 48*65536 + 9*256 ) and ipuser < (10*16777216 + 48*65536 + 9*256 + 255) then desc = "DTNET ... Bogdan 0744910529"
elseif ipuser == (10*16777216 + 48*65536 + 10*256 + 14) then desc = "Sebastian"
elseif ipuser > (10*16777216 + 48*65536 + 10*256 ) and ipuser < (10*16777216 + 48*65536 + 10*256 + 255) then desc = "DTNET ... ADY 0722144079"
elseif ipuser > (10*16777216 + 48*65536 + 11*256 ) and ipuser < (10*16777216 + 48*65536 + 11*256 + 255) then desc = "DTNET ... Dragos 0723657274"
elseif ipuser > (10*16777216 + 48*65536 + 12*256 ) and ipuser < (10*16777216 + 48*65536 + 15*256 + 255) then desc = "Sebastian"
end
SendToAll( "$MyINFO $ALL "..name.." "..desc.."$ $"..speed.."$"..email.."$"..share.."$")
--dont work
if share then
minshare = string.format("%0.3f", tonumber(share)/gb).." GB"
else
minshare = "Corrupt"
end
border1 = " <=========================Mesaj de Bun Venit: "..user.sName.."================================>"
border2 = " <================Sa Aveti ce Discuta si Downloada "..user.sName.."=========================>"
disp = "\r\n\r\n"..border1.."\r\n"
disp = disp.." ?Numele Hubului: "..HubName.."\r\n"
disp = disp.." ?Descriere: "..frmHub:GetHubDescr().."\r\n"
disp = disp.." ?Data si ora pe hub: "..timeanddate.."\r\n"
disp = disp.." ?Topicul Hubului: "..topic.."\r\n"
disp = disp.."\r\n"
disp = disp.." ?Ipul Tau: "..user.sIP.."\r\n"
disp = disp.." ?Marimea Sherului Tau: "..minshare.."\r\n"
disp = disp.." ?Cerinta Pentru Minim Sher: "..frmHub:GetMinShare()/(1024*1024).." MB\r\n"
disp = disp.." ?Profilul Tau pe hub: "..doGetProfile.."\r\n"
disp = disp.." ?Sherul Total pe Hub: "..hubshare.."\r\n"
disp = disp.." ?Propietar Hub: "..login.Hubowner.."\r\n"
disp = disp.." ?Adresa Habului: "..HubAddress..":"..frmHub:GetHubPort().."\r\n"
disp = disp.." ?Adresa Web a Habului: "..login.webadres.."\r\n"
disp = disp.." ?Adresa Forumului: "..login.Forumadres.."\r\n"
disp = disp.." ?Sunt Acum "..frmHub:GetUsersCount().." useri din "..frmHub:GetMaxUsers().. "\r\n"--"\r\n\t\t\t\t\t Dupa "..weeks.." Saptamani "..days.." Zile "..hours.." Ore "..minutes.." Minute si "..seconds.." Secunde \r\n
disp = disp.." ?Dintrecare : "..OnlineRegUsers().." useri Inregistrati sunt Online\r\n"
disp = disp.." ?Comenzi Disponibile "..login.helpcommand.."\r\n"
disp = disp.." ?This hub is Powered by: ? "..login.Hubowner.." - Made by _sdcxp_?\r\n"..border2.."\r\n"
user:SendData(login.BotName, disp)
disp = nil
end
end
some one pls help or a hint
Please post English then, or you ca post Hungarian for me as well. :P
i thing ,what it write in romanian dont have influence on sintax and not affect the code
if you look on this forum it the robocop login
this it the script i modify whit few change
and sorry for my English (http://www.dictionare.com/english/dictionaries.htm)
QuoteOriginally posted by dragos_sto
i thing ,what it write in romanian dont have influence on sintax and not affect the code
if you look on this forum it the robocop login
this it the script i modify whit few change
and sorry for my English (http://www.dictionare.com/english/dictionaries.htm)
OK, I see it now. Then, what is the problem? Do you want to convert this script, or you already did, just keeps crashing?
-- // offtopic
Use sztaki.hu if you speak Hungarian...
sorry fot misunderstanding, what i want it some body to giveme one suggestion,or what i did wrong
the script above dont overwrite users description
example if connect to server from same computer the description i want to be seen from user to be "test"
Then you have to resend user's myinfo at every MyINFOArrival, and with splitted myinfos, I am pretty unsure whether this will work correctly.
10x a lot i will try
10x to bastya_elvtars for advice
i develop next code , but still dont work
function MyINFOArrival(User, Data)
SendToAll(changedesc(User, Data))
end
function changedesc(user, data)
--get user info
local s,e,name,desc,tag,speed,email,share = string.find(user.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)<([^$]*)$ $([^$]*)$([^$]*)$([^$]+)")
--change description
desc = "Test"
--rebuild Myinfo ALL
desc = "$MyINFO $ALL "..name.." "..desc.."<"..tag.."$ $"..speed.."$"..email.."$"..share.."$"
return desc
end
the strange thing will happen it when one master connect users se the new description ,
but for unreg user dont work
Please remove the OpConnected and NewUserConnected part. Only do things on MyINFOArrival and also review the return value of changedesc, it contains typos.
ok 10x to ppk and for explain and to bastya_elvtars
try to help me , but will not workind for the moment ,maybe in future will work .
ppk answer to my problem here (http://board.univ-angers.fr//thread.php?threadid=4296&boardid=1&sid=7b25f1c29ce87b5ef3bf5c4762a471a9&page=5#95)
-- BotName --
HubBot = frmHub:GetHubBotName()
--time after user connect to overwrite the description
TimeOverWrite = 60 -- time in second
-- range ip overwrite ="begin ip range-end ip range-description"
-- not teste whit space in description
RangeDesc = {[1]="10.39.2.1-10.39.7.255-Mitnet_Ghencea", [2]="10.39.1.1-10.39.1.255-Dtnet",
[3]="172.16.0.1-172.16.255.255-Crimenet", [4]="10.48.10.14-10.48.10.14-Sebastian_Net",
[5]="10.48.15.1-10.48.15.255-Sebastian_net",[6]="10.48.8.1-10.48.10.13-Mitnet_DrTaberei",
[7]="10.48.10.15-10.48.11.255-Mitnet_DrTaberei"}
-- Info Path --
InfoLog = "UserInfo/" -- Create this folder before starting the script
function Main()
SetTimer(TimeOverWrite*1000)
end
-- New User Connect Info Arrival
function MyINFOArrival(curUser,data)
if GetTimer() == nil then StartTimer() end
end
function OnTimer()
OverWrite(HubBot)
StopTimer()
end
function rebuilmyinfo(curUser)
local descript,userip = nil,calcip(curUser.sIP)
if userip ~= 0 then
for index,descIP in RangeDesc do
local _,_,startRange,endRange,RangeDescript = string.find(descIP, "(.*)-(.*)-(.*)")
startRange = calcip(startRange)
endRange = calcip(endRange)
if userip>=startRange and userip<=endRange then
descript = RangeDescript
end
end
if descript == nil then descript = "Extern" end
local _,_,nick,orgdescr,rest = string.find(curUser.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)<(.*)")
SendToAll("$MyINFO $ALL "..nick.." "..descript.."<"..rest)
end
end
function calcip(ipcalc)
local _,_,a,b,c,d = string.find(ipcalc, "(%d+).(%d+).(%d+).(%d+)")
local calc = 0
if (tonumber(a) and tonumber(b) and tonumber(c) and tonumber(d)) then
calc = a*16777216 + b*65536 + c*256 + d
return calc
else return 0
end
end
function OverWrite(curUser)
local tableover = frmHub:GetOnlineUsers()
for i, Userover in tableover do
rebuilmyinfo(Userover)
end
end
I would like a script that can do this but based on nick rather than i.p. Would anyone be able to change it for me please?
(edit) can be much simpler no need for profile check etc as all op hub.
i made something , not tested
-- BotName --
HubBot = frmHub:GetHubBotName()
--time after user connect to overwrite the description
TimeOverWrite = 60 -- time in second
-- not teste whit space in description
RangeDesc = {[1]="Nick-New_Description",[2]="secondnick-Other_description"}
InfoOver={}
-- Info Path --
function Main()
SetTimer(TimeOverWrite*1000)
end
-- New User Connect Info Arrival
function MyINFOArrival(curUser,data)
InfoOver[curUser.sName] = 1
if GetTimer() == nil then StartTimer() end
end
function OnTimer()
OverWrite(HubBot)
StopTimer()
end
function rebuilmyinfo(InfoUser,descript,Userover,wherto)
local _,_,nick,orgdescr,rest = string.find(InfoUser.sMyInfoString, "$MyINFO $ALL (%S+)%s+([^$]*)<(.*)")
if wherto == 1 then
SendToAll("$MyINFO $ALL "..nick.." "..descript.."<"..rest)
else
SendToNick(Userover.sName,"$MyINFO $ALL "..nick.." "..descript.."<"..rest)
end
end
function OverWrite(curUser)
local tableover = frmHub:GetOnlineUsers()
for i, Userover in tableover do
if InfoOver[Userover.sName] == 1 then
for index,descNick in RangeDesc do
local _,_,Nickchange,Descript = string.find(descNick, "(.*)-(.*)")
if Userover.sName == Nickchange then
rebuilmyinfo(Userover,Descript,HubBot,1)
end
for j, User2over in tableover do
if User2over.sName == Nickchange then
rebuilmyinfo(User2over,Descript,Userover,0)
end
end
end
end
InfoOver[Userover] = nil
end
tableover = nil
end
Working fine :))
Thanks alot.
with pleasure
i like your ip based version of the script very much, altough i have a little additional request.
can you make it so that it adds the tag before the description instead of overwriting it alone?