Guest User

Nick2UUID

a guest
Feb 13th, 2022
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 0.75 KB | None | 0 0
  1. function Nick2UUID(nick:string):string;
  2.  var val:string; bytearr: array [0..15] of byte;
  3.  i,k,tlo,tmi,thi,cslo,cshi:cardinal;
  4. begin
  5.  val:=md5('OfflinePlayer:'+nick);
  6.  k:=1;
  7.  for i:=0 to 15 do
  8.   begin
  9.    bytearr[i]:=StrToInt('$'+val[k]+val[k+1]);
  10.    k:=k+2;
  11.   end;
  12.  tLo:=(((bytearr[0] shl 24) or (bytearr[1] shl 16) or (bytearr[2] shl 8) or bytearr[3]));
  13.  tMi:=((bytearr[4] shl 8) or bytearr[5]);
  14.  tHi:=((bytearr[6] shl 8) or bytearr[7]);
  15.  csLo:=bytearr[9];
  16.  csHi:=(bytearr[8] and $3f or (1 shl 7));
  17.  tHi:= (tHi and $0fff);
  18.  tHi:= (tHi or (3 shl 12));
  19.  val:='';
  20.  for k:=0 to 5 do val:=val+IntToHex(bytearr[10+k],2);
  21.  Result:=AnsiLowerCase(IntToHex(tLo,8)+'-'+IntToHex(tMi,4)+'-'+IntToHex(tHi,4)+'-'+IntToHex(csHi,2)+IntToHex(csLo,2)+'-'+val);
  22. end;
Advertisement
Add Comment
Please, Sign In to add comment