关灯
开启左侧

禁止飞行地区的魔兽私服模拟器代码mangos

  [复制链接]
admin实名认证 发表于 2016-4-18 22:25:56 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
 
禁止飞行地区的魔兽私服模拟器代码

Index: src/game/Player.cpp===================================================================
--- src/game/Player.cpp        (revision 268)
+++ src/game/Player.cpp        (working copy)
@@ -6216,7 +6216,25 @@
     if(!zone)
         return;

-    if (sWorld.getConfig(CONFIG_WEATHER))
+        uint32 newpvpzone_1 = sConfig.GetIntDefault("PvP.Zone.1", 0);//全局PVP系统
+        uint32 newpvpzone_2 = sConfig.GetIntDefault("PvP.Zone.2", 0);
+        uint32 newpvpzone_3 = sConfig.GetIntDefault("PvP.Zone.3", 0);
+        uint32 newpvpzone_4 = sConfig.GetIntDefault("PvP.Zone.4", 0);
+        uint32 newpvpzone_5 = sConfig.GetIntDefault("PvP.Zone.5", 0);
+        //AreaTableEntry const* mpvpzone = GetAreaEntryByAreaID(newZone);
+        //if (!mpvpzone)
+        //        return;
+        if (sConfig.GetIntDefault("PvP.Zone.On.Off", 0)==1)
+        {
+        if (zone->ID == newpvpzone_1 || zone->ID == newpvpzone_2
+                    || zone->ID == newpvpzone_3 || zone->ID == newpvpzone_4 || zone->ID == newpvpzone_5)
+        {
+            if(!isGameMaster())
+                SetByteFlag(UNIT_FIELD_BYTES_2, 1, UNIT_BYTE2_FLAG_FFA_PVP);
+        }
+        }
+
+        if (sWorld.getConfig(CONFIG_WEATHER))
     {
         Weather *wth = sWorld.FindWeather(zone->ID);
         if(wth)
@@ -19593,6 +19611,11 @@
         return true;

     uint32 v_map = GetVirtualMapForMapAndZone(GetMapId(), GetZoneId());
+        if (sConfig.GetIntDefault("Allow.FlyingMounts.All", 0)==1)//全局飞行系统
+        {
+    return v_map == 0 || v_map == 1 || v_map == 530 || v_map == 571 && HasSpell(54197);
+        }
+        else
     return v_map == 530 || v_map == 571 && HasSpell(54197);
}

Index: src/game/Spell.cpp
===================================================================
--- src/game/Spell.cpp        (revision 268)
+++ src/game/Spell.cpp        (working copy)
@@ -42,6 +42,7 @@
#include "SharedDefines.h"
#include "LootMgr.h"
#include "VMapFactory.h"
+#include "Config/ConfigEnv.h" //飞行系统配置参数
#include "BattleGround.h"
#include "Util.h"

@@ -4493,6 +4494,20 @@
                 // not allow cast fly spells at old maps by players (all spells is self target)
                 if(m_caster->GetTypeId() == TYPEID_PLAYER)
                 {
+                    uint32 v_zone = m_caster->GetZoneId();//飞行系统
+                                        uint32 v_zoneconf_1=sConfig.GetIntDefault("Disable.FlyingMounts.Zone.1", 0);
+                                        uint32 v_zoneconf_2=sConfig.GetIntDefault("Disable.FlyingMounts.Zone.2", 0);
+                                        uint32 v_zoneconf_3=sConfig.GetIntDefault("Disable.FlyingMounts.Zone.3", 0);
+                                        uint32 v_zoneconf_4=sConfig.GetIntDefault("Disable.FlyingMounts.Zone.4", 0);
+                                        uint32 v_zoneconf_5=sConfig.GetIntDefault("Disable.FlyingMounts.Zone.5", 0);
+                                        if (sConfig.GetIntDefault("Disable.FlyingMounts.On.Off", 0)==1)
+                                        {
+                                            if (v_zone==v_zoneconf_1 || v_zone==v_zoneconf_2 || v_zone==v_zoneconf_3
+                                                        || v_zone==v_zoneconf_4 || v_zone==v_zoneconf_5)
+                                            {
+                                                    return SPELL_FAILED_NOT_HERE;
+                                            }
+                                        }
                     if( !((Player*)m_caster)->IsAllowUseFlyMountsHere() )
                         return SPELL_FAILED_NOT_HERE;
                 }
Index: src/mangosd/mangosd.conf.dist.in
===================================================================
--- src/mangosd/mangosd.conf.dist.in        (revision 268)
+++ src/mangosd/mangosd.conf.dist.in        (working copy)
@@ -1300,3 +1300,48 @@
Ra.Port = 3443
Ra.MinLevel = 3
Ra.Secure = 1
+
+
+Allow.FlyingMounts.All = 0
+Disable.FlyingMounts.On.Off = 0
+Disable.FlyingMounts.Zone.1 = 0
+Disable.FlyingMounts.Zone.2 = 0
+Disable.FlyingMounts.Zone.3 = 0
+Disable.FlyingMounts.Zone.4 = 0
+Disable.FlyingMounts.Zone.5 = 0
+PvP.Zone.On.Off = 0
+PvP.Zone.1 = 0
+PvP.Zone.2 = 0
+PvP.Zone.3 = 0
+PvP.Zone.4 = 0
+PvP.Zone.5 = 0

 
VIP介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 最佳新人

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

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

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

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

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

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

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

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

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

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

0关注

5粉丝

3421帖子

排行榜
作者专栏

QQ交流群&&微信订阅号

QQ交流群

微信订阅号

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

Www.523Play.Com

在线管理员QQ:1589479632

邮箱:Email@523play.com

QQ交流群:558936238

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