public static int GetPropCard(int cardtype, int cardID, int type) { CardTemplateInfo[] cardBox = CardMgr.m_cardBox; for (int i = 0; i < cardBox.Length; i++) { CardTemplateInfo cardTemplateInfo = cardBox[i]; if (cardTemplateInfo.CardType == cardtype && cardTemplateInfo.CardID == cardID) { int result; switch (type) { case 0: result = cardTemplateInfo.AddAttack; break; case 1: result = cardTemplateInfo.AddDefend; break; case 2: result = cardTemplateInfo.AddAgility; break; case 3: result = cardTemplateInfo.AddLucky; break; case 4: result = cardTemplateInfo.AddDamage; break; case 5: result = cardTemplateInfo.AddGuard; break; default: goto IL_7A; } return(result); } IL_7A :; } return(0); }
public static CardTemplateInfo GetCard(int cardId) { CardTemplateInfo cardTemplateInfo = new CardTemplateInfo(); List <CardTemplateInfo> list = CardMgr.FindCardBox(cardId); int num = 1; int maxRound = 0; foreach (CardTemplateInfo current in list) { if (maxRound >= current.probability) { maxRound = current.probability; } } maxRound = CardMgr.random.Next(maxRound); List <CardTemplateInfo> list2 = ( from s in list where s.probability >= maxRound select s).ToList <CardTemplateInfo>(); int num2 = list2.Count <CardTemplateInfo>(); if (num2 > 0) { num = ((num > num2) ? num2 : num); int[] randomUnrepeatArray = CardMgr.GetRandomUnrepeatArray(0, num2 - 1, num); int[] array = randomUnrepeatArray; for (int i = 0; i < array.Length; i++) { int index = array[i]; cardTemplateInfo = list2[index]; } } if (cardTemplateInfo.CardType == 0) { return(null); } return(cardTemplateInfo); }
public static List <CardTemplateInfo> GetAllCard() { if (CardMgr.m_cardBox == null) { CardMgr.Init(); } List <CardTemplateInfo> list = new List <CardTemplateInfo>(); Dictionary <int, CardTemplateInfo> dictionary = new Dictionary <int, CardTemplateInfo>(); CardTemplateInfo[] cardBox = CardMgr.m_cardBox; for (int i = 0; i < cardBox.Length; i++) { CardTemplateInfo cardTemplateInfo = cardBox[i]; if (!dictionary.Keys.Contains(cardTemplateInfo.CardID)) { if (cardTemplateInfo.CardID != 314150) { list.Add(cardTemplateInfo); } dictionary.Add(cardTemplateInfo.CardID, cardTemplateInfo); } } return(list); }
public int HandlePacket(GameClient client, GSPacketIn packet) { int num = packet.ReadInt(); PlayerInfo arg_12_0 = client.Player.PlayerCharacter; CardInventory cardBag = client.Player.CardBag; string text = ""; switch (num) { case 0: { int num2 = packet.ReadInt(); int num3 = packet.ReadInt(); int templateID = cardBag.GetItemAt(num2).TemplateID; if (cardBag.FindEquipCard(templateID) && num2 != num3) { text = "Thẻ này đã trang bị!"; } else { if (num2 != num3) { text = "Trang bị thành công!"; } cardBag.MoveItem(num2, num3); client.Player.MainBag.UpdatePlayerProperties(); } if (text != "") { client.Out.SendMessage(eMessageType.Normal, text); } break; } case 1: { int slot = packet.ReadInt(); int count = packet.ReadInt(); ItemInfo itemAt = client.Player.MainBag.GetItemAt(slot); int property = itemAt.Template.Property5; int place = client.Player.CardBag.FindFirstEmptySlot(5); UsersCardInfo usersCardInfo = new UsersCardInfo(); CardTemplateInfo card = CardMgr.GetCard(itemAt.Template.Property5); bool flag = false; if (card != null) { if (client.Player.CardBag.FindPlaceByTamplateId(5, property) == -1) { usersCardInfo.CardType = card.CardType; usersCardInfo.UserID = client.Player.PlayerCharacter.ID; usersCardInfo.Place = place; usersCardInfo.TemplateID = card.CardID; usersCardInfo.isFirstGet = true; usersCardInfo.Attack = 0; usersCardInfo.Agility = 0; usersCardInfo.Defence = 0; usersCardInfo.Luck = 0; usersCardInfo.Damage = 0; usersCardInfo.Guard = 0; client.Player.CardBag.AddCardTo(usersCardInfo, place); client.Out.SendGetCard(client.Player.PlayerCharacter, usersCardInfo); } else { flag = true; } } else { flag = true; } if (flag) { int num4 = CardDataHander.random.Next(5, 50); client.Player.AddCardSoul(num4); client.Player.Out.SendPlayerCardSoul(client.Player.PlayerCharacter, true, num4); } client.Player.MainBag.RemoveCountFromStack(itemAt, count); break; } case 4: { int slot2 = packet.ReadInt(); int count = packet.ReadInt(); ItemInfo itemAt = client.Player.PropBag.GetItemAt(slot2); int id = CardDataHander.random.Next(CardMgr.CardCount()); CardTemplateInfo singleCard = CardMgr.GetSingleCard(id); bool flag2 = false; if (singleCard == null) { flag2 = true; } else { int place2 = client.Player.CardBag.FindFirstEmptySlot(5); int cardID = singleCard.CardID; CardTemplateInfo card2 = CardMgr.GetCard(cardID); UsersCardInfo usersCardInfo2 = new UsersCardInfo(); if (card2 == null) { flag2 = true; } else { if (client.Player.CardBag.FindPlaceByTamplateId(5, cardID) == -1) { usersCardInfo2.CardType = card2.CardType; usersCardInfo2.UserID = client.Player.PlayerCharacter.ID; usersCardInfo2.Place = place2; usersCardInfo2.TemplateID = card2.CardID; usersCardInfo2.isFirstGet = true; usersCardInfo2.Attack = 0; usersCardInfo2.Agility = 0; usersCardInfo2.Defence = 0; usersCardInfo2.Luck = 0; usersCardInfo2.Damage = 0; usersCardInfo2.Guard = 0; client.Player.CardBag.AddCardTo(usersCardInfo2, place2); client.Out.SendGetCard(client.Player.PlayerCharacter, usersCardInfo2); } else { flag2 = true; } } } if (flag2) { int num5 = CardDataHander.random.Next(5, 50); client.Player.AddCardSoul(num5); client.Player.Out.SendPlayerCardSoul(client.Player.PlayerCharacter, true, num5); } client.Player.PropBag.RemoveCountFromStack(itemAt, count); break; } } cardBag.SaveToDatabase(); return(0); }