void ProcessLoadPacket(LoadPacket pkt) { Console.WriteLine("Client load packet"); character = db0.LoadCharacter(account, pkt.CharacterId); if (character != null) { if (character.Dead) SendPacket(new svrPackets.FailurePacket() { Message = "Character is dead." }); else { SendPacket(new CreateResultPacket() { CharacterID = character.CharacterId, ObjectID = RealmManager.Worlds[targetWorld].EnterWorld(entity = new Player(this)) }); stage = ProtocalStage.Ready; } } else SendPacket(new svrPackets.FailurePacket() { Message = "Failed to Load character." }); }
void ProcessLoadPacket(LoadPacket pkt) { character = db.LoadCharacter(account, pkt.CharacterId); if (character != null) { if (character.Dead) SendPacket(new svrPackets.FailurePacket() { Message = "Character is dead." }); else { var target = RealmManager.Worlds[targetWorld]; //Delay to let client load remote texture target.Timers.Add(new WorldTimer(500, (w, t) => { SendPacket(new CreateResultPacket() { CharacterID = character.CharacterId, ObjectID = RealmManager.Worlds[targetWorld].EnterWorld(entity = new Player(this)) }); w.BroadcastPacket(new TextPacket() { BubbleTime = 0, Stars = -1, Name = "", Text = account.Name + " has connected." }, entity); })); stage = ProtocalStage.Ready; } } else { Player.SendInfo("Failed to Load character."); Disconnect(); } }
private void ProcessLoadPacket(LoadPacket pkt) { character = db.LoadCharacter(account, pkt.CharacterId); if (character != null) { if (character.Dead) SendPacket(new FailurePacket { Message = "Character is dead." }); else if (CheckAccountInUse(account.AccountId) != false) { Console.ForegroundColor = ConsoleColor.Blue; Console.WriteLine("Account in use: " + account.AccountId); Console.ForegroundColor = ConsoleColor.White; SendPacket(new FailurePacket { Message = "Account in use! Retrying..." }); } else { if (account.Bonuses != null) if (account.Bonuses.Count > 0) { var chrEquip = character.Equipment; for (var i = 4; i < 12; i++) { if (chrEquip[i] == -1) { chrEquip[i] = account.Bonuses.First(); account.Bonuses.Remove(account.Bonuses.First()); SendPacket(new TextPacket { Name = "", BubbleTime = 0, Stars = -1, Text = "You received " + XmlDatas.TypeToId[chrEquip[i]] + "." }); if (account.Bonuses.Count == 0) break; } } db.SetBonuses(account.AccountId, account.Bonuses); character.Equipment = chrEquip; } else { } else { account.Bonuses = new List<short>(); } if (IP.Gifts != null) if (IP.Gifts.Count > 0) { var chrEquip = character.Equipment; for (var i = 4; i < 12; i++) { if (chrEquip[i] == -1) { chrEquip[i] = IP.Gifts.First(); IP.Gifts.Remove(IP.Gifts.First()); SendPacket(new TextPacket { Name = "", BubbleTime = 0, Stars = -1, Text = "You received " + XmlDatas.TypeToId[chrEquip[i]] + "." }); if (IP.Gifts.Count == 0) break; } } db.SetBonuses(IP.Address, IP.Gifts); character.Equipment = chrEquip; } else { } else { IP.Gifts = new List<short>(); } var target = RealmManager.Worlds[targetWorld]; //Delay to let client load remote texture target.Timers.Add(new WorldTimer(2000, (w, t) => SendPacket(new CreateResultPacket { CharacterID = character.CharacterId, ObjectID = RealmManager.Worlds[targetWorld].EnterWorld(entity = new Player(this)) }))); stage = ProtocalStage.Ready; } } else { Player.SendInfo("Failed to Load character."); Disconnect(); } }
private void ProcessLoadPacket(LoadPacket pkt) { Character = Database.LoadCharacter(Account, pkt.CharacterId); if (Character != null) { if (Character.Dead) SendPacket(new FailurePacket { Message = "Character is dead." }); else if (CheckAccountInUse(Account.AccountId)) { Logger.Warn($"Account in use {Account.Name} ({Account.AccountId})"); SendPacket(new FailurePacket { Message = "Account in use! Retrying..." }); } else { if (Account.Bonuses != null) if (Account.Bonuses.Count > 0) { var chrEquip = Character.Equipment; for (var i = 4; i < 12; i++) { if (chrEquip[i] != -1) continue; chrEquip[i] = Account.Bonuses.First(); Account.Bonuses.Remove(Account.Bonuses.First()); SendPacket(new TextPacket { Name = "", BubbleTime = 0, Stars = -1, Text = "You received " + XmlData.ObjectTypeToId[chrEquip[i]] + "." }); if (Account.Bonuses.Count == 0) break; } Database.SetBonuses(Account.AccountId, Account.Bonuses); Character.Equipment = chrEquip; } else { } else { Account.Bonuses = new List<short>(); } if (IP.Gifts != null) if (IP.Gifts.Count > 0) { var chrEquip = Character.Equipment; for (var i = 4; i < 12; i++) { if (chrEquip[i] != -1) continue; chrEquip[i] = IP.Gifts.First(); IP.Gifts.Remove(IP.Gifts.First()); SendPacket(new TextPacket { Name = "", BubbleTime = 0, Stars = -1, Text = "You received " + XmlData.ObjectTypeToId[chrEquip[i]] + "." }); if (IP.Gifts.Count == 0) break; } Database.SetBonuses(IP.Address, IP.Gifts); Character.Equipment = chrEquip; } else { } else { IP.Gifts = new List<short>(); } var target = RealmManager.Worlds[targetWorld]; //Delay to let client load remote texture target.Timers.Add(new WorldTimer(2000, (w, t) => SendPacket(new CreateResultPacket { CharacterID = Character.CharacterId, ObjectID = RealmManager.Worlds[targetWorld].EnterWorld(Player = new Player(this)) }))); Stage = ProtocalStage.Ready; } } else { Player.SendInfo("Failed to Load character."); Disconnect(); } }