Esempio n. 1
0
    public void RefreshWinInfo(int fbid, int costTime, int restHp)
    {
        MapCfg mapCfg = resSvc.GetMapCfg(fbid);

        txtReward.text = "关卡奖励:" + mapCfg.exp + "经验 " + mapCfg.coin + "金币 " + mapCfg.crystal + "水晶";
        txtRestHp.text = "剩余血量:" + restHp;

        int second = costTime / 1000;
        int min    = second / 60;

        second = second % 60;
        if (min >= 10)
        {
            txtTime.text = "通关时间:" + min + ":";
        }
        else
        {
            txtTime.text = "通关时间:0" + min + ":";
        }
        if (second >= 10)
        {
            txtTime.text += second;
        }
        else
        {
            txtTime.text += "0" + second;
        }
    }
Esempio n. 2
0
    /// <summary>
    /// 进入主城
    /// </summary>
    public void EnterMainCity()
    {
        MapCfg mapData = resSvc.GetMapCfgData(Constants.MainCityMapID);

        resSvc.AsyncLoadScene(mapData.sceneName, () => {
            PECommon.Log("Enter MainCity...");

            //TODO加载主角
            LoadPlayer(mapData);
            //打开主城UI
            mainCityWnd.SetWndState(true);
            // mainCityWnd.RefreshUI();

            //播放主城音乐
            audioSvc.PlayBGMusic(Constants.MainCityBgm);

            //TODO 设置人物相机
            if (charshowTran != null)
            {
                charshowTran.gameObject.SetActive(false);
            }

            GameObject map  = GameObject.FindGameObjectWithTag("MapRoot");
            MainCityNPC mcm = map.GetComponent <MainCityNPC>();
            npcPosTrans     = mcm.npcPos;
        });
    }
Esempio n. 3
0
    private void OnEnterMainCity()
    {
        NETCommon.Log("Enter MainCity...");

        // 打开主城场景UI
        mainCityWindow.SetWindowState();

        // 播放主城背景音乐
        audioSev.PlayBGM(Constans.MainCityBGM);

        GameObject  map     = GameObject.FindGameObjectWithTag("MapRoot");
        MainCityMap cityMap = map.GetComponent <MainCityMap>();

        npcPosTrans = cityMap.NPCPosTrans;

        MapCfg mapData = resSev.GetMapCfgData(Constans.MainCityID);

        // 加载游戏主角
        LoadPlayer(mapData);
        // 设置角色展示相机
        if (charShowCamTrans != null)
        {
            charShowCamTrans.gameObject.SetActive(false);
        }
    }
Esempio n. 4
0
 public void IntoCombat(int combat, string scenesName, int mapId)
 {
     //进入副本
     mGameWin.SkillCDInit();
     mGameWin.HideOnOff(0);
     mCustomsPassWin.isShow(false);
     RoleHp = mCurrentRole.hp;
     mGameWin.SetRoleHp(1, RoleHp);
     ResSvc.intance.AsyncLoadScene(scenesName, () =>
     {
         SceneName = scenesName;
         mGameWin.ShowRoleHp(true);
         mGameWin.HideOnOff();
         //加载游戏主角
         MapCfg mapData = ResSvc.intance.GetMapData(mapId);
         SceneCombarId  = mapId;
         MainGameSys.instance.LoadPlayer(mapData, MainGameSys.instance.mCurrentRole.profession);
         mGameWin.CombatState();
         mPlayerCont.AnimCombat();
         isCity = false;
         CombatSys.instance.isCombat = true;
         //切换BGM
         AudioSvc.instance.PlayBgClip(GameConstant.忍龙BGM, true, 1);
         //发送消息通知服务器进入副本了
         CombatSys.instance.IntoCombat(combat);
         string data = string.Format("{0},{1},", GameRoot.instance.mUser.id.ToString(), ((int)mCurrentRole.profession).ToString());
         NetSvc.instance.SendSys(GameSys.步, MethodController.JoinCombart, data);
     });
 }
Esempio n. 5
0
    private void InitMapCfg(string path)
    {
        XmlDocument doc = new XmlDocument();

        doc.Load(path);

        XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes;

        for (int i = 0; i < nodLst.Count; i++)
        {
            XmlElement ele = nodLst[i] as XmlElement;

            if (ele.GetAttributeNode("ID") == null)
            {
                continue;
            }
            int    ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText);
            MapCfg mc = new MapCfg
            {
                ID = ID
            };

            foreach (XmlElement e in nodLst[i].ChildNodes)
            {
                switch (e.Name)
                {
                case "power":
                    mc.power = int.Parse(e.InnerText);
                    break;
                }
            }
            mapDic.Add(ID, mc);
        }
        PECommon.Log("MapCfg Init Done.");
    }
