/// <summary> /// Adds trade item and points of card to character. /// </summary> /// <param name="account"></param> /// <param name="targetCharacter"></param> /// <param name="charCard"></param> public void TradeCard(Account account, Character targetCharacter, CharCardData charCard) { // Add item using (var conn = this.Connection) using (var cmd = new InsertCommand("INSERT INTO `items` {0}", conn)) { cmd.Set("creatureId", targetCharacter.CreatureId); cmd.Set("itemId", charCard.TradeItem); cmd.Set("pocket", Pocket.Temporary); cmd.Set("color1", 0x808080); cmd.Set("color2", 0x808080); cmd.Set("color3", 0x808080); cmd.Execute(); } // Add points using (var conn = this.Connection) using (var cmd = new InsertCommand("UPDATE `accounts` SET `points` = `points` + @points WHERE `accountId` = @accountId", conn)) { cmd.Set("accountId", account.Name); cmd.Set("points", charCard.TradePoints); cmd.Execute(); } }
/// <summary> /// Adds trade item and points of card to character. /// </summary> /// <param name="targetCharacter"></param> /// <param name="charCard"></param> public void TradeCard(Character targetCharacter, CharCardData charCard) { using (var conn = this.Connection) using (var cmd = new InsertCommand("INSERT INTO `items` {0}", conn)) { cmd.Set("creatureId", targetCharacter.CreatureId); cmd.Set("itemId", charCard.TradeItem); cmd.Set("pocket", Pocket.Temporary); cmd.Set("color1", 0x808080); cmd.Set("color2", 0x808080); cmd.Set("color3", 0x808080); cmd.Execute(); } // TODO: Add points (pons)... }
/// <summary> /// Creates new character for this account. Returns true if successful, /// character's ids are also set in that case. /// </summary> /// <param name="character"></param> /// <param name="cardInfo"></param> /// <returns></returns> public bool CreateCharacter(Character character, CharCardData cardInfo) { // Create start items for card and hair/face var cardItems = AuraData.CharCardSetDb.Find(cardInfo.SetId, character.Race); var items = this.CardItemsToItems(cardItems); this.GenerateItemColors(ref items, (this.Name + character.Race + character.SkinColor + character.Hair + character.HairColor + character.Age + character.EyeType + character.EyeColor + character.MouthType + character.Face)); items.Add(new Item(character.Face, Pocket.Face, character.SkinColor, 0, 0)); items.Add(new Item(character.Hair, Pocket.Hair, character.HairColor + 0x10000000u, 0, 0)); if (!LoginServer.Instance.Database.CreateCharacter(this.Name, character, items)) { return(false); } this.Characters.Add(character); return(true); }
/// <summary> /// Creates new character for this account. Returns true if successful, /// character's ids are also set in that case. /// </summary> /// <param name="character"></param> /// <param name="cardInfo"></param> /// <returns></returns> public bool CreateCharacter(Character character, CharCardData cardInfo) { // Create start items for card and hair/face var cardItems = AuraData.CharCardSetDb.Find(cardInfo.SetId, character.Race); var items = this.CardItemsToItems(cardItems); this.GenerateItemColors(ref items, (this.Name + character.Race + character.SkinColor + character.Hair + character.HairColor + character.Age + character.EyeType + character.EyeColor + character.MouthType + character.Face)); items.Add(new Item(character.Face, Pocket.Face, character.SkinColor, 0, 0)); items.Add(new Item(character.Hair, Pocket.Hair, character.HairColor + 0x10000000u, 0, 0)); if (!LoginServer.Instance.Database.CreateCharacter(this.Name, character, items)) return false; this.Characters.Add(character); return true; }