예제 #1
0
        static int _m_IsCanOpenMinimap_xlua_st_(RealStatePtr L)
        {
            try {
                {
                    bool __cl_gen_ret = MiniMapHelp.IsCanOpenMinimap(  );
                    LuaAPI.lua_pushboolean(L, __cl_gen_ret);



                    return(1);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
예제 #2
0
        public void CreateTranspotPoint()
        {
            var list = MiniMapHelp.GetInstanceAllTrasnspot(m_CurSceneId);

            for (int i = 0; i < list.Count; i++)
            {
                var     info = list[i];
                var     rect = GetItem(m_TranspotPoint);
                Vector3 vect = new Vector3((info.Position.x - minX) / uiScalex, (info.Position.z - minY) / uiScaley, 0);
                rect.localPosition = vect;
                Button btn = rect.GetComponent <Button>();
                btn.onClick.RemoveAllListeners();
                btn.onClick.AddListener(() => { OnClickTranspotPoint(info); });
                mTranspotListPointObjs.Add(rect.gameObject);
            }
        }
예제 #3
0
        static int __CreateInstance(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);

            try {
                if (LuaAPI.lua_gettop(L) == 1)
                {
                    MiniMapHelp __cl_gen_ret = new MiniMapHelp();
                    translator.Push(L, __cl_gen_ret);
                    return(1);
                }
            }
            catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
            return(LuaAPI.luaL_error(L, "invalid arguments to MiniMapHelp constructor!"));
        }
예제 #4
0
        static int _m_isMapOpen_xlua_st_(RealStatePtr L)
        {
            try {
                {
                    uint mapid = LuaAPI.xlua_touint(L, 1);

                    bool __cl_gen_ret = MiniMapHelp.isMapOpen(mapid);
                    LuaAPI.lua_pushboolean(L, __cl_gen_ret);



                    return(1);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
예제 #5
0
        /// <summary>
        /// 创建挂机点怪物和特殊怪物(世界boss)位置的UI物体
        /// </summary>
        public void CreateMonsterPoint()
        {
            var monster_infos = MiniMapHelp.GetInstanceAllNormalMonster(m_CurSceneId);

            WorldBossList.Clear();
            for (int i = 0; i < monster_infos.Count; i++)
            {
                var     info = monster_infos[i];
                var     rect = GetItem(m_MonsterPoint);
                Vector3 vect = new Vector3((info.Position.x - minX) / uiScalex, (info.Position.z - minY) / uiScaley, 0);
                rect.localPosition = vect;
                Text   nameText   = UIHelper.FindChild(rect.gameObject, "NameText").GetComponent <Text>();
                var    monster1   = UIHelper.FindChild(rect.gameObject, "MonsterType1");
                var    monster2   = UIHelper.FindChild(rect.gameObject, "MonsterType2");
                var    monster3   = UIHelper.FindChild(rect.gameObject, "MonsterType3");
                var    bossDead   = UIHelper.FindChild(rect.gameObject, "BossDead");
                Button moneterBtn = rect.GetComponent <Button>();
                moneterBtn.onClick.RemoveAllListeners();
                moneterBtn.onClick.AddListener(() => { OnClickMonsterPoint(info); });
                monster1.SetActive(false);
                monster2.SetActive(false);
                monster3.SetActive(false);
                bossDead.SetActive(false);

                string blackLv = ActorHelper.GetColorLvDiff(info.ActorId, 1);
                switch (info.PointType)
                {
                case MiniMapPointType.Monster:
                case MiniMapPointType.EliteMonster:
                    monster2.SetActive(true);
                    nameText.text = info.BlackName;
                    break;

                case MiniMapPointType.Boss:
                    monster3.SetActive(true);
                    WorldBossList.Add(info.Id, info);
                    nameText.text = string.Format("{0}\n{1}", info.BlackName, blackLv);
                    break;
                }

                mMonsterListPointObjs.Add(info.Id, rect.gameObject);
            }
        }
예제 #6
0
        private void OnMainMapLoad(CEventBaseArgs args)
        {
            InstanceOpenState.Clear();
            List <Dictionary <string, string> > data_world = DBManager.Instance.QuerySqliteTable <string>(GlobalConfig.DBFile, "data_world");

            for (int i = 0; i < data_world.Count; i++)
            {
                Dictionary <string, string> data = data_world[i];
                uint mapId        = DBTextResource.ParseUI_s(data["map_id"], 0);
                var  instanceInfo = DBInstance.Instance.GetInstanceInfo(mapId);
                if (instanceInfo != null)
                {
                    InstaneOpenState state  = InstaneOpenState.NotOpen;
                    bool             isOpen = MiniMapHelp.isMapOpen(mapId);
                    if (isOpen)
                    {
                        state = InstaneOpenState.Open;
                    }
                    InstanceOpenState.Add(mapId, state);
                }
            }
        }
예제 #7
0
        public void CreateNpcPoint()
        {
            var List = MiniMapHelp.GetInstanceAllNpc(m_CurSceneId);

            for (int i = 0; i < List.Count; i++)
            {
                var  info  = List[i];
                uint state = NpcHelper.GetNpcTaskState((uint)info.Id, m_CurSceneId);//npcId
                if (IsDisplayNpcByTaskState(state))
                {
                    var rect = GetItem(m_NpcPoint);
                    UpdateOneNpc(state, rect.gameObject);
                    Vector3 vect = new Vector3((info.Position.x - minX) / uiScalex, (info.Position.z - minY) / uiScaley, 0);
                    rect.localPosition = vect;
                    Text nameText = UIHelper.FindChild(rect.gameObject, "NameText").GetComponent <Text>();
                    nameText.text = info.BlackName;
                    Button btn = rect.GetComponent <Button>();
                    btn.onClick.RemoveAllListeners();
                    btn.onClick.AddListener(() => { OnClickNpcPoint(info); });
                    mNpcListPointObjs.Add((uint)info.Id, rect.gameObject);
                }
            }
        }
예제 #8
0
        public override void EnableBehaviour(bool isEnable)
        {
            base.EnableBehaviour(isEnable);

            m_bNetAnswer = false;
            m_CurSceneId = SceneHelp.Instance.CurSceneID;

            if (isEnable)         // 显示
            {
                uint pos_tag = 0; // 指定的挂机点位置Tag
                if (Window != null && Window.ShowParam != null)
                {
                    if (Window.ShowParam.Length >= 1)
                    {
                        if ((bool)Window.ShowParam[0] == true) // 标识需要通过离线挂机表来寻找合适的场景和挂机点
                        {
                            var hang_info = DBHang.Instance.GetSuitableHangInfo();
                            if (hang_info != null)
                            {
                                m_CurSceneId = hang_info.Dungeon;
                                pos_tag      = hang_info.GetRandomTag().Id;
                            }
                        }
                    }
                }

                DBInstance.InstanceInfo instanceInfo = DBInstance.Instance.GetInstanceInfo(m_CurSceneId);
                if (instanceInfo != null)
                {
                    minX     = instanceInfo.mMinPos.x;
                    minY     = instanceInfo.mMinPos.y;
                    uiScalex = instanceInfo.mMiniMapWidth / mMiniMapRawImage.rectTransform.rect.width;
                    uiScaley = instanceInfo.mMiniMapHeight / mMiniMapRawImage.rectTransform.rect.height;
                    LoadMiniMapTexture(instanceInfo.mMiniMapName);
                }


                LocalCenter();
                ClearPoint();
                CreateMonsterPoint();
                CreateTranspotPoint();
                CreateNpcPoint();

                if (TargetPathManager.Instance.IsNavigating)
                {
                    CreatePathPoint();
                }

                UpdateRequsetTeam(null);
                UpdateWorldBossState(null);

                bool isInCurScene = SceneHelp.Instance.CurSceneID.Equals(m_CurSceneId);
                m_LocalPlayerPoint.SetActive(isInCurScene);
                m_LocalPlayerPoint.transform.SetAsLastSibling();
                MonsterTipsTrigger.transform.SetAsLastSibling();

                // 寻找指定的挂机点
                var monster_infos = MiniMapHelp.GetInstanceAllNormalMonster(m_CurSceneId);
                for (int i = 0; i < monster_infos.Count; i++)
                {
                    var info = monster_infos[i];
                    if (info == null)
                    {
                        continue;
                    }

                    if (info.Id == pos_tag)
                    {
                        OnClickMonsterPoint(info);
                        break;
                    }
                }
            }
            else// 隐藏
            {
                ClearPathPoint();
                ClearPoint();
                MonsterTipsTrigger.gameObject.SetActive(false);
            }
        }
예제 #9
0
        static int _m_GetInstanceAllNpc_xlua_st_(RealStatePtr L)
        {
            ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L);



            try {
                {
                    uint instance_id = LuaAPI.xlua_touint(L, 1);

                    System.Collections.Generic.List <MiniMapPointInfo> __cl_gen_ret = MiniMapHelp.GetInstanceAllNpc(instance_id);
                    translator.Push(L, __cl_gen_ret);



                    return(1);
                }
            } catch (System.Exception __gen_e) {
                return(LuaAPI.luaL_error(L, "c# exception:" + __gen_e));
            }
        }
예제 #10
0
        public void UpdateState(Task mainTask)
        {
            LocalPlayerLevel = LocalPlayerManager.Instance.Level;

            if (mainTask != null && mainTask.Define != null)
            {
                MaintaskId = mainTask.Define.Id;
            }

            foreach (var kv in mMapGoDic)
            {
                DBInstance.InstanceInfo instanceInfo = DBInstance.Instance.GetInstanceInfo((uint)kv.Key);

                if (instanceInfo != null)
                {
                    // 设置区域名字
                    Text          name_text  = UIHelper.FindChild(kv.Value, "NameText").GetComponent <Text>();
                    string        inst_name  = instanceInfo.mName;
                    StringBuilder align_name = new StringBuilder(inst_name.Length * 2);
                    foreach (var c in inst_name)
                    {
                        align_name.Append(c);
                        align_name.Append('\n');
                    }

                    name_text.text = align_name.ToString();

                    bool isOpen = MiniMapHelp.isMapOpen((uint)kv.Key);

                    // 背景图片
                    var bgImage = kv.Value.GetComponent <Image>();

                    // 设置开启等级信息
                    uint need_level = InstanceHelper.GetInstanceNeedRoleLevel((uint)kv.Key);
                    Text level_text = UIHelper.FindChild(kv.Value, "LevelText").GetComponent <Text>();

                    string peakLvDesc = GetPeakLvDesc(need_level);
                    if (!isOpen)
                    {
                        peakLvDesc = "<color=#ff0000>" + peakLvDesc + "</color>";

                        SetMapPointImgState(bgImage, true);
                    }
                    else
                    {
                        SetMapPointImgState(bgImage, false);
                    }

                    level_text.text = peakLvDesc;

                    // 设置当前是否可开启的标记
                    GameObject lock_object = UIHelper.FindChild(kv.Value, "Lock");
                    lock_object.SetActive(!isOpen);

                    // 根据pk区域设置不同的图标
                    var        stateNode    = UIHelper.FindChild(kv.Value, "State");
                    GameObject free_pk_area = UIHelper.FindChild(kv.Value, "FreePkArea");
                    GameObject no_safe_area = UIHelper.FindChild(kv.Value, "NoSafeArea");

                    stateNode.SetActive(isOpen);

                    int pk_type = instanceInfo.mPKType;
                    switch (pk_type)
                    {
                    case GameConst.SCENE_PK_COMMON:
                    {
                        no_safe_area.SetActive(true);
                        free_pk_area.SetActive(false);
                        //pkStr = "<color=#ffeb07>非安全区域</color>";
                        break;
                    }

                    case GameConst.SCENE_PK_DANGER:
                    {
                        free_pk_area.SetActive(true);
                        no_safe_area.SetActive(false);
                        //pkStr = "<color=#ff0000>PK区域</color>";
                        break;
                    }

                    default:
                    {
                        free_pk_area.SetActive(false);
                        no_safe_area.SetActive(false);
                        //pkStr = "安全区域";
                        break;
                    }
                    }
                }
            }
        }