九州密藏是運營活動,運營會在後臺設置活動開啓的時間,例如每週二、四、六,這個活動有1小時的最大累積時間限制,在活動開啓的時候,每天會贈送20分鐘。那麼一週就會贈送3次,在週二、四、六時。
實現的方式是mk給我提供了一個接口bool GetActiveIsOpen(UINT actId),可以判斷該活動是否開啓。我在dateChange()函數中,調用該接口,如果返回true,則給玩家贈送時間,否則不贈送。
外網玩家反饋活動時間累積的不對,於是去查看代碼。
由於該活動是運營活動,先是由後臺通知到mgr,再由mgr廣播給game。
這裏涉及到一個日曆系統的問題,日曆的觸發有個潛規則:1s內不能觸發2次。
在後臺輸入gm指令,同步到mgr時,如果該tick內,正好有其它某處觸發了日曆系統,那麼此處在調用觸發,會發現時間並沒有被更新。導致mgr同步給game的時候,數據是不正確的。
那麼我調用接口,也就無效了。