Exemple #1
0
        private void on_map_dpitem_res(Variant msg_data)
        {
            debug.Log("!!!!!!!!!!on_map_dpitem_res!" + msg_data.dump());
            float x    = msg_data["x"]._float / 53.333f;
            float z    = msg_data["y"]._float / 53.333f;
            bool  flag = msg_data.ContainsKey("owner_see");

            if (flag)
            {
                bool flag2 = msg_data["owner_see"] != ModelBase <PlayerModel> .getInstance().cid;

                if (flag2)
                {
                    return;
                }
            }
            Vector3            pos    = new Vector3(x, 0f, z);
            List <Variant>     arr    = msg_data["itms"]._arr;
            List <DropItemdta> list   = new List <DropItemdta>();
            long curServerTimeStampMS = NetClient.instance.CurServerTimeStampMS;

            foreach (Variant current in arr)
            {
                DropItemdta dropItemdta = new DropItemdta();
                dropItemdta.init(current, curServerTimeStampMS);
                list.Add(dropItemdta);
            }
            bool flag3 = BaseRoomItem.instance != null;

            if (flag3)
            {
                BaseRoomItem.instance.showDropItem(pos, list, false);
            }
        }
Exemple #2
0
        public void onChangeLevel(Variant svrconf, Variant cursvrmsg)
        {
            bool flag = this.curRoom != null;

            if (flag)
            {
                this.curRoom.onEnd();
                this.curRoom = null;
            }
            uint key   = svrconf["id"];
            bool flag2 = this.dRooms.ContainsKey(key);

            if (flag2)
            {
                this.curRoom = this.dRooms[key];
            }
            else
            {
                bool flag3 = MapModel.getInstance().curLevelId > 0u;
                if (flag3)
                {
                    this.curRoom = this.dRooms[9999999u];
                }
                else
                {
                    this.curRoom = this.dRooms[0u];
                }
            }
            this.curRoom.onStart(svrconf);
            bool flag4 = cursvrmsg != null && cursvrmsg.ContainsKey("dpitms");

            if (flag4)
            {
                List <Variant> arr = cursvrmsg["dpitms"]._arr;
                Dictionary <string, List <DropItemdta> > dictionary = new Dictionary <string, List <DropItemdta> >();
                long curServerTimeStampMS = NetClient.instance.CurServerTimeStampMS;
                foreach (Variant current in arr)
                {
                    int    num   = current["x"];
                    int    num2  = current["y"];
                    string key2  = num + "+" + num2;
                    bool   flag5 = !dictionary.ContainsKey(key2);
                    if (flag5)
                    {
                        dictionary[key2] = new List <DropItemdta>();
                    }
                    DropItemdta dropItemdta = new DropItemdta();
                    dropItemdta.init(current, curServerTimeStampMS);
                    dropItemdta.x = num;
                    dropItemdta.y = num2;
                    dictionary[key2].Add(dropItemdta);
                }
                foreach (List <DropItemdta> current2 in dictionary.Values)
                {
                    Vector3 pos = new Vector3((float)current2[0].x / 53.333f, 0f, (float)current2[0].y / 53.333f);
                    BaseRoomItem.instance.showDropItem(pos, current2, false);
                }
            }
        }
Exemple #3
0
        public static DropItem create(DropItemdta item)
        {
            GameObject gameObject = new GameObject();
            DropItem   dropItem   = gameObject.AddComponent <DropItem>();

            dropItem.itemdta = item;
            dropItem.init();
            return(dropItem);
        }
Exemple #4
0
        public static DropItem getDropItem(Vector3 vec, Vector3 eulerAngles, DropItemdta item, bool isfake = false)
        {
            DropItem dropitem = DropItem.create(item);

            dropitem.lastGetTimer          = 0;
            dropitem.transform.position    = vec;
            dropitem.transform.eulerAngles = dropitem.transform.eulerAngles + eulerAngles;
            dropitem.isFake = isfake;
            return(dropitem);
        }
