private void RefreshUI() { PlayerData pd = GameRoot.Instance.PlayerData; SetText(txtInfo, $"{pd.name} LV.{pd.lv}"); SetText(txtExp, $"{pd.exp}/{PECommon.GetExpUpValByLv(pd.lv)}"); imgExpPrg.fillAmount = pd.exp * 1.0f / PECommon.GetExpUpValByLv(pd.lv); SetText(txtPower, $"{pd.power}/{PECommon.GetPowerLimit(pd.lv)}"); imgPowerPrg.fillAmount = pd.power * 1.0f / PECommon.GetPowerLimit(pd.lv); SetText(txtJob, $" 职业 暗夜刺客"); SetText(txtFight, $" 战力 {PECommon.GetFightByProps(pd)}"); SetText(txtHP, $" 血量 {pd.hp}"); SetText(txtHurt, $" 伤害 {pd.ad + pd.ap}"); SetText(txtDef, $" 防御 {pd.addef + pd.apdef}"); // detail TODO SetText(dtxhp, pd.hp); SetText(dtxad, pd.ad); SetText(dtxap, pd.ap); SetText(dtxaddef, pd.addef); SetText(dtxapdef, pd.apdef); SetText(dtxdodge, pd.dodge + "%"); SetText(dtxpierce, pd.pierce + "%"); SetText(dtxcritical, pd.critical + "%"); }
private void RefreshUI() { PlayerData pd = GameRoot.instance.Playerdata; SetText(txtCharactor, pd.name + " LV" + pd.lv); SetText(txtExp, pd.exp + "/" + PECommon.GetExpUpValByLv(pd.lv)); imgExp.fillAmount = (pd.exp * 1.0f / PECommon.GetExpUpValByLv(pd.lv)); SetText(txtPower, pd.power); imgPower.fillAmount = (pd.power * 1.0f / PECommon.GetPowerLimit(pd.lv)); SetText(txtJob, " 职业 暗夜刺客"); SetText(txtFight, " 战力 " + PECommon.GetFightByPlayerData(pd)); SetText(txtHP, " 生命 " + pd.hp); SetText(txtDamage, " 伤害 " + (pd.ad + pd.ap)); SetText(txtDefend, " 防御 " + (pd.addef + pd.apdef)); //detail SetText(hpValue, pd.hp); SetText(addValue, pd.ad); SetText(apValue, pd.ap); SetText(addValue, pd.addef); SetText(apdValue, pd.apdef); SetText(dodgeValue, pd.dodge); SetText(pierceValue, pd.pierce); SetText(criticalValue, pd.critical); }
public void ReqLogin(MsgPack pack) { ReqLogin data = pack.msg.reqLogin; GameMsg msg = new GameMsg() { cmd = (int)CMD.RspLogin, }; //如果账号已经登入 if (cacheSvc.IsAcctOnline(data.acct)) { msg.err = (int)ErrorCode.AcctIsOnline; } else { PlayerData pd = cacheSvc.GetPlayerData(data.acct, data.pass); if (pd == null) { //存在,密码错误 msg.err = (int)ErrorCode.WrongPass; } else { //登入成功 //计算体力最大值 int power = pd.power; int powerMax = PECommon.GetPowerLimit(pd.lv); if (pd.power < powerMax) { long nowTime = timerSvc.GetNowTime(); long millisecendsCount = nowTime - pd.time; //计算玩家离线时间回复体力值 int addPower = (int)(millisecendsCount / (1000 * 60 * PECommon.PowerAddSpace)) * PECommon.PowerAddCount; if (addPower > 0) { pd.power += addPower; if (pd.power > powerMax) { pd.power = powerMax; } } } if (pd.power != power) { cacheSvc.UpdataPlayerData(pd.id, pd); } msg.rspLogin = new RspLogin() { playerData = pd }; cacheSvc.AcctOnline(data.acct, pack.session, pd); } } pack.session.SendMsg(msg); }
private void RefreshUI() { PlayerData pd = PECommon.PlayerData; SetText(txtInfo, pd.Name + " LV." + pd.Lv); SetText(txtExp, pd.Exp + "/" + PECommon.GetExpUpValByLv(pd.Lv)); imgExpPrg.fillAmount = pd.Exp * 1.0F / PECommon.GetExpUpValByLv(pd.Lv); SetText(txtPower, pd.Power + "/" + PECommon.GetPowerLimit(pd.Lv)); imgPowerPrg.fillAmount = pd.Power * 1.0F / PECommon.GetPowerLimit(pd.Lv); SetText(txtJob, " 职业 暗夜刺客"); SetText(txtFight, " 战力 " + PECommon.GetFightByProps(pd)); SetText(txtHP, " 血量 " + pd.Hp); SetText(txtHurt, " 伤害 " + (pd.Ad + pd.Ap)); SetText(txtDef, " 防御 " + (pd.Addef + pd.Apdef)); //detail TODO SetText(dtxhp, pd.Hp); SetText(dtxad, pd.Ad); SetText(dtxap, pd.Ap); SetText(dtxaddef, pd.Addef); SetText(dtxapdef, pd.Apdef); SetText(dtxdodge, pd.Dodge + "%"); SetText(dtxpierce, pd.Pierce + "%"); SetText(dtxcritical, pd.Critical + "%"); }
private void RefreshUI() { PlayerData pd = GameRoot.Instance.PlayerData; SetText(txtInfo, pd.name + " LV." + pd.lv); SetText(txtExp, pd.exp + "/" + PECommon.GetExpUpValByLv(pd.lv)); imgExpPrg.fillAmount = pd.exp * 1.0F / PECommon.GetExpUpValByLv(pd.lv); SetText(txtPower, pd.power + "/" + PECommon.GetPowerLimit(pd.lv)); imgPowerPrg.fillAmount = pd.power * 1.0F / PECommon.GetPowerLimit(pd.lv); SetText(txtJob, " 暗夜刺客"); SetText(txtFight, PECommon.GetFightByProps(pd)); SetText(txtHP, pd.hp); SetText(txtHurt, (pd.ad + pd.ap)); SetText(txtDef, (pd.addef + pd.apdef)); // 详细信息 SetText(txtDHp, pd.hp); SetText(txtDAd, pd.ad); SetText(txtDAp, pd.ap); SetText(txtDAdDef, pd.addef); SetText(txtDApDef, pd.apdef); SetText(txtDDodge, pd.dodge + "%"); SetText(txtDPierce, pd.pierce + "%"); SetText(txtDCritical, pd.critical + "%"); }
//刷新(更新)UI信息 private void RefreshUI() { PlayerData playerData = GameRoot.instance.playerData; SetText(txtInfo, playerData.name + "LV." + playerData.lv); SetText(txtExp, playerData.exp + "/" + PECommon.GetExpUpValByLv(playerData.lv)); imgExpPrg.fillAmount = playerData.exp * 1.0f / PECommon.GetExpUpValByLv(playerData.lv); SetText(txtPower, playerData.power + "/" + PECommon.GetPowerLimit(playerData.lv)); imgPowerPrg.fillAmount = playerData.power * 1.0f / PECommon.GetPowerLimit(playerData.lv); SetText(txtJob, "职业 暗夜刺客"); SetText(txtFight, "战力 " + PECommon.GetFightProps(playerData)); SetText(txtHP, "血量 " + playerData.hp); SetText(txtHurt, "伤害 " + playerData.ad + playerData.ap); SetText(txtDefense, "防御 " + playerData.addef + playerData.apdef); //详细信息面板 SetText(txtDtHP, playerData.hp); SetText(txtDtAd, playerData.ad); SetText(txtDtAp, playerData.ap); SetText(txtDtAdDef, playerData.addef); SetText(txtDtApDef, playerData.apdef); SetText(txtDtDodge, playerData.dodge + "%"); SetText(txtDtPierce, playerData.pierce + "%"); SetText(txtDtCritical, playerData.critical + "%"); }
public void ReqLogin(MsgPack pack) { ReqLogin data = pack.msg.reqLogin; // 当前账号是否已经上线 GameMsg msg = new GameMsg { cmd = (int)CMD.RspLogin }; if (cacheSvc.IsAcctOnLine(data.acct)) { // 已上线:返回错误信息 msg.err = (int)ErrorCode.AcctIsOnLine; } else { // 未上线: // 账号是否存在 PlayerData pd = cacheSvc.GetPlayerData(data.acct, data.pass); if (pd == null) { // 存在,密码错误 msg.err = (int)ErrorCode.WrongPass; } else { // 计算离线体力增长 int power = pd.power; long now = timerSvc.GetNowTime(); long milliseconds = now - pd.time; int addPower = (int)(milliseconds / (1000 * 60 * PECommon.PowerAddSpace)) * PECommon.PowerAddCount; if (addPower > 0) { int powerMax = PECommon.GetPowerLimit(pd.lv); if (pd.power < powerMax) { pd.power += addPower; if (pd.power > powerMax) { pd.power = powerMax; } } } if (power != pd.power) { cacheSvc.UpdatePlayerData(pd.id, pd); } msg.rspLogin = new RspLogin { playerData = pd }; // 缓存账号数据 cacheSvc.AcctOnLine(data.acct, pack.session, pd); } } // 回应客户端 pack.session.SendMsg(msg); }
private void Refresh() { PlayerData pd = GameRoot.Instance.PlayerData; SetText(txtInfo, pd.name + " LV." + pd.lv); SetText(txtExp, pd.exp + "/" + PECommon.GetExpUpValByLv(pd.lv)); imgExpPrg.fillAmount = pd.exp * 1.0f / PECommon.GetExpUpValByLv(pd.lv); SetText(txtPower, pd.power + "/" + PECommon.GetPowerLimit(pd.lv)); imgPowerPrg.fillAmount = pd.power * 1.0f / PECommon.GetPowerLimit(pd.lv); SetText(txtJob, " 职业 暗夜刺客"); SetText(txtFight, " 战力 " + PECommon.GetFightByProps(pd)); SetText(txtHP, " 血量 " + pd.hp); SetText(txtHurt, " 伤害 " + (pd.ad + pd.ap)); SetText(txtDef, " 防御 " + (pd.addef + pd.apdef)); //detail TODO SetText(dtxhp, pd.hp); SetText(dtxad, pd.ad); SetText(dtxap, pd.ap); SetText(dtxaddef, pd.addef); SetText(dtxapdef, pd.apdef); SetText(dtxdodge, pd.dodge + "%"); SetText(dtxpierce, pd.pierce + "%"); SetText(dtxcritical, pd.critical + "%"); }
public void RefreshUI(object sender, GameEventArgs e) { OnRefreshUIFormEventArgs ne = e as OnRefreshUIFormEventArgs; if ((System.Object)sender != this && ne.formId != UIFormId.MainCityForm) { return; } PlayerData pd = PECommon.PlayerData; SetText(txtFight, PECommon.GetFightByProps(pd)); SetText(txtPower, "体力:" + pd.Power + "/" + PECommon.GetPowerLimit(pd.Lv)); imgPowerPrg.fillAmount = pd.Power * 1.0f / PECommon.GetPowerLimit(pd.Lv); SetText(txtLevel, pd.Lv); SetText(txtName, pd.Name); #region Expprg int expPrgVal = (int)(pd.Exp * 1.0f / PECommon.GetExpUpValByLv(pd.Lv) * 100); SetText(txtExpPrg, expPrgVal + "%"); int index = expPrgVal / 10; GridLayoutGroup grid = expPrgTrans.GetComponent <GridLayoutGroup>(); float globalRate = 1.0F * Constants.ScreenStandardHeight / Screen.height; float screenWidth = Screen.width * globalRate; float width = (screenWidth - 180) / 10; grid.cellSize = new Vector2(width, 7); for (int i = 0; i < expPrgTrans.childCount; i++) { Image img = expPrgTrans.GetChild(i).GetComponent <Image>(); if (i < index) { img.fillAmount = 1; } else if (i == index) { img.fillAmount = expPrgVal % 10 * 1.0f / 10; } else { img.fillAmount = 0; } } #endregion //设置自动任务图标 curtTaskData = GameEntry.Res.GetAutoGuideCfg(pd.Guideid); if (curtTaskData != null) { SetGuideBtnIcon(curtTaskData.npcID); } else { SetGuideBtnIcon(-1); } }
public void ReqLogin(MsgPack pack) { ReqLogin data = pack.msg.reqLogin; //当前账号是否已经上线 GameMsg msg = new GameMsg { cmd = (int)CMD.RspLogin, }; if (CacheSvc.Instance.IsAcctOnline(data.acct)) { //已上线:返回错误信息 msg.err = (int)ErrorCode.AcctIsOnLine; } else { //未上线: PlayerData pd = CacheSvc.Instance.GetPlayerData(data.acct, data.pass); if (pd == null) { //存在:密码错误 msg.err = (int)ErrorCode.WrongPass; } else { int power = pd.power; long nowtime = TimeSvc.Instance.GetNowTime(); long deltatime = nowtime - pd.time; int addPower = (int)(deltatime / (1000 * 60 * PECommon.PowerAddSpace)) * PECommon.PowerAddCount; if (addPower > 0) { int powerMax = PECommon.GetPowerLimit(pd.lv); if (pd.power < powerMax) { pd.power += addPower; if (pd.power > powerMax) { pd.power = powerMax; } } } msg.rspLogin = new RspLogin { playerData = pd }; CacheSvc.Instance.AcctOnline(data.acct, pack.session, pd); CacheSvc.Instance.UpdatePlayerData(pd.id, pd, pack.session); } } //回应客户端 pack.session.SendMsg(msg); }
/// <summary> /// 响应登录的请求 /// </summary> /// <param name="pack">消息包</param> public void ReqLogin(MsgPack pack) { ReqLogin data = pack.msg.reqLogin; // 回应客户端 GameMsg msg = new GameMsg { cmd = (int)CMD.RspLogin // 操作码 }; // 判断是否在线,并做相应的处理 if (cacheSvc.IsAcctOnLine(data.acct)) // 已在线,返回错误信息 { msg.err = (int)ErrorCode.AcctIsOnLine; } else // 不在线,尝试登录 { PlayerData pd = cacheSvc.GetPlayerData(data.acct, data.pwd); // 获取玩家数据 if (pd == null) // 账号和密码不匹配 { msg.err = (int)ErrorCode.WrongPwd; } else // 登录成功 // 计算离线体力增长 { int power = pd.power; // 当前体力 long now = timerSvc.GetNowTime(); long milliseconds = now - pd.time; // 距离上一次下线的时间间隔 int addPower = (int)(milliseconds / (1000 * 60 * PECommon.PowerAddSpace)) * PECommon.PowerAddCount; // 需要增加的体力值 if (addPower > 0) { int powerMax = PECommon.GetPowerLimit(pd.lv); if (pd.power < powerMax) { pd.power += addPower; if (pd.power > powerMax) { pd.power = powerMax; } } } if (power != pd.power) { cacheSvc.UpdatePlayerData(pd.id, pd); } // 响应客户端的数据 msg.rspLogin = new RspLogin { playerData = pd // 返回玩家数据 }; // 缓存账号数据 cacheSvc.AcctOnLine(data.acct, pack.session, pd); } } // 回应客户端 pack.session.SendMsg(msg); }
public void RefreshUI() { PlayerData pd = GameRoot.Instance.PlayerData; SetText(txtFight, PECommon.GetFightByProps(pd)); SetText(txtPower, "体力:" + pd.power + "/" + PECommon.GetPowerLimit(pd.lv)); imgPowerPrg.fillAmount = pd.power * 1.0f / PECommon.GetPowerLimit(pd.lv); SetText(txtLevel, pd.lv); SetText(txtName, pd.name); #region Expprg int expPrgVal = (int)(pd.exp * 1.0f / PECommon.GetExpUpValByLv(pd.lv) * 100); SetText(txtExpPrg, expPrgVal + "%"); int index = expPrgVal / 10; GridLayoutGroup grid = expPrgTrans.GetComponent <GridLayoutGroup>(); float globalRate = 1.0F * Constants.ScreenStandardHeight / Screen.height; float screenWidth = Screen.width * globalRate; float width = (screenWidth - 180) / 10; grid.cellSize = new Vector2(width, 7); for (int i = 0; i < expPrgTrans.childCount; i++) { Image img = expPrgTrans.GetChild(i).GetComponent <Image>(); if (i < index) { img.fillAmount = 1; } else if (i == index) { img.fillAmount = expPrgVal % 10 * 1.0f / 10; } else { img.fillAmount = 0; } } #endregion //设置自动任务图标 curtTaskData = resSvc.GetAutoGuideCfg(pd.guideid); if (curtTaskData != null) { SetGuideBtnIcon(curtTaskData.npcID); } else { SetGuideBtnIcon(-1); } }
/// <summary> /// 处理登录注册请求 /// </summary> /// <param name="msg"></param> public void ReqLogin(MsgPack pack) { ReqLogin data = pack.msg.reqLogin; //给客户端的回应消息 GameMsg rspMsg = new GameMsg() { cmd = (int)CMD.RspLogin, rspLogin = new RspLogin() { }, }; //当前账号已上线 产生错误码 if (cacheSvc.IsAcctOnLine(data.acct)) { rspMsg.err = (int)ErrorCode.AcctIsOnline; } //当前账号未上线 else { PlayerData pd = cacheSvc.GetPlayerData(data.acct, data.pass); if (pd != null)//账密匹配 产生玩家数据(这里包含了创建账号) { //更新玩家体力值 int power = pd.power; long time = pd.time; long now = TimerSvc.Instance.GetNowTime(); pd.time = now; long millSeconds = now - time; int addPower = (int)(millSeconds / (1000 * 1 * PECommon.PowerAddMinute) * PECommon.PowerAddCount); if (addPower > 0) { int powerMax = PECommon.GetPowerLimit(pd); pd.power = power + addPower > powerMax ? powerMax : power + addPower; } if (pd.power > power) { cacheSvc.UpdatePlayerData(pd.id, pd); } //将此账号添加到字典中 cacheSvc.AddAcctOnline(data.acct, pack.session, pd); rspMsg.rspLogin.playerData = pd; } else//账密不匹配 产生错误码 { rspMsg.err = (int)ErrorCode.ErrorPass; } } //回应客户端 pack.session.SendMsg(rspMsg); }
public void RefreshUI() { PlayerData pd = GameRoot.instance.Playerdata; SetText(txtFight, PECommon.GetFightByPlayerData(pd)); SetText(txtLV, pd.lv); SetText(txtPower, "体力:" + pd.power + "/" + PECommon.GetPowerLimit(pd.lv)); //需要限制不要超出范围吗? imgPowerPrg.fillAmount = pd.power * 1.0f / PECommon.GetPowerLimit(pd.lv); SetText(txtName, pd.name); #region ExpProgress int expValPercent = (int)(pd.exp * 1.0f / PECommon.GetExpUpValByLv(pd.lv) * 100); SetText(txtExpPrg, expValPercent + "%"); int index = expValPercent / 10; GridLayoutGroup grid = expProgramTrans.GetComponent <GridLayoutGroup>(); //得到 标准高度和当前高度的比例,然后乘以当前宽度得到真实宽度,然后减掉间隙计算经验条宽度 float screenRate = 1.0f * Constants.screenStandardHeight / Screen.height; float screenWidth = Screen.width * screenRate; float width = (screenWidth - 180) / 10; grid.cellSize = new Vector2(width, 7); for (int i = 0; i < expProgramTrans.childCount; i++) { Image expImageValue = expProgramTrans.GetChild(i).GetComponent <Image>(); if (i < index) { expImageValue.fillAmount = 1; } else if (i == index) { expImageValue.fillAmount = expValPercent * 1.0f % 10 / 10; } else { expImageValue.fillAmount = 0; } } #endregion //设置自动任务图标 currentTaskData = resSvc.GetGuideCfgData(pd.guideid); if (currentTaskData != null) { SetGuideBtnIcon(currentTaskData.npcID); } else {//没任务就显示默认图标 SetGuideBtnIcon(-1); } }
/// <summary> /// 在线玩家计算体力增长与消息推送 /// </summary> /// <param name="tid"></param> public void CalcPowerAdd(int tid) { //计算体力增长 PECommon.Log("All Online Player Calc Power Incress...."); GameMsg msg = new GameMsg { cmd = (int)CMD.PshPower }; msg.pshPower = new PshPower(); //所有在线玩家获得实时的体力增长推送数据 Dictionary <ServerSession, PlayerData> onlineDic = cacheSvc.GetOnlineCache(); foreach (var item in onlineDic) { PlayerData pd = item.Value; ServerSession session = item.Key; int power = pd.power; int powerMax = PECommon.GetPowerLimit(pd); if (pd.power >= powerMax) { continue; } else { pd.power += PECommon.PowerAddCount; pd.time = timerSvc.GetNowTime(); if (pd.power > powerMax) { pd.power = powerMax; } } if (pd.power != power) { pd.time = timerSvc.GetNowTime(); if (!cacheSvc.UpdatePlayerData(pd.id, pd)) { msg.err = (int)ErrorCode.UpdateDbError; } else { msg.pshPower.power = pd.power; session.SendMsg(msg);//推送给在线玩家 } } } }
private void CalcPowerAdd(int tId) { //计算体力增长 GameMsg msg = new GameMsg { cmd = (int)CMD.PshPower, pshPower = new PshPower() }; Dictionary <ServerSession, PlayerData> onlineDic = cacheSvc.GetOnlineCache(); foreach (var item in onlineDic) { PlayerData pd = item.Value; ServerSession session = item.Key; int powerMax = PECommon.GetPowerLimit(pd.lv); if (pd.power >= powerMax) { //不回复体力 continue; } else { //回复体力 pd.power += PECommon.PowerAddCount; if (pd.power > powerMax) { //限定回复,防止溢出体力最大值 pd.power = powerMax; pd.time = timeSvc.GetNowTime(); } if (!cacheSvc.UpdataPlayerData(pd.id, pd)) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.pshPower.power = pd.power; session.SendMsg(msg); } } } }
/// <summary> /// 增加体力 /// </summary> private void CalcPowerAdd(int tid) { // 计算体力增长 PECommon.Log("所有在线玩家的体力增长计算...."); GameMsg msg = new GameMsg { cmd = (int)CMD.PshPower }; msg.pshPower = new PshPower(); // 所有在线玩家获得实时的体力增长,推送数据 Dictionary <ServerSession, PlayerData> onlineDic = cacheSvc.GetOnlineCache(); foreach (var item in onlineDic) { PlayerData pd = item.Value; ServerSession session = item.Key; // 体力增长上限 int powerMax = PECommon.GetPowerLimit(pd.lv); if (pd.power >= powerMax) { continue; } else { pd.power += PECommon.PowerAddCount; pd.time = timerSvc.GetNowTime(); // 更新玩家在线时间 if (pd.power > powerMax) // 上限 { pd.power = powerMax; } } // 将更新后的数据,更新到缓存 if (!cacheSvc.UpdatePlayerData(pd.id, pd)) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.pshPower.power = pd.power; session.SendMsg(msg); } } }
private void RefreshUI() { PlayerData playerData = GameRoot.Instance.PlayerData; SetText(txtFight, PECommon.GetFightByProps(playerData)); int powerLimit = PECommon.GetPowerLimit(playerData.lv); SetText(txtPower, "体力:" + playerData.power + "/" + powerLimit); imgPowerPrg.fillAmount = playerData.power * 1.0f / powerLimit; SetText(txtLevel, playerData.lv); SetText(txtName, playerData.name); //经验条自适应 int expPrgVal = (int)(playerData.exp * 1.0f / PECommon.GetExpUpValByLv(playerData.lv) * 100); SetText(txtExpPrg, expPrgVal + "%"); int index = expPrgVal / 10; GridLayoutGroup grid = expPrgTrans.GetComponent <GridLayoutGroup>(); float globalRate = 1.0f * Constants.ScreenStandardHeight / Screen.height; float screenWidth = Screen.width * globalRate; float width = (screenWidth - 180) / 10; grid.cellSize = new Vector2(width, 7); for (int i = 0; i < expPrgTrans.childCount; i++) { Image img = expPrgTrans.GetChild(i).GetComponent <Image>(); if (i < index) { img.fillAmount = 1; } else if (i == index) { img.fillAmount = expPrgVal % 10 * 1.0f / 10; } else { img.fillAmount = 0; } } }
/// <summary> /// 刷新界面 UI /// </summary> public void RefreshUI() { PlayerData pd = GameRoot.Instance.PlayerData; SetText(txtFight, PECommon.GetFightByProps(pd)); SetText(txtPower, pd.power + "/" + PECommon.GetPowerLimit(pd.lv)); imgPowerPrg.fillAmount = pd.power * 1.0f / PECommon.GetPowerLimit(pd.lv); SetText(txtLv, pd.lv); SetText(txtName, pd.name); ExpPrg(pd); // 设置自动任务图比 curtTaskData = resSvc.GetAutoGuideCfg(pd.guideid); if (curtTaskData != null) { SetGuideBtnIcon(curtTaskData.npcID); } else { SetGuideBtnIcon(-1); } }
public void CalcPowerAdd(int tid) { //计算体力增长 TODO PECommon.Log("All Online Player Calc Power Increase"); GameMsg msg = new GameMsg { cmd = (int)CMD.PshPower, pshPower = new PshPower(), }; //所有在线玩家获得实时的体力增长推送数据 Dictionary <ServerSession, PlayerData> onlineDic = CacheSvc.Instance.GetOnlineCache(); List <ServerSession> serverlist = new List <ServerSession>(onlineDic.Keys); for (int i = 0; i < onlineDic.Count; i++) { PlayerData pd = onlineDic[serverlist[i]]; ServerSession session = serverlist[i]; int powerMax = PECommon.GetPowerLimit(pd.lv); if (pd.power >= powerMax) { continue; } else { pd.power += PECommon.PowerAddCount; pd.time = TimeSvc.Instance.GetNowTime(); if (pd.power > powerMax) { pd.power = powerMax; } } if (!CacheSvc.Instance.UpdatePlayerData(pd.id, pd, session)) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.pshPower.power = pd.power; } session.SendMsg(msg); } //foreach (var item in onlineDic) //{ // PlayerData pd = item.Value; // ServerSession session = item.Key; // int powerMax = PECommon.GetPowerLimit(pd.lv); // if (pd.power>=powerMax) // { // continue; // } // else // { // pd.power += PECommon.PowerAddCount; // if (pd.power > powerMax) // { // pd.power = powerMax; // } // } // if (!CacheSvc.Instance.UpdatePlayerData(pd.id, pd, session)) // { // msg.err = (int)ErrorCode.UpdateDBError; // } // else // { // msg.pshPower.power = pd.power; // } // session.SendMsg(msg); //} }
//刷新UI信息 public void RefreshUI() { if (GetWindowState() == false) { return; } PlayerData playerData = GameRoot.instance.playerData; int fight = PECommon.GetFightProps(playerData); int power = PECommon.GetPowerLimit(playerData.lv); //为UI赋值 SetText(txtFight, fight); SetText(txtPower, new StringBuilder("体力:").Append(playerData.power).Append("/").Append(power).ToString()); imgPowerPrg.fillAmount = playerData.power * 1.0f / power; SetText(txtLevel, playerData.lv); SetText(txtName, playerData.name); #region ExpPrg //经验值条自适应 GridLayoutGroup grid = expPrgTrans.GetComponent <GridLayoutGroup>(); float globalScale = 1.0f * Constants.ScreenStandardHeight / Screen.height; float screenWidth = Screen.width * globalScale; float width = (screenWidth - 180) / 10; grid.cellSize = new Vector2(width, 7); //计算经验值百分比 int expProVal = (int)(playerData.exp * 1.0f / PECommon.GetExpUpValByLv(playerData.lv) * 100); SetText(txtExpPrg, expProVal + "%"); //填充经验值进度条 int index = expProVal / 10; for (int i = 0; i < expPrgTrans.childCount; i++) { Image img = expPrgTrans.GetChild(i).GetComponent <Image>(); if (i < index) { img.fillAmount = 1; } else if (i == index) { img.fillAmount = expProVal % 10 * 1.0f / 10; } else { img.fillAmount = 0; } } #endregion m_curTaskData = resSvc.GetGuideCfgData(playerData.guideId); if (m_curTaskData != null) { SetGuideBtnIcon(m_curTaskData.npcID); } else { SetGuideBtnIcon(-1); } }
/// <summary> /// 响应登录请求 /// </summary> /// <param name="msg"></param> public void ReqLogin(MsgPack pack) { ReqLogin data = pack.Msg.reqLogin; GameMsg msg = new GameMsg { cmd = (int)CMD.RspLogin, }; //当前账号是否上线 if (cacheSvc.IsAcctOnLine(data.acct)) { //已上线:返回错误信息 msg.err = (int)ErrorCode.AcctIsOnLine; } else { //未上线:检测账号是否存在 PlayerData _palyerData = cacheSvc.GetPlayerData(data.acct, data.pass); if (_palyerData == null) //账号存在,密码错误 { msg.err = (int)ErrorCode.WrongPass; } else //账号密码正确 { #region 计算离线体力增长 //计算离线体力增长 int power = _palyerData.power; long now = timerSvc.GetNowTime(); long milliseconds = now - _palyerData.time; int addPower = (int)(milliseconds / (1000 * 60 * PECommon.PowerAddSpace)) * PECommon.PowerAddCount; if (addPower > 0) { int powerMax = PECommon.GetPowerLimit(_palyerData.lv); if (_palyerData.power < powerMax) { _palyerData.power += addPower; if (_palyerData.power > powerMax) { _palyerData.power = powerMax; } } } if (power != _palyerData.power) { cacheSvc.UpdatePlayerData(_palyerData.id, _palyerData); } #endregion msg.rspLogin = new RspLogin { playerData = _palyerData }; } //缓存账号数据 cacheSvc.AcctOnline(data.acct, pack.Session, _palyerData); } //回应客户端 pack.Session.SendMsg(msg); }