Example #1
0
    private void InitItemTableData()
    {
        string[][] arrAll = GetData(TableDataName.ItemTableData.ToString());
        for (int i = 0; i < arrAll.Length; i++)
        {
            string[] arr = arrAll[i];
            int      id  = int.Parse(arr[0]);

            ItemTableData itemTableData = new ItemTableData
            {
                id            = id,
                name          = arr[1],
                des           = arr[2],
                itemPrefab    = arr[3],
                icon          = arr[4],
                group         = int.Parse(arr[5]),
                groupName     = arr[6],
                damaged       = int.Parse(arr[7]),
                defene        = int.Parse(arr[8]),
                attackRadius  = float.Parse(arr[9]),
                attackSpeed   = float.Parse(arr[10]),
                isBomb        = int.Parse(arr[11]),
                pointParticle = arr[12],
                moveParticle  = arr[13],
                hitParticle   = arr[14],
                bombMoveSpeed = float.Parse(arr[15]),
                bombCount     = int.Parse(arr[16]),
                quality       = int.Parse(arr[17]),
                animationId   = int.Parse(arr[18])
            };
            ItemTableDataDic[id] = itemTableData;
        }
    }
Example #2
0
    public void InitData(DummyProp dummyProp, Enity enity)
    {
        this.enity     = enity;
        this.dummyProp = dummyProp;
        bool isSetDefault = false;
        long enityitemid  = 0;

        if (this.enity != null)
        {
            if (this.enity.hero.dummyPropDic.ContainsKey(dummyProp))
            {
                enityitemid = this.enity.hero.dummyPropDic[dummyProp];
                if (DataManager.GetInstance().GetGameData().Items.ContainsKey(enityitemid))
                {
                    Item item = DataManager.GetInstance().GetGameData().Items[enityitemid];
                    AddEquipToItemsView(item);
                    UpdateSelectItem(item);
                    isSetDefault = true;
                }
            }
        }
        foreach (KeyValuePair <long, Item> item in DataManager.GetInstance().GetGameData().Items)
        {
            ItemTableData itemTableData = DataManager.GetInstance().GetItemTableDataByItemId(item.Value.itemId);
            if (itemTableData.group == (int)dummyProp && enityitemid != item.Key)
            {
                AddEquipToItemsView(item.Value);
                if (!isSetDefault)
                {
                    UpdateSelectItem(item.Value);
                    isSetDefault = true;
                }
            }
        }
    }
Example #3
0
    public void InitWeaponByEquip(Item equip)
    {
        if (bombPrefab != null)
        {
            Destroy(bombPrefab);
            bombPrefab = null;
        }
        ItemTableData itemTableData = DataManager.GetInstance().GetItemTableDataByItem(equip);

        this.equipItem     = equip;
        this.attackSpeed   = itemTableData.attackSpeed;
        this.attackRadius  = itemTableData.attackRadius;
        this.damaged       = itemTableData.damaged;
        this.bombCount     = itemTableData.bombCount;
        this.bombMoveSpeed = itemTableData.bombMoveSpeed;
        this.isHaveBomb    = itemTableData.isBomb == 1;
        if (this.isHaveBomb)//一般远程攻击才有子弹
        {
        }
        else//如果不是表示近战
        {
            Detonate detonate = this.gameObject.AddComponent <Detonate>();
            detonate.DetonateDamage = this.damaged;
            detonate.DamageCount    = int.MaxValue;//近战武器无限攻击次数
        }
    }
