PDA

View Full Version : [TLBB] Thời gian trong TLBB logintime logouttime



huuduyen_05
16-02-14, 10:18 PM
Ngồi rãnh quá không biết làm gì nên nghiên cứu thử các logintime và logouttime là cái quái gì mà TLBB lưu 1 loạt các dãy số kia.

Ví dụ: 915413327

Thoạt nhìn tất cả chúng ta đều biết nó là giá trị lưu giữ thời gian đăng nhập của nhân vật (logintime) và thời gian thoát (logouttime), có cả creatime (thời gian tạo nhân vật)....

Nhưng không hiểu dãy số kia chuyển đổi kiểu gì ra dạng ngày giờ bình thường và ngược lại ?!

Sau khi tìm hiểu mình đã tìm ra cơ chế mà TLBB lưu giữ ngày giờ như sau:

1 giờ gồm 4096 đơn vị
1 ngày từ 0h -> 31h: 32 giờ 131072 đơn vị
1 tháng từ ngày 0 đến ngày 31 : 32 ngày 1024 giờ
1 năm từ tháng 1 đến tháng 16 : 16 tháng 512 ngày 16384 giờ

Hệ thống bắt đầu từ năm 00 tức năm 2000 (có thể là do TLBB được Sohu code sau năm 2000 nên không cần quan tâm cách lưu giữ thời gian trước 2000)

Từ đó suy ra được như sau:

4096 đv = 1 giờ
131072 đv = 1 ngày = 4096*32
4194304 đv = 1 tháng = 131072*32
67108864 đv = 1 năm = 4194304*16

Thế là xong, từ đó có thể tính toán và chuyển đổi qua lại:

Ví dụ:

ngày 30 tháng 12 năm 2013. Lúc 0 giờ 6 phút
Time in TLBB: 922484736

Time: 915413327 => 2013/11/8 1:34:54

Code php cho các bạn



function time_2_int($year,$month,$day,$hour,$minute) //hàm đổi thời gian sang số tlbb
{
$dv = (int)($mintue*68.27); //phút

$dv = $dv + $hour*4096; //giờ

$dv = $dv + $day*4096*32; //ngày

$dv = $dv + ($month-1)*4096*32*32; //tháng

$dv = $dv + $year*4096*32*32*16; //năm

return $dv;
}

songtu
18-02-14, 06:47 PM
đố ai tìm đc chỗ sai của anh duyên đấy :)

mrkendy612
28-02-14, 09:06 PM
Ngồi rãnh quá không biết làm gì nên nghiên cứu thử các logintime và logouttime là cái quái gì mà TLBB lưu 1 loạt các dãy số kia.

Ví dụ: 915413327

Thoạt nhìn tất cả chúng ta đều biết nó là giá trị lưu giữ thời gian đăng nhập của nhân vật (logintime) và thời gian thoát (logouttime), có cả creatime (thời gian tạo nhân vật)....

Nhưng không hiểu dãy số kia chuyển đổi kiểu gì ra dạng ngày giờ bình thường và ngược lại ?!

Sau khi tìm hiểu mình đã tìm ra cơ chế mà TLBB lưu giữ ngày giờ như sau:

1 giờ gồm 4096 đơn vị
1 ngày từ 0h -> 31h: 32 giờ 131072 đơn vị
1 tháng từ ngày 0 đến ngày 31 : 32 ngày 1024 giờ
1 năm từ tháng 1 đến tháng 16 : 16 tháng 512 ngày 16384 giờ

Hệ thống bắt đầu từ năm 00 tức năm 2000 (có thể là do TLBB được Sohu code sau năm 2000 nên không cần quan tâm cách lưu giữ thời gian trước 2000)

Từ đó suy ra được như sau:

4096 đv = 1 giờ
131072 đv = 1 ngày = 4096*32
4194304 đv = 1 tháng = 131072*32
67108864 đv = 1 năm = 4194304*16

Thế là xong, từ đó có thể tính toán và chuyển đổi qua lại:

Ví dụ:

ngày 30 tháng 12 năm 2013. Lúc 0 giờ 6 phút
Time in TLBB: 922484736

Time: 915413327 => 2013/11/8 1:34:54

Code php cho các bạn



function time_2_int($year,$month,$day,$hour,$minute) //hàm đổi thời gian sang số tlbb
{
$dv = (int)($mintue*68.27); //phút

$dv = $dv + $hour*4096; //giờ

$dv = $dv + $day*4096*32; //ngày

$dv = $dv + ($month-1)*4096*32*32; //tháng

$dv = $dv + $year*4096*32*32*16; //năm

return $dv;
}

Em có vài vấn đề như sau:

1. Cho em hỏi công thức trên tính đến giờ phút. Vậy còn giây thì tính thế nào ạ?

2. Công thức trên thì số năm truyền vào có phải = (năm hiện tại - 2000) không?

3. Như ở VD trên của a Duyên (Ngày 30/12/2013 0:6). Như vậy ta tính 0h thì tham số truyền vào là '0' hay là '24'.
KQ: - time_2_int(13,10,30,24,6) = 914194841
- time_2_int(13,10,30,0,6) = 914096537
Khác với Kq a Duyên đã đưa ra.
VD: Time: 915413327 => 2013/11/8 1:34:54 Vậy ở trong vd này thì là tính ngược từ time TLBB sang ngày tháng hay là thế nào hả a?
Nếu như tính từ normal time -> TLBB time theo công thức
- time_2_int(13,11,8,1,34) = 915413265 ( < kq a Duyên 62)

