处理品级提升

游戏服务器中,能力模块品级提升主要包括两个方面,一个方面是等级,另外一个方面是当前等级的经验值。一般表现为通过吞噬单个或者多个道具来获取经验值,然后根据经验值从而使该能力模块升到多少级。有两种做法可以实现:

(1)先计算吞噬的所有道具,得到总经验值,然后再升级,描述如下:

while (true) {

    根据当前等级找到对应相关配置;

    if (总经验值 < 当前升级需要经验值) break;

    if (如果下一等级的配置不存在) break; //已经到达最大等级

    总经验值 -= 当前升级所需要经验值;

    当前等级 += 1;

}

(2)循环计算单个道具的经验值,然后再计算本次吞噬后所处等级段,描述如下:

void cal_exp(int &cur_lvl, &int cur_exp)

{

    根据当前等级找到对应相关配置;

    if (总经验值 < 当前升级需要经验值) return;

    if (如果下一等级的配置不存在) return;

    cur_exp -= 当前升级所需要经验值;

    cur_lvl += 1;

}

能力模块相关功能一般来说都是需要处理品级提升相关逻辑的,比如图鉴系统,衣服系统,卡片系统等。每次升级后,重新计算一下属性,然后刷新给客户端即可。

for (对于每个道具) {

    ...特殊处理... 

    当前经验值 += 该道具经验值;

    cal_exp(当前等级,当前经验值);//计算吞噬单个道具后,所属等级段(当前等级传引用)

}

一般来说都是通过方法(1)实现这种能力模块品级提升需求,但是当需要对所吞噬的道具中某些道具做特殊处理时,即对被吞噬的道具有不一致处理的时候,可以通过方法(2)实现。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值