Example #4
0
    public void UpdateSelectItem(Item item)
    {
        Clear();
        CurrentItem = item;
        ItemTableData itemTableData = DataManager.GetInstance().GetItemTableDataByItem(item);

        ItemShow3D = DataManager.GetInstance().CreateGameObjectFromAssetsBundle("", itemTableData.itemPrefab);
        if (ItemShow3D != null && Camera.main != null)
        {
            ItemShow3D.AddComponent <RolateObject>();
            Quaternion quaternion = new Quaternion(90, 45, 45, 1);
            ItemShow3D.transform.localRotation = quaternion;
            ItemShow3D.transform.SetParent(Camera.main.transform.parent, false);

            ItemShow3D.transform.localScale    = new Vector3(1.2f, 1.2f, 1.2f);
            ItemShow3D.transform.localPosition = new Vector3(0, 0, 0);
            if (ItemShow != null)
            {
                ItemShow3D.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(ItemShow.transform.position.x, ItemShow.transform.position.y, 10.0f));
            }
        }
        ItemName.text = itemTableData.name;
        ItemInfo.text = itemTableData.des;
        bool isSelfEquip = false;

        if (this.enity != null && this.enity.hero.dummyPropDic.ContainsKey(this.dummyProp) && this.enity.hero.dummyPropDic[this.dummyProp] == item.id)
        {
            isSelfEquip = true;
        }

        removeButton.gameObject.SetActive(isSelfEquip);
        changeButton.gameObject.SetActive(!isSelfEquip);
    }
Example #5
0
    public void OnListTable(int totalTB, Message message)
    {
        List <ItemTableData> listTable = new List <ItemTableData>();

        for (int i = 0; i < totalTB; i++)
        {
            try {
                ItemTableData ctb = new ItemTableData();
                ctb.Id        = (message.reader().ReadShort());
                ctb.TableName = "Bàn " + ctb.Id;
                ctb.Status    = (message.reader().ReadByte());
                ctb.NUser     = (message.reader().ReadByte());
                ctb.IsLock    = message.reader().ReadByte();
                ctb.Money     = message.reader().ReadLong();
                ctb.NeedMoney = message.reader().ReadLong();
                ctb.MaxMoney  = message.reader().ReadLong();
                ctb.MaxUser   = (message.reader().ReadByte());
                //if (roomstage.anbanfull && ctb.nuser == ctb.maxuser) {//sua
                //    continue;
                //}
                listTable.Add(ctb);
            } catch (Exception ex) {
                Debug.LogException(ex);
            }
        }

        listTable.OrderBy(r => r.Money);
        LoadAssetBundle.LoadScene(SceneName.SCENE_ROOM, SceneName.SCENE_ROOM, () => {
            RoomControl.instance.CreateTable(listTable);
        });
    }
Example #6
0
    public static ItemTableData LoadTableData()
    {
        TextAsset     asset      = Resources.Load("Texts/zeldaItem") as TextAsset;
        string        jsonString = asset.text;
        ItemTableData tableData  = JsonUtility.FromJson <ItemTableData>(jsonString);

        tableData.GenerateStates();
        return(tableData);
    }
Example #7
0
    public void InitData(Item item, ItemIconType itemIconType)
    {
        SetState(true);
        Data = item;
        ItemTableData itemTableData = DataManager.instance.GetItemTableDataByItemId(item.itemId);

        equipTextsArr[0].text = itemTableData.name;
        equipTextsArr[1].text = item.itemLevel.ToString();
        this.itemIconType     = itemIconType;
        AddIcon(DataManager.GetInstance().GetItemTableDataByItem(item).icon);
    }
Example #8
0
 void Awake()
 {
     if (instance != null)
     {
         Destroy(gameObject);
     }
     else
     {
         instance  = this;
         tableData = ItemTableData.LoadTableData();
     }
 }
Example #9
0
    public ItemTableData GetItemTableDataByItemName(string name)
    {
        ItemTableData itemTableData = null;

        foreach (KeyValuePair <int, ItemTableData> item in ItemTableDataOldDic)
        {
            if (item.Value.name == name)
            {
                itemTableData = item.Value;
                break;
            }
        }
        return(itemTableData);
    }
