private void Reset() { this.m_enLastEventPriority = CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_INVALID; this.m_lLastEventStartTime = 0L; this.m_lLastEventEndTime = 0L; this.m_lGameStartTime = 0L; this.m_lGameEndTime = 0L; this.m_iContinuKillMaxNum = -1; this.m_bIsStartRecordOk = false; this.m_bIsMvp = false; this.m_iHostPlaterKillNum = 0; this.m_iHostPlaterDeadNum = 0; this.m_iHostPlaterAssistNum = 0; this.m_bIsCallGameJoyGenerate = false; this.m_bIsCallStopGameJoyRecord = false; this.m_lVideoTimeLen = 0L; if (this.m_hostActor) { this.m_hostActor.Release(); } if (this.m_stRecordInfo != null) { this.m_stRecordInfo.Clear(); } this.m_uiEventStartTimeInterval = GameDataMgr.GetGlobeValue(219) * 1000u; this.m_uiEventEndTimeInterval = GameDataMgr.GetGlobeValue(249) * 1000u; this.m_uiEventNumMax = GameDataMgr.GetGlobeValue(220); this.m_ui543KillEventTotalTime = GameDataMgr.GetGlobeValue(221) * 1000u; this.m_ui210KillEventTotalTime = GameDataMgr.GetGlobeValue(256) * 1000u; this.m_uiMinSpaceLimit = GameDataMgr.GetGlobeValue(231); this.m_uiOnceDoubleEventTimeIntervalReduce = GameDataMgr.GetGlobeValue(248) * 1000u; }
private void UpdateRecordEvent(PoolObjHandle <ActorRoot> eventActor, CRecordUseSDK.RECORD_EVENT_PRIORITY eventPriority) { if (!this.m_bIsRecordMomentsEnable || !this.m_bIsStartRecordOk) { return; } if (eventPriority != CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_INVALID && Singleton <GamePlayerCenter> .get_instance().GetHostPlayer().Captain != eventActor) { return; } long num = GameJoy.get_getSystemCurrentTimeMillis() - this.m_lGameStartTime; bool flag = false; if (eventActor && eventActor.get_handle().ActorControl != null) { HeroWrapper heroWrapper = eventActor.get_handle().ActorControl as HeroWrapper; if (heroWrapper != null) { flag = heroWrapper.IsInMultiKill(); } } if (!flag || eventPriority == CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_INVALID) { if (this.m_enLastEventPriority > CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_INVALID) { this.AddRecordEvent(this.m_enLastEventPriority, this.m_lLastEventStartTime, this.m_lLastEventEndTime); } this.m_enLastEventPriority = eventPriority; this.m_lLastEventStartTime = num; this.m_lLastEventEndTime = num; } else { if (this.m_enLastEventPriority != CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_INVALID && eventPriority <= this.m_enLastEventPriority) { return; } if (this.m_enLastEventPriority <= CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_ASSIST) { this.m_lLastEventStartTime = num; } this.m_enLastEventPriority = eventPriority; this.m_lLastEventEndTime = num; } }
private void AddRecordEvent(CRecordUseSDK.RECORD_EVENT_PRIORITY eventPriority, long lStartTime, long lEndTime) { if (this.m_stRecordInfo == null) { return; } SortedList <long, long> sortedList = null; if (!this.m_stRecordInfo.TryGetValue(eventPriority, ref sortedList)) { sortedList = new SortedList <long, long>(); this.m_stRecordInfo.Add(eventPriority, sortedList); } if (sortedList != null && !sortedList.ContainsKey(lStartTime)) { sortedList.Add(lStartTime, lEndTime); } this.m_enLastEventPriority = CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_INVALID; }
public RECORD_INFO(CRecordUseSDK.RECORD_EVENT_PRIORITY _eventPriority, long _lEndTime) { this.eventPriority = _eventPriority; this.lEndTime = _lEndTime; }
private void ChooseTopEvent() { int num = 0; int num2 = 0; bool flag = false; SortedList <long, CRecordUseSDK.RECORD_INFO> sortedList = new SortedList <long, CRecordUseSDK.RECORD_INFO>(); SortedList <long, long> sortedList2 = null; for (CRecordUseSDK.RECORD_EVENT_PRIORITY rECORD_EVENT_PRIORITY = CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_PENTAKILL; rECORD_EVENT_PRIORITY > CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_DOUBLEKILL; rECORD_EVENT_PRIORITY--) { if (this.m_stRecordInfo != null && this.m_stRecordInfo.TryGetValue(rECORD_EVENT_PRIORITY, ref sortedList2) && sortedList2 != null) { IEnumerator <KeyValuePair <long, long> > enumerator = sortedList2.GetEnumerator(); while (enumerator.MoveNext()) { num2++; if ((long)num2 > (long)((ulong)this.m_uiEventNumMax)) { flag = true; break; } KeyValuePair <long, long> current = enumerator.get_Current(); long arg_9F_0; if (current.get_Key() < (long)((ulong)this.m_uiEventStartTimeInterval)) { arg_9F_0 = 0L; } else { KeyValuePair <long, long> current2 = enumerator.get_Current(); arg_9F_0 = current2.get_Key() - (long)((ulong)this.m_uiEventStartTimeInterval); } long num3 = arg_9F_0; KeyValuePair <long, long> current3 = enumerator.get_Current(); long num4 = current3.get_Value() + (long)((ulong)this.m_uiEventEndTimeInterval); num4 = ((num4 <= this.m_lGameEndTime) ? num4 : this.m_lGameEndTime); num += (int)(num4 - num3); if ((long)num > (long)((ulong)this.m_ui543KillEventTotalTime)) { flag = true; break; } if (!sortedList.ContainsKey(num3)) { sortedList.Add(num3, new CRecordUseSDK.RECORD_INFO(rECORD_EVENT_PRIORITY, num4)); } } } if (flag) { break; } } if (!flag && (long)num < (long)((ulong)this.m_ui210KillEventTotalTime)) { bool flag2 = false; SortedList <int, SortedList <long, long> > sortedList3 = null; SortedList <long, long> sortedList4 = null; if (this.m_stRecordInfo != null && this.m_stRecordInfo.TryGetValue(CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_ASSIST, ref sortedList4)) { flag2 = true; } for (CRecordUseSDK.RECORD_EVENT_PRIORITY rECORD_EVENT_PRIORITY2 = CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_DOUBLEKILL; rECORD_EVENT_PRIORITY2 > CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_ASSIST; rECORD_EVENT_PRIORITY2--) { if (this.m_stRecordInfo != null && this.m_stRecordInfo.TryGetValue(rECORD_EVENT_PRIORITY2, ref sortedList2) && sortedList2 != null) { IEnumerator <KeyValuePair <long, long> > enumerator2 = sortedList2.GetEnumerator(); while (enumerator2.MoveNext()) { KeyValuePair <long, long> current4 = enumerator2.get_Current(); long arg_1ED_0; if (current4.get_Key() < (long)((ulong)this.m_uiEventStartTimeInterval)) { arg_1ED_0 = 0L; } else { KeyValuePair <long, long> current5 = enumerator2.get_Current(); arg_1ED_0 = current5.get_Key() - (long)((ulong)this.m_uiEventStartTimeInterval); } long num5 = arg_1ED_0; KeyValuePair <long, long> current6 = enumerator2.get_Current(); long num6 = current6.get_Value() + (long)((ulong)this.m_uiEventEndTimeInterval) - (long)((ulong)this.m_uiOnceDoubleEventTimeIntervalReduce); num6 = ((num6 <= this.m_lGameEndTime) ? num6 : this.m_lGameEndTime); if (!flag2) { num2++; if ((long)num2 > (long)((ulong)this.m_uiEventNumMax)) { flag = true; break; } num += (int)(num6 - num5); if ((long)num > (long)((ulong)this.m_ui210KillEventTotalTime)) { flag = true; break; } if (!sortedList.ContainsKey(num5)) { sortedList.Add(num5, new CRecordUseSDK.RECORD_INFO(rECORD_EVENT_PRIORITY2, num6)); } } else { int assistCountWithTime = this.GetAssistCountWithTime((float)num5, (float)num6); this.InsertAssistInfo(ref sortedList3, assistCountWithTime, num5, num6); } } if (flag2 && sortedList3 != null && sortedList3.get_Count() > 0) { int count = sortedList3.get_Count(); for (int i = count - 1; i >= 0; i--) { sortedList2 = sortedList3.get_Values().get_Item(i); if (sortedList2 != null) { IEnumerator <KeyValuePair <long, long> > enumerator3 = sortedList2.GetEnumerator(); while (enumerator3.MoveNext()) { KeyValuePair <long, long> current7 = enumerator3.get_Current(); long key = current7.get_Key(); KeyValuePair <long, long> current8 = enumerator3.get_Current(); long value = current8.get_Value(); num2++; if ((long)num2 > (long)((ulong)this.m_uiEventNumMax)) { flag = true; break; } num += (int)(value - key); if ((long)num > (long)((ulong)this.m_ui210KillEventTotalTime)) { flag = true; break; } if (!sortedList.ContainsKey(key)) { sortedList.Add(key, new CRecordUseSDK.RECORD_INFO(rECORD_EVENT_PRIORITY2, value)); } } } } sortedList3.Clear(); } } if (flag) { break; } } if (!flag && this.m_stRecordInfo != null && this.m_stRecordInfo.TryGetValue(CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_ASSIST, ref sortedList2) && sortedList2 != null) { IEnumerator <KeyValuePair <long, long> > enumerator4 = sortedList2.GetEnumerator(); while (enumerator4.MoveNext()) { KeyValuePair <long, long> current9 = enumerator4.get_Current(); long arg_431_0; if (current9.get_Key() < (long)((ulong)this.m_uiEventStartTimeInterval)) { arg_431_0 = 0L; } else { KeyValuePair <long, long> current10 = enumerator4.get_Current(); arg_431_0 = current10.get_Key() - (long)((ulong)this.m_uiEventStartTimeInterval); } long num7 = arg_431_0; KeyValuePair <long, long> current11 = enumerator4.get_Current(); long num8 = current11.get_Value() + (long)((ulong)this.m_uiEventEndTimeInterval) - (long)((ulong)this.m_uiOnceDoubleEventTimeIntervalReduce); num8 = ((num8 <= this.m_lGameEndTime) ? num8 : this.m_lGameEndTime); num2++; if ((long)num2 > (long)((ulong)this.m_uiEventNumMax)) { break; } num += (int)(num8 - num7); if ((long)num > (long)((ulong)this.m_ui210KillEventTotalTime)) { break; } if (!sortedList.ContainsKey(num7)) { sortedList.Add(num7, new CRecordUseSDK.RECORD_INFO(CRecordUseSDK.RECORD_EVENT_PRIORITY.RECORD_EVENT_TYPE_ASSIST, num8)); } } } } List <TimeStamp> list = new List <TimeStamp>(); long num9 = 0L; long num10 = 0L; IEnumerator <KeyValuePair <long, CRecordUseSDK.RECORD_INFO> > enumerator5 = sortedList.GetEnumerator(); while (enumerator5.MoveNext()) { KeyValuePair <long, CRecordUseSDK.RECORD_INFO> current12 = enumerator5.get_Current(); long num11 = current12.get_Key(); KeyValuePair <long, CRecordUseSDK.RECORD_INFO> current13 = enumerator5.get_Current(); long lEndTime = current13.get_Value().lEndTime; if (list.get_Count() > 0 && num9 > num11) { list.RemoveAt(list.get_Count() - 1); num -= (int)(num9 - num10); num9 = (num9 + num11) / 2L; num11 = num9; num += (int)(num9 - num10); list.Add(new TimeStamp(num10, num9)); } num10 = num11; num9 = lEndTime; list.Add(new TimeStamp(num11, lEndTime)); } this.m_bIsCallGameJoyGenerate = true; Singleton <GameJoy> .get_instance().GenerateMomentsVideo(list, this.GetVideoName(), this.GetExtraInfos()); }