Esempio n. 6
0
    //加载玩家
    private void LoadPlayer(MapCfg mapData)
    {
        GameObject player = resSvc.LoadPrefab(PathDefine.AssassinBattlePlayerPrefab);

        player.transform.position         = mapData.playerBornPos;
        player.transform.localEulerAngles = mapData.playerBornRote;
        player.transform.localScale       = Vector3.one;

        PlayerController playerCtrl = player.GetComponent <PlayerController>();

        playerCtrl.Init();

        PlayerData  pd    = GameRoot.instance.playerData;
        BattleProps props = new BattleProps()
        {
            hp       = pd.hp,
            ad       = pd.ad,
            ap       = pd.ap,
            addef    = pd.addef,
            apdef    = pd.apdef,
            dodge    = pd.dodge,
            pierce   = pd.pierce,
            critical = pd.critical,
        };

        //生成角色赋予 状态管理器
        entityPlayer = new EntityPlayer();
        entityPlayer.SetBattleProps(props);
        entityPlayer.SetBattleMgr(this);         //添加战斗管理器
        entityPlayer.SetStateMgr(this.stateMgr); //添加状态管理器
        entityPlayer.SetSkillMgr(this.skillMgr); //添加技能管理器
        entityPlayer.SetController(playerCtrl);  //添加角色控制器
        entityPlayer.Idle();
    }
Esempio n. 7
0
    private void RefreshUI()
    {
        switch (endType)
        {
        case FBEndType.Pause:
            SetActive(rewardTrans, false);
            SetActive(btnExit, true);
            SetActive(btnClose, true);
            break;

        case FBEndType.Win:
            SetActive(rewardTrans, false);
            SetActive(btnExit, false);
            SetActive(btnClose, false);

            MapCfg cfg     = resSvc.GetMapCfgData(fbid);
            int    min     = costtime / 60;
            int    sec     = costtime % 60;
            int    coin    = cfg.coin;
            int    exp     = cfg.exp;
            int    crystal = cfg.crystal;
            SetText(txtTime, "通关时间:" + min + ":" + sec);
            SetText(txtRestHP, "剩余血量:" + resthp);
            SetText(txtReward, "关卡奖励:" + Constants.Color(coin + "金币", TxtColor.Green) + Constants.Color(exp + "经验", TxtColor.Yellow) + Constants.Color(crystal + "水晶", TxtColor.Blue));

            timerSvc.AddTimeTask((int tid) =>
            {
                SetActive(rewardTrans, true);
                ani.Play();

                timerSvc.AddTimeTask((int tid1) =>
                {
                    audioSvc.PlayUIAudio(Constants.FBItemEnter);

                    timerSvc.AddTimeTask((int tid2) =>
                    {
                        audioSvc.PlayUIAudio(Constants.FBItemEnter);

                        timerSvc.AddTimeTask((int tid3) =>
                        {
                            audioSvc.PlayUIAudio(Constants.FBItemEnter);

                            timerSvc.AddTimeTask((int tid4) =>
                            {
                                audioSvc.PlayUIAudio(Constants.FBLogoEnter);
                            }, 300);
                        }, 270);
                    }, 270);
                }, 325);
            }, 1000);
            break;

        case FBEndType.Lose:
            SetActive(rewardTrans, false);
            SetActive(btnExit, true);
            SetActive(btnClose, false);
            audioSvc.PlayUIAudio(Constants.FBLose);
            break;
        }
    }
Esempio n. 8
0
    private void LoadPlayer(MapCfg mapData)
    {
        GameObject player = resSvc.LoadPrefab(PathDefine.AssissnBattlePlayerPrefab);

        player.transform.position         = mapData.playerBornPos;
        player.transform.localEulerAngles = mapData.playerBornRote;
        player.transform.localScale       = Vector3.one;

        PlayerData  pd    = GameRoot.Instance.PlayerData;
        BattleProps props = new BattleProps {
            hp       = pd.hp,
            ad       = pd.ad,
            ap       = pd.ap,
            addef    = pd.addef,
            apdef    = pd.apdef,
            dodge    = pd.dodge,
            pierce   = pd.pierce,
            critical = pd.critical
        };

        entitySelfPlayer = new EntityPlayer {
            battleMgr = this,
            stateMgr  = stateMgr,
            skillMgr  = skillMgr
        };
        entitySelfPlayer.Name = "AssassinBattle";
        entitySelfPlayer.SetBattleProps(props);

        PlayerController playerCtrl = player.GetComponent <PlayerController>();

        playerCtrl.Init();
        entitySelfPlayer.SetCtrl(playerCtrl);
    }
