关灯
开启左侧

怀旧魔兽世界私服60级单机版经验倍率根据阵营分开设置C++

  [复制链接]
admin实名认证 发表于 2016-4-23 16:46:35 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
适用于MANGOS 60级版本的魔兽世界私服的单机版支持



----------------------------- src/game/Formulas.h -----------------------------
struct HonorScores
{
@@ -316,8 +317,13 @@ namespace MaNGOS

             if (u->GetTypeId() == TYPEID_UNIT && ((Creature*)u)->IsElite())
                 xp_gain *= 2;
+            float rate_xp_kill = 1.0f;
+            if (pl->GetTeam() == HORDE)
+                rate_xp_kill = ConfigMgCore::GetFloatDefault("Rate.XP.Kill.Horde", 1.0f);
+            else
+                rate_xp_kill = sWorld.getConfig(CONFIG_FLOAT_RATE_XP_KILL);

-            return (uint32)(xp_gain * sWorld.getConfig(CONFIG_FLOAT_RATE_XP_KILL));
+            return (uint32)(xp_gain * rate_xp_kill);
         }

         inline float xp_in_group_rate(uint32 count, bool isRaid)

----------------------------- src/game/Player.cpp -----------------------------
index e43cc0a..6b62a7e 100644
@@ -5503,9 +5503,14 @@ void Player::CheckAreaExploreAndOutdoor()
             {
                 int32 diff = int32(getLevel()) - p->area_level;
                 uint32 XP = 0;
+                float rate_xp_explore = 1.0f;
+                if (GetTeam() == HORDE)
+                    rate_xp_explore = ConfigMgCore::GetFloatDefault("Rate.XP.Explore.Horde", 1.0f);
+                else
+                    rate_xp_explore = sWorld.getConfig(CONFIG_FLOAT_RATE_XP_EXPLORE);
                 if (diff < -5)
                 {
-                    XP = uint32(sObjectMgr.GetBaseXP(getLevel() + 5) * sWorld.getConfig(CONFIG_FLOAT_RATE_XP_EXPLORE));
+                    XP = uint32(sObjectMgr.GetBaseXP(getLevel() + 5) * rate_xp_explore);
                 }
                 else if (diff > 5)
                 {
@@ -5515,11 +5520,11 @@ void Player::CheckAreaExploreAndOutdoor()
                     else if (exploration_percent < 0)
                         exploration_percent = 0;

-                    XP = uint32(sObjectMgr.GetBaseXP(p->area_level) * exploration_percent / 100 * sWorld.getConfig(CONFIG_FLOAT_RATE_XP_EXPLORE));
+                    XP = uint32(sObjectMgr.GetBaseXP(p->area_level) * exploration_percent / 100 * rate_xp_explore);
                 }
                 else
                 {
-                    XP = uint32(sObjectMgr.GetBaseXP(p->area_level) * sWorld.getConfig(CONFIG_FLOAT_RATE_XP_EXPLORE));
+                    XP = uint32(sObjectMgr.GetBaseXP(p->area_level) * rate_xp_explore);
                 }

                 GiveXP(XP, NULL);
@@ -12249,7 +12254,12 @@ void Player::RewardQuest(Quest const *pQuest, uint32 reward, Object* questGiver,
     QuestStatusData& q_status = mQuestStatus[quest_id];

     // Not give XP in case already completed once repeatable quest
-    uint32 XP = q_status.m_rewarded ? 0 : uint32(pQuest->XPValue(this) * sWorld.getConfig(CONFIG_FLOAT_RATE_XP_QUEST));
+    float rate_xp_quest = 1.0f;
+    if (GetTeam() == HORDE)
+        rate_xp_quest = ConfigMgCore::GetFloatDefault("Rate.XP.Quest.Horde", 1.0f);
+    else
+        rate_xp_quest = sWorld.getConfig(CONFIG_FLOAT_RATE_XP_QUEST);
+    uint32 XP = q_status.m_rewarded ? 0 : uint32(pQuest->XPValue(this) * rate_xp_quest);

     if (getLevel() < sWorld.getConfig(CONFIG_UINT32_MAX_PLAYER_LEVEL))
         GiveXP(XP , NULL);

 

精彩评论2

倒序浏览
网络悍匪 发表于 2023-12-9 04:29:03 | 显示全部楼层
 
吾爱尚玩免费服务端下载!每天20金币走起!
 
xixi8678 发表于 2023-11-28 09:10:34 | 显示全部楼层
 
怀旧魔兽世界私服60级单机版经验倍率根据阵营分开设置C++  
 
VIP介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

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

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

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

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

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

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

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

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

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

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

0关注

5粉丝

3421帖子

排行榜
作者专栏

QQ交流群&&微信订阅号

QQ交流群

微信订阅号

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

Www.523Play.Com

在线管理员QQ:1589479632

邮箱:Email@523play.com

QQ交流群:558936238

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