Exemple #5
0
        private GameObject getWeapom(DropItemdta item)
        {
            GameObject gameObject  = new GameObject();
            int        @int        = item.itemXml.getInt("job_limit");
            uint       @uint       = item.itemXml.getUint("obj");
            GameObject gameObject2 = Resources.Load <GameObject>(DropItem.weaponDorpPath[@int] + @uint);
            bool       flag        = gameObject2 == null;
            GameObject result;

            if (flag)
            {
                result = null;
            }
            else
            {
                GameObject gameObject3 = UnityEngine.Object.Instantiate <GameObject>(gameObject2);
                Transform  transform   = gameObject3.transform.FindChild("eff");
                bool       flag2       = transform != null;
                if (flag2)
                {
                    UnityEngine.Object.Destroy(transform.gameObject);
                }
                bool flag3 = @int == 5;
                if (flag3)
                {
                    GameObject gameObject4 = UnityEngine.Object.Instantiate <GameObject>(gameObject2);
                    gameObject4.transform.SetParent(gameObject.transform, false);
                    gameObject4.transform.eulerAngles = DropItem.weaponDorpRot[@int] * 1.4f;
                    gameObject4.transform.position    = DropItem.weaponDorpOffset[@int];
                    gameObject4.gameObject.layer      = EnumLayer.LM_MAP_ITEM;
                    Transform[] componentsInChildren = gameObject4.GetComponentsInChildren <Transform>();
                    for (int i = 0; i < componentsInChildren.Length; i++)
                    {
                        Transform transform2 = componentsInChildren[i];
                        transform2.gameObject.layer = EnumLayer.LM_MAP_ITEM;
                    }
                }
                gameObject3.gameObject.layer = EnumLayer.LM_MAP_ITEM;
                Transform[] componentsInChildren2 = gameObject3.GetComponentsInChildren <Transform>();
                for (int j = 0; j < componentsInChildren2.Length; j++)
                {
                    Transform transform3 = componentsInChildren2[j];
                    transform3.gameObject.layer = EnumLayer.LM_MAP_ITEM;
                }
                gameObject3.transform.SetParent(gameObject.transform, false);
                gameObject3.transform.eulerAngles = DropItem.weaponDorpRot[@int];
                gameObject.transform.localScale   = Vector3.one;
                gameObject3.transform.position    = DropItem.weaponDorpOffset[@int];
                result = gameObject;
            }
            return(result);
        }
        private GameObject getWeapom(DropItemdta item)
        {
            GameObject go      = new GameObject();
            int        job     = item.itemXml.getInt("job_limit");
            string     path    = "";
            uint       modelid = item.itemXml.getUint("obj");

            Vector3 rot;


            GameObject obj_prefab = GAMEAPI.ABModel_LoadNow_GameObject(weaponDorpPath[job] + modelid);

            if (obj_prefab == null)
            {
                return(null);
            }
            GameObject m_dropWeapon_LObj = GameObject.Instantiate(obj_prefab) as GameObject;


            Transform eff = m_dropWeapon_LObj.transform.FindChild("eff");

            if (eff != null)
            {
                GameObject.Destroy(eff.gameObject);
            }

            if (job == 5)
            {
                GameObject m_dropWeapon_LObj2 = GameObject.Instantiate(obj_prefab) as GameObject;
                m_dropWeapon_LObj2.transform.SetParent(go.transform, false);
                m_dropWeapon_LObj2.transform.eulerAngles = weaponDorpRot[job] * 1.4f;
                m_dropWeapon_LObj2.transform.position    = weaponDorpOffset[job];
                m_dropWeapon_LObj2.gameObject.layer      = EnumLayer.LM_MAP_ITEM;
                foreach (Transform tran in m_dropWeapon_LObj2.GetComponentsInChildren <Transform>())
                {
                    tran.gameObject.layer = EnumLayer.LM_MAP_ITEM;; //更改物体的Layer层
                }
            }

            m_dropWeapon_LObj.gameObject.layer = EnumLayer.LM_MAP_ITEM;
            foreach (Transform tran in m_dropWeapon_LObj.GetComponentsInChildren <Transform>())
            {
                tran.gameObject.layer = EnumLayer.LM_MAP_ITEM;; //更改物体的Layer层
            }
            m_dropWeapon_LObj.transform.SetParent(go.transform, false);
            m_dropWeapon_LObj.transform.eulerAngles = weaponDorpRot[job];
            go.transform.localScale = Vector3.one; //weaponDorpScale[job];//TODO:测试用,之前的有的物品有点小,xuyin add
            m_dropWeapon_LObj.transform.position = weaponDorpOffset[job];
            //   go.transform.eulerAngles = new Vector3(0, ConfigUtil.getRandom(-45, 45), 0);
            return(go);
        }