Esempio n. 9
0
    private void InitMapCfg()
    {
        XmlDocument doc = new XmlDocument();

        doc.Load(@"D:\WENJIAN\Unity\Projects\DarkGod\Client\Assets\Resources\ResCfgs\map.xml");

        XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes;

        for (int i = 0; i < nodLst.Count; i++)
        {
            XmlElement ele = nodLst[i] as XmlElement;

            if (ele.GetAttributeNode("ID") == null)
            {
                continue;
            }
            int    id = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText);
            MapCfg mc = new MapCfg
            {
                ID = id
            };
            foreach (XmlElement e in nodLst[i].ChildNodes)
            {
                switch (e.Name)
                {
                case "power":
                    mc.power = int.Parse(e.InnerText);
                    break;
                }
            }
            mapDic.Add(id, mc);
        }
    }
Esempio n. 10
0
    public void EnterMainCity()
    {
        MapCfg mapData = resSvc.GetMapCfg(Constants.MainCityMapID);

        resSvc.AsyncLoadScene(mapData.sceneName, () => {
            PECommon.Log("Enter MainCity...");

            // 加载游戏主角
            LoadPlayer(mapData);

            //打开主城场景UI
            maincityWnd.SetWndState();

            //播放主城背景音乐
            audioSvc.PlayBGMusic(Constants.BGMainCity);

            GameObject map  = GameObject.FindGameObjectWithTag("MapRoot");
            MainCityMap mcm = map.GetComponent <MainCityMap>();
            npcPosTrans     = mcm.NpcPosTrans;

            //设置人物展示相机
            if (charCamTrans != null)
            {
                charCamTrans.gameObject.SetActive(false);
            }
        });
    }
Esempio n. 11
0
    /// <summary>
    /// 进入主城
    /// </summary>
    public void EnterMainCity()
    {
        MapCfg mapData = resSvc.GetMapCfgData(Constants.MainCityMapID);

        resSvc.AsyncLoadScene(mapData.sceneName, () =>
        {
            Common.Log("Enter MainCity...");

            //角色加载
            LoadPlayer(mapData);

            //UI Audio
            mainCityWnd.SetWndState();
            audioSvc.PlayBGMusic(Constants.BGMainCity);

            //角色观察相机
            if (charCamTrans == null)
            {
                charCamTrans = GameObject.FindWithTag("CharShowCam").transform;
            }
            charCamTrans.gameObject.SetActive(false);

            //npc位置
            GameObject mapRoot = GameObject.Find("MapRoot");
            npcPosTrans        = mapRoot.GetComponent <MainCityMap>().NPCPosTrans;
        });
    }
Esempio n. 12
0
    public void EnterMainCity()
    {
        MapCfg mapData = resSvc.GetMapCfgData(Constants.MainCityID);

        resSvc.AsyncLoadScene(mapData.sceneName, () => {
            Common.Log(GetType() + "/EnterMainCity()/Enter MainCity...");

            // 加载游戏主角
            LoadPlayer(mapData);

            // 用玩家身上的声音监听,禁用GameRoot的
            GameRoot.Instance.GetComponent <AudioListener>().enabled = false;

            // 打开主城的UI
            mainCityWnd.SetWndState(true);

            //播放主城背景音乐
            audioSvc.PlayBGAudio(Constants.BGMainCity);

            GameObject map  = GameObject.FindGameObjectWithTag("MapRoot");
            MainCityMap mcm = map.GetComponent <MainCityMap>();
            Debug.Log(GetType() + "/EnterMainCity()/ map : " + map.gameObject.name);

            npcPosTrans = mcm.NpcPosTrans;

            // 设置任务展示相机
            if (CharCamTrans != null)
            {
                CharCamTrans.gameObject.SetActive(false);
            }
        });
    }
