Jump to content

Recommended Posts

Posted

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)

  • 40 years later...
Posted

For windows, using git apply [patchname] works as well vladex. At least, it does for me (windows Vista).

Thanks for these cyrex - I've also added them to my patch svn repository (here, in case more people were wondering about that). Testing them out as we speak :)

Posted

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.

Posted

I have an error :

../../../src/game/Creature.cpp: In member function «float Creature::GetBaseSpeed() const»:

../../../src/game/Creature.cpp:1908: erreur: «const struct CreatureInfo» has no member named «speed»

Posted

@Balacas - Please tell me the Core version you are using and if any other modifications you are adding. I will post here my compilation script anyway which i use to test of 2 PCs.

Posted

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.

Posted

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.

Posted

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

Posted

Am sorry petbat, was in hospital because of food poisoning. I will remove the Dalaran Flight Patch because i think the creator is making a great job in maintaining it.

Updated any related patch to 9743.

Posted

git rebase doesnt apply new patches, it just does all you said here automatically (update repo, then reapply custom patches on top).

you will get merge conflicts but its a lot less work overall to fix conficts than apply tons of patches manually

Posted

Updated to 9773.

+ Removed Druid Flight Form since it is on Master now.

+ Corrected Dalaran Patch for updated version

+ Corrected blink patch for git apply way.

+ Removed Dual Talent since it is on Master now.

  • 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