Exemple #7
0
        public void flygetText(DropItem item)
        {
            bool flag = item.itemdta.tpid == 0;

            if (flag)
            {
                MediaClient.instance.PlaySoundUrl("audio/common/collect_coin", false, null);
                bool flag2 = GameRoomMgr.getInstance().curRoom != null;
                if (flag2)
                {
                    GameRoomMgr.getInstance().curRoom.onPickMoney(item.itemdta.count);
                }
                bool flag3 = a3_insideui_fb.instance != null;
                if (flag3)
                {
                    this.goldnum = (uint)a3_insideui_fb.instance.addmoney;
                }
                else
                {
                    this.goldnum += (uint)item.itemdta.count;
                }
            }
            else
            {
                string @string = item.itemdta.itemXml.getString("item_name");
                int    @int    = item.itemdta.itemXml.getInt("quality");
                flytxt.instance.fly(string.Concat(new object[]
                {
                    ContMgr.getCont("gameroom_pick", null),
                    Globle.getColorStrByQuality(@string, @int),
                    "x",
                    item.itemdta.count
                }), 0, default(Color), null);
                DropItemdta dropItemdta = new DropItemdta();
                dropItemdta.tpid = item.itemdta.itemXml.getInt("id");
                dropItemdta.num  = item.itemdta.count;
                foreach (DropItemdta current in this.list2)
                {
                    bool flag4 = dropItemdta.tpid == current.tpid;
                    if (flag4)
                    {
                        current.num += item.itemdta.count;
                        return;
                    }
                }
                this.list2.Add(dropItemdta);
            }
        }
Exemple #8
0
        public void flygetText(DropItem item)
        {
            if (item.itemdta.tpid == 0)
            {
                MediaClient.instance.PlaySoundUrl("audio_common_collect_coin", false, null);
                // flytxt.instance.fly("拾取金币 " + item.itemdta.count);
                //已有金币添加飘字
                // if (a3_insideui_fb.instance != null) a3_insideui_fb.instance.SetInfMoney(item.itemdta.count);
                if (GameRoomMgr.getInstance().curRoom != null)
                {
                    GameRoomMgr.getInstance().curRoom.onPickMoney(item.itemdta.count);
                }

                //记录拾取金币
                //goldnum += (uint)item.itemdta.count;
                if (a3_insideui_fb.instance != null)
                {
                    goldnum = (uint)a3_insideui_fb.instance.addmoney;
                }
                else
                {
                    goldnum += (uint)item.itemdta.count;
                }
            }
            else
            {
                string name    = item.itemdta.itemXml.getString("item_name");
                int    quality = item.itemdta.itemXml.getInt("quality");
                flytxt.instance.fly(ContMgr.getCont("gameroom_pick") + Globle.getColorStrByQuality(name, quality) + "x" + item.itemdta.count);

                DropItemdta v = new DropItemdta();

                v.tpid = item.itemdta.itemXml.getInt("id");
                v.num  = item.itemdta.count;
                foreach (var it in list2)
                {
                    if (v.tpid == it.tpid)
                    {
                        it.num += item.itemdta.count;
                        return;
                    }
                }
                list2.Add(v);
            }
        }
        //地图掉落金币
        private void on_map_dpitem_res(Variant msg_data)
        {
            // BaseRoomItem.instance.showDropItem();

            // DropItemdta

            debug.Log("!!!!!!!!!!on_map_dpitem_res!" + msg_data.dump());


            float x = msg_data["x"]._float / GameConstant.PIXEL_TRANS_UNITYPOS;
            float y = msg_data["y"]._float / GameConstant.PIXEL_TRANS_UNITYPOS;

            if (msg_data.ContainsKey("owner_see"))
            {
                if (msg_data["owner_see"] != PlayerModel.getInstance().cid)
                {
                    return;
                }
            }

            Vector3 pos = new Vector3(x, 0f, y);

            List <Variant>     l        = msg_data["itms"]._arr;
            List <DropItemdta> lDropItm = new List <DropItemdta>();
            long timer = NetClient.instance.CurServerTimeStampMS;

            foreach (Variant v in l)
            {
                DropItemdta d = new DropItemdta();
                d.init(v, timer);
                lDropItm.Add(d);
            }

            if (BaseRoomItem.instance != null)
            {
                BaseRoomItem.instance.showDropItem(pos, lDropItm);
            }
        }