Esempio n. 13
0
    public void ReqEndBattle(MsgPack packMsg)
    {
        RequestEndBattle data = packMsg._msg.reqEndBattle;

        NetMsg netMsg = new NetMsg
        {
            cmd = (int)MsgCommand.Cmd_RspEndBattle,
        };

        //校验是否合法
        if (data.bWin)
        {
            if (data.costTime > 20 && data.leftHp > 0)
            {
                MapCfg     mapCfg     = cfgSvc.GetMapCfgData(data.chapterID);
                PlayerData playerData = cacheSvc.GetPlayerDataBySession(packMsg._session);

                if (playerData != null && mapCfg != null)
                {
                    TaskRewardSys.Instance.CalcTaskProgress(playerData, Constants.cTask_Copyer);
                    playerData.coin     += mapCfg.rewardCoin;
                    playerData.critical += mapCfg.rewardCrystal;
                    CommonTools.CalcExp(playerData, mapCfg.rewardExp);

                    if (playerData.curChapter == data.chapterID)
                    {
                        playerData.curChapter += 1;
                    }

                    if (!cacheSvc.UpdatePlayerData(playerData.id, playerData))
                    {
                        netMsg.err = (int)ErroCode.Error_UpdateDB;
                    }
                    else
                    {
                        ResponseEndBattle rspData = new ResponseEndBattle
                        {
                            bWin      = data.bWin,
                            chapterID = data.chapterID,
                            costTime  = data.costTime,
                            leftHp    = data.leftHp,
                            coin      = playerData.coin,
                            lv        = playerData.lv,
                            exp       = playerData.exp,
                            crystal   = playerData.crystal,
                            progress  = playerData.curChapter
                        };

                        netMsg.rspEndBattle = rspData;
                    }
                }
            }
        }
        else
        {
            netMsg.err = (int)ErroCode.Error_ClientData;
        }

        packMsg._session.SendMsg(netMsg);
    }
Esempio n. 14
0
    public void Init(int mapid)
    {
        resSvc   = ResSvc.Instance;
        audioSvc = AudioSvc.Instance;

        //初始化各管理器
        stateMgr = gameObject.AddComponent <StateMgr>();
        stateMgr.Init();
        skillMgr = gameObject.AddComponent <SkillMgr>();
        skillMgr.Init();

        //加载战场地图
        MapCfg mapData = resSvc.GetMapCfg(mapid);

        resSvc.AsyncLoadScene(mapData.sceneName, () => {
            //初始化地图数据
            GameObject map = GameObject.FindGameObjectWithTag("MapRoot");
            mapMgr         = map.GetComponent <MapMgr>();
            mapMgr.Init();

            map.transform.localPosition = Vector3.zero;
            map.transform.localScale    = Vector3.one;

            Camera.main.transform.position         = mapData.mainCamPos;
            Camera.main.transform.localEulerAngles = mapData.mainCamRote;

            LoadPlayer(mapData);
            entitySelfPlayer.Idle();

            audioSvc.PlayBGMusic(Constants.BGHuangYe);
        });
    }
Esempio n. 15
0
    public void Init(int mapid, Action cb = null)
    {
        TriggerCheck = true;
        IsPauseGame  = false;
        //初始化各管理器
        m_StateMgr.Init();
        m_SkillMgr.Init();

        //加载战场地图
        m_MapCfg = GameEntry.Res.GetMapCfg(mapid);
        //初始化地图数据
        //GameObject map = GameObject.FindGameObjectWithTag("MapRoot");
        m_MapMgr = GameObject.FindObjectOfType <MapMgr>();
        m_MapMgr.Init(this);
        monsterDic.Clear();

        Camera.main.transform.position         = m_MapCfg.mainCamPos;
        Camera.main.transform.localEulerAngles = m_MapCfg.mainCamRote;

        LoadPlayer();


        //GameEntry.Sound.PlayUISound(Constants.BGHuangYe);
        if (cb != null)
        {
            cb();
        }
    }
Esempio n. 16
0
    public void Init(int mapId)
    {
        resSev   = ResSev.Instance;
        audioSev = AudioSev.Instance;

        stateMgr = gameObject.AddComponent <StateMgr>();
        skillMgr = gameObject.AddComponent <SkillMgr>();

        stateMgr.Init();
        skillMgr.Init();

        mapCfg = resSev.GetMapCfgData(mapId);
        resSev.AsyncLoadScene(mapCfg.sceneName, () =>
        {
            GameObject map = GameObject.FindGameObjectWithTag("MapRoot");
            mapMgr         = map.GetComponent <MapMgr>();
            mapMgr.Init(this);

            map.transform.localPosition = Vector3.zero;
            map.transform.localScale    = Vector3.one;

            Camera.main.transform.position         = mapCfg.mainCamPos;
            Camera.main.transform.localEulerAngles = mapCfg.mainCamRote;

            LoadPlayer(mapCfg);

            audioSev.PlayBGM(Constans.HuangYeBGM);

            ActiveCurrentBatchMonsters();
        });
    }
