Jump to content

Core Mods for 9591+


Recommended Posts

TESTED ON - Ubuntu 9.10 / CentOS 5.2

NOTE - None of the patches are mine. Some are from KAPATEJiB and others from other users here.

BEFORE - Please read -Ubuntu-Debian-CentOS-RHEL-Install-Guide"]THIS AWESOME GUIDE before applying anything. This will make sure you do not get ANY weird problems.

HOW TO APPLY A PATCH FILE - Go into your mangos source folder and git apply X (X is the patch)

Example - git apply fly.patch

Note - In both scripts made below you can check how to apply patches correctly.

Patches i changed or fix to be easily applied to core with git

Death Bug (Zombie mode) - Works OK

Warlock Demonic Circle - Works OK

Hunter Freezing Arrow - Works OK

Rogue Shadow Dance - Works OK

Dalaran No Fly Patch - Works Ok

Death Grip - Works OK but instead of jumping towards you npc is running towards you.

Mage Blink / Warrior Charge / Rogue ShadowStep - Works OK

UPDATED: 9773

FragFrog's List - http://mangos.fragfrog.nl/Patches/MaNGOS/

WHEN INSTALLING FRESH

# Where ManGOS and ScriptDev2 sources will be downloaded (EDIT THIS TO CHANGE ORIGIN PLACE)
MangosStart="/home/cyrex"
# Where ManGOS and ScriptDev2 sources will be installed (EDIT THIS TO CHANGE DESTINATION PLACE)
MangosEnd="/opt/mangos"

# Compilation Script (Git Checkout, SVN Checkout, ScriptDev2 Patch for Mangos, Configure, Make & Install)
clear
echo "WOW Server Compiler By CYREX"
echo " "
echo "REMOVING OLD DATA FROM GIT FOLDER"
echo " "
rm -fr ${MangosStart}
rm -fr ${MangosEnd}/lib
rm -fr ${MangosEnd}/bin
echo " "
echo "CHECKING OUT MANGOS GIT"
echo " "
git clone git://github.com/mangos/mangos.git
echo " "
cd ${MangosStart}
echo " "
echo "CHECKING OUT SCRIPTDEV2 SVN"
echo " "
svn checkout [url]http://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2[/url] src/bindings/ScriptDev2
echo " "
echo "PATCHING MANGOS WITH SCRIPTDEV2..."
echo " "
git apply src/bindings/ScriptDev2/patches/MaNGOS-*
echo " "
echo "CONFIGURING MANGOS"
echo " "
autoreconf --install --force
mkdir objdir
cd objdir
../configure --prefix=${MangosEnd} --sysconfdir=${MangosEnd}/etc --enable-cli --enable-ra --datadir=${MangosEnd}
echo " "
echo "MAKING MANGOS"
echo " "
make
echo " "
echo "CREATING BIN FILES (Executables, Libraries, Conf files, SQL Files)"
echo " "
make install
cd ..
echo " "
echo "FINISHED."
echo " "

WHEN UPDATING ONLY + PATCHES

Note: I created a folder called patches next to the folder source of mangos as you can see in the script below.

# Where ManGOS and ScriptDev2 sources will be downloaded (EDIT)
MangosStart="/home/cyrex"
# Where ManGOS and ScriptDev2 sources will be installed (EDIT)
MangosEnd="/opt/mangos"

# Compilation Script (Git Checkout, SVN Checkout, ScriptDev2 Patch for Mangos, Configure, Make & Install)
clear
echo "WOW Server Compiler By CYREX"
echo " "
echo "UPDATING MANGOS"
echo " "
cd ${MangosStart}
rm -fr objdir
echo " "
git reset --hard
git pull
echo "UPDATING SCRIPTDEV2"
echo " "
svn update src/bindings/ScriptDev2
echo " "

echo "PATCHING MANGOS WITH SCRIPTDEV2..."
echo " "
git apply src/bindings/ScriptDev2/patches/MaNGOS-*
echo " "

echo "PATCHING MANGOS WITH DALARAN NO FLY ZONE..."
echo " "
git apply ../patches/Dalaran.patch
echo " "