Exemple #10
0
        private int showDrop(Vector3 dropPos, int wrongcount, int idx, DropItemdta item, bool isfake = false)
        {
            if (lDropOffset.Count <= idx)
            {
                idx = 0;
            }
            Vector3 vec = dropPos + lDropOffset[idx];
            //  GameObject go = GameObject.Find("coin");
            Vector3 begin = vec;

            begin.y = -99;



            NavMeshHit hit;

            //if (NavMesh.Raycast(begin, vec, out hit, NavMesh.GetNavMeshLayerFromName("Default")))
            NavMesh.SamplePosition(vec, out hit, 100f, NavmeshUtils.allARE);
            Vector3 pos = hit.position;

            if (pos.x == vec.x && pos.z == vec.z)
            {
                vec.y = pos.y;
                DropItem itm = getDropItem(vec, Vector3.zero, item, isfake);

                DropItemUIMgr.getInstance().show(itm, itm.itemdta.getDropItemName());
                if (!isfake)
                {
                    dDropItem[item.dpid] = itm;
                    if (item.ownerId == PlayerModel.getInstance().cid || item.ownerId == 0 ||
                        (TeamProxy.getInstance().MyTeamData != null && item.ownerId == TeamProxy.getInstance().MyTeamData.teamId))
                    {
                        dDropItem_own[item.dpid] = itm;
                    }
                }
                else
                {
                    item.dpid = fakeItemIdx;
                    dDropFakeItem[item.dpid] = itm;
                    fakeItemIdx++;
                }

                return(idx + 1);
            }
            else if (wrongcount >= 3)
            {
                debug.Log(":" + item.dpid);
                DropItem itm = getDropItem(pos, Vector3.zero, item);
                DropItemUIMgr.getInstance().show(itm, itm.itemdta.getDropItemName());

                if (!isfake)
                {
                    dDropItem[item.dpid] = itm;
                    //if (item.ownerId == PlayerModel.getInstance().cid)
                    //{
                    //dDropItem_own[item.dpid] = itm;
                    if (item.ownerId == PlayerModel.getInstance().cid || item.ownerId == 0 ||
                        (TeamProxy.getInstance().MyTeamData != null && item.ownerId == TeamProxy.getInstance().MyTeamData.teamId))
                    {
                        dDropItem_own[item.dpid] = itm;
                    }
                    //}
                }
                else
                {
                    item.dpid = fakeItemIdx;
                    dDropFakeItem[item.dpid] = itm;
                    fakeItemIdx++;
                }
                return(idx + 1);
            }
            wrongcount++;
            return(showDrop(dropPos, wrongcount, idx + 1, item, isfake));
        }
        public void onChangeLevel(Variant svrconf, Variant cursvrmsg)
        {
            if (curRoom != null)
            {
                curRoom.onEnd();
                curRoom = null;
            }
            //    debug.Log("!!!!:::::::::::"+cursvrmsg.dump());



            //skillbar.setAutoFightType(0);
            uint curId = svrconf["id"];

            if (dRooms.ContainsKey(curId))
            {
                curRoom = dRooms[curId];
            }
            else if (MapModel.getInstance().curLevelId > 0)
            {
                curRoom = dRooms[9999999];
            }
            else
            {
                curRoom = dRooms[0];
            }
            curRoom.onStart(svrconf);



            if (cursvrmsg != null && cursvrmsg.ContainsKey("dpitms"))
            {
                List <Variant> dps = cursvrmsg["dpitms"]._arr;
                Dictionary <string, List <DropItemdta> > ll = new Dictionary <string, List <DropItemdta> >();
                long curtimer = NetClient.instance.CurServerTimeStampMS;
                foreach (Variant v in dps)
                {
                    int x = v["x"];
                    int y = v["y"];

                    string strpos = x + "+" + y;
                    if (!ll.ContainsKey(strpos))
                    {
                        ll[strpos] = new List <DropItemdta>();
                    }
                    DropItemdta d = new DropItemdta();
                    d.init(v, curtimer);
                    d.x = x;
                    d.y = y;
                    ll[strpos].Add(d);
                }

                foreach (List <DropItemdta> l in ll.Values)
                {
                    Vector3 ve = new Vector3((float)l[0].x / GameConstant.PIXEL_TRANS_UNITYPOS, 0f, (float)l[0].y / GameConstant.PIXEL_TRANS_UNITYPOS);
                    BaseRoomItem.instance.showDropItem(ve, l);
                }
            }

            //if (curId == 0)
            //{
            //    if (skillbar.instance != null)
            //    {
            //        skillbar.instance.autifight.visiable = false;

            //    }

            //    InterfaceMgr.getInstance().close(InterfaceMgr.MONSTER_DICT);
            //    InterfaceMgr.getInstance().changeState(InterfaceMgr.STATE_NORMAL);
            //    return;
            //}
            //if (expbar.instance != null)
            //{
            //    skillbar.instance.autifight.visiable = true;

            //}

            //SXML xml = XMLMgr.instance.GetSXML("worldcfg.world", "level_id==" + MapModel.getInstance().curLevelId);

            //bool b = xml.hasFound;
            //if (xml.hasFound)
            //{
            //    skillbar.setAutoFightType();
            //    InterfaceMgr.getInstance().open(InterfaceMgr.MONSTER_DICT);
            //    InterfaceMgr.getInstance().changeState(InterfaceMgr.STATE_FB_BATTLE);
            //}
            //else if (dRooms.ContainsKey(curId))
            //{
            //    dRooms[curId].onStart();
            //    curRoom = dRooms[curId];
            //}

            //MapProxy.getInstance().sendShowMapObj();
        }