Esempio n. 17
0
    /// <summary>
    /// 打开主城界面
    /// </summary>
    public void OpenMainCity()
    {
        MapCfg mapData = _resSvc.GetMapCfgData(Constants.cMainCityMapID);

        if (mapData == null)
        {
            CommonTools.Log("mapData error", LogType.LogType_Error);
            return;
        }
        _resSvc.AsyncLoadScene(mapData.sceneName, () =>
        {
            CommonTools.Log("Open MainCity...");
            //加载主角
            LoadPlayer(mapData);
            //打开主城场景UI
            _mainCityWnd.SetWndState(true);

            GameRoot.Instance.GetComponent <AudioListener>().enabled = false;


            //播放主城背景音乐
            _audioSvc.PlayBGM(Constants.cBGMMainCity);

            //设置人物展示相机
            if (playerCamera != null)
            {
                playerCamera.gameObject.SetActive(false);
            }

            //获取主城场景中任务相关的几个npc的位置信息
            GameObject objMapRoot = GameObject.FindGameObjectWithTag("MapRoot");
            MapRootInfo mapRoot   = objMapRoot.GetComponent <MapRootInfo>();
            npcPositionTrans      = mapRoot._npcPositionTrans;
        });
    }
Esempio n. 18
0
    public void ReqFBFightEnd(MsgPack pack)
    {
        ReqFBFightEnd data = pack.msg.reqFBFightEnd;

        GameMsg msg = new GameMsg {
            cmd = (int)CMD.RspFBFightEnd
        };

        // 校验战斗是否合法
        if (data.win == true)
        {
            if (data.costtime > 0 && data.resthp > 0)
            {
                // 根据对应副本ID获取奖励
                MapCfg     rd = cfgSvc.GetMapCfg(data.fbId);
                PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session);

                // 任务进度更新
                TaskSys.Instance.CalcTaskPrgs(pd, 2);

                pd.coin    += rd.coin;
                pd.crystal += rd.exp;
                Common.CalcExp(pd, rd.exp);

                if (pd.fuben == data.fbId)
                {
                    pd.fuben += 1;
                }

                // 更新数据库
                if (cacheSvc.UpdatePlayerData(pd.id, pd) == false)
                {
                    msg.err = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    RspFBFightEnd rspFBFightEnd = new RspFBFightEnd {
                        win      = data.win,
                        fbId     = data.fbId,
                        resthp   = data.resthp,
                        costtime = data.costtime,

                        coin    = pd.coin,
                        lv      = pd.lv,
                        exp     = pd.exp,
                        crystal = pd.crystal,
                        fuben   = pd.fuben
                    };

                    msg.rspFBFightEnd = rspFBFightEnd;
                }
            }
        }
        else
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }

        pack.session.SendMsg(msg);
    }
Esempio n. 19
0
    public void Init(int mapId)
    {
        resSvc   = ResSvc.instance;
        audioSvc = AudioSvc.instance;
        timerSvc = TimerSvc.instance;

        stateMgr = this.gameObject.AddComponent <StateMgr>();
        stateMgr.Init();
        skillMgr = this.gameObject.AddComponent <SkillMgr>();
        skillMgr.Init();


        mapCfg = resSvc.GetMapCfgData(mapId);
        resSvc.AsyncLoadScene(mapCfg.sceneName, () =>
        {
            GameObject mapObj = GameObject.FindWithTag("MapRoot");
            mapMgr            = mapObj.GetComponent <MapMgr>();
            mapMgr.Init();
            audioSvc.PlayBgMusic(Constants.BGHuangye);

            mapObj.transform.position   = Vector3.zero;
            mapObj.transform.localScale = Vector3.one;

            Camera.main.transform.position         = mapCfg.mainCamPos;
            Camera.main.transform.localEulerAngles = mapCfg.mainCamRote;

            LoadPlayer(mapCfg);

            SetActiveCurrentBatchMonsters();
        });
    }