echo "PATCHING MANGOS WITH DEATH FIX..."
echo " "
git apply ../patches/Death.patch
echo " "

echo "PATCHING MANGOS WITH DEATH GRIP..."
echo " "
git apply ../patches/DeathGrip.patch
echo " "

echo "PATCHING MANGOS WITH BLINK..."
echo " "
git apply ../patches/Blink.patch
echo " "

echo "PATCHING MANGOS WITH HUNTER FREEZE ARROW..."
echo " "
git apply ../patches/HunterFreezingArrow.patch
echo " "

echo "PATCHING MANGOS WITH ROGUE SHADOW DANCE..."
echo " "
git apply ../patches/RogueShadowDance.patch
echo " "

echo "PATCHING MANGOS WITH WARLOCK DEMONIC CIRCLE..."
echo " "
git apply ../patches/WarlockDemonicCircle.patch
echo " "

echo "CONFIGURING MANGOS"
echo " "
autoreconf --install --force
mkdir objdir
cd objdir
../configure --prefix=${MangosEnd} --sysconfdir=${MangosEnd}/etc --enable-cli --enable-ra --datadir=${MangosEnd}
echo " "
echo "MAKING MANGOS"
echo " "
make
echo " "
echo "CREATING BIN FILES (Executables, Libraries, Conf files, SQL Files)"
echo " "
make install
cd ..
echo " "
echo "FINISHED."
echo " "

Tested with latest and everything works good. (Core 9773)

Link to comment
Share on other sites

  • 40 years later...

Well my point in all of this is to make the patches compatible with everything. using patch -p1 < PATCHFILE works i know but it skips the errors found when using git apply. So that is what i work with this patches, a compatible way so you can use either git apply, patch or anything else.

Link to comment
Share on other sites

Updated git patches to include freezing arrow and shadow dance. Tested again on 9613. Works perfect.

If you by any chance get ANY error whatsoever then check the way you are compiling and what you are missing since this patches were already tested on 2 systems.

Link to comment
Share on other sites

Updated to latest 9697

+ Fix Death.patch not applying

+ Remove Vehicle and Compile patches since the first one sucks and crashes the server, the second one is already applied to master.

+ Added Dual Talent patch for Gossip Menu.

Link to comment
Share on other sites

Please update the Dalaran is a restricted flight area patch...

Here it is:

diff --git a/src/game/Player.cpp b/src/game/Player.cpp
index 5915123..21b94ef 100644
--- a/src/game/Player.cpp
+++ b/src/game/Player.cpp
@@ -1380,6 +1380,36 @@ void Player::Update( uint32 p_time )
    //because we don't want player's ghost teleported from graveyard
    if(IsHasDelayedTeleport() && isAlive())
        TeleportTo(m_teleport_dest, m_teleport_options);
+
+    bool DalaranRestrictedFlightArea = sWorld.getConfig(CONFIG_BOOL_DALARAN_RESTRICTED_FLIGHT_AREA);
+
+    if (DalaranRestrictedFlightArea)
+    {
+        if (GetMapId() == 571 && IsInWorld())
+        {
+            if (GetPositionZ() > 640.0 && GetPositionZ() < 700.0 && GetZoneId() == 4395 && GetAreaId() != 4564 && m_movementInfo.HasMovementFlag(MOVEFLAG_FLYING) && !HasAura(58600) && !HasAura(61243))
+            {
+                CastSpell(this, 58600, true);
+                PlayDirectSound(9417);
+                MonsterTextEmote("Warning: You've entered a no-fly zone and are about to be dismounted!", GetGUID(), true);
+            }
+            if (HasAura(61243)) // Restricted Flight Area - Parachute Visual
+            {
+                float x, y, z;
+                GetPosition(x, y, z);
+                float ground_Z = GetMap()->GetHeight(x, y, z, true);
+                if (fabs(ground_Z - z) < 0.1f)
+                {
+                    RemoveAurasDueToSpell(61243);
+                    return;
+                }
+            }
+            if (GetPositionZ() < 640.0 && GetZoneId() == 4395 && HasAura(58600) || GetPositionZ() > 700.0 && GetZoneId() == 4395 && HasAura(58600) || GetAreaId() == 4564 && HasAura(58600) || GetZoneId() != 4395 && HasAura(58600))
+            {
+            RemoveAurasDueToSpell(58600);
+            }
+        }
+    }
}

