コード例 #1
0
ファイル: PowerSys.cs プロジェクト: hoppyNaut/DarkGod
    private void CalcStaminaGrow(int timeID)
    {
        //计算体力增长
        PECommon.Log("All  Onlion Player Calc Power Increase....");
        GameMsg msg = new GameMsg
        {
            cmd = (int)CMD.PshStamina
        };

        msg.pshStamina = new PshStamina();

        //更新在线玩家体力
        Dictionary <ServerSession, PlayerData> onLineSessionDic = cacheSvc.GetOnlineSessionDic();

        foreach (ServerSession session in onLineSessionDic.Keys)
        {
            PlayerData playerData = onLineSessionDic[session];
            int        maxStamina = PECommon.GetStaminaLimitByLv(playerData.lv);
            if (playerData != null)
            {
                if (playerData.stamina < maxStamina)
                {
                    playerData.stamina += PECommon.StaminaAddCount;
                    playerData.time     = TimerSvc.Instance.GetNowTime();
                    if (playerData.stamina > maxStamina)
                    {
                        playerData.stamina = maxStamina;
                    }
                }

                if (!cacheSvc.UpdatePlayerData(playerData.id, playerData))
                {
                    msg.err = (int)ErrorCode.UpdateDBError;
                }
                else
                {
                    msg.pshStamina.stamina = playerData.stamina;
                    session.SendMsg(msg);
                }
            }
            else
            {
                msg.err = (int)ErrorCode.ServerDataError;
            }
        }

        //更新离线玩家体力
    }
コード例 #2
0
    /// <summary>
    /// 更新UI
    /// </summary>
    public void RefreshUI()
    {
        PlayerData playerData = GameRoot.Instance.PlayerData;
        //计算战斗力并更新
        int fight = PECommon.GetFightByProps(playerData);

        SetText(txtFight, fight);
        //更新体力UI
        int staminaLimit = PECommon.GetStaminaLimitByLv(playerData.lv);

        SetText(txtStamina, "体力:" + playerData.stamina + "/" + staminaLimit);
        sliderStamina.fillAmount = playerData.stamina * 1.0f / staminaLimit;
        //更新等级UI
        SetText(txtLevel, playerData.lv);
        //更新名字
        SetText(txtName, playerData.name);
        //更新进度条UI
        int expLimit = PECommon.GetExpLimitByLv(playerData.lv);

        SetText(txtExp, Mathf.Round((playerData.exp * 1.0f / expLimit) * 100.0f).ToString() + "%");
        SetExpProgressBar(playerData.exp);

        AdaptProgressBar();

        #region TaskIconRefresh
        curTaskCfg = resSvc.GetTaskCfg(playerData.taskid);
        if (curTaskCfg != null)
        {
            SetAutoTaskIcon(curTaskCfg.npcID);
        }
        //如果当前没有任务,显示默认图片
        else
        {
            SetAutoTaskIcon(-1);
        }
        #endregion
        //TODO
    }
コード例 #3
0
ファイル: RoleInfoWindow.cs プロジェクト: hoppyNaut/DarkGod
    public void RefreshUI()
    {
        PlayerData playerData = GameRoot.Instance.PlayerData;

        SetText(txtNameLv, playerData.name + " LV" + playerData.lv);

        int staminaLimit = PECommon.GetStaminaLimitByLv(playerData.lv);

        SetText(txtStamina, playerData.stamina + "/" + staminaLimit);
        float percentStamina = playerData.stamina * 1.0f / staminaLimit;

        staminaFill.fillAmount = percentStamina;

        int expLimit = PECommon.GetExpLimitByLv(playerData.lv);

        SetText(txtExp, playerData.exp + "/" + expLimit);
        float percentExp = playerData.exp * 1.0f / expLimit;

        expFill.fillAmount = percentExp;

        SetText(txtProfession, "职业      暗夜刺客");

        int fight = PECommon.GetFightByProps(playerData);

        SetText(txtFight, "战力         " + fight);
        SetText(txtHp, "生命        " + playerData.hp);
        SetText(txtHurt, "伤害         " + (playerData.ad + playerData.ap).ToString());
        SetText(txtDefence, "防御         " + (playerData.addef + playerData.apdef).ToString());

        SetText(txthp, playerData.hp);
        SetText(txtad, playerData.ad);
        SetText(txtap, playerData.ap);
        SetText(txtaddef, playerData.addef);
        SetText(txtapdef, playerData.apdef);
        SetText(txtdodge, playerData.dodge + "%");
        SetText(txtpierce, playerData.pierce + "%");
        SetText(txtcritical, playerData.critical + "%");
    }
コード例 #4
0
ファイル: LoginSys.cs プロジェクト: hoppyNaut/DarkGod
    public void ReqLogin(PackMsg pack)
    {
        ReqLogin      data    = pack.msg.reqLogin;
        ServerSession session = pack.session;
        //判断当前账号是否上线
        GameMsg msg = new GameMsg
        {
            cmd = (int)CMD.RspLogin,
        };

        //已上线,返回错误信息
        if (cacheSvc.IsAcctOnLine(data.acct))
        {
            msg.err = (int)ErrorCode.AcctIsOnLine;
        }
        else
        {
            //未上线:
            //账号是否存在
            PlayerData _playerData = cacheSvc.GetPlayerDate(data.acct, data.pwd);
            if (_playerData == null)
            {
                //账号存在 但密码错误
                msg.err = (int)ErrorCode.WrongPwd;
            }
            //存在 返回账号数据
            else
            {
                //计算离线增加体力
                int  stamina          = _playerData.stamina;
                long now              = timeSvc.GetNowTime();
                long milliSecondsSpan = now - _playerData.time;
                int  growStamina      = (int)(milliSecondsSpan / (1000 * 60 * PECommon.StaminaAddSpace)) * PECommon.StaminaAddCount;
                //PECommon.Log(milliSecondsSpan / 60000+ " " + milliSecondsSpan.ToString() + " " + growStamina.ToString());
                if (growStamina > 0)
                {
                    int maxStamina = PECommon.GetStaminaLimitByLv(_playerData.lv);
                    if (_playerData.stamina < maxStamina)
                    {
                        _playerData.stamina += growStamina;
                        if (_playerData.stamina > maxStamina)
                        {
                            _playerData.stamina = maxStamina;
                        }
                    }
                }

                if (stamina != _playerData.stamina)
                {
                    cacheSvc.UpdatePlayerData(_playerData.id, _playerData);
                }

                msg.rspLogin = new RspLogin
                {
                    //将账号数据存到回应包里
                    playerData = _playerData
                };
                //将账号数据存储进缓存层
                cacheSvc.StoreIdOnline(data.acct, session, _playerData);
            }
        }

        //回应客户端
        pack.session.SendMsg(msg);
    }