コード例 #1
0
        public override void EnableBehaviour(bool isEnable)
        {
            base.EnableBehaviour(isEnable);

            m_bNetAnswer = false;
            ClearPoint();

            if (!isEnable)
            {
                return;
            }

            DBInstance.InstanceInfo instanceInfo = DBInstance.Instance.GetInstanceInfo(SceneHelp.Instance.CurSceneID);
            if (instanceInfo != null)
            {
                m_minX     = instanceInfo.mMinPos.x;
                m_minY     = instanceInfo.mMinPos.y;
                m_uiScalex = instanceInfo.mMiniMapWidth / m_minimapRawImage.rectTransform.rect.width;
                m_uiScaley = instanceInfo.mMiniMapHeight / m_minimapRawImage.rectTransform.rect.height;
                LoadMiniMapTexture(instanceInfo.mMiniMapName);
            }

            RefreshPosition();
            OnTeamInfoChange(null);

            m_localPlayerPoint.transform.SetAsLastSibling();
        }
コード例 #2
0
ファイル: Player.cs プロジェクト: wuhuolong/MaxBooks
    /// <summary>
    /// 创建宠物
    /// </summary>
    /// <returns></returns>
    protected void CreatePet()
    {
        DBInstance.InstanceInfo instanceInfo = InstanceManager.Instance.InstanceInfo;
        if (instanceInfo != null)
        {
            if (DBInstanceTypeControl.Instance.ForbidPet(instanceInfo.mWarType, instanceInfo.mWarSubType))
            {
                return;
            }
        }

        uint pet_id = CurrentPetInfo.pet_id;

        if (pet_id == 0)
        {
            return;
        }

        //uint level = CurrentPetInfo.level;

        //通过宠物ID查找角色ID
        DBPet pet_csv = DBManager.GetInstance().GetDB <DBPet>();

        DBPet.PetInfo pet = pet_csv.GetOnePetInfo(pet_id);
        if (pet != null)
        {
            uint actorId = pet.Actor_id;
            CurrentPet = ActorManager.Instance.CreatePet(pet_id, actorId, this.transform.position, this.transform.rotation, this);
        }
    }
コード例 #3
0
 public void Set(uint id, uint num)
 {
     mId = id;
     DBInstance.InstanceInfo info = DBManager.Instance.GetDB <DBInstance>().GetInstanceInfo(id);
     if (id == GameConstHelper.GetUint("GAME_WILD_DUNGEON_PRIMARY_ID"))
     {
         labelName.text = info.mName + string.Format(DBConstText.GetText("PRIMARY_TITLE_SUFFIX"), GameConstHelper.GetUint("GAME_WILD_PRIMARY_BATTLE_POWER"));
     }
     else
     {
         labelName.text = info.mName;
     }
     UIWIldSwitchLine.SetAmount(spriteProgress, num);
     if (WildManager.Instance.mCurrentLineId == id)
     {
         goHead.SetActive(true);
         RoleHelp.GetIconName(Game.GetInstance().LocalPlayerTypeID, texHead);
         goButton.SetActive(false);
     }
     else
     {
         goHead.SetActive(false);
         goButton.SetActive(true);
         if (id == WildManager.Instance.mCurrentWaitingLineId)
         {
             lableButton.text = xc.DBConstText.GetText("IN_QUEUE");
         }
         else
         {
             lableButton.text = xc.DBConstText.GetText("GOTO");
         }
     }
 }
コード例 #4
0
ファイル: MiniMapHelp.cs プロジェクト: wuhuolong/MaxBooks
 //是否能打开地图
 public static bool IsCanOpenMinimap()
 {
     DBInstance.InstanceInfo instanceInfo = DBInstance.Instance.GetInstanceInfo(SceneHelp.Instance.CurSceneID);
     if (instanceInfo == null)
     {
         return(false);
     }
     return(instanceInfo.mIsCanOpenMiniMap);
 }
コード例 #5
0
ファイル: InstanceHelper.cs プロジェクト: wuhuolong/MaxBooks
    /// <summary>
    /// 获取副本名字
    /// </summary>
    public static string GetInstanceName(uint instanceId)
    {
        DBInstance.InstanceInfo instanceInfo = DBInstance.Instance.GetInstanceInfo(instanceId);
        if (instanceInfo != null)
        {
            return(instanceInfo.mName);
        }

        return(string.Empty);
    }