void Player::setDeathState(DeathState s)
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 3957462..4ff7978 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -2509,11 +2509,13 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
            }
            case 58600:                                     // Restricted Flight Area
            {
-                // Remove Flight Auras
-                m_target->CastSpell(m_target, 58601, true);
-                // Parachute
-                m_target->CastSpell(m_target, 45472, true);
+                if (m_target->GetPositionZ() > 640.0 && m_target->GetPositionZ() < 700.0 && m_target->GetZoneId() == 4395 && m_target->GetAreaId() != 4564 /*&& m_target->m_movementInfo.HasMovementFlag(MOVEFLAG_FLYING)*/)
+               {
+                m_target->CastSpell(m_target, 58601, true);   // Remove Flight Auras
+                m_target->CastSpell(m_target, 45472, true);   // Parachute Buff
+                m_target->CastSpell(m_target, 61243, true);   // Parachute Visual
                return;
+               }
            }
        }

diff --git a/src/game/World.cpp b/src/game/World.cpp
index 5924b0f..c784c46 100644
--- a/src/game/World.cpp
+++ b/src/game/World.cpp
@@ -589,6 +589,8 @@ void World::LoadConfigSettings(bool reload)

    setConfig(CONFIG_BOOL_ALL_TAXI_PATHS, "AllFlightPaths", false);

+    setConfig(CONFIG_BOOL_DALARAN_RESTRICTED_FLIGHT_AREA, "DalaranRestrictedFlightArea", false);
+
    setConfig(CONFIG_BOOL_INSTANCE_IGNORE_LEVEL, "Instance.IgnoreLevel", false);
    setConfig(CONFIG_BOOL_INSTANCE_IGNORE_RAID,  "Instance.IgnoreRaid", false);

diff --git a/src/game/World.h b/src/game/World.h
index f65015c..a9a71eb 100644
--- a/src/game/World.h
+++ b/src/game/World.h
@@ -294,6 +294,7 @@ enum eConfigBoolValues
    CONFIG_BOOL_DEATH_BONES_WORLD,
    CONFIG_BOOL_DEATH_BONES_BG_OR_ARENA,
    CONFIG_BOOL_ALL_TAXI_PATHS,
+    CONFIG_BOOL_DALARAN_RESTRICTED_FLIGHT_AREA,
    CONFIG_BOOL_DECLINED_NAMES_USED,
    CONFIG_BOOL_SKILL_MILLING,
    CONFIG_BOOL_BATTLEGROUND_CAST_DESERTER,
diff --git a/src/mangosd/mangosd.conf.dist.in b/src/mangosd/mangosd.conf.dist.in
index 296ae77..0f5c59a 100644
--- a/src/mangosd/mangosd.conf.dist.in
+++ b/src/mangosd/mangosd.conf.dist.in
@@ -493,6 +493,11 @@ LogColors = ""
#        Default: 0 (false)
#                 1 (true)
#
+#    DalaranRestrictedFlightArea
+#        Players that try to fly over Dalaran for more than 10 sec will be dismounted.
+#        Default 0 (false)
+#                1 (true)
+#
#    AlwaysMaxSkillForLevel
#        Players will automatically gain max level dependent (weapon/defense) skill when logging in, leveling up etc.
#        Default: 0 (false)
@@ -662,6 +667,7 @@ StartArenaPoints = 0
InstantLogout = 1
DisableWaterBreath = 4
AllFlightPaths = 0
+DalaranRestrictedFlightArea = 0
AlwaysMaxSkillForLevel = 0
ActivateWeather = 1
CastUnstuck = 1

Link to comment
Share on other sites

  • 1 month later...
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use