private void VoicePlayer_PlayerEvent(object sender, RoutedPropertyChangedEventArgs <VoiceCyber.UMP.Controls.UMPEventArgs> e) { try { OnPlayerEvent(sender, e); if (e.NewValue == null) { return; } int code = e.NewValue.Code; var param = e.NewValue.Data; TimeSpan ts; switch (code) { case MediaPlayerEventCodes.BTN_PLAY: VoicePlayer.Play(); break; case Defines.EVT_PAGE_LOADED: break; case MediaPlayerEventCodes.PLAYING: ts = TimeSpan.Parse(param.ToString()); mCurrentTime = ts; if (ts.TotalMilliseconds < StartPosition - 500) { if (CircleMode != 0) //当选择循环的时候,那么就会设置播放的开始位置 { VoicePlayer.SetPosition(TimeSpan.FromMilliseconds(StartPosition + 500)); } } if (ts.TotalMilliseconds > StopPostion - 500) { if (CircleMode != 0) { OnPlayStopped(); } if (CircleMode == 1) { VoicePlayer.SetPosition(TimeSpan.FromMilliseconds(StartPosition)); } } break; case MediaPlayerEventCodes.PLAYBACKSTOPPED: if (CircleMode != 0) { OnPlayStopped(); } break; case MediaPlayerEventCodes.BTN_STOP: OnPlayStopped(); break; case Defines.EVT_EXCEPTION: CurrentApp.WriteLog("MediaPlayer", string.Format("MediaPlayer exception.\t{0}", param)); break; case Defines.EVT_COMMON: //CurrentApp.WriteLog("MediaPlayer", string.Format("MediaPlayer debug.\t{0}", param)); break; } } catch (Exception ex) { ShowException(ex.Message); } }
private void HttpThread(object c) { var context = c as HttpListenerContext; string endPoint = context.Request.RemoteEndPoint.ToString(); int spIndex = endPoint.IndexOf(":"); endPoint = endPoint.Substring(0, spIndex); using (HttpListenerResponse response = context.Response) { if (!context.Request.HasEntityBody)//无数据 { response.StatusCode = 403; return; } string attachValue = ""; //post 的方式有文件上传的在如下解析即可得到客户端参数及值 HttpListenerRequest request = context.Request; if (request.ContentType.Length > 20 && string.Compare(request.ContentType.Substring(0, 20), "multipart/form-data;", true) == 0) { List <Values> lst = new List <Values>(); Encoding Encoding = request.ContentEncoding; string[] values = request.ContentType.Split(';').Skip(1).ToArray(); string boundary = string.Join(";", values).Replace("boundary=", "").Trim(); byte[] ChunkBoundary = Encoding.GetBytes("--" + boundary + "\r\n"); byte[] EndBoundary = Encoding.GetBytes("--" + boundary + "--\r\n"); Stream SourceStream = request.InputStream; var resultStream = new MemoryStream(); bool CanMoveNext = true; Values data = null; while (CanMoveNext) { byte[] currentChunk = ReadLineAsBytes(SourceStream); if (!Encoding.GetString(currentChunk).Equals("\r\n")) { resultStream.Write(currentChunk, 0, currentChunk.Length); } if (CompareBytes(ChunkBoundary, currentChunk)) { byte[] result = new byte[resultStream.Length - ChunkBoundary.Length]; resultStream.Position = 0; resultStream.Read(result, 0, result.Length); CanMoveNext = true; if (result.Length > 0) { data.datas = result; } data = new Values(); lst.Add(data); resultStream.Dispose(); resultStream = new MemoryStream(); } else if (Encoding.GetString(currentChunk).Contains("Content-Disposition")) { byte[] result = new byte[resultStream.Length - 2]; resultStream.Position = 0; resultStream.Read(result, 0, result.Length); CanMoveNext = true; data.name = Encoding.GetString(result).Replace("Content-Disposition: form-data; name=\"", "").Replace("\"", "").Split(';')[0]; resultStream.Dispose(); resultStream = new MemoryStream(); } else if (Encoding.GetString(currentChunk).Contains("Content-Type")) { CanMoveNext = true; data.type = 1; resultStream.Dispose(); resultStream = new MemoryStream(); } else if (CompareBytes(EndBoundary, currentChunk)) { byte[] result = new byte[resultStream.Length - EndBoundary.Length - 2]; resultStream.Position = 0; resultStream.Read(result, 0, result.Length); data.datas = result; resultStream.Dispose(); CanMoveNext = false; } } TempMessage tm = new TempMessage(); foreach (var key in lst) { if (key.type == 0) { string value = Encoding.GetString(key.datas).Replace("\r\n", ""); if (key.name == "attachValue") { attachValue = value; } } if (key.type == 1) { tm.bytes = key.datas; /* * FileStream fs = new FileStream("c:\\3.jpg", FileMode.Create); * fs.Write(key.datas, 0, key.datas.Length); * fs.Close(); * fs.Dispose(); */ } } LogHelper.WriteLog(attachValue); CameraWarning items = JsonHelper.FromJSON <CameraWarning>(attachValue); tm.cam = AIThermometerAPP.Instance().cameras_config.GetNameByIP(endPoint); if (items.Code == 0 && !AIThermometerAPP.Instance().blackcell_pos_error) { tm.temp = items.Reports[0].Temperature; tm.id = items.Reports[0].objId; tm.date = DateTime.Now; string file_name = tm.date.ToString("yyMMdd") + "\\"; if (tm.temp > AIThermometerAPP.Instance().TempLimit()) { file_name = file_name + "nopass\\"; AIThermometerAPP.Instance().AddNoPassFace(); VoicePlayer.Instance().Play(); } else { file_name = file_name + "pass\\"; AIThermometerAPP.Instance().AddPassFace(); } if (AIThermometerAPP.Instance().CanCapture()) { captureHandler?.Invoke(AIThermometerAPP.Instance().CapturePath() + "\\" + DateTime.Now.ToString("yyMMddHHmmssffff") + ".jpeg", CamMode.NORMAL); } Common.CreateDir(image_dir_path + "\\" + file_name); file_name = file_name + tm.date.ToString("HHmmssffff") + tm.temp.ToString().Replace(".", "_") + ".jpeg"; tm.photo_path = image_dir_path + "\\" + file_name; TempWarning.Instance().Push(tm); } else { // 黑体位置错误 if (!AIThermometerAPP.Instance().blackcell_pos_error) { AIThermometerAPP.Instance().blackcell_pos_error = true; ewHandler?.Invoke(Application.Current.FindResource("errorText").ToString(), Application.Current.FindResource("error8").ToString()); AIThermometerAPP.Instance().ResetBlackCell(); } } } response.ContentType = "text/html;charset=utf-8"; response.StatusCode = 200; return; try { using (System.IO.Stream output = response.OutputStream) using (StreamWriter writer = new StreamWriter(output, Encoding.UTF8)) writer.WriteLine("接收完成!"); } catch { } response.Close(); } }
private void PlayRecord(string fileName, string relativeName) { try { if (RecordInfoItem == null) { return; } int mediaType = RecordInfoItem.MediaType; bool noPlayScreen = false; if (ListUserSettingInfos != null) { var setting = ListUserSettingInfos.FirstOrDefault( c => c.ParamID == S3105Consts.USER_PARAM_PLAYSCREEN_NOPLAY); if (setting != null && setting.StringValue == "1") { noPlayScreen = true; } } bool autoRelative = true; if (ListUserSettingInfos != null) { var setting = ListUserSettingInfos.FirstOrDefault( c => c.ParamID == S3105Consts.USER_PARAM_AUTORELATIVEPLAY); if (setting != null && setting.StringValue == "0") { autoRelative = false; } } if (string.IsNullOrEmpty(fileName)) { CurrentApp.WriteLog("PlayRecord", string.Format("FileName is empty")); return; } if (string.IsNullOrEmpty(relativeName)) { CurrentApp.WriteLog("PlayRecord", string.Format("RelativeName is empty")); autoRelative = false; } string audioUrl = string.Format("{0}://{1}:{2}/{3}/{4}", CurrentApp.Session.AppServerInfo.SupportHttps ? "https" : "http", CurrentApp.Session.AppServerInfo.Address, CurrentApp.Session.AppServerInfo.Port, ConstValue.TEMP_DIR_MEDIADATA, fileName); string videoPath; switch (mediaType) { case 0: if (noPlayScreen) { VoicePlayer.MediaType = 1; VoicePlayer.AudioUrl = audioUrl; CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl)); VoicePlayer.Play(); } else { VoicePlayer.MediaType = 3; VoicePlayer.AudioUrl = audioUrl; CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl)); videoPath = string.Empty; RecordOperator recordOperator = new RecordOperator(); recordOperator.Debug += (cat, msg) => CurrentApp.WriteLog(cat, msg); recordOperator.Session = CurrentApp.Session; OperationReturn optReturn = recordOperator.DownloadFileToLocal(fileName); if (!optReturn.Result) { ShowRecordOperatorMessage(optReturn); CurrentApp.WriteLog("DownloadToLocal", string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message)); } else { videoPath = optReturn.Data.ToString(); } VoicePlayer.VideoUrl = videoPath; CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath)); VoicePlayer.Play(); } break; case 1: if (noPlayScreen || !autoRelative) { VoicePlayer.MediaType = 1; VoicePlayer.AudioUrl = audioUrl; CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl)); VoicePlayer.Play(); } else { VoicePlayer.MediaType = 3; VoicePlayer.AudioUrl = audioUrl; CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl)); videoPath = string.Empty; RecordOperator recordOperator = new RecordOperator(); recordOperator.Debug += (cat, msg) => CurrentApp.WriteLog(cat, msg); recordOperator.Session = CurrentApp.Session; OperationReturn optReturn = recordOperator.DownloadFileToLocal(relativeName); if (!optReturn.Result) { ShowRecordOperatorMessage(optReturn); CurrentApp.WriteLog("DownloadToLocal", string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message)); } else { videoPath = optReturn.Data.ToString(); } VoicePlayer.VideoUrl = videoPath; CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath)); VoicePlayer.Play(); } break; case 2: if (!noPlayScreen) { VoicePlayer.MediaType = 2; videoPath = string.Empty; RecordOperator recordOperator = new RecordOperator(); recordOperator.Debug += (cat, msg) => CurrentApp.WriteLog(cat, msg); recordOperator.Session = CurrentApp.Session; OperationReturn optReturn = recordOperator.DownloadFileToLocal(fileName); if (!optReturn.Result) { ShowRecordOperatorMessage(optReturn); CurrentApp.WriteLog("DownloadToLocal", string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message)); } else { videoPath = optReturn.Data.ToString(); } VoicePlayer.VideoUrl = videoPath; CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath)); VoicePlayer.Play(); } break; default: CurrentApp.WriteLog("PlayRecord", string.Format("MediaType invalid.\t{0}", mediaType)); break; } } catch (Exception ex) { CurrentApp.WriteLog("PlayRecord", string.Format("Fail.\t{0}", ex.Message)); } }
public void Stop() { try { VoicePlayer.Close(); } catch { } }
private void PlayRecord(string fileName, List <string> listRelativeNames) { try { if (RecordInfoItem == null) { return; } RecordInfo recordInfo = RecordInfoItem.RecordInfo; if (recordInfo == null) { return; } int mediaType = recordInfo.MediaType; #region 自定义参数设置 bool noPlayScreen = false; if (ListUserSettingInfos != null) { var setting = ListUserSettingInfos.FirstOrDefault( c => c.ParamID == S3102Consts.USER_PARAM_PLAYSCREEN_NOPLAY); if (setting != null && setting.StringValue == "1") { noPlayScreen = true; } } bool autoRelative = true; if (ListUserSettingInfos != null) { var setting = ListUserSettingInfos.FirstOrDefault( c => c.ParamID == S3102Consts.USER_PARAM_AUTORELATIVEPLAY); if (setting != null && setting.StringValue == "0") { autoRelative = false; } } #endregion if (string.IsNullOrEmpty(fileName)) { CurrentApp.WriteLog("PlayRecord", string.Format("FileName is empty")); return; } if (listRelativeNames.Count <= 0) { CurrentApp.WriteLog("PlayRecord", string.Format("RelativeName is empty")); autoRelative = false; } VoicePlayer.Session = CurrentApp.Session; if (mediaType == 3) { #region 艺赛旗录屏播放 //艺赛旗录屏播放,需要设置服务器地址和艺赛旗流水号 if (noPlayScreen) { return; } CurrentApp.WriteLog("PlayRecord", string.Format("VedioPath:{0}(IsaVedio)", fileName)); VoicePlayer.MediaType = 2; VoicePlayer.IsIsaScreen = true; VoicePlayer.IsaServer = recordInfo.VoiceIP; VoicePlayer.IsaRefID = fileName; VoicePlayer.Play(); #endregion return; } string audioUrl = string.Format("{0}://{1}:{2}/{3}/{4}", CurrentApp.Session.AppServerInfo.SupportHttps ? "https" : "http", CurrentApp.Session.AppServerInfo.Address, CurrentApp.Session.AppServerInfo.Port, ConstValue.TEMP_DIR_MEDIADATA, fileName); string videoPath; string relativeName = string.Empty; switch (mediaType) { case 0: if (noPlayScreen) { VoicePlayer.MediaType = 1; VoicePlayer.AudioUrl = audioUrl; CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl)); VoicePlayer.Play(); } else { #region VCLog 录屏播放 VoicePlayer.ListVideoUrls.Clear(); VoicePlayer.MediaType = 3; VoicePlayer.AudioUrl = audioUrl; CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl)); videoPath = string.Empty; RecordOperator recordOperator = new RecordOperator(); recordOperator.Debug += (cat, msg) => CurrentApp.WriteLog(cat, msg); recordOperator.Session = CurrentApp.Session; OperationReturn optReturn = recordOperator.DownloadFileToLocal(fileName); if (!optReturn.Result) { ShowRecordOperatorMessage(optReturn); CurrentApp.WriteLog("DownloadToLocal", string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message)); } else { videoPath = optReturn.Data.ToString(); } VoicePlayer.IsIsaScreen = false; VoicePlayer.ListVideoUrls.Add(videoPath); CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath)); VoicePlayer.Play(); #endregion } break; case 1: if (noPlayScreen || !autoRelative) { VoicePlayer.MediaType = 1; VoicePlayer.AudioUrl = audioUrl; CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl)); VoicePlayer.Play(); } else { VoicePlayer.ListVideoUrls.Clear(); VoicePlayer.MediaType = 3; VoicePlayer.AudioUrl = audioUrl; CurrentApp.WriteLog("PlayRecord", string.Format("AudioUrl:{0}", audioUrl)); videoPath = string.Empty; var relativeRecords = RecordInfoItem.ListRelativeInfos; for (int i = 0; i < relativeRecords.Count; i++) { var relativeRecord = relativeRecords[i]; if (relativeRecord.MediaType == 3) { #region 艺赛旗录屏播放 if (listRelativeNames.Count > i) { relativeName = listRelativeNames[i]; } CurrentApp.WriteLog("PlayRecord", string.Format("VedioPath:{0}(IsaVedio)", relativeName)); VoicePlayer.IsIsaScreen = true; VoicePlayer.IsaServer = relativeRecord.VoiceIP; VoicePlayer.IsaRefID = relativeName; #endregion } else { #region VCLog 录屏播发 if (listRelativeNames.Count > i) { relativeName = listRelativeNames[i]; } if (!string.IsNullOrEmpty(relativeName)) { RecordOperator recordOperator = new RecordOperator(); recordOperator.Debug += (cat, msg) => CurrentApp.WriteLog(cat, msg); recordOperator.Session = CurrentApp.Session; OperationReturn optReturn = recordOperator.DownloadFileToLocal(relativeName); if (!optReturn.Result) { ShowRecordOperatorMessage(optReturn); CurrentApp.WriteLog("DownloadToLocal", string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message)); } else { videoPath = optReturn.Data.ToString(); } VoicePlayer.IsIsaScreen = false; VoicePlayer.ListVideoUrls.Add(videoPath); CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath)); } #endregion } } VoicePlayer.Play(); } break; case 2: if (!noPlayScreen) { #region VCLog 录屏播放 VoicePlayer.MediaType = 2; videoPath = string.Empty; RecordOperator recordOperator = new RecordOperator(); recordOperator.Debug += (cat, msg) => CurrentApp.WriteLog(cat, msg); recordOperator.Session = CurrentApp.Session; OperationReturn optReturn = recordOperator.DownloadFileToLocal(fileName); if (!optReturn.Result) { ShowRecordOperatorMessage(optReturn); CurrentApp.WriteLog("DownloadToLocal", string.Format("Fail.\t{0}\t{1}", optReturn.Code, optReturn.Message)); } else { videoPath = optReturn.Data.ToString(); } VoicePlayer.IsIsaScreen = false; VoicePlayer.ListVideoUrls.Add(videoPath); CurrentApp.WriteLog("PlayRecord", string.Format("VideoPath:{0}", videoPath)); VoicePlayer.Play(); #endregion } break; default: CurrentApp.WriteLog("PlayRecord", string.Format("MediaType invalid.\t{0}", mediaType)); break; } } catch (Exception ex) { CurrentApp.WriteLog("PlayRecord", string.Format("Fail.\t{0}", ex.Message)); } }
private static void HandlePackets() { ByteBuffer buffe; uint b0 = 0, b1 = 0; //byte string last_p = ""; //, last_p2 = ""; while (Globals.gamedata.GetCount_DataToBot() > 0) { try { //buffe = null; Globals.GameReadQueueLock.EnterWriteLock(); try { buffe = (ByteBuffer)Globals.gamedata.gamereadqueue.Dequeue(); } catch (System.Exception e) { Globals.l2net_home.Add_Error("Packet Error Reading Queue : " + e.Message); break; } finally { Globals.GameReadQueueLock.ExitWriteLock(); } //buffe contains unencoded data b0 = buffe.ReadByte(); //last_p2 = last_p; last_p = b0.ToString("X2"); //do we have an event for this packet? if (ScriptEngine.ServerPacketsContainsKey((int)b0)) { ScriptEvent sc_ev = new ScriptEvent(); sc_ev.Type = EventType.ServerPacket; sc_ev.Type2 = (int)b0; sc_ev.Variables.Add(new ScriptVariable(buffe, "PACKET", Var_Types.BYTEBUFFER, Var_State.PUBLIC)); sc_ev.Variables.Add(new ScriptVariable(System.DateTime.Now.Ticks, "TIMESTAMP", Var_Types.INT, Var_State.PUBLIC)); ScriptEngine.SendToEventQueue(sc_ev); } switch ((PServer)b0) { case PServer.MTL: ClientPackets.MoveToLocation(buffe); break; case PServer.NS: ClientPackets.NPCSay(buffe); break; case PServer.CI: ClientPackets.CharInfo(buffe); break; case PServer.RelationChanged: ClientPackets.RelationChanged(buffe); break; case PServer.UI: ClientPackets.UserInfo(buffe); break; case PServer.Attack: ClientPackets.Attack_Packet(buffe); break; case PServer.Die: ClientPackets.Die_Packet(buffe); break; case PServer.Revive: ClientPackets.Revive(buffe.ReadUInt32()); break; case PServer.ChangeMoveType: ClientPackets.ChangeMoveType(buffe); break; case PServer.ChangeWaitType: ClientPackets.ChangeWaitType(buffe); break; case PServer.AttackDeadTarget: ClientPackets.AttackCanceled_Packet(buffe); break; case PServer.SpawnItem: //add item (to ground) ClientPackets.AddItem(buffe); break; case PServer.DropItem: ClientPackets.ItemDrop(buffe); break; case PServer.GetItem: ClientPackets.Get_Item(buffe); break; case PServer.StatusUpdate: ClientPackets.StatusUpdate(buffe); break; case PServer.NpcHtmlMessage: NPC_Chat.Npc_Chat(buffe); break; case PServer.BuyList: //Buylist ClientPackets.BuyList(buffe); break; case PServer.DeleteObject: ClientPackets.DeleteItem(buffe); break; case PServer.CharacterSelectionInfo: Globals.login_window.CharList(buffe); //this is the list of chars //not handled by ig //need to handle this packet here and not on the oog login //on ig, the list will just show up, then disappear on 0x15 CharSelected so its all good break; case PServer.CharSelected: ClientPackets.CharSelected(buffe); break; case PServer.NpcInfo: ClientPackets.NPCInfo(buffe); break; case PServer.ServerObjectInfo: ClientPackets.ServerObjectInfo(buffe); break; case PServer.StaticObject: ClientPackets.StaticObjectInfo(buffe); break; case PServer.ItemList: ClientPackets.ItemList(buffe); break; case PServer.SunRise: Globals.l2net_home.Add_Text("[The sun has just risen]", Globals.Gray, TextType.SYSTEM); break; case PServer.SunSet: Globals.l2net_home.Add_Text("[The sun has just set]", Globals.Gray, TextType.SYSTEM); break; case PServer.TradeStart: break; case PServer.TradeDone: try { Globals.tradewindow.Close(); } catch { //trade window is not opened. } break; case PServer.ActionFailed: //l2j is ghei and throws this packet at us a lot // (Freya) Retail also causes this packet to be sent before any Attack or skill use that requires CTRL break; case PServer.InventoryUpdate: AddInfo.Inventory_Update(buffe); break; case PServer.TeleportToLocation: ClientPackets.Teleport(buffe); break; case PServer.MyTargetSelected: ClientPackets.MyTargetSelected(buffe); break; case PServer.TargetSelected: ClientPackets.TargetSelected(buffe, true); break; case PServer.TargetUnselected: ClientPackets.TargetSelected(buffe, false); break; case PServer.AutoAttackStart: //4bytes target id ClientPackets.EnterCombat(buffe, true); break; case PServer.AutoAttackStop: //4bytes target id ClientPackets.EnterCombat(buffe, false); break; case PServer.SocialAction: ClientPackets.Social_Action(buffe); break; case PServer.AskJoinPledge: ClientPackets.RequestJoinClan(buffe); break; case PServer.AskJoinParty: ClientPackets.RequestJoinParty(buffe); break; case PServer.TradeRequest: ClientPackets.TradeRequest(buffe); break; case PServer.ShortCutRegister: ClientPackets.Load_Shortcut(buffe); break; case PServer.ShortCutInit: ClientPackets.Load_Shortcuts(buffe); break; case PServer.StopMove: ClientPackets.StopMove(buffe); break; case PServer.MagicSkillUser: ClientPackets.MagicSkillUser(buffe); break; case PServer.MagicSkillCancelId: //4bytes - ID of caster that canceled ClientPackets.MagicSkillCancel(buffe); break; case PServer.CreatureSay: ClientPackets.OtherMessage(buffe); break; case PServer.PartySmallWindowAll: if (Globals.gamedata.yesno_state == 1) { Globals.l2net_home.Hide_YesNo(); } ClientPackets.Load_PartyInfo(buffe); AddInfo.Set_PartyVisible(); AddInfo.Set_PartyInfo(); break; case PServer.PartySmallWindowAdd: if (Globals.gamedata.yesno_state == 1) { Globals.l2net_home.Hide_YesNo(); } ClientPackets.Add_PartyInfo(buffe); AddInfo.Set_PartyVisible(); AddInfo.Set_PartyInfo(); break; case PServer.PartySmallWindowDeleteAll: ClientPackets.Delete_Party(); AddInfo.Set_PartyVisible(); AddInfo.Set_PartyInfo(); break; case PServer.PartySmallWindowDelete: ClientPackets.Delete_PartyInfo(buffe); AddInfo.Set_PartyVisible(); AddInfo.Set_PartyInfo(); break; case PServer.PartySmallWindowUpdate: ClientPackets.Update_PartyInfo(buffe); AddInfo.Set_PartyInfo(); break; case PServer.PledgeShowMemberListAll: ClientPackets.PledgeShowMemberListAll(buffe); break; case PServer.PledgeShowMemberListUpdate: ClientPackets.PledgeShowMemberListUpdate(buffe); break; case PServer.PledgeShowMemberListAdd: //changes the clan status of one char... need to update/add as needed ClientPackets.PledgeShowMemberListAdd(buffe); break; case PServer.PledgeShowMemberListDelete: ClientPackets.PledgeShowMemberListDelete(buffe); break; case PServer.PledgeShowInfoUpdate: ClientPackets.PledgeShowInfoUpdate(buffe); break; case PServer.PledgeShowMemberListDeleteAll: ClientPackets.PledgeShowMemberListDeleteAll(buffe); break; case PServer.AbnormalStatusUpdate: ClientPackets.LoadBuffList(buffe); break; case PServer.PartySpelled: ClientPackets.PartySpelled(buffe); break; case PServer.ShortBuffStatusUpdate: ClientPackets.UpdateBuff(buffe); break; case PServer.SkillList: ClientPackets.SkillList(buffe); break; case PServer.SkillCoolTime: ClientPackets.SkillCoolTime(buffe); break; case PServer.RestartResponse: ClientPackets.RestartResponse(buffe); break; case PServer.MoveToPawn: ClientPackets.MoveToPawn(buffe); break; case PServer.ValidateLocation: ClientPackets.Validate_Location(buffe, false); //int id //int rotation break; case PServer.SystemMessage: ClientPackets.SystemMessage(buffe); break; case PServer.PledgeCrest: ClientPackets.PledgeCrest(buffe); break; case PServer.PledgeInfo: ClientPackets.PledgeInfo(buffe); break; case PServer.ValidateLocationInVehicle: ClientPackets.Validate_Location(buffe, true); break; case PServer.MagicSkillLaunched: ClientPackets.MagicSkillLaunched(buffe); //Validate_Location(buffe,false); break; case PServer.FriendAddRequest: ClientPackets.RequestJoinFriend(buffe); break; case PServer.LogOutOk: //ok time to end Globals.gamedata.running = false; Globals.l2net_home.KillEverything(); break; case PServer.PartyMemberPosition: ClientPackets.Set_PartyLocations(buffe); break; case PServer.AskJoinAlly: ClientPackets.RequestJoinAlly(buffe); break; case PServer.AllianceCrest: ClientPackets.AllyCrest(buffe); break; case PServer.Earthquake: //x,y,z,power,duration Globals.l2net_home.Add_Text("[Earthquake at X:" + buffe.ReadInt32().ToString() + " Y:" + buffe.ReadInt32().ToString() + " Z:" + buffe.ReadInt32().ToString() + " Of Power:" + buffe.ReadInt32().ToString() + " For:" + buffe.ReadInt32().ToString() + "]", Globals.Gray, TextType.SYSTEM); break; case PServer.PledgeStatusChanged: ClientPackets.ClanStatusChanged(buffe); break; case PServer.Dice: ClientPackets.Dice(buffe); break; case PServer.HennaInfo: ClientPackets.Set_Henna_Info(buffe); break; case PServer.ConfirmDlg: ClientPackets.RequestReply(buffe); break; case PServer.SSQInfo: //SignSky: ClientPackets.SevenSignSky(buffe); break; case PServer.GameGuardQuery: ClientPackets.GameGuardReply(buffe); break; case PServer.L2FriendSay: ClientPackets.Get_Friend_Message(buffe); break; case PServer.EtcStatusUpdate: ClientPackets.EtcStatusUpdate(buffe); break; case PServer.PetStatusShow: ClientPackets.PetStatusShow(buffe); break; case PServer.PetInfo: ClientPackets.PetInfo(buffe); break; case PServer.PetStatusUpdate: ClientPackets.PetStatusUpdate(buffe); break; case PServer.PetDelete: ClientPackets.PetDelete(buffe); break; case PServer.PetItemList: ClientPackets.PetItemList(buffe); if (Globals.petwindow != null) { Globals.petwindow.fill_pet_inventory(); } break; case PServer.PetInventoryUpdate: AddInfo.PetInventory_Update(buffe); if (Globals.petwindow != null) { Globals.petwindow.fill_pet_inventory(); } break; case PServer.NetPing: ClientPackets.NetPing(buffe); break; case PServer.EXPacket: b1 = buffe.ReadUInt16(); //buffe.ReadByte(); last_p = last_p + " " + b1.ToString("X2"); //do we have an event for this packet? if (ScriptEngine.ServerPacketsEXContainsKey((int)b1)) { ScriptEvent sc_ev = new ScriptEvent(); sc_ev.Type = EventType.ServerPacketEX; sc_ev.Type2 = (int)b1; sc_ev.Variables.Add(new ScriptVariable(buffe, "PACKET", Var_Types.BYTEBUFFER, Var_State.PUBLIC)); sc_ev.Variables.Add(new ScriptVariable(System.DateTime.Now.Ticks, "TIMESTAMP", Var_Types.INT, Var_State.PUBLIC)); ScriptEngine.SendToEventQueue(sc_ev); } //Globals.l2net_home.Add_Text(last_p); switch ((PServerEX)b1) { /*case PServerEX.ExPledgeCrestLarge: * //https://www.l2jserver.com/trac/browser/trunk/L2_GameServer_It/java/net/sf/l2j/gameserver/serverpackets/ExPledgeCrestLarge.java * break;*/ case PServerEX.ExMailArrived: Globals.l2net_home.Add_Text("[Mail has arrived]"); VoicePlayer.PlaySound(8); break; case PServerEX.ExSetCompassZoneCode: ClientPackets.ExSetCompassZoneCode(buffe); break; case PServerEX.ExShowScreenMessage: ClientPackets.ExShowScreenMessage(buffe); break; case PServerEX.ExQuestHTML: if (Globals.gamedata.Chron >= Chronicle.CT2_3) { NPC_Chat.Npc_Chat(buffe); } break; case PServerEX.ExSendUIEventPacket: if (Globals.gamedata.Chron >= Chronicle.CT3_2) { NPC_Chat.Npc_Chat(buffe); } break; case PServerEX.ExQuestItemList: if (Globals.gamedata.Chron >= Chronicle.CT2_5) { ClientPackets.ExQuestItemList(buffe); } break; case PServerEX.ExVitalityUpdate: if (Globals.gamedata.Chron >= Chronicle.CT2_1) { ClientPackets.ExVitalityUpdate(buffe); } break; case PServerEX.ExShowReceivedPostList: ClientPackets.Load_ReceivedMails(buffe); break; case PServerEX.ExShowSecurityPinWindow: Globals.gamedata.SecurityPinWindow = true; if ((!Globals.OOG) && (!System.String.IsNullOrEmpty(Globals.SecurityPin)) && (!Globals.gamedata.SecurityPinOldClient)) { System.Threading.Thread.Sleep(3000); ServerPackets.SecurityPin(); Globals.gamedata.SecurityPinSent = true; } break; case PServerEX.ExSecurityPinCorrect: Globals.gamedata.SecurityPinOk = true; break; case PServerEX.ExAcquireSkillInfo: ClientPackets.ExAcquireSkillInfo(buffe); break; case PServerEX.ExNewSkillToLearnByLevelup: //Glory days ClientPackets.ExAcquireSkillInfo(buffe); break; case PServerEX.ExtargetBuffs: ClientPackets.Extargetbuffs(buffe); break; case PServerEX.ExPartyPetWindowAdd: ClientPackets.ExPartyPetWindowAdd(buffe); break; case PServerEX.ExPartyPetWindowDelete: ClientPackets.ExPartyPetWindowDelete(buffe); break; case PServerEX.ExNpcInfo: ClientPackets.ExNPCInfo(buffe); break; case PServerEX.ExUserinfoItems: ClientPackets.ExUserInfoItems(buffe); break; case PServerEX.ExUserinfoStats: ClientPackets.ExUserInfoStats(buffe); break; case PServerEX.ExUserInfo: ClientPackets.EXUserInfo(buffe); break; } break; }//end of switch on packet type } catch (System.Exception e) { //Globals.l2net_home.Add_Error("Packet Error: " + last_p + " Previous Packet: " + last_p2 + " : " + e.Message); Globals.l2net_home.Add_Error("Packet Error: " + last_p + " :: " + e.Message); } } //end of loop to handle queue data } //end of HandlePackets