Esempio n. 20
0
    public void Init(int mapID)
    {
        resSvc   = ResSvc.Instance;
        audioSvc = AudioSvc.Instance;

        //初始化各个管理器
        stateMgr = gameObject.AddComponent <StateMgr>();
        stateMgr.Init();
        skillMgr = gameObject.AddComponent <SkillMgr>();
        skillMgr.Init();

        MapCfg mapData = resSvc.GetMapCfgData(mapID);

        resSvc.AsyncLoadScene(mapData.sceneName, () =>
        {
            audioSvc.PlayBGMusic(Constants.BGHuangYe);

            GameObject map = GameObject.FindGameObjectWithTag("MapRoot");
            mapMgr         = map.GetComponent <MapMgr>();
            mapMgr.Init();

            Camera.main.transform.position    = mapData.mainCamPos;
            Camera.main.transform.eulerAngles = mapData.mainCamRote;

            LoadPlayer(mapData);
        });
    }
Esempio n. 21
0
    public void EnterMainCity()
    {
        MapCfg mapData = resSvc.GetMapCfgData(Constants.MainCityMapID);

        resSvc.AsyncLoadScene(mapData.sceneName, () =>
        {
            PECommon.Log("Enter MainCity...");

            //TODO 加载游戏主角
            LoadPlayer(mapData);

            //打开主城场景UI
            mainCityWnd.SetWndState(true);

            GameRoot.Instance.GetComponent <AudioListener>().enabled = false;
            //播放主城背景音乐
            audioSvc.PlayBGMusic(Constants.BGMainCity);

            GameObject map  = GameObject.FindGameObjectWithTag("MapRoot");
            MainCityMap mcm = map.GetComponent <MainCityMap>();
            npcPosTrans     = mcm.NpcPosTrans;

            //设置人物展示
            if (charCamTrans == null)
            {
                charCamTrans = GameObject.FindGameObjectWithTag("CharShowCam").transform;
            }
            charCamTrans.gameObject.SetActive(false);
        });
    }
Esempio n. 22
0
 public void InToMainCity()
 {
     //进入主城
     ResSvc.intance.AsyncLoadScene(GameConstant.MainGameScene, () =>
     {
         //加载游戏主角
         mGameWin.ShowRoleHp(false);
         MapCfg mapData = ResSvc.intance.GetMapData(GameConstant.MainCitySceneId);
         MainGameSys.instance.LoadPlayer(mapData, mCurrentRole.profession);
         mGameWin.isShow();
         mWorldTalkWin.isShow();
         mWorldTalkWin.isTalk(false);
         //设置人物展示相机
         if (mPlayerInfoCam != null)
         {
             mPlayerInfoCam.gameObject.SetActive(false);
         }
         //找到NPC的位置
         NpcTransformArry = GameObject.FindGameObjectWithTag("NpcTransform").GetComponent <NpcTransform>().NpcTransformArry;
         isCity           = true;
         //发送消息通知服务器上线了
         string data = string.Format("{0},{1},{2}*{3}*{4}*", GameRoot.instance.mUser.id.ToString(), ((int)mCurrentRole.profession).ToString(), player.transform.position.x.ToString(), player.transform.position.y.ToString(), player.transform.position.z.ToString());
         NetSvc.instance.SendSys(GameSys.步, MethodController.JoinCity, data);
         Invoke("SyncLoadRole", 0.5f);
     });
 }
Esempio n. 23
0
    private void LoadPlayer(MapCfg mapCfg)
    {
        GameObject objPlayer = resSvc.LoadPrefab(PathDefine.cPlayerBattlePrefab);

        objPlayer.transform.localPosition    = mapCfg.playerBornPos;
        objPlayer.transform.localEulerAngles = mapCfg.playerBornRote;
        objPlayer.transform.localScale       = Vector3.one;

        PlayerData  playerData  = GameRoot.Instance.PlayerData;
        BattleProps battleProps = new BattleProps
        {
            hp       = playerData.hp,
            ad       = playerData.ad,
            ap       = playerData.ap,
            addef    = playerData.addef,
            apdef    = playerData.apdef,
            dodge    = playerData.dodge,
            pierce   = playerData.pierce,
            critical = playerData.critical
        };

        entityPlayer = new EntityPlayer
        {
            _stateMgr  = battleStateMgr,
            _skillMgr  = skillMgr,
            _battleMgr = this
        };
        entityPlayer.SetBattleProps(battleProps);
        entityPlayer.EntityName = "Player";

        PlayerController playerContrl = objPlayer.GetComponent <PlayerController>();

        playerContrl.Init();
        entityPlayer.SetController(playerContrl);
    }
