예제 #1
0
    public GameConfig()
    {
        kill_point_30_60    = new IntArray();
        kill_point_60       = new IntArray();
        delta_level_exp     = new IntArray();
        carriage_list       = new IntArray();
        best_carriage_list  = new IntArray();
        clear_cd_skill_list = new IntArray();
        pickup_item_notice  = new IntArray();

        learn_skill          = new LearnSkillConfig();
        equip_endure_cost    = new EquipEndureCost();
        strings              = new ConstString();
        battlefield          = new BattlefieldConfig();
        jizhou_battlefield   = new JiZhouBattlefieldConfig();
        huangjin_battlefield = new HuangJinBattlefieldConfig();
        card_mgr             = new CardMgr();
        group_setting        = new GroupSetting();
        store_setting        = new IBStoreSettings();
        relationship         = new RelationshipConfig();

        OfflineExpItems     = new OfflineExpItemCfgArray();
        OfflineExpPerLevels = new OfflineExpPerLevelArray();

        group_league = new GroupLeagueConfig();
        country      = new CountryConfig();

        auto_equip_when_enter_map_config = new AutoEquipWhenEnterMapConfig();
        sign_manager = new SignManager();
    }
예제 #2
0
        public void OnCommand(GameClient client, string[] args)
        {
            if (args.Length < 3)
            {
                return;
            }

            bool up = false;

            if (args[2][0] == 'u')
            {
                up = true;
            }
            else if
            (args[2][0] == 'd')
            {
                up = false;
            }
            else
            {
                return;
            }

            GameClient friendClient = WorldMgr.GetClientByPlayerName(args[1], true, true);

            CardMgr.Deal(client, friendClient, up);
        }
예제 #3
0
 public void OnCommand(GameClient client, string[] args)
 {
     if (args.Length == 2 && client.Player.Group != null)
     {
         foreach (GamePlayer Groupee in client.Player.Group.GetPlayersInTheGroup())
         {
             if (Groupee != client.Player)
             {
                 CardMgr.Held(client, Groupee.Client);
             }
             else
             {
                 CardMgr.Held(client, client);
             }
         }
     }
 }
예제 #4
0
        public void OnCommand(GameClient client, string[] args)
        {
            if (args.Length < 2)
            {
                return;
            }

            int numDecks;

            try
            {
                numDecks = System.Convert.ToInt32(args[1]);
            }
            catch (Exception)
            {
                return;
            }

            if (numDecks > 0)
            {
                CardMgr.Shuffle(client, (uint)numDecks);
            }
        }
예제 #5
0
 public void OnCommand(GameClient client, string[] args)
 {
     if (args.Length < 2)
     {
         return;
     }
     if (args[1].Equals("all"))
     {
         CardMgr.DiscardAll(client);
     }
     else
     {
         try
         {
             uint cardId = System.Convert.ToUInt32(args[1]);
             CardMgr.Discard(client, cardId);
         }
         catch (Exception)
         {
             return;
         }
     }
 }
예제 #6
0
 void OnDestroy()
 {
     singleton = null;
 }
예제 #7
0
 void Awake()
 {
     singleton = this;
 }
예제 #8
0
 public void OnCommand(GameClient client, string[] args)
 {
     CardMgr.Show(client);
 }
