关灯
开启左侧

会员系统之出生等级,商业技能上限(WOTLK版本及之前?)

  [复制链接]
admin实名认证 发表于 2016-4-18 22:33:36 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
Index: Player.cpp===================================================================
--- Player.cpp        (revision 524)
+++ Player.cpp        (working copy)
@@ -623,11 +623,13 @@

     uint32 mGmlevel=GetSession()->GetSecurity();
        if (mGmlevel > 0  && sConfig.GetIntDefault("Vip.Player.On.Off", 0) == 1)
-        {
+        { //会员出生等级
                start_level += sObjectMgr.GetStartPlayerLevelVip(mGmlevel);
-        if (start_level > sConfig.GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL))
+                uint32 ssGetMaxLevel = sConfig.GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL);
+        if (start_level > ssGetMaxLevel)
         {
-                        start_level = sConfig.GetIntDefault("MaxPlayerLevel", DEFAULT_MAX_LEVEL);
+                        sLog.outError("MgCore::GmLevel %u StatLevel must be in range 0..%u.", mGmlevel, ssGetMaxLevel);
+                        start_level = ssGetMaxLevel;
         }
        }
     SetUInt32Value(UNIT_FIELD_LEVEL, start_level);
@@ -646,16 +648,18 @@
                        cStartPlayerMoneyVip = MAX_MONEY_AMOUNT;
                }
         //VIP出生荣誉点
-                if (cStartHonorPointsVip > sConfig.GetIntDefault("MaxHonorPoints", 75000))
+                uint32 ssGetMaxHonor = sConfig.GetIntDefault("MaxHonorPoints", 75000);
+                if (cStartHonorPointsVip > ssGetMaxHonor)
                {
-                        sLog.outError("MgCore::GmLevel %u StartHonorPoints must be in range 0..%u.", mGmlevel, sConfig.GetIntDefault("MaxHonorPoints", 75000));
-                    cStartHonorPointsVip = sConfig.GetIntDefault("MaxHonorPoints", 75000);
+                        sLog.outError("MgCore::GmLevel %u StartHonorPoints must be in range 0..%u.", mGmlevel, ssGetMaxHonor);
+                    cStartHonorPointsVip = ssGetMaxHonor;
                }
         //VIP出生竞技点
-                if (cStartArenaPointsVip > sConfig.GetIntDefault("MaxArenaPoints", 5000))
+                uint32 ssGetMaxArena = sConfig.GetIntDefault("MaxArenaPoints", 5000);
+                if (cStartArenaPointsVip > ssGetMaxArena)
                {
-                        sLog.outError("MgCore::GmLevel %u StartArenaPoints must be in range 0..%u.", mGmlevel, sConfig.GetIntDefault("MaxArenaPoints", 5000));
-                        cStartArenaPointsVip = sConfig.GetIntDefault("MaxArenaPoints", 5000);
+                        sLog.outError("MgCore::GmLevel %u StartArenaPoints must be in range 0..%u.", mGmlevel, ssGetMaxArena);
+                        cStartArenaPointsVip = ssGetMaxArena;
                }
         SetUInt32Value (PLAYER_FIELD_COINAGE, cStartPlayerMoneyVip);
         SetUInt32Value (PLAYER_FIELD_HONOR_CURRENCY, cStartHonorPointsVip);
@@ -3315,7 +3319,12 @@
                uint32 mGmlevel = GetSession()->GetSecurity();//Fiver会员商业技能数量
                if ( mGmlevel >0 && sConfig.GetIntDefault("Vip.Player.On.Off", 0) == 1)
                {
-            if(freeProfs <= (sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL) + sObjectMgr.GetMaxPrimaryTradeSkillVip(mGmlevel)))
+            if (sObjectMgr.GetMaxPrimaryTradeSkillVip(mGmlevel) > 10 )
+            {
+                                sLog.outError("MgCore::GmLevel %u MaxPrimaryTradeSkill must be in range 0..10.", mGmlevel);
+                sObjectMgr.GetMaxPrimaryTradeSkillVip(mGmlevel) = 10;
+            }
+                        if(freeProfs <= sObjectMgr.GetMaxPrimaryTradeSkillVip(mGmlevel))
                 SetFreePrimaryProfessions(freeProfs);
                }
                else
@@ -18783,7 +18792,13 @@
        uint32 mGmlevel = GetSession()->GetSecurity();//Fiver会员商业技能数量
        if ( mGmlevel >0 && sConfig.GetIntDefault("Vip.Player.On.Off", 0) == 1 )
        {
-                SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL) + sObjectMgr.GetMaxPrimaryTradeSkillVip(mGmlevel));
+                if (sObjectMgr.GetMaxPrimaryTradeSkillVip(mGmlevel) > 10)//10是最大MaxPrimaryTradeSkill
+                {
+                        sLog.outError("MgCore::GmLevel %u MaxPrimaryTradeSkill must be in range 0..10.", mGmlevel);
+                        sObjectMgr.GetMaxPrimaryTradeSkillVip(mGmlevel) = 10;
+                }
+
+                SetFreePrimaryProfessions(sObjectMgr.GetMaxPrimaryTradeSkillVip(mGmlevel));
        }
        else
     SetFreePrimaryProfessions(sWorld.getConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL));

标签:会员技能
 

精彩评论1

倒序浏览
6823730实名认证 发表于 2020-3-3 09:15:25 | 显示全部楼层
 
好高端 ,另外求一个单机 耐玩端
 
VIP介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

    注册账号后积极发帖的会员
  • 活跃会员

    经常参与各类话题的讨论,发帖内容较有主见
  • 热心会员

    经常帮助其他会员答疑
  • 推广达人

    积极宣传本站,为本站带来更多注册会员
  • 宣传达人

    积极宣传本站,为本站带来更多的用户访问量
  • 灌水之王

    经常在论坛发帖,且发帖量较大
  • 突出贡献

    长期对论坛的繁荣而不断努力,或多次提出建设性意见
  • 优秀版主

    活跃且尽责职守的版主
  • 荣誉管理

    曾经为论坛做出突出贡献目前已离职的版主
  • 论坛元老

    为论坛做出突出贡献的会员

0关注

5粉丝

3421帖子

排行榜
作者专栏

QQ交流群&&微信订阅号

QQ交流群

微信订阅号

吾爱尚玩资源基地永久域名:

Www.523Play.Com

在线管理员QQ:1589479632

邮箱:Email@523play.com

QQ交流群:558936238

Copyright   ©2015-2116  吾爱尚玩资源基地|523play.comPowered by©523Pplay.Com技术支持:吾爱尚玩资源基地