Example #10
0
    // Update is called once per frame
    void Update()
    {
        leijiTime += Time.deltaTime;

        if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            leijiTime = 0.0f;
            if (ItemShow3D != null)
            {
                ScreenTool.Instance.CameraCapture(Camera.main, new Rect(0, 0, 1024, 1024), itemTableData.name + ".png");
                ItemShow3D.transform.parent = null;
                Destroy(ItemShow3D);
                ItemShow3D = null;
            }
            else
            {
                while (DataManager.GetInstance().ItemTableDataDic.ContainsKey(ItemId))
                {
                    itemTableData = DataManager.GetInstance().ItemTableDataDic[ItemId];
                    if (DataManager.GetInstance().GetItemTableDataByItemName(itemTableData.name) == null)
                    {
                        ItemShow3D = DataManager.GetInstance().CreateGameObjectFromAssetsBundle("", itemTableData.itemPrefab);
                        if (ItemShow3D != null && Camera.main != null)
                        {
                            ItemShow3D.transform.SetParent(item.transform, false);
                            ParticleSystem[] particleSystems = ItemShow3D.GetComponentsInChildren <ParticleSystem>();
                            for (int i = 0; i < particleSystems.Length; i++)
                            {
                                particleSystems[i].gameObject.SetActive(false);
                            }
                            Quaternion quaternion = new Quaternion(ItemShow3D.transform.localRotation.x, ItemShow3D.transform.localRotation.y, ItemShow3D.transform.localRotation.z, ItemShow3D.transform.localRotation.w);
                            quaternion.x = 0;
                            quaternion.y = 145;
                            ItemShow3D.transform.localRotation = quaternion;
                            ItemShow3D.transform.localScale    = new Vector3(1, 1, 1);
                            ItemShow3D.transform.localPosition = new Vector3(0, 0, 0);
                        }
                        break;
                    }
                    else
                    {
                        ItemId++;
                    }
                }
                ItemId++;
            }
        }
    }
Example #11
0
 public void CreateItem()
 {
     foreach (KeyValuePair <int, ItemTableData> pair in ItemTableDataDic)
     {
         ItemTableData itemTableData = pair.Value;
         Item          item          = new Item
         {
             id        = pair.Key + 10000,
             itemId    = pair.Value.id,
             masterId  = 0,
             itemLevel = 1
         };
         if (!GD.Items.ContainsKey(item.id))
         {
             GD.Items.Add(item.id, item);
         }
     }
 }
Example #12
0
 public void StartScreen()
 {
     foreach (KeyValuePair <int, ItemTableData> pair in DataManager.GetInstance().ItemTableDataDic)
     {
         ItemTableData itemTableData = pair.Value;
         GameObject    ItemShow3D    = DataManager.GetInstance().CreateGameObjectFromAssetsBundle("", itemTableData.itemPrefab);
         if (ItemShow3D != null && Camera.main != null)
         {
             ItemShow3D.transform.SetParent(item.transform, false);
             ItemShow3D.transform.localRotation = Quaternion.identity;
             ItemShow3D.transform.localScale    = new Vector3(1, 1, 1);
             ItemShow3D.transform.localPosition = new Vector3(0, 0, 0);
             ScreenTool.Instance.CameraCapture(Camera.main, new Rect(0, 0, 1024, 1024), itemTableData.name + ".png");
             ItemShow3D.transform.SetParent(null);
             Destroy(ItemShow3D);
         }
     }
 }
Example #13
0
    public void OnUpdateRoom(Message message)
    {
        short totalTB = message.reader().ReadShort();
        List <ItemTableData> listTable = new List <ItemTableData>();

        for (int i = 0; i < totalTB; i++)
        {
            try {
                ItemTableData ctb = new ItemTableData();
                ctb.Id        = (message.reader().ReadShort());
                ctb.TableName = "Bàn " + ctb.Id;
                ctb.Status    = (message.reader().ReadByte());
                ctb.NUser     = (message.reader().ReadByte());
                ctb.IsLock    = message.reader().ReadByte();
                ctb.Money     = message.reader().ReadLong();
                ctb.NeedMoney = message.reader().ReadLong();
                ctb.MaxMoney  = message.reader().ReadLong();
                ctb.MaxUser   = (message.reader().ReadByte());
                //				Debug.LogError (ctb.Id + "    " + ctb.NUser);
                listTable.Add(ctb);
            } catch (Exception ex) {
                Debug.LogException(ex);
            }
        }

        //listTable.OrderBy(r => r.Money);
        if (!SceneManager.GetSceneByName(SceneName.SCENE_ROOM).isLoaded)
        {
            LoadAssetBundle.LoadScene(SceneName.SCENE_ROOM, SceneName.SCENE_ROOM, () => {
                if (RoomControl.instance != null)
                {
                    RoomControl.instance.CreateTable(listTable);
                }
            });
        }
        else
        {
            if (RoomControl.instance != null)
            {
                RoomControl.instance.UpdateListTable(listTable);
            }
        }
    }