Thanks alot \m/

huuduyen_05
28-02-14, 10:24 PM
1- Thời gian trong tlbb lưu ở db không có lưu đơn vị đến "giây"

Tuy nhiên cũng có thể tính ra theo chuẩn: 1h = 4096 đv => 3600s = 4096 đv => 1s = 4096/3600 đv ~1.14 đv

2- Chính xác, năm 14 có nghĩa là năm 2014 (+2000)

3- Truyền vào là 0, vì theo giờ thực thì chỉ từ 0->23 chứ đâu có giờ 24. Trong TLBB có đến giờ thứ 31 :D

Việc chuyển đổi từ thời gian thực sang thời gian TLBB có sai số vì không tính phần giây.

songtu
01-03-14, 07:02 PM
Ngồi rãnh quá không biết làm gì nên nghiên cứu thử các logintime và logouttime là cái quái gì mà TLBB lưu 1 loạt các dãy số kia.

Ví dụ: 915413327

Thoạt nhìn tất cả chúng ta đều biết nó là giá trị lưu giữ thời gian đăng nhập của nhân vật (logintime) và thời gian thoát (logouttime), có cả creatime (thời gian tạo nhân vật)....

Nhưng không hiểu dãy số kia chuyển đổi kiểu gì ra dạng ngày giờ bình thường và ngược lại ?!

Sau khi tìm hiểu mình đã tìm ra cơ chế mà TLBB lưu giữ ngày giờ như sau:

1 giờ gồm 4096 đơn vị
1 ngày từ 0h -> 31h: 32 giờ 131072 đơn vị
1 tháng từ ngày 0 đến ngày 31 : 32 ngày 1024 giờ
1 năm từ tháng 1 đến tháng 16 : 16 tháng 512 ngày 16384 giờ

Hệ thống bắt đầu từ năm 00 tức năm 2000 (có thể là do TLBB được Sohu code sau năm 2000 nên không cần quan tâm cách lưu giữ thời gian trước 2000)

Từ đó suy ra được như sau:

4096 đv = 1 giờ
131072 đv = 1 ngày = 4096*32
4194304 đv = 1 tháng = 131072*32
67108864 đv = 1 năm = 4194304*16

Thế là xong, từ đó có thể tính toán và chuyển đổi qua lại:

Ví dụ:

ngày 30 tháng 12 năm 2013. Lúc 0 giờ 6 phút
Time in TLBB: 922484736

Time: 915413327 => 2013/11/8 1:34:54

Code php cho các bạn



function time_2_int($year,$month,$day,$hour,$minute) //hàm đổi thời gian sang số tlbb
{
$dv = (int)($mintue*68.27); //phút

$dv = $dv + $hour*4096; //giờ

$dv = $dv + $day*4096*32; //ngày

$dv = $dv + ($month-1)*4096*32*32; //tháng

$dv = $dv + $year*4096*32*32*16; //năm

return $dv;
}


Cái biến minute kia trên dưới chưa khớp !! chưa ai thử à 8-x8-x8-x8-x8-x8-x

huuduyen_05
01-03-14, 08:07 PM
Cái biến minute kia trên dưới chưa khớp !! chưa ai thử à 8-x8-x8-x8-x8-x8-x

Chưa khớp chỗ nào bạn ?

mrkendy612
01-03-14, 09:18 PM
Chưa khớp chỗ nào bạn ?

Sai chính tả đó. Cái ý thử nhưng phải để ý chứ copy vào dính ngay=))

Q: Như vậy có thể chuyển đổi từ time TLBB ngược lại time thực k ??

songtu
01-03-14, 10:10 PM
Chưa khớp chỗ nào bạn ?

lỗi nhỏ thôi minute với chú mintue đó

huuduyen_05
01-03-14, 11:13 PM
à, vậy mà không nhìn thấy :)) hèn gì nó lệch lệch số tí.

Hàm đổi từ số tlbb sang thời gian thực (có sai số)


function int_2_time($num_time) //hàm đổi từ số tlbb sang ngày giờ
{
$time = array();
$time[0] = (int)($num_time/67108864); //năm
$time[1] = (int)(($num_time - $time[0]*67108864)/4194304)+1; //tháng
$time[2] = (int)(($num_time - $time[0]*67108864 - ($time[1]-1)*4194304)/131072); //ngày
$time[3] = (int)(($num_time - $time[0]*67108864 - ($time[1]-1)*4194304 - $time[2]*131072)/4096); //giờ
$time[4] = (int)(($num_time - $time[0]*67108864 - ($time[1]-1)*4194304 - $time[2]*131072 - $time[3]*4096)/68.27); //phút
$time[5] = (int)(($num_time - $time[0]*67108864 - ($time[1]-1)*4194304 - $time[2]*131072 - $time[3]*4096 - (int)($time[4]*68.27))/1.138); //giây
$time[0] = $time[0]+2000;
return $time;
}

thecuongcv
01-11-15, 01:12 AM
Mình chơi quá 5h00 thì bị chia đôi EXP.
Mình có tham khảo và đã chỉnh lại như sau:
[Fatigue]
EnableFatigueState=0 ;kich hoat tinh nang met moi(gioi han gio choi)
LittleFatigueTime=10800 ;time kich hoat met moi it(s)
ExceedingFatigueTime=18000 ;time kich hoat met moi nhieu(s)
ResetFatigueStateOfflineTime=18000 ;time khoi tao lai met moi sau khi
Nhưng tình trạng vẫn bị. có reset giờ chơi ở Navicat hay ở đâu được ko??? Thanks all