Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ------------ CODE --------------------
- local function findfile(chan,fname)
- local i=-1
- while i < 1024 do
- i=i+1
- local frag=chan:GetOutgoingQueueFragments(i,0)
- if not frag then
- print("giving up after",i)
- return false
- end
- local file=frag:GetFileName()
- if file == fname then
- return frag
- else
- print(file,"!=",fname)
- end
- end
- end
- transfers=transfers or {}
- BR_TRANSFER_ID=1000
- function _R.Player.SendFile(pl,fname)
- if not file.Exists(fname,true) then
- error"file not found"
- end
- if not CNetChan then error "sourcenet missing" end
- BR_TRANSFER_ID=BR_TRANSFER_ID+1
- local chan=pl:GetNetChannel()
- chan:SetBackgroundMode(false)
- local res = chan:SendFile(fname,BR_TRANSFER_ID)
- if not res then
- ErrorNoHalt("SendFile failed for "..tostring(fname).." @ "..tostring(pl).."?!?!\n")
- return false
- end
- local transferhandle=findfile(chan,fname)
- if not transferhandle then
- ErrorNoHalt("file transfer lookup failed for "..tostring(fname).." @ "..tostring(pl).."?!?!\n")
- return false
- end
- transfers[transferhandle]=pl
- local timerid=tostring(chan)
- timer.Create(timerid,1,0,function()
- local frac=transferhandle:GetProgress()/transferhandle:GetTotal()
- -- print(frac)
- if frac >=1 then
- timer.Remove(timerid)
- transfers[transferhandle]=nil
- print(fname,"finished transferring for",pl)
- return
- end
- val=math.Round(frac*1000)/10
- local tid=transferhandle:GetFileTransferID()
- local kbt=math.Round(((frac*transferhandle:GetBytes())/1000))
- local kbtotal=math.Round(((transferhandle:GetBytes())/1000))
- local file=transferhandle:GetFileName()
- local transferring=transferhandle:GetStream()
- local finished=not transferring and "transferring" or "finished"
- print(tostring(file).." (TID "..tid.."/"..finished.."): "..val..'% - '..kbt..' KB transferred out of '..kbtotal.. ' KB')
- end)
- return transferhandle
- end
- ------------ INPUT --------------------
- local fname="work_damnit" file.Write(fname..".txt",CurTime()..("Q"):rep(1024*512))
- for k,v in pairs(player.GetAll()) do
- timer.Simple(k*3,v.SendFile,v,"data/"..fname..".txt")
- end
- ------------ OUTPUT --------------------
- giving up after 0
- file transfer lookup failed for data/work_damnit.txt @ Player [2][Pʸᵗʰᵒᵑ₁₃₂₀]?!?!
- giving up after 0
- file transfer lookup failed for data/work_damnit.txt @ Player [3][Morten]?!?!
- giving up after 0
- file transfer lookup failed for data/work_damnit.txt @ Player [4][Lixquid]?!?!
- != data/work_damnit.txt
- data/work_damnit.txt (TID 1020/transferring): 23.8% - 17 KB transferred out of 70 KB
- data/work_damnit.txt (TID 1020/transferring): 60.8% - 42 KB transferred out of 70 KB
- data/work_damnit.txt (TID 1020/transferring): 93.4% - 65 KB transferred out of 70 KB
- != data/work_damnit.txt
- data/work_damnit.txt finished transferring for Player [5][djkiller50]
- data/work_damnit.txt (TID 1021/transferring): 41.4% - 29 KB transferred out of 70 KB
- data/work_damnit.txt (TID 1021/transferring): 88.6% - 62 KB transferred out of 70 KB
- (TID 37/finished): 0% - 0 KB transferred out of 1178248 KB
- != data/work_damnit.txt
- data/work_damnit.txt (TID 1022/transferring): 43.6% - 30 KB transferred out of 70 KB
- (TID 37/finished): 0% - 0 KB transferred out of 1178248 KB
- data/work_damnit.txt (TID 1022/transferring): 89.7% - 63 KB transferred out of 70 KB
- �&t� (TID 37/finished): 0% - 0 KB transferred out of 1178248 KB
- data/work_damnit.txt finished transferring for Player [9][Mare]
- 0��� (TID 37/finished): 0% - 0 KB transferred out of 1178248 KB
- 0��� (TID 36/finished): 0% - 0 KB transferred out of -373890 KB
- 0��� (TID 36/finished): 0% - 0 KB transferred out of -373890 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��? (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��� (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- ��� (TID 37/finished): 0% - 0 KB transferred out of 0 KB
- H�� (TID 33/finished): 0% - 0 KB transferred out of 0 KB
- ���������������������������������������������������������������������������������������������������������������������������� (TID 33/finished): 0% - 0 KB transferred out of 0 KB
- �������������������������������������������������������������������������������������������� (TID 33/finished): 0% - 0 KB transferred out of 0 KB
- ����� (TID 33/finished): 0% - 0 KB transferred out of 0 KB
- ����� (TID 33/finished): 0% - 0 KB transferred out of 0 KB
- ����� (TID 33/finished): 0% - 0 KB transferred out of 0 KB
- ����� (TID 33/finished): 0% - 0 KB transferred out of 0 KB
- ����� (TID 33/finished): 0% - 0 KB transferred out of 0 KB
- data/work_damnit.txt finished transferring for Player [6][Rama]
- -- no more printing here --
Advertisement
Add Comment
Please, Sign In to add comment