Example #14
0
    public void OnClickBtn()
    {
        switch (itemIconType)
        {
        case ItemIconType.ChangeEquipPanel:
            GameObject.Find("ChangeEquipPanel").SendMessage("UpdateSelectItem", Data);
            break;

        case ItemIconType.HeroPanel_EquipsSlot:
            ItemTableData itemTableData = DataManager.GetInstance().GetItemTableDataByItemId(Data.itemId);
            GameObject.Find("HeroScene").SendMessage("OnClickEquip", itemTableData.group);
            break;

        case ItemIconType.NULL:
            break;

        default:
            break;
        }
    }
Example #15
0
    public DataManager()
    {
        //CreateItemTableData();
        //CreateDIYTableData("Assets/Little Heroes Mega Pack/Prefabs/01 Choose Costume", ".prefab");
        assetBundlePrefabs  = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/prefab");
        assetBundleStatic   = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/staticdata");
        assetBundleUI       = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/ui");
        assetBundleMaterial = AssetBundle.LoadFromFile(Application.streamingAssetsPath + "/material");
        InitItemTableDataOld();
        InitItemTableData();
        InitHeroTableData();
        InitEnemyTableData();
        InitAnimationTableData();
        InitChapterTableData();
        InitDIYTableData();
        InitConfigTableData();


        //初始化英雄,可以读取本地数据,或者服务器发来的数据
        LoadByBin();
        if (GD == null)//说明第一次启动,需要读取初始的英雄信息,最好配置表
        {
            GD = new GameData();
            int  teamposition = 0;
            long startid      = long.Parse(System.DateTime.Now.ToString("yyyyMMddhhmmss"));
            foreach (KeyValuePair <int, DefaultItemTableData> pair in DefaultItemTableDataDic)
            {
                //if (HeroTableDataDic.ContainsKey(pair.Value.itemid))
                {
                    if (pair.Value.type == 2)//如果是装备
                    {
                        ItemTableData itemTableData = ItemTableDataDic[pair.Value.itemid];
                        Item          item          = new Item
                        {
                            id        = startid + pair.Key,
                            itemId    = pair.Value.itemid,
                            masterId  = pair.Value.masterId,
                            itemLevel = 1
                        };
                        GD.Items.Add(item.id, item);
                    }
                    else if (pair.Value.type == 1)
                    {
                        HeroTableData heroTableData = HeroTableDataDic[pair.Value.itemid];
                        Hero          hero          = new Hero
                        {
                            id           = RandomHeroManager.instance.GetRandomId(),
                            teamPosition = 0,
                            heroLevel    = 1,
                            heroJob      = (HeroJob)heroTableData.heroJob,
                            heroQuality  = (HeroQuality)heroTableData.heroQuality,
                            heroSex      = (HeroSex)heroTableData.heroSex
                        };
                        hero.heroPartDic[HeroPart.Body]  = heroTableData.heroBody;
                        hero.heroPartDic[HeroPart.Hair]  = heroTableData.heroHair;
                        hero.heroPartDic[HeroPart.Beard] = heroTableData.heroBeard;
                        teamposition++;
                        GD.Heroes.Add(hero.id, hero);
                    }
                }
            }
            SaveByBin();//保存下
        }
        CreateItem();



        foreach (KeyValuePair <long, Item> item in GD.Items)
        {
            if (item.Value.masterId > 0)                        //有持有者
            {
                if (GD.Heroes.ContainsKey(item.Value.masterId)) //如果有这个持有者
                {
                    Hero          hero          = GD.Heroes[item.Value.masterId];
                    ItemTableData itemTableData = GetItemTableDataByItemId(item.Value.itemId);
                    if (itemTableData != null)
                    {
                        hero.dummyPropDic[(DummyProp)itemTableData.group] = item.Value.id;
                    }
                }
            }
        }
    }