Esempio n. 24
0
    private void LoadPlayer(MapCfg mapCfg)
    {
        GameObject player = resSvc.LoadPrefab(PathDefine.AssassinBattlePrefab, false);

        player.transform.position         = mapCfg.playerBornPos;
        player.transform.localEulerAngles = mapCfg.playerBornRote;
        player.transform.localScale       = Vector3.one;

        playerController = player.GetComponent <PlayerController>();
        playerController.Init();

        PlayerData  playerData  = GameRoot.Instance.PlayerData;
        BattleProps battleProps = new BattleProps
        {
            hp       = playerData.hp,
            ad       = playerData.ad,
            ap       = playerData.ap,
            addef    = playerData.addef,
            apdef    = playerData.apdef,
            dodge    = playerData.dodge,
            pierce   = playerData.pierce,
            critical = playerData.critical,
        };

        entityPlayer = new EntityPlayer
        {
            currentAniState = AniState.Idle,
            stateMgr        = this.stateMgr,
            skillMgr        = this.skillMgr,
            battleMgr       = this,
            Name            = "AssassinBattle",
        };
        entityPlayer.SetController(playerController);
        entityPlayer.SetBattleProps(battleProps);
    }
Esempio n. 25
0
        public void RequestBattleEnd(MsgPack msgPack)
        {
            RequestBattleEnd data = msgPack.Msg.RequestBattleEnd;

            NetMsg netMsg = new NetMsg
            {
                cmd = (int)Command.ResponseBattleEnd
            };

            //校验战斗是否合法
            if (data.IsWin)
            {
                if (data.CostTime > 0 && data.RestHp > 0)
                {
                    //获取战斗副本相应的奖励
                    MapCfg     mapCfg     = _resCfgSvc.GetMapData(data.BattleId);
                    PlayerData playerData = _cacheSvc.GetPlayerDataBySession(msgPack.Session);

                    TaskSys.Instance.CalcTaskPrangs(playerData, 2);
                    playerData.Coin    += mapCfg.Coin;
                    playerData.Crystal += mapCfg.Crystal;

                    PeRoot.CalcExp(playerData, mapCfg.Exp);

                    if (playerData.Battle == data.BattleId)
                    {
                        playerData.Battle += 1;
                    }

                    if (!_cacheSvc.UpdatePlayerData(playerData.Id, playerData))
                    {
                        netMsg.err = (int)ErrorCode.UpdateDbError;
                    }
                    else
                    {
                        ResponseBattleEnd battleEnd = new ResponseBattleEnd
                        {
                            IsWin    = data.IsWin,
                            Battle   = data.BattleId,
                            CostTime = data.CostTime,
                            RestHp   = data.RestHp,


                            Coin     = playerData.Coin,
                            Level    = playerData.Level,
                            Exp      = playerData.Exp,
                            Crystal  = playerData.Crystal,
                            BattleId = playerData.Battle,
                        };
                        netMsg.ResponseBattleEnd = battleEnd;
                    }
                }
            }
            else
            {
                netMsg.err = (int)ErrorCode.ClientDataError;
            }
            msgPack.Session.SendMsg(netMsg);
        }
Esempio n. 26
0
    public MapCfg GetMapCfgData(int id)
    {
        MapCfg data = null;

        mapCfgDataDic.TryGetValue(id, out data);

        return(data);
    }
Esempio n. 27
0
    public MapCfg GetMapCfg(int id)
    {
        MapCfg mc = null;

        mapDic.TryGetValue(id, out mc);

        return(mc);
    }
Esempio n. 28
0
    public void ReqFBFightEnd(MsgPack pack)
    {
        ReqFBFightEnd data = pack.msg.reqFBFightEnd;

        GameMsg msg = new GameMsg {
            cmd = (int)CMD.RspFBFightEnd,
        };

        //校验战斗是否合法
        if (data.win)
        {
            if (data.costtime > 0 && data.resthp > 0)
            {
                //根据副本ID获取到相应的奖励
                MapCfg     rd = cfgSvc.GetMapCfg(data.fbid);
                PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session);

                //任务进度数据更新
                msg.pshTaskPrgs = TaskSys.Instance.GetPshTaskPrgs(pd, 2);

                pd.coin    += rd.coin;
                pd.crystal += rd.crystal;
                PECommon.CalcExp(pd, rd.exp);

                if (pd.fuben == data.fbid)
                {
                    pd.fuben += 1;
                }

                if (!cacheSvc.UpdatePlayerData(pd.id, pd))
                {
                    msg.err = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    msg.rspFBFightEnd = new RspFBFightEnd {
                        win      = data.win,
                        fbid     = data.fbid,
                        resthp   = data.resthp,
                        costtime = data.costtime,

                        coin    = pd.coin,
                        lv      = pd.lv,
                        exp     = pd.exp,
                        crystal = pd.crystal,
                        fuben   = pd.fuben,
                    };
                }
            }
        }
        else
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }

        pack.session.SendMsg(msg);
    }