예제 #9
0
 void Awake()
 {
     _instance = this;
 }
 public void UpdatePlayerProperties()
 {
     this.m_player.BeginChanges();
     try
     {
         int    num   = 0;
         int    num2  = 0;
         int    num3  = 0;
         int    num4  = 0;
         int    num5  = 0;
         int    num6  = 0;
         string text  = "";
         string text2 = "";
         string skin  = "";
         int    num7  = 0;
         int    num8  = 0;
         int    num9  = 0;
         int    num10 = 0;
         int    num11 = 0;
         int    num12 = 0;
         int    num13 = 0;
         int    num14 = 0;
         int    num15 = 0;
         int    num16 = 0;
         int    num17 = 0;
         int    num18 = 0;
         int    num19 = 0;
         int    num20 = 0;
         int    num21 = 0;
         int    num22 = 0;
         int    num23 = 0;
         int    num24 = 0;
         int    num25 = 0;
         this.m_player.UpdatePet(this.m_player.PetBag.GetPetIsEquip());
         List <UsersCardInfo> items = this.m_player.CardBag.GetItems(0, 5);
         object @lock;
         Monitor.Enter(@lock = this.m_lock);
         try
         {
             text  = ((this.m_items[0] == null) ? "" : (this.m_items[0].TemplateID.ToString() + "|" + this.m_items[0].Template.Pic));
             text2 = ((this.m_items[0] == null) ? "" : this.m_items[0].Color);
             skin  = ((this.m_items[5] == null) ? "" : this.m_items[5].Skin);
             for (int i = 0; i < 31; i++)
             {
                 ItemInfo itemInfo = this.m_items[i];
                 if (itemInfo != null)
                 {
                     num  += itemInfo.Attack;
                     num2 += itemInfo.Defence;
                     num3 += itemInfo.Agility;
                     num4 += itemInfo.Luck;
                     num6  = ((num6 > itemInfo.StrengthenLevel) ? num6 : itemInfo.StrengthenLevel);
                     this.AddBaseLatentProperty(itemInfo, ref num, ref num2, ref num3, ref num4);
                     this.AddBaseGemstoneProperty(itemInfo, ref num7, ref num8, ref num9, ref num10, ref num11);
                 }
                 this.AddBeadProperty(i, ref num, ref num2, ref num3, ref num4, ref num5);
             }
             this.AddBaseTotemProperty(this.m_player.PlayerCharacter, ref num, ref num2, ref num3, ref num4, ref num5);
             if (this.m_player.Pet != null)
             {
                 num16 += this.m_player.Pet.Attack;
                 num17 += this.m_player.Pet.Defence;
                 num18 += this.m_player.Pet.Agility;
                 num19 += this.m_player.Pet.Luck;
                 num20 += this.m_player.Pet.Blood;
             }
             foreach (UsersCardInfo current in items)
             {
                 num12 += CardMgr.GetProp(current, 0);
                 num13 += CardMgr.GetProp(current, 1);
                 num14 += CardMgr.GetProp(current, 2);
                 num15 += CardMgr.GetProp(current, 3);
                 if (current.CardID != 0)
                 {
                     num12 += current.Attack;
                     num13 += current.Defence;
                     num14 += current.Agility;
                     num15 += current.Luck;
                 }
             }
             num21 += ExerciseMgr.GetExercise(this.m_player.PlayerCharacter.Texp.attTexpExp, "A");
             num22 += ExerciseMgr.GetExercise(this.m_player.PlayerCharacter.Texp.defTexpExp, "D");
             num23 += ExerciseMgr.GetExercise(this.m_player.PlayerCharacter.Texp.spdTexpExp, "AG");
             num24 += ExerciseMgr.GetExercise(this.m_player.PlayerCharacter.Texp.lukTexpExp, "L");
             num25 += ExerciseMgr.GetExercise(this.m_player.PlayerCharacter.Texp.hpTexpExp, "H");
             for (int j = 0; j < PlayerEquipInventory.StyleIndex.Length; j++)
             {
                 text  += ",";
                 text2 += ",";
                 if (this.m_items[PlayerEquipInventory.StyleIndex[j]] != null)
                 {
                     object obj = text;
                     text = string.Concat(new object[]
                     {
                         obj,
                         this.m_items[PlayerEquipInventory.StyleIndex[j]].TemplateID,
                         "|",
                         this.m_items[PlayerEquipInventory.StyleIndex[j]].Template.Pic
                     });
                     text2 += this.m_items[PlayerEquipInventory.StyleIndex[j]].Color;
                 }
             }
             this.EquipBuffer();
         }
         finally
         {
             Monitor.Exit(@lock);
         }
         num  += num7 + num12 + num16 + num21;
         num2 += num8 + num13 + num17 + num22;
         num3 += num9 + num14 + num18 + num23;
         num4 += num10 + num15 + num19 + num24;
         num5 += num11 + num20 + num25;
         this.m_player.UpdateBaseProperties(num, num2, num3, num4, num5);
         this.m_player.UpdateStyle(text, text2, skin);
         this.m_player.ApertureEquip(num6);
         this.m_player.UpdateWeapon(this.m_items[6]);
         this.m_player.UpdateSecondWeapon(this.m_items[15]);
         this.m_player.UpdatePlayerProperty("Texp", this.GetProp(num21, num22, num23, num24, num25));
         this.m_player.UpdatePlayerProperty("Card", this.GetProp(num12, num13, num14, num15, 0));
         this.m_player.UpdatePlayerProperty("Pet", this.GetProp(num16, num17, num18, num19, num20));
         this.m_player.UpdatePlayerProperty("Gem", this.GetProp(num7, num8, num9, num10, num11));
         this.m_player.UpdateFightPower();
         this.GetUserNimbus();
     }
     finally
     {
         this.m_player.CommitChanges();
     }
 }
예제 #11
0
        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);
        }
예제 #12
0
        public int HandlePacket(GameClient client, GSPacketIn packet)
        {
            int    num  = packet.ReadInt();
            int    num2 = packet.ReadInt();
            int    num3 = packet.ReadInt();
            string text = "";
            List <UsersCardInfo> items = client.Player.CardBag.GetItems(0, 5);

            switch (num)
            {
            case 0:
                if (num3 <= client.Player.PlayerCharacter.CardSoul && num3 > 0)
                {
                    int type  = items[num2].Type;
                    int gP    = items[num2].CardGP + num3;
                    int level = CardMgr.GetLevel(gP, type);
                    int num4  = CardMgr.GetGP(level, type) - items[num2].CardGP;
                    if (level == 40)
                    {
                        num3 = num4;
                    }
                    client.Player.CardBag.UpGraceSlot(num3, level, num2);
                    client.Player.RemoveCardSoul(num3);
                    client.Player.Out.SendPlayerCardSlot(client.Player.PlayerCharacter, items[num2]);
                    client.Player.MainBag.UpdatePlayerProperties();
                }
                else
                {
                    text = "Thẻ hồn không đủ!";
                }
                break;

            case 1:
                if (client.Player.PlayerCharacter.Money >= 300)
                {
                    int num5 = 0;
                    for (int i = 0; i < items.Count; i++)
                    {
                        num5 += items[i].CardGP;
                    }
                    client.Player.CardBag.ResetCardSoul();
                    client.Player.AddCardSoul(num5);
                    text = LanguageMgr.GetTranslation("UpdateSLOT.ResetComplete", new object[]
                    {
                        num5
                    });
                    client.Player.RemoveMoney(300);
                    client.Player.Out.SendPlayerCardSlot(client.Player.PlayerCharacter, items);
                    client.Player.MainBag.UpdatePlayerProperties();
                }
                else
                {
                    text = "Xu không đủ!";
                }
                break;
            }
            if (text != "")
            {
                client.Out.SendMessage(eMessageType.Normal, text);
            }
            return(0);
        }