Example #16
0
    public void UpdateEquipsByDummyProp(long itemid, bool isAdd = true, bool isupdate = false)
    {
        Item item = DataManager.GetInstance().GetGameData().GetItemById(itemid);

        ItemTableData equipdata = DataManager.GetInstance().GetItemTableDataByItemId(item.itemId);

        if (equipdata != null)
        {
            DummyProp dummyProp = (DummyProp)equipdata.group;
            if (dummyProp_Enity.ContainsKey(dummyProp))
            {
                GameObject obj = dummyProp_Enity[dummyProp];
                dummyProp_Enity.Remove(dummyProp);
                Destroy(obj);
            }
            if (isAdd)
            {
                GameObject equip = DataManager.GetInstance().CreateGameObjectFromAssetsBundle("", equipdata.itemPrefab);
                if (equip != null && dummyProp_Parent.Count > (int)dummyProp)
                {
                    dummyProp_Enity[dummyProp] = equip;
                    equip.transform.SetParent(dummyProp_Parent[(int)dummyProp], false);
                }
                if (dummyProp == DummyProp.Chest)// 如果是护甲,获取护甲的动作类,需要一同播放
                {
                    Animator animatorChest = equip.GetComponent <Animator>();
                    if (animatorChest != null && !animatorList.Contains(animatorChest))
                    {
                        animatorList.Add(animatorChest);
                    }
                }
                if (dummyProp == DummyProp.Back)//如果是翅膀,改成飞行状态
                {
                    //isFly = true;
                    //OnPlayAnimation(AnimatorParameters.FlyIdle, ActionParamtersType.Bool);
                }
            }


            if (isupdate)//刷新装备
            {
                //Hero hero = DataManager.GetInstance().GetGameData().GetHeroById(heroId);
                if (hero != null)
                {
                    Item olditem   = null;
                    Hero oldmaster = null;
                    //先把当前装备脱下
                    if (hero.dummyPropDic.ContainsKey(dummyProp))
                    {
                        long olditemid = hero.dummyPropDic[dummyProp];
                        olditem = DataManager.GetInstance().GetGameData().GetItemById(olditemid);
                        hero.dummyPropDic.Remove(dummyProp);
                        //olditem.masterId = 0;
                    }

                    if (isAdd)
                    {
                        hero.dummyPropDic[dummyProp] = itemid;
                        if (item.masterId > 0)//之前有穿戴者,需要卸下来
                        {
                            oldmaster = DataManager.GetInstance().GetGameData().GetHeroById(item.masterId);
                            //if(oldmaster != null)
                            //{
                            //    oldmaster.dummyPropDic.Remove(dummyProp);
                            //}
                        }
                        item.masterId = hero.id;
                    }
                    if (olditem != null)
                    {
                        olditem.masterId = oldmaster != null ? oldmaster.id : 0;
                    }

                    if (oldmaster != null)
                    {
                        if (olditem != null)
                        {
                            oldmaster.dummyPropDic[dummyProp] = olditem.id;
                        }
                        else
                        {
                            oldmaster.dummyPropDic.Remove(dummyProp);
                        }
                    }


                    if (hero.teamPosition >= 0)//如果再阵容需要更新战斗场景
                    {
                        //GameObject.Find("FightScene").SendMessage("InitFightingHero",null);
                    }
                }
            }

            if (dummyProp == DummyProp.Left || dummyProp == DummyProp.Right)//更新动作
            {
                Item itemEquip = GetEnityEquip();
                if (itemEquip != null)
                {
                    ItemTableData itemTableData = DataManager.GetInstance().GetItemTableDataByItem(itemEquip);
                    if (itemTableData != null)
                    {
                        animationTableData = DataManager.GetInstance().GetAnimationTableDataById(itemTableData.animationId);
                        if (isupdate)
                        {
                            OnPlayAnimation(animatorAction);
                        }
                    }
                }
            }
        }
    }