private static void OnCharacterCreationSuccess(WorldClient client) { CharacterHandler.SendCharacterCreationResultMessage(client, CharacterCreationResultEnum.OK); BasicHandler.SendBasicNoOperationMessage(client); CharacterHandler.SendCharactersListMessage(client); }
public static void HandleCharactersListRequestMessage(WorldClient client, CharactersListRequestMessage message) { if (client.Account != null && client.Account.Login != "") { CharacterRecord characterRecord = CharacterHandler.FindCharacterFightReconnection(client); if (characterRecord != null) { var fight = Singleton <FightManager> .Instance.GetFight(characterRecord.LeftFightId.Value); CharacterHandler.SendCharacterSelectedForceMessage(client, characterRecord); CharacterHandler.CommonCharacterForceSelection(client, characterRecord, fight); } else { CharacterHandler.SendCharactersListMessage(client); if (client.WorldAccount != null && client.StartupActions.Count > 0) { StartupHandler.SendStartupActionsListMessage(client, client.StartupActions); } } } else { client.Send(new IdentificationFailedMessage((sbyte)IdentificationFailureReasonEnum.UNKNOWN_AUTH_ERROR)); client.DisconnectLater(1000); } }
public static void HandleCharacterDeletionRequestMessage(WorldClient client, CharacterDeletionRequestMessage message) { if (!IPCAccessor.Instance.IsConnected) { client.Send(new CharacterDeletionErrorMessage(1)); client.DisconnectLater(1000); } else { CharacterRecord characterRecord = client.Characters.Find((CharacterRecord entry) => entry.Id == message.characterId); if (characterRecord == null) { client.Send(new CharacterDeletionErrorMessage(1)); client.DisconnectLater(1000); } else { Stump.Server.WorldServer.Game.Guilds.GuildMember guildMember = Singleton <GuildManager> .Instance.TryGetGuildMember(characterRecord.Id); if (guildMember != null && guildMember.IsBoss) { client.Send(new CharacterDeletionErrorMessage(1)); client.DisconnectLater(1000); } else { string secretAnswerHash = message.secretAnswerHash; if (Singleton <ExperienceManager> .Instance.GetCharacterLevel(characterRecord.Experience) <= 20 || (client.Account.SecretAnswer != null && secretAnswerHash == (message.characterId + "~" + client.Account.SecretAnswer).GetMD5())) { if (client.Account.DeletedCharactersCount > CharacterHandler.MaxDayCharacterDeletion) { client.Send(new CharacterDeletionErrorMessage(2)); } else { Singleton <CharacterManager> .Instance.DeleteCharacterOnAccount(characterRecord, client); CharacterHandler.SendCharactersListMessage(client); BasicHandler.SendBasicNoOperationMessage(client); } } else { client.Send(new CharacterDeletionErrorMessage(3)); } } } } }