Kết quả 1 đến 10 của 46
Chủ đề: Tìm hiểu dữ liệu Database Item
-
26-12-09, 11:52 PM #1
- Ngày tham gia
- Apr 2009
- Bài viết
- 115
- Thanks
- 5
- Thanked 281 Times in 42 Posts
Tìm hiểu dữ liệu Database Item
Qua bài viết này, bạn sẽ có thêm hiểu biết về cách tối ưu dữ liệu Item rất thông minh của webzen khi lưu vào Database. Giúp bạn có thêm kiến thức để tự bạn có thể viết được phần mềm tạo đồ hay trang webshop, Xay đồ online ...
1. Đầu tiên, ta cần hiểu 1 số kiến thức cơ bản ^^
1 Byte = 8bit, ở đây chúng ta sẽ dùng rất nhiều liên quan đến bit
Giả sử, bạn có số 56 , OK máy sẽ ko hiểu là 56 mà nó hiểu là 111000
56 ở cơ số 10 đã chuyển thành 111000 ở cơ số 2
1.a Thuật toán dịch bit
Dịch trái <<
Code:BYTE bt=1; //00000001 bt = bt<<2;//00000100 lúc này bt sẽ có giá trị là 100 (cơ số 2) = 4 (cơ số 10)
Code:BYTE bt=9; // 00001001 bt = bt>>1; // 00000100 lúc này bt sẽ có giá trị là 100 (cơ số 2) = 4 (cơ số 10)
AND (và): Trả kết quả bằng 1 khi cả 2 cùng bằng 1, còn lại trả về là 0
VD: 11000110 & 10100010 = 10000010
OR (hoặc): Trả về kết quả nằng 0 khi cả 2 cùng bằng không
VD: 11000110 | 10100010 = 11100110
e hèm, đến đây nhiều bạn sẽ thấy lằng nhằng, còn với những ai thông thạo về ASM chắc thấy đơn giản ^^, yên tâm, thử nhiều sẽ quen thôi, Dùng calc của window chuyền sang hệ Bin để thử nhé
2. Xem 1 ví dụ cơ bản
Giả sử, bạn có các giá trị quy định: Level item (0->13), Luck(có/không), Skill(có/không), Option(0/4/8/12/16)
Tất cả nhưng giá trị đó được webzen lưu trữ chỉ với 1 byte !
--------------------------
OK, 1 byte của chúng ta như sau: 00000000
Bây giờ chúng ta chia thành các khoảng: [0] [0000] [0] [00]
Đánh số thứ tự cho dễ nhìn nhé: 1.[0] 2.[0000] 3.[0] 4.[00]
Mỗi bit chỉ thể hiện được 2 giá trị 0 hoặc 1
1. Có Skill hay không (0>1)
2. Level của item (0000 -> 1111 tức 0->15, vì thế mới có level 14,15 ^^ mà không thể có level 16)
3. Có luck hay không
4. Option (00 -> 11 tức 0 -> 3) , thực ra Option được dặt trong 3 bit, còn bit thứ 3 đã được chuyển sang byte khác
Câu hỏi đặt ra là: làm sao ta có thể chuyển dữ liệu Item trên vào 1 Byte
Xem mã nguồn sau nhé: Giả sử ta có 1 item Luck+Skill+10+4op
PHP Code:BYTE output=0;
output |= 1<<7; // Skill
output |= (10&15)<<3; // level
output |= 1<<2;// Luck
output |= 1&3; // Option
PHP Code:// bạn đang có output;
bool Skill= output>>7;
char level = (output>>3)&15;
bool luck = (output>>2)&1;
char option = (output)&3;
Bây h tìm hiểu dữ liệu SQL nhé
Code://------------------------------------------------------------------------ // ITEM DATABASE // Các BYTE, tổng độ dài 16 BYTE // [01] [02] [03] [04 05 06 07] [08 09 10 11] [12 13 14 15 16] // [04 05 06 07] Serial // [12 13 14 15 16]: SocketItem // // // [01]: Item Index (1[23456789]) // [02]: [1] [2345] [6] [78] // 1 : Option1 // 2345 : level // 6 : Option2 // 78 : Option3 (1[23]) // [03]: Durability // [08]: [1] [2] [345678] // 1 : Item Index ([1]23456789) // 2 : Option3 ([1]23) // 2345678 : NewOption // [09]: SetOption (HION ITEM) ?? // [10] [1234] [5] 678 // 1234 : Item Type // 5 : Is Item380 // [11]: JewelOfHarmonyOption ?? // [1234] [5678] // 1234 : btOptionType // 5678: : btOptionLevel // //----------------------------------------------------------------------------
[Only registered and activated users can see links. ]
Chúc bạn thành côngKhách viếng thăm hãy cùng ViperMUHN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
-
27-12-09, 11:16 AM #2
Ðề: Tìm hiểu dữ liệu Database Item
thanks bạn đã giảng bài này rất chi tiết
Khách viếng thăm hãy cùngmemberingxây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
28-12-09, 06:50 PM #3
- Ngày tham gia
- Dec 2009
- Đang ở
- Hà Nội
- Bài viết
- 884
- Thanks
- 2
- Thanked 4 Times in 4 Posts
Ðề: Tìm hiểu dữ liệu Database Item
èo xem bài viết này của bạn chả hiểu gì hết trơn
Khách viếng thăm hãy cùng viper9x xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
28-12-09, 08:57 PM #4
- Ngày tham gia
- Oct 2009
- Bài viết
- 79
- Thanks
- 6
- Thanked 16 Times in 5 Posts
Ðề: Tìm hiểu dữ liệu Database Item
thanks bạn...nhân tiện bạn có thể nói qua về việc đồ đúp được không......
nghe nói là đồ đúp thì nó chùng serier thì phải....mình cũng chưa hiểu sâu về vụ đồ đúp này lắm.......mong bạn...cho ý kiến học hỏi tí...Khách viếng thăm hãy cùng Văn_Bờm xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
29-12-09, 01:19 PM #5
- Ngày tham gia
- Apr 2009
- Bài viết
- 115
- Thanks
- 5
- Thanked 281 Times in 42 Posts
Ðề: Tìm hiểu dữ liệu Database Item
Khi một đồ được tạo (Bằng cách đánh quái rơi đồ, xay đồ, ....) Server sẽ cấp 1 serial vào Item đó, tổng cộng là 4 Byte (0 -> 4294967295), tức mỗi đồ có 1 ID (gọi là serial hay số thứ tự) riêng. ID này tự động tăng và gán vào đồ để ko có đồ nào trùng sẻial cả nhưng nếu dupe đồ thì 2 đồ dupe sẽ giống nhau vì đồ không được cấp ID mới!
Khách viếng thăm hãy cùng ViperMUHN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
29-12-09, 01:40 PM #6
- Ngày tham gia
- Feb 2008
- Đang ở
- Donghoi City
- Bài viết
- 1,205
- Thanks
- 27
- Thanked 65 Times in 39 Posts
Ðề: Tìm hiểu dữ liệu Database Item
Cái trên thì Des đã biết rồi, là kiến thức cơ bản về hệ đếm thập phân và nhị phân. Cái này cần cho những ai làm về lập trình và cần có óc khái quát cao để phân tích ^^ ViperMUHN nên giảng giải thêm cách làm thế nào để convert từ hệ nhị phân sang hệ thập phân và ngược lại.
Thanks!
Khách viếng thăm hãy cùngDestructxây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
29-12-09, 01:59 PM #7
- Ngày tham gia
- Apr 2009
- Bài viết
- 115
- Thanks
- 5
- Thanked 281 Times in 42 Posts
Ðề: Tìm hiểu dữ liệu Database Item
Máy chỉ hiểu dạng nhị phân, dù bạn có nhập gì đi nữa, việc bạn tự chuyển đổi hệ là không cần thiết vì cuối cùng nó đều chuyển sang nhị phân ! Tuy vậy ta là người, không phải là máy !
Giờ này ai tính bằng tay để chuyển đổi nhỉ, bắt đầu với calc của Win thôi !
1. Start/run/calc Enter
2. Vào menu View/Scientific
Đó, giờ thấy rộng hơn rồi, cái bạn càn chú ý là : Hex(16) Dec(10) Oct(8) Bin(2)
Bạn chọn Dec rồi nhập bừa 1 số nhé, ấn dáu = và chọn Bin , hehe, số đã đc chuyển sang bin, còn lại tự suy luận
Ngoài ra còn có phép tính mới: And,Xor,Not .....Lần sửa cuối bởi ViperMUHN, ngày 29-12-09 lúc 02:04 PM.
Khách viếng thăm hãy cùng ViperMUHN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
29-12-09, 02:17 PM #8
- Ngày tham gia
- Feb 2008
- Đang ở
- Donghoi City
- Bài viết
- 1,205
- Thanks
- 27
- Thanked 65 Times in 39 Posts
Ðề: Tìm hiểu dữ liệu Database Item
Des chưa hiểu vì sao 1111 = 15. Cái này ngày xưa xem kĩ lắm ^^!
Khách viếng thăm hãy cùngDestructxây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
29-12-09, 06:34 PM #9
- Ngày tham gia
- Apr 2009
- Bài viết
- 115
- Thanks
- 5
- Thanked 281 Times in 42 Posts
Ðề: Tìm hiểu dữ liệu Database Item
Khách viếng thăm hãy cùng ViperMUHN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
29-12-09, 10:53 PM #10
- Ngày tham gia
- Apr 2008
- Bài viết
- 1,169
- Thanks
- 818
- Thanked 815 Times in 331 Posts
Ðề: Tìm hiểu dữ liệu Database Item
cám ơn bạn....vụ này xem ra còn dài quá...mình nghe cứ như là vịt nghe karaoke ý..
Đã già yếu và bệnh tật
Các Chủ đề tương tự
-
release musever 1.04x+item dragonMu+new item+minimap...
Bởi KhuongCK_Dev trong diễn đàn ReleasesTrả lời: 11Bài viết cuối: 23-04-08, 12:47 PM -
cần giúp đỡ về tạo database
Bởi Máu Rồng trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 3Bài viết cuối: 21-03-08, 12:20 PM -
Cho hỏi database chút
Bởi NhocWrom trong diễn đàn Lineage IITrả lời: 1Bài viết cuối: 02-11-07, 09:49 PM