ฉันจะใช้งาน Skilling ออฟไลน์ได้อย่างไร


13

ตัวอย่างของการสกิลออฟไลน์คือ EvE Online ตัวละคร (นักบิน) ของคุณไม่ได้รับทักษะจากการได้รับประสบการณ์ แต่ตัวละครของคุณจะได้รับแต้มทักษะต่อทักษะที่คุณกำลังฝึกฝนไม่ว่าคุณจะอยู่ในหรือนอกเกม นอกจากนี้ฉันค่อนข้างแน่ใจว่าทักษะยังคงสร้างแม้ว่าเซิร์ฟเวอร์เกมจะไม่ทำงาน

ใคร ๆ ก็มีความคิดคร่าว ๆ ว่าพวกเขาจะทำสิ่งนี้อย่างไรหรือดีกว่ายังไงฉันก็จะสามารถทำอะไรแบบนี้ได้ในเกมที่ฉันกำลังพัฒนา ฉันไม่ได้มองหาคำอธิบายอย่างละเอียดที่นี่ (อย่าให้ฉันจับคุณไว้ข้างหลัง) แต่ฉันกำลังมองหาป้ายบอกทางที่ชี้ให้ฉันไปในทิศทางที่ถูกต้อง

ขอบคุณ!

คำตอบ:


17

สมมติว่าการพัฒนาทักษะนั้นถูกกำหนดไว้และเป็นเส้นตรงสิ่งที่คุณต้องทำคือการขอเวลานาฬิกาแบบเรียลไทม์ (เช่นนาฬิการะบบหรือนาฬิกาเซิร์ฟเวอร์) และคำนวณระยะเวลาในการพัฒนาทักษะ

กล่าวอีกนัยหนึ่งเมื่อการพัฒนาทักษะเริ่มต้นให้บันทึกเวลาและเก็บไว้และเมื่อใดก็ตามที่คุณต้องการตรวจสอบว่าทักษะได้รับการพัฒนาเปรียบเทียบเวลาประทับกับปัจจุบันแล้วให้ตรวจสอบว่าเดลต้ามีขนาดใหญ่พอหรือไม่ผู้เล่นมี ทักษะใหม่


2
ทันใดนั้นมันก็สมเหตุสมผลว่าทำไมพวกเขาจึงบังคับให้คุณหยุดการฝึกถ้าคุณเปลี่ยนคุณสมบัติที่ส่งผลต่อความเร็วของการฝึก! เพราะพวกเขาคำนวณเดลต้าที่ต้องการ ... เยี่ยมเลยขอบคุณ!
ดรีมเลน

5
@Dream Lane เพื่อลดค่าใช้จ่ายในการคำนวณที่อาจเกิดขึ้น คำนวณทักษะ / คะแนนที่ได้รับเฉพาะเมื่อผู้ใช้เข้าสู่ระบบ ดังนั้นการมีคนออกจากระบบหลายพันคนจะไม่เกิดค่าใช้จ่ายใด ๆ
AttackHobo

2

หากทักษะจะไม่ถูกใช้จนกว่าผู้เล่นจะกลับมาออนไลน์คุณก็สามารถเก็บเวลาออกจากระบบและเวลาที่เหลืออยู่ในทักษะใด ๆ ในคิวจากนั้นเมื่อผู้เล่นเข้าสู่ระบบทำสิ่งนี้:

timeRemaining = currentTime - logoutTime
while ( timeRemaining > 0 and hasQueuedSkill() ) {
     skillTime -= timeRemaining
     if ( skillTime <= 0 ) {
           popSkill()
           timeRemaining = -skillTime
     }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.