Tìm hiểu dữ liệu Database Item
Hello & Welcome to our community. Is this your first visit? Đăng Ký
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 5 1 2 3 ... CuốiCuối
Kết quả 1 đến 10 của 46
  1. #1
    Thành Viên
    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)
    Dịch phải >>
    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)
    1.b phép tính về bit cơ bản
    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 
    Bây giờ là lấy dữ liệu ra khỏi 1 Byte
    PHP Code:
    // bạn đang có output;
    bool Skilloutput>>7;
    char level = (output>>3)&15;
    bool luck = (output>>2)&1;
    char option = (output)&3
    Xong rồi đó
    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
    //
    //----------------------------------------------------------------------------
    2. Phần mềm tạo đồ cơ bản (Chưa hoàn thiện Socket Item), Mã nguồn đươc decode 85% từ GameServer 1.00.87
    [Only registered and activated users can see links. ]
    Chúc bạn thành công
    Khách viếng thăm hãy cùng ViperMUHN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. The Following 6 Users Say Thank You to ViperMUHN For This Useful Post:

    bingo (21-05-16), gamethu8x (31-07-14), HAHT169 (07-06-15), LTG Team (20-06-14), mrrainnt (22-05-14), ntquang.info (26-09-12)

  3. #2
    Vi phạm quy định
    Ngày tham gia
    Dec 2007
    Bài viết
    582
    Thanks
    4
    Thanked 40 Times in 12 Posts

    Ðề: 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ùng membering xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  4. #3
    Thành Viên Tâm Huyết viper9x's Avatar
    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é!

  5. #4
    Thành Viên
    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é!

  6. #5
    Thành Viên
    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

    Trích dẫn Gửi bởi Văn_Bờm [Only registered and activated users can see links. ]
    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í...
    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é!

  7. #6
    Vi phạm quy định
    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ùng Destruct xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  8. #7
    Thành Viên
    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

    Trích dẫn Gửi bởi Destruct [Only registered and activated users can see links. ]
    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!
    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é!

  9. #8
    Vi phạm quy định
    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ùng Destruct xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  10. #9
    Thành Viên
    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

    Trích dẫn Gửi bởi Destruct [Only registered and activated users can see links. ]
    Des chưa hiểu vì sao 1111 = 15. Cái này ngày xưa xem kĩ lắm ^^!
    Xem kĩ hướng dẫn vừa rồi, chọn Dec, nhập 15 rồi ấn = ,chọn Bin !
    Khách viếng thăm hãy cùng ViperMUHN xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  11. #10
    Thành Viên Tâm Huyết Van_Bom's Avatar
    Ngày tham gia
    Apr 2008
    Bài viết
    1,169
    Thanks
    816
    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

 

 
Trang 1 của 5 1 2 3 ... CuốiCuối

Các Chủ đề tương tự

  1. release musever 1.04x+item dragonMu+new item+minimap...
    Bởi KhuongCK_Dev trong diễn đàn Releases
    Trả lời: 11
    Bài viết cuối: 23-04-08, 12:47 PM
  2. cần giúp đỡ về tạo database
    Bởi Máu Rồng trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 3
    Bài viết cuối: 21-03-08, 12:20 PM
  3. Cho hỏi database chút
    Bởi NhocWrom trong diễn đàn Lineage II
    Trả lời: 1
    Bài viết cuối: 02-11-07, 09:49 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 02:53 AM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.