コード例 #6
0
ファイル: InstanceHelper.cs プロジェクト: wuhuolong/MaxBooks
    /// <summary>
    /// 得到玩家进入副本需要的等级
    /// </summary>
    /// <param name="instanceId"></param>
    /// <returns></returns>
    public static uint GetInstanceNeedRoleLevel(uint instanceId)
    {
        DBInstance.InstanceInfo instanceInfo = DBInstance.Instance.GetInstanceInfo(instanceId);
        uint needLv = 0;

        if (instanceInfo != null)
        {
            needLv = instanceInfo.mNeedLv;
        }

        return(needLv);
    }
コード例 #7
0
ファイル: UI3DText.cs プロジェクト: wuhuolong/MaxBooks
 public void ShowTeamIcon(string spriteName, bool isShow)
 {
     DBInstance.InstanceInfo instanceInfo = InstanceManager.Instance.InstanceInfo;
     if (mHudActorWin != null && mTeamIconImage != null && instanceInfo != null)
     {
         if (DBInstanceTypeControl.Instance.HideTeam(instanceInfo.mWarType, instanceInfo.mWarSubType))
         {
             mTeamIconImage.gameObject.SetActive(false);
             return;
         }
         mTeamIconImage.sprite = mHudActorWin.LoadSprite(spriteName);
         mTeamIconImage.gameObject.SetActive(isShow);
     }
 }
コード例 #8
0
ファイル: MateButton.cs プロジェクト: wuhuolong/MaxBooks
 public bool CanShowMateButton()
 {
     if (mCanNotShowWarList == null)
     {
         mCanNotShowWarList = xc.GameConstHelper.GetUintList("GAME_SHOW_MATE_BUTTON_WAR_TYPE");
     }
     DBInstance.InstanceInfo instanceInfo = InstanceManager.Instance.InstanceInfo;
     if (instanceInfo != null && mCanNotShowWarList != null)
     {
         for (int i = 0; i < mCanNotShowWarList.Count; i++)
         {
             if (mCanNotShowWarList[i] == instanceInfo.mWarSubType)
             {
                 return(false);
             }
         }
     }
     return(true);
 }
コード例 #9
0
ファイル: InstanceHelper.cs プロジェクト: wuhuolong/MaxBooks
    /// <summary>
    /// 检查是否满足进入副本所推荐的属性
    /// </summary>
    public static bool CheckInstanceEnterAttrs(DBInstance.InstanceInfo instanceInfo)
    {
        if (instanceInfo != null)
        {
            Dictionary <uint, uint> recommendAttrs = instanceInfo.mRecommendAttrs;
            if (recommendAttrs != null)
            {
                foreach (KeyValuePair <uint, uint> recommendAttr in recommendAttrs)
                {
                    long curValue = LocalPlayerManager.Instance.LocalActorAttribute.Attribute[recommendAttr.Key].Value;
                    if (curValue < recommendAttr.Value)
                    {
                        return(false);
                    }
                }
            }
        }

        return(true);
    }
コード例 #10
0
ファイル: InstanceHelper.cs プロジェクト: wuhuolong/MaxBooks
    /// <summary>
    /// 武神塔对应副本的名字
    /// </summary>
    /// <param name="id"></param>
    /// <returns></returns>
    public static string GetKungfuGodInstanceName(uint id)
    {
        List <string> data_secret_area = DBManager.Instance.QuerySqliteField <string>(GlobalConfig.DBFile, "data_secret_area", "id", id.ToString(), "dgn_id");

        if (data_secret_area.Count == 0)
        {
            return("");
        }

        uint instanceId = 0;

        uint.TryParse(data_secret_area[0], out instanceId);
        DBInstance.InstanceInfo instanceInfo = DBInstance.Instance.GetInstanceInfo(instanceId);
        if (instanceInfo != null)
        {
            return(instanceInfo.mName);
        }

        return("");
    }
コード例 #11
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);
            }
        }
コード例 #12
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;
                    }
                    }
                }
            }
        }