public bool Execute(JHSNetworkMessage netMsg) { if (DbManager == null) { DbManager = AccountManager.Instance; } if (matchQueue == null) { matchQueue = PlayerQueueManager.Instance; } SearchMatch packet = netMsg.ReadMessage <SearchMatch>(); if (packet != null) { uint connectionId = netMsg.conn.connectionId; AccountOBJ user = DbManager.GetOnlineByConnectionId(connectionId); if (user != null) { switch (packet.op) { case SearchMatchOperations.Search: if (user.InQueue) { netMsg.conn.Send(NetworkConstants.START_SEARCH_MATCH, new SearchMatch() { op = SearchMatchOperations.NO_ERROR_SEARCHING }); return(true); } CharacterOBJ player = user.GetPlayer(packet.value); if (player != null) { lock (user) { user.SelectedCharacer = player.PlayerId; user.InQueue = true; user.ResetNotification(); matchQueue.AddPlayer(new MatchPlayer() { League = user.League, userId = user.Id, ConnectionId = connectionId, PlayerId = player.PlayerId }); netMsg.conn.Send(NetworkConstants.START_SEARCH_MATCH, new SearchMatch() { op = SearchMatchOperations.SEARCHING_INIT, value = (uint)matchQueue.AvregeWaitTime() }); } } else { netMsg.conn.Send(NetworkConstants.START_SEARCH_MATCH, new SearchMatch() { op = SearchMatchOperations.ERR_CHARATER_NOT_THERE }); } break; case SearchMatchOperations.Cancel: lock (user) { user.SelectedCharacer = 0; user.InQueue = false; netMsg.conn.Send(NetworkConstants.START_SEARCH_MATCH, new SearchMatch() { op = SearchMatchOperations.Cancel }); } break; case SearchMatchOperations.CHECK_START: matchQueue.CheckStart(); break; } } else { netMsg.conn.Send(NetworkConstants.START_SEARCH_MATCH, new SearchMatch() { op = SearchMatchOperations.ERR_ACCOUNT_NOT_FOUND }); } } return(true); }
public bool Execute(JHSNetworkMessage netMsg) { if (DbManager == null) { DbManager = AccountManager.Instance; } DeleteCharacter packet = netMsg.ReadMessage <DeleteCharacter>(); if (packet != null) { uint connectionId = netMsg.conn.connectionId; AccountOBJ user = DbManager.GetOnlineByConnectionId(connectionId); if (user != null) { lock (user) { if (user.Skins.Count <= 1) { netMsg.conn.Send(NetworkConstants.DELETE_CHARACTER, new DeleteCharacterResponse() { STATUS = NOT_DELETE_LAST_CHARACTER }); return(true); } CharacterOBJ character = user.GetPlayer(packet.PlayerId); if (character != null) { ConfiModel model = ConfigManager.GetModel(character.SkinId); if (model == null) { netMsg.conn.Send(NetworkConstants.DELETE_CHARACTER, new DeleteCharacterResponse() { STATUS = ITEM_CONFIG_WRONG }); return(true); } uint playerId = character.PlayerId; if (DbService.RemoveEntity(character.GetEntity()) && user.Skins.Remove(playerId)) { user.Silver += model.SilverPrice; user.ResetNotification(); DbService.SubmitUpdate2Queue(user); netMsg.conn.Send(NetworkConstants.DELETE_CHARACTER, new DeleteCharacterResponse() { STATUS = SUCCESS, PlayerId = playerId, Gold = (uint)user.Gold, Silver = (uint)user.Silver }); } else { netMsg.conn.Send(NetworkConstants.DELETE_CHARACTER, new DeleteCharacterResponse() { STATUS = PLAYER_NOT_FOUND }); } } else { netMsg.conn.Send(NetworkConstants.DELETE_CHARACTER, new DeleteCharacterResponse() { STATUS = PLAYER_NOT_FOUND }); } } } } return(true); }
public bool Execute(JHSNetworkMessage netMsg) { if (DbManager == null) { DbManager = AccountManager.Instance; } GWMainMenu packet = netMsg.ReadMessage <GWMainMenu>(); if (packet != null) { uint connectionId = netMsg.conn.connectionId; AccountOBJ user = DbManager.GetOnlineByConnectionId(connectionId); if (user != null) { int total = 0; if (packet.SkinColorId_changed) { total += Settings.PRICE_PER_COLOR_CHANGE; } if (packet.HairColorId_changed) { total += Settings.PRICE_PER_COLOR_CHANGE; } if (packet.EyeColorId_changed) { total += Settings.PRICE_PER_COLOR_CHANGE; } if (packet.ShirtColorId_changed) { total += Settings.PRICE_PER_COLOR_CHANGE; } if (packet.PantsColorId_changed) { total += Settings.PRICE_PER_COLOR_CHANGE; } if (packet.BootsColorId_changed) { total += Settings.PRICE_PER_COLOR_CHANGE; } if (packet.GlovesColorId_changed) { total += Settings.PRICE_PER_COLOR_CHANGE; } if (total == 0) { return(true); } lock (user) { if (user.Silver < total) { netMsg.conn.Send(NetworkConstants.BUYCOLORCHANGE, new HeroBuyColorResponse() { STATUS = NOT_ENOUGH_SILVER }); return(true); } CharacterOBJ player = user.GetPlayer(packet.PlayerId); if (packet.SkinColorId_changed) { player.SkinColorId = packet.SkinColorId; } if (packet.HairColorId_changed) { player.HairColorId = packet.HairColorId; } if (packet.EyeColorId_changed) { player.EyeColorId = packet.EyeColorId; } if (packet.ShirtColorId_changed) { player.ShirtColorId = packet.ShirtColorId; } if (packet.PantsColorId_changed) { player.PantsColorId = packet.PantsColorId; } if (packet.BootsColorId_changed) { player.BootsColorId = packet.BootsColorId; } if (packet.GlovesColorId_changed) { player.GlovesColorId = packet.GlovesColorId; } DbService.SubmitUpdate2Queue(player); user.Silver = user.Silver - total; user.ResetNotification(); DbService.SubmitUpdate2Queue(user); HeroBuyColorResponse response = new HeroBuyColorResponse() { STATUS = 255, PlayerId = packet.PlayerId, SkinColorId = packet.SkinColorId, SkinColorId_changed = packet.SkinColorId_changed, HairColorId = packet.HairColorId, HairColorId_changed = packet.HairColorId_changed, EyeColorId = packet.EyeColorId, EyeColorId_changed = packet.EyeColorId_changed, ShirtColorId = packet.ShirtColorId, ShirtColorId_changed = packet.ShirtColorId_changed, PantsColorId = packet.PantsColorId, PantsColorId_changed = packet.PantsColorId_changed, BootsColorId = packet.BootsColorId, BootsColorId_changed = packet.BootsColorId_changed, GlovesColorId = packet.GlovesColorId, GlovesColorId_changed = packet.GlovesColorId_changed, }; response.STATUS = SUCCESS; response.Silver = (uint)user.Silver; netMsg.conn.Send(NetworkConstants.BUYCOLORCHANGE, response); return(true); } } else { netMsg.conn.Send(NetworkConstants.BUYCOLORCHANGE, new HeroBuyColorResponse() { STATUS = USER_NOT_FOUND }); } } return(true); }