Tôi đang làm một game MMO và tôi đã đạt đến một điểm mà tôi cần phải thực hiện thành tích ... Làm thế nào để tôi làm điều đó? Điều thẳng thắn nhất cần làm là chạy cái này cứ sau 100ms ,:
for a in achievements
for p in players
if a.meetsRequirements(p) then p.completeAchievement(a)
Nhưng điều đó chỉ làm tăng thêm các biến chứng. Ví dụ, làm thế nào để tôi kiểm tra xem thành tích đã thực sự được hoàn thành chưa? Các cầu thủ có thuộc tính tùy chỉnh trên chính họ chỉ cho một thành tích cụ thể? Tôi đã làm điều này với các nhiệm vụ, bởi vì chúng chủ yếu là "thu thập 100 gỗ", vì vậy các nhiệm vụ tích cực trên một người chơi kiểm tra điều đó. Ngoài ra, phải có thời gian tốt hơn để kiểm tra nó, điều này sẽ định kỳ làm chậm máy chủ của tôi, tôi nghĩ vậy.