public void UnlockTrophy(int id, DateTime dt) { TrophyTimeInfo tti = trophyTimeInfoTable[id]; tti.Time = dt; if (!tti.IsGet) { trophyListInfo.GetTrophyNumber = trophyListInfo.GetTrophyNumber + 1; unknowType7.TrophyCount = unknowType7.TrophyCount + 1; } trophyListInfo.AchievementRate[id / 32] |= (uint)(1 << id).ChangeEndian(); AchievementRate[id / 32] |= (uint)(1 << id); tti.IsGet = true; tti.SyncState = (int)TropSyncState.NotSync; // 0x100100 表示已同步 trophyTimeInfoTable[id] = tti; if (dt > trophyListInfo.ListLastGetTrophyTime) { trophyListInfo.ListLastGetTrophyTime = dt; } }
public void LockTrophy(int id) { TrophyTimeInfo tti = trophyTimeInfoTable[id]; if (tti.SyncState == 0x100100) { throw new Exception("此獎杯已同步過,無法上鎖或修改"); } tti.Time = new DateTime(0); if (tti.IsGet) { trophyListInfo.GetTrophyNumber = trophyListInfo.GetTrophyNumber - 1; unknowType7.TrophyCount = unknowType7.TrophyCount - 1; } trophyListInfo.AchievementRate[id / 32] &= 0xFFFFFFFF ^ (uint)(1 << id).ChangeEndian(); AchievementRate[id / 32] &= 0xFFFFFFFF ^ (uint)(1 << id); tti.IsGet = false; tti.SyncState = 0; trophyTimeInfoTable[id] = tti; }