kero, on 09 June 2012 - 02:09 AM, said:
ผมละงง คือ ข้อมูล item ของ client แต่ละเครื่อง มันก็น่าจะเหมือนกัน ก็ไม่เห็นต้องส่งทั้งหมดมาอีก ก็แค่ส่ง id มาบอก แล้วก็ไปดึง ชื่อ ดึง status มาจาก client ที่เราเล่นสิ
นอกจากระบบ item ของ Blizzard จะเป็นแบบ สร้างใหม่ตลอด ที่มี item ใหม่เกิดขึ้น ก็เลยต้องไปเก็บข้อมูล item ใน client แต่ละเครื่องไม่เหมือนกัน ก็เลยต้องส่ง ข้อมูล item มาด้วย เวลาคนอื่นขอดู item นั้นๆ
อันนี้ ผมก็เดาๆเอาอ่ะนะ เพราะไม่ใช่คนทำเกม 555
นอกจากระบบ item ของ Blizzard จะเป็นแบบ สร้างใหม่ตลอด ที่มี item ใหม่เกิดขึ้น ก็เลยต้องไปเก็บข้อมูล item ใน client แต่ละเครื่องไม่เหมือนกัน ก็เลยต้องส่ง ข้อมูล item มาด้วย เวลาคนอื่นขอดู item นั้นๆ
อันนี้ ผมก็เดาๆเอาอ่ะนะ เพราะไม่ใช่คนทำเกม 555
ประมาณนั้นครับ ระบบ item ของ Blizzard คือระบบที่วางโครงสร้างของ status ไอเทมไว้อย่างคร่าวๆ แล้วเวลาผู้เล่นตีตกก็จะทำการสุ่มค่า stats ขึ้นมาตามโครงสร้างนั้น
แถมชื่อของตัวไอเทมก็จะสัมพันธ์กับรูปแบบค่า status ของไอเทมนั้นๆด้วย
ยกตัวอย่าง
ชื่อไอเทม AAA BBB CCC knife
AAA เป็นตัวแทนของ Str + 50 ถึง 100
BBB เป็นตัวแทนของ Vit + 50 ถึง 100
CCC เป็นตัวแทนของ attack speed +5% ถึง 15%
จะเห็นได้ว่าค่าทั้งสามค่านี้ถ้าเอามาปรับเปลี่ยนค่าทีละตัวๆแล้วก็จะได้ item ที่มีความสามารถไม่เหมือนกันเยอะมาก (ถ้ารวมไอเทมทุกชิ้นก็เกิน 10 ล้าน+ ชนิดได้)
ไอเทมที่ยกตัวอย่างเป็นหลักการของ Magical item แต่ในระดับ Rare ขึ้นไปถึงจะมีการตั้งชื่อให้แปลกใหม่หน่อยแต่ก็ยึดหลักการคล้ายๆกัน (เช่นมี 3 ค่าสุ่มสัมพันธ์กับชื่อ
และอีก 3 ค่าที่ Random เอา) ถ้าลองหาของแบบ legendary ดูก็จะทราบว่าของแต่ละชิ้นที่ชื่อเหมือนๆกันกลับมีค่า Stats ที่ต่างกันออกไปทุกชิ้นครับ
การที่จะเก็บไอเท็มรวมทั้งค่า Stats ไว้กับ server หรือ Client เป็นเรื่องที่หนักเกินไป ก็เลยทำระบบลูกเต๋าสุ่มไว้ให้มันแก้ไขค่าได้แบบนี้แหละ แล้วเก็บค่าเฉพาะที่ผู้เล่นสุ่มได้แทน
มันเลยเกิดช่องโหว่ของค่าที่แก้ได้ครับ