Esempio n. 29
0
    public void ReqFBFightEnd(MsgPack pack)
    {
        ReqFBFightEnd data = (ReqFBFightEnd)pack.msg;

        SCPacketBase msg = new RspFBFightEnd();

        //校验战斗是否合法
        if (data.Win)
        {
            if (data.Costtime > 0 && data.Resthp > 0)
            {
                //根据副本ID获取相应奖励
                MapCfg     rd = cfgSvc.GetMapCfg(data.Fbid);
                PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session);

                //任务进度数据更新
                TaskSys.Instance.CalcTaskPrgs(pd, 2);

                pd.Coin    += rd.coin;
                pd.Crystal += rd.crystal;
                KDCommon.CalcExp(pd, rd.exp);

                if (pd.Fuben == data.Fbid)
                {
                    pd.Fuben += 1;
                }

                if (!cacheSvc.UpdatePlayerData(pd.Id, pd))
                {
                    msg.error = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    RspFBFightEnd rspFBFight = new RspFBFightEnd {
                        Win      = data.Win,
                        Fbid     = data.Fbid,
                        Resthp   = data.Resthp,
                        Costtime = data.Costtime,

                        Coin    = pd.Coin,
                        Lv      = pd.Lv,
                        Exp     = pd.Exp,
                        Crystal = pd.Crystal,
                        Fuben   = pd.Fuben
                    };

                    msg = rspFBFight;
                }
            }
        }
        else
        {
            msg.error = (int)ErrorCode.ClientDataError;
        }

        pack.session.SendMsg(msg);
    }
Esempio n. 30
0
    private void RefreshUI()
    {
        switch (endType)
        {
        case FBEndType.Pause:
            SetActive(rewardTrans, false);
            SetActive(btnExit.gameObject);
            SetActive(btnClose.gameObject);
            break;

        case FBEndType.Win:
            SetActive(rewardTrans, false);
            SetActive(btnExit.gameObject, false);
            SetActive(btnClose.gameObject, false);

            MapCfg cfg     = resSvc.GetMapCfg(fbid);
            int    min     = costtime / 60;
            int    sec     = costtime % 60;
            int    coin    = cfg.coin;
            int    exp     = cfg.exp;
            int    crystal = cfg.crystal;
            SetText(txtTime, $"通过时间:{min}:{sec}");
            SetText(txtRestHP, $"剩余血量:{resthp}");
            SetText(txtReward, $"关卡奖励:{Constants.Color(coin + "金币", TxtColor.Green)}," +
                    $"{Constants.Color(exp + "经验", TxtColor.Yellow)},{Constants.Color(crystal + "水晶", TxtColor.Blue)}");

            timerSvc.AddTimeTask((int tid) =>
            {
                SetActive(rewardTrans);
                anim.Play();
                timerSvc.AddTimeTask((int tid1) =>
                {
                    audioSvc.PlayUIAudio(Constants.FBItemEnter);
                    timerSvc.AddTimeTask((int tid2) =>
                    {
                        audioSvc.PlayUIAudio(Constants.FBItemEnter);
                        timerSvc.AddTimeTask((int tid3) =>
                        {
                            audioSvc.PlayUIAudio(Constants.FBItemEnter);
                            timerSvc.AddTimeTask((int tid4) =>
                            {
                                audioSvc.PlayUIAudio(Constants.FBLogoEnter);
                            }, 300);
                        }, 270);
                    }, 270);
                }, 325);
            }, 1000);
            break;

        case FBEndType.Lose:
            SetActive(rewardTrans, false);
            SetActive(btnExit.gameObject);
            SetActive(btnClose.gameObject, false);
            audioSvc.PlayUIAudio(Constants.FBLose);
            break;
        }
    }