Exemple #12
0
        private int showDrop(Vector3 dropPos, int wrongcount, int idx, DropItemdta item, bool isfake = false)
        {
            bool flag = this.lDropOffset.Count <= idx;

            if (flag)
            {
                idx = 0;
            }
            Vector3 vector  = dropPos + this.lDropOffset[idx];
            Vector3 vector2 = vector;

            vector2.y = -99f;
            NavMeshHit navMeshHit;

            NavMesh.SamplePosition(vector, out navMeshHit, 100f, NavmeshUtils.allARE);
            Vector3 position = navMeshHit.position;
            bool    flag2    = position.x == vector.x && position.z == vector.z;
            int     result;

            if (flag2)
            {
                vector.y = position.y;
                DropItem dropItem = BaseRoomItem.getDropItem(vector, Vector3.zero, item, isfake);
                DropItemUIMgr.getInstance().show(dropItem, dropItem.itemdta.getDropItemName());
                bool flag3 = !isfake;
                if (flag3)
                {
                    this.dDropItem[item.dpid] = dropItem;
                    bool flag4 = item.ownerId == ModelBase <PlayerModel> .getInstance().cid || item.ownerId == 0u || (BaseProxy <TeamProxy> .getInstance().MyTeamData != null && item.ownerId == BaseProxy <TeamProxy> .getInstance().MyTeamData.teamId);

                    if (flag4)
                    {
                        this.dDropItem_own[item.dpid] = dropItem;
                    }
                }
                else
                {
                    item.dpid = this.fakeItemIdx;
                    this.dDropFakeItem[item.dpid] = dropItem;
                    this.fakeItemIdx += 1u;
                }
                result = idx + 1;
            }
            else
            {
                bool flag5 = wrongcount >= 3;
                if (flag5)
                {
                    debug.Log(":" + item.dpid);
                    DropItem dropItem2 = BaseRoomItem.getDropItem(position, Vector3.zero, item, false);
                    DropItemUIMgr.getInstance().show(dropItem2, dropItem2.itemdta.getDropItemName());
                    bool flag6 = !isfake;
                    if (flag6)
                    {
                        this.dDropItem[item.dpid] = dropItem2;
                        bool flag7 = item.ownerId == ModelBase <PlayerModel> .getInstance().cid || item.ownerId == 0u || (BaseProxy <TeamProxy> .getInstance().MyTeamData != null && item.ownerId == BaseProxy <TeamProxy> .getInstance().MyTeamData.teamId);

                        if (flag7)
                        {
                            this.dDropItem_own[item.dpid] = dropItem2;
                        }
                    }
                    else
                    {
                        item.dpid = this.fakeItemIdx;
                        this.dDropFakeItem[item.dpid] = dropItem2;
                        this.fakeItemIdx += 1u;
                    }
                    result = idx + 1;
                }
                else
                {
                    wrongcount++;
                    result = this.showDrop(dropPos, wrongcount, idx + 1, item, isfake);
                }
